comand-component-library 3.3.5 → 3.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) 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 +1 -1
  4. package/src/components/CmdAddressData.vue +36 -6
  5. package/src/components/CmdBackToTopButton.vue +4 -2
  6. package/src/components/CmdBankAccountData.vue +3 -2
  7. package/src/components/CmdBox.vue +6 -4
  8. package/src/components/CmdBoxWrapper.vue +6 -2
  9. package/src/components/CmdBreadcrumbs.vue +15 -3
  10. package/src/components/CmdFakeSelect.vue +41 -12
  11. package/src/components/CmdFancyBox.vue +11 -3
  12. package/src/components/CmdFormElement.vue +30 -6
  13. package/src/components/CmdFormFilters.vue +17 -8
  14. package/src/components/CmdHeadline.vue +3 -3
  15. package/src/components/CmdInputGroup.vue +8 -1
  16. package/src/components/CmdListOfLinks.vue +9 -3
  17. package/src/components/CmdListOfRequirements.vue +18 -11
  18. package/src/components/CmdLoginForm.vue +46 -27
  19. package/src/components/CmdMainNavigation.vue +30 -8
  20. package/src/components/CmdMultistepFormProgressBar.vue +15 -3
  21. package/src/components/CmdPager.vue +10 -2
  22. package/src/components/CmdShareButtons.vue +9 -3
  23. package/src/components/CmdSiteSearch.vue +30 -5
  24. package/src/components/CmdSystemMessage.vue +10 -5
  25. package/src/components/CmdTable.vue +12 -2
  26. package/src/components/CmdTabs.vue +9 -1
  27. package/src/components/CmdTooltip.vue +6 -2
  28. package/src/components/CmdUploadForm.vue +116 -47
  29. package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +6 -1
  30. package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +1 -1
  31. package/src/documentation/generated/CmdHeadlinePropertyDescriptions.json +1 -1
  32. package/src/documentation/generated/CmdSiteSearchPropertyDescriptions.json +6 -1
  33. package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +16 -16
  34. package/src/mixins/FieldValidation.js +33 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comand-component-library",
3
- "version": "3.3.5",
3
+ "version": "3.3.6",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -11,7 +11,12 @@
11
11
  <!-- begin company -->
12
12
  <dt v-if="addressData.company?.value">
13
13
  <!-- begin CmdIcon -->
14
- <CmdIcon v-if="addressData.company.iconClass && showLabelIcons" :iconClass="addressData.company.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.company')" />
14
+ <CmdIcon
15
+ v-if="addressData.company.iconClass && showLabelIcons"
16
+ :iconClass="addressData.company.iconClass"
17
+ :type="addressData.company.iconType"
18
+ :tooltip="getMessage('cmdaddressdata.labeltext.company')"
19
+ />
15
20
  <!-- end CmdIcon -->
16
21
 
17
22
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.company')}}</span>
@@ -23,7 +28,12 @@
23
28
  <template v-if="addressData.address && addressData.address !== undefined">
24
29
  <dt class="address">
25
30
  <!-- begin CmdIcon -->
26
- <CmdIcon v-if="addressData.address.iconClass && showLabelIcons" :iconClass="addressData.address.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.address')" />
31
+ <CmdIcon
32
+ v-if="addressData.address.iconClass && showLabelIcons"
33
+ :iconClass="addressData.address.iconClass"
34
+ :type="addressData.address.iconType"
35
+ :tooltip="getMessage('cmdaddressdata.labeltext.address')"
36
+ />
27
37
  <!-- end CmdIcon -->
28
38
 
29
39
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.address')}}</span>
@@ -50,7 +60,12 @@
50
60
  <!-- begin telephone -->
51
61
  <dt v-if="addressData.telephone?.value">
52
62
  <!-- begin CmdIcon -->
53
- <CmdIcon v-if="addressData.telephone.iconClass && showLabelIcons" :iconClass="addressData.telephone.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.telephone')" />
63
+ <CmdIcon
64
+ v-if="addressData.telephone.iconClass && showLabelIcons"
65
+ :iconClass="addressData.telephone.iconClass"
66
+ :type="addressData.telephone.iconType"
67
+ :tooltip="getMessage('cmdaddressdata.labeltext.telephone')"
68
+ />
54
69
  <!-- end CmdIcon -->
55
70
 
56
71
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.telephone')}}</span>
@@ -63,7 +78,12 @@
63
78
  <!-- begin mobile phone -->
64
79
  <dt v-if="addressData.mobilephone?.value">
65
80
  <!-- begin CmdIcon -->
66
- <CmdIcon v-if="addressData.mobilephone.iconClass && showLabelIcons" :iconClass="addressData.mobilephone.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.mobile_phone')" />
81
+ <CmdIcon
82
+ v-if="addressData.mobilephone.iconClass && showLabelIcons"
83
+ :iconClass="addressData.mobilephone.iconClass"
84
+ :type="addressData.mobilephone.iconType"
85
+ :tooltip="getMessage('cmdaddressdata.labeltext.mobile_phone')"
86
+ />
67
87
  <!-- end CmdIcon -->
68
88
 
69
89
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.mobile_phone')}}</span>
@@ -76,7 +96,12 @@
76
96
  <!-- begin fax -->
77
97
  <dt v-if="addressData.fax?.value">
78
98
  <!-- begin CmdIcon -->
79
- <CmdIcon v-if="addressData.fax.iconClass && showLabelIcons" :iconClass="addressData.fax.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.fax')" />
99
+ <CmdIcon
100
+ v-if="addressData.fax.iconClass && showLabelIcons"
101
+ :iconClass="addressData.fax.iconClass"
102
+ :type="addressData.fax.iconType"
103
+ :tooltip="getMessage('cmdaddressdata.labeltext.fax')"
104
+ />
80
105
  <!-- end CmdIcon -->
81
106
 
82
107
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.fax')}}</span>
@@ -87,7 +112,12 @@
87
112
  <!-- begin email -->
88
113
  <dt v-if="addressData.email?.value">
89
114
  <!-- begin CmdIcon -->
90
- <CmdIcon v-if="addressData.email.iconClass && showLabelIcons" :iconClass="addressData.email.iconClass" :tooltip="getMessage('cmdaddressdata.labeltext.email')" />
115
+ <CmdIcon
116
+ v-if="addressData.email.iconClass && showLabelIcons"
117
+ :iconClass="addressData.email.iconClass"
118
+ :type="addressData.email.iconType"
119
+ :tooltip="getMessage('cmdaddressdata.labeltext.email')"
120
+ />
91
121
  <!-- end CmdIcon -->
92
122
 
93
123
  <span v-if="showLabelTexts">{{ getMessage('cmdaddressdata.labeltext.email')}}</span>
@@ -3,7 +3,7 @@
3
3
  <transition name="fade">
4
4
  <a v-if="show" class="cmd-back-to-top-button" href="#" :title="iconBackToTop.tooltip" @click.prevent="onBackToTop">
5
5
  <!-- begin CmdIcon -->
6
- <CmdIcon :iconClass="iconBackToTop.iconClass" />
6
+ <CmdIcon :iconClass="iconBackToTop.iconClass" :type="iconBackToTop.iconType" />
7
7
  <!-- end CmdIcon -->
8
8
  </a>
9
9
  </transition>
@@ -37,7 +37,8 @@ export default {
37
37
  default: function () {
38
38
  return {
39
39
  iconClass: "icon-single-arrow-up",
40
- tooltip: "Back to top"
40
+ tooltip: "Back to top",
41
+ iconType: "auto"
41
42
  }
42
43
  }
43
44
  }
@@ -82,6 +83,7 @@ export default {
82
83
  border: var(--default-border);
83
84
  background: var(--color-scheme-background-color);
84
85
  border-radius: var(--full-circle);
86
+ line-height: 100%;
85
87
 
86
88
  &:hover, &:active, &:focus {
87
89
  border-color: var(--primary-color);
@@ -12,7 +12,7 @@
12
12
  <span>{{ entry.value }}</span>
13
13
  <a href="#" @click.prevent="copyToClipboard(entry.value)" :title="iconCopy.tooltip">
14
14
  <!-- begin CmdIcon -->
15
- <CmdIcon :iconClass="iconCopy.iconClass" />
15
+ <CmdIcon :iconClass="iconCopy.iconClass" :type="iconCopy.iconType" />
16
16
  <!-- end CmdIcon -->
17
17
  </a>
18
18
  </dd>
@@ -72,7 +72,8 @@ export default {
72
72
  default() {
73
73
  return {
74
74
  iconClass: "icon-file-copy",
75
- tooltip: "Copy data to clipboard!"
75
+ tooltip: "Copy data to clipboard!",
76
+ iconType: "auto"
76
77
  }
77
78
  }
78
79
  },
@@ -11,7 +11,7 @@
11
11
 
12
12
  <a href="#" @click.prevent="toggleContentVisibility" :title="open ? iconOpen.tooltip : iconClosed.tooltip" class="toggle-icon">
13
13
  <!-- begin CmdIcon -->
14
- <CmdIcon :iconClass="[open ? iconOpen.iconClass : iconClosed.iconClass]"></CmdIcon>
14
+ <CmdIcon :iconClass="[open ? iconOpen.iconClass : iconClosed.iconClass]" :type="[open ? iconOpen.iconType : iconClosed.iconType]" />
15
15
  <!-- end CmdIcon -->
16
16
  </a>
17
17
  </div>
@@ -36,7 +36,7 @@
36
36
  <!-- end CmdHeadline -->
37
37
 
38
38
  <!-- begin CmdIcon -->
39
- <CmdIcon class="toggle-icon" :iconClass="[open ? iconOpen.iconClass : iconClosed.iconClass]"></CmdIcon>
39
+ <CmdIcon class="toggle-icon" :iconClass="[open ? iconOpen.iconClass : iconClosed.iconClass]" :type="[open ? iconOpen.iconType : iconClosed.iconType]" />
40
40
  <!-- end CmdIcon -->
41
41
  </a>
42
42
  <!-- end header for collapsible -->
@@ -254,7 +254,8 @@ export default {
254
254
  default: function () {
255
255
  return {
256
256
  iconClass: "icon-single-arrow-up",
257
- tooltip: "Close content"
257
+ tooltip: "Close content",
258
+ iconType: "auto"
258
259
  }
259
260
  },
260
261
  },
@@ -268,7 +269,8 @@ export default {
268
269
  default: function () {
269
270
  return {
270
271
  iconClass: "icon-single-arrow-down",
271
- tooltip: "Show content"
272
+ tooltip: "Show content",
273
+ iconType: "auto"
272
274
  }
273
275
  }
274
276
  },
@@ -7,10 +7,14 @@
7
7
 
8
8
  <div v-if="allowUserToToggleOrientation || allowTogglingCollapsingBoxes" class="options-wrapper">
9
9
  <a v-if="allowTogglingCollapsingBoxes" href="#" @click.prevent="toggleCollapsingBoxes" :title="collapsingBoxesOpen ? collapseBoxesIcon.tooltip : expandBoxesIcon.tooltip">
10
- <CmdIcon :iconClass="collapsingBoxesOpen ? expandBoxesIcon.iconClass : collapseBoxesIcon.iconClass"/>
10
+ <!-- begin CmdIcon -->
11
+ <CmdIcon :iconClass="collapsingBoxesOpen ? expandBoxesIcon.iconClass : collapseBoxesIcon.iconClass" :type="oneBoxPerRow ? iconGridView.iconType : iconRowView.iconType" />
12
+ <!-- end CmdIcon -->
11
13
  </a>
12
14
  <a v-if="allowUserToToggleOrientation" href="#" @click.prevent="oneBoxPerRow = !oneBoxPerRow" :title="oneBoxPerRow ? iconRowView.tooltip : iconGridView.tooltip">
13
- <CmdIcon :iconClass="oneBoxPerRow ? iconGridView.iconClass : iconRowView.iconClass"/>
15
+ <!-- begin CmdIcon -->
16
+ <CmdIcon :iconClass="oneBoxPerRow ? iconGridView.iconClass : iconRowView.iconClass" :type="oneBoxPerRow ? iconGridView.iconType : iconRowView.iconType" />
17
+ <!-- end CmdIcon -->
14
18
  </a>
15
19
  </div>
16
20
  </div>
@@ -4,20 +4,26 @@
4
4
  <li v-for="(link, index) in breadcrumbLinks || []" :key="index">
5
5
  <!-- begin type 'href' -->
6
6
  <a v-if="link.type === 'href'" :href="link.path">
7
- <span v-if="link.iconClass" :class="link.iconClass"></span>
7
+ <!-- begin CmdIcon -->
8
+ <CmdIcon v-if="link.iconClass" :iconClass="link.iconClass" :type="link.iconType" />
9
+ <!-- end CmdIcon -->
8
10
  <span v-if="link.text">{{ link.text }}</span>
9
11
  </a>
10
12
  <!-- end type 'href' -->
11
13
 
12
14
  <!-- begin type 'router' -->
13
15
  <router-link v-else-if="link.type === 'router'" :to="getRoute(link)">
14
- <span v-if="link.iconClass" :class="link.iconClass"></span>
16
+ <!-- begin CmdIcon -->
17
+ <CmdIcon v-if="link.iconClass" :iconClass="link.iconClass" :type="link.iconType" />
18
+ <!-- end CmdIcon -->
15
19
  <span v-if="link.text">{{ link.text }}</span>
16
20
  </router-link>
17
21
  <!-- end type 'router' -->
18
22
 
19
23
  <span v-else>
20
- <span v-if="link.iconClass" :class="link.iconClass"></span>
24
+ <!-- begin CmdIcon -->
25
+ <CmdIcon v-if="link.iconClass" :iconClass="link.iconClass" :type="link.iconType" />
26
+ <!-- end CmdIcon -->
21
27
  <span v-if="link.text">{{ link.text }}</span>
22
28
  </span>
23
29
  <span v-if="index < breadcrumbLinks.length - 1">{{ breadcrumbSeparator }}</span>
@@ -29,8 +35,14 @@
29
35
  // import functions
30
36
  import {getRoute} from "../utilities.js"
31
37
 
38
+ // import components
39
+ import CmdIcon from "./CmdIcon"
40
+
32
41
  export default {
33
42
  name: "CmdBreadcrumbs",
43
+ components: {
44
+ CmdIcon
45
+ },
34
46
  props: {
35
47
  /**
36
48
  * label in front/left of breadcrumbs
@@ -35,11 +35,13 @@
35
35
  <a v-if="$attrs.required || inputRequirements.length"
36
36
  href="#"
37
37
  @click.prevent
38
- :class="getStatusIconClass"
39
38
  :title="!useCustomTooltip ? getValidationMessage : ''"
40
39
  :aria-errormessage="tooltipId"
41
40
  aria-live="assertive"
42
41
  :id="tooltipId">
42
+ <!-- begin CmdIcon -->
43
+ <CmdIcon :iconClass="getStatusIconClass" />
44
+ <!-- end CmdIcon -->
43
45
  </a>
44
46
  </span>
45
47
  <!-- end label -->
@@ -57,7 +59,9 @@
57
59
  <!-- end show color-box -->
58
60
 
59
61
  <!-- begin optional icon -->
60
- <span v-if="optionIcon?.iconClass" :class="optionIcon?.iconClass"></span>
62
+ <!-- begin CmdIcon -->
63
+ <CmdIcon v-if="optionIcon?.iconClass" :type="optionIcon?.iconType" :class="optionIcon?.iconClass" />
64
+ <!-- end CmdIcon -->
61
65
  <!-- end optional icon -->
62
66
 
63
67
  <!-- begin text -->
@@ -65,7 +69,14 @@
65
69
  <!-- end text -->
66
70
 
67
71
  <!-- begin custom dropdown-icon -->
68
- <span v-if="dropdownIcon" :class="dropdownIcon.iconClass" :title="dropdownIcon.tooltip"></span>
72
+ <!-- begin CmdIcon -->
73
+ <CmdIcon
74
+ v-if="iconDropdown"
75
+ :iconClass="iconDropdown.iconClass"
76
+ :type="iconDropdown.iconType"
77
+ :title="iconDropdown.tooltip"
78
+ />
79
+ <!-- end CmdIcon -->
69
80
  <!-- end custom dropdown-icon -->
70
81
  </a>
71
82
  <!-- end default/selected-option-->
@@ -79,14 +90,18 @@
79
90
  :class="{'active' : option.value === modelValue}"
80
91
  :title="option.tooltip"
81
92
  >
82
- <span v-if="option.iconClass" :class="option.iconClass"></span>
93
+ <!-- begin CmdIcon -->
94
+ <CmdIcon v-if="option.iconClass" :iconClass="option.iconClass" :type="option.iconType" />
95
+ <!-- end CmdIcon -->
83
96
  <span v-if="option.text">{{ option.text }}</span>
84
97
  </a>
85
98
  <!-- end type 'href' -->
86
99
 
87
100
  <!-- begin type 'router' -->
88
101
  <router-link v-if="optionLinkType === 'router'" to="#" @click.prevent="selectOption(option.value)" :class="{'active' : option.value === modelValue}">
89
- <span v-if="option.iconClass" :class="option.iconClass"></span>
102
+ <!-- begin CmdIcon -->
103
+ <CmdIcon v-if="option.iconClass" :iconClass="option.iconClass" :type="option.iconType" />
104
+ <!-- end CmdIcon -->
90
105
  <span>{{ option.text }}</span>
91
106
  </router-link>
92
107
  <!-- end type 'router' -->
@@ -119,13 +134,15 @@
119
134
  <span class="color" :style="'background: ' + option.value"></span>
120
135
  <span>{{ option.text }}</span>
121
136
  </a>
122
- <!-- end color-boxe -->
137
+ <!-- end color-boxes -->
123
138
  </li>
124
139
 
125
140
  <!-- begin (de)select all options -->
126
141
  <li v-if="showSelectAllOptions && type === 'checkboxOptions'" class="select-all-options">
127
142
  <a href="#" @click.prevent="toggleAllOptions">
128
- <span :class="selectAllOptionsIcon"></span>
143
+ <!-- begin CmdIcon -->
144
+ <CmdIcon :iconClass="selectAllOptionsIcon.iconClass" :type="selectAllOptionsIcon.iconType" />
145
+ <!-- end CmdIcon -->
129
146
  <span>{{ selectAllOptionsText }}</span>
130
147
  </a>
131
148
  </li>
@@ -152,6 +169,7 @@ import Identifier from "../mixins/Identifier"
152
169
  import Tooltip from "../mixins/Tooltip"
153
170
 
154
171
  // import components
172
+ import CmdIcon from "./CmdIcon"
155
173
  import CmdTooltipForInputElements from "./CmdTooltipForInputElements"
156
174
 
157
175
  export default {
@@ -165,6 +183,7 @@ export default {
165
183
  Tooltip
166
184
  ],
167
185
  components: {
186
+ CmdIcon,
168
187
  CmdTooltipForInputElements
169
188
  },
170
189
  data() {
@@ -234,12 +253,13 @@ export default {
234
253
  * @requiredForAccessibility: partial
235
254
  * @defaultIcon: icon-single-arrow-down
236
255
  */
237
- dropdownIcon: {
256
+ iconDropdown: {
238
257
  type: Object,
239
258
  default() {
240
259
  return {
241
260
  iconClass: "icon-single-arrow-down",
242
- tooltip: "Toggle dropdown visibility"
261
+ tooltip: "Toggle dropdown visibility",
262
+ iconType: "auto"
243
263
  }
244
264
  }
245
265
  },
@@ -272,6 +292,18 @@ export default {
272
292
  textPleaseSelect: {
273
293
  type: String,
274
294
  default: "Please select\u2026"
295
+ },
296
+ /**
297
+ * set icon for "select all"-option
298
+ */
299
+ iconSelectAllOptions: {
300
+ type: Object,
301
+ default() {
302
+ return {
303
+ iconClass: "icon-check",
304
+ iconType: "auto"
305
+ }
306
+ }
275
307
  }
276
308
  },
277
309
  computed: {
@@ -347,9 +379,6 @@ export default {
347
379
  return "Deselect all options"
348
380
  }
349
381
  return "Select all options"
350
- },
351
- selectAllOptionsIcon() {
352
- return "icon-check"
353
382
  }
354
383
  },
355
384
  mounted() {
@@ -23,18 +23,22 @@
23
23
  <a v-if="fancyboxOptions.printButtons && fancyboxOptions.printButtons.color && fancyboxOptions.printButtons.color.show"
24
24
  href="#"
25
25
  class="button primary"
26
- :class="fancyboxOptions.printButtons.color.iconClass"
27
26
  :title="fancyboxOptions.printButtons.color.tooltip"
28
27
  id="print-color"
29
28
  @click.prevent="printInGrayscale = false">
29
+ <!-- begin CmdIcon -->
30
+ <CmdIcon :iconClass="fancyboxOptions.printButtons.color.iconClass" :type="fancyboxOptions.printButtons.color.iconType" />
31
+ <!-- end CmdIcon -->
30
32
  </a>
31
33
  <a v-if="fancyboxOptions.printButtons && fancyboxOptions.printButtons.grayscale && fancyboxOptions.printButtons.grayscale.show"
32
34
  href="#"
33
35
  class="button primary"
34
- :class="fancyboxOptions.printButtons.grayscale.iconClass"
35
36
  :title="fancyboxOptions.printButtons.grayscale.tooltip"
36
37
  id="print-grayscale"
37
38
  @click.prevent="printInGrayscale = true">
39
+ <!-- begin CmdIcon -->
40
+ <CmdIcon :iconClass="fancyboxOptions.printButtons.grayscale.iconClass" :type="fancyboxOptions.printButtons.grayscale.iconType" />
41
+ <!-- end CmdIcon -->
38
42
  </a>
39
43
  <!-- end print buttons -->
40
44
 
@@ -43,10 +47,12 @@
43
47
  href="#"
44
48
  class="button primary"
45
49
  id="close-dialog"
46
- :class="fancyboxOptions.closeIcon.iconClass"
47
50
  :title="fancyboxOptions.closeIcon.tooltip"
48
51
  ref="close-dialog"
49
52
  @click.prevent="close">
53
+ <!-- begin CmdIcon -->
54
+ <CmdIcon :iconClass="fancyboxOptions.closeIcon.iconClass" :type="fancyboxOptions.closeIcon.iconType" />
55
+ <!-- end CmdIcon -->
50
56
  </a>
51
57
  <!-- end close-icon -->
52
58
  </div>
@@ -105,6 +111,7 @@ import Identifier from "../mixins/Identifier"
105
111
 
106
112
  // import components
107
113
  import CmdHeadline from "./CmdHeadline"
114
+ import CmdIcon from "./CmdIcon"
108
115
  import CmdSlideButton from "./CmdSlideButton.vue"
109
116
  import CmdThumbnailScroller from './CmdThumbnailScroller.vue'
110
117
 
@@ -122,6 +129,7 @@ const FancyBox = defineComponent({
122
129
  name: "CmdFancyBox",
123
130
  components: {
124
131
  CmdHeadline,
132
+ CmdIcon,
125
133
  CmdSlideButton,
126
134
  CmdThumbnailScroller
127
135
  },
@@ -47,11 +47,13 @@
47
47
  <a v-if="$attrs.required || inputRequirements.length"
48
48
  href="#"
49
49
  @click.prevent
50
- :class="getStatusIconClass"
51
50
  :title="validationTooltip"
52
51
  :aria-errormessage="tooltipId"
53
52
  aria-live="assertive"
54
53
  :id="tooltipId">
54
+ <!-- begin CmdIcon -->
55
+ <CmdIcon :iconClass="getStatusIconClass" />
56
+ <!-- end CmdIcon -->
55
57
  </a>
56
58
  </span>
57
59
  <!-- end label-text (+ required asterisk) -->
@@ -84,12 +86,14 @@
84
86
  <!-- begin show-password-icon -->
85
87
  <a v-if="$attrs.type === 'password'"
86
88
  href="#"
87
- :class="['place-inside', iconPasswordVisible.iconClass]"
88
89
  @mousedown.prevent="showPassword"
89
90
  @mouseup.prevent="hidePassword"
90
91
  @mouseleave.prevent="hidePassword"
91
92
  @click.prevent
92
93
  :title="iconPasswordVisible.tooltip">
94
+ <!-- begin CmdIcon -->
95
+ <CmdIcon :iconClass="['place-inside', iconPasswordVisible.iconClass]" />
96
+ <!-- end CmdIcon -->
93
97
  </a>
94
98
  <!-- end show-password-icon -->
95
99
 
@@ -187,9 +191,15 @@
187
191
  :value="modelValue"
188
192
  />
189
193
  <a v-if="showSearchButton" href="#" :class="['button no-flex', {disabled: $attrs.disabled}]" :title="iconSearch.tooltip" @click.prevent="executeSearch">
190
- <span :class="iconSearch.iconClass"></span>
194
+ <!-- begin CmdIcon -->
195
+ <CmdIcon :iconClass="iconSearch.iconClass" />
196
+ <!-- end CmdIcon -->
197
+ </a>
198
+ <a v-if="iconDelete.show" href="#" @click.prevent="$emit('update:modelValue', '')" :title="iconDelete.tooltip">
199
+ <!-- begin CmdIcon -->
200
+ <CmdIcon :iconClass="iconDelete.iconClass" :type="iconDelete.iconType" />
201
+ <!-- end CmdIcon -->
191
202
  </a>
192
- <a v-if="iconDelete.show" href="#" @click.prevent="$emit('update:modelValue', '')" :class="iconDelete.iconClass" :title="iconDelete.tooltip"></a>
193
203
  </span>
194
204
  </template>
195
205
  </label>
@@ -197,12 +207,24 @@
197
207
 
198
208
  <!-- begin button -->
199
209
  <button v-else class="button" v-bind="buttonAttrs">
200
- <span v-if="nativeButton?.icon?.show && (nativeButton?.icon?.position === 'before' || !nativeButton?.icon?.position)" :class="nativeButton?.icon?.iconClass"></span>
210
+ <!-- begin CmdIcon -->
211
+ <CmdIcon
212
+ v-if="nativeButton?.icon?.show && (nativeButton?.icon?.position === 'before' || !nativeButton?.icon?.position)"
213
+ :iconClass="nativeButton?.icon?.iconClass"
214
+ :type="nativeButton?.icon?.iconType"
215
+ />
216
+ <!-- end CmdIcon -->
201
217
  <span v-if="nativeButton?.icon && nativeButton?.text">{{ nativeButton.text }}</span>
202
218
  <template v-else>
203
219
  {{ nativeButton.text }}
204
220
  </template>
205
- <span v-if="nativeButton?.icon?.show && nativeButton?.icon?.position === 'after'" :class="nativeButton?.icon?.iconClass"></span>
221
+ <!-- begin CmdIcon -->
222
+ <CmdIcon
223
+ v-if="nativeButton?.icon?.show && nativeButton?.icon?.position === 'after'"
224
+ :iconClass="nativeButton?.icon?.iconClass"
225
+ :type="nativeButton?.icon?.iconType"
226
+ />
227
+ <!-- end CmdIcon -->
206
228
  </button>
207
229
  <!-- end button -->
208
230
  </template>
@@ -216,6 +238,7 @@ import Identifier from "../mixins/Identifier.js"
216
238
  import Tooltip from "../mixins/Tooltip.js"
217
239
 
218
240
  // import components
241
+ import CmdIcon from "./CmdIcon"
219
242
  import CmdTooltipForInputElements from "./CmdTooltipForInputElements"
220
243
 
221
244
  const TYPES_WITHOUT_MAXLENGTH = ["color", "date", "datetime-local", "file", "number", "range"]
@@ -224,6 +247,7 @@ export default {
224
247
  inheritAttrs: false,
225
248
  name: "CmdFormElement",
226
249
  components: {
250
+ CmdIcon,
227
251
  CmdTooltipForInputElements
228
252
  },
229
253
  mixins: [
@@ -2,20 +2,27 @@
2
2
  <ul v-if="options.length" class="cmd-form-filters">
3
3
  <li v-if="options.length > 1">
4
4
  <a href="#" @click.prevent="deleteAllFilters">
5
- <span v-if="linkDeleteAllFilters.icon && linkDeleteAllFilters.icon.show" :class="linkDeleteAllFilters.icon.iconClass" :title="linkDeleteAllFilters.icon.tooltip"></span>
5
+ <!-- begin CmdIcon -->
6
+ <CmdIcon v-if="linkDeleteAllFilters.icon && linkDeleteAllFilters.icon.show" :iconClass="linkDeleteAllFilters.icon.iconClass" :title="linkDeleteAllFilters.icon.tooltip" />
7
+ <!-- end CmdIcon -->
6
8
  <span v-if="linkDeleteAllFilters.text">{{ linkDeleteAllFilters.text }}</span>
7
9
  </a>
8
10
  </li>
9
11
  <li v-for="(option, index) in options" :key="index">
10
- <a href="#" @click.prevent="deleteClickedFilter(index)" :title="deleteFilter.icon.tooltip">
12
+ <a href="#" @click.prevent="deleteClickedFilter(index)" :title="deleteFilterIcon.tooltip">
11
13
  <span>{{ selectedOptionsName(option) }}</span>
12
- <span :class="deleteFilter.icon.iconClass"></span>
14
+ <!-- begin CmdIcon -->
15
+ <CmdIcon :iconClass="deleteFilterIcon.iconClass" :type="deleteFilterIcon.iconType" />
16
+ <!-- end CmdIcon -->
13
17
  </a>
14
18
  </li>
15
19
  </ul>
16
20
  </template>
17
21
 
18
22
  <script>
23
+ // import components
24
+ import CmdIcon from "./CmdIcon"
25
+
19
26
  export default {
20
27
  name: "CmdFormFilters",
21
28
  data() {
@@ -23,6 +30,9 @@ export default {
23
30
  options: []
24
31
  }
25
32
  },
33
+ components: {
34
+ CmdIcon
35
+ },
26
36
  props: {
27
37
  /**
28
38
  * model-value to support v-model
@@ -54,14 +64,13 @@ export default {
54
64
  *
55
65
  * @requiredForAccessibility: partial
56
66
  */
57
- deleteFilter: {
67
+ deleteFilterIcon: {
58
68
  type: Object,
59
69
  default() {
60
70
  return {
61
- icon: {
62
- iconClass: "icon-error-circle",
63
- tooltip: "Delete this filter"
64
- }
71
+ iconClass: "icon-error-circle",
72
+ tooltip: "Delete this filter",
73
+ type: "auto"
65
74
  }
66
75
  }
67
76
  },
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div :class="['cmd-headline', { 'has-pre-headline-text': preHeadlineText, 'has-icon': iconClass}]">
3
3
  <!-- begin CmdIcon -->
4
- <CmdIcon v-if="iconClass" :iconClass="iconClass" />
4
+ <CmdIcon v-if="headlineIcon" :iconClass="headlineIcon.iconClass" :type="headlineIcon.iconType" />
5
5
  <!-- end CmdIcon -->
6
6
 
7
7
  <div v-if="preHeadlineText">
@@ -54,8 +54,8 @@ export default {
54
54
  /**
55
55
  * icon-class for icon shown left/before headline
56
56
  */
57
- iconClass: {
58
- type: String,
57
+ headlineIcon: {
58
+ type: Object,
59
59
  required: false
60
60
  }
61
61
  },
@@ -37,6 +37,9 @@
37
37
  :aria-errormessage="tooltipId"
38
38
  aria-live="assertive"
39
39
  :id="tooltipId">
40
+ <!-- begin CmdIcon -->
41
+ <CmdIcon :iconClass="getStatusIconClass" />
42
+ <!-- end CmdIcon -->
40
43
  </a>
41
44
  </span>
42
45
  <span v-if="!useSlot" :class="['flex-container', {'no-flex': !stretchHorizontally, 'no-gap': multipleSwitch}]">
@@ -50,7 +53,9 @@
50
53
  :disabled="disabled"
51
54
  :class="{'replace-input-type': replaceInputType, 'toggle-switch': toggleSwitch}"
52
55
  />
53
- <span v-if="multipleSwitch && inputElement.iconClass" :class="inputElement.iconClass"></span>
56
+ <!-- begin CmdIcon -->
57
+ <CmdIcon v-if="multipleSwitch && inputElement.iconClass" :iconClass="inputElement.iconClass" :type="inputElement.iconType" />
58
+ <!-- end CmdIcon -->
54
59
  <span v-if="inputElement.labelText">{{ inputElement.labelText }}</span>
55
60
  </label>
56
61
  </span>
@@ -72,10 +77,12 @@ import Identifier from "../mixins/Identifier"
72
77
  import Tooltip from "../mixins/Tooltip.js"
73
78
 
74
79
  // import components
80
+ import CmdIcon from "./CmdIcon"
75
81
  import CmdTooltipForInputElements from "./CmdTooltipForInputElements"
76
82
 
77
83
  export default {
78
84
  components: {
85
+ CmdIcon,
79
86
  CmdTooltipForInputElements
80
87
  },
81
88
  mixins: [