primevue 4.3.1 → 4.3.3

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 (254) hide show
  1. package/accordionheader/AccordionHeader.vue +8 -2
  2. package/accordionheader/index.mjs +8 -1
  3. package/accordionheader/index.mjs.map +1 -1
  4. package/autocomplete/AutoComplete.vue +72 -16
  5. package/autocomplete/index.d.ts +3 -3
  6. package/autocomplete/index.mjs +84 -37
  7. package/autocomplete/index.mjs.map +1 -1
  8. package/avatar/Avatar.vue +13 -4
  9. package/avatar/index.d.ts +3 -3
  10. package/avatar/index.mjs +26 -6
  11. package/avatar/index.mjs.map +1 -1
  12. package/badge/Badge.vue +13 -2
  13. package/badge/index.d.ts +1 -1
  14. package/badge/index.mjs +18 -3
  15. package/badge/index.mjs.map +1 -1
  16. package/blockui/BlockUI.vue +15 -4
  17. package/blockui/index.mjs +13 -4
  18. package/blockui/index.mjs.map +1 -1
  19. package/button/Button.vue +30 -3
  20. package/button/index.d.ts +3 -7
  21. package/button/index.mjs +28 -9
  22. package/button/index.mjs.map +1 -1
  23. package/cascadeselect/CascadeSelect.vue +1 -1
  24. package/cascadeselect/index.d.ts +2 -2
  25. package/cascadeselect/index.mjs +1 -2
  26. package/cascadeselect/index.mjs.map +1 -1
  27. package/checkbox/Checkbox.vue +15 -5
  28. package/checkbox/index.d.ts +2 -2
  29. package/checkbox/index.mjs +29 -7
  30. package/checkbox/index.mjs.map +1 -1
  31. package/chip/BaseChip.vue +1 -1
  32. package/chip/Chip.vue +9 -1
  33. package/chip/index.d.ts +1 -1
  34. package/chip/index.mjs +13 -3
  35. package/chip/index.mjs.map +1 -1
  36. package/colorpicker/ColorPicker.vue +10 -2
  37. package/colorpicker/index.d.ts +1 -1
  38. package/colorpicker/index.mjs +9 -2
  39. package/colorpicker/index.mjs.map +1 -1
  40. package/column/index.d.ts +3 -3
  41. package/columngroup/index.d.ts +2 -2
  42. package/confirmationoptions/index.d.ts +1 -1
  43. package/datatable/BodyCell.vue +4 -1
  44. package/datatable/BodyRow.vue +2 -0
  45. package/datatable/ColumnFilter.vue +1 -1
  46. package/datatable/DataTable.vue +103 -44
  47. package/datatable/HeaderCheckbox.vue +2 -2
  48. package/datatable/RowCheckbox.vue +1 -1
  49. package/datatable/TableBody.vue +12 -1
  50. package/datatable/TableFooter.vue +9 -1
  51. package/datatable/TableHeader.vue +9 -2
  52. package/datatable/index.d.ts +45 -37
  53. package/datatable/index.mjs +170 -101
  54. package/datatable/index.mjs.map +1 -1
  55. package/dataview/DataView.vue +4 -0
  56. package/dataview/index.d.ts +61 -4
  57. package/dataview/index.mjs +6 -2
  58. package/dataview/index.mjs.map +1 -1
  59. package/datepicker/DatePicker.vue +370 -234
  60. package/datepicker/index.d.ts +162 -6
  61. package/datepicker/index.mjs +644 -384
  62. package/datepicker/index.mjs.map +1 -1
  63. package/dialog/Dialog.vue +48 -39
  64. package/dialog/index.d.ts +26 -1
  65. package/dialog/index.mjs +73 -50
  66. package/dialog/index.mjs.map +1 -1
  67. package/divider/Divider.vue +13 -3
  68. package/divider/index.d.ts +4 -4
  69. package/divider/index.mjs +18 -5
  70. package/divider/index.mjs.map +1 -1
  71. package/dock/index.d.ts +4 -4
  72. package/drawer/Drawer.vue +30 -20
  73. package/drawer/index.d.ts +12 -2
  74. package/drawer/index.mjs +42 -25
  75. package/drawer/index.mjs.map +1 -1
  76. package/fieldset/Fieldset.vue +8 -2
  77. package/fieldset/index.mjs +20 -10
  78. package/fieldset/index.mjs.map +1 -1
  79. package/fileupload/FileUpload.vue +1 -1
  80. package/fileupload/index.d.ts +2 -2
  81. package/fileupload/index.mjs +2 -2
  82. package/fileupload/index.mjs.map +1 -1
  83. package/floatlabel/index.d.ts +2 -2
  84. package/galleria/Galleria.vue +39 -3
  85. package/galleria/GalleriaItem.vue +8 -9
  86. package/galleria/index.d.ts +3 -3
  87. package/galleria/index.mjs +48 -11
  88. package/galleria/index.mjs.map +1 -1
  89. package/inplace/Inplace.vue +1 -1
  90. package/inplace/index.mjs +3 -2
  91. package/inplace/index.mjs.map +1 -1
  92. package/inputchips/index.d.ts +2 -2
  93. package/inputmask/InputMask.vue +15 -1
  94. package/inputmask/index.d.ts +3 -3
  95. package/inputmask/index.mjs +12 -1
  96. package/inputmask/index.mjs.map +1 -1
  97. package/inputnumber/BaseInputNumber.vue +4 -0
  98. package/inputnumber/InputNumber.vue +29 -14
  99. package/inputnumber/index.d.ts +6 -6
  100. package/inputnumber/index.mjs +47 -25
  101. package/inputnumber/index.mjs.map +1 -1
  102. package/inputotp/index.d.ts +3 -3
  103. package/inputtext/InputText.vue +10 -1
  104. package/inputtext/index.d.ts +4 -5
  105. package/inputtext/index.mjs +14 -1
  106. package/inputtext/index.mjs.map +1 -1
  107. package/keyfilter/index.mjs +12 -19
  108. package/keyfilter/index.mjs.map +1 -1
  109. package/knob/Knob.vue +1 -1
  110. package/knob/index.mjs +1 -1
  111. package/knob/index.mjs.map +1 -1
  112. package/listbox/Listbox.vue +9 -2
  113. package/listbox/index.mjs +11 -3
  114. package/listbox/index.mjs.map +1 -1
  115. package/megamenu/index.d.ts +2 -2
  116. package/menu/Menu.vue +8 -2
  117. package/menu/Menuitem.vue +14 -4
  118. package/menu/index.mjs +36 -16
  119. package/menu/index.mjs.map +1 -1
  120. package/message/Message.vue +16 -7
  121. package/message/index.d.ts +2 -2
  122. package/message/index.mjs +35 -13
  123. package/message/index.mjs.map +1 -1
  124. package/metergroup/MeterGroup.vue +9 -3
  125. package/metergroup/MeterGroupLabel.vue +10 -1
  126. package/metergroup/index.mjs +32 -7
  127. package/metergroup/index.mjs.map +1 -1
  128. package/multiselect/MultiSelect.vue +41 -6
  129. package/multiselect/index.d.ts +3 -3
  130. package/multiselect/index.mjs +53 -21
  131. package/multiselect/index.mjs.map +1 -1
  132. package/organizationchart/index.d.ts +2 -2
  133. package/overlaybadge/index.d.ts +1 -1
  134. package/package.json +3 -3
  135. package/paginator/Paginator.vue +2 -0
  136. package/paginator/index.d.ts +8 -0
  137. package/paginator/index.mjs +3 -1
  138. package/paginator/index.mjs.map +1 -1
  139. package/panel/Panel.vue +29 -22
  140. package/panel/index.d.ts +22 -2
  141. package/panel/index.mjs +55 -31
  142. package/panel/index.mjs.map +1 -1
  143. package/panelmenu/PanelMenuList.vue +1 -1
  144. package/panelmenu/index.mjs +1 -1
  145. package/panelmenu/index.mjs.map +1 -1
  146. package/password/Password.vue +21 -3
  147. package/password/index.d.ts +3 -3
  148. package/password/index.mjs +32 -10
  149. package/password/index.mjs.map +1 -1
  150. package/popover/Popover.vue +3 -3
  151. package/popover/index.mjs +3 -4
  152. package/popover/index.mjs.map +1 -1
  153. package/progressbar/ProgressBar.vue +11 -4
  154. package/progressbar/index.mjs +21 -7
  155. package/progressbar/index.mjs.map +1 -1
  156. package/radiobutton/RadioButton.vue +13 -3
  157. package/radiobutton/index.d.ts +3 -3
  158. package/radiobutton/index.mjs +24 -4
  159. package/radiobutton/index.mjs.map +1 -1
  160. package/rating/Rating.vue +19 -2
  161. package/rating/index.mjs +28 -7
  162. package/rating/index.mjs.map +1 -1
  163. package/scrolltop/ScrollTop.vue +2 -2
  164. package/scrolltop/index.d.ts +2 -2
  165. package/scrolltop/index.mjs +4 -2
  166. package/scrolltop/index.mjs.map +1 -1
  167. package/select/Select.vue +56 -16
  168. package/select/index.d.ts +2 -2
  169. package/select/index.mjs +111 -74
  170. package/select/index.mjs.map +1 -1
  171. package/selectbutton/SelectButton.vue +26 -9
  172. package/selectbutton/index.d.ts +2 -2
  173. package/selectbutton/index.mjs +30 -10
  174. package/selectbutton/index.mjs.map +1 -1
  175. package/skeleton/Skeleton.vue +7 -1
  176. package/skeleton/index.d.ts +3 -3
  177. package/skeleton/index.mjs +12 -1
  178. package/skeleton/index.mjs.map +1 -1
  179. package/slider/Slider.vue +11 -2
  180. package/slider/index.d.ts +2 -2
  181. package/slider/index.mjs +27 -8
  182. package/slider/index.mjs.map +1 -1
  183. package/speeddial/index.d.ts +5 -5
  184. package/splitbutton/index.d.ts +1 -1
  185. package/splitter/Splitter.vue +10 -2
  186. package/splitter/index.d.ts +3 -3
  187. package/splitter/index.mjs +19 -6
  188. package/splitter/index.mjs.map +1 -1
  189. package/step/Step.vue +25 -7
  190. package/step/index.mjs +44 -14
  191. package/step/index.mjs.map +1 -1
  192. package/steppanel/StepPanel.vue +9 -3
  193. package/steppanel/index.d.ts +8 -0
  194. package/steppanel/index.mjs +23 -8
  195. package/steppanel/index.mjs.map +1 -1
  196. package/stepper/StepperSeparator.vue +5 -2
  197. package/stepper/index.d.ts +4 -0
  198. package/tab/Tab.vue +12 -6
  199. package/tab/index.mjs +13 -5
  200. package/tab/index.mjs.map +1 -1
  201. package/tablist/TabList.vue +13 -2
  202. package/tablist/index.mjs +21 -8
  203. package/tablist/index.mjs.map +1 -1
  204. package/tabpanel/TabPanel.vue +2 -2
  205. package/tabpanel/index.mjs +2 -2
  206. package/tabpanel/index.mjs.map +1 -1
  207. package/tag/Tag.vue +11 -2
  208. package/tag/index.mjs +17 -3
  209. package/tag/index.mjs.map +1 -1
  210. package/textarea/Textarea.vue +10 -1
  211. package/textarea/index.d.ts +4 -5
  212. package/textarea/index.mjs +14 -1
  213. package/textarea/index.mjs.map +1 -1
  214. package/tieredmenu/TieredMenu.vue +1 -1
  215. package/tieredmenu/index.mjs +1 -2
  216. package/tieredmenu/index.mjs.map +1 -1
  217. package/timeline/Timeline.vue +16 -7
  218. package/timeline/index.d.ts +3 -3
  219. package/timeline/index.mjs +42 -11
  220. package/timeline/index.mjs.map +1 -1
  221. package/toast/Toast.vue +10 -1
  222. package/toast/ToastMessage.vue +29 -19
  223. package/toast/index.d.ts +2 -2
  224. package/toast/index.mjs +77 -38
  225. package/toast/index.mjs.map +1 -1
  226. package/togglebutton/ToggleButton.vue +10 -1
  227. package/togglebutton/index.d.ts +3 -3
  228. package/togglebutton/index.mjs +19 -4
  229. package/togglebutton/index.mjs.map +1 -1
  230. package/toggleswitch/ToggleSwitch.vue +11 -3
  231. package/toggleswitch/index.mjs +20 -5
  232. package/toggleswitch/index.mjs.map +1 -1
  233. package/tooltip/index.mjs +22 -22
  234. package/tooltip/index.mjs.map +1 -1
  235. package/tree/Tree.vue +14 -2
  236. package/tree/TreeNode.vue +2 -2
  237. package/tree/index.d.ts +3 -3
  238. package/tree/index.mjs +28 -10
  239. package/tree/index.mjs.map +1 -1
  240. package/treeselect/TreeSelect.vue +1 -1
  241. package/treeselect/index.d.ts +6 -6
  242. package/treeselect/index.mjs +1 -2
  243. package/treeselect/index.mjs.map +1 -1
  244. package/treetable/index.d.ts +7 -7
  245. package/treetable/style/index.mjs +2 -3
  246. package/treetable/style/index.mjs.map +1 -1
  247. package/umd/primevue.min.js +1 -1
  248. package/virtualscroller/VirtualScroller.vue +13 -2
  249. package/virtualscroller/index.d.ts +2 -2
  250. package/virtualscroller/index.mjs +14 -4
  251. package/virtualscroller/index.mjs.map +1 -1
  252. package/virtualscroller/style/index.mjs +1 -1
  253. package/virtualscroller/style/index.mjs.map +1 -1
  254. package/web-types.json +1 -1
package/rating/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { cn } from '@primeuix/utils';
1
2
  import { getFirstFocusableElement, focus } from '@primeuix/utils/dom';
2
3
  import BanIcon from '@primevue/icons/ban';
3
4
  import StarIcon from '@primevue/icons/star';
@@ -65,7 +66,9 @@ var script = {
65
66
  }
66
67
  },
67
68
  onFocus: function onFocus(event, value) {
69
+ var _event$sourceCapabili;
68
70
  this.focusedOptionIndex = value;
71
+ this.isFocusVisibleItem = ((_event$sourceCapabili = event.sourceCapabilities) === null || _event$sourceCapabili === void 0 ? void 0 : _event$sourceCapabili.firesTouchEvents) === false;
69
72
  this.$emit('focus', event);
70
73
  },
71
74
  onBlur: function onBlur(event) {
@@ -96,11 +99,25 @@ var script = {
96
99
  },
97
100
  starAriaLabel: function starAriaLabel(value) {
98
101
  return value === 1 ? this.$primevue.config.locale.aria.star : this.$primevue.config.locale.aria.stars.replace(/{star}/g, value);
102
+ },
103
+ dataOption: function dataOption(value) {
104
+ return cn({
105
+ readonly: this.readonly,
106
+ disabled: this.disabled,
107
+ active: value <= this.d_value,
108
+ 'focus-visible': value === this.focusedOptionIndex && this.isFocusVisibleItem
109
+ });
99
110
  }
100
111
  },
101
112
  computed: {
102
113
  namex: function namex() {
103
114
  return this.name || "".concat(this.$attrSelector, "_name");
115
+ },
116
+ dataP: function dataP() {
117
+ return cn({
118
+ readonly: this.readonly,
119
+ disabled: this.disabled
120
+ });
104
121
  }
105
122
  },
106
123
  components: {
@@ -110,12 +127,15 @@ var script = {
110
127
  }
111
128
  };
112
129
 
113
- var _hoisted_1 = ["onClick", "data-p-active", "data-p-focused"];
114
- var _hoisted_2 = ["value", "name", "checked", "disabled", "readonly", "aria-label", "onFocus", "onChange"];
130
+ var _hoisted_1 = ["data-p"];
131
+ var _hoisted_2 = ["onClick", "data-p-active", "data-p-focused", "data-p"];
132
+ var _hoisted_3 = ["value", "name", "checked", "disabled", "readonly", "aria-label", "onFocus", "onChange"];
115
133
  function render(_ctx, _cache, $props, $setup, $data, $options) {
116
134
  return openBlock(), createElementBlock("div", mergeProps({
117
135
  "class": _ctx.cx('root')
118
- }, _ctx.ptmi('root')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.stars, function (value) {
136
+ }, _ctx.ptmi('root'), {
137
+ "data-p": $options.dataP
138
+ }), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.stars, function (value) {
119
139
  return openBlock(), createElementBlock("div", mergeProps({
120
140
  key: value,
121
141
  "class": _ctx.cx('option', {
@@ -127,7 +147,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
127
147
  ref_for: true
128
148
  }, $options.getPTOptions('option', value), {
129
149
  "data-p-active": value <= _ctx.d_value,
130
- "data-p-focused": value === $data.focusedOptionIndex
150
+ "data-p-focused": value === $data.focusedOptionIndex,
151
+ "data-p": $options.dataOption(value)
131
152
  }), [createElementVNode("span", mergeProps({
132
153
  "class": "p-hidden-accessible",
133
154
  ref_for: true
@@ -151,7 +172,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
151
172
  return $options.onChange($event, value);
152
173
  },
153
174
  ref_for: true
154
- }, _ctx.ptm('hiddenOptionInput')), null, 16, _hoisted_2)], 16), value <= _ctx.d_value ? renderSlot(_ctx.$slots, "onicon", {
175
+ }, _ctx.ptm('hiddenOptionInput')), null, 16, _hoisted_3)], 16), value <= _ctx.d_value ? renderSlot(_ctx.$slots, "onicon", {
155
176
  key: 0,
156
177
  value: value,
157
178
  "class": normalizeClass(_ctx.cx('onIcon'))
@@ -169,8 +190,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
169
190
  "class": [_ctx.cx('offIcon'), _ctx.offIcon],
170
191
  ref_for: true
171
192
  }, _ctx.ptm('offIcon')), null, 16, ["class"]))];
172
- })], 16, _hoisted_1);
173
- }), 128))], 16);
193
+ })], 16, _hoisted_2);
194
+ }), 128))], 16, _hoisted_1);
174
195
  }
175
196
 
176
197
  script.render = render;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/rating/BaseRating.vue","../../src/rating/Rating.vue","../../src/rating/Rating.vue?vue&type=template&id=efeaae88&lang.js"],"sourcesContent":["<script>\nimport BaseEditableHolder from '@primevue/core/baseeditableholder';\nimport RatingStyle from 'primevue/rating/style';\n\nexport default {\n name: 'BaseRating',\n extends: BaseEditableHolder,\n props: {\n readonly: {\n type: Boolean,\n default: false\n },\n stars: {\n type: Number,\n default: 5\n },\n onIcon: {\n type: String,\n default: undefined\n },\n offIcon: {\n type: String,\n default: undefined\n }\n },\n style: RatingStyle,\n provide() {\n return {\n $pcRating: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"value in stars\" :key=\"value\">\n <div :class=\"cx('option', { value })\" @click=\"onOptionClick($event, value)\" v-bind=\"getPTOptions('option', value)\" :data-p-active=\"value <= d_value\" :data-p-focused=\"value === focusedOptionIndex\">\n <span class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenOptionInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n type=\"radio\"\n :value=\"value\"\n :name=\"namex\"\n :checked=\"d_value === value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-label=\"starAriaLabel(value)\"\n @focus=\"onFocus($event, value)\"\n @blur=\"onBlur\"\n @change=\"onChange($event, value)\"\n v-bind=\"ptm('hiddenOptionInput')\"\n />\n </span>\n <slot v-if=\"value <= d_value\" name=\"onicon\" :value=\"value\" :class=\"cx('onIcon')\">\n <component :is=\"onIcon ? 'span' : 'StarFillIcon'\" :class=\"[cx('onIcon'), onIcon]\" v-bind=\"ptm('onIcon')\" />\n </slot>\n <slot v-else name=\"officon\" :value=\"value\" :class=\"cx('offIcon')\">\n <component :is=\"offIcon ? 'span' : 'StarIcon'\" :class=\"[cx('offIcon'), offIcon]\" v-bind=\"ptm('offIcon')\" />\n </slot>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { focus, getFirstFocusableElement } from '@primeuix/utils/dom';\nimport BanIcon from '@primevue/icons/ban';\nimport StarIcon from '@primevue/icons/star';\nimport StarFillIcon from '@primevue/icons/starfill';\nimport BaseRating from './BaseRating.vue';\n\nexport default {\n name: 'Rating',\n extends: BaseRating,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n focusedOptionIndex: -1,\n isFocusVisibleItem: true\n };\n },\n methods: {\n getPTOptions(key, value) {\n return this.ptm(key, {\n context: {\n active: value <= this.d_value,\n focused: value === this.focusedOptionIndex\n }\n });\n },\n onOptionClick(event, value) {\n if (!this.readonly && !this.disabled) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = false;\n const firstFocusableEl = getFirstFocusableElement(event.currentTarget);\n\n firstFocusableEl && focus(firstFocusableEl);\n }\n },\n onFocus(event, value) {\n this.focusedOptionIndex = value;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onChange(event, value) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = true;\n },\n onOptionSelect(event, value) {\n if (this.focusedOptionIndex === value || this.d_value === value) {\n this.focusedOptionIndex = -1;\n this.updateModel(event, null);\n } else {\n this.focusedOptionIndex = value;\n this.updateModel(event, value || null);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n starAriaLabel(value) {\n return value === 1 ? this.$primevue.config.locale.aria.star : this.$primevue.config.locale.aria.stars.replace(/{star}/g, value);\n }\n },\n computed: {\n namex() {\n return this.name || `${this.$attrSelector}_name`;\n }\n },\n components: {\n StarFillIcon,\n StarIcon,\n BanIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"value in stars\" :key=\"value\">\n <div :class=\"cx('option', { value })\" @click=\"onOptionClick($event, value)\" v-bind=\"getPTOptions('option', value)\" :data-p-active=\"value <= d_value\" :data-p-focused=\"value === focusedOptionIndex\">\n <span class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenOptionInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n type=\"radio\"\n :value=\"value\"\n :name=\"namex\"\n :checked=\"d_value === value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-label=\"starAriaLabel(value)\"\n @focus=\"onFocus($event, value)\"\n @blur=\"onBlur\"\n @change=\"onChange($event, value)\"\n v-bind=\"ptm('hiddenOptionInput')\"\n />\n </span>\n <slot v-if=\"value <= d_value\" name=\"onicon\" :value=\"value\" :class=\"cx('onIcon')\">\n <component :is=\"onIcon ? 'span' : 'StarFillIcon'\" :class=\"[cx('onIcon'), onIcon]\" v-bind=\"ptm('onIcon')\" />\n </slot>\n <slot v-else name=\"officon\" :value=\"value\" :class=\"cx('offIcon')\">\n <component :is=\"offIcon ? 'span' : 'StarIcon'\" :class=\"[cx('offIcon'), offIcon]\" v-bind=\"ptm('offIcon')\" />\n </slot>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { focus, getFirstFocusableElement } from '@primeuix/utils/dom';\nimport BanIcon from '@primevue/icons/ban';\nimport StarIcon from '@primevue/icons/star';\nimport StarFillIcon from '@primevue/icons/starfill';\nimport BaseRating from './BaseRating.vue';\n\nexport default {\n name: 'Rating',\n extends: BaseRating,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n focusedOptionIndex: -1,\n isFocusVisibleItem: true\n };\n },\n methods: {\n getPTOptions(key, value) {\n return this.ptm(key, {\n context: {\n active: value <= this.d_value,\n focused: value === this.focusedOptionIndex\n }\n });\n },\n onOptionClick(event, value) {\n if (!this.readonly && !this.disabled) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = false;\n const firstFocusableEl = getFirstFocusableElement(event.currentTarget);\n\n firstFocusableEl && focus(firstFocusableEl);\n }\n },\n onFocus(event, value) {\n this.focusedOptionIndex = value;\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onChange(event, value) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = true;\n },\n onOptionSelect(event, value) {\n if (this.focusedOptionIndex === value || this.d_value === value) {\n this.focusedOptionIndex = -1;\n this.updateModel(event, null);\n } else {\n this.focusedOptionIndex = value;\n this.updateModel(event, value || null);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n starAriaLabel(value) {\n return value === 1 ? this.$primevue.config.locale.aria.star : this.$primevue.config.locale.aria.stars.replace(/{star}/g, value);\n }\n },\n computed: {\n namex() {\n return this.name || `${this.$attrSelector}_name`;\n }\n },\n components: {\n StarFillIcon,\n StarIcon,\n BanIcon\n }\n};\n</script>\n"],"names":["name","BaseEditableHolder","props","readonly","type","Boolean","stars","Number","onIcon","String","undefined","offIcon","style","RatingStyle","provide","$pcRating","$parentInstance","BaseRating","inheritAttrs","emits","data","focusedOptionIndex","isFocusVisibleItem","methods","getPTOptions","key","value","ptm","context","active","d_value","focused","onOptionClick","event","disabled","onOptionSelect","firstFocusableEl","getFirstFocusableElement","currentTarget","focus","onFocus","$emit","onBlur","_this$formField$onBlu","_this$formField","formField","call","onChange","updateModel","writeValue","originalEvent","starAriaLabel","$primevue","config","locale","aria","star","replace","computed","namex","concat","$attrSelector","components","StarFillIcon","StarIcon","BanIcon","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","_Fragment","_renderList","onClick","$event","$options","$data","_createElementVNode","checked","apply","arguments","_hoisted_2","_renderSlot","$slots","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/rating/BaseRating.vue","../../src/rating/Rating.vue","../../src/rating/Rating.vue?vue&type=template&id=21f09ede&lang.js"],"sourcesContent":["<script>\nimport BaseEditableHolder from '@primevue/core/baseeditableholder';\nimport RatingStyle from 'primevue/rating/style';\n\nexport default {\n name: 'BaseRating',\n extends: BaseEditableHolder,\n props: {\n readonly: {\n type: Boolean,\n default: false\n },\n stars: {\n type: Number,\n default: 5\n },\n onIcon: {\n type: String,\n default: undefined\n },\n offIcon: {\n type: String,\n default: undefined\n }\n },\n style: RatingStyle,\n provide() {\n return {\n $pcRating: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\" :data-p=\"dataP\">\n <template v-for=\"value in stars\" :key=\"value\">\n <div :class=\"cx('option', { value })\" @click=\"onOptionClick($event, value)\" v-bind=\"getPTOptions('option', value)\" :data-p-active=\"value <= d_value\" :data-p-focused=\"value === focusedOptionIndex\" :data-p=\"dataOption(value)\">\n <span class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenOptionInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n type=\"radio\"\n :value=\"value\"\n :name=\"namex\"\n :checked=\"d_value === value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-label=\"starAriaLabel(value)\"\n @focus=\"onFocus($event, value)\"\n @blur=\"onBlur\"\n @change=\"onChange($event, value)\"\n v-bind=\"ptm('hiddenOptionInput')\"\n />\n </span>\n <slot v-if=\"value <= d_value\" name=\"onicon\" :value=\"value\" :class=\"cx('onIcon')\">\n <component :is=\"onIcon ? 'span' : 'StarFillIcon'\" :class=\"[cx('onIcon'), onIcon]\" v-bind=\"ptm('onIcon')\" />\n </slot>\n <slot v-else name=\"officon\" :value=\"value\" :class=\"cx('offIcon')\">\n <component :is=\"offIcon ? 'span' : 'StarIcon'\" :class=\"[cx('offIcon'), offIcon]\" v-bind=\"ptm('offIcon')\" />\n </slot>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { focus, getFirstFocusableElement } from '@primeuix/utils/dom';\nimport BanIcon from '@primevue/icons/ban';\nimport StarIcon from '@primevue/icons/star';\nimport StarFillIcon from '@primevue/icons/starfill';\nimport BaseRating from './BaseRating.vue';\n\nexport default {\n name: 'Rating',\n extends: BaseRating,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n focusedOptionIndex: -1,\n isFocusVisibleItem: true\n };\n },\n methods: {\n getPTOptions(key, value) {\n return this.ptm(key, {\n context: {\n active: value <= this.d_value,\n focused: value === this.focusedOptionIndex\n }\n });\n },\n onOptionClick(event, value) {\n if (!this.readonly && !this.disabled) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = false;\n const firstFocusableEl = getFirstFocusableElement(event.currentTarget);\n\n firstFocusableEl && focus(firstFocusableEl);\n }\n },\n onFocus(event, value) {\n this.focusedOptionIndex = value;\n this.isFocusVisibleItem = event.sourceCapabilities?.firesTouchEvents === false;\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onChange(event, value) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = true;\n },\n onOptionSelect(event, value) {\n if (this.focusedOptionIndex === value || this.d_value === value) {\n this.focusedOptionIndex = -1;\n this.updateModel(event, null);\n } else {\n this.focusedOptionIndex = value;\n this.updateModel(event, value || null);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n starAriaLabel(value) {\n return value === 1 ? this.$primevue.config.locale.aria.star : this.$primevue.config.locale.aria.stars.replace(/{star}/g, value);\n },\n dataOption(value) {\n return cn({\n readonly: this.readonly,\n disabled: this.disabled,\n active: value <= this.d_value,\n 'focus-visible': value === this.focusedOptionIndex && this.isFocusVisibleItem\n });\n }\n },\n computed: {\n namex() {\n return this.name || `${this.$attrSelector}_name`;\n },\n dataP() {\n return cn({\n readonly: this.readonly,\n disabled: this.disabled\n });\n }\n },\n components: {\n StarFillIcon,\n StarIcon,\n BanIcon\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\" :data-p=\"dataP\">\n <template v-for=\"value in stars\" :key=\"value\">\n <div :class=\"cx('option', { value })\" @click=\"onOptionClick($event, value)\" v-bind=\"getPTOptions('option', value)\" :data-p-active=\"value <= d_value\" :data-p-focused=\"value === focusedOptionIndex\" :data-p=\"dataOption(value)\">\n <span class=\"p-hidden-accessible\" v-bind=\"ptm('hiddenOptionInputContainer')\" :data-p-hidden-accessible=\"true\">\n <input\n type=\"radio\"\n :value=\"value\"\n :name=\"namex\"\n :checked=\"d_value === value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-label=\"starAriaLabel(value)\"\n @focus=\"onFocus($event, value)\"\n @blur=\"onBlur\"\n @change=\"onChange($event, value)\"\n v-bind=\"ptm('hiddenOptionInput')\"\n />\n </span>\n <slot v-if=\"value <= d_value\" name=\"onicon\" :value=\"value\" :class=\"cx('onIcon')\">\n <component :is=\"onIcon ? 'span' : 'StarFillIcon'\" :class=\"[cx('onIcon'), onIcon]\" v-bind=\"ptm('onIcon')\" />\n </slot>\n <slot v-else name=\"officon\" :value=\"value\" :class=\"cx('offIcon')\">\n <component :is=\"offIcon ? 'span' : 'StarIcon'\" :class=\"[cx('offIcon'), offIcon]\" v-bind=\"ptm('offIcon')\" />\n </slot>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { focus, getFirstFocusableElement } from '@primeuix/utils/dom';\nimport BanIcon from '@primevue/icons/ban';\nimport StarIcon from '@primevue/icons/star';\nimport StarFillIcon from '@primevue/icons/starfill';\nimport BaseRating from './BaseRating.vue';\n\nexport default {\n name: 'Rating',\n extends: BaseRating,\n inheritAttrs: false,\n emits: ['change', 'focus', 'blur'],\n data() {\n return {\n focusedOptionIndex: -1,\n isFocusVisibleItem: true\n };\n },\n methods: {\n getPTOptions(key, value) {\n return this.ptm(key, {\n context: {\n active: value <= this.d_value,\n focused: value === this.focusedOptionIndex\n }\n });\n },\n onOptionClick(event, value) {\n if (!this.readonly && !this.disabled) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = false;\n const firstFocusableEl = getFirstFocusableElement(event.currentTarget);\n\n firstFocusableEl && focus(firstFocusableEl);\n }\n },\n onFocus(event, value) {\n this.focusedOptionIndex = value;\n this.isFocusVisibleItem = event.sourceCapabilities?.firesTouchEvents === false;\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n this.formField.onBlur?.();\n },\n onChange(event, value) {\n this.onOptionSelect(event, value);\n this.isFocusVisibleItem = true;\n },\n onOptionSelect(event, value) {\n if (this.focusedOptionIndex === value || this.d_value === value) {\n this.focusedOptionIndex = -1;\n this.updateModel(event, null);\n } else {\n this.focusedOptionIndex = value;\n this.updateModel(event, value || null);\n }\n },\n updateModel(event, value) {\n this.writeValue(value, event);\n this.$emit('change', { originalEvent: event, value });\n },\n starAriaLabel(value) {\n return value === 1 ? this.$primevue.config.locale.aria.star : this.$primevue.config.locale.aria.stars.replace(/{star}/g, value);\n },\n dataOption(value) {\n return cn({\n readonly: this.readonly,\n disabled: this.disabled,\n active: value <= this.d_value,\n 'focus-visible': value === this.focusedOptionIndex && this.isFocusVisibleItem\n });\n }\n },\n computed: {\n namex() {\n return this.name || `${this.$attrSelector}_name`;\n },\n dataP() {\n return cn({\n readonly: this.readonly,\n disabled: this.disabled\n });\n }\n },\n components: {\n StarFillIcon,\n StarIcon,\n BanIcon\n }\n};\n</script>\n"],"names":["name","BaseEditableHolder","props","readonly","type","Boolean","stars","Number","onIcon","String","undefined","offIcon","style","RatingStyle","provide","$pcRating","$parentInstance","BaseRating","inheritAttrs","emits","data","focusedOptionIndex","isFocusVisibleItem","methods","getPTOptions","key","value","ptm","context","active","d_value","focused","onOptionClick","event","disabled","onOptionSelect","firstFocusableEl","getFirstFocusableElement","currentTarget","focus","onFocus","_event$sourceCapabili","sourceCapabilities","firesTouchEvents","$emit","onBlur","_this$formField$onBlu","_this$formField","formField","call","onChange","updateModel","writeValue","originalEvent","starAriaLabel","$primevue","config","locale","aria","star","replace","dataOption","cn","computed","namex","concat","$attrSelector","dataP","components","StarFillIcon","StarIcon","BanIcon","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","$options","_Fragment","_renderList","onClick","$event","$data","_createElementVNode","checked","apply","arguments","_hoisted_3","_renderSlot","$slots","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <transition name="p-scrolltop" appear @enter="onEnter" @after-leave="onAfterLeave" v-bind="ptm('transition')">
3
- <Button v-if="visible" :ref="containerRef" :class="cx('root')" @click="onClick" :aria-label="scrollTopAriaLabel" :unstyled="unstyled" v-bind="buttonProps" :pt="pt">
3
+ <Button v-if="visible" :ref="containerRef" :class="cx('root')" @click="onClick" :aria-label="scrollTopAriaLabel" :unstyled="unstyled" v-bind="buttonProps" :pt="ptm('root')">
4
4
  <template #icon="slotProps">
5
5
  <slot name="icon" :class="cx('icon')">
6
- <component :is="icon ? 'span' : 'ChevronUpIcon'" :class="[cx('icon'), icon, slotProps.class]" v-bind="ptm('icon')" />
6
+ <component :is="icon ? 'span' : 'ChevronUpIcon'" :class="[cx('icon'), icon, slotProps.class]" v-bind="ptm('root')['icon']" data-pc-section="icon" />
7
7
  </slot>
8
8
  </template>
9
9
  </Button>
@@ -7,7 +7,7 @@
7
7
  * @module scrolltop
8
8
  *
9
9
  */
10
- import type { DefineComponent, DesignToken, EmitFn, PassThrough } from '@primevue/core';
10
+ import type { DefineComponent, DesignToken, EmitFn, HintedString, PassThrough } from '@primevue/core';
11
11
  import type { ComponentHooks } from '@primevue/core/basecomponent';
12
12
  import type { ButtonPassThroughOptions, ButtonProps } from 'primevue/button';
13
13
  import type { PassThroughOptions } from 'primevue/passthrough';
@@ -108,7 +108,7 @@ export interface ScrollTopProps {
108
108
  * Target of the ScrollTop.
109
109
  * @defaultValue window
110
110
  */
111
- target?: 'window' | 'parent' | undefined;
111
+ target?: HintedString<'window' | 'parent'> | undefined;
112
112
  /**
113
113
  * Defines the threshold value of the vertical scroll position of the target to toggle the visibility.
114
114
  * @defaultValue 400
@@ -140,7 +140,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
140
140
  "aria-label": $options.scrollTopAriaLabel,
141
141
  unstyled: _ctx.unstyled
142
142
  }, _ctx.buttonProps, {
143
- pt: _ctx.pt
143
+ pt: _ctx.ptm('root')
144
144
  }), {
145
145
  icon: withCtx(function (slotProps) {
146
146
  return [renderSlot(_ctx.$slots, "icon", {
@@ -148,7 +148,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
148
148
  }, function () {
149
149
  return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.icon ? 'span' : 'ChevronUpIcon'), mergeProps({
150
150
  "class": [_ctx.cx('icon'), _ctx.icon, slotProps["class"]]
151
- }, _ctx.ptm('icon')), null, 16, ["class"]))];
151
+ }, _ctx.ptm('root')['icon'], {
152
+ "data-pc-section": "icon"
153
+ }), null, 16, ["class"]))];
152
154
  })];
153
155
  }),
154
156
  _: 3
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/scrolltop/BaseScrollTop.vue","../../src/scrolltop/ScrollTop.vue","../../src/scrolltop/ScrollTop.vue?vue&type=template&id=2776720c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollTopStyle from 'primevue/scrolltop/style';\n\nexport default {\n name: 'BaseScrollTop',\n extends: BaseComponent,\n props: {\n target: {\n type: String,\n default: 'window'\n },\n threshold: {\n type: Number,\n default: 400\n },\n icon: {\n type: String,\n default: undefined\n },\n behavior: {\n type: String,\n default: 'smooth'\n },\n buttonProps: {\n type: Object,\n default: () => {\n return { rounded: true };\n }\n }\n },\n style: ScrollTopStyle,\n provide() {\n return {\n $pcScrollTop: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <transition name=\"p-scrolltop\" appear @enter=\"onEnter\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <Button v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" @click=\"onClick\" :aria-label=\"scrollTopAriaLabel\" :unstyled=\"unstyled\" v-bind=\"buttonProps\" :pt=\"pt\">\n <template #icon=\"slotProps\">\n <slot name=\"icon\" :class=\"cx('icon')\">\n <component :is=\"icon ? 'span' : 'ChevronUpIcon'\" :class=\"[cx('icon'), icon, slotProps.class]\" v-bind=\"ptm('icon')\" />\n </slot>\n </template>\n </Button>\n </transition>\n</template>\n\n<script>\nimport { getWindowScrollTop } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport BaseScrollTop from './BaseScrollTop.vue';\n\nexport default {\n name: 'ScrollTop',\n extends: BaseScrollTop,\n inheritAttrs: false,\n scrollListener: null,\n container: null,\n data() {\n return {\n visible: false\n };\n },\n mounted() {\n if (this.target === 'window') this.bindDocumentScrollListener();\n else if (this.target === 'parent') this.bindParentScrollListener();\n },\n beforeUnmount() {\n if (this.target === 'window') this.unbindDocumentScrollListener();\n else if (this.target === 'parent') this.unbindParentScrollListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n this.overlay = null;\n }\n },\n methods: {\n onClick() {\n let scrollElement = this.target === 'window' ? window : this.$el.parentElement;\n\n scrollElement.scroll({\n top: 0,\n behavior: this.behavior\n });\n },\n checkVisibility(scrollY) {\n if (scrollY > this.threshold) this.visible = true;\n else this.visible = false;\n },\n bindParentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(this.$el.parentElement.scrollTop);\n };\n\n this.$el.parentElement.addEventListener('scroll', this.scrollListener);\n },\n bindDocumentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(getWindowScrollTop());\n };\n\n window.addEventListener('scroll', this.scrollListener);\n },\n unbindParentScrollListener() {\n if (this.scrollListener) {\n this.$el.parentElement.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n unbindDocumentScrollListener() {\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n onEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n },\n onAfterLeave(el) {\n ZIndex.clear(el);\n },\n containerRef(el) {\n this.container = el ? el.$el : undefined;\n }\n },\n computed: {\n scrollTopAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.scrollTop : undefined;\n }\n },\n components: {\n ChevronUpIcon,\n Button\n }\n};\n</script>\n","<template>\n <transition name=\"p-scrolltop\" appear @enter=\"onEnter\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <Button v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" @click=\"onClick\" :aria-label=\"scrollTopAriaLabel\" :unstyled=\"unstyled\" v-bind=\"buttonProps\" :pt=\"pt\">\n <template #icon=\"slotProps\">\n <slot name=\"icon\" :class=\"cx('icon')\">\n <component :is=\"icon ? 'span' : 'ChevronUpIcon'\" :class=\"[cx('icon'), icon, slotProps.class]\" v-bind=\"ptm('icon')\" />\n </slot>\n </template>\n </Button>\n </transition>\n</template>\n\n<script>\nimport { getWindowScrollTop } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport BaseScrollTop from './BaseScrollTop.vue';\n\nexport default {\n name: 'ScrollTop',\n extends: BaseScrollTop,\n inheritAttrs: false,\n scrollListener: null,\n container: null,\n data() {\n return {\n visible: false\n };\n },\n mounted() {\n if (this.target === 'window') this.bindDocumentScrollListener();\n else if (this.target === 'parent') this.bindParentScrollListener();\n },\n beforeUnmount() {\n if (this.target === 'window') this.unbindDocumentScrollListener();\n else if (this.target === 'parent') this.unbindParentScrollListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n this.overlay = null;\n }\n },\n methods: {\n onClick() {\n let scrollElement = this.target === 'window' ? window : this.$el.parentElement;\n\n scrollElement.scroll({\n top: 0,\n behavior: this.behavior\n });\n },\n checkVisibility(scrollY) {\n if (scrollY > this.threshold) this.visible = true;\n else this.visible = false;\n },\n bindParentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(this.$el.parentElement.scrollTop);\n };\n\n this.$el.parentElement.addEventListener('scroll', this.scrollListener);\n },\n bindDocumentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(getWindowScrollTop());\n };\n\n window.addEventListener('scroll', this.scrollListener);\n },\n unbindParentScrollListener() {\n if (this.scrollListener) {\n this.$el.parentElement.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n unbindDocumentScrollListener() {\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n onEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n },\n onAfterLeave(el) {\n ZIndex.clear(el);\n },\n containerRef(el) {\n this.container = el ? el.$el : undefined;\n }\n },\n computed: {\n scrollTopAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.scrollTop : undefined;\n }\n },\n components: {\n ChevronUpIcon,\n Button\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","target","type","String","threshold","Number","icon","undefined","behavior","buttonProps","Object","default","rounded","style","ScrollTopStyle","provide","$pcScrollTop","$parentInstance","BaseScrollTop","inheritAttrs","scrollListener","container","data","visible","mounted","bindDocumentScrollListener","bindParentScrollListener","beforeUnmount","unbindDocumentScrollListener","unbindParentScrollListener","ZIndex","clear","overlay","methods","onClick","scrollElement","window","$el","parentElement","scroll","top","checkVisibility","scrollY","_this","scrollTop","addEventListener","_this2","getWindowScrollTop","removeEventListener","onEnter","el","set","$primevue","config","zIndex","onAfterLeave","containerRef","computed","scrollTopAriaLabel","locale","aria","components","ChevronUpIcon","Button","_openBlock","_createBlock","_Transition","_mergeProps","appear","$options","_ctx","ptm","$data","_component_Button","ref","cx","unstyled","pt","_withCtx","slotProps","_renderSlot","$slots","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/scrolltop/BaseScrollTop.vue","../../src/scrolltop/ScrollTop.vue","../../src/scrolltop/ScrollTop.vue?vue&type=template&id=13ee561a&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollTopStyle from 'primevue/scrolltop/style';\n\nexport default {\n name: 'BaseScrollTop',\n extends: BaseComponent,\n props: {\n target: {\n type: String,\n default: 'window'\n },\n threshold: {\n type: Number,\n default: 400\n },\n icon: {\n type: String,\n default: undefined\n },\n behavior: {\n type: String,\n default: 'smooth'\n },\n buttonProps: {\n type: Object,\n default: () => {\n return { rounded: true };\n }\n }\n },\n style: ScrollTopStyle,\n provide() {\n return {\n $pcScrollTop: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <transition name=\"p-scrolltop\" appear @enter=\"onEnter\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <Button v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" @click=\"onClick\" :aria-label=\"scrollTopAriaLabel\" :unstyled=\"unstyled\" v-bind=\"buttonProps\" :pt=\"ptm('root')\">\n <template #icon=\"slotProps\">\n <slot name=\"icon\" :class=\"cx('icon')\">\n <component :is=\"icon ? 'span' : 'ChevronUpIcon'\" :class=\"[cx('icon'), icon, slotProps.class]\" v-bind=\"ptm('root')['icon']\" data-pc-section=\"icon\" />\n </slot>\n </template>\n </Button>\n </transition>\n</template>\n\n<script>\nimport { getWindowScrollTop } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport BaseScrollTop from './BaseScrollTop.vue';\n\nexport default {\n name: 'ScrollTop',\n extends: BaseScrollTop,\n inheritAttrs: false,\n scrollListener: null,\n container: null,\n data() {\n return {\n visible: false\n };\n },\n mounted() {\n if (this.target === 'window') this.bindDocumentScrollListener();\n else if (this.target === 'parent') this.bindParentScrollListener();\n },\n beforeUnmount() {\n if (this.target === 'window') this.unbindDocumentScrollListener();\n else if (this.target === 'parent') this.unbindParentScrollListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n this.overlay = null;\n }\n },\n methods: {\n onClick() {\n let scrollElement = this.target === 'window' ? window : this.$el.parentElement;\n\n scrollElement.scroll({\n top: 0,\n behavior: this.behavior\n });\n },\n checkVisibility(scrollY) {\n if (scrollY > this.threshold) this.visible = true;\n else this.visible = false;\n },\n bindParentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(this.$el.parentElement.scrollTop);\n };\n\n this.$el.parentElement.addEventListener('scroll', this.scrollListener);\n },\n bindDocumentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(getWindowScrollTop());\n };\n\n window.addEventListener('scroll', this.scrollListener);\n },\n unbindParentScrollListener() {\n if (this.scrollListener) {\n this.$el.parentElement.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n unbindDocumentScrollListener() {\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n onEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n },\n onAfterLeave(el) {\n ZIndex.clear(el);\n },\n containerRef(el) {\n this.container = el ? el.$el : undefined;\n }\n },\n computed: {\n scrollTopAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.scrollTop : undefined;\n }\n },\n components: {\n ChevronUpIcon,\n Button\n }\n};\n</script>\n","<template>\n <transition name=\"p-scrolltop\" appear @enter=\"onEnter\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <Button v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" @click=\"onClick\" :aria-label=\"scrollTopAriaLabel\" :unstyled=\"unstyled\" v-bind=\"buttonProps\" :pt=\"ptm('root')\">\n <template #icon=\"slotProps\">\n <slot name=\"icon\" :class=\"cx('icon')\">\n <component :is=\"icon ? 'span' : 'ChevronUpIcon'\" :class=\"[cx('icon'), icon, slotProps.class]\" v-bind=\"ptm('root')['icon']\" data-pc-section=\"icon\" />\n </slot>\n </template>\n </Button>\n </transition>\n</template>\n\n<script>\nimport { getWindowScrollTop } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport BaseScrollTop from './BaseScrollTop.vue';\n\nexport default {\n name: 'ScrollTop',\n extends: BaseScrollTop,\n inheritAttrs: false,\n scrollListener: null,\n container: null,\n data() {\n return {\n visible: false\n };\n },\n mounted() {\n if (this.target === 'window') this.bindDocumentScrollListener();\n else if (this.target === 'parent') this.bindParentScrollListener();\n },\n beforeUnmount() {\n if (this.target === 'window') this.unbindDocumentScrollListener();\n else if (this.target === 'parent') this.unbindParentScrollListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n this.overlay = null;\n }\n },\n methods: {\n onClick() {\n let scrollElement = this.target === 'window' ? window : this.$el.parentElement;\n\n scrollElement.scroll({\n top: 0,\n behavior: this.behavior\n });\n },\n checkVisibility(scrollY) {\n if (scrollY > this.threshold) this.visible = true;\n else this.visible = false;\n },\n bindParentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(this.$el.parentElement.scrollTop);\n };\n\n this.$el.parentElement.addEventListener('scroll', this.scrollListener);\n },\n bindDocumentScrollListener() {\n this.scrollListener = () => {\n this.checkVisibility(getWindowScrollTop());\n };\n\n window.addEventListener('scroll', this.scrollListener);\n },\n unbindParentScrollListener() {\n if (this.scrollListener) {\n this.$el.parentElement.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n unbindDocumentScrollListener() {\n if (this.scrollListener) {\n window.removeEventListener('scroll', this.scrollListener);\n this.scrollListener = null;\n }\n },\n onEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n },\n onAfterLeave(el) {\n ZIndex.clear(el);\n },\n containerRef(el) {\n this.container = el ? el.$el : undefined;\n }\n },\n computed: {\n scrollTopAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.scrollTop : undefined;\n }\n },\n components: {\n ChevronUpIcon,\n Button\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","target","type","String","threshold","Number","icon","undefined","behavior","buttonProps","Object","default","rounded","style","ScrollTopStyle","provide","$pcScrollTop","$parentInstance","BaseScrollTop","inheritAttrs","scrollListener","container","data","visible","mounted","bindDocumentScrollListener","bindParentScrollListener","beforeUnmount","unbindDocumentScrollListener","unbindParentScrollListener","ZIndex","clear","overlay","methods","onClick","scrollElement","window","$el","parentElement","scroll","top","checkVisibility","scrollY","_this","scrollTop","addEventListener","_this2","getWindowScrollTop","removeEventListener","onEnter","el","set","$primevue","config","zIndex","onAfterLeave","containerRef","computed","scrollTopAriaLabel","locale","aria","components","ChevronUpIcon","Button","_openBlock","_createBlock","_Transition","_mergeProps","appear","$options","_ctx","ptm","$data","_component_Button","ref","cx","unstyled","pt","_withCtx","slotProps","_renderSlot","$slots","_resolveDynamicComponent"],"mappings":"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"}
package/select/Select.vue CHANGED
@@ -1,8 +1,9 @@
1
1
  <template>
2
- <div ref="container" :id="$id" :class="cx('root')" @click="onContainerClick" v-bind="ptmi('root')">
2
+ <div ref="container" :id="$id" :class="cx('root')" @click="onContainerClick" :data-p="containerDataP" v-bind="ptmi('root')">
3
3
  <input
4
4
  v-if="editable"
5
5
  ref="focusInput"
6
+ :name="name"
6
7
  :id="labelId || inputId"
7
8
  type="text"
8
9
  :class="[cx('label'), inputClass, labelClass]"
@@ -24,11 +25,13 @@
24
25
  @blur="onBlur"
25
26
  @keydown="onKeyDown"
26
27
  @input="onEditableInput"
28
+ :data-p="labelDataP"
27
29
  v-bind="ptm('label')"
28
30
  />
29
31
  <span
30
32
  v-else
31
33
  ref="focusInput"
34
+ :name="name"
32
35
  :id="labelId || inputId"
33
36
  :class="[cx('label'), inputClass, labelClass]"
34
37
  :style="[inputStyle, labelStyle]"
@@ -45,9 +48,10 @@
45
48
  @focus="onFocus"
46
49
  @blur="onBlur"
47
50
  @keydown="onKeyDown"
51
+ :data-p="labelDataP"
48
52
  v-bind="ptm('label')"
49
53
  >
50
- <slot name="value" :value="d_value" :placeholder="placeholder">{{ label === 'p-emptylabel' ? '&nbsp;' : label ?? 'empty' }}</slot>
54
+ <slot name="value" :value="d_value" :placeholder="placeholder">{{ label === 'p-emptylabel' ? '&nbsp;' : (label ?? 'empty') }}</slot>
51
55
  </span>
52
56
  <slot v-if="isClearIconVisible" name="clearicon" :class="cx('clearIcon')" :clearCallback="onClearClick">
53
57
  <component :is="clearIcon ? 'i' : 'TimesIcon'" ref="clearIcon" :class="[cx('clearIcon'), clearIcon]" @click="onClearClick" v-bind="ptm('clearIcon')" data-pc-section="clearicon" />
@@ -58,12 +62,12 @@
58
62
  <SpinnerIcon v-else :class="cx('loadingIcon')" spin aria-hidden="true" v-bind="ptm('loadingIcon')" />
59
63
  </slot>
60
64
  <slot v-else name="dropdownicon" :class="cx('dropdownIcon')">
61
- <component :is="dropdownIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('dropdownIcon'), dropdownIcon]" aria-hidden="true" v-bind="ptm('dropdownIcon')" />
65
+ <component :is="dropdownIcon ? 'span' : 'ChevronDownIcon'" :class="[cx('dropdownIcon'), dropdownIcon]" aria-hidden="true" :data-p="dropdownIconDataP" v-bind="ptm('dropdownIcon')" />
62
66
  </slot>
63
67
  </div>
64
68
  <Portal :appendTo="appendTo">
65
69
  <transition name="p-connected-overlay" @enter="onOverlayEnter" @after-enter="onOverlayAfterEnter" @leave="onOverlayLeave" @after-leave="onOverlayAfterLeave" v-bind="ptm('transition')">
66
- <div v-if="overlayVisible" :ref="overlayRef" :class="[cx('overlay'), panelClass, overlayClass]" :style="[panelStyle, overlayStyle]" @click="onOverlayClick" @keydown="onOverlayKeyDown" v-bind="ptm('overlay')">
70
+ <div v-if="overlayVisible" :ref="overlayRef" :class="[cx('overlay'), panelClass, overlayClass]" :style="[panelStyle, overlayStyle]" @click="onOverlayClick" @keydown="onOverlayKeyDown" :data-p="overlayDataP" v-bind="ptm('overlay')">
67
71
  <span
68
72
  ref="firstHiddenFocusableElementOnOverlay"
69
73
  role="presentation"
@@ -138,9 +142,9 @@
138
142
  :aria-disabled="isOptionDisabled(option)"
139
143
  :aria-setsize="ariaSetSize"
140
144
  :aria-posinset="getAriaPosInset(getOptionIndex(i, getItemOptions))"
141
- @click="onOptionSelect($event, option)"
145
+ @mousedown="onOptionSelect($event, option)"
142
146
  @mousemove="onOptionMouseMove($event, getOptionIndex(i, getItemOptions))"
143
- :data-p-selected="isSelected(option)"
147
+ :data-p-selected="!checkmark && isSelected(option)"
144
148
  :data-p-focused="focusedOptionIndex === getOptionIndex(i, getItemOptions)"
145
149
  :data-p-disabled="isOptionDisabled(option)"
146
150
  v-bind="getPTItemOptions(option, getItemOptions, i, 'option')"
@@ -192,6 +196,7 @@
192
196
  </template>
193
197
 
194
198
  <script>
199
+ import { cn } from '@primeuix/utils';
195
200
  import { absolutePosition, addStyle, findSingle, focus, getFirstFocusableElement, getFocusableElements, getLastFocusableElement, getOuterWidth, isAndroid, isTouchDevice, isVisible, relativePosition } from '@primeuix/utils/dom';
196
201
  import { equals, findLastIndex, isNotEmpty, isPrintableCharacter, resolveFieldData } from '@primeuix/utils/object';
197
202
  import { ZIndex } from '@primeuix/utils/zindex';
@@ -352,11 +357,13 @@ export default {
352
357
  this.$emit('focus', event);
353
358
  },
354
359
  onBlur(event) {
355
- this.focused = false;
356
- this.focusedOptionIndex = -1;
357
- this.searchValue = '';
358
- this.$emit('blur', event);
359
- this.formField.onBlur?.(event);
360
+ setTimeout(() => {
361
+ this.focused = false;
362
+ this.focusedOptionIndex = -1;
363
+ this.searchValue = '';
364
+ this.$emit('blur', event);
365
+ this.formField.onBlur?.(event);
366
+ }, 100);
360
367
  },
361
368
  onKeyDown(event) {
362
369
  if (this.disabled || isAndroid()) {
@@ -684,7 +691,7 @@ export default {
684
691
  onOverlayEnter(el) {
685
692
  ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);
686
693
 
687
- addStyle(el, { position: 'absolute', top: '0', left: '0' });
694
+ addStyle(el, { position: 'absolute', top: '0' });
688
695
  this.alignOverlay();
689
696
  this.scrollInView();
690
697
 
@@ -723,14 +730,17 @@ export default {
723
730
  if (this.appendTo === 'self') {
724
731
  relativePosition(this.overlay, this.$el);
725
732
  } else {
726
- this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';
727
- absolutePosition(this.overlay, this.$el);
733
+ if (this.overlay) {
734
+ this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';
735
+ absolutePosition(this.overlay, this.$el);
736
+ }
728
737
  }
729
738
  },
730
739
  bindOutsideClickListener() {
731
740
  if (!this.outsideClickListener) {
732
741
  this.outsideClickListener = (event) => {
733
- if (this.overlayVisible && this.overlay && !this.$el.contains(event.target) && !this.overlay.contains(event.target)) {
742
+ const composedPath = event.composedPath();
743
+ if (this.overlayVisible && this.overlay && !composedPath.includes(this.$el) && !composedPath.includes(this.overlay)) {
734
744
  this.hide();
735
745
  }
736
746
  };
@@ -919,7 +929,7 @@ export default {
919
929
  const element = findSingle(this.list, `li[id="${id}"]`);
920
930
 
921
931
  if (element) {
922
- element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });
932
+ element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
923
933
  } else if (!this.virtualScrollerDisabled) {
924
934
  this.virtualScroller && this.virtualScroller.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex);
925
935
  }
@@ -1038,6 +1048,36 @@ export default {
1038
1048
  },
1039
1049
  virtualScrollerDisabled() {
1040
1050
  return !this.virtualScrollerOptions;
1051
+ },
1052
+ containerDataP() {
1053
+ return cn({
1054
+ invalid: this.$invalid,
1055
+ disabled: this.disabled,
1056
+ focus: this.focused,
1057
+ fluid: this.$fluid,
1058
+ filled: this.$variant === 'filled',
1059
+ [this.size]: this.size
1060
+ });
1061
+ },
1062
+ labelDataP() {
1063
+ return cn({
1064
+ placeholder: !this.editable && this.label === this.placeholder,
1065
+ clearable: this.showClear,
1066
+ disabled: this.disabled,
1067
+ editable: this.editable,
1068
+ [this.size]: this.size,
1069
+ empty: !this.editable && !this.$slots['value'] && (this.label === 'p-emptylabel' || this.label.length === 0)
1070
+ });
1071
+ },
1072
+ dropdownIconDataP() {
1073
+ return cn({
1074
+ [this.size]: this.size
1075
+ });
1076
+ },
1077
+ overlayDataP() {
1078
+ return cn({
1079
+ ['portal-' + this.appendTo]: 'portal-' + this.appendTo
1080
+ });
1041
1081
  }
1042
1082
  },
1043
1083
  directives: {
package/select/index.d.ts CHANGED
@@ -366,7 +366,7 @@ export interface SelectProps {
366
366
  /**
367
367
  * Defines the size of the component.
368
368
  */
369
- size?: 'small' | 'large' | undefined;
369
+ size?: HintedString<'small' | 'large'> | undefined;
370
370
  /**
371
371
  * When present, it specifies that the component should have invalid state style.
372
372
  * @defaultValue false
@@ -381,7 +381,7 @@ export interface SelectProps {
381
381
  * Specifies the input variant of the component.
382
382
  * @defaultValue null
383
383
  */
384
- variant?: 'outlined' | 'filled' | undefined | null;
384
+ variant?: HintedString<'outlined' | 'filled'> | undefined | null;
385
385
  /**
386
386
  * A property to uniquely identify an option.
387
387
  */