comand-component-library 4.2.77 → 4.2.79

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.
@@ -27,6 +27,7 @@
27
27
  :inputValue="item.inputValue"
28
28
  :fieldIconClass="item.innerIconClass"
29
29
  :selectOptions="item.selectOptions"
30
+ :toggleSwitch="item.toggleSwitch"
30
31
  :labelText="item.labelText"
31
32
  :placeholder="item.placeholder"
32
33
  :required="item.required"
@@ -35,13 +36,16 @@
35
36
  :minlength="item.minlength"
36
37
  :maxlength="item.maxlength"
37
38
  :nativeButton="item.nativeButton"
38
- @validation-status-change="formElementHasError($event, item.name)"
39
+ :colored="item.colored"
40
+ @validation-status-change="formElementsWithStatus($event, item.name)"
39
41
  />
40
42
  <CmdInputGroup
41
43
  v-else-if="item.component === 'CmdInputGroup'"
42
44
  v-model="formValues[item.name]"
43
45
  :labelText="item.labelText"
44
46
  :inputElements="item.inputElements"
47
+ :toggleSwitches="item.toggleSwitches"
48
+ :colored="item.colored"
45
49
  />
46
50
  <div
47
51
  v-else-if="item.component === 'flexContainer'"
@@ -58,6 +62,7 @@
58
62
  :id="item.id || createHtmlId()"
59
63
  v-model="formValues[item.name]"
60
64
  :inputValue="item.inputValue"
65
+ :toggleSwitch="item.toggleSwitch"
61
66
  :fieldIconClass="item.innerIconClass"
62
67
  :selectOptions="item.selectOptions"
63
68
  :labelText="item.labelText"
@@ -68,13 +73,15 @@
68
73
  :minlength="item.minlength"
69
74
  :maxlength="item.maxlength"
70
75
  :nativeButton="item.nativeButton"
71
- @validation-status-change="formElementHasError($event, item.name)"
76
+ @validation-status-change="formElementsWithStatus($event, item.name)"
72
77
  />
73
78
  <CmdInputGroup
74
79
  v-else-if="item.component === 'CmdInputGroup'"
75
80
  v-model="formValues[item.name]"
76
81
  :labelText="item.labelText"
77
82
  :inputElements="item.inputElements"
83
+ :toggleSwitches="item.toggleSwitches"
84
+ :colored="item.colored"
78
85
  />
79
86
  </template>
80
87
  </div>
@@ -161,7 +168,7 @@ export default {
161
168
  validationStatus: "",
162
169
  message: ""
163
170
  },
164
- formElementsWithError: []
171
+ formElementsValidationStatus: []
165
172
  }
166
173
  },
167
174
  props: {
@@ -259,8 +266,12 @@ export default {
259
266
  },
260
267
  mounted() {
261
268
  // get the names of all elements that match the phrase and push to data-property
262
- const requiredElementNames = this.formElements?.filter(element => element.required === true).map(element => element.name);
263
- this.formElementsWithError.push(requiredElementNames)
269
+ const requiredElementNames = this.formElements?.filter(element => element.required === true).map(element => element.name)
270
+ console.log("requiredElementNames", requiredElementNames)
271
+ /*
272
+ requiredElementNames.forEach((name) => {
273
+ this.formElementsValidationStatus.push({name: name})
274
+ })*/
264
275
  },
265
276
  computed: {
266
277
  legendOptions() {
@@ -296,16 +307,29 @@ export default {
296
307
  }
297
308
  },
298
309
  methods: {
310
+ formElementsWithStatus(event, itemName) {
311
+ if (!this.formElementsValidationStatus.some(entry => entry.name === itemName)) {
312
+ this.formElementsValidationStatus.push({name: itemName, status: event})
313
+ }
314
+ //const formElement = this.formElementsValidationStatus.find(element => element.name === itemName)
315
+ console.log("this.formElementsValidationStatus", this.formElementsValidationStatus)
316
+ // formElement.status = event
317
+
318
+ // this.$emit("validation-status-change", formElement)
319
+ },
320
+
321
+ /*
299
322
  formElementHasError(event, itemName) {
300
- if (event === "error" && !this.formElementsWithError.includes(itemName)) {
301
- this.formElementsWithError.push(itemName)
302
- } else if (event === "success" && this.formElementsWithError.includes(itemName)) {
303
- this.formElementsWithError = this.formElementsWithError.filter((element) => element !== itemName)
323
+ if (event === "error" && !this.formElementsValidationStatus.some(entry => entry.name === itemName)) {
324
+ this.formElementsValidationStatus.push(itemName)
325
+ } else if (event === "success" && this.formElementsValidationStatus.includes(itemName)) {
326
+ this.formElementsValidationStatus = this.formElementsValidationStatus.filter((element) => element !== itemName)
304
327
  }
305
328
  console.log("event in CmdForm", event)
306
329
  console.log("itemName in CmdForm", itemName)
307
- this.$emit("validation-status-change", this.formElementsWithError.length ? "error" : "success")
330
+ this.$emit("validation-status-change", this.formElementsValidationStatus.length ? "error" : "success")
308
331
  },
332
+ */
309
333
  createHtmlId,
310
334
  showMessage(validationStatus, message) {
311
335
  this.systemMessage.show = true
@@ -2,15 +2,15 @@
2
2
  <!-- begin CmdHeadline ---------------------------------------------------------------------------------------- -->
3
3
  <!-- begin default-view -->
4
4
  <div v-if="!editModeContext || settingsContext || mainSidebarContext || headlineText"
5
- :class="['cmd-headline', {'has-pre-headline-text': preHeadlineText, 'has-icon': cmdIcon?.iconClass}, headlineTextAlign]">
5
+ :class="['cmd-headline', {'has-pre-headline-text': preHeadlineText, 'has-icon': cmdIcon?.iconClass}]">
6
6
  <!-- begin headline with pre-headline-text -->
7
7
  <template v-if="preHeadlineText">
8
- <component v-if="headlineText" :is="headlineTag" :class="highlightLevel">
8
+ <component v-if="headlineText" :is="headlineTag" :class="[highlightLevel, headlineTextAlign]">
9
9
  <!-- begin CmdIcon -->
10
10
  <CmdIcon v-if="cmdIcon" v-bind="cmdIcon"/>
11
11
  <!-- end CmdIcon -->
12
12
 
13
- <span class="pre-headline-text-wrapper">
13
+ <span :class="['pre-headline-text-wrapper', 'text-align-' + textAlign]">
14
14
  <!-- begin pre-headline-text -->
15
15
  <span class="pre-headline-text" v-html="preHeadlineText"></span>
16
16
  <!-- end pre-headline-text -->
@@ -32,7 +32,7 @@
32
32
  <!-- end headline with pre-headline-text -->
33
33
 
34
34
  <!-- begin headline without pre-headline-text -->
35
- <component v-else :is="headlineTag">
35
+ <component v-else :is="headlineTag" :class="[highlightLevel, headlineTextAlign]">
36
36
  <!-- begin CmdIcon -->
37
37
  <CmdIcon v-if="cmdIcon" v-bind="cmdIcon"/>
38
38
  <!-- end CmdIcon -->
@@ -178,7 +178,7 @@ export default {
178
178
  */
179
179
  textAlign: {
180
180
  type: String,
181
- default: null,
181
+ default: "left",
182
182
  validator(value) {
183
183
  return value === "left" ||
184
184
  value === "center" ||
@@ -208,7 +208,14 @@ export default {
208
208
  },
209
209
  headlineTextAlign() {
210
210
  if (this.textAlign) {
211
- return "text-" + this.textAlign
211
+ switch (this.textAlign) {
212
+ case "right":
213
+ return "justify-content-flex-end"
214
+ case "center":
215
+ return "justify-content-center"
216
+ default:
217
+ return "justify-content-flex-start"
218
+ }
212
219
  }
213
220
  return ""
214
221
  }
@@ -106,7 +106,7 @@ export default {
106
106
  */
107
107
  resizeHeaderOnScroll: {
108
108
  type: Boolean,
109
- default: true
109
+ default: false
110
110
  },
111
111
  /**
112
112
  * set selector for element that scrolls content to resize header
@@ -3,7 +3,7 @@
3
3
  <transition :name="transition">
4
4
  <div
5
5
  v-if="showSystemMessage"
6
- :class="['cmd-system-message', 'system-message', 'flex-container', 'vertical', { 'full-width': fullWidth }, validationStatus]"
6
+ :class="['cmd-system-message', 'system-message', 'flex-container', 'flex-direction-column', { 'full-width': fullWidth }, systemMessageTextAlign, validationStatus]"
7
7
  :role="validationStatus === 'error' ? 'alert' : 'dialog'"
8
8
  :aria-labelledby="htmlId"
9
9
  >
@@ -15,6 +15,7 @@
15
15
  :cmdIcon="headlineIcon"
16
16
  :headlineText="systemMessage"
17
17
  :headlineLevel="messageHeadlineLevel"
18
+ :textAlign="textAlign"
18
19
  :id="htmlId"
19
20
  />
20
21
  <!-- end CmdHeadline -->
@@ -48,10 +49,32 @@ export default {
48
49
  mixins: [Identifier],
49
50
  data() {
50
51
  return {
51
- showSystemMessage: true
52
+ showSystemMessage: true,
53
+ id: this.ariaReferenceId || this.buildHtmlId("system-message") // mixin requires id to be defined
52
54
  }
53
55
  },
54
- props: {
56
+ props: {
57
+ /**
58
+ * define the text-align for the system message (will be inherited to CmdHeadline in slot)
59
+ *
60
+ * @allowedValues: "left", "center", "right"
61
+ */
62
+ textAlign: {
63
+ type: String,
64
+ default: "center",
65
+ validator(value) {
66
+ return value === "left" ||
67
+ value === "center" ||
68
+ value === "right"
69
+ }
70
+ },
71
+ /**
72
+ * define the aria-reference-id for the system message (will be used as aria-labelledby)
73
+ */
74
+ ariaReferenceId: {
75
+ type: String,
76
+ required: false
77
+ },
55
78
  /**
56
79
  * define the transition when system message disappears
57
80
  *
@@ -78,7 +101,7 @@ export default {
78
101
  }
79
102
  },
80
103
  /**
81
- * activate to stretch message-box as wide as parent container (else message-box is as wide as message (+padding))
104
+ * activate to stretch message-box as wide as parent container (else message-box is as wide as message (+ padding))
82
105
  */
83
106
  fullWidth: {
84
107
  type: Boolean,
@@ -138,6 +161,19 @@ export default {
138
161
  }
139
162
  }
140
163
  return null
164
+ },
165
+ systemMessageTextAlign() {
166
+ if (this.textAlign) {
167
+ switch (this.textAlign) {
168
+ case "right":
169
+ return "align-items-flex-end"
170
+ case "center":
171
+ return "align-items-center"
172
+ default:
173
+ return "align-items-flex-start"
174
+ }
175
+ }
176
+ return ""
141
177
  }
142
178
  },
143
179
  methods: {
@@ -159,9 +195,12 @@ export default {
159
195
  .cmd-system-message {
160
196
  display: inline-flex;
161
197
  margin: var(--default-margin) 0;
162
- align-items: center;
163
198
  align-self: flex-start; /* if used in flex-container component should not be stretched */
164
199
 
200
+ .message-headline {
201
+ margin: 0; /* overwrite default-settings from frontend-framework */
202
+ }
203
+
165
204
  > :last-child {
166
205
  margin-bottom: 0;
167
206
  }