@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
70 lines • 10.5 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { ActivatedRouteSnapshot, UrlSegment } from '@angular/router';
import { CollectionsUtil } from '../../utils';
export const createRouteSnapshot = ({ url = [new UrlSegment('entity/23', {})], data = { paramKey: 'prime' }, params = { entityId: 23 }, queryParams = { search: 'test-team' }, outlet = 'router-outlet', component = ComponentStub, routeConfig = new RouteConfigStub('entity/23', ComponentStub, 'router-outlet'), firstChild = null, parent = undefined }) => {
return new ActivatedRouteSnapshotStub({
url,
data,
params,
queryParams,
outlet,
component,
routeConfig,
firstChild,
parent: CollectionsUtil.isUndefined(parent)
? createRouteSnapshot({
url: [new UrlSegment('domain/context', {})],
data: {},
params: {},
queryParams: {},
outlet: 'router-outlet',
component: null,
routeConfig: new RouteConfigStub('domain/context', null, 'router-outlet'),
firstChild: null,
parent: null
})
: null
});
};
export class ComponentStub {
}
export class ActivatedRouteSnapshotStub extends ActivatedRouteSnapshot {
constructor(snapshot) {
super();
this.url = snapshot.url;
this.data = snapshot.data;
this.params = snapshot.params;
this.queryParams = snapshot.queryParams;
this.outlet = snapshot.outlet;
this.component = snapshot.component;
this.routeConfig = snapshot.routeConfig;
this._firstChild = snapshot.firstChild;
this._parent = snapshot.parent;
if (snapshot.firstChild instanceof ActivatedRouteSnapshotStub) {
snapshot.firstChild.parent = this;
}
}
get parent() {
return this._parent;
}
set parent(parent) {
this._parent = parent;
}
get firstChild() {
return this._firstChild;
}
toString() {
return super.toString();
}
}
export class RouteConfigStub {
constructor(path, component, outlet) {
this.path = path;
this.component = component;
this.outlet = outlet;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvdW5pdC10ZXN0aW5nL3V0aWxzL3JvdXRlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFTSCxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxFQUNoQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQWlCLEVBQ3ZELElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQVUsRUFDcEMsTUFBTSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBWSxFQUNuQyxXQUFXLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFZLEVBQy9DLE1BQU0sR0FBRyxlQUF5QixFQUNsQyxTQUFTLEdBQUcsYUFBOEIsRUFDMUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLEVBQzlFLFVBQVUsR0FBRyxJQUE4QixFQUMzQyxNQUFNLEdBQUcsU0FBbUMsRUFDL0MsRUFBMEIsRUFBRTtJQUN6QixPQUFPLElBQUksMEJBQTBCLENBQUM7UUFDbEMsR0FBRztRQUNILElBQUk7UUFDSixNQUFNO1FBQ04sV0FBVztRQUNYLE1BQU07UUFDTixTQUFTO1FBQ1QsV0FBVztRQUNYLFVBQVU7UUFDVixNQUFNLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDdkMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO2dCQUNoQixHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLGVBQWU7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDO2dCQUN6RSxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsTUFBTSxFQUFFLElBQUk7YUFDZixDQUFDO1lBQ0osQ0FBQyxDQUFDLElBQUk7S0FDYixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYTtDQUFHO0FBYzdCLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxzQkFBc0I7SUF3QmxFLFlBQVksUUFBMkI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUUvQixJQUFJLFFBQVEsQ0FBQyxVQUFVLFlBQVksMEJBQTBCLEVBQUU7WUFDM0QsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQS9CRCxJQUFhLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQThCO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUF1QlEsUUFBUTtRQUNiLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBS3hCLFlBQVksSUFBWSxFQUFFLFNBQW9CLEVBQUUsTUFBYztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMtMjAyNSBCcm9hZGNvbVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBhcnJvdy1ib2R5LXN0eWxlLFxuICAgICAgICAgICAgICAgICAgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnMsXG4gICAgICAgICAgICAgICAgICBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeCxcbiAgICAgICAgICAgICAgICAgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBQYXJhbXMsIFJvdXRlLCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29sbGVjdGlvbnNVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG50eXBlIENvbXBvbmVudFR5cGUgPSBUeXBlPGFueT4gfCBzdHJpbmcgfCBudWxsO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUm91dGVTbmFwc2hvdCA9ICh7XG4gICAgdXJsID0gW25ldyBVcmxTZWdtZW50KCdlbnRpdHkvMjMnLCB7fSldIGFzIFVybFNlZ21lbnRbXSxcbiAgICBkYXRhID0geyBwYXJhbUtleTogJ3ByaW1lJyB9IGFzIERhdGEsXG4gICAgcGFyYW1zID0geyBlbnRpdHlJZDogMjMgfSBhcyBQYXJhbXMsXG4gICAgcXVlcnlQYXJhbXMgPSB7IHNlYXJjaDogJ3Rlc3QtdGVhbScgfSBhcyBQYXJhbXMsXG4gICAgb3V0bGV0ID0gJ3JvdXRlci1vdXRsZXQnIGFzIHN0cmluZyxcbiAgICBjb21wb25lbnQgPSBDb21wb25lbnRTdHViIGFzIENvbXBvbmVudFR5cGUsXG4gICAgcm91dGVDb25maWcgPSBuZXcgUm91dGVDb25maWdTdHViKCdlbnRpdHkvMjMnLCBDb21wb25lbnRTdHViLCAncm91dGVyLW91dGxldCcpLFxuICAgIGZpcnN0Q2hpbGQgPSBudWxsIGFzIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgcGFyZW50ID0gdW5kZWZpbmVkIGFzIEFjdGl2YXRlZFJvdXRlU25hcHNob3Rcbn0pOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90ID0+IHtcbiAgICByZXR1cm4gbmV3IEFjdGl2YXRlZFJvdXRlU25hcHNob3RTdHViKHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICBvdXRsZXQsXG4gICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgcm91dGVDb25maWcsXG4gICAgICAgIGZpcnN0Q2hpbGQsXG4gICAgICAgIHBhcmVudDogQ29sbGVjdGlvbnNVdGlsLmlzVW5kZWZpbmVkKHBhcmVudClcbiAgICAgICAgICAgID8gY3JlYXRlUm91dGVTbmFwc2hvdCh7XG4gICAgICAgICAgICAgICAgICB1cmw6IFtuZXcgVXJsU2VnbWVudCgnZG9tYWluL2NvbnRleHQnLCB7fSldLFxuICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHt9LFxuICAgICAgICAgICAgICAgICAgb3V0bGV0OiAncm91dGVyLW91dGxldCcsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICByb3V0ZUNvbmZpZzogbmV3IFJvdXRlQ29uZmlnU3R1YignZG9tYWluL2NvbnRleHQnLCBudWxsLCAncm91dGVyLW91dGxldCcpLFxuICAgICAgICAgICAgICAgICAgZmlyc3RDaGlsZDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBudWxsXG4gICAgfSk7XG59O1xuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50U3R1YiB7fVxuXG5pbnRlcmZhY2UgUm91dGVTbmFwc2hvdFN0dWIge1xuICAgIHVybDogVXJsU2VnbWVudFtdO1xuICAgIGRhdGE6IERhdGE7XG4gICAgcGFyYW1zOiBQYXJhbXM7XG4gICAgcXVlcnlQYXJhbXM6IFBhcmFtcztcbiAgICBvdXRsZXQ6IHN0cmluZztcbiAgICBjb21wb25lbnQ6IFR5cGU8YW55PiB8IHN0cmluZyB8IG51bGw7XG4gICAgcm91dGVDb25maWc6IFJvdXRlIHwgbnVsbDtcbiAgICBmaXJzdENoaWxkOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xuICAgIHBhcmVudDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdDtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGl2YXRlZFJvdXRlU25hcHNob3RTdHViIGV4dGVuZHMgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB7XG4gICAgb3ZlcnJpZGUgdXJsOiBVcmxTZWdtZW50W107XG4gICAgb3ZlcnJpZGUgZGF0YTogRGF0YTtcbiAgICBvdmVycmlkZSBwYXJhbXM6IFBhcmFtcztcbiAgICBvdmVycmlkZSBxdWVyeVBhcmFtczogUGFyYW1zO1xuICAgIG92ZXJyaWRlIG91dGxldDogc3RyaW5nO1xuICAgIG92ZXJyaWRlIGNvbXBvbmVudDogVHlwZTxhbnk+IHwgc3RyaW5nIHwgbnVsbDtcbiAgICBvdmVycmlkZSByZWFkb25seSByb3V0ZUNvbmZpZzogUm91dGUgfCBudWxsO1xuXG4gICAgb3ZlcnJpZGUgZ2V0IHBhcmVudCgpOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgc2V0IHBhcmVudChwYXJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGdldCBmaXJzdENoaWxkKCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpcnN0Q2hpbGQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wYXJlbnQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Q7XG4gICAgcHJvdGVjdGVkIF9maXJzdENoaWxkOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90O1xuXG4gICAgY29uc3RydWN0b3Ioc25hcHNob3Q6IFJvdXRlU25hcHNob3RTdHViKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy51cmwgPSBzbmFwc2hvdC51cmw7XG4gICAgICAgIHRoaXMuZGF0YSA9IHNuYXBzaG90LmRhdGE7XG4gICAgICAgIHRoaXMucGFyYW1zID0gc25hcHNob3QucGFyYW1zO1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0gc25hcHNob3QucXVlcnlQYXJhbXM7XG4gICAgICAgIHRoaXMub3V0bGV0ID0gc25hcHNob3Qub3V0bGV0O1xuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IHNuYXBzaG90LmNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5yb3V0ZUNvbmZpZyA9IHNuYXBzaG90LnJvdXRlQ29uZmlnO1xuICAgICAgICB0aGlzLl9maXJzdENoaWxkID0gc25hcHNob3QuZmlyc3RDaGlsZDtcbiAgICAgICAgdGhpcy5fcGFyZW50ID0gc25hcHNob3QucGFyZW50O1xuXG4gICAgICAgIGlmIChzbmFwc2hvdC5maXJzdENoaWxkIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGVTbmFwc2hvdFN0dWIpIHtcbiAgICAgICAgICAgIHNuYXBzaG90LmZpcnN0Q2hpbGQucGFyZW50ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzdXBlci50b1N0cmluZygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdXRlQ29uZmlnU3R1YiBpbXBsZW1lbnRzIFJvdXRlIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgb3V0bGV0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcsIGNvbXBvbmVudDogVHlwZTxhbnk+LCBvdXRsZXQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5vdXRsZXQgPSBvdXRsZXQ7XG4gICAgfVxufVxuIl19