UNPKG

primeng

Version:

PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB

690 lines (667 loc) 29.6 kB
import * as i1 from '@angular/common'; import { CommonModule } from '@angular/common'; import * as i0 from '@angular/core'; import { Injectable, EventEmitter, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core'; import * as i2 from '@angular/router'; import { RouterModule } from '@angular/router'; import { uuid, resolve, find, findSingle } from '@primeuix/utils'; import { PrimeTemplate, SharedModule } from 'primeng/api'; import { BaseComponent } from 'primeng/basecomponent'; import { Ripple } from 'primeng/ripple'; import * as i3 from 'primeng/tooltip'; import { TooltipModule } from 'primeng/tooltip'; import { BaseStyle } from 'primeng/base'; const theme = ({ dt }) => ` .p-dock { position: absolute; z-index: 1; display: flex; justify-content: center; align-items: center; pointer-events: none; } .p-dock-list-container { display: flex; pointer-events: auto; background: ${dt('dock.background')}; border: 1px solid ${dt('dock.border.color')}; padding: ${dt('dock.padding')}; border-radius: ${dt('dock.border.radius')}; } .p-dock-list { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; justify-content: center; outline: 0 none; } .p-dock-item { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform; padding: ${dt('dock.item.padding')}; border-radius: ${dt('dock.item.border.radius')}; } .p-dock-item.p-focus { box-shadow: ${dt('dock.item.focus.ring.shadow')}; outline: ${dt('dock.item.focus.ring.width')} ${dt('dock.item.focus.ring.style')} ${dt('dock.item.focus.ring.color')}; outline-offset: ${dt('dock.item.focus.ring.offset')}; } .p-dock-item-link { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; cursor: default; width: ${dt('dock.item.size')}; height: ${dt('dock.item.size')}; } .p-dock-top { left: 0; top: 0; width: 100%; } .p-dock-top .p-dock-item { transform-origin: center top; } .p-dock-bottom { left: 0; bottom: 0; width: 100%; } .p-dock-bottom .p-dock-item { transform-origin: center bottom; } .p-dock-right { right: 0; top: 0; height: 100%; } .p-dock-right:dir(rtl) { right: auto; left: 0; } .p-dock-right .p-dock-item { transform-origin: center right; } .p-dock-right .p-dock-list { flex-direction: column; } .p-dock-left { left: 0; top: 0; height: 100%; } .p-dock-left:dir(rtl) { left: auto; right: 0; } .p-dock-left .p-dock-item { transform-origin: center left; } .p-dock-left .p-dock-list { flex-direction: column; } .p-dock-mobile.p-dock-top .p-dock-list-container, .p-dock-mobile.p-dock-bottom .p-dock-list-container { overflow-x: auto; width: 100%; } .p-dock-mobile.p-dock-top .p-dock-list-container .p-dock-list, .p-dock-mobile.p-dock-bottom .p-dock-list-container .p-dock-list { margin: 0 auto; } .p-dock-mobile.p-dock-left .p-dock-list-container, .p-dock-mobile.p-dock-right .p-dock-list-container { overflow-y: auto; height: 100%; } .p-dock-mobile.p-dock-left .p-dock-list-container .p-dock-list, .p-dock-mobile.p-dock-right .p-dock-list-container .p-dock-list { margin: auto 0; } .p-dock-mobile .p-dock-list .p-dock-item { transform: none; margin: 0; } `; const classes = { root: ({ instance, props }) => [ 'p-dock p-component', `p-dock-${props.position}`, { 'p-dock-mobile': instance.queryMatches } ], listContainer: 'p-dock-list-container', list: 'p-dock-list', item: ({ instance, processedItem, id }) => [ 'p-dock-item', { 'p-focus': instance.isItemActive(id), 'p-disabled': instance.disabled(processedItem) } ], itemContent: 'p-dock-item-content', itemLink: 'p-dock-item-link', itemIcon: 'p-dock-item-icon' }; class DockStyle extends BaseStyle { name = 'dock'; theme = theme; classes = classes; static ɵfac = /*@__PURE__*/ (() => { let ɵDockStyle_BaseFactory; return function DockStyle_Factory(__ngFactoryType__) { return (ɵDockStyle_BaseFactory || (ɵDockStyle_BaseFactory = i0.ɵɵgetInheritedFactory(DockStyle)))(__ngFactoryType__ || DockStyle); }; })(); static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DockStyle, factory: DockStyle.ɵfac }); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DockStyle, [{ type: Injectable }], null, null); })(); /** * * Dock is a navigation component consisting of menuitems. * * [Live Demo](https://www.primeng.org/dock/) * * @module dockstyle * */ var DockClasses; (function (DockClasses) { /** * Class name of the root element */ DockClasses["root"] = "p-dock"; /** * Class name of the list container element */ DockClasses["listContainer"] = "p-dock-list-container"; /** * Class name of the list element */ DockClasses["list"] = "p-dock-list"; /** * Class name of the item element */ DockClasses["item"] = "p-dock-item"; /** * Class name of the item content element */ DockClasses["itemContent"] = "p-dock-item-content"; /** * Class name of the item link element */ DockClasses["itemLink"] = "p-dock-item-link"; /** * Class name of the item icon element */ DockClasses["itemIcon"] = "p-dock-item-icon"; })(DockClasses || (DockClasses = {})); const _c0 = ["item"]; const _c1 = ["list"]; const _forTrack0 = ($index, $item) => $item.label; const _c2 = a0 => ({ "p-disabled": a0 }); const _c3 = () => ({ exact: false }); const _c4 = a0 => ({ $implicit: a0 }); function Dock_For_5_li_0_a_2_span_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "span", 13); } if (rf & 2) { const item_r3 = i0.ɵɵnextContext(3).$implicit; i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", item_r3.iconStyle); } } function Dock_For_5_li_0_a_2_ng_container_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function Dock_For_5_li_0_a_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "a", 10); i0.ɵɵtemplate(1, Dock_For_5_li_0_a_2_span_1_Template, 1, 2, "span", 11)(2, Dock_For_5_li_0_a_2_ng_container_2_Template, 1, 0, "ng-container", 12); i0.ɵɵelementEnd(); } if (rf & 2) { const item_r3 = i0.ɵɵnextContext(2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵproperty("routerLink", item_r3.routerLink)("queryParams", item_r3.queryParams)("ngClass", i0.ɵɵpureFunction1(17, _c2, item_r3.disabled))("routerLinkActiveOptions", item_r3.routerLinkActiveOptions || i0.ɵɵpureFunction0(19, _c3))("target", item_r3.target)("tooltipOptions", item_r3.tooltipOptions)("fragment", item_r3.fragment)("queryParamsHandling", item_r3.queryParamsHandling)("preserveFragment", item_r3.preserveFragment)("skipLocationChange", item_r3.skipLocationChange)("replaceUrl", item_r3.replaceUrl)("state", item_r3.state); i0.ɵɵattribute("tabindex", item_r3.disabled || ctx_r3.readonly ? null : item_r3.tabindex ? item_r3.tabindex : "-1")("aria-hidden", true); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", item_r3.icon && !ctx_r3.itemTemplate && !ctx_r3._itemTemplate); i0.ɵɵadvance(); i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate || ctx_r3.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(20, _c4, item_r3)); } } function Dock_For_5_li_0_ng_template_3_span_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "span", 13); } if (rf & 2) { const item_r3 = i0.ɵɵnextContext(3).$implicit; i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", item_r3.iconStyle); } } function Dock_For_5_li_0_ng_template_3_ng_container_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function Dock_For_5_li_0_ng_template_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "a", 14); i0.ɵɵtemplate(1, Dock_For_5_li_0_ng_template_3_span_1_Template, 1, 2, "span", 11)(2, Dock_For_5_li_0_ng_template_3_ng_container_2_Template, 1, 0, "ng-container", 12); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r5 = i0.ɵɵnextContext(2); const item_r3 = ctx_r5.$implicit; const ɵ$index_7_r5 = ctx_r5.$index; const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵproperty("tooltipPosition", item_r3.tooltipPosition)("tooltipOptions", item_r3.tooltipOptions)("ngClass", i0.ɵɵpureFunction1(10, _c2, item_r3.disabled))("target", item_r3.target); i0.ɵɵattribute("href", item_r3.url || null, i0.ɵɵsanitizeUrl)("tabindex", item_r3.disabled || ɵ$index_7_r5 !== ctx_r3.activeIndex && ctx_r3.readonly ? null : item_r3.tabindex ? item_r3.tabindex : "-1")("aria-hidden", true); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", item_r3.icon && !ctx_r3.itemTemplate && !ctx_r3._itemTemplate); i0.ɵɵadvance(); i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate || ctx_r3._itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(12, _c4, item_r3)); } } function Dock_For_5_li_0_Template(rf, ctx) { if (rf & 1) { const _r2 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "li", 7); i0.ɵɵlistener("click", function Dock_For_5_li_0_Template_li_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemClick($event, item_r3)); })("mouseenter", function Dock_For_5_li_0_Template_li_mouseenter_0_listener() { i0.ɵɵrestoreView(_r2); const ɵ$index_7_r5 = i0.ɵɵnextContext().$index; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemMouseEnter(ɵ$index_7_r5)); }); i0.ɵɵelementStart(1, "div", 8); i0.ɵɵtemplate(2, Dock_For_5_li_0_a_2_Template, 3, 22, "a", 9)(3, Dock_For_5_li_0_ng_template_3_Template, 3, 14, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor); i0.ɵɵelementEnd()(); } if (rf & 2) { const elseBlock_r7 = i0.ɵɵreference(4); const ctx_r5 = i0.ɵɵnextContext(); const item_r3 = ctx_r5.$implicit; const ɵ$index_7_r5 = ctx_r5.$index; const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngClass", ctx_r3.itemClass(item_r3, ɵ$index_7_r5)); i0.ɵɵattribute("id", ctx_r3.getItemId(item_r3, ɵ$index_7_r5))("aria-label", item_r3.label)("aria-disabled", ctx_r3.disabled(item_r3))("data-pc-section", "menuitem")("data-p-focused", ctx_r3.isItemActive(ctx_r3.getItemId(item_r3, ɵ$index_7_r5)))("data-p-disabled", ctx_r3.disabled(item_r3) || false); i0.ɵɵadvance(); i0.ɵɵattribute("data-pc-section", "content"); i0.ɵɵadvance(); i0.ɵɵproperty("ngIf", ctx_r3.isClickableRouterLink(item_r3))("ngIfElse", elseBlock_r7); } } function Dock_For_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, Dock_For_5_li_0_Template, 5, 10, "li", 6); } if (rf & 2) { const item_r3 = ctx.$implicit; i0.ɵɵproperty("ngIf", item_r3.visible !== false); } } /** * Dock is a navigation component consisting of menuitems. * @group Components */ class Dock extends BaseComponent { cd; /** * Current id state as a string. * @group Props */ id; /** * Inline style of the element. * @group Props */ style; /** * Class of the element. * @group Props */ styleClass; /** * MenuModel instance to define the action items. * @group Props */ model = null; /** * Position of element. * @group Props */ position = 'bottom'; /** * Defines a string that labels the input for accessibility. * @group Props */ ariaLabel; /** * Defines a string that labels the dropdown button for accessibility. * @group Props */ ariaLabelledBy; /** * Callback to execute when button is focused. * @param {FocusEvent} event - Focus event. * @group Emits */ onFocus = new EventEmitter(); /** * Callback to invoke when the component loses focus. * @param {FocusEvent} event - Focus event. * @group Emits */ onBlur = new EventEmitter(); listViewChild; currentIndex; tabindex = 0; focused = false; focusedOptionIndex = -1; _componentStyle = inject(DockStyle); get focusedOptionId() { return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null; } constructor(cd) { super(); this.cd = cd; this.currentIndex = -3; } ngOnInit() { super.ngOnInit(); this.id = this.id || uuid('pn_id_'); } itemTemplate; _itemTemplate; getItemId(item, index) { return item && item?.id ? item.id : `${index}`; } getItemProp(processedItem, name) { return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined; } disabled(item) { return typeof item.disabled === 'function' ? item.disabled() : item.disabled; } isItemActive(id) { return id === this.focusedOptionIndex; } onListMouseLeave() { this.currentIndex = -3; this.cd.markForCheck(); } onItemMouseEnter(index) { this.currentIndex = index; if (index === 1) { } this.cd.markForCheck(); } onItemClick(e, item) { if (item.command) { item.command({ originalEvent: e, item }); } } onListFocus(event) { this.focused = true; this.changeFocusedOptionIndex(0); this.onFocus.emit(event); } onListBlur(event) { this.focused = false; this.focusedOptionIndex = -1; this.onBlur.emit(event); } onListKeyDown(event) { switch (event.code) { case 'ArrowDown': { if (this.position === 'left' || this.position === 'right') this.onArrowDownKey(); event.preventDefault(); break; } case 'ArrowUp': { if (this.position === 'left' || this.position === 'right') this.onArrowUpKey(); event.preventDefault(); break; } case 'ArrowRight': { if (this.position === 'top' || this.position === 'bottom') this.onArrowDownKey(); event.preventDefault(); break; } case 'ArrowLeft': { if (this.position === 'top' || this.position === 'bottom') this.onArrowUpKey(); event.preventDefault(); break; } case 'Home': { this.onHomeKey(); event.preventDefault(); break; } case 'End': { this.onEndKey(); event.preventDefault(); break; } case 'Enter': case 'Space': { this.onSpaceKey(); event.preventDefault(); break; } default: break; } } onArrowDownKey() { const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex); this.changeFocusedOptionIndex(optionIndex); } onArrowUpKey() { const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex); this.changeFocusedOptionIndex(optionIndex); } onHomeKey() { this.changeFocusedOptionIndex(0); } onEndKey() { this.changeFocusedOptionIndex(find(this.listViewChild.nativeElement, 'li[data-pc-section="menuitem"][data-p-disabled="false"]').length - 1); } onSpaceKey() { const element = findSingle(this.listViewChild.nativeElement, `li[id="${`${this.focusedOptionIndex}`}"]`); const anchorElement = element && findSingle(element, '[data-pc-section="action"]'); anchorElement ? anchorElement.click() : element && element.click(); } findNextOptionIndex(index) { const menuitems = find(this.listViewChild.nativeElement, 'li[data-pc-section="menuitem"][data-p-disabled="false"]'); const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index); return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0; } changeFocusedOptionIndex(index) { const menuitems = find(this.listViewChild.nativeElement, 'li[data-pc-section="menuitem"][data-p-disabled="false"]'); let order = index >= menuitems.length ? menuitems.length - 1 : index < 0 ? 0 : index; this.focusedOptionIndex = menuitems[order].getAttribute('id'); } findPrevOptionIndex(index) { const menuitems = find(this.listViewChild.nativeElement, 'li[data-pc-section="menuitem"][data-p-disabled="false"]'); const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index); return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0; } get containerClass() { return { ['p-dock p-component ' + ` p-dock-${this.position}`]: true }; } isClickableRouterLink(item) { return item.routerLink && !item.disabled; } itemClass(item, index) { return { 'p-dock-item': true, 'p-focus': this.isItemActive(this.getItemId(item, index)), 'p-disabled': this.disabled(item) }; } templates; ngAfterContentInit() { this.templates?.forEach((item) => { switch (item.getType()) { case 'item': this._itemTemplate = item.template; break; default: this._itemTemplate = item.template; break; } }); } static ɵfac = function Dock_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Dock)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Dock, selectors: [["p-dock"]], contentQueries: function Dock_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, _c0, 5); i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t); } }, viewQuery: function Dock_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c1, 5); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listViewChild = _t.first); } }, inputs: { id: "id", style: "style", styleClass: "styleClass", model: "model", position: "position", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, outputs: { onFocus: "onFocus", onBlur: "onBlur" }, features: [i0.ɵɵProvidersFeature([DockStyle]), i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 12, consts: [["list", ""], ["elseBlock", ""], [3, "ngClass", "ngStyle"], [1, "p-dock-list-container"], ["role", "menu", 1, "p-dock-list", 3, "focus", "blur", "keydown", "mouseleave", "tabindex"], ["role", "menuitem", 3, "ngClass"], ["role", "menuitem", 3, "ngClass", "click", "mouseenter", 4, "ngIf"], ["role", "menuitem", 3, "click", "mouseenter", "ngClass"], [1, "p-dock-item-content"], ["pRipple", "", "class", "p-dock-item-link", "pTooltip", "", 3, "routerLink", "queryParams", "ngClass", "routerLinkActiveOptions", "target", "tooltipOptions", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf", "ngIfElse"], ["pRipple", "", "pTooltip", "", 1, "p-dock-item-link", 3, "routerLink", "queryParams", "ngClass", "routerLinkActiveOptions", "target", "tooltipOptions", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], ["class", "p-dock-item-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "p-dock-item-icon", 3, "ngClass", "ngStyle"], ["pRipple", "", "pTooltip", "", 1, "p-dock-item-link", 3, "tooltipPosition", "tooltipOptions", "ngClass", "target"]], template: function Dock_Template(rf, ctx) { if (rf & 1) { const _r1 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "ul", 4, 0); i0.ɵɵlistener("focus", function Dock_Template_ul_focus_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onListFocus($event)); })("blur", function Dock_Template_ul_blur_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onListBlur($event)); })("keydown", function Dock_Template_ul_keydown_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onListKeyDown($event)); })("mouseleave", function Dock_Template_ul_mouseleave_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onListMouseLeave()); }); i0.ɵɵrepeaterCreate(4, Dock_For_5_Template, 1, 1, "li", 5, _forTrack0); i0.ɵɵelementEnd()()(); } if (rf & 2) { i0.ɵɵclassMap(ctx.styleClass); i0.ɵɵproperty("ngClass", ctx.containerClass)("ngStyle", ctx.style); i0.ɵɵattribute("data-pc-name", "dock"); i0.ɵɵadvance(2); i0.ɵɵproperty("tabindex", ctx.tabindex); i0.ɵɵattribute("id", ctx.id)("aria-orientation", ctx.position === "bottom" || ctx.position === "top" ? "horizontal" : "vertical")("aria-activedescendant", ctx.focused ? ctx.focusedOptionId : undefined)("aria-label", ctx.ariaLabel)("aria-labelledby", ctx.ariaLabelledBy)("data-pc-section", "menu"); i0.ɵɵadvance(2); i0.ɵɵrepeater(ctx.model); } }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, i2.RouterLink, Ripple, TooltipModule, i3.Tooltip, SharedModule], encapsulation: 2, changeDetection: 0 }); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Dock, [{ type: Component, args: [{ selector: 'p-dock', standalone: true, imports: [CommonModule, RouterModule, Ripple, TooltipModule, SharedModule], template: ` <div [ngClass]="containerClass" [ngStyle]="style" [class]="styleClass" [attr.data-pc-name]="'dock'"> <div class="p-dock-list-container"> <ul #list [attr.id]="id" class="p-dock-list" role="menu" [attr.aria-orientation]="position === 'bottom' || position === 'top' ? 'horizontal' : 'vertical'" [attr.aria-activedescendant]="focused ? focusedOptionId : undefined" [tabindex]="tabindex" [attr.aria-label]="ariaLabel" [attr.aria-labelledby]="ariaLabelledBy" [attr.data-pc-section]="'menu'" (focus)="onListFocus($event)" (blur)="onListBlur($event)" (keydown)="onListKeyDown($event)" (mouseleave)="onListMouseLeave()" > @for (item of model; track item.label; let i = $index) { <li *ngIf="item.visible !== false" [attr.id]="getItemId(item, i)" [ngClass]="itemClass(item, i)" role="menuitem" [attr.aria-label]="item.label" [attr.aria-disabled]="disabled(item)" (click)="onItemClick($event, item)" (mouseenter)="onItemMouseEnter(i)" [attr.data-pc-section]="'menuitem'" [attr.data-p-focused]="isItemActive(getItemId(item, i))" [attr.data-p-disabled]="disabled(item) || false" > <div class="p-dock-item-content" [attr.data-pc-section]="'content'"> <a *ngIf="isClickableRouterLink(item); else elseBlock" pRipple [routerLink]="item.routerLink" [queryParams]="item.queryParams" [ngClass]="{ 'p-disabled': item.disabled }" class="p-dock-item-link" [routerLinkActiveOptions]="item.routerLinkActiveOptions || { exact: false }" [target]="item.target" [attr.tabindex]="item.disabled || readonly ? null : item.tabindex ? item.tabindex : '-1'" pTooltip [tooltipOptions]="item.tooltipOptions" [fragment]="item.fragment" [queryParamsHandling]="item.queryParamsHandling" [preserveFragment]="item.preserveFragment" [skipLocationChange]="item.skipLocationChange" [replaceUrl]="item.replaceUrl" [state]="item.state" [attr.aria-hidden]="true" > <span class="p-dock-item-icon" *ngIf="item.icon && !itemTemplate && !_itemTemplate" [ngClass]="item.icon" [ngStyle]="item.iconStyle"></span> <ng-container *ngTemplateOutlet="itemTemplate || itemTemplate; context: { $implicit: item }"></ng-container> </a> <ng-template #elseBlock> <a [tooltipPosition]="item.tooltipPosition" [attr.href]="item.url || null" class="p-dock-item-link" pRipple pTooltip [tooltipOptions]="item.tooltipOptions" [ngClass]="{ 'p-disabled': item.disabled }" [target]="item.target" [attr.tabindex]="item.disabled || (i !== activeIndex && readonly) ? null : item.tabindex ? item.tabindex : '-1'" [attr.aria-hidden]="true" > <span class="p-dock-item-icon" *ngIf="item.icon && !itemTemplate && !_itemTemplate" [ngClass]="item.icon" [ngStyle]="item.iconStyle"></span> <ng-container *ngTemplateOutlet="itemTemplate || _itemTemplate; context: { $implicit: item }"></ng-container> </a> </ng-template> </div> </li> } </ul> </div> </div> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [DockStyle] }] }], () => [{ type: i0.ChangeDetectorRef }], { id: [{ type: Input }], style: [{ type: Input }], styleClass: [{ type: Input }], model: [{ type: Input }], position: [{ type: Input }], ariaLabel: [{ type: Input }], ariaLabelledBy: [{ type: Input }], onFocus: [{ type: Output }], onBlur: [{ type: Output }], listViewChild: [{ type: ViewChild, args: ['list', { static: false }] }], itemTemplate: [{ type: ContentChild, args: ['item'] }], templates: [{ type: ContentChildren, args: [PrimeTemplate] }] }); })(); (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Dock, { className: "Dock", filePath: "dock.ts", lineNumber: 106 }); })(); class DockModule { static ɵfac = function DockModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DockModule)(); }; static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DockModule }); static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Dock, SharedModule, SharedModule] }); } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DockModule, [{ type: NgModule, args: [{ imports: [Dock, SharedModule], exports: [Dock, SharedModule] }] }], null, null); })(); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DockModule, { imports: [Dock, SharedModule], exports: [Dock, SharedModule] }); })(); /** * Generated bundle index. Do not edit. */ export { Dock, DockClasses, DockModule, DockStyle }; //# sourceMappingURL=primeng-dock.mjs.map