primeng 16.5.1 → 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 (67) hide show
  1. package/api/menuitem.d.ts +5 -1
  2. package/breadcrumb/breadcrumb.d.ts +1 -0
  3. package/contextmenu/contextmenu.d.ts +3 -1
  4. package/esm2022/api/menuitem.mjs +1 -1
  5. package/esm2022/breadcrumb/breadcrumb.mjs +44 -17
  6. package/esm2022/button/button.mjs +2 -2
  7. package/esm2022/carousel/carousel.mjs +2 -1
  8. package/esm2022/contextmenu/contextmenu.mjs +168 -144
  9. package/esm2022/galleria/galleria.mjs +3 -3
  10. package/esm2022/image/image.mjs +11 -4
  11. package/esm2022/megamenu/megamenu.mjs +168 -144
  12. package/esm2022/menu/menu.mjs +146 -94
  13. package/esm2022/menubar/menubar.mjs +168 -144
  14. package/esm2022/multiselect/multiselect.mjs +2 -1
  15. package/esm2022/overlaypanel/overlaypanel.mjs +9 -3
  16. package/esm2022/panelmenu/panelmenu.mjs +135 -106
  17. package/esm2022/splitbutton/splitbutton.interface.mjs +1 -1
  18. package/esm2022/splitbutton/splitbutton.mjs +70 -14
  19. package/esm2022/tabmenu/tabmenu.mjs +17 -25
  20. package/esm2022/tabview/tabview.mjs +3 -3
  21. package/esm2022/tieredmenu/tieredmenu.mjs +168 -144
  22. package/esm2022/treetable/treetable.mjs +1 -1
  23. package/fesm2022/primeng-breadcrumb.mjs +43 -16
  24. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  25. package/fesm2022/primeng-button.mjs +1 -1
  26. package/fesm2022/primeng-button.mjs.map +1 -1
  27. package/fesm2022/primeng-carousel.mjs +1 -0
  28. package/fesm2022/primeng-carousel.mjs.map +1 -1
  29. package/fesm2022/primeng-contextmenu.mjs +167 -143
  30. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  31. package/fesm2022/primeng-galleria.mjs +2 -2
  32. package/fesm2022/primeng-galleria.mjs.map +1 -1
  33. package/fesm2022/primeng-image.mjs +10 -3
  34. package/fesm2022/primeng-image.mjs.map +1 -1
  35. package/fesm2022/primeng-megamenu.mjs +167 -143
  36. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  37. package/fesm2022/primeng-menu.mjs +146 -94
  38. package/fesm2022/primeng-menu.mjs.map +1 -1
  39. package/fesm2022/primeng-menubar.mjs +167 -143
  40. package/fesm2022/primeng-menubar.mjs.map +1 -1
  41. package/fesm2022/primeng-multiselect.mjs +1 -0
  42. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  43. package/fesm2022/primeng-overlaypanel.mjs +8 -2
  44. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  45. package/fesm2022/primeng-panelmenu.mjs +134 -105
  46. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  47. package/fesm2022/primeng-splitbutton.mjs +69 -13
  48. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  49. package/fesm2022/primeng-tabmenu.mjs +16 -24
  50. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  51. package/fesm2022/primeng-tabview.mjs +2 -2
  52. package/fesm2022/primeng-tabview.mjs.map +1 -1
  53. package/fesm2022/primeng-tieredmenu.mjs +167 -143
  54. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  55. package/fesm2022/primeng-treetable.mjs.map +1 -1
  56. package/image/image.d.ts +6 -1
  57. package/megamenu/megamenu.d.ts +3 -1
  58. package/menu/menu.d.ts +11 -5
  59. package/menubar/menubar.d.ts +3 -1
  60. package/overlaypanel/overlaypanel.d.ts +1 -0
  61. package/package.json +90 -90
  62. package/panelmenu/panelmenu.d.ts +5 -2
  63. package/splitbutton/splitbutton.d.ts +10 -1
  64. package/splitbutton/splitbutton.interface.d.ts +15 -0
  65. package/tabmenu/tabmenu.d.ts +2 -2
  66. package/tieredmenu/tieredmenu.d.ts +3 -1
  67. package/treetable/treetable.d.ts +1 -1
@@ -21,6 +21,7 @@ class TieredMenuSub {
21
21
  cd;
22
22
  tieredMenu;
23
23
  items;
24
+ itemTemplate;
24
25
  root = false;
25
26
  autoDisplay;
26
27
  autoZIndex = true;
@@ -120,7 +121,7 @@ class TieredMenuSub {
120
121
  this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });
121
122
  }
122
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TieredMenuSub, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: forwardRef(() => TieredMenu) }], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TieredMenuSub, selector: "p-tieredMenuSub", inputs: { items: "items", root: "root", autoDisplay: "autoDisplay", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", popup: "popup", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: "level", focusedItemId: "focusedItemId", activeItemPath: "activeItemPath", tabindex: "tabindex" }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "sublistViewChild", first: true, predicate: ["sublist"], descendants: true, static: true }], ngImport: i0, template: `
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.2", type: TieredMenuSub, selector: "p-tieredMenuSub", inputs: { items: "items", itemTemplate: "itemTemplate", root: "root", autoDisplay: "autoDisplay", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", popup: "popup", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: "level", focusedItemId: "focusedItemId", activeItemPath: "activeItemPath", tabindex: "tabindex" }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "sublistViewChild", first: true, predicate: ["sublist"], descendants: true, static: true }], ngImport: i0, template: `
124
125
  <ul
125
126
  #sublist
126
127
  role="menu"
@@ -168,88 +169,94 @@ class TieredMenuSub {
168
169
  [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
169
170
  >
170
171
  <div [attr.data-pc-section]="'content'" class="p-menuitem-content" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({$event, processedItem})">
171
- <a
172
- *ngIf="!getItemProp(processedItem, 'routerLink')"
173
- [attr.href]="getItemProp(processedItem, 'url')"
174
- [attr.aria-hidden]="true"
175
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
176
- [attr.data-pc-section]="'action'"
177
- [target]="getItemProp(processedItem, 'target')"
178
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
179
- [attr.tabindex]="-1"
180
- pRipple
181
- >
182
- <span
183
- *ngIf="getItemProp(processedItem, 'icon')"
184
- class="p-menuitem-icon"
185
- [ngClass]="getItemProp(processedItem, 'icon')"
186
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
187
- [attr.data-pc-section]="'icon'"
172
+ <ng-container *ngIf="!itemTemplate">
173
+ <a
174
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
175
+ [attr.href]="getItemProp(processedItem, 'url')"
188
176
  [attr.aria-hidden]="true"
177
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
178
+ [attr.data-pc-section]="'action'"
179
+ [target]="getItemProp(processedItem, 'target')"
180
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
189
181
  [attr.tabindex]="-1"
182
+ pRipple
190
183
  >
191
- </span>
192
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
193
- {{ getItemLabel(processedItem) }}
194
- </span>
195
- <ng-template #htmlLabel>
196
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
197
- </ng-template>
198
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
184
+ <span
185
+ *ngIf="getItemProp(processedItem, 'icon')"
186
+ class="p-menuitem-icon"
187
+ [ngClass]="getItemProp(processedItem, 'icon')"
188
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
189
+ [attr.data-pc-section]="'icon'"
190
+ [attr.aria-hidden]="true"
191
+ [attr.tabindex]="-1"
192
+ >
193
+ </span>
194
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
195
+ {{ getItemLabel(processedItem) }}
196
+ </span>
197
+ <ng-template #htmlLabel>
198
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
199
+ </ng-template>
200
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
199
201
 
200
- <ng-container *ngIf="isItemGroup(processedItem)">
201
- <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
202
- <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
203
- </ng-container>
204
- </a>
205
- <a
206
- *ngIf="getItemProp(processedItem, 'routerLink')"
207
- [routerLink]="getItemProp(processedItem, 'routerLink')"
208
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
209
- [attr.tabindex]="-1"
210
- [attr.aria-hidden]="true"
211
- [attr.data-pc-section]="'action'"
212
- [queryParams]="getItemProp(processedItem, 'queryParams')"
213
- [routerLinkActive]="'p-menuitem-link-active'"
214
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
215
- [target]="getItemProp(processedItem, 'target')"
216
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
217
- [fragment]="getItemProp(processedItem, 'fragment')"
218
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
219
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
220
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
221
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
222
- [state]="getItemProp(processedItem, 'state')"
223
- pRipple
224
- >
225
- <span
226
- *ngIf="getItemProp(processedItem, 'icon')"
227
- class="p-menuitem-icon"
228
- [ngClass]="getItemProp(processedItem, 'icon')"
229
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
230
- [attr.data-pc-section]="'icon'"
231
- [attr.aria-hidden]="true"
202
+ <ng-container *ngIf="isItemGroup(processedItem)">
203
+ <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
204
+ <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
205
+ </ng-container>
206
+ </a>
207
+ <a
208
+ *ngIf="getItemProp(processedItem, 'routerLink')"
209
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
210
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
232
211
  [attr.tabindex]="-1"
212
+ [attr.aria-hidden]="true"
213
+ [attr.data-pc-section]="'action'"
214
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
215
+ [routerLinkActive]="'p-menuitem-link-active'"
216
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
217
+ [target]="getItemProp(processedItem, 'target')"
218
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
219
+ [fragment]="getItemProp(processedItem, 'fragment')"
220
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
221
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
222
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
223
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
224
+ [state]="getItemProp(processedItem, 'state')"
225
+ pRipple
233
226
  >
234
- </span>
235
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
236
- {{ getItemLabel(processedItem) }}
237
- </span>
238
- <ng-template #htmlLabel>
239
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
240
- </ng-template>
241
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
227
+ <span
228
+ *ngIf="getItemProp(processedItem, 'icon')"
229
+ class="p-menuitem-icon"
230
+ [ngClass]="getItemProp(processedItem, 'icon')"
231
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
232
+ [attr.data-pc-section]="'icon'"
233
+ [attr.aria-hidden]="true"
234
+ [attr.tabindex]="-1"
235
+ >
236
+ </span>
237
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
238
+ {{ getItemLabel(processedItem) }}
239
+ </span>
240
+ <ng-template #htmlLabel>
241
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
242
+ </ng-template>
243
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
242
244
 
243
- <ng-container *ngIf="isItemGroup(processedItem)">
244
- <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
245
- <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
246
- </ng-container>
247
- </a>
245
+ <ng-container *ngIf="isItemGroup(processedItem)">
246
+ <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
247
+ <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
248
+ </ng-container>
249
+ </a>
250
+ </ng-container>
251
+ <ng-container *ngIf="itemTemplate">
252
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
253
+ </ng-container>
248
254
  </div>
249
255
 
250
256
  <p-tieredMenuSub
251
257
  *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
252
258
  [items]="processedItem.items"
259
+ [itemTemplate]="itemTemplate"
253
260
  [autoDisplay]="autoDisplay"
254
261
  [menuId]="menuId"
255
262
  [activeItemPath]="activeItemPath"
@@ -261,7 +268,7 @@ class TieredMenuSub {
261
268
  </li>
262
269
  </ng-template>
263
270
  </ul>
264
- `, 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 AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return TieredMenuSub; }), selector: "p-tieredMenuSub", inputs: ["items", "root", "autoDisplay", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], encapsulation: i0.ViewEncapsulation.None });
271
+ `, 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 AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return TieredMenuSub; }), selector: "p-tieredMenuSub", inputs: ["items", "itemTemplate", "root", "autoDisplay", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], encapsulation: i0.ViewEncapsulation.None });
265
272
  }
266
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TieredMenuSub, decorators: [{
267
274
  type: Component,
@@ -315,88 +322,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
315
322
  [tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
316
323
  >
317
324
  <div [attr.data-pc-section]="'content'" class="p-menuitem-content" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({$event, processedItem})">
318
- <a
319
- *ngIf="!getItemProp(processedItem, 'routerLink')"
320
- [attr.href]="getItemProp(processedItem, 'url')"
321
- [attr.aria-hidden]="true"
322
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
323
- [attr.data-pc-section]="'action'"
324
- [target]="getItemProp(processedItem, 'target')"
325
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
326
- [attr.tabindex]="-1"
327
- pRipple
328
- >
329
- <span
330
- *ngIf="getItemProp(processedItem, 'icon')"
331
- class="p-menuitem-icon"
332
- [ngClass]="getItemProp(processedItem, 'icon')"
333
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
334
- [attr.data-pc-section]="'icon'"
325
+ <ng-container *ngIf="!itemTemplate">
326
+ <a
327
+ *ngIf="!getItemProp(processedItem, 'routerLink')"
328
+ [attr.href]="getItemProp(processedItem, 'url')"
335
329
  [attr.aria-hidden]="true"
330
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
331
+ [attr.data-pc-section]="'action'"
332
+ [target]="getItemProp(processedItem, 'target')"
333
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
336
334
  [attr.tabindex]="-1"
335
+ pRipple
337
336
  >
338
- </span>
339
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
340
- {{ getItemLabel(processedItem) }}
341
- </span>
342
- <ng-template #htmlLabel>
343
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
344
- </ng-template>
345
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
337
+ <span
338
+ *ngIf="getItemProp(processedItem, 'icon')"
339
+ class="p-menuitem-icon"
340
+ [ngClass]="getItemProp(processedItem, 'icon')"
341
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
342
+ [attr.data-pc-section]="'icon'"
343
+ [attr.aria-hidden]="true"
344
+ [attr.tabindex]="-1"
345
+ >
346
+ </span>
347
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
348
+ {{ getItemLabel(processedItem) }}
349
+ </span>
350
+ <ng-template #htmlLabel>
351
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
352
+ </ng-template>
353
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
346
354
 
347
- <ng-container *ngIf="isItemGroup(processedItem)">
348
- <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
349
- <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
350
- </ng-container>
351
- </a>
352
- <a
353
- *ngIf="getItemProp(processedItem, 'routerLink')"
354
- [routerLink]="getItemProp(processedItem, 'routerLink')"
355
- [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
356
- [attr.tabindex]="-1"
357
- [attr.aria-hidden]="true"
358
- [attr.data-pc-section]="'action'"
359
- [queryParams]="getItemProp(processedItem, 'queryParams')"
360
- [routerLinkActive]="'p-menuitem-link-active'"
361
- [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
362
- [target]="getItemProp(processedItem, 'target')"
363
- [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
364
- [fragment]="getItemProp(processedItem, 'fragment')"
365
- [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
366
- [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
367
- [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
368
- [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
369
- [state]="getItemProp(processedItem, 'state')"
370
- pRipple
371
- >
372
- <span
373
- *ngIf="getItemProp(processedItem, 'icon')"
374
- class="p-menuitem-icon"
375
- [ngClass]="getItemProp(processedItem, 'icon')"
376
- [ngStyle]="getItemProp(processedItem, 'iconStyle')"
377
- [attr.data-pc-section]="'icon'"
378
- [attr.aria-hidden]="true"
355
+ <ng-container *ngIf="isItemGroup(processedItem)">
356
+ <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
357
+ <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
358
+ </ng-container>
359
+ </a>
360
+ <a
361
+ *ngIf="getItemProp(processedItem, 'routerLink')"
362
+ [routerLink]="getItemProp(processedItem, 'routerLink')"
363
+ [attr.data-automationid]="getItemProp(processedItem, 'automationId')"
379
364
  [attr.tabindex]="-1"
365
+ [attr.aria-hidden]="true"
366
+ [attr.data-pc-section]="'action'"
367
+ [queryParams]="getItemProp(processedItem, 'queryParams')"
368
+ [routerLinkActive]="'p-menuitem-link-active'"
369
+ [routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
370
+ [target]="getItemProp(processedItem, 'target')"
371
+ [ngClass]="{ 'p-menuitem-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
372
+ [fragment]="getItemProp(processedItem, 'fragment')"
373
+ [queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
374
+ [preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
375
+ [skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
376
+ [replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
377
+ [state]="getItemProp(processedItem, 'state')"
378
+ pRipple
380
379
  >
381
- </span>
382
- <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
383
- {{ getItemLabel(processedItem) }}
384
- </span>
385
- <ng-template #htmlLabel>
386
- <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
387
- </ng-template>
388
- <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
380
+ <span
381
+ *ngIf="getItemProp(processedItem, 'icon')"
382
+ class="p-menuitem-icon"
383
+ [ngClass]="getItemProp(processedItem, 'icon')"
384
+ [ngStyle]="getItemProp(processedItem, 'iconStyle')"
385
+ [attr.data-pc-section]="'icon'"
386
+ [attr.aria-hidden]="true"
387
+ [attr.tabindex]="-1"
388
+ >
389
+ </span>
390
+ <span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-menuitem-text" [attr.data-pc-section]="'label'">
391
+ {{ getItemLabel(processedItem) }}
392
+ </span>
393
+ <ng-template #htmlLabel>
394
+ <span class="p-menuitem-text" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
395
+ </ng-template>
396
+ <span class="p-menuitem-badge" *ngIf="getItemProp(processedItem, 'badge')" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
389
397
 
390
- <ng-container *ngIf="isItemGroup(processedItem)">
391
- <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
392
- <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
393
- </ng-container>
394
- </a>
398
+ <ng-container *ngIf="isItemGroup(processedItem)">
399
+ <AngleRightIcon *ngIf="!tieredMenu.submenuIconTemplate" [styleClass]="'p-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
400
+ <ng-template *ngTemplateOutlet="tieredMenu.submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
401
+ </ng-container>
402
+ </a>
403
+ </ng-container>
404
+ <ng-container *ngIf="itemTemplate">
405
+ <ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
406
+ </ng-container>
395
407
  </div>
396
408
 
397
409
  <p-tieredMenuSub
398
410
  *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)"
399
411
  [items]="processedItem.items"
412
+ [itemTemplate]="itemTemplate"
400
413
  [autoDisplay]="autoDisplay"
401
414
  [menuId]="menuId"
402
415
  [activeItemPath]="activeItemPath"
@@ -419,6 +432,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
419
432
  args: [forwardRef(() => TieredMenu)]
420
433
  }] }]; }, propDecorators: { items: [{
421
434
  type: Input
435
+ }], itemTemplate: [{
436
+ type: Input
422
437
  }], root: [{
423
438
  type: Input
424
439
  }], autoDisplay: [{
@@ -565,6 +580,7 @@ class TieredMenu {
565
580
  rootmenu;
566
581
  containerViewChild;
567
582
  submenuIconTemplate;
583
+ itemTemplate;
568
584
  container;
569
585
  outsideClickListener;
570
586
  resizeListener;
@@ -627,6 +643,12 @@ class TieredMenu {
627
643
  case 'submenuicon':
628
644
  this.submenuIconTemplate = item.template;
629
645
  break;
646
+ case 'item':
647
+ this.itemTemplate = item.template;
648
+ break;
649
+ default:
650
+ this.itemTemplate = item.template;
651
+ break;
630
652
  }
631
653
  });
632
654
  }
@@ -1133,6 +1155,7 @@ class TieredMenu {
1133
1155
  #rootmenu
1134
1156
  [root]="true"
1135
1157
  [items]="processedItems"
1158
+ [itemTemplate]="itemTemplate"
1136
1159
  [menuId]="id"
1137
1160
  [tabindex]="!disabled ? tabindex : -1"
1138
1161
  [ariaLabel]="ariaLabel"
@@ -1150,7 +1173,7 @@ class TieredMenu {
1150
1173
  (itemMouseEnter)="onItemMouseEnter($event)"
1151
1174
  ></p-tieredMenuSub>
1152
1175
  </div>
1153
- `, isInline: true, styles: ["@layer primeng{.p-tieredmenu-overlay{position:absolute;top:0;left:0}.p-tieredmenu ul{margin:0;padding:0;list-style:none}.p-tieredmenu .p-submenu-list{position:absolute;min-width:100%;z-index:1;display:none}.p-tieredmenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-tieredmenu .p-menuitem-text{line-height:1}.p-tieredmenu .p-menuitem{position:relative}.p-tieredmenu .p-menuitem-link .p-submenu-icon:not(svg){margin-left:auto}.p-tieredmenu .p-menuitem-link .p-icon-wrapper{margin-left:auto}.p-tieredmenu .p-menuitem-active>p-tieredmenusub>.p-submenu-list{display:block;left:100%;top:0}.p-tieredmenu .p-menuitem-active>p-tieredmenusub>.p-submenu-list.p-submenu-list-flipped{left:-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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TieredMenuSub, selector: "p-tieredMenuSub", inputs: ["items", "root", "autoDisplay", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1176
+ `, isInline: true, styles: ["@layer primeng{.p-tieredmenu-overlay{position:absolute;top:0;left:0}.p-tieredmenu ul{margin:0;padding:0;list-style:none}.p-tieredmenu .p-submenu-list{position:absolute;min-width:100%;z-index:1;display:none}.p-tieredmenu .p-menuitem-link{cursor:pointer;display:flex;align-items:center;text-decoration:none;overflow:hidden;position:relative}.p-tieredmenu .p-menuitem-text{line-height:1}.p-tieredmenu .p-menuitem{position:relative}.p-tieredmenu .p-menuitem-link .p-submenu-icon:not(svg){margin-left:auto}.p-tieredmenu .p-menuitem-link .p-icon-wrapper{margin-left:auto}.p-tieredmenu .p-menuitem-active>p-tieredmenusub>.p-submenu-list{display:block;left:100%;top:0}.p-tieredmenu .p-menuitem-active>p-tieredmenusub>.p-submenu-list.p-submenu-list-flipped{left:-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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TieredMenuSub, selector: "p-tieredMenuSub", inputs: ["items", "itemTemplate", "root", "autoDisplay", "autoZIndex", "baseZIndex", "popup", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "activeItemPath", "tabindex"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1154
1177
  }
1155
1178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: TieredMenu, decorators: [{
1156
1179
  type: Component,
@@ -1174,6 +1197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
1174
1197
  #rootmenu
1175
1198
  [root]="true"
1176
1199
  [items]="processedItems"
1200
+ [itemTemplate]="itemTemplate"
1177
1201
  [menuId]="id"
1178
1202
  [tabindex]="!disabled ? tabindex : -1"
1179
1203
  [ariaLabel]="ariaLabel"