diff --git a/api-generator/components/panelmenu.js b/api-generator/components/panelmenu.js
index a534bc763..d15581799 100644
--- a/api-generator/components/panelmenu.js
+++ b/api-generator/components/panelmenu.js
@@ -27,6 +27,14 @@ const PanelMenuSlots = [
{
name: 'submenuicon',
description: 'Custom submenu icon template.'
+ },
+ {
+ name: 'headericon',
+ description: 'Custom header icon template.'
+ },
+ {
+ name: 'itemicon',
+ description: 'Custom item icon template.'
}
];
diff --git a/components/lib/panelmenu/PanelMenu.d.ts b/components/lib/panelmenu/PanelMenu.d.ts
index 94cb98495..6785b8abc 100755
--- a/components/lib/panelmenu/PanelMenu.d.ts
+++ b/components/lib/panelmenu/PanelMenu.d.ts
@@ -89,6 +89,34 @@ export interface PanelMenuSlots {
*/
active: boolean;
}): VNode[];
+ /**
+ * Custom header icon template.
+ * @param {Object} scope - header icon slot's params.
+ */
+ headericon(scope: {
+ /**
+ * Menuitem instance
+ */
+ item: MenuItem;
+ /**
+ * Style class of the item icon element.
+ */
+ class: any;
+ }): VNode[];
+ /**
+ * Custom item icon template.
+ * @param {Object} scope - item icon slot's params.
+ */
+ itemicon(scope: {
+ /**
+ * Menuitem instance
+ */
+ item: MenuItem;
+ /**
+ * Style class of the item icon element.
+ */
+ class: any;
+ }): VNode[];
}
/**
diff --git a/components/lib/panelmenu/PanelMenu.vue b/components/lib/panelmenu/PanelMenu.vue
index 1b926ac0f..6db4b4516 100644
--- a/components/lib/panelmenu/PanelMenu.vue
+++ b/components/lib/panelmenu/PanelMenu.vue
@@ -18,7 +18,7 @@