UNPKG

@versatiledatakit/shared

Version:

Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.

37 lines 5.18 kB
/* * Copyright 2023-2025 Broadcom * SPDX-License-Identifier: Apache-2.0 */ import { CollectionsUtil } from '../../../utils'; import { RouteSegments, RouteState } from '../model'; /** * ** Route State Factory. */ export class RouteStateFactory { /** * ** Creates Router State from provided Route snapshot. */ create(routeSnapshot, url) { return RouteState.of(this._getRouteSegments(routeSnapshot), url); } _getRouteSegments(routeSnapshot) { if (CollectionsUtil.isNil(routeSnapshot)) { return null; } const routePathSegments = []; routeSnapshot.url.forEach((segment) => { routePathSegments.push(segment.path); }); const routePath = routePathSegments.join('/'); const data = CollectionsUtil.cloneDeep(routeSnapshot.data); const params = CollectionsUtil.cloneDeep(routeSnapshot.params); const queryParams = CollectionsUtil.cloneDeep(routeSnapshot.queryParams); const configPath = routeSnapshot.routeConfig?.path; let parentNavSegments; if (routeSnapshot.parent) { parentNavSegments = this._getRouteSegments(routeSnapshot.parent); } return RouteSegments.of(routePath, data, params, queryParams, parentNavSegments, configPath); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtc3RhdGUuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvcmUvcm91dGVyL2ZhY3Rvcnkvcm91dGUtc3RhdGUuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFJSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQXFDLEVBQUUsR0FBVztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxhQUFxQztRQUMzRCxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0saUJBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBbUIsRUFBRSxFQUFFO1lBQzlDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7UUFFbkQsSUFBSSxpQkFBZ0MsQ0FBQztRQUVyQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sYUFBYSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzLTIwMjUgQnJvYWRjb21cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbGxlY3Rpb25zVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgUm91dGVTZWdtZW50cywgUm91dGVTdGF0ZSB9IGZyb20gJy4uL21vZGVsJztcblxuLyoqXG4gKiAqKiBSb3V0ZSBTdGF0ZSBGYWN0b3J5LlxuICovXG5leHBvcnQgY2xhc3MgUm91dGVTdGF0ZUZhY3Rvcnkge1xuICAgIC8qKlxuICAgICAqICoqIENyZWF0ZXMgUm91dGVyIFN0YXRlIGZyb20gcHJvdmlkZWQgUm91dGUgc25hcHNob3QuXG4gICAgICovXG4gICAgY3JlYXRlKHJvdXRlU25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHVybDogc3RyaW5nKTogUm91dGVTdGF0ZSB7XG4gICAgICAgIHJldHVybiBSb3V0ZVN0YXRlLm9mKHRoaXMuX2dldFJvdXRlU2VnbWVudHMocm91dGVTbmFwc2hvdCksIHVybCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Um91dGVTZWdtZW50cyhyb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUm91dGVTZWdtZW50cyB7XG4gICAgICAgIGlmIChDb2xsZWN0aW9uc1V0aWwuaXNOaWwocm91dGVTbmFwc2hvdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm91dGVQYXRoU2VnbWVudHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHJvdXRlU25hcHNob3QudXJsLmZvckVhY2goKHNlZ21lbnQ6IFVybFNlZ21lbnQpID0+IHtcbiAgICAgICAgICAgIHJvdXRlUGF0aFNlZ21lbnRzLnB1c2goc2VnbWVudC5wYXRoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGVQYXRoU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICBjb25zdCBkYXRhID0gQ29sbGVjdGlvbnNVdGlsLmNsb25lRGVlcChyb3V0ZVNuYXBzaG90LmRhdGEpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBDb2xsZWN0aW9uc1V0aWwuY2xvbmVEZWVwKHJvdXRlU25hcHNob3QucGFyYW1zKTtcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBDb2xsZWN0aW9uc1V0aWwuY2xvbmVEZWVwKHJvdXRlU25hcHNob3QucXVlcnlQYXJhbXMpO1xuICAgICAgICBjb25zdCBjb25maWdQYXRoID0gcm91dGVTbmFwc2hvdC5yb3V0ZUNvbmZpZz8ucGF0aDtcblxuICAgICAgICBsZXQgcGFyZW50TmF2U2VnbWVudHM6IFJvdXRlU2VnbWVudHM7XG5cbiAgICAgICAgaWYgKHJvdXRlU25hcHNob3QucGFyZW50KSB7XG4gICAgICAgICAgICBwYXJlbnROYXZTZWdtZW50cyA9IHRoaXMuX2dldFJvdXRlU2VnbWVudHMocm91dGVTbmFwc2hvdC5wYXJlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJvdXRlU2VnbWVudHMub2Yocm91dGVQYXRoLCBkYXRhLCBwYXJhbXMsIHF1ZXJ5UGFyYW1zLCBwYXJlbnROYXZTZWdtZW50cywgY29uZmlnUGF0aCk7XG4gICAgfVxufVxuIl19