@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
102 lines • 10.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewEncapsulation, Optional } from '@angular/core';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
var Breadcrumb = /** @class */ (function () {
// Build your breadcrumb starting with the root route of your current activated route
function Breadcrumb(activatedRoute, router) {
this.activatedRoute = activatedRoute;
this.router = router;
}
/**
* @return {?}
*/
Breadcrumb.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.router) {
this.breadcrumbs$ = this.router.events.pipe(filter((/**
* @param {?} event
* @return {?}
*/
function (event) { return event instanceof NavigationEnd; })), distinctUntilChanged(), map((/**
* @param {?} event
* @return {?}
*/
function (event) { return _this.buildBreadcrumb(_this.activatedRoute.root); })));
}
};
/**
* @param {?} route
* @param {?=} url
* @param {?=} breadcrumbs
* @return {?}
*/
Breadcrumb.prototype.buildBreadcrumb = /**
* @param {?} route
* @param {?=} url
* @param {?=} breadcrumbs
* @return {?}
*/
function (route, url, breadcrumbs) {
if (url === void 0) { url = ''; }
if (breadcrumbs === void 0) { breadcrumbs = []; }
// If no routeConfig is avalailable we are on the root path
/** @type {?} */
var label = route.routeConfig ? route.routeConfig.data['breadcrumb'] : 'Inicio';
/** @type {?} */
var path = route.routeConfig ? route.routeConfig.path : '';
// In the routeConfig the complete path is not available,
// so we rebuild it each time
/** @type {?} */
var nextUrl = "" + url + path + "/";
/** @type {?} */
var breadcrumb = {
label: label,
url: nextUrl,
};
/** @type {?} */
var newBreadcrumbs = tslib_1.__spread(breadcrumbs, [breadcrumb]);
if (route.firstChild) {
// If we are not on our current path yet,
// there will be more children to look after, to build our breadcumb
return this.buildBreadcrumb(route.firstChild, nextUrl, newBreadcrumbs);
}
return newBreadcrumbs;
};
Breadcrumb.decorators = [
{ type: Component, args: [{
selector: 'suka-breadcrumb',
template: "\n <ol class=\"breadcrumb\" *ngIf=\"router\">\n <li\n *ngFor=\"let breadcrumb of breadcrumbs$ | async; last as isLast;\"\n class=\"breadcrumb-item\"\n [ngClass]=\"{'active': isLast}\" aria-current=\"page\"\n >\n <a\n *ngIf=\"!isLast; else lastRoute\"\n [routerLink]=\"[breadcrumb.url]\"\n routerLinkActive=\"active\"\n >\n <suka-icon icon=\"home\" *ngIf=\"breadcrumb.label === 'Inicio'\"></suka-icon> {{ breadcrumb.label }}\n <suka-icon icon=\"chevron-right\"></suka-icon>\n </a>\n <ng-template #lastRoute>\n <suka-icon icon=\"home\" *ngIf=\"breadcrumb.label === 'Inicio'\"></suka-icon> {{ breadcrumb.label }}\n </ng-template>\n </li>\n </ol>\n ",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
Breadcrumb.ctorParameters = function () { return [
{ type: ActivatedRoute, decorators: [{ type: Optional }] },
{ type: Router, decorators: [{ type: Optional }] }
]; };
return Breadcrumb;
}());
export { Breadcrumb };
if (false) {
/**
* @ignore
* @type {?}
*/
Breadcrumb.prototype.breadcrumbs$;
/**
* @type {?}
* @private
*/
Breadcrumb.prototype.activatedRoute;
/** @type {?} */
Breadcrumb.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkU7SUErQkUscUZBQXFGO0lBRXJGLG9CQUNzQixjQUE4QixFQUMvQixNQUFjO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDL0IsQ0FBQzs7OztJQUVMLDZCQUFROzs7SUFBUjtRQUFBLGlCQVFDO1FBUEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3pDLE1BQU07Ozs7WUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssWUFBWSxhQUFhLEVBQTlCLENBQThCLEVBQUMsRUFDL0Msb0JBQW9CLEVBQUUsRUFDdEIsR0FBRzs7OztZQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUE5QyxDQUE4QyxFQUFDLENBQzdELENBQUM7U0FDSDtJQUNILENBQUM7Ozs7Ozs7SUFFRCxvQ0FBZTs7Ozs7O0lBQWYsVUFDRSxLQUFxQixFQUNyQixHQUFnQixFQUNoQixXQUFvQztRQURwQyxvQkFBQSxFQUFBLFFBQWdCO1FBQ2hCLDRCQUFBLEVBQUEsZ0JBQW9DOzs7WUFHOUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFROztZQUMzRSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Ozs7WUFHdEQsT0FBTyxHQUFHLEtBQUcsR0FBRyxHQUFHLElBQUksTUFBRzs7WUFDMUIsVUFBVSxHQUFHO1lBQ2pCLEtBQUssT0FBQTtZQUNMLEdBQUcsRUFBRSxPQUFPO1NBQ2I7O1lBQ0ssY0FBYyxvQkFBTyxXQUFXLEdBQUUsVUFBVSxFQUFDO1FBQ25ELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQix5Q0FBeUM7WUFDekMsb0VBQW9FO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7O2dCQXRFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLHF3QkFvQlQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzs7O2dCQTdCUSxjQUFjLHVCQXVDbEIsUUFBUTtnQkF2QzJCLE1BQU0sdUJBd0N6QyxRQUFROztJQW9DYixpQkFBQztDQUFBLEFBdkVELElBdUVDO1NBOUNZLFVBQVU7Ozs7OztJQUlyQixrQ0FBd0M7Ozs7O0lBS3RDLG9DQUFrRDs7SUFDbEQsNEJBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQnJlYWRjcnVtYiB9IGZyb20gJy4vYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWthLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxvbCBjbGFzcz1cImJyZWFkY3J1bWJcIiAqbmdJZj1cInJvdXRlclwiPlxuICAgICAgPGxpXG4gICAgICAqbmdGb3I9XCJsZXQgYnJlYWRjcnVtYiBvZiBicmVhZGNydW1icyQgfCBhc3luYzsgbGFzdCBhcyBpc0xhc3Q7XCJcbiAgICAgIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXNMYXN0fVwiIGFyaWEtY3VycmVudD1cInBhZ2VcIlxuICAgICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiIWlzTGFzdDsgZWxzZSBsYXN0Um91dGVcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlticmVhZGNydW1iLnVybF1cIlxuICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN1a2EtaWNvbiBpY29uPVwiaG9tZVwiICpuZ0lmPVwiYnJlYWRjcnVtYi5sYWJlbCA9PT0gJ0luaWNpbydcIj48L3N1a2EtaWNvbj4ge3sgYnJlYWRjcnVtYi5sYWJlbCB9fVxuICAgICAgICAgIDxzdWthLWljb24gaWNvbj1cImNoZXZyb24tcmlnaHRcIj48L3N1a2EtaWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xhc3RSb3V0ZT5cbiAgICAgICAgICA8c3VrYS1pY29uIGljb249XCJob21lXCIgKm5nSWY9XCJicmVhZGNydW1iLmxhYmVsID09PSAnSW5pY2lvJ1wiPjwvc3VrYS1pY29uPiB7eyBicmVhZGNydW1iLmxhYmVsIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBicmVhZGNydW1icyQ6IE9ic2VydmFibGU8SUJyZWFkY3J1bWJbXT47XG5cbiAgLy8gQnVpbGQgeW91ciBicmVhZGNydW1iIHN0YXJ0aW5nIHdpdGggdGhlIHJvb3Qgcm91dGUgb2YgeW91ciBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXIpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYnMkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBtYXAoZXZlbnQgPT4gdGhpcy5idWlsZEJyZWFkY3J1bWIodGhpcy5hY3RpdmF0ZWRSb3V0ZS5yb290KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgYnVpbGRCcmVhZGNydW1iKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICB1cmw6IHN0cmluZyA9ICcnLFxuICAgIGJyZWFkY3J1bWJzOiBBcnJheTxJQnJlYWRjcnVtYj4gPSBbXVxuICApOiBBcnJheTxJQnJlYWRjcnVtYj4ge1xuICAgIC8vIElmIG5vIHJvdXRlQ29uZmlnIGlzIGF2YWxhaWxhYmxlIHdlIGFyZSBvbiB0aGUgcm9vdCBwYXRoXG4gICAgY29uc3QgbGFiZWwgPSByb3V0ZS5yb3V0ZUNvbmZpZyA/IHJvdXRlLnJvdXRlQ29uZmlnLmRhdGFbJ2JyZWFkY3J1bWInXSA6ICdJbmljaW8nO1xuICAgIGNvbnN0IHBhdGggPSByb3V0ZS5yb3V0ZUNvbmZpZyA/IHJvdXRlLnJvdXRlQ29uZmlnLnBhdGggOiAnJztcbiAgICAvLyBJbiB0aGUgcm91dGVDb25maWcgdGhlIGNvbXBsZXRlIHBhdGggaXMgbm90IGF2YWlsYWJsZSxcbiAgICAvLyBzbyB3ZSByZWJ1aWxkIGl0IGVhY2ggdGltZVxuICAgIGNvbnN0IG5leHRVcmwgPSBgJHt1cmx9JHtwYXRofS9gO1xuICAgIGNvbnN0IGJyZWFkY3J1bWIgPSB7XG4gICAgICBsYWJlbCxcbiAgICAgIHVybDogbmV4dFVybCxcbiAgICB9O1xuICAgIGNvbnN0IG5ld0JyZWFkY3J1bWJzID0gWy4uLmJyZWFkY3J1bWJzLCBicmVhZGNydW1iXTtcbiAgICBpZiAocm91dGUuZmlyc3RDaGlsZCkge1xuICAgICAgLy8gSWYgd2UgYXJlIG5vdCBvbiBvdXIgY3VycmVudCBwYXRoIHlldCxcbiAgICAgIC8vIHRoZXJlIHdpbGwgYmUgbW9yZSBjaGlsZHJlbiB0byBsb29rIGFmdGVyLCB0byBidWlsZCBvdXIgYnJlYWRjdW1iXG4gICAgICByZXR1cm4gdGhpcy5idWlsZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgbmV4dFVybCwgbmV3QnJlYWRjcnVtYnMpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3QnJlYWRjcnVtYnM7XG4gIH1cbn1cbiJdfQ==