ngx-obelisco-example
Version:
Componentes funcionales y reutilizables para Angular.
85 lines (80 loc) • 5.87 kB
JavaScript
import * as i0 from '@angular/core';
import { Component, Input, NgModule } from '@angular/core';
import * as i1 from '@angular/router';
import { NavigationEnd, RouterModule } from '@angular/router';
import { Subject, takeUntil, filter, startWith } from 'rxjs';
import * as i2 from 'ngx-obelisco-example/core/services';
import * as i3 from '@angular/common';
import { CommonModule } from '@angular/common';
class OBreadcrumbComponent {
constructor(router, breadcrumbService) {
this.router = router;
this.breadcrumbService = breadcrumbService;
this.customClasses = '';
this.routes = [];
this.onDestroy$ = new Subject();
}
ngOnInit() {
this.breadcrumbService.breadcrumb$.pipe(takeUntil(this.onDestroy$)).subscribe((breadcrumb) => {
if (Object.entries(breadcrumb).length !== 0) {
this.routes = breadcrumb.routes || [];
this.defaultRoute = breadcrumb.defaultRoute || '';
}
});
if (this.routes.length === 0) {
this.getPaths();
return;
}
}
getPaths() {
this.routes.length != 0 &&
this.router.events
.pipe(takeUntil(this.onDestroy$), filter((event) => event instanceof NavigationEnd), startWith(this.router))
.subscribe({
next: (event) => {
event = event;
this.routes = [];
event.route
.split('/')
.forEach((item, index) => (item !== '' || isNaN(+item) || item.length > 2) &&
this.routes.push({ name: this.formatedName(item), route: this.formatedRoute(item, event.route) }));
}
});
}
formatedName(path) {
return (path && path[0].toUpperCase() + path.split('-').join(' ').slice(1)) || '';
}
formatedRoute(url, route) {
return route.split(url)[0] + url;
}
ngOnDestroy() {
this.onDestroy$.next();
this.onDestroy$.complete();
}
}
OBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbComponent, deps: [{ token: i1.Router }, { token: i2.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component });
OBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OBreadcrumbComponent, selector: "o-breadcrumb", inputs: { customClasses: "customClasses" }, ngImport: i0, template: "<nav aria-label=\"Navegaci\u00F3n secundaria\" [ngClass]=\"customClasses\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"routes.length == 0\">\r\n <a href=\"https://buenosaires.gob.ar/inicio/\">Inicio</a>\r\n </li>\r\n <li class=\"breadcrumb-item\" *ngFor=\"let route of routes; index as i\">\r\n <a [routerLink]=\"[route.route]\">\r\n {{ route.name }}\r\n </a>\r\n <ng-template #nameDefault>{{ route?.name }} </ng-template>\r\n </li>\r\n </ol>\r\n</nav>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbComponent, decorators: [{
type: Component,
args: [{ selector: 'o-breadcrumb', template: "<nav aria-label=\"Navegaci\u00F3n secundaria\" [ngClass]=\"customClasses\">\r\n <ol class=\"breadcrumb\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"routes.length == 0\">\r\n <a href=\"https://buenosaires.gob.ar/inicio/\">Inicio</a>\r\n </li>\r\n <li class=\"breadcrumb-item\" *ngFor=\"let route of routes; index as i\">\r\n <a [routerLink]=\"[route.route]\">\r\n {{ route.name }}\r\n </a>\r\n <ng-template #nameDefault>{{ route?.name }} </ng-template>\r\n </li>\r\n </ol>\r\n</nav>\r\n" }]
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.BreadcrumbService }]; }, propDecorators: { customClasses: [{
type: Input
}] } });
class OBreadcrumbModule {
}
OBreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
OBreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbModule, declarations: [OBreadcrumbComponent], imports: [CommonModule, RouterModule], exports: [OBreadcrumbComponent] });
OBreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbModule, imports: [CommonModule, RouterModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OBreadcrumbModule, decorators: [{
type: NgModule,
args: [{
declarations: [OBreadcrumbComponent],
imports: [CommonModule, RouterModule],
exports: [OBreadcrumbComponent]
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { OBreadcrumbComponent, OBreadcrumbModule };
//# sourceMappingURL=ngx-obelisco-example-breadcrumb.mjs.map