- fix #6164 optimize menu bar

- move getAriaSetSize to computed
- optimize getAriaPosInset
pull/6176/head
uros 2024-08-02 12:47:25 +02:00
parent 3a007b0adb
commit 49b4b48466
1 changed files with 11 additions and 5 deletions

View File

@ -12,7 +12,7 @@
:aria-expanded="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
:aria-haspopup="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
:aria-level="level + 1"
:aria-setsize="getAriaSetSize()"
:aria-setsize="getAriaSetSize"
:aria-posinset="getAriaPosInset(index)"
v-bind="getPTOptions(processedItem, index, 'item')"
:data-p-active="isItemActive(processedItem)"
@ -123,6 +123,7 @@ export default {
}
},
list: null,
methods: {
getItemId(processedItem) {
return `${this.menuId}_${processedItem.key}`;
@ -176,11 +177,8 @@ export default {
onItemMouseMove(event, processedItem) {
this.$emit('item-mousemove', { originalEvent: event, processedItem });
},
getAriaSetSize() {
return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
},
getAriaPosInset(index) {
return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
return index - this.ariaPosInsetCompute.slice(0, index).length + 1;
},
getMenuItemProps(processedItem, index) {
return {
@ -213,6 +211,14 @@ export default {
};
}
},
computed: {
ariaPosInsetCompute() {
return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));
},
getAriaSetSize() {
return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
}
},
components: {
AngleRightIcon: AngleRightIcon,
AngleDownIcon: AngleDownIcon