UNPKG

@exalif/ngx-breadcrumbs

Version:

Angular 4+ breadcrumbs on top of native Angular router

69 lines (68 loc) 5.48 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { of } from 'rxjs'; import { BreadcrumbsUtils } from '../utils/breadcrumbs.utils'; var BreadcrumbsResolver = /** @class */ (function () { function BreadcrumbsResolver() { } /** * @param {?} route * @param {?} state * @return {?} */ BreadcrumbsResolver.prototype.resolve = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { var /** @type {?} */ data = route.routeConfig.data; var /** @type {?} */ path = this.getFullPath(route); var /** @type {?} */ text = typeof (data["breadcrumbs"]) === 'string' ? data["breadcrumbs"] : data["breadcrumbs"].text || data["text"] || path; text = BreadcrumbsUtils.stringFormat(text, route.data); var /** @type {?} */ crumbs = [{ text: text, path: path }]; return of(crumbs); }; /** * @param {?} route * @return {?} */ BreadcrumbsResolver.prototype.getFullPath = /** * @param {?} route * @return {?} */ function (route) { return this.fetchFullPath(route.pathFromRoot); }; /** * @param {?} routes * @return {?} */ BreadcrumbsResolver.prototype.fetchFullPath = /** * @param {?} routes * @return {?} */ function (routes) { var _this = this; return routes.reduce(function (path, route) { return path += _this.fetchRelativePath(route.url); }, ''); }; /** * @param {?} urlSegments * @return {?} */ BreadcrumbsResolver.prototype.fetchRelativePath = /** * @param {?} urlSegments * @return {?} */ function (urlSegments) { return urlSegments.reduce(function (path, urlSegment) { return path += '/' + urlSegment.path; }, ''); }; return BreadcrumbsResolver; }()); export { BreadcrumbsResolver }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZXhhbGlmL25neC1icmVhZGNydW1icy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9icmVhZGNydW1icy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxJQUFBOzs7Ozs7OztJQUNTLHFDQUFPOzs7OztjQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFHdEUscUJBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3BDLHFCQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJDLHFCQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxnQkFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBYSxDQUFDLENBQUMsSUFBSSxnQkFBYSxJQUFJLElBQUksSUFBSSxRQUFLLElBQUksSUFBSSxDQUFDO1FBQ2xILElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2RCxxQkFBTSxNQUFNLEdBQWlCLENBQUM7Z0JBQzVCLElBQUksTUFBQTtnQkFDSixJQUFJLE1BQUE7YUFDTCxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzs7Ozs7SUFHYix5Q0FBVzs7OztjQUFDLEtBQTZCO1FBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQzs7Ozs7O0lBR3hDLDJDQUFhOzs7O2NBQUMsTUFBZ0M7O1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsSUFBSSxFQUFFLEtBQUssSUFBSyxPQUFBLElBQUksSUFBSSxLQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUF6QyxDQUF5QyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7SUFHL0UsK0NBQWlCOzs7O2NBQUMsV0FBeUI7UUFDakQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsVUFBVSxJQUFLLE9BQUEsSUFBSSxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUE3QixDQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDOzs4QkFuQ3ZGO0lBcUNDLENBQUE7QUE3QkQsK0JBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICcuLi9tb2RlbHMvYnJlYWRjcnVtYic7XG5pbXBvcnQgeyBCcmVhZGNydW1ic1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMvYnJlYWRjcnVtYnMudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYnNSZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8QnJlYWRjcnVtYltdPiB7XG4gIHB1YmxpYyByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdClcbiAgICA6IE9ic2VydmFibGU8QnJlYWRjcnVtYltdPiB8IFByb21pc2U8QnJlYWRjcnVtYltdPiB8IEJyZWFkY3J1bWJbXSB7XG5cbiAgICBjb25zdCBkYXRhID0gcm91dGUucm91dGVDb25maWcuZGF0YTtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRGdWxsUGF0aChyb3V0ZSk7XG5cbiAgICBsZXQgdGV4dCA9IHR5cGVvZiAoZGF0YS5icmVhZGNydW1icykgPT09ICdzdHJpbmcnID8gZGF0YS5icmVhZGNydW1icyA6IGRhdGEuYnJlYWRjcnVtYnMudGV4dCB8fCBkYXRhLnRleHQgfHwgcGF0aDtcbiAgICB0ZXh0ID0gQnJlYWRjcnVtYnNVdGlscy5zdHJpbmdGb3JtYXQodGV4dCwgcm91dGUuZGF0YSk7XG5cbiAgICBjb25zdCBjcnVtYnM6IEJyZWFkY3J1bWJbXSA9IFt7XG4gICAgICB0ZXh0LFxuICAgICAgcGF0aFxuICAgIH1dO1xuXG4gICAgcmV0dXJuIG9mKGNydW1icyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RnVsbFBhdGgocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZldGNoRnVsbFBhdGgocm91dGUucGF0aEZyb21Sb290KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hGdWxsUGF0aChyb3V0ZXM6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdXRlcy5yZWR1Y2UoKHBhdGgsIHJvdXRlKSA9PiBwYXRoICs9IHRoaXMuZmV0Y2hSZWxhdGl2ZVBhdGgocm91dGUudXJsKSwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFJlbGF0aXZlUGF0aCh1cmxTZWdtZW50czogVXJsU2VnbWVudFtdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsU2VnbWVudHMucmVkdWNlKChwYXRoLCB1cmxTZWdtZW50KSA9PiBwYXRoICs9ICcvJyArIHVybFNlZ21lbnQucGF0aCwgJycpO1xuICB9XG59XG4iXX0=