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
1 lines • 25.9 kB
Source Map (JSON)
{"version":3,"file":"primeng-steps.mjs","sources":["../../src/steps/style/stepsstyle.ts","../../src/steps/steps.ts","../../src/steps/primeng-steps.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-steps {\n position: relative;\n}\n\n.p-steps-list {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: flex;\n}\n\n.p-steps-item {\n position: relative;\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\n}\n\n.p-steps-item.p-disabled,\n.p-steps-item.p-disabled * {\n opacity: 1;\n pointer-events: auto;\n user-select: auto;\n cursor: auto;\n}\n\n.p-steps-item:before {\n content: \" \";\n border-top: 2px solid ${dt('steps.separator.background')};\n width: 100%;\n top: 50%;\n left: 0;\n display: block;\n position: absolute;\n margin-top: -1rem;\n margin-top: calc(-1rem + 1px);\n}\n\n.p-steps-item:first-child::before {\n width: calc(50% + 1rem);\n transform: translateX(100%);\n}\n\n.p-steps-item:last-child::before {\n width: 50%;\n}\n\n.p-steps-item-link {\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n text-decoration: none;\n transition: outline-color ${dt('steps.transition.duration')}, box-shadow ${dt('steps.transition.duration')};\n border-radius: ${dt('steps.item.link.border.radius')};\n outline-color: transparent;\n gap: ${dt('steps.item.link.gap')};\n}\n\n.p-steps-item-link:not(.p-disabled):focus-visible {\n box-shadow: ${dt('steps.item.link.focus.ring.shadow')};\n outline: ${dt('steps.item.link.focus.ring.width')} ${dt('steps.item.link.focus.ring.style')} ${dt('steps.item.link.focus.ring.color')};\n outline-offset: ${dt('steps.item.link.focus.ring.offset')};\n}\n\n.p-steps-item-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n color: ${dt('steps.item.label.color')};\n display: block;\n font-weight: ${dt('steps.item.label.font.weight')};\n}\n\n.p-steps-item-number {\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${dt('steps.item.number.color')};\n border: 2px solid ${dt('steps.item.number.border.color')};\n background: ${dt('steps.item.number.background')};\n min-width: ${dt('steps.item.number.size')};\n height: ${dt('steps.item.number.size')};\n line-height: ${dt('steps.item.number.size')};\n font-size: ${dt('steps.item.number.font.size')};\n z-index: 1;\n border-radius: ${dt('steps.item.number.border.radius')};\n position: relative;\n font-weight: ${dt('steps.item.number.font.weight')};\n}\n\n.p-steps-item-number::after {\n content: \" \";\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: ${dt('steps.item.number.border.radius')};\n box-shadow: ${dt('steps.item.number.shadow')};\n}\n\n.p-steps:not(.p-readonly) .p-steps-item {\n cursor: pointer;\n}\n\n.p-steps-item-active .p-steps-item-number {\n background: ${dt('steps.item.number.active.background')};\n border-color: ${dt('steps.item.number.active.border.color')};\n color: ${dt('steps.item.number.active.color')};\n}\n\n.p-steps-item-active .p-steps-item-label {\n color: ${dt('steps.item.label.active.color')};\n}\n`;\n\nconst classes = {\n root: ({ props }) => ['p-steps p-component', { 'p-readonly': props.readonly }],\n list: 'p-steps-list',\n item: ({ instance, item, index }) => [\n 'p-steps-item',\n {\n 'p-steps-item-active': instance.isActive(index),\n 'p-disabled': instance.isItemDisabled(item, index)\n }\n ],\n itemLink: 'p-steps-item-link',\n itemNumber: 'p-steps-item-number',\n itemLabel: 'p-steps-item-label'\n};\n@Injectable()\nexport class StepsStyle extends BaseStyle {\n name = 'steps';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Steps components is an indicator for the steps in a wizard workflow. Example below uses nested routes with Steps.\n *\n * [Live Demo](https://www.primeng.org/steps/)\n *\n * @module stepsstyle\n *\n */\nexport enum StepsClasses {\n /**\n * Class name of the root element\n */\n root = 'p-steps',\n /**\n * Class name of the list element\n */\n list = 'p-steps-list',\n /**\n * Class name of the item element\n */\n item = 'p-steps-item',\n /**\n * Class name of the item link element\n */\n itemLink = 'p-steps-item-link',\n /**\n * Class name of the item number element\n */\n itemNumber = 'p-steps-item-number',\n /**\n * Class name of the item label element\n */\n itemLabel = 'p-steps-item-label'\n}\n\nexport interface StepsStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, NgModule, numberAttribute, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { find, findSingle } from '@primeuix/utils';\nimport { MenuItem, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subscription } from 'rxjs';\nimport { StepsStyle } from './style/stepsstyle';\n\n/**\n * Steps components is an indicator for the steps in a wizard workflow.\n * @group Components\n */\n@Component({\n selector: 'p-steps',\n standalone: true,\n imports: [CommonModule, RouterModule, TooltipModule, SharedModule],\n template: `\n <nav [ngClass]=\"{ 'p-steps p-component': true, 'p-readonly': readonly }\" [ngStyle]=\"style\" [class]=\"styleClass\" [attr.data-pc-name]=\"'steps'\">\n <ul #list [attr.data-pc-section]=\"'menu'\" class=\"p-steps-list\">\n @for (item of model; track item.label; let i = $index) {\n <li\n *ngIf=\"item.visible !== false\"\n class=\"p-steps-item\"\n #menuitem\n [ngStyle]=\"item.style\"\n [class]=\"item.styleClass\"\n [attr.aria-current]=\"isActive(item, i) ? 'step' : undefined\"\n [attr.id]=\"item.id\"\n pTooltip\n [tooltipOptions]=\"item.tooltipOptions\"\n [ngClass]=\"{\n 'p-steps-item-active': isActive(item, i),\n 'p-disabled': item.disabled || (readonly && !isActive(item, i))\n }\"\n [attr.data-pc-section]=\"'menuitem'\"\n >\n <a\n role=\"link\"\n *ngIf=\"isClickableRouterLink(item); else elseBlock\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.queryParams\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions || { exact: false }\"\n class=\"p-steps-item-link\"\n (click)=\"onItemClick($event, item, i)\"\n (keydown)=\"onItemKeydown($event, item, i)\"\n [target]=\"item.target\"\n [attr.tabindex]=\"getItemTabIndex(item, i)\"\n [attr.aria-expanded]=\"i === activeIndex\"\n [attr.aria-disabled]=\"item.disabled || (readonly && i !== activeIndex)\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [attr.ariaCurrentWhenActive]=\"exact ? 'step' : undefined\"\n >\n <span class=\"p-steps-item-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-item-label\" *ngIf=\"item.escape !== false; else htmlLabel\">{{ item.label }}</span>\n <ng-template #htmlLabel><span class=\"p-steps-item-label\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n <ng-template #elseBlock>\n <a\n role=\"link\"\n [attr.href]=\"item.url\"\n class=\"p-steps-item-link\"\n (click)=\"onItemClick($event, item, i)\"\n (keydown)=\"onItemKeydown($event, item, i)\"\n [target]=\"item.target\"\n [attr.tabindex]=\"getItemTabIndex(item, i)\"\n [attr.aria-expanded]=\"i === activeIndex\"\n [attr.aria-disabled]=\"item.disabled || (readonly && i !== activeIndex)\"\n [attr.ariaCurrentWhenActive]=\"exact && (!item.disabled || readonly) ? 'step' : undefined\"\n >\n <span class=\"p-steps-item-number\">{{ i + 1 }}</span>\n <span class=\"p-steps-item-label\" *ngIf=\"item.escape !== false; else htmlRouteLabel\">{{ item.label }}</span>\n <ng-template #htmlRouteLabel><span class=\"p-steps-item-label\" [innerHTML]=\"item.label\"></span></ng-template>\n </a>\n </ng-template>\n </li>\n }\n </ul>\n </nav>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [StepsStyle]\n})\nexport class Steps extends BaseComponent implements OnInit, OnDestroy {\n /**\n * Index of the active item.\n * @group Props\n */\n @Input({ transform: numberAttribute }) activeIndex: number = 0;\n /**\n * An array of menu items.\n * @group Props\n */\n @Input() model: MenuItem[] | undefined;\n /**\n * Whether the items are clickable or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonly: boolean = true;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Whether to apply 'router-link-active-exact' class if route exactly matches the item path.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) exact: boolean = true;\n /**\n * Callback to invoke when the new step is selected.\n * @param {number} number - current index.\n * @group Emits\n */\n @Output() activeIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n @ViewChild('list', { static: false }) listViewChild: Nullable<ElementRef>;\n\n router = inject(Router);\n\n route = inject(ActivatedRoute);\n\n _componentStyle = inject(StepsStyle);\n\n subscription: Subscription | undefined;\n\n ngOnInit() {\n super.ngOnInit();\n this.subscription = this.router.events.subscribe(() => this.cd.markForCheck());\n }\n\n onItemClick(event: Event, item: MenuItem, i: number) {\n if (this.readonly || item.disabled) {\n event.preventDefault();\n return;\n }\n\n this.activeIndexChange.emit(i);\n\n if (!item.url && !item.routerLink) {\n event.preventDefault();\n }\n\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item,\n index: i\n });\n }\n }\n\n onItemKeydown(event: KeyboardEvent, item: MenuItem, i: number) {\n switch (event.code) {\n case 'ArrowRight': {\n this.navigateToNextItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.navigateToPrevItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.navigateToFirstItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.navigateToLastItem(event.target);\n event.preventDefault();\n break;\n }\n\n case 'Tab':\n if (i !== this.activeIndex) {\n const siblings = <any>find(this.listViewChild.nativeElement, '[data-pc-section=\"menuitem\"]');\n siblings[i].children[0].tabIndex = '-1';\n siblings[this.activeIndex].children[0].tabIndex = '0';\n }\n break;\n\n case 'Enter':\n case 'Space': {\n this.onItemClick(event, item, i);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n }\n\n navigateToNextItem(target) {\n const nextItem = this.findNextItem(target);\n\n nextItem && this.setFocusToMenuitem(target, nextItem);\n }\n navigateToPrevItem(target) {\n const prevItem = this.findPrevItem(target);\n\n prevItem && this.setFocusToMenuitem(target, prevItem);\n }\n navigateToFirstItem(target) {\n const firstItem = this.findFirstItem();\n\n firstItem && this.setFocusToMenuitem(target, firstItem);\n }\n navigateToLastItem(target) {\n const lastItem = this.findLastItem();\n\n lastItem && this.setFocusToMenuitem(target, lastItem);\n }\n findNextItem(item) {\n const nextItem = item.parentElement.nextElementSibling;\n\n return nextItem ? nextItem.children[0] : null;\n }\n findPrevItem(item) {\n const prevItem = item.parentElement.previousElementSibling;\n\n return prevItem ? prevItem.children[0] : null;\n }\n findFirstItem() {\n const firstSibling = findSingle(this.listViewChild.nativeElement, '[data-pc-section=\"menuitem\"]');\n\n return firstSibling ? firstSibling.children[0] : null;\n }\n findLastItem() {\n const siblings = find(this.listViewChild.nativeElement, '[data-pc-section=\"menuitem\"]');\n\n return siblings ? siblings[siblings.length - 1].children[0] : null;\n }\n setFocusToMenuitem(target, focusableItem) {\n target.tabIndex = '-1';\n focusableItem.tabIndex = '0';\n focusableItem.focus();\n }\n\n isClickableRouterLink(item: MenuItem) {\n return item.routerLink && !this.readonly && !item.disabled;\n }\n\n isActive(item: MenuItem, index: number) {\n if (item.routerLink) {\n let routerLink = Array.isArray(item.routerLink) ? item.routerLink : [item.routerLink];\n\n return this.router.isActive(this.router.createUrlTree(routerLink, { relativeTo: this.route }).toString(), false);\n }\n\n return index === this.activeIndex;\n }\n\n getItemTabIndex(item: MenuItem, index: number): string {\n if (item.disabled) {\n return '-1';\n }\n\n if (!item.disabled && this.activeIndex === index) {\n return item.tabindex || '0';\n }\n\n return item.tabindex ?? '-1';\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [Steps, SharedModule],\n exports: [Steps, SharedModule]\n})\nexport class StepsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}