comand-component-library 4.2.10 → 4.2.12

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.js +8106 -8023
  2. package/dist/style.css +1 -1
  3. package/package.json +3 -2
  4. package/src/ComponentLibrary.vue +24 -5
  5. package/src/assets/data/switch-language.json +28 -28
  6. package/src/assets/lists-of-data/.htaccess +1 -1
  7. package/src/assets/lists-of-data/casual-01.json +1 -1
  8. package/src/assets/lists-of-data/founder-01.json +111 -0
  9. package/src/assets/lists-of-data/investor-01.json +114 -0
  10. package/src/components/CmdFakeSelect.vue +5 -5
  11. package/src/components/CmdForm.vue +1 -1
  12. package/src/components/CmdImageZoom.vue +33 -7
  13. package/src/components/CmdInputGroup.vue +3 -4
  14. package/src/components/CmdLink.vue +3 -2
  15. package/src/components/CmdListOfImages.vue +5 -5
  16. package/src/components/CmdListOfRequirements.vue +6 -6
  17. package/src/components/CmdLoginForm.vue +92 -63
  18. package/src/components/CmdMailTool.vue +1 -7
  19. package/src/components/CmdMailToolEntry.vue +51 -6
  20. package/src/components/CmdMailToolFilter.vue +35 -29
  21. package/src/components/CmdMultistepFormProgressBar.vue +68 -96
  22. package/src/components/CmdNewsletterSubscription.vue +1 -0
  23. package/src/components/CmdSiteSearch.vue +6 -1
  24. package/src/components/CmdSwitchLanguage.vue +0 -3
  25. package/src/components/CmdTabs.vue +6 -2
  26. package/src/components/CmdTooltip.vue +16 -2
  27. package/src/components/CmdUploadForm.vue +3 -1
  28. package/src/main.js +5 -1
  29. package/src/mixins/CmdMailToolEntry/DefaultMessageProperties.js +2 -1
  30. package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +1 -1
  31. package/src/mixins/FieldValidation.js +1 -1
@@ -1,21 +1,24 @@
1
1
  <template>
2
- <ol :class="['cmd-multistep-form-progress-bar', {'use-gap': useGap}]">
2
+ <ol :class="['cmd-multistep-form-progress-bar', {'use-gap': useGap, 'full-width': fullWidth}]">
3
3
  <li v-for="(step, index) in multisteps" :key="index" :class="{active : activeLink === index}">
4
4
  <!-- begin CmdLink -->
5
5
  <CmdLink
6
- :linkType="step.type"
6
+ :linkType="step.linkType"
7
+ :class="['stretch-on-small-devices', {active : activeLink === index}]"
8
+ :primaryButton="usePrimaryButtons"
7
9
  :path="step.path"
8
10
  :title="step.tooltip"
9
- @click.stop.prevent="clickedStep($event, index)"
11
+ :styleAsButton="false"
12
+ @click="clickedStep($event, index)"
10
13
  >
11
14
  <span v-if="showStepNumber" class="number">{{ index + 1 }}</span>
12
15
  <!-- begin CmdIcon -->
13
16
  <CmdIcon v-if="step.iconClass" :iconClass="step.iconClass" :type="step.iconType" />
14
17
  <!-- end CmdIcon -->
15
18
  <span v-if="step.text">{{ step.text }}</span>
16
- <span :class="separatorIconClass"></span>
17
19
  </CmdLink>
18
20
  <!-- end CmdLink -->
21
+ <span v-if="index + 1 !== multisteps.length && useGap" :class="['separator', separatorIconClass]"></span>
19
22
  </li>
20
23
  </ol>
21
24
  </template>
@@ -25,13 +28,20 @@
25
28
  import {getRoute} from "../utilities.js"
26
29
 
27
30
  export default {
28
- name: 'CmdMultistepFormProgressBar',
31
+ name: "CmdMultistepFormProgressBar",
29
32
  data() {
30
33
  return {
31
34
  activeLink: 0
32
35
  }
33
36
  },
34
37
  props: {
38
+ /**
39
+ * toggle if steps should be stretched to full-width of parent container (else steps will be centered)
40
+ */
41
+ fullWidth: {
42
+ type: Boolean,
43
+ default: false
44
+ },
35
45
  /**
36
46
  * toggle visibility of step-number in front/left of link-icon and -name
37
47
  */
@@ -39,6 +49,13 @@ export default {
39
49
  type: Boolean,
40
50
  default: false
41
51
  },
52
+ /**
53
+ * activate if step-buttons should be primary-buttons (linkType for steps must be "button" or styleAsButton-property must be activated=)
54
+ */
55
+ usePrimaryButtons: {
56
+ type: Boolean,
57
+ default: true
58
+ },
42
59
  /**
43
60
  * list of multisteps
44
61
  */
@@ -63,7 +80,7 @@ export default {
63
80
  methods: {
64
81
  clickedStep(event, index) {
65
82
  this.activeLink = index;
66
- this.$emit('click', {event: event, index: index, stepPath: this.multisteps[index].path})
83
+ this.$emit("click", {event: event, index: index, stepPath: this.multisteps[index].path})
67
84
  },
68
85
  getRoute(step) {
69
86
  return getRoute(step)
@@ -77,20 +94,23 @@ export default {
77
94
 
78
95
  .cmd-multistep-form-progress-bar {
79
96
  display: flex;
80
- justify-content: space-around;
81
- border: var(--default-border);
97
+ align-items: center;
98
+ justify-content: center;
82
99
  margin: 0;
83
100
  border-radius: var(--default-border-radius);
84
101
 
85
- &.use-gap {
86
- border: 0;
87
- gap: var(--default-gap);
102
+ &.full-width {
103
+ justify-content: stretch;
88
104
 
89
105
  li {
90
- border: var(--default-border);
91
- border-color: var(--primary-color-reduced-opacity);
92
- border-radius: var(--default-border-radius);;
106
+ flex: 1 !important;
107
+ }
108
+ }
109
+
110
+ &.use-gap {
111
+ gap: calc(var(--default-gap) / 2);
93
112
 
113
+ li {
94
114
  a, a.active {
95
115
  border: 0;
96
116
  border-radius: inherit;
@@ -108,11 +128,15 @@ export default {
108
128
  }
109
129
  }
110
130
 
111
- &.active {
112
- border-color: var(--primary-color);
131
+ .separator {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ }
113
136
 
114
- & ~li {
115
- border-color: var(--border-color);
137
+ &.active {
138
+ .separator {
139
+ color: var(--color-scheme-text-color); /* overwrite icon-color inside active links */
116
140
  }
117
141
  }
118
142
  }
@@ -123,35 +147,42 @@ export default {
123
147
  flex: 1;
124
148
  list-style-type: none;
125
149
  margin: 0;
150
+ gap: calc(var(--default-gap) / 2);
126
151
 
127
152
  &:first-child, &:first-child > a {
128
153
  border-top-left-radius: inherit;
129
154
  border-bottom-left-radius: inherit;
130
155
  }
131
156
 
132
- &:last-child, &:last-child > a {
133
- border-top-right-radius: inherit;
134
- border-bottom-right-radius: inherit;
157
+ &:has(:not(.button)) {
158
+ flex: none;
159
+
160
+ &:is(:hover, :active, :focus) {
161
+ span, span[class*="icon-"] {
162
+ color: var(--hyperlink-color);
163
+ }
164
+ }
135
165
  }
136
166
 
137
- a {
167
+ a, button {
138
168
  display: flex;
139
169
  text-decoration: none;
140
- padding: var(--default-padding);
141
170
  align-items: center;
142
171
  justify-content: center;
143
172
  width: 100%;
144
- background: var(--primary-color-reduced-opacity);
173
+
174
+ &.button {
175
+ flex: 1;
176
+ max-height: none;
177
+ }
145
178
 
146
179
  :is(span, [class*="icon-"]) {
147
- color: var(--color-white);
148
180
  font-size: var(--icon-size-medium) !important;
149
181
 
150
182
  & + [class*="icon-"] {
151
183
  &:last-child {
152
184
  border: var(--default-border);
153
185
  border-radius: var(--full-circle);
154
- background: var(--color-white);
155
186
  color: var(--color-scheme-text-color);
156
187
  margin: 0;
157
188
  position: absolute;
@@ -170,12 +201,6 @@ export default {
170
201
  }
171
202
 
172
203
  &:hover, &:active, &:focus {
173
- background: var(--primary-color);
174
-
175
- :is(span, [class*="icon-"]) {
176
- color: var(--color-white);
177
- }
178
-
179
204
  .number {
180
205
  color: var(--hyperlink-color);
181
206
  }
@@ -191,9 +216,9 @@ export default {
191
216
  justify-content: center;
192
217
  border-radius: var(--full-circle);
193
218
  border: var(--default-border);
194
- border-color: var(--color-white);
195
219
  background: var(--color-white);
196
- color: var(--primary-color-reduced-opacity);
220
+ text-decoration: none !important;
221
+ color: var(--primary-color);
197
222
  }
198
223
  }
199
224
 
@@ -208,60 +233,15 @@ export default {
208
233
  }
209
234
 
210
235
  &.active {
211
- a {
212
- background: var(--primary-color);
213
-
214
- span, [class*="icon-"] {
215
- color: var(--color-white);
216
- }
217
-
218
- &:hover, &:active, &:focus {
219
- span, [class*="icon-"] {
220
- color: var(--color-white);
221
-
222
- & + [class*="icon-"] {
223
- &:last-child {
224
- color: var(--color-scheme-text-color);
225
- }
226
- }
227
- }
228
- }
229
- }
230
-
231
236
  .number {
232
- background: var(--color-white);
237
+ background: var(--primary-color);
233
238
  border-color: var(--color-white);
234
- color: var(--hyperlink-color) !important;
239
+ color: var(--color-white) !important;
235
240
  }
236
241
 
237
242
  & ~ li {
238
- background: var(--default-background);
239
- border-left-color: var(--border-color);
240
-
241
243
  a {
242
- color: var(--color-white);
243
-
244
- span, span[class*='color'] {
245
- color: inherit;
246
-
247
- & + [class*="icon-"] {
248
- &:last-child {
249
- border-color: var(--border-color);
250
- color: var(--color-white);
251
- background: var(--secondary-color);
252
- }
253
- }
254
- }
255
-
256
244
  &:hover, &:active, &:focus {
257
- background: var(--color-white);
258
-
259
- span, [class*="icon-"] {
260
- &:not(:last-child) {
261
- color: var(--hyperlink-color);
262
- }
263
- }
264
-
265
245
  .number {
266
246
  border-color: var(--hyperlink-color);
267
247
  }
@@ -273,10 +253,6 @@ export default {
273
253
  border-color: var(--border-color);
274
254
  }
275
255
  }
276
-
277
- & + li {
278
- border-left-color: var(--border-color);
279
- }
280
256
  }
281
257
  }
282
258
  }
@@ -290,11 +266,12 @@ export default {
290
266
  flex-direction: column;
291
267
 
292
268
  li {
293
- &:not(:last-child) {
294
- border-bottom: var(--default-border);
295
- }
269
+ width: 100%;
270
+ flex-direction: column;
296
271
 
297
272
  a {
273
+ width: 100% !important;
274
+
298
275
  :is(span, [class*="icon-"]) {
299
276
  & + [class*="icon-"] {
300
277
  &:last-child {
@@ -302,19 +279,14 @@ export default {
302
279
  right: auto;
303
280
  bottom: 0;
304
281
  transform: translateY(50%);
305
-
306
- &::before {
307
- transform: rotate(90deg);
308
- }
309
282
  }
310
283
  }
311
284
  }
312
285
  }
313
286
 
314
- &.active {
315
- & ~ li {
316
- border-left: 0;
317
- border-bottom-color: var(--border-color);
287
+ .separator {
288
+ &::before {
289
+ transform: rotate(90deg);
318
290
  }
319
291
  }
320
292
  }
@@ -35,6 +35,7 @@
35
35
  :type="buttonType"
36
36
  :disabled="buttonDisabled"
37
37
  :nativeButton="cmdFormElementSubmitDynamicLabel"
38
+ class="stretch-on-small-devices"
38
39
  @click="sendData"
39
40
  />
40
41
  <!-- end cmd-form-element -->
@@ -238,7 +238,8 @@ export default {
238
238
  position: "before",
239
239
  iconClass: "icon-search"
240
240
  },
241
- text: "Search"
241
+ text: "Search",
242
+ primary: true
242
243
  }
243
244
  }
244
245
  },
@@ -399,6 +400,10 @@ export default {
399
400
  @media only screen and (max-width: $small-max-width) {
400
401
  .cmd-box-site-search {
401
402
  flex-wrap: nowrap;
403
+
404
+ > a.filter-options {
405
+ align-self: center;
406
+ }
402
407
  }
403
408
  }
404
409
  /* end cmd-box-site-search ---------------------------------------------------------------------------------------- */
@@ -29,8 +29,6 @@
29
29
 
30
30
  <script>
31
31
  import {getRoute} from "../utilities.js"
32
- //import * as flags from "media/images/flags"
33
- import {switchLanguage} from "@/assets/data/export-example-data.js"
34
32
 
35
33
  export default {
36
34
  name: "CmdSwitchLanguage",
@@ -61,7 +59,6 @@ export default {
61
59
  this.getInitialLanguage()
62
60
  },
63
61
  methods: {
64
- switchLanguage,
65
62
  getInitialLanguage() {
66
63
  // assign initially set value for lang in html-tag to data-property
67
64
  this.currentLanguage = document.documentElement.lang
@@ -3,7 +3,7 @@
3
3
  <!-- being tab-list -->
4
4
  <ul :class="{'stretch-tabs' : stretchTabs}" role="tablist">
5
5
  <li v-for="(tab, index) in tabs" :class="{active : showTab === index}" :key="index" role="tab">
6
- <a href="#" @click.prevent="setActiveTab(index)" :title="!tab.text ? tab.tooltip : undefined">
6
+ <a href="#" class="button" @click.prevent="setActiveTab(index)" :title="!tab.text ? tab.tooltip : undefined">
7
7
  <!-- begin CmdIcon -->
8
8
  <CmdIcon v-if="tab.iconClass" :iconClass="tab.iconClass" :type="tab.iconType" />
9
9
  <!-- end CmdIcon -->
@@ -141,7 +141,11 @@ export default {
141
141
  border-bottom: 0;
142
142
  border-top-left-radius: var(--default-border-radius);
143
143
  border-top-right-radius: var(--default-border-radius);
144
- text-decoration: none;
144
+ text-decoration: none !important;
145
+
146
+ span, span[class*="icon-"] {
147
+ text-decoration: none !important;
148
+ }
145
149
 
146
150
  &:hover, &:active, &:focus {
147
151
  cursor: pointer;
@@ -36,6 +36,11 @@ export default {
36
36
  pointerY: 0
37
37
  }
38
38
  },
39
+ inject: {
40
+ injectScrollContainer: {
41
+ default: ""
42
+ }
43
+ },
39
44
  props: {
40
45
  /**
41
46
  * properties for CmdHeadline-component
@@ -119,8 +124,17 @@ export default {
119
124
  const relatedElement = document.getElementById(this.relatedId)
120
125
 
121
126
  if (relatedElement) {
122
- if (this.scrollContainer) {
123
- document.querySelector(this.scrollContainer).addEventListener("scroll", this.hideTooltip) // avoid fixed tooltip on scroll
127
+ const scrollContainerSelector = this.injectScrollContainer || this.scrollContainer
128
+
129
+ if (scrollContainerSelector) {
130
+ const scrollContainerElement = document.querySelector(scrollContainerSelector)
131
+
132
+ if(scrollContainerElement) {
133
+ scrollContainerElement.addEventListener("scroll", this.hideTooltip) // avoid fixed tooltip on scroll
134
+ } else {
135
+ console.warn( "'CmdTooltip-Component': Element accessed by " + scrollContainerSelector + " does not exist! Please provide selector for an existing element!")
136
+ }
137
+
124
138
  document.addEventListener("keyup", this.hideTooltipOnEsc) // close tooltip by using "escape"-key
125
139
  }
126
140
 
@@ -252,7 +252,8 @@
252
252
  />
253
253
  <!-- end CmdFormElement -->
254
254
 
255
- <div class="button-wrapper no-flex">
255
+ <!-- begin button-wrapper -->
256
+ <div class="button-wrapper stretch-on-small-devices">
256
257
  <button
257
258
  :class="[
258
259
  'button primary',
@@ -285,6 +286,7 @@
285
286
  <span>{{ getMessage("upload_form.buttontext.cancel") }}</span>
286
287
  </button>
287
288
  </div>
289
+ <!-- end button-wrapper -->
288
290
  </fieldset>
289
291
  <!-- end advanced mode -->
290
292
 
package/src/main.js CHANGED
@@ -43,4 +43,8 @@ import router from "./router"
43
43
  // })
44
44
 
45
45
  // createApp(App).use(router).directive('telephone', directiveTelephone).directive('focus', directiveFocus).mount('#app')
46
- createApp(ComponentLibrary).use(router).directive('telephone', directiveTelephone).directive('focus', directiveFocus).directive('fancybox', directiveFancybox).mount('#app')
46
+ createApp(ComponentLibrary)
47
+ .use(router).directive('telephone', directiveTelephone)
48
+ .directive('focus', directiveFocus)
49
+ .directive('fancybox', directiveFancybox)
50
+ .mount('#app')
@@ -5,7 +5,8 @@ export default {
5
5
  "mail_tool_entry.tooltip.read_this_mail": "Read this mail",
6
6
  "mail_tool_entry.description_label.from": "From:",
7
7
  "mail_tool_entry.description_label.to": "To:",
8
- "mail_tool_entry.description_label.subject": "Subject:"
8
+ "mail_tool_entry.description_label.subject": "Subject:",
9
+ "mail_tool_entry.description_label.received": "Received:"
9
10
  }
10
11
  }
11
12
  }
@@ -3,7 +3,7 @@ export default {
3
3
  return {
4
4
  defaultMessageProperties: {
5
5
  "site_search.show_filter_options": "Show filter options",
6
- "site_search.hide_filter_options": "Hide filter options",
6
+ "site_search.hide_filter_options": "Hide filter options"
7
7
  }
8
8
  }
9
9
  }
@@ -268,7 +268,7 @@ export default {
268
268
  }
269
269
  }
270
270
 
271
- function validateSpecialCharacters(message = "special character - replace with getMessage") {
271
+ function validateSpecialCharacters(message = "special character") {
272
272
  return {
273
273
  message,
274
274
  valid(value) {