{"version":3,"file":"seniorsistemas-angular-components-breadcrumb.mjs","sources":["../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.ts","../../projects/angular-components/breadcrumb/src/seniorsistemas-angular-components-breadcrumb.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, input } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\n\nimport { BreadcrumbItem } from './breadcrumb-models';\n\n/**\n * @description Componente de trilha de navegação (breadcrumb) que detecta automaticamente\n * a rota ativa do Angular Router e constrói o caminho hierárquico de páginas.\n * Cada segmento da rota precisa ter a propriedade `routeTitle` definida nos `data` da rota.\n *\n * @example\n * ```html\n * <s-breadcrumb homeUrl=\"/home\" targetHomeUrl=\"_self\" />\n * ```\n *\n * @category Navegação\n */\n@Component({\n    selector: 's-breadcrumb-list',\n    standalone: true,\n    imports: [CommonModule, TranslateModule, InteractiveContentDirective, RouterModule],\n    templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbListComponent {\n    public readonly items = input.required<BreadcrumbItem[]>();\n\n    private readonly router = inject(Router);\n\n    protected onActivateRoute(activatedBreadcrumb: BreadcrumbItem): void {\n        if (!activatedBreadcrumb.routerLink || activatedBreadcrumb.disabled) {\n            return;\n        }\n\n        const routerLink = Array.isArray(activatedBreadcrumb.routerLink)\n            ? activatedBreadcrumb.routerLink\n            : [activatedBreadcrumb.routerLink];\n\n        if (activatedBreadcrumb.queryParams) {\n            this.router.navigate(routerLink, { queryParams: activatedBreadcrumb.queryParams });\n        } else {\n            this.router.navigate(routerLink, { queryParamsHandling: 'preserve' });\n        }\n    }\n}\n\n","<nav\n    [attr.aria-label]=\"'platform.angular_components.breadcrumb_aria_label' | translate\"\n    class=\"mb-4 mt-4\"\n>\n    <ol class=\"flex select-none flex-wrap items-center gap-3 pb-3 pt-3 [&_li]:font-open-sans [&_li]:text-sm\">\n        @for (breadcrumbItem of items(); track $index; let first = $first; let last = $last) {\n            <li class=\"flex items-center gap-3\">\n                @if (!first) {\n                    <i\n                        class=\"fas fa-chevron-right\"\n                        aria-hidden=\"true\"\n                    ></i>\n                }\n\n                <ng-template #iconTemplate>\n                    <i\n                        [class]=\"breadcrumbItem.icon + (first ? ' text-criticality-blue' : '')\"\n                        aria-hidden=\"true\"\n                    ></i>\n                </ng-template>\n\n                @if (first && breadcrumbItem.icon && breadcrumbItem.disabledIcon) {\n                    <span\n                        class=\"flex items-center gap-1\"\n                        aria-hidden=\"true\"\n                    >\n                        <i\n                            [class]=\"breadcrumbItem.icon + ' text-grayscale-30'\"\n                            aria-hidden=\"true\"\n                        ></i>\n                    </span>\n                }\n\n                @if (breadcrumbItem.url) {\n                    <a\n                        [href]=\"breadcrumbItem.url\"\n                        [target]=\"breadcrumbItem.target\"\n                        class=\"flex items-center gap-1 text-criticality-blue\"\n                        [attr.aria-current]=\"last ? 'page' : null\"\n                        [attr.aria-label]=\"\n                            (first ? 'Início: ' : 'Navegar para ') +\n                            breadcrumbItem.label +\n                            (last ? ' (página atual)' : '')\n                        \"\n                    >\n                        @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n                            <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n                        }\n                        @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n                            <span>{{ breadcrumbItem.label }}</span>\n                            <span class=\"sr-only\"> (link externo)</span>\n                        }\n                    </a>\n                } @else if (breadcrumbItem.routerLink && !breadcrumbItem.disabled) {\n                    <a\n                        [routerLink]=\"breadcrumbItem.routerLink\"\n                        [queryParams]=\"breadcrumbItem.queryParams\"\n                        [queryParamsHandling]=\"breadcrumbItem.queryParams ? null : 'preserve'\"\n                        [target]=\"breadcrumbItem.target\"\n                        (sInteractiveContent)=\"onActivateRoute(breadcrumbItem)\"\n                        class=\"flex cursor-pointer items-center gap-1 text-primary hover:no-underline\"\n                        [attr.aria-current]=\"last ? 'page' : null\"\n                        [attr.aria-label]=\"\n                            (first ? 'Início: ' : '') + breadcrumbItem.label + (last ? ' (página atual)' : '')\n                        \"\n                    >\n                        @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n                            <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n                        }\n                        @if (breadcrumbItem.label && !breadcrumbItem.hideLabel) {\n                            <span>{{ breadcrumbItem.label }}</span>\n                            <span class=\"sr-only\"> (navegação interna)</span>\n                        }\n                    </a>\n                } @else {\n                    <span\n                        class=\"flex items-center gap-1\"\n                        [attr.aria-current]=\"last ? 'page' : null\"\n                    >\n                        @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n                            <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n                        }\n                        @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n                            <span>{{ breadcrumbItem.label }}</span>\n                        }\n                    </span>\n                }\n            </li>\n        }\n    </ol>\n</nav>\n\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';\nimport {\n    DEPRECATED_CONFIG,\n    DeprecatedSelectorDirective,\n} from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BreadcrumbItem } from '../breadcrumb/breadcrumb-models';\nimport { BreadcrumbListComponent } from '../breadcrumb/breadcrumb.component';\n\n@Component({\n    standalone: true,\n    imports: [BreadcrumbListComponent],\n    selector: 's-breadcrumb, s-dynamic-breadcrumb',\n    templateUrl: './dynamic-breadcrumb.component.html',\n    hostDirectives: [DeprecatedSelectorDirective],\n    providers: [\n        {\n            provide: DEPRECATED_CONFIG,\n            useValue: {\n                oldSelector: 's-breadcrumb',\n                newSelector: 's-dynamic-breadcrumb',\n                removalVersion: '20.0.0',\n            },\n        },\n    ],\n})\nexport class DynamicBreadcrumbComponent implements OnDestroy {\n    private readonly _activatedRoute = inject(ActivatedRoute);\n    private readonly _router = inject(Router);\n\n    @Input()\n    public homeUrl?: string;\n\n    @Input()\n    public targetHomeUrl = '_self';\n\n    public items: BreadcrumbItem[] = [];\n    public title?: string;\n\n    private readonly _ngUnsubscribe = new Subject<void>();\n\n    constructor() {\n        this._router.events\n            .pipe(\n                takeUntil(this._ngUnsubscribe),\n                filter((event) => event instanceof NavigationEnd),\n            )\n            .subscribe(() => this._onNavigationEnd());\n    }\n\n    public ngOnDestroy() {\n        this._ngUnsubscribe.next();\n        this._ngUnsubscribe.complete();\n    }\n\n    private _onNavigationEnd() {\n        const currentRoute = this._activatedRoute.root;\n        const validRoutes: ActivatedRoute[] = this._getValidChildren(currentRoute);\n\n        this.title = this._getCurrentTitle(validRoutes) ?? '';\n        this.items = this._getCurrentItems(validRoutes) || [];\n        const currentHome = this._getCurrentHome(validRoutes);\n        if (currentHome) {\n            this.items.unshift(currentHome);\n        }\n    }\n\n    private _getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n        const valid = route.routeConfig?.path && route.routeConfig?.component && route.outlet === PRIMARY_OUTLET;\n        return route.children.reduce(\n            (validRoutes, child) => [...validRoutes, ...this._getValidChildren(child)],\n            valid ? [route] : [],\n        );\n    }\n\n    private _getCurrentTitle(routes: ActivatedRoute[]): string | null {\n        const last = routes.at(-1);\n\n        if (last?.routeConfig) {\n            return this._getTitle(last);\n        }\n\n        return null;\n    }\n\n    private _getCurrentHome(routes: ActivatedRoute[]) {\n        let currentHome: BreadcrumbItem | undefined;\n\n        if (this.homeUrl) {\n            currentHome = { url: this.homeUrl, icon: 'fa fa-home', target: this.targetHomeUrl };\n        } else if (routes.length) {\n            currentHome = {\n                ...this._getMenuItem(routes[0], routes.length === 1),\n                disabledIcon: routes.length === 1,\n                hideLabel: routes.length > 1,\n                icon: 'fa fa-home',\n            };\n        }\n\n        return currentHome;\n    }\n\n    private _getCurrentItems(routes: ActivatedRoute[]): BreadcrumbItem[] {\n        if (!routes.length) {\n            return [];\n        }\n\n        const items = this.homeUrl ? routes : routes.slice(1);\n        if (items.length) {\n            return items.map((route, i) => this._getMenuItem(route, i === items.length - 1));\n        }\n\n        return [];\n    }\n\n    private _getMenuItem(route: ActivatedRoute, disabled = false): BreadcrumbItem {\n        const label = this._getTitle(route);\n        const routerLink = ['/', ...route.pathFromRoot.flatMap((item) => item.snapshot.url.map((url) => url.path))];\n\n        return {\n            disabled,\n            label,\n            routerLink,\n            queryParams: route.snapshot.queryParams,\n        };\n    }\n\n    private _getTitle(route: ActivatedRoute): string {\n        const { snapshot, routeConfig } = route;\n        const title = snapshot.data['routeTitle'];\n\n        if (!title) {\n            throw new Error(`No routeTitle defined for the route /${routeConfig?.path}`);\n        }\n        return title;\n    }\n}\n\n","<h1 class=\"sds-page-title\">{{ title }}</h1>\n<s-breadcrumb-list [items]=\"items\" />\n\n","import { NgModule } from '@angular/core';\n\nimport { DynamicBreadcrumbComponent } from './dynamic-breadcrumb.component';\n/**\n * @deprecated utilizar DynamicBreadcrumbComponent (standalone)\n */\n@NgModule({\n    imports: [DynamicBreadcrumbComponent],\n    exports: [DynamicBreadcrumbComponent],\n})\nexport class BreadcrumbModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}