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.
- package/accordionheader/AccordionHeader.vue +8 -2
- package/accordionheader/index.mjs +8 -1
- package/accordionheader/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +72 -16
- package/autocomplete/index.d.ts +3 -3
- package/autocomplete/index.mjs +84 -37
- package/autocomplete/index.mjs.map +1 -1
- package/avatar/Avatar.vue +13 -4
- package/avatar/index.d.ts +3 -3
- package/avatar/index.mjs +26 -6
- package/avatar/index.mjs.map +1 -1
- package/badge/Badge.vue +13 -2
- package/badge/index.d.ts +1 -1
- package/badge/index.mjs +18 -3
- package/badge/index.mjs.map +1 -1
- package/blockui/BlockUI.vue +15 -4
- package/blockui/index.mjs +13 -4
- package/blockui/index.mjs.map +1 -1
- package/button/Button.vue +30 -3
- package/button/index.d.ts +3 -7
- package/button/index.mjs +28 -9
- package/button/index.mjs.map +1 -1
- package/cascadeselect/CascadeSelect.vue +1 -1
- package/cascadeselect/index.d.ts +2 -2
- package/cascadeselect/index.mjs +1 -2
- package/cascadeselect/index.mjs.map +1 -1
- package/checkbox/Checkbox.vue +15 -5
- package/checkbox/index.d.ts +2 -2
- package/checkbox/index.mjs +29 -7
- package/checkbox/index.mjs.map +1 -1
- package/chip/BaseChip.vue +1 -1
- package/chip/Chip.vue +9 -1
- package/chip/index.d.ts +1 -1
- package/chip/index.mjs +13 -3
- package/chip/index.mjs.map +1 -1
- package/colorpicker/ColorPicker.vue +10 -2
- package/colorpicker/index.d.ts +1 -1
- package/colorpicker/index.mjs +9 -2
- package/colorpicker/index.mjs.map +1 -1
- package/column/index.d.ts +3 -3
- package/columngroup/index.d.ts +2 -2
- package/confirmationoptions/index.d.ts +1 -1
- package/datatable/BodyCell.vue +4 -1
- package/datatable/BodyRow.vue +2 -0
- package/datatable/ColumnFilter.vue +1 -1
- package/datatable/DataTable.vue +103 -44
- package/datatable/HeaderCheckbox.vue +2 -2
- package/datatable/RowCheckbox.vue +1 -1
- package/datatable/TableBody.vue +12 -1
- package/datatable/TableFooter.vue +9 -1
- package/datatable/TableHeader.vue +9 -2
- package/datatable/index.d.ts +45 -37
- package/datatable/index.mjs +170 -101
- package/datatable/index.mjs.map +1 -1
- package/dataview/DataView.vue +4 -0
- package/dataview/index.d.ts +61 -4
- package/dataview/index.mjs +6 -2
- package/dataview/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +370 -234
- package/datepicker/index.d.ts +162 -6
- package/datepicker/index.mjs +644 -384
- package/datepicker/index.mjs.map +1 -1
- package/dialog/Dialog.vue +48 -39
- package/dialog/index.d.ts +26 -1
- package/dialog/index.mjs +73 -50
- package/dialog/index.mjs.map +1 -1
- package/divider/Divider.vue +13 -3
- package/divider/index.d.ts +4 -4
- package/divider/index.mjs +18 -5
- package/divider/index.mjs.map +1 -1
- package/dock/index.d.ts +4 -4
- package/drawer/Drawer.vue +30 -20
- package/drawer/index.d.ts +12 -2
- package/drawer/index.mjs +42 -25
- package/drawer/index.mjs.map +1 -1
- package/fieldset/Fieldset.vue +8 -2
- package/fieldset/index.mjs +20 -10
- package/fieldset/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +1 -1
- package/fileupload/index.d.ts +2 -2
- package/fileupload/index.mjs +2 -2
- package/fileupload/index.mjs.map +1 -1
- package/floatlabel/index.d.ts +2 -2
- package/galleria/Galleria.vue +39 -3
- package/galleria/GalleriaItem.vue +8 -9
- package/galleria/index.d.ts +3 -3
- package/galleria/index.mjs +48 -11
- package/galleria/index.mjs.map +1 -1
- package/inplace/Inplace.vue +1 -1
- package/inplace/index.mjs +3 -2
- package/inplace/index.mjs.map +1 -1
- package/inputchips/index.d.ts +2 -2
- package/inputmask/InputMask.vue +15 -1
- package/inputmask/index.d.ts +3 -3
- package/inputmask/index.mjs +12 -1
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/BaseInputNumber.vue +4 -0
- package/inputnumber/InputNumber.vue +29 -14
- package/inputnumber/index.d.ts +6 -6
- package/inputnumber/index.mjs +47 -25
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/index.d.ts +3 -3
- package/inputtext/InputText.vue +10 -1
- package/inputtext/index.d.ts +4 -5
- package/inputtext/index.mjs +14 -1
- package/inputtext/index.mjs.map +1 -1
- package/keyfilter/index.mjs +12 -19
- package/keyfilter/index.mjs.map +1 -1
- package/knob/Knob.vue +1 -1
- package/knob/index.mjs +1 -1
- package/knob/index.mjs.map +1 -1
- package/listbox/Listbox.vue +9 -2
- package/listbox/index.mjs +11 -3
- package/listbox/index.mjs.map +1 -1
- package/megamenu/index.d.ts +2 -2
- package/menu/Menu.vue +8 -2
- package/menu/Menuitem.vue +14 -4
- package/menu/index.mjs +36 -16
- package/menu/index.mjs.map +1 -1
- package/message/Message.vue +16 -7
- package/message/index.d.ts +2 -2
- package/message/index.mjs +35 -13
- package/message/index.mjs.map +1 -1
- package/metergroup/MeterGroup.vue +9 -3
- package/metergroup/MeterGroupLabel.vue +10 -1
- package/metergroup/index.mjs +32 -7
- package/metergroup/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +41 -6
- package/multiselect/index.d.ts +3 -3
- package/multiselect/index.mjs +53 -21
- package/multiselect/index.mjs.map +1 -1
- package/organizationchart/index.d.ts +2 -2
- package/overlaybadge/index.d.ts +1 -1
- package/package.json +3 -3
- package/paginator/Paginator.vue +2 -0
- package/paginator/index.d.ts +8 -0
- package/paginator/index.mjs +3 -1
- package/paginator/index.mjs.map +1 -1
- package/panel/Panel.vue +29 -22
- package/panel/index.d.ts +22 -2
- package/panel/index.mjs +55 -31
- package/panel/index.mjs.map +1 -1
- package/panelmenu/PanelMenuList.vue +1 -1
- package/panelmenu/index.mjs +1 -1
- package/panelmenu/index.mjs.map +1 -1
- package/password/Password.vue +21 -3
- package/password/index.d.ts +3 -3
- package/password/index.mjs +32 -10
- package/password/index.mjs.map +1 -1
- package/popover/Popover.vue +3 -3
- package/popover/index.mjs +3 -4
- package/popover/index.mjs.map +1 -1
- package/progressbar/ProgressBar.vue +11 -4
- package/progressbar/index.mjs +21 -7
- package/progressbar/index.mjs.map +1 -1
- package/radiobutton/RadioButton.vue +13 -3
- package/radiobutton/index.d.ts +3 -3
- package/radiobutton/index.mjs +24 -4
- package/radiobutton/index.mjs.map +1 -1
- package/rating/Rating.vue +19 -2
- package/rating/index.mjs +28 -7
- package/rating/index.mjs.map +1 -1
- package/scrolltop/ScrollTop.vue +2 -2
- package/scrolltop/index.d.ts +2 -2
- package/scrolltop/index.mjs +4 -2
- package/scrolltop/index.mjs.map +1 -1
- package/select/Select.vue +56 -16
- package/select/index.d.ts +2 -2
- package/select/index.mjs +111 -74
- package/select/index.mjs.map +1 -1
- package/selectbutton/SelectButton.vue +26 -9
- package/selectbutton/index.d.ts +2 -2
- package/selectbutton/index.mjs +30 -10
- package/selectbutton/index.mjs.map +1 -1
- package/skeleton/Skeleton.vue +7 -1
- package/skeleton/index.d.ts +3 -3
- package/skeleton/index.mjs +12 -1
- package/skeleton/index.mjs.map +1 -1
- package/slider/Slider.vue +11 -2
- package/slider/index.d.ts +2 -2
- package/slider/index.mjs +27 -8
- package/slider/index.mjs.map +1 -1
- package/speeddial/index.d.ts +5 -5
- package/splitbutton/index.d.ts +1 -1
- package/splitter/Splitter.vue +10 -2
- package/splitter/index.d.ts +3 -3
- package/splitter/index.mjs +19 -6
- package/splitter/index.mjs.map +1 -1
- package/step/Step.vue +25 -7
- package/step/index.mjs +44 -14
- package/step/index.mjs.map +1 -1
- package/steppanel/StepPanel.vue +9 -3
- package/steppanel/index.d.ts +8 -0
- package/steppanel/index.mjs +23 -8
- package/steppanel/index.mjs.map +1 -1
- package/stepper/StepperSeparator.vue +5 -2
- package/stepper/index.d.ts +4 -0
- package/tab/Tab.vue +12 -6
- package/tab/index.mjs +13 -5
- package/tab/index.mjs.map +1 -1
- package/tablist/TabList.vue +13 -2
- package/tablist/index.mjs +21 -8
- package/tablist/index.mjs.map +1 -1
- package/tabpanel/TabPanel.vue +2 -2
- package/tabpanel/index.mjs +2 -2
- package/tabpanel/index.mjs.map +1 -1
- package/tag/Tag.vue +11 -2
- package/tag/index.mjs +17 -3
- package/tag/index.mjs.map +1 -1
- package/textarea/Textarea.vue +10 -1
- package/textarea/index.d.ts +4 -5
- package/textarea/index.mjs +14 -1
- package/textarea/index.mjs.map +1 -1
- package/tieredmenu/TieredMenu.vue +1 -1
- package/tieredmenu/index.mjs +1 -2
- package/tieredmenu/index.mjs.map +1 -1
- package/timeline/Timeline.vue +16 -7
- package/timeline/index.d.ts +3 -3
- package/timeline/index.mjs +42 -11
- package/timeline/index.mjs.map +1 -1
- package/toast/Toast.vue +10 -1
- package/toast/ToastMessage.vue +29 -19
- package/toast/index.d.ts +2 -2
- package/toast/index.mjs +77 -38
- package/toast/index.mjs.map +1 -1
- package/togglebutton/ToggleButton.vue +10 -1
- package/togglebutton/index.d.ts +3 -3
- package/togglebutton/index.mjs +19 -4
- package/togglebutton/index.mjs.map +1 -1
- package/toggleswitch/ToggleSwitch.vue +11 -3
- package/toggleswitch/index.mjs +20 -5
- package/toggleswitch/index.mjs.map +1 -1
- package/tooltip/index.mjs +22 -22
- package/tooltip/index.mjs.map +1 -1
- package/tree/Tree.vue +14 -2
- package/tree/TreeNode.vue +2 -2
- package/tree/index.d.ts +3 -3
- package/tree/index.mjs +28 -10
- package/tree/index.mjs.map +1 -1
- package/treeselect/TreeSelect.vue +1 -1
- package/treeselect/index.d.ts +6 -6
- package/treeselect/index.mjs +1 -2
- package/treeselect/index.mjs.map +1 -1
- package/treetable/index.d.ts +7 -7
- package/treetable/style/index.mjs +2 -3
- package/treetable/style/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -1
- package/virtualscroller/VirtualScroller.vue +13 -2
- package/virtualscroller/index.d.ts +2 -2
- package/virtualscroller/index.mjs +14 -4
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- 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 = ["
|
|
114
|
-
var _hoisted_2 = ["
|
|
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')
|
|
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,
|
|
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,
|
|
173
|
-
}), 128))], 16);
|
|
193
|
+
})], 16, _hoisted_2);
|
|
194
|
+
}), 128))], 16, _hoisted_1);
|
|
174
195
|
}
|
|
175
196
|
|
|
176
197
|
script.render = render;
|
package/rating/index.mjs.map
CHANGED
|
@@ -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":";;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,YAAY;AAClB,EAAA,SAAA,EAASC,kBAAkB;AAC3BC,EAAAA,KAAK,EAAE;AACHC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,IAAI,EAAEC,OAAO;MACb,SAAS,EAAA;KACZ;AACDC,IAAAA,KAAK,EAAE;AACHF,MAAAA,IAAI,EAAEG,MAAM;MACZ,SAAS,EAAA;KACZ;AACDC,IAAAA,MAAM,EAAE;AACJJ,MAAAA,IAAI,EAAEK,MAAM;MACZ,SAASC,EAAAA;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLP,MAAAA,IAAI,EAAEK,MAAM;MACZ,SAASC,EAAAA;AACb;GACH;AACDE,EAAAA,KAAK,EAAEC,WAAW;EAClBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,eAAe,EAAE;KACpB;AACL;AACJ,CAAC;;ACKD,aAAe;AACXhB,EAAAA,IAAI,EAAE,QAAQ;AACd,EAAA,SAAA,EAASiB,QAAU;AACnBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;EAClCC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;MACHC,kBAAkB,EAAE,EAAE;AACtBC,MAAAA,kBAAkB,EAAE;KACvB;GACJ;AACDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,YAAY,WAAZA,YAAYA,CAACC,GAAG,EAAEC,KAAK,EAAE;AACrB,MAAA,OAAO,IAAI,CAACC,GAAG,CAACF,GAAG,EAAE;AACjBG,QAAAA,OAAO,EAAE;AACLC,UAAAA,MAAM,EAAEH,KAAM,IAAG,IAAI,CAACI,OAAO;AAC7BC,UAAAA,OAAO,EAAEL,KAAM,KAAI,IAAI,CAACL;AAC5B;AACJ,OAAC,CAAC;KACL;AACDW,IAAAA,aAAa,WAAbA,aAAaA,CAACC,KAAK,EAAEP,KAAK,EAAE;MACxB,IAAI,CAAC,IAAI,CAACvB,QAAO,IAAK,CAAC,IAAI,CAAC+B,QAAQ,EAAE;AAClC,QAAA,IAAI,CAACC,cAAc,CAACF,KAAK,EAAEP,KAAK,CAAC;QACjC,IAAI,CAACJ,kBAAmB,GAAE,KAAK;AAC/B,QAAA,IAAMc,gBAAiB,GAAEC,wBAAwB,CAACJ,KAAK,CAACK,aAAa,CAAC;AAEtEF,QAAAA,gBAAiB,IAAGG,KAAK,CAACH,gBAAgB,CAAC;AAC/C;KACH;AACDI,IAAAA,OAAO,WAAPA,OAAOA,CAACP,KAAK,EAAEP,KAAK,EAAE;MAClB,IAAI,CAACL,kBAAmB,GAAEK,KAAK;AAC/B,MAAA,IAAI,CAACe,KAAK,CAAC,OAAO,EAAER,KAAK,CAAC;KAC7B;AACDS,IAAAA,MAAM,EAANA,SAAAA,MAAMA,CAACT,KAAK,EAAE;MAAA,IAAAU,qBAAA,EAAAC,eAAA;AACV,MAAA,IAAI,CAACvB,kBAAiB,GAAI,EAAE;AAC5B,MAAA,IAAI,CAACoB,KAAK,CAAC,MAAM,EAAER,KAAK,CAAC;AACzB,MAAA,CAAAU,qBAAA,GAAAC,CAAAA,eAAA,GAAI,IAAA,CAACC,SAAS,EAACH,MAAM,MAAAC,IAAAA,IAAAA,qBAAA,eAArBA,qBAAA,CAAAG,IAAA,CAAAF,eAAwB,CAAC;KAC5B;AACDG,IAAAA,QAAQ,WAARA,QAAQA,CAACd,KAAK,EAAEP,KAAK,EAAE;AACnB,MAAA,IAAI,CAACS,cAAc,CAACF,KAAK,EAAEP,KAAK,CAAC;MACjC,IAAI,CAACJ,kBAAiB,GAAI,IAAI;KACjC;AACDa,IAAAA,cAAc,WAAdA,cAAcA,CAACF,KAAK,EAAEP,KAAK,EAAE;MACzB,IAAI,IAAI,CAACL,kBAAiB,KAAMK,KAAM,IAAG,IAAI,CAACI,OAAM,KAAMJ,KAAK,EAAE;AAC7D,QAAA,IAAI,CAACL,kBAAiB,GAAI,EAAE;AAC5B,QAAA,IAAI,CAAC2B,WAAW,CAACf,KAAK,EAAE,IAAI,CAAC;AACjC,OAAE,MAAK;QACH,IAAI,CAACZ,kBAAmB,GAAEK,KAAK;QAC/B,IAAI,CAACsB,WAAW,CAACf,KAAK,EAAEP,KAAI,IAAK,IAAI,CAAC;AAC1C;KACH;AACDsB,IAAAA,WAAW,WAAXA,WAAWA,CAACf,KAAK,EAAEP,KAAK,EAAE;AACtB,MAAA,IAAI,CAACuB,UAAU,CAACvB,KAAK,EAAEO,KAAK,CAAC;AAC7B,MAAA,IAAI,CAACQ,KAAK,CAAC,QAAQ,EAAE;AAAES,QAAAA,aAAa,EAAEjB,KAAK;AAAEP,QAAAA,KAAM,EAANA;AAAM,OAAC,CAAC;KACxD;AACDyB,IAAAA,aAAa,EAAbA,SAAAA,aAAaA,CAACzB,KAAK,EAAE;AACjB,MAAA,OAAOA,KAAM,KAAI,IAAI,IAAI,CAAC0B,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACC,IAAK,GAAE,IAAI,CAACJ,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACjD,KAAK,CAACmD,OAAO,CAAC,SAAS,EAAE/B,KAAK,CAAC;AACnI;GACH;AACDgC,EAAAA,QAAQ,EAAE;IACNC,KAAK,EAAA,SAALA,KAAKA,GAAG;MACJ,OAAO,IAAI,CAAC3D,IAAK,IAAA,EAAA,CAAA4D,MAAA,CAAM,IAAI,CAACC,aAAa,EAAO,OAAA,CAAA;AACpD;GACH;AACDC,EAAAA,UAAU,EAAE;AACRC,IAAAA,YAAY,EAAZA,YAAY;AACZC,IAAAA,QAAQ,EAARA,QAAQ;AACRC,IAAAA,OAAM,EAANA;AACJ;AACJ,CAAC;;;;;ECzGG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CA0BK,OA1BLC,UA0BK,CAAA;AA1BC,IAAA,OAAA,EAAOC,IAAE,CAAAC,EAAA,CAAA,MAAA;KAAkBD,IAAI,CAAAE,IAAA,CAAA,MAAA,CAAA,CAAA,EAAA,mBACjCJ,kBAwBU,CAAAK,QAAA,EAAA,IAAA,EAAAC,UAAA,CAxBgBJ,IAAK,CAAA/D,KAAA,EAAA,UAAdoB,KAAM,EAAA;IACnB,OAAAwC,SAAA,EAAA,EAAAC,kBAAA,CAsBK,OAtBLC,UAsBK,CAAA;WAvB8B1C,KAAK;AAClC,MAAA,OAAA,EAAO2C,IAAE,CAAAC,EAAA,CAAA,QAAA,EAAA;AAAa5C,QAAAA,OAAAA;;AAAWgD,MAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAEC,MAAA,EAAA;AAAA,QAAA,OAAAC,QAAA,CAAA5C,aAAa,CAAC2C,MAAM,EAAEjD,KAAK,CAAA;OAAA;;KAAW,EAAAkD,QAAA,CAAApD,YAAY,WAAWE,KAAK,CAAA,EAAA;AAAI,MAAA,eAAa,EAAEA,KAAI,IAAK2C,IAAO,CAAAvC,OAAA;AAAG,MAAA,gBAAc,EAAEJ,KAAI,KAAMmD,KAAkB,CAAAxD;SAC9LyD,kBAAA,CAcM,QAdNV,UAcM,CAAA;AAdA,MAAA,OAAA,EAAM,qBAAoB;;OAAUC,IAAG,CAAA1C,GAAA,CAAA,4BAAA,CAAA,EAAA;AAAiC,MAAA,0BAAwB,EAAE;KAAI,CAAA,EAAA,CACxGmD,kBAAA,CAYC,SAZDV,UAYC,CAAA;AAXGhE,MAAAA,IAAI,EAAC,OAAM;AACVsB,MAAAA,KAAK,EAAEA,KAAK;MACZ1B,IAAI,EAAE4E,QAAK,CAAAjB,KAAA;AACXoB,MAAAA,OAAO,EAAEV,IAAM,CAAAvC,OAAA,KAAMJ,KAAK;MAC1BQ,QAAQ,EAAEmC,IAAQ,CAAAnC,QAAA;MAClB/B,QAAQ,EAAEkE,IAAQ,CAAAlE,QAAA;AAClB,MAAA,YAAU,EAAEyE,QAAa,CAAAzB,aAAA,CAACzB,KAAK,CAAA;AAC/Bc,MAAAA,OAAK,EAAE,SAAPA,OAAKA,CAAEmC,MAAA,EAAA;AAAA,QAAA,OAAAC,QAAA,CAAApC,OAAO,CAACmC,MAAM,EAAEjD,KAAK,CAAA;OAAA;MAC5BgB,MAAI;eAAEkC,QAAM,CAAAlC,MAAA,IAAAkC,QAAA,CAAAlC,MAAA,CAAAsC,KAAA,CAAAJ,QAAA,EAAAK,SAAA,CAAA;AAAA,OAAA,CAAA;AACZlC,MAAAA,QAAM,EAAE,SAARA,QAAMA,CAAE4B,MAAA,EAAA;AAAA,QAAA,OAAAC,QAAA,CAAA7B,QAAQ,CAAC4B,MAAM,EAAEjD,KAAK,CAAA;OAAA;;OACvB2C,IAAG,CAAA1C,GAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAAuD,UAAA,CAAA,QAGPxD,SAAS2C,IAAO,CAAAvC,OAAA,GAA5BqD,UAEM,CAAAd,IAAA,CAAAe,MAAA,EAAA,QAAA,EAAA;;AAFuC1D,MAAAA,KAAK,EAAEA,KAAK;AAAG,MAAA,OAAA,iBAAO2C,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA;OAArE,YAAA;AAAA,MAAA,OAEM,eADFe,WAA0G,CAAAC,uBAAA,CAA1FjB,wCAAhBD,UAA0G,CAAA;QAAvD,OAAK,EAAA,CAAGC,IAAE,CAAAC,EAAA,CAAA,QAAA,CAAA,EAAYD,IAAM,CAAA7D,MAAA,CAAA;;SAAW6D,IAAG,CAAA1C,GAAA,CAAA,QAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;SAEjGwD,UAEM,CAAAd,IAAA,CAAAe,MAAA,EAAA,SAAA,EAAA;;AAFuB1D,MAAAA,KAAK,EAAEA,KAAK;AAAG,MAAA,OAAA,iBAAO2C,IAAE,CAAAC,EAAA,CAAA,SAAA,CAAA;OAArD,YAAA;AAAA,MAAA,OAEM,eADFe,WAA0G,CAAAC,uBAAA,CAA1FjB,IAAQ,CAAA1D,OAAA,GAAA,MAAA,GAAA,UAAA,CAAA,EAAxByD,UAA0G,CAAA;QAA1D,OAAK,EAAA,CAAGC,IAAE,CAAAC,EAAA,CAAA,SAAA,CAAA,EAAaD,IAAO,CAAA1D,OAAA,CAAA;;SAAW0D,IAAG,CAAA1C,GAAA,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA;;;;;;;;;"}
|
|
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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"}
|
package/scrolltop/ScrollTop.vue
CHANGED
|
@@ -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="
|
|
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>
|
package/scrolltop/index.d.ts
CHANGED
|
@@ -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
|
package/scrolltop/index.mjs
CHANGED
|
@@ -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.
|
|
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'
|
|
151
|
+
}, _ctx.ptm('root')['icon'], {
|
|
152
|
+
"data-pc-section": "icon"
|
|
153
|
+
}), null, 16, ["class"]))];
|
|
152
154
|
})];
|
|
153
155
|
}),
|
|
154
156
|
_: 3
|
package/scrolltop/index.mjs.map
CHANGED
|
@@ -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' ? ' ' : label ?? 'empty' }}</slot>
|
|
54
|
+
<slot name="value" :value="d_value" :placeholder="placeholder">{{ label === 'p-emptylabel' ? ' ' : (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
|
-
@
|
|
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
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
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'
|
|
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
|
|
727
|
-
|
|
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
|
-
|
|
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: '
|
|
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
|
*/
|