@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>
99 lines • 10 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) {
/** @type {?} */
Breadcrumb.prototype.breadcrumbs$;
/**
* @type {?}
* @private
*/
Breadcrumb.prototype.activatedRoute;
/** @type {?} */
Breadcrumb.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkU7SUE0QkUscUZBQXFGO0lBRXJGLG9CQUNzQixjQUE4QixFQUMvQixNQUFjO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDL0IsQ0FBQzs7OztJQUVMLDZCQUFROzs7SUFBUjtRQUFBLGlCQVFDO1FBUEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3pDLE1BQU07Ozs7WUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssWUFBWSxhQUFhLEVBQTlCLENBQThCLEVBQUMsRUFDL0Msb0JBQW9CLEVBQUUsRUFDdEIsR0FBRzs7OztZQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUE5QyxDQUE4QyxFQUFDLENBQzdELENBQUM7U0FDSDtJQUNILENBQUM7Ozs7Ozs7SUFFRCxvQ0FBZTs7Ozs7O0lBQWYsVUFDRSxLQUFxQixFQUNyQixHQUFnQixFQUNoQixXQUFvQztRQURwQyxvQkFBQSxFQUFBLFFBQWdCO1FBQ2hCLDRCQUFBLEVBQUEsZ0JBQW9DOzs7WUFHOUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFROztZQUMzRSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Ozs7WUFHdEQsT0FBTyxHQUFHLEtBQUcsR0FBRyxHQUFHLElBQUksTUFBRzs7WUFDMUIsVUFBVSxHQUFHO1lBQ2pCLEtBQUssT0FBQTtZQUNMLEdBQUcsRUFBRSxPQUFPO1NBQ2I7O1lBQ0ssY0FBYyxvQkFBTyxXQUFXLEdBQUUsVUFBVSxFQUFDO1FBQ25ELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQix5Q0FBeUM7WUFDekMsb0VBQW9FO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7O2dCQW5FRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLHF3QkFvQlQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzs7O2dCQTdCUSxjQUFjLHVCQW9DbEIsUUFBUTtnQkFwQzJCLE1BQU0sdUJBcUN6QyxRQUFROztJQW9DYixpQkFBQztDQUFBLEFBcEVELElBb0VDO1NBM0NZLFVBQVU7OztJQUNyQixrQ0FBd0M7Ozs7O0lBS3RDLG9DQUFrRDs7SUFDbEQsNEJBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQnJlYWRjcnVtYiB9IGZyb20gJy4vYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWthLWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxvbCBjbGFzcz1cImJyZWFkY3J1bWJcIiAqbmdJZj1cInJvdXRlclwiPlxuICAgICAgPGxpXG4gICAgICAqbmdGb3I9XCJsZXQgYnJlYWRjcnVtYiBvZiBicmVhZGNydW1icyQgfCBhc3luYzsgbGFzdCBhcyBpc0xhc3Q7XCJcbiAgICAgIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXNMYXN0fVwiIGFyaWEtY3VycmVudD1cInBhZ2VcIlxuICAgICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiIWlzTGFzdDsgZWxzZSBsYXN0Um91dGVcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlticmVhZGNydW1iLnVybF1cIlxuICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN1a2EtaWNvbiBpY29uPVwiaG9tZVwiICpuZ0lmPVwiYnJlYWRjcnVtYi5sYWJlbCA9PT0gJ0luaWNpbydcIj48L3N1a2EtaWNvbj4ge3sgYnJlYWRjcnVtYi5sYWJlbCB9fVxuICAgICAgICAgIDxzdWthLWljb24gaWNvbj1cImNoZXZyb24tcmlnaHRcIj48L3N1a2EtaWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xhc3RSb3V0ZT5cbiAgICAgICAgICA8c3VrYS1pY29uIGljb249XCJob21lXCIgKm5nSWY9XCJicmVhZGNydW1iLmxhYmVsID09PSAnSW5pY2lvJ1wiPjwvc3VrYS1pY29uPiB7eyBicmVhZGNydW1iLmxhYmVsIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGJyZWFkY3J1bWJzJDogT2JzZXJ2YWJsZTxJQnJlYWRjcnVtYltdPjtcblxuICAvLyBCdWlsZCB5b3VyIGJyZWFkY3J1bWIgc3RhcnRpbmcgd2l0aCB0aGUgcm9vdCByb3V0ZSBvZiB5b3VyIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJvdXRlcikge1xuICAgICAgdGhpcy5icmVhZGNydW1icyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIG1hcChldmVudCA9PiB0aGlzLmJ1aWxkQnJlYWRjcnVtYih0aGlzLmFjdGl2YXRlZFJvdXRlLnJvb3QpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBidWlsZEJyZWFkY3J1bWIoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHVybDogc3RyaW5nID0gJycsXG4gICAgYnJlYWRjcnVtYnM6IEFycmF5PElCcmVhZGNydW1iPiA9IFtdXG4gICk6IEFycmF5PElCcmVhZGNydW1iPiB7XG4gICAgLy8gSWYgbm8gcm91dGVDb25maWcgaXMgYXZhbGFpbGFibGUgd2UgYXJlIG9uIHRoZSByb290IHBhdGhcbiAgICBjb25zdCBsYWJlbCA9IHJvdXRlLnJvdXRlQ29uZmlnID8gcm91dGUucm91dGVDb25maWcuZGF0YVsnYnJlYWRjcnVtYiddIDogJ0luaWNpbyc7XG4gICAgY29uc3QgcGF0aCA9IHJvdXRlLnJvdXRlQ29uZmlnID8gcm91dGUucm91dGVDb25maWcucGF0aCA6ICcnO1xuICAgIC8vIEluIHRoZSByb3V0ZUNvbmZpZyB0aGUgY29tcGxldGUgcGF0aCBpcyBub3QgYXZhaWxhYmxlLFxuICAgIC8vIHNvIHdlIHJlYnVpbGQgaXQgZWFjaCB0aW1lXG4gICAgY29uc3QgbmV4dFVybCA9IGAke3VybH0ke3BhdGh9L2A7XG4gICAgY29uc3QgYnJlYWRjcnVtYiA9IHtcbiAgICAgIGxhYmVsLFxuICAgICAgdXJsOiBuZXh0VXJsLFxuICAgIH07XG4gICAgY29uc3QgbmV3QnJlYWRjcnVtYnMgPSBbLi4uYnJlYWRjcnVtYnMsIGJyZWFkY3J1bWJdO1xuICAgIGlmIChyb3V0ZS5maXJzdENoaWxkKSB7XG4gICAgICAvLyBJZiB3ZSBhcmUgbm90IG9uIG91ciBjdXJyZW50IHBhdGggeWV0LFxuICAgICAgLy8gdGhlcmUgd2lsbCBiZSBtb3JlIGNoaWxkcmVuIHRvIGxvb2sgYWZ0ZXIsIHRvIGJ1aWxkIG91ciBicmVhZGN1bWJcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkQnJlYWRjcnVtYihyb3V0ZS5maXJzdENoaWxkLCBuZXh0VXJsLCBuZXdCcmVhZGNydW1icyk7XG4gICAgfVxuICAgIHJldHVybiBuZXdCcmVhZGNydW1icztcbiAgfVxufVxuIl19