primeng 16.5.0 → 16.6.0

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 (95) hide show
  1. package/api/menuitem.d.ts +5 -1
  2. package/api/tooltipoptions.d.ts +1 -1
  3. package/breadcrumb/breadcrumb.d.ts +1 -0
  4. package/contextmenu/contextmenu.d.ts +3 -1
  5. package/esm2022/accordion/accordion.mjs +2 -2
  6. package/esm2022/api/menuitem.mjs +1 -1
  7. package/esm2022/api/tooltipoptions.mjs +1 -1
  8. package/esm2022/breadcrumb/breadcrumb.mjs +45 -18
  9. package/esm2022/button/button.mjs +2 -2
  10. package/esm2022/carousel/carousel.mjs +2 -1
  11. package/esm2022/contextmenu/contextmenu.mjs +176 -152
  12. package/esm2022/dock/dock.mjs +4 -4
  13. package/esm2022/dropdown/dropdown.mjs +2 -2
  14. package/esm2022/galleria/galleria.mjs +3 -3
  15. package/esm2022/image/image.mjs +11 -4
  16. package/esm2022/megamenu/megamenu.mjs +178 -154
  17. package/esm2022/menu/menu.mjs +150 -102
  18. package/esm2022/menubar/menubar.mjs +174 -150
  19. package/esm2022/multiselect/multiselect.mjs +3 -2
  20. package/esm2022/overlaypanel/overlaypanel.mjs +9 -3
  21. package/esm2022/panelmenu/panelmenu.mjs +141 -112
  22. package/esm2022/slidemenu/slidemenu.mjs +2 -2
  23. package/esm2022/speeddial/speeddial.mjs +2 -2
  24. package/esm2022/splitbutton/splitbutton.interface.mjs +1 -1
  25. package/esm2022/splitbutton/splitbutton.mjs +70 -14
  26. package/esm2022/steps/steps.mjs +1 -1
  27. package/esm2022/table/table.mjs +28 -20
  28. package/esm2022/tabmenu/tabmenu.mjs +18 -26
  29. package/esm2022/tabview/tabview.mjs +4 -4
  30. package/esm2022/tieredmenu/tieredmenu.mjs +172 -148
  31. package/esm2022/tooltip/tooltip.mjs +28 -31
  32. package/esm2022/treetable/treetable.mjs +1 -1
  33. package/fesm2022/primeng-accordion.mjs +1 -1
  34. package/fesm2022/primeng-accordion.mjs.map +1 -1
  35. package/fesm2022/primeng-breadcrumb.mjs +44 -17
  36. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  37. package/fesm2022/primeng-button.mjs +1 -1
  38. package/fesm2022/primeng-button.mjs.map +1 -1
  39. package/fesm2022/primeng-carousel.mjs +1 -0
  40. package/fesm2022/primeng-carousel.mjs.map +1 -1
  41. package/fesm2022/primeng-contextmenu.mjs +175 -151
  42. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  43. package/fesm2022/primeng-dock.mjs +3 -3
  44. package/fesm2022/primeng-dock.mjs.map +1 -1
  45. package/fesm2022/primeng-dropdown.mjs +1 -1
  46. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  47. package/fesm2022/primeng-galleria.mjs +2 -2
  48. package/fesm2022/primeng-galleria.mjs.map +1 -1
  49. package/fesm2022/primeng-image.mjs +10 -3
  50. package/fesm2022/primeng-image.mjs.map +1 -1
  51. package/fesm2022/primeng-megamenu.mjs +177 -153
  52. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  53. package/fesm2022/primeng-menu.mjs +150 -102
  54. package/fesm2022/primeng-menu.mjs.map +1 -1
  55. package/fesm2022/primeng-menubar.mjs +173 -149
  56. package/fesm2022/primeng-menubar.mjs.map +1 -1
  57. package/fesm2022/primeng-multiselect.mjs +2 -1
  58. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  59. package/fesm2022/primeng-overlaypanel.mjs +8 -2
  60. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  61. package/fesm2022/primeng-panelmenu.mjs +140 -111
  62. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  63. package/fesm2022/primeng-slidemenu.mjs +1 -1
  64. package/fesm2022/primeng-slidemenu.mjs.map +1 -1
  65. package/fesm2022/primeng-speeddial.mjs +1 -1
  66. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  67. package/fesm2022/primeng-splitbutton.mjs +69 -13
  68. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  69. package/fesm2022/primeng-steps.mjs +1 -1
  70. package/fesm2022/primeng-steps.mjs.map +1 -1
  71. package/fesm2022/primeng-table.mjs +27 -19
  72. package/fesm2022/primeng-table.mjs.map +1 -1
  73. package/fesm2022/primeng-tabmenu.mjs +17 -25
  74. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  75. package/fesm2022/primeng-tabview.mjs +3 -3
  76. package/fesm2022/primeng-tabview.mjs.map +1 -1
  77. package/fesm2022/primeng-tieredmenu.mjs +171 -147
  78. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  79. package/fesm2022/primeng-tooltip.mjs +27 -30
  80. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  81. package/fesm2022/primeng-treetable.mjs.map +1 -1
  82. package/image/image.d.ts +6 -1
  83. package/megamenu/megamenu.d.ts +3 -1
  84. package/menu/menu.d.ts +11 -5
  85. package/menubar/menubar.d.ts +3 -1
  86. package/overlaypanel/overlaypanel.d.ts +1 -0
  87. package/package.json +195 -195
  88. package/panelmenu/panelmenu.d.ts +5 -2
  89. package/splitbutton/splitbutton.d.ts +10 -1
  90. package/splitbutton/splitbutton.interface.d.ts +15 -0
  91. package/table/table.d.ts +2 -1
  92. package/tabmenu/tabmenu.d.ts +2 -2
  93. package/tieredmenu/tieredmenu.d.ts +3 -1
  94. package/tooltip/tooltip.d.ts +7 -12
  95. package/treetable/treetable.d.ts +1 -1
@@ -20,6 +20,7 @@ class MegaMenuSub {
20
20
  megaMenu;
21
21
  id;
22
22
  items;
23
+ itemTemplate;
23
24
  menuId;
24
25
  ariaLabel;
25
26
  ariaLabelledBy;
@@ -127,12 +128,12 @@ class MegaMenuSub {
127
128
  this.itemMouseEnter.emit({ originalEvent: event, processedItem });
128
129
  }
129
130
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MegaMenuSub, deps: [{ token: i0.ElementRef }, { token: forwardRef(() => MegaMenu) }], target: i0.ɵɵFactoryTarget.Component });
130
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: { id: "id", items: "items", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: "level", focusedItemId: "focusedItemId", disabled: "disabled", orientation: "orientation", activeItem: "activeItem", submenu: "submenu", tabindex: "tabindex", root: "root" }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "menubarViewChild", first: true, predicate: ["menubar"], descendants: true, static: true }], ngImport: i0, template: `
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: { id: "id", items: "items", itemTemplate: "itemTemplate", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: "level", focusedItemId: "focusedItemId", disabled: "disabled", orientation: "orientation", activeItem: "activeItem", submenu: "submenu", tabindex: "tabindex", root: "root" }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "menubarViewChild", first: true, predicate: ["menubar"], descendants: true, static: true }], ngImport: i0, template: `
131
132
  <ul
132
133
  #menubar
133
134
  [ngClass]="{ 'p-megamenu-root-list': root, 'p-submenu-list p-megamenu-submenu': !root }"
134
135
  [attr.role]="root ? 'menubar' : 'menu'"
135
- [id]="id"
136
+ [attr.id]="id"
136
137
  [attr.aria-orientation]="orientation"
137
138
  [tabindex]="tabindex"
138
139
  [attr.aria-activedescendant]="focusedItemId"
@@ -145,7 +146,7 @@ class MegaMenuSub {
145
146
  <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
146
147
  <li
147
148
  *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
148
- [id]="getItemId(processedItem)"
149
+ [attr.id]="getItemId(processedItem)"
149
150
  [style]="getItemProp(processedItem, 'style')"
150
151
  [ngClass]="getSeparatorItemClass(processedItem)"
151
152
  role="separator"
@@ -155,7 +156,7 @@ class MegaMenuSub {
155
156
  #listItem
156
157
  *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
157
158
  role="menuitem"
158
- [id]="getItemId(processedItem)"
159
+ [attr.id]="getItemId(processedItem)"
159
160
  [attr.data-pc-section]="'menuitem'"
160
161
  [attr.data-p-highlight]="isItemActive(processedItem)"
161
162
  [attr.data-p-focused]="isItemFocused(processedItem)"
@@ -174,83 +175,88 @@ class MegaMenuSub {
174
175
  [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
175
176
  >
176
177
  <div class="p-menuitem-content" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({$event, processedItem})">
177
- <a
178
- *ngIf="!getItemProp(processedItem, 'routerLink')"
179
- [attr.href]="getItemProp(processedItem, 'url')"
180
- [attr.aria-hidden]="true"
181
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
182
- [attr.data-pc-section]="'action'"
183
- [target]="getItemProp(processedItem, 'target')"
184
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
185
- [attr.tabindex]="-1"
186
- pRipple
187
- >
188
- <span
189
- *ngIf="getItemProp(processedItem, 'icon')"
190
- class="p-menuitem-icon"
191
- [ngClass]="getItemProp(processedItem, 'icon')"
192
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
193
- [attr.data-pc-section]="'icon'"
178
+ <ng-container *ngIf="!itemTemplate">
179
+ <a
180
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
181
+ [attr.href]="getItemProp(processedItem, 'url')"
194
182
  [attr.aria-hidden]="true"
183
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
184
+ [attr.data-pc-section]="'action'"
185
+ [target]="getItemProp(processedItem, 'target')"
186
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
195
187
  [attr.tabindex]="-1"
188
+ pRipple
196
189
  >
197
- </span>
198
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
199
- {{ getItemLabel(processedItem) }}
200
- </span>
201
- <ng-template #htmlLabel>
202
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
203
- </ng-template>
204
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
190
+ <span
191
+ *ngIf="getItemProp(processedItem, 'icon')"
192
+ class="p-menuitem-icon"
193
+ [ngClass]="getItemProp(processedItem, 'icon')"
194
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
195
+ [attr.data-pc-section]="'icon'"
196
+ [attr.aria-hidden]="true"
197
+ [attr.tabindex]="-1"
198
+ >
199
+ </span>
200
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
201
+ {{ getItemLabel(processedItem) }}
202
+ </span>
203
+ <ng-template #htmlLabel>
204
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
205
+ </ng-template>
206
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
205
207
 
206
- <ng-container *ngIf="isItemGroup(processedItem)">
207
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
208
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
209
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
208
+ <ng-container *ngIf="isItemGroup(processedItem)">
209
+ <ng-container *ngIf="!megaMenu.submenuIconTemplate">
210
+ <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
211
+ <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
212
+ </ng-container>
213
+ <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
210
214
  </ng-container>
211
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
212
- </ng-container>
213
- </a>
214
- <a
215
- *ngIf="getItemProp(processedItem, 'routerLink')"
216
- [routerLink]="getItemProp(processedItem, 'routerLink')"
217
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
218
- [attr.tabindex]="-1"
219
- [attr.aria-hidden]="true"
220
- [attr.data-pc-section]="'action'"
221
- [queryParams]="getItemProp(processedItem, 'queryParams')"
222
- [routerLinkActive]="'p-menuitem-link-active'"
223
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
224
- [target]="getItemProp(processedItem, 'target')"
225
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
226
- [fragment]="getItemProp(processedItem, 'fragment')"
227
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
228
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
229
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
230
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
231
- [state]="getItemProp(processedItem, 'state')"
232
- pRipple
233
- >
234
- <span
235
- class="p-menuitem-icon"
236
- *ngIf="getItemProp(processedItem, 'icon')"
237
- [ngClass]="getItemProp(processedItem, 'icon')"
238
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
239
- [attr.data-pc-section]="'icon'"
240
- [attr.aria-hidden]="true"
215
+ </a>
216
+ <a
217
+ *ngIf="getItemProp(processedItem, 'routerLink')"
218
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
219
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
241
220
  [attr.tabindex]="-1"
242
- ></span>
243
- <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
244
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
245
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
246
- <ng-container *ngIf="isItemGroup(processedItem)">
247
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
248
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
249
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
221
+ [attr.aria-hidden]="true"
222
+ [attr.data-pc-section]="'action'"
223
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
224
+ [routerLinkActive]="'p-menuitem-link-active'"
225
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
226
+ [target]="getItemProp(processedItem, 'target')"
227
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
228
+ [fragment]="getItemProp(processedItem, 'fragment')"
229
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
230
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
231
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
232
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
233
+ [state]="getItemProp(processedItem, 'state')"
234
+ pRipple
235
+ >
236
+ <span
237
+ class="p-menuitem-icon"
238
+ *ngIf="getItemProp(processedItem, 'icon')"
239
+ [ngClass]="getItemProp(processedItem, 'icon')"
240
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
241
+ [attr.data-pc-section]="'icon'"
242
+ [attr.aria-hidden]="true"
243
+ [attr.tabindex]="-1"
244
+ ></span>
245
+ <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
246
+ <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
247
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
248
+ <ng-container *ngIf="isItemGroup(processedItem)">
249
+ <ng-container *ngIf="!megaMenu.submenuIconTemplate">
250
+ <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
251
+ <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
252
+ </ng-container>
253
+ <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
250
254
  </ng-container>
251
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
252
- </ng-container>
253
- </a>
255
+ </a>
256
+ </ng-container>
257
+ <ng-container *ngIf="itemTemplate">
258
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
259
+ </ng-container>
254
260
  </div>
255
261
  <div *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)" class="p-megamenu-panel" [attr.data-pc-section]="'panel'">
256
262
  <div class="p-megamenu-grid" [attr.data-pc-section]="'grid'">
@@ -260,6 +266,7 @@ class MegaMenuSub {
260
266
  [id]="getSubListId(submenu)"
261
267
  [submenu]="submenu"
262
268
  [items]="submenu.items"
269
+ [itemTemplate]="itemTemplate"
263
270
  [menuId]="menuId"
264
271
  [focusedItemId]="focusedItemId"
265
272
  [level]="level + 1"
@@ -274,7 +281,7 @@ class MegaMenuSub {
274
281
  </li>
275
282
  </ng-template>
276
283
  </ul>
277
- `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.RouterLink; }), selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.RouterLinkActive; }), selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.Ripple; }), selector: "[pRipple]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.Tooltip; }), selector: "[pTooltip]", inputs: ["id", "tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i0.forwardRef(function () { return AngleDownIcon; }), selector: "AngleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return MegaMenuSub; }), selector: "p-megaMenuSub", inputs: ["id", "items", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], encapsulation: i0.ViewEncapsulation.None });
284
+ `, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.RouterLink; }), selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.RouterLinkActive; }), selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.Ripple; }), selector: "[pRipple]" }, { kind: "directive", type: i0.forwardRef(function () { return i4.Tooltip; }), selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i0.forwardRef(function () { return AngleDownIcon; }), selector: "AngleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return MegaMenuSub; }), selector: "p-megaMenuSub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], encapsulation: i0.ViewEncapsulation.None });
278
285
  }
279
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MegaMenuSub, decorators: [{
280
287
  type: Component,
@@ -285,7 +292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
285
292
  #menubar
286
293
  [ngClass]="{ 'p-megamenu-root-list': root, 'p-submenu-list p-megamenu-submenu': !root }"
287
294
  [attr.role]="root ? 'menubar' : 'menu'"
288
- [id]="id"
295
+ [attr.id]="id"
289
296
  [attr.aria-orientation]="orientation"
290
297
  [tabindex]="tabindex"
291
298
  [attr.aria-activedescendant]="focusedItemId"
@@ -298,7 +305,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
298
305
  <ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
299
306
  <li
300
307
  *ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
301
- [id]="getItemId(processedItem)"
308
+ [attr.id]="getItemId(processedItem)"
302
309
  [style]="getItemProp(processedItem, 'style')"
303
310
  [ngClass]="getSeparatorItemClass(processedItem)"
304
311
  role="separator"
@@ -308,7 +315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
308
315
  #listItem
309
316
  *ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
310
317
  role="menuitem"
311
- [id]="getItemId(processedItem)"
318
+ [attr.id]="getItemId(processedItem)"
312
319
  [attr.data-pc-section]="'menuitem'"
313
320
  [attr.data-p-highlight]="isItemActive(processedItem)"
314
321
  [attr.data-p-focused]="isItemFocused(processedItem)"
@@ -327,83 +334,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
327
334
  [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
328
335
  >
329
336
  <div class="p-menuitem-content" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({$event, processedItem})">
330
- <a
331
- *ngIf="!getItemProp(processedItem, 'routerLink')"
332
- [attr.href]="getItemProp(processedItem, 'url')"
333
- [attr.aria-hidden]="true"
334
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
335
- [attr.data-pc-section]="'action'"
336
- [target]="getItemProp(processedItem, 'target')"
337
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
338
- [attr.tabindex]="-1"
339
- pRipple
340
- >
341
- <span
342
- *ngIf="getItemProp(processedItem, 'icon')"
343
- class="p-menuitem-icon"
344
- [ngClass]="getItemProp(processedItem, 'icon')"
345
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
346
- [attr.data-pc-section]="'icon'"
337
+ <ng-container *ngIf="!itemTemplate">
338
+ <a
339
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
340
+ [attr.href]="getItemProp(processedItem, 'url')"
347
341
  [attr.aria-hidden]="true"
342
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
343
+ [attr.data-pc-section]="'action'"
344
+ [target]="getItemProp(processedItem, 'target')"
345
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
348
346
  [attr.tabindex]="-1"
347
+ pRipple
349
348
  >
350
- </span>
351
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
352
- {{ getItemLabel(processedItem) }}
353
- </span>
354
- <ng-template #htmlLabel>
355
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
356
- </ng-template>
357
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
349
+ <span
350
+ *ngIf="getItemProp(processedItem, 'icon')"
351
+ class="p-menuitem-icon"
352
+ [ngClass]="getItemProp(processedItem, 'icon')"
353
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
354
+ [attr.data-pc-section]="'icon'"
355
+ [attr.aria-hidden]="true"
356
+ [attr.tabindex]="-1"
357
+ >
358
+ </span>
359
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
360
+ {{ getItemLabel(processedItem) }}
361
+ </span>
362
+ <ng-template #htmlLabel>
363
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
364
+ </ng-template>
365
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
358
366
 
359
- <ng-container *ngIf="isItemGroup(processedItem)">
360
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
361
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
362
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
367
+ <ng-container *ngIf="isItemGroup(processedItem)">
368
+ <ng-container *ngIf="!megaMenu.submenuIconTemplate">
369
+ <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
370
+ <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
371
+ </ng-container>
372
+ <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
363
373
  </ng-container>
364
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
365
- </ng-container>
366
- </a>
367
- <a
368
- *ngIf="getItemProp(processedItem, 'routerLink')"
369
- [routerLink]="getItemProp(processedItem, 'routerLink')"
370
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
371
- [attr.tabindex]="-1"
372
- [attr.aria-hidden]="true"
373
- [attr.data-pc-section]="'action'"
374
- [queryParams]="getItemProp(processedItem, 'queryParams')"
375
- [routerLinkActive]="'p-menuitem-link-active'"
376
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
377
- [target]="getItemProp(processedItem, 'target')"
378
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
379
- [fragment]="getItemProp(processedItem, 'fragment')"
380
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
381
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
382
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
383
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
384
- [state]="getItemProp(processedItem, 'state')"
385
- pRipple
386
- >
387
- <span
388
- class="p-menuitem-icon"
389
- *ngIf="getItemProp(processedItem, 'icon')"
390
- [ngClass]="getItemProp(processedItem, 'icon')"
391
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
392
- [attr.data-pc-section]="'icon'"
393
- [attr.aria-hidden]="true"
374
+ </a>
375
+ <a
376
+ *ngIf="getItemProp(processedItem, 'routerLink')"
377
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
378
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
394
379
  [attr.tabindex]="-1"
395
- ></span>
396
- <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
397
- <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
398
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
399
- <ng-container *ngIf="isItemGroup(processedItem)">
400
- <ng-container *ngIf="!megaMenu.submenuIconTemplate">
401
- <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
402
- <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
380
+ [attr.aria-hidden]="true"
381
+ [attr.data-pc-section]="'action'"
382
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
383
+ [routerLinkActive]="'p-menuitem-link-active'"
384
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
385
+ [target]="getItemProp(processedItem, 'target')"
386
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
387
+ [fragment]="getItemProp(processedItem, 'fragment')"
388
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
389
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
390
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
391
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
392
+ [state]="getItemProp(processedItem, 'state')"
393
+ pRipple
394
+ >
395
+ <span
396
+ class="p-menuitem-icon"
397
+ *ngIf="getItemProp(processedItem, 'icon')"
398
+ [ngClass]="getItemProp(processedItem, 'icon')"
399
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
400
+ [attr.data-pc-section]="'icon'"
401
+ [attr.aria-hidden]="true"
402
+ [attr.tabindex]="-1"
403
+ ></span>
404
+ <span class="p-menuitem-text" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
405
+ <ng-template #htmlRouteLabel><span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
406
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
407
+ <ng-container *ngIf="isItemGroup(processedItem)">
408
+ <ng-container *ngIf="!megaMenu.submenuIconTemplate">
409
+ <AngleDownIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
410
+ <AngleRightIcon [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
411
+ </ng-container>
412
+ <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
403
413
  </ng-container>
404
- <ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
405
- </ng-container>
406
- </a>
414
+ </a>
415
+ </ng-container>
416
+ <ng-container *ngIf="itemTemplate">
417
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
418
+ </ng-container>
407
419
  </div>
408
420
  <div *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)" class="p-megamenu-panel" [attr.data-pc-section]="'panel'">
409
421
  <div class="p-megamenu-grid" [attr.data-pc-section]="'grid'">
@@ -413,6 +425,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
413
425
  [id]="getSubListId(submenu)"
414
426
  [submenu]="submenu"
415
427
  [items]="submenu.items"
428
+ [itemTemplate]="itemTemplate"
416
429
  [menuId]="menuId"
417
430
  [focusedItemId]="focusedItemId"
418
431
  [level]="level + 1"
@@ -440,6 +453,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
440
453
  type: Input
441
454
  }], items: [{
442
455
  type: Input
456
+ }], itemTemplate: [{
457
+ type: Input
443
458
  }], menuId: [{
444
459
  type: Input
445
460
  }], ariaLabel: [{
@@ -545,6 +560,7 @@ class MegaMenu {
545
560
  endTemplate;
546
561
  menuIconTemplate;
547
562
  submenuIconTemplate;
563
+ itemTemplate;
548
564
  outsideClickListener;
549
565
  resizeListener;
550
566
  dirty = false;
@@ -615,6 +631,12 @@ class MegaMenu {
615
631
  case 'submenuicon':
616
632
  this.submenuIconTemplate = item.template;
617
633
  break;
634
+ case 'item':
635
+ this.itemTemplate = item.template;
636
+ break;
637
+ default:
638
+ this.itemTemplate = item.template;
639
+ break;
618
640
  }
619
641
  });
620
642
  }
@@ -1031,15 +1053,16 @@ class MegaMenu {
1031
1053
  [ngStyle]="style"
1032
1054
  [attr.data-pc-section]="'root'"
1033
1055
  [attr.data-pc-name]="'megamenu'"
1034
- [id]="id"
1056
+ [attr.id]="id"
1035
1057
  >
1036
1058
  <div class="p-megamenu-start" *ngIf="startTemplate">
1037
1059
  <ng-container *ngTemplateOutlet="startTemplate"></ng-container>
1038
1060
  </div>
1039
1061
  <p-megaMenuSub
1040
1062
  #rootmenu
1063
+ [itemTemplate]="itemTemplate"
1041
1064
  [items]="processedItems"
1042
- [id]="id + '_list'"
1065
+ [attr.id]="id + '_list'"
1043
1066
  [menuId]="id"
1044
1067
  [root]="true"
1045
1068
  [orientation]="orientation"
@@ -1065,7 +1088,7 @@ class MegaMenu {
1065
1088
  </div>
1066
1089
  </ng-template>
1067
1090
  </div>
1068
- `, isInline: true, styles: ["@layer primeng{.p-megamenu-root-list{margin:0;padding:0;list-style:none}.p-megamenu-root-list>.p-menuitem{position:relative}.p-megamenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-megamenu .p-menuitem-text{line-height:1}.p-megamenu-panel{display:none;position:absolute;width:auto;z-index:1}.p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{display:block}.p-megamenu-submenu{margin:0;padding:0;list-style:none}.p-megamenu-horizontal{align-items:center}.p-megamenu-horizontal .p-megamenu-root-list{display:flex;align-items:center;flex-wrap:wrap}.p-megamenu-horizontal .p-megamenu-end{margin-left:auto;align-self:center}.p-megamenu-vertical .p-megamenu-root-list{flex-direction:column}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{left:100%;top:0}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon:not(svg){margin-left:auto}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-icon-wrapper{margin-left:auto}.p-megamenu-grid{display:flex}.p-megamenu-col-2,.p-megamenu-col-3,.p-megamenu-col-4,.p-megamenu-col-6,.p-megamenu-col-12{flex:0 0 auto;padding:.5rem}.p-megamenu-col-2{width:16.6667%}.p-megamenu-col-3{width:25%}.p-megamenu-col-4{width:33.3333%}.p-megamenu-col-6{width:50%}.p-megamenu-col-12{width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: ["id", "items", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1091
+ `, isInline: true, styles: ["@layer primeng{.p-megamenu-root-list{margin:0;padding:0;list-style:none}.p-megamenu-root-list>.p-menuitem{position:relative}.p-megamenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-megamenu .p-menuitem-text{line-height:1}.p-megamenu-panel{display:none;position:absolute;width:auto;z-index:1}.p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{display:block}.p-megamenu-submenu{margin:0;padding:0;list-style:none}.p-megamenu-horizontal{align-items:center}.p-megamenu-horizontal .p-megamenu-root-list{display:flex;align-items:center;flex-wrap:wrap}.p-megamenu-horizontal .p-megamenu-end{margin-left:auto;align-self:center}.p-megamenu-vertical .p-megamenu-root-list{flex-direction:column}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem-active>.p-megamenu-panel{left:100%;top:0}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-submenu-icon:not(svg){margin-left:auto}.p-megamenu-vertical .p-megamenu-root-list>.p-menuitem>.p-menuitem-content>.p-menuitem-link>.p-icon-wrapper{margin-left:auto}.p-megamenu-grid{display:flex}.p-megamenu-col-2,.p-megamenu-col-3,.p-megamenu-col-4,.p-megamenu-col-6,.p-megamenu-col-12{flex:0 0 auto;padding:.5rem}.p-megamenu-col-2{width:16.6667%}.p-megamenu-col-3{width:25%}.p-megamenu-col-4{width:33.3333%}.p-megamenu-col-6{width:50%}.p-megamenu-col-12{width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1069
1092
  }
1070
1093
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MegaMenu, decorators: [{
1071
1094
  type: Component,
@@ -1076,15 +1099,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1076
1099
  [ngStyle]="style"
1077
1100
  [attr.data-pc-section]="'root'"
1078
1101
  [attr.data-pc-name]="'megamenu'"
1079
- [id]="id"
1102
+ [attr.id]="id"
1080
1103
  >
1081
1104
  <div class="p-megamenu-start" *ngIf="startTemplate">
1082
1105
  <ng-container *ngTemplateOutlet="startTemplate"></ng-container>
1083
1106
  </div>
1084
1107
  <p-megaMenuSub
1085
1108
  #rootmenu
1109
+ [itemTemplate]="itemTemplate"
1086
1110
  [items]="processedItems"
1087
- [id]="id + '_list'"
1111
+ [attr.id]="id + '_list'"
1088
1112
  [menuId]="id"
1089
1113
  [root]="true"
1090
1114
  [orientation]="orientation"