@miesil/pp-breadcrumbs
Version:
PP-Breadcrumbs is an Angular 7 module generating breadcrumbs based on the routing state.
92 lines • 6.62 kB
JavaScript
/**
* @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