UNPKG

@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
/** * @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