UNPKG

@miesil/pp-breadcrumbs

Version:

PP-Breadcrumbs is an Angular 7 module generating breadcrumbs based on the routing state.

92 lines 6.62 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { of } from 'rxjs'; import { Injectable } from '@angular/core'; import { template, templateSettings } from 'lodash'; templateSettings.interpolate = /{{([\s\S]+?)}}/g; var PpBreadcrumbsResolver = /** @class */ (function () { function PpBreadcrumbsResolver() { } /** * @param {?} route * @param {?} state * @return {?} */ PpBreadcrumbsResolver.prototype.resolve = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { /** @type {?} */ var data = route.routeConfig.data; /** @type {?} */ var path = this.getFullPath(route); /** @type {?} */ var rawText = typeof data.breadcrumbs === 'string' ? data.breadcrumbs : data.breadcrumbs.text || data.text || path; return of([ { path: path, text: this.stringFormat(rawText, route.data) } ]); }; /** * @param {?} route * @return {?} */ PpBreadcrumbsResolver.prototype.getFullPath = /** * @param {?} route * @return {?} */ function (route) { /** @type {?} */ var relativePath = (/** * @param {?} segments * @return {?} */ function (segments) { return segments.reduce((/** * @param {?} a * @param {?} v * @return {?} */ function (a, v) { return (a += '/' + v.path); }), ''); }); /** @type {?} */ var fullPath = (/** * @param {?} routes * @return {?} */ function (routes) { return routes.reduce((/** * @param {?} a * @param {?} v * @return {?} */ function (a, v) { return (a += relativePath(v.url)); }), ''); }); return fullPath(route.pathFromRoot); }; /** * @private * @param {?} templateString * @param {?} binding * @return {?} */ PpBreadcrumbsResolver.prototype.stringFormat = /** * @private * @param {?} templateString * @param {?} binding * @return {?} */ function (templateString, binding) { /** @type {?} */ var compiled = template(templateString); return compiled(binding); }; PpBreadcrumbsResolver.decorators = [ { type: Injectable } ]; return PpBreadcrumbsResolver; }()); export { PpBreadcrumbsResolver }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWllc2lsL3BwLWJyZWFkY3J1bWJzLyIsInNvdXJjZXMiOlsibGliL2JyZWFkY3J1bWJzLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwRCxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFFakQ7SUFBQTtJQTBCQSxDQUFDOzs7Ozs7SUF2QkMsdUNBQU87Ozs7O0lBQVAsVUFBUSxLQUE2QixFQUFFLEtBQTBCOztZQUN6RCxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJOztZQUM3QixJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1lBQzlCLE9BQU8sR0FBRyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUk7UUFFcEgsT0FBTyxFQUFFLENBQUM7WUFDUjtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQzthQUM3QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsMkNBQVc7Ozs7SUFBWCxVQUFZLEtBQTZCOztZQUNqQyxZQUFZOzs7O1FBQUcsVUFBQyxRQUFzQixJQUFLLE9BQUEsUUFBUSxDQUFDLE1BQU07Ozs7O1FBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBbkIsQ0FBbUIsR0FBRSxFQUFFLENBQUMsRUFBbEQsQ0FBa0QsQ0FBQTs7WUFDN0YsUUFBUTs7OztRQUFHLFVBQUMsTUFBZ0MsSUFBSyxPQUFBLE1BQU0sQ0FBQyxNQUFNOzs7OztRQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBMUIsQ0FBMEIsR0FBRSxFQUFFLENBQUMsRUFBdkQsQ0FBdUQsQ0FBQTtRQUM5RyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7OztJQUVPLDRDQUFZOzs7Ozs7SUFBcEIsVUFBcUIsY0FBc0IsRUFBRSxPQUFZOztZQUNqRCxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUN6QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDOztnQkF6QkYsVUFBVTs7SUEwQlgsNEJBQUM7Q0FBQSxBQTFCRCxJQTBCQztTQXpCWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4vYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGVtcGxhdGUsIHRlbXBsYXRlU2V0dGluZ3MgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxudGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZSA9IC97eyhbXFxzXFxTXSs/KX19L2c7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcEJyZWFkY3J1bWJzUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPEJyZWFkY3J1bWJbXT4ge1xyXG5cclxuICByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8QnJlYWRjcnVtYltdPiB8IFByb21pc2U8QnJlYWRjcnVtYltdPiB8IEJyZWFkY3J1bWJbXSB7XHJcbiAgICBjb25zdCBkYXRhID0gcm91dGUucm91dGVDb25maWcuZGF0YTtcclxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldEZ1bGxQYXRoKHJvdXRlKTtcclxuICAgIGNvbnN0IHJhd1RleHQgPSB0eXBlb2YgZGF0YS5icmVhZGNydW1icyA9PT0gJ3N0cmluZycgPyBkYXRhLmJyZWFkY3J1bWJzIDogZGF0YS5icmVhZGNydW1icy50ZXh0IHx8IGRhdGEudGV4dCB8fCBwYXRoO1xyXG5cclxuICAgIHJldHVybiBvZihbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBwYXRoLFxyXG4gICAgICAgIHRleHQ6IHRoaXMuc3RyaW5nRm9ybWF0KHJhd1RleHQsIHJvdXRlLmRhdGEpXHJcbiAgICAgIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnVsbFBhdGgocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gKHNlZ21lbnRzOiBVcmxTZWdtZW50W10pID0+IHNlZ21lbnRzLnJlZHVjZSgoYSwgdikgPT4gKGEgKz0gJy8nICsgdi5wYXRoKSwgJycpO1xyXG4gICAgY29uc3QgZnVsbFBhdGggPSAocm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90W10pID0+IHJvdXRlcy5yZWR1Y2UoKGEsIHYpID0+IChhICs9IHJlbGF0aXZlUGF0aCh2LnVybCkpLCAnJyk7XHJcbiAgICByZXR1cm4gZnVsbFBhdGgocm91dGUucGF0aEZyb21Sb290KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RyaW5nRm9ybWF0KHRlbXBsYXRlU3RyaW5nOiBzdHJpbmcsIGJpbmRpbmc6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjb21waWxlZCA9IHRlbXBsYXRlKHRlbXBsYXRlU3RyaW5nKTtcclxuICAgIHJldHVybiBjb21waWxlZChiaW5kaW5nKTtcclxuICB9XHJcbn1cclxuIl19