UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

55 lines 8.2 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { Injectable } from "@angular/core"; import { NavigationEnd } from "@angular/router"; import { filter } from "rxjs/operators"; import * as i0 from "@angular/core"; /** * @ignore */ export class BreadcrumbStateService { // Recursively fill the state for breadcrumb component using data from routes getBreadcrumbState(routerState, url = "", breadcrumbs = []) { const breadcrumb = routerState.snapshot.data["breadcrumb"]; const newUrl = `${url}${routerState.routeConfig?.path}/`; const externalUrl = routerState.snapshot.data["url"]; const newBreadcrumbs = [ ...breadcrumbs, { title: breadcrumb, routerState: newUrl, url: externalUrl, }, ]; return routerState.firstChild ? this.getBreadcrumbState(routerState.firstChild, newUrl, newBreadcrumbs) : newBreadcrumbs; } getNavigationSubscription(router) { return router.events.pipe(filter((event) => event instanceof NavigationEnd)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreadcrumbStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreadcrumbStateService, providedIn: "root" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreadcrumbStateService, decorators: [{ type: Injectable, args: [{ providedIn: "root" }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWItc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsOEVBQThFO0FBQzlFLCtFQUErRTtBQUMvRSw4RUFBOEU7QUFDOUUsNERBQTREO0FBQzVELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsdURBQXVEO0FBQ3ZELEVBQUU7QUFDRiw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLCtFQUErRTtBQUMvRSwwRUFBMEU7QUFDMUUsaUZBQWlGO0FBQ2pGLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFFakIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXlCLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJeEM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLDZFQUE2RTtJQUN0RSxrQkFBa0IsQ0FDckIsV0FBMkIsRUFDM0IsTUFBYyxFQUFFLEVBQ2hCLGNBQWdDLEVBQUU7UUFFbEMsTUFBTSxVQUFVLEdBQVcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUN6RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLGNBQWMsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZDtnQkFDSSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLEdBQUcsRUFBRSxXQUFXO2FBQ25CO1NBQ0osQ0FBQztRQUVGLE9BQU8sV0FBVyxDQUFDLFVBQVU7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FDbkIsV0FBVyxDQUFDLFVBQVUsRUFDdEIsTUFBTSxFQUNOLGNBQWMsQ0FDakI7WUFDSCxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3pCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxNQUFjO1FBQzNDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNwRCxDQUFDO0lBQ04sQ0FBQzsrR0FoQ1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FEVCxNQUFNOzs0RkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBFdmVudCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgQnJlYWRjcnVtYkl0ZW0gfSBmcm9tIFwiLi9wdWJsaWMtYXBpXCI7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlN0YXRlU2VydmljZSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgZmlsbCB0aGUgc3RhdGUgZm9yIGJyZWFkY3J1bWIgY29tcG9uZW50IHVzaW5nIGRhdGEgZnJvbSByb3V0ZXNcbiAgICBwdWJsaWMgZ2V0QnJlYWRjcnVtYlN0YXRlKFxuICAgICAgICByb3V0ZXJTdGF0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHVybDogc3RyaW5nID0gXCJcIixcbiAgICAgICAgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJJdGVtW10gPSBbXVxuICAgICk6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgICAgICBjb25zdCBicmVhZGNydW1iOiBzdHJpbmcgPSByb3V0ZXJTdGF0ZS5zbmFwc2hvdC5kYXRhW1wiYnJlYWRjcnVtYlwiXTtcbiAgICAgICAgY29uc3QgbmV3VXJsID0gYCR7dXJsfSR7cm91dGVyU3RhdGUucm91dGVDb25maWc/LnBhdGh9L2A7XG4gICAgICAgIGNvbnN0IGV4dGVybmFsVXJsID0gcm91dGVyU3RhdGUuc25hcHNob3QuZGF0YVtcInVybFwiXTtcbiAgICAgICAgY29uc3QgbmV3QnJlYWRjcnVtYnMgPSBbXG4gICAgICAgICAgICAuLi5icmVhZGNydW1icyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogYnJlYWRjcnVtYixcbiAgICAgICAgICAgICAgICByb3V0ZXJTdGF0ZTogbmV3VXJsLFxuICAgICAgICAgICAgICAgIHVybDogZXh0ZXJuYWxVcmwsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiByb3V0ZXJTdGF0ZS5maXJzdENoaWxkXG4gICAgICAgICAgICA/IHRoaXMuZ2V0QnJlYWRjcnVtYlN0YXRlKFxuICAgICAgICAgICAgICAgICAgcm91dGVyU3RhdGUuZmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgIG5ld1VybCxcbiAgICAgICAgICAgICAgICAgIG5ld0JyZWFkY3J1bWJzXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbmV3QnJlYWRjcnVtYnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdmlnYXRpb25TdWJzY3JpcHRpb24ocm91dGVyOiBSb3V0ZXIpOiBPYnNlcnZhYmxlPEV2ZW50PiB7XG4gICAgICAgIHJldHVybiByb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19