comand-component-library 3.3.4 → 3.3.6

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 (36) 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/CmdCompanyLogo.vue +0 -2
  11. package/src/components/CmdFakeSelect.vue +41 -12
  12. package/src/components/CmdFancyBox.vue +11 -3
  13. package/src/components/CmdFormElement.vue +30 -6
  14. package/src/components/CmdFormFilters.vue +17 -8
  15. package/src/components/CmdHeadline.vue +3 -3
  16. package/src/components/CmdInputGroup.vue +8 -1
  17. package/src/components/CmdListOfLinks.vue +9 -3
  18. package/src/components/CmdListOfRequirements.vue +18 -11
  19. package/src/components/CmdLoginForm.vue +46 -27
  20. package/src/components/CmdMainNavigation.vue +30 -10
  21. package/src/components/CmdMultistepFormProgressBar.vue +15 -3
  22. package/src/components/CmdPager.vue +10 -2
  23. package/src/components/CmdShareButtons.vue +9 -3
  24. package/src/components/CmdSiteHeader.vue +3 -1
  25. package/src/components/CmdSiteSearch.vue +30 -5
  26. package/src/components/CmdSystemMessage.vue +10 -5
  27. package/src/components/CmdTable.vue +12 -2
  28. package/src/components/CmdTabs.vue +9 -1
  29. package/src/components/CmdTooltip.vue +6 -2
  30. package/src/components/CmdUploadForm.vue +116 -47
  31. package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +6 -1
  32. package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +1 -1
  33. package/src/documentation/generated/CmdHeadlinePropertyDescriptions.json +1 -1
  34. package/src/documentation/generated/CmdSiteSearchPropertyDescriptions.json +6 -1
  35. package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +16 -16
  36. 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.4",
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
@@ -108,8 +108,6 @@ export default {
108
108
  @import '../assets/styles/variables';
109
109
 
110
110
  .cmd-company-logo {
111
- grid-area: company-logo;
112
-
113
111
  > a {
114
112
  display: block;
115
113
 
@@ -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: [