primevue 4.3.2 → 4.3.4

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 (168) hide show
  1. package/accordionheader/AccordionHeader.vue +1 -1
  2. package/accordionheader/index.d.ts +6 -1
  3. package/accordionheader/index.mjs +1 -1
  4. package/accordionheader/index.mjs.map +1 -1
  5. package/autocomplete/AutoComplete.vue +60 -11
  6. package/autocomplete/index.d.ts +4 -0
  7. package/autocomplete/index.mjs +96 -59
  8. package/autocomplete/index.mjs.map +1 -1
  9. package/cascadeselect/CascadeSelect.vue +4 -1
  10. package/cascadeselect/CascadeSelectSub.vue +1 -1
  11. package/cascadeselect/index.mjs +22 -20
  12. package/cascadeselect/index.mjs.map +1 -1
  13. package/checkbox/Checkbox.vue +1 -1
  14. package/checkbox/index.mjs +2 -1
  15. package/checkbox/index.mjs.map +1 -1
  16. package/chip/BaseChip.vue +1 -1
  17. package/chip/index.d.ts +1 -1
  18. package/chip/index.mjs +1 -1
  19. package/chip/index.mjs.map +1 -1
  20. package/colorpicker/ColorPicker.vue +5 -1
  21. package/colorpicker/index.mjs +5 -1
  22. package/colorpicker/index.mjs.map +1 -1
  23. package/confirmationoptions/index.d.ts +1 -1
  24. package/confirmdialog/index.d.ts +4 -0
  25. package/contextmenu/index.mjs +12 -12
  26. package/contextmenu/index.mjs.map +1 -1
  27. package/datatable/BodyCell.vue +1 -0
  28. package/datatable/ColumnFilter.vue +3 -3
  29. package/datatable/DataTable.vue +103 -44
  30. package/datatable/HeaderCheckbox.vue +2 -2
  31. package/datatable/RowCheckbox.vue +1 -1
  32. package/datatable/TableBody.vue +12 -1
  33. package/datatable/TableFooter.vue +9 -1
  34. package/datatable/TableHeader.vue +9 -2
  35. package/datatable/index.d.ts +37 -29
  36. package/datatable/index.mjs +175 -111
  37. package/datatable/index.mjs.map +1 -1
  38. package/datatable/style/index.mjs +4 -4
  39. package/datatable/style/index.mjs.map +1 -1
  40. package/dataview/DataView.vue +4 -0
  41. package/dataview/index.d.ts +63 -6
  42. package/dataview/index.mjs +6 -2
  43. package/dataview/index.mjs.map +1 -1
  44. package/datepicker/DatePicker.vue +379 -236
  45. package/datepicker/index.d.ts +156 -0
  46. package/datepicker/index.mjs +676 -406
  47. package/datepicker/index.mjs.map +1 -1
  48. package/drawer/Drawer.vue +30 -20
  49. package/drawer/index.d.ts +10 -0
  50. package/drawer/index.mjs +42 -25
  51. package/drawer/index.mjs.map +1 -1
  52. package/fileupload/FileUpload.vue +3 -4
  53. package/fileupload/index.mjs +8 -10
  54. package/fileupload/index.mjs.map +1 -1
  55. package/galleria/Galleria.vue +39 -3
  56. package/galleria/index.mjs +40 -3
  57. package/galleria/index.mjs.map +1 -1
  58. package/image/Image.vue +1 -1
  59. package/image/index.mjs +1 -1
  60. package/image/index.mjs.map +1 -1
  61. package/inplace/Inplace.vue +1 -1
  62. package/inplace/index.mjs +3 -2
  63. package/inplace/index.mjs.map +1 -1
  64. package/inputmask/InputMask.vue +3 -3
  65. package/inputmask/index.d.ts +3 -3
  66. package/inputmask/index.mjs +3 -3
  67. package/inputmask/index.mjs.map +1 -1
  68. package/inputnumber/BaseInputNumber.vue +4 -0
  69. package/inputnumber/InputNumber.vue +3 -10
  70. package/inputnumber/index.mjs +8 -9
  71. package/inputnumber/index.mjs.map +1 -1
  72. package/keyfilter/index.mjs +12 -19
  73. package/keyfilter/index.mjs.map +1 -1
  74. package/listbox/Listbox.vue +10 -2
  75. package/listbox/index.mjs +38 -29
  76. package/listbox/index.mjs.map +1 -1
  77. package/megamenu/index.d.ts +1 -1
  78. package/megamenu/index.mjs +11 -11
  79. package/megamenu/index.mjs.map +1 -1
  80. package/menu/Menu.vue +12 -6
  81. package/menu/Menuitem.vue +14 -4
  82. package/menu/index.d.ts +3 -12
  83. package/menu/index.mjs +40 -20
  84. package/menu/index.mjs.map +1 -1
  85. package/menubar/index.mjs +16 -16
  86. package/menubar/index.mjs.map +1 -1
  87. package/metergroup/MeterGroup.vue +9 -3
  88. package/metergroup/MeterGroupLabel.vue +10 -1
  89. package/metergroup/index.d.ts +1 -1
  90. package/metergroup/index.mjs +32 -7
  91. package/metergroup/index.mjs.map +1 -1
  92. package/multiselect/MultiSelect.vue +40 -6
  93. package/multiselect/index.d.ts +1 -1
  94. package/multiselect/index.mjs +100 -68
  95. package/multiselect/index.mjs.map +1 -1
  96. package/organizationchart/OrganizationChartNode.vue +1 -1
  97. package/organizationchart/index.mjs.map +1 -1
  98. package/organizationchart/style/index.mjs +11 -6
  99. package/organizationchart/style/index.mjs.map +1 -1
  100. package/package.json +6 -6
  101. package/paginator/Paginator.vue +2 -0
  102. package/paginator/index.d.ts +8 -0
  103. package/paginator/index.mjs +3 -1
  104. package/paginator/index.mjs.map +1 -1
  105. package/panel/Panel.vue +2 -2
  106. package/panel/index.mjs +2 -2
  107. package/panel/index.mjs.map +1 -1
  108. package/panelmenu/PanelMenuList.vue +1 -1
  109. package/panelmenu/index.mjs +4 -4
  110. package/panelmenu/index.mjs.map +1 -1
  111. package/password/Password.vue +28 -6
  112. package/password/index.mjs +44 -16
  113. package/password/index.mjs.map +1 -1
  114. package/popover/Popover.vue +1 -1
  115. package/popover/index.mjs +1 -2
  116. package/popover/index.mjs.map +1 -1
  117. package/progressbar/ProgressBar.vue +4 -4
  118. package/progressbar/index.mjs +8 -12
  119. package/progressbar/index.mjs.map +1 -1
  120. package/scrolltop/ScrollTop.vue +2 -2
  121. package/scrolltop/index.mjs +4 -2
  122. package/scrolltop/index.mjs.map +1 -1
  123. package/select/Select.vue +68 -13
  124. package/select/index.mjs +128 -77
  125. package/select/index.mjs.map +1 -1
  126. package/selectbutton/index.d.ts +0 -24
  127. package/splitter/Splitter.vue +10 -2
  128. package/splitter/index.d.ts +1 -1
  129. package/splitter/index.mjs +19 -7
  130. package/splitter/index.mjs.map +1 -1
  131. package/splitter/style/index.mjs +1 -13
  132. package/splitter/style/index.mjs.map +1 -1
  133. package/step/Step.vue +27 -9
  134. package/step/index.mjs +46 -16
  135. package/step/index.mjs.map +1 -1
  136. package/steppanel/StepPanel.vue +11 -5
  137. package/steppanel/index.d.ts +8 -0
  138. package/steppanel/index.mjs +25 -10
  139. package/steppanel/index.mjs.map +1 -1
  140. package/stepper/StepperSeparator.vue +5 -2
  141. package/tab/Tab.vue +4 -4
  142. package/tab/index.mjs +4 -4
  143. package/tab/index.mjs.map +1 -1
  144. package/tablist/TabList.vue +3 -0
  145. package/tablist/index.mjs +1 -0
  146. package/tablist/index.mjs.map +1 -1
  147. package/tabpanel/TabPanel.vue +2 -2
  148. package/tabpanel/index.mjs +2 -2
  149. package/tabpanel/index.mjs.map +1 -1
  150. package/tieredmenu/TieredMenu.vue +1 -1
  151. package/tieredmenu/index.mjs +13 -14
  152. package/tieredmenu/index.mjs.map +1 -1
  153. package/tooltip/index.mjs +47 -30
  154. package/tooltip/index.mjs.map +1 -1
  155. package/tree/Tree.vue +14 -2
  156. package/tree/TreeNode.vue +2 -2
  157. package/tree/index.mjs +28 -10
  158. package/tree/index.mjs.map +1 -1
  159. package/treeselect/TreeSelect.vue +4 -1
  160. package/treeselect/index.mjs +4 -2
  161. package/treeselect/index.mjs.map +1 -1
  162. package/umd/primevue.min.js +12213 -1
  163. package/virtualscroller/VirtualScroller.vue +13 -2
  164. package/virtualscroller/index.mjs +28 -18
  165. package/virtualscroller/index.mjs.map +1 -1
  166. package/virtualscroller/style/index.mjs +1 -1
  167. package/virtualscroller/style/index.mjs.map +1 -1
  168. package/web-types.json +1 -1
@@ -1,13 +1,13 @@
1
1
  <template>
2
- <div :class="cx('root')" role="meter" :aria-valuemin="min" :aria-valuemax="max" :aria-valuenow="totalPercent" v-bind="ptmi('root')">
2
+ <div :class="cx('root')" role="meter" :aria-valuemin="min" :aria-valuemax="max" :aria-valuenow="totalPercent" :data-p="dataP" v-bind="ptmi('root')">
3
3
  <slot v-if="labelPosition === 'start'" name="label" :value="value" :totalPercent="totalPercent" :percentages="percentages">
4
4
  <MeterGroupLabel :value="value" :labelPosition="labelPosition" :labelOrientation="labelOrientation" :unstyled="unstyled" :pt="pt" />
5
5
  </slot>
6
6
  <slot name="start" :value="value" :totalPercent="totalPercent" :percentages="percentages" />
7
- <div :class="cx('meters')" v-bind="ptm('meters')">
7
+ <div :class="cx('meters')" :data-p="dataP" v-bind="ptm('meters')">
8
8
  <template v-for="(val, index) in value" :key="index">
9
9
  <slot name="meter" :value="val" :index="index" :class="cx('meter')" :orientation="orientation" :size="percentValue(val.value)" :totalPercent="totalPercent">
10
- <span v-if="percent(val.value)" :class="cx('meter')" :style="meterCalculatedStyles(val)" v-bind="getPTOptions('meter', val, index)" />
10
+ <span v-if="percent(val.value)" :class="cx('meter')" :style="meterCalculatedStyles(val)" :data-p="dataP" v-bind="getPTOptions('meter', val, index)" />
11
11
  </slot>
12
12
  </template>
13
13
  </div>
@@ -19,6 +19,7 @@
19
19
  </template>
20
20
 
21
21
  <script>
22
+ import { cn } from '@primeuix/utils';
22
23
  import BaseMeterGroup from './BaseMeterGroup.vue';
23
24
  import MeterGroupLabel from './MeterGroupLabel.vue';
24
25
 
@@ -65,6 +66,11 @@ export default {
65
66
  });
66
67
 
67
68
  return sumsArray;
69
+ },
70
+ dataP() {
71
+ return cn({
72
+ [this.orientation]: this.orientation
73
+ });
68
74
  }
69
75
  },
70
76
  components: {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <ol :class="cx('labelList')" v-bind="ptm('labelList')">
2
+ <ol :class="cx('labelList')" :data-p="dataP" v-bind="ptm('labelList')">
3
3
  <li v-for="(val, index) in value" :key="index + '_label'" :class="cx('label')" v-bind="ptm('label')">
4
4
  <slot name="icon" :value="val" :class="cx('labelIcon')">
5
5
  <i v-if="val.icon" :class="[val.icon, cx('labelIcon')]" :style="{ color: val.color }" v-bind="ptm('labelIcon')" />
@@ -11,6 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <script>
14
+ import { cn } from '@primeuix/utils';
14
15
  import BaseComponent from '@primevue/core/basecomponent';
15
16
 
16
17
  export default {
@@ -18,6 +19,7 @@ export default {
18
19
  hostName: 'MeterGroup',
19
20
  extends: BaseComponent,
20
21
  inheritAttrs: false,
22
+ inject: ['$pcMeterGroup'],
21
23
  props: {
22
24
  value: {
23
25
  type: Array,
@@ -31,6 +33,13 @@ export default {
31
33
  type: String,
32
34
  default: 'horizontal'
33
35
  }
36
+ },
37
+ computed: {
38
+ dataP() {
39
+ return cn({
40
+ [this.$pcMeterGroup.labelOrientation]: this.$pcMeterGroup.labelOrientation
41
+ });
42
+ }
34
43
  }
35
44
  };
36
45
  </script>
@@ -118,7 +118,7 @@ export interface MeterItem {
118
118
  /**
119
119
  * Current color of the meter item.
120
120
  */
121
- color: string;
121
+ color?: string;
122
122
  /**
123
123
  * Current icon of the meter item.
124
124
  */
@@ -1,3 +1,4 @@
1
+ import { cn } from '@primeuix/utils';
1
2
  import BaseComponent from '@primevue/core/basecomponent';
2
3
  import MeterGroupStyle from 'primevue/metergroup/style';
3
4
  import { createElementBlock, openBlock, mergeProps, Fragment, renderList, renderSlot, createElementVNode, normalizeClass, toDisplayString, resolveComponent, createCommentVNode, createVNode } from 'vue';
@@ -40,11 +41,16 @@ var script$2 = {
40
41
  }
41
42
  };
42
43
 
44
+ function _typeof$1(o) { "@babel/helpers - typeof"; return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof$1(o); }
45
+ function _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; }
46
+ function _toPropertyKey$1(t) { var i = _toPrimitive$1(t, "string"); return "symbol" == _typeof$1(i) ? i : i + ""; }
47
+ function _toPrimitive$1(t, r) { if ("object" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if ("object" != _typeof$1(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
43
48
  var script$1 = {
44
49
  name: 'MeterGroupLabel',
45
50
  hostName: 'MeterGroup',
46
51
  "extends": BaseComponent,
47
52
  inheritAttrs: false,
53
+ inject: ['$pcMeterGroup'],
48
54
  props: {
49
55
  value: {
50
56
  type: Array,
@@ -58,12 +64,19 @@ var script$1 = {
58
64
  type: String,
59
65
  "default": 'horizontal'
60
66
  }
67
+ },
68
+ computed: {
69
+ dataP: function dataP() {
70
+ return cn(_defineProperty$1({}, this.$pcMeterGroup.labelOrientation, this.$pcMeterGroup.labelOrientation));
71
+ }
61
72
  }
62
73
  };
63
74
 
75
+ var _hoisted_1$1 = ["data-p"];
64
76
  function render$1(_ctx, _cache, $props, $setup, $data, $options) {
65
77
  return openBlock(), createElementBlock("ol", mergeProps({
66
- "class": _ctx.cx('labelList')
78
+ "class": _ctx.cx('labelList'),
79
+ "data-p": $options.dataP
67
80
  }, _ctx.ptm('labelList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.value, function (val, index) {
68
81
  return openBlock(), createElementBlock("li", mergeProps({
69
82
  key: index + '_label',
@@ -92,11 +105,15 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
92
105
  "class": _ctx.cx('labelText'),
93
106
  ref_for: true
94
107
  }, _ctx.ptm('labelText')), toDisplayString(val.label) + " (" + toDisplayString(_ctx.$parentInstance.percentValue(val.value)) + ")", 17)], 16);
95
- }), 128))], 16);
108
+ }), 128))], 16, _hoisted_1$1);
96
109
  }
97
110
 
98
111
  script$1.render = render$1;
99
112
 
113
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
114
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; }
115
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
116
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
100
117
  var script = {
101
118
  name: 'MeterGroup',
102
119
  "extends": script$2,
@@ -140,6 +157,9 @@ var script = {
140
157
  sumsArray.push(sum);
141
158
  });
142
159
  return sumsArray;
160
+ },
161
+ dataP: function dataP() {
162
+ return cn(_defineProperty({}, this.orientation, this.orientation));
143
163
  }
144
164
  },
145
165
  components: {
@@ -147,7 +167,9 @@ var script = {
147
167
  }
148
168
  };
149
169
 
150
- var _hoisted_1 = ["aria-valuemin", "aria-valuemax", "aria-valuenow"];
170
+ var _hoisted_1 = ["aria-valuemin", "aria-valuemax", "aria-valuenow", "data-p"];
171
+ var _hoisted_2 = ["data-p"];
172
+ var _hoisted_3 = ["data-p"];
151
173
  function render(_ctx, _cache, $props, $setup, $data, $options) {
152
174
  var _component_MeterGroupLabel = resolveComponent("MeterGroupLabel");
153
175
  return openBlock(), createElementBlock("div", mergeProps({
@@ -155,7 +177,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
155
177
  role: "meter",
156
178
  "aria-valuemin": _ctx.min,
157
179
  "aria-valuemax": _ctx.max,
158
- "aria-valuenow": $options.totalPercent
180
+ "aria-valuenow": $options.totalPercent,
181
+ "data-p": $options.dataP
159
182
  }, _ctx.ptmi('root')), [_ctx.labelPosition === 'start' ? renderSlot(_ctx.$slots, "label", {
160
183
  key: 0,
161
184
  value: _ctx.value,
@@ -174,7 +197,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
174
197
  totalPercent: $options.totalPercent,
175
198
  percentages: $options.percentages
176
199
  }), createElementVNode("div", mergeProps({
177
- "class": _ctx.cx('meters')
200
+ "class": _ctx.cx('meters'),
201
+ "data-p": $options.dataP
178
202
  }, _ctx.ptm('meters')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.value, function (val, index) {
179
203
  return renderSlot(_ctx.$slots, "meter", {
180
204
  key: index,
@@ -189,10 +213,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
189
213
  key: 0,
190
214
  "class": _ctx.cx('meter'),
191
215
  style: $options.meterCalculatedStyles(val),
216
+ "data-p": $options.dataP,
192
217
  ref_for: true
193
- }, $options.getPTOptions('meter', val, index)), null, 16)) : createCommentVNode("", true)];
218
+ }, $options.getPTOptions('meter', val, index)), null, 16, _hoisted_3)) : createCommentVNode("", true)];
194
219
  });
195
- }), 128))], 16), renderSlot(_ctx.$slots, "end", {
220
+ }), 128))], 16, _hoisted_2), renderSlot(_ctx.$slots, "end", {
196
221
  value: _ctx.value,
197
222
  totalPercent: $options.totalPercent,
198
223
  percentages: $options.percentages
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/metergroup/BaseMeterGroup.vue","../../src/metergroup/MeterGroupLabel.vue","../../src/metergroup/MeterGroupLabel.vue?vue&type=template&id=4d13db80&lang.js","../../src/metergroup/MeterGroup.vue","../../src/metergroup/MeterGroup.vue?vue&type=template&id=4050d94c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MeterGroupStyle from 'primevue/metergroup/style';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n orientation: {\n type: String,\n default: 'horizontal'\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n },\n style: MeterGroupStyle,\n provide() {\n return {\n $pcMeterGroup: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ol :class=\"cx('labelList')\" v-bind=\"ptm('labelList')\">\n <li v-for=\"(val, index) in value\" :key=\"index + '_label'\" :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"icon\" :value=\"val\" :class=\"cx('labelIcon')\">\n <i v-if=\"val.icon\" :class=\"[val.icon, cx('labelIcon')]\" :style=\"{ color: val.color }\" v-bind=\"ptm('labelIcon')\" />\n <span v-else :class=\"cx('labelMarker')\" :style=\"{ backgroundColor: val.color }\" v-bind=\"ptm('labelMarker')\" />\n </slot>\n <span :class=\"cx('labelText')\" v-bind=\"ptm('labelText')\">{{ val.label }} ({{ $parentInstance.percentValue(val.value) }})</span>\n </li>\n </ol>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\n\nexport default {\n name: 'MeterGroupLabel',\n hostName: 'MeterGroup',\n extends: BaseComponent,\n inheritAttrs: false,\n props: {\n value: {\n type: Array,\n default: null\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n }\n};\n</script>\n","<template>\n <ol :class=\"cx('labelList')\" v-bind=\"ptm('labelList')\">\n <li v-for=\"(val, index) in value\" :key=\"index + '_label'\" :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"icon\" :value=\"val\" :class=\"cx('labelIcon')\">\n <i v-if=\"val.icon\" :class=\"[val.icon, cx('labelIcon')]\" :style=\"{ color: val.color }\" v-bind=\"ptm('labelIcon')\" />\n <span v-else :class=\"cx('labelMarker')\" :style=\"{ backgroundColor: val.color }\" v-bind=\"ptm('labelMarker')\" />\n </slot>\n <span :class=\"cx('labelText')\" v-bind=\"ptm('labelText')\">{{ val.label }} ({{ $parentInstance.percentValue(val.value) }})</span>\n </li>\n </ol>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\n\nexport default {\n name: 'MeterGroupLabel',\n hostName: 'MeterGroup',\n extends: BaseComponent,\n inheritAttrs: false,\n props: {\n value: {\n type: Array,\n default: null\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" role=\"meter\" :aria-valuemin=\"min\" :aria-valuemax=\"max\" :aria-valuenow=\"totalPercent\" v-bind=\"ptmi('root')\">\n <slot v-if=\"labelPosition === 'start'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n <slot name=\"start\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <div :class=\"cx('meters')\" v-bind=\"ptm('meters')\">\n <template v-for=\"(val, index) in value\" :key=\"index\">\n <slot name=\"meter\" :value=\"val\" :index=\"index\" :class=\"cx('meter')\" :orientation=\"orientation\" :size=\"percentValue(val.value)\" :totalPercent=\"totalPercent\">\n <span v-if=\"percent(val.value)\" :class=\"cx('meter')\" :style=\"meterCalculatedStyles(val)\" v-bind=\"getPTOptions('meter', val, index)\" />\n </slot>\n </template>\n </div>\n <slot name=\"end\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <slot v-if=\"labelPosition === 'end'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport BaseMeterGroup from './BaseMeterGroup.vue';\nimport MeterGroupLabel from './MeterGroupLabel.vue';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseMeterGroup,\n inheritAttrs: false,\n methods: {\n getPTOptions(key, value, index) {\n return this.ptm(key, {\n context: {\n value,\n index\n }\n });\n },\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n },\n percentValue(meter) {\n return this.percent(meter) + '%';\n },\n meterCalculatedStyles(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n },\n computed: {\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n },\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n }\n },\n components: {\n MeterGroupLabel\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" role=\"meter\" :aria-valuemin=\"min\" :aria-valuemax=\"max\" :aria-valuenow=\"totalPercent\" v-bind=\"ptmi('root')\">\n <slot v-if=\"labelPosition === 'start'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n <slot name=\"start\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <div :class=\"cx('meters')\" v-bind=\"ptm('meters')\">\n <template v-for=\"(val, index) in value\" :key=\"index\">\n <slot name=\"meter\" :value=\"val\" :index=\"index\" :class=\"cx('meter')\" :orientation=\"orientation\" :size=\"percentValue(val.value)\" :totalPercent=\"totalPercent\">\n <span v-if=\"percent(val.value)\" :class=\"cx('meter')\" :style=\"meterCalculatedStyles(val)\" v-bind=\"getPTOptions('meter', val, index)\" />\n </slot>\n </template>\n </div>\n <slot name=\"end\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <slot v-if=\"labelPosition === 'end'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport BaseMeterGroup from './BaseMeterGroup.vue';\nimport MeterGroupLabel from './MeterGroupLabel.vue';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseMeterGroup,\n inheritAttrs: false,\n methods: {\n getPTOptions(key, value, index) {\n return this.ptm(key, {\n context: {\n value,\n index\n }\n });\n },\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n },\n percentValue(meter) {\n return this.percent(meter) + '%';\n },\n meterCalculatedStyles(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n },\n computed: {\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n },\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n }\n },\n components: {\n MeterGroupLabel\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","min","Number","max","orientation","String","labelPosition","labelOrientation","style","MeterGroupStyle","provide","$pcMeterGroup","$parentInstance","hostName","inheritAttrs","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptm","_Fragment","_renderList","$props","val","index","key","_renderSlot","$slots","icon","color","backgroundColor","_createElementVNode","_toDisplayString","label","percentValue","BaseMeterGroup","methods","getPTOptions","context","percent","meter","arguments","length","undefined","percentOfItem","Math","round","meterCalculatedStyles","width","height","computed","totalPercent","reduce","total","percentages","sum","sumsArray","forEach","item","push","components","MeterGroupLabel","role","$options","ptmi","_createVNode","_component_MeterGroupLabel","unstyled","pt","size"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/metergroup/BaseMeterGroup.vue","../../src/metergroup/MeterGroupLabel.vue","../../src/metergroup/MeterGroupLabel.vue?vue&type=template&id=485edff9&lang.js","../../src/metergroup/MeterGroup.vue","../../src/metergroup/MeterGroup.vue?vue&type=template&id=5bb0f8ea&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MeterGroupStyle from 'primevue/metergroup/style';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseComponent,\n props: {\n value: {\n type: Array,\n default: null\n },\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n orientation: {\n type: String,\n default: 'horizontal'\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n },\n style: MeterGroupStyle,\n provide() {\n return {\n $pcMeterGroup: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ol :class=\"cx('labelList')\" :data-p=\"dataP\" v-bind=\"ptm('labelList')\">\n <li v-for=\"(val, index) in value\" :key=\"index + '_label'\" :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"icon\" :value=\"val\" :class=\"cx('labelIcon')\">\n <i v-if=\"val.icon\" :class=\"[val.icon, cx('labelIcon')]\" :style=\"{ color: val.color }\" v-bind=\"ptm('labelIcon')\" />\n <span v-else :class=\"cx('labelMarker')\" :style=\"{ backgroundColor: val.color }\" v-bind=\"ptm('labelMarker')\" />\n </slot>\n <span :class=\"cx('labelText')\" v-bind=\"ptm('labelText')\">{{ val.label }} ({{ $parentInstance.percentValue(val.value) }})</span>\n </li>\n </ol>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\n\nexport default {\n name: 'MeterGroupLabel',\n hostName: 'MeterGroup',\n extends: BaseComponent,\n inheritAttrs: false,\n inject: ['$pcMeterGroup'],\n props: {\n value: {\n type: Array,\n default: null\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n },\n computed: {\n dataP() {\n return cn({\n [this.$pcMeterGroup.labelOrientation]: this.$pcMeterGroup.labelOrientation\n });\n }\n }\n};\n</script>\n","<template>\n <ol :class=\"cx('labelList')\" :data-p=\"dataP\" v-bind=\"ptm('labelList')\">\n <li v-for=\"(val, index) in value\" :key=\"index + '_label'\" :class=\"cx('label')\" v-bind=\"ptm('label')\">\n <slot name=\"icon\" :value=\"val\" :class=\"cx('labelIcon')\">\n <i v-if=\"val.icon\" :class=\"[val.icon, cx('labelIcon')]\" :style=\"{ color: val.color }\" v-bind=\"ptm('labelIcon')\" />\n <span v-else :class=\"cx('labelMarker')\" :style=\"{ backgroundColor: val.color }\" v-bind=\"ptm('labelMarker')\" />\n </slot>\n <span :class=\"cx('labelText')\" v-bind=\"ptm('labelText')\">{{ val.label }} ({{ $parentInstance.percentValue(val.value) }})</span>\n </li>\n </ol>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\n\nexport default {\n name: 'MeterGroupLabel',\n hostName: 'MeterGroup',\n extends: BaseComponent,\n inheritAttrs: false,\n inject: ['$pcMeterGroup'],\n props: {\n value: {\n type: Array,\n default: null\n },\n labelPosition: {\n type: String,\n default: 'end'\n },\n labelOrientation: {\n type: String,\n default: 'horizontal'\n }\n },\n computed: {\n dataP() {\n return cn({\n [this.$pcMeterGroup.labelOrientation]: this.$pcMeterGroup.labelOrientation\n });\n }\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" role=\"meter\" :aria-valuemin=\"min\" :aria-valuemax=\"max\" :aria-valuenow=\"totalPercent\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot v-if=\"labelPosition === 'start'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n <slot name=\"start\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <div :class=\"cx('meters')\" :data-p=\"dataP\" v-bind=\"ptm('meters')\">\n <template v-for=\"(val, index) in value\" :key=\"index\">\n <slot name=\"meter\" :value=\"val\" :index=\"index\" :class=\"cx('meter')\" :orientation=\"orientation\" :size=\"percentValue(val.value)\" :totalPercent=\"totalPercent\">\n <span v-if=\"percent(val.value)\" :class=\"cx('meter')\" :style=\"meterCalculatedStyles(val)\" :data-p=\"dataP\" v-bind=\"getPTOptions('meter', val, index)\" />\n </slot>\n </template>\n </div>\n <slot name=\"end\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <slot v-if=\"labelPosition === 'end'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport BaseMeterGroup from './BaseMeterGroup.vue';\nimport MeterGroupLabel from './MeterGroupLabel.vue';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseMeterGroup,\n inheritAttrs: false,\n methods: {\n getPTOptions(key, value, index) {\n return this.ptm(key, {\n context: {\n value,\n index\n }\n });\n },\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n },\n percentValue(meter) {\n return this.percent(meter) + '%';\n },\n meterCalculatedStyles(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n },\n computed: {\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n },\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n },\n dataP() {\n return cn({\n [this.orientation]: this.orientation\n });\n }\n },\n components: {\n MeterGroupLabel\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" role=\"meter\" :aria-valuemin=\"min\" :aria-valuemax=\"max\" :aria-valuenow=\"totalPercent\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot v-if=\"labelPosition === 'start'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n <slot name=\"start\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <div :class=\"cx('meters')\" :data-p=\"dataP\" v-bind=\"ptm('meters')\">\n <template v-for=\"(val, index) in value\" :key=\"index\">\n <slot name=\"meter\" :value=\"val\" :index=\"index\" :class=\"cx('meter')\" :orientation=\"orientation\" :size=\"percentValue(val.value)\" :totalPercent=\"totalPercent\">\n <span v-if=\"percent(val.value)\" :class=\"cx('meter')\" :style=\"meterCalculatedStyles(val)\" :data-p=\"dataP\" v-bind=\"getPTOptions('meter', val, index)\" />\n </slot>\n </template>\n </div>\n <slot name=\"end\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\" />\n <slot v-if=\"labelPosition === 'end'\" name=\"label\" :value=\"value\" :totalPercent=\"totalPercent\" :percentages=\"percentages\">\n <MeterGroupLabel :value=\"value\" :labelPosition=\"labelPosition\" :labelOrientation=\"labelOrientation\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport BaseMeterGroup from './BaseMeterGroup.vue';\nimport MeterGroupLabel from './MeterGroupLabel.vue';\n\nexport default {\n name: 'MeterGroup',\n extends: BaseMeterGroup,\n inheritAttrs: false,\n methods: {\n getPTOptions(key, value, index) {\n return this.ptm(key, {\n context: {\n value,\n index\n }\n });\n },\n percent(meter = 0) {\n const percentOfItem = ((meter - this.min) / (this.max - this.min)) * 100;\n\n return Math.round(Math.max(0, Math.min(100, percentOfItem)));\n },\n percentValue(meter) {\n return this.percent(meter) + '%';\n },\n meterCalculatedStyles(val) {\n return {\n backgroundColor: val.color,\n width: this.orientation === 'horizontal' && this.percentValue(val.value),\n height: this.orientation === 'vertical' && this.percentValue(val.value)\n };\n }\n },\n computed: {\n totalPercent() {\n return this.percent(this.value.reduce((total, val) => total + val.value, 0));\n },\n percentages() {\n let sum = 0;\n const sumsArray = [];\n\n this.value.forEach((item) => {\n sum += item.value;\n sumsArray.push(sum);\n });\n\n return sumsArray;\n },\n dataP() {\n return cn({\n [this.orientation]: this.orientation\n });\n }\n },\n components: {\n MeterGroupLabel\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","type","Array","min","Number","max","orientation","String","labelPosition","labelOrientation","style","MeterGroupStyle","provide","$pcMeterGroup","$parentInstance","hostName","inheritAttrs","inject","computed","dataP","cn","_defineProperty","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","$options","ptm","_Fragment","_renderList","$props","val","index","key","_renderSlot","$slots","icon","color","backgroundColor","_createElementVNode","_toDisplayString","label","percentValue","BaseMeterGroup","methods","getPTOptions","context","percent","meter","arguments","length","undefined","percentOfItem","Math","round","meterCalculatedStyles","width","height","totalPercent","reduce","total","percentages","sum","sumsArray","forEach","item","push","components","MeterGroupLabel","role","ptmi","_createVNode","_component_MeterGroupLabel","unstyled","pt","size","_hoisted_3"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div ref="container" :class="cx('root')" :style="sx('root')" @click="onContainerClick" v-bind="ptmi('root')">
2
+ <div ref="container" :class="cx('root')" :style="sx('root')" @click="onContainerClick" :data-p="containerDataP" v-bind="ptmi('root')">
3
3
  <div class="p-hidden-accessible" v-bind="ptm('hiddenInputContainer')" :data-p-hidden-accessible="true">
4
4
  <input
5
5
  ref="focusInput"
@@ -24,7 +24,7 @@
24
24
  />
25
25
  </div>
26
26
  <div :class="cx('labelContainer')" v-bind="ptm('labelContainer')">
27
- <div :class="cx('label')" v-bind="ptm('label')">
27
+ <div :class="cx('label')" :data-p="labelDataP" v-bind="ptm('label')">
28
28
  <slot name="value" :value="d_value" :placeholder="placeholder">
29
29
  <template v-if="display === 'comma'">
30
30
  {{ label || 'empty' }}
@@ -59,12 +59,12 @@
59
59
  <SpinnerIcon v-else :class="cx('loadingIcon')" spin aria-hidden="true" v-bind="ptm('loadingIcon')" />
60
60
  </slot>
61
61
  <slot v-else name="dropdownicon" :class="cx('dropdownIcon')">
62
- <component :is="dropdownIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('dropdownIcon'), dropdownIcon]" aria-hidden="true" v-bind="ptm('dropdownIcon')" />
62
+ <component :is="dropdownIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('dropdownIcon'), dropdownIcon]" aria-hidden="true" :data-p="dropdownIconDataP" v-bind="ptm('dropdownIcon')" />
63
63
  </slot>
64
64
  </div>
65
65
  <Portal :appendTo="appendTo">
66
66
  <transition name="p-connected-overlay" @enter="onOverlayEnter" @after-enter="onOverlayAfterEnter" @leave="onOverlayLeave" @after-leave="onOverlayAfterLeave" v-bind="ptm('transition')">
67
- <div v-if="overlayVisible" :ref="overlayRef" :style="[panelStyle, overlayStyle]" :class="[cx('overlay'), panelClass, overlayClass]" @click="onOverlayClick" @keydown="onOverlayKeyDown" v-bind="ptm('overlay')">
67
+ <div v-if="overlayVisible" :ref="overlayRef" :style="[panelStyle, overlayStyle]" :class="[cx('overlay'), panelClass, overlayClass]" @click="onOverlayClick" @keydown="onOverlayKeyDown" :data-p="overlayDataP" v-bind="ptm('overlay')">
68
68
  <span
69
69
  ref="firstHiddenFocusableElementOnOverlay"
70
70
  role="presentation"
@@ -223,6 +223,7 @@
223
223
  </template>
224
224
 
225
225
  <script>
226
+ import { cn } from '@primeuix/utils';
226
227
  import { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isTouchDevice, relativePosition } from '@primeuix/utils/dom';
227
228
  import { equals, findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';
228
229
  import { ZIndex } from '@primeuix/utils/zindex';
@@ -733,12 +734,15 @@ export default {
733
734
  onOverlayEnter(el) {
734
735
  ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);
735
736
 
736
- addStyle(el, { position: 'absolute', top: '0', left: '0' });
737
+ addStyle(el, { position: 'absolute', top: '0' });
737
738
  this.alignOverlay();
738
739
  this.scrollInView();
739
740
 
740
741
  this.autoFilterFocus && focus(this.$refs.filterInput.$el);
741
742
  this.autoUpdateModel();
743
+
744
+ // Issue: #7508
745
+ this.$attrSelector && el.setAttribute(this.$attrSelector, '');
742
746
  },
743
747
  onOverlayAfterEnter() {
744
748
  this.bindOutsideClickListener();
@@ -933,7 +937,7 @@ export default {
933
937
  return matchedOptionIndex > -1 ? matchedOptionIndex : index;
934
938
  },
935
939
  findFirstFocusedOptionIndex() {
936
- const selectedIndex = this.findSelectedOptionIndex();
940
+ const selectedIndex = this.findFirstSelectedOptionIndex();
937
941
 
938
942
  return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;
939
943
  },
@@ -1142,6 +1146,36 @@ export default {
1142
1146
  },
1143
1147
  isClearIconVisible() {
1144
1148
  return this.showClear && this.d_value && this.d_value.length && this.d_value != null && isNotEmpty(this.options);
1149
+ },
1150
+ containerDataP() {
1151
+ return cn({
1152
+ invalid: this.$invalid,
1153
+ disabled: this.disabled,
1154
+ focus: this.focused,
1155
+ fluid: this.$fluid,
1156
+ filled: this.$variant === 'filled',
1157
+ [this.size]: this.size
1158
+ });
1159
+ },
1160
+ labelDataP() {
1161
+ return cn({
1162
+ placeholder: this.label === this.placeholder,
1163
+ clearable: this.showClear,
1164
+ disabled: this.disabled,
1165
+ [this.size]: this.size,
1166
+ 'has-chip': this.display === 'chip' && this.d_value && this.d_value.length && (this.maxSelectedLabels ? this.d_value.length <= this.maxSelectedLabels : true),
1167
+ empty: !this.placeholder && !this.$filled
1168
+ });
1169
+ },
1170
+ dropdownIconDataP() {
1171
+ return cn({
1172
+ [this.size]: this.size
1173
+ });
1174
+ },
1175
+ overlayDataP() {
1176
+ return cn({
1177
+ ['portal-' + this.appendTo]: 'portal-' + this.appendTo
1178
+ });
1145
1179
  }
1146
1180
  },
1147
1181
  directives: {
@@ -787,7 +787,7 @@ export interface MultiSelectSlots {
787
787
  /**
788
788
  * Options of the loader items for virtualscroller
789
789
  */
790
- allSelected: boolean;
790
+ checked: boolean;
791
791
  /**
792
792
  * Style class of the loading icon.
793
793
  */