Fixed #4750 - PanelMenu: isActive options for item templating

pull/4753/head
tugcekucukoglu 2023-11-03 15:54:49 +03:00
parent 4d4fe141d4
commit a2316e8385
3 changed files with 14 additions and 2 deletions

View File

@ -295,6 +295,10 @@ export interface PanelMenuSlots {
* Menuitem instance
*/
item: MenuItem;
/**
* Current active state of the menuitem
*/
isActive: boolean;
/**
* Label property of the menuitem
*/

View File

@ -35,7 +35,7 @@
<span :class="cx('headerLabel')" v-bind="getPTOptions('headerLabel', item, index)">{{ getItemLabel(item) }}</span>
</a>
</template>
<component v-else :is="$slots.item" :item="item" :hasSubmenu="getItemProp(item, 'items')" :label="getItemLabel(item)" :props="getMenuItemProps(item, index)"></component>
<component v-else :is="$slots.item" :item="item" :isActive="isItemActive(item)" :hasSubmenu="getItemProp(item, 'items')" :label="getItemLabel(item)" :props="getMenuItemProps(item, index)"></component>
</div>
</div>
<transition name="p-toggleable-content" v-bind="ptm('transition')">

View File

@ -35,7 +35,15 @@
<span :class="cx('label')" v-bind="getPTOptions('label', processedItem, index)">{{ getItemLabel(processedItem) }}</span>
</a>
</template>
<component v-else :is="templates.item" :item="processedItem.item" :hasSubmenu="isItemGroup(processedItem)" :label="getItemLabel(processedItem)" :props="getMenuItemProps(processedItem, index)"></component>
<component
v-else
:is="templates.item"
:item="processedItem.item"
:isActive="isItemActive(processedItem)"
:hasSubmenu="isItemGroup(processedItem)"
:label="getItemLabel(processedItem)"
:props="getMenuItemProps(processedItem, index)"
></component>
</div>
<transition name="p-toggleable-content" v-bind="ptm('transition')">
<div v-show="isItemActive(processedItem)" :class="cx('toggleableContent')" v-bind="ptm('toggleableContent')">