@bespunky/angular-zen
Version:
The Angular tools you always wished were there.
57 lines • 6.08 kB
JavaScript
import { Component, NgModule } from '@angular/core';
import * as i0 from "@angular/core";
/**
* Recoursively creates nested routes for the specified segments.
* Each specified segment will be a child route of its previous segment.
*
* #### Example
* Running the function on `['some', 'route']` will result in the following supported routes:
* /
*
* /some
* /some/route
*
* @export
* @param {string[]} segments The route segments from which routes are to be created.
* @returns {Route} An Angular router module compatible route tree containing all segments as child routes.
*/
export function createDeeplyNestedRoutes(segments) {
const parent = { path: segments[0], component: NoopComponent, children: [] };
if (segments.length > 1) {
const nestedChildren = createDeeplyNestedRoutes(segments.slice(1));
// Add the route tree to the node
parent.children.push(nestedChildren);
}
return parent;
}
/**
* A functionless component.
* Can be used for setting routes in which the component is not important, but required by the route object.
*
* @export
* @class NoopComponent
*/
export class NoopComponent {
}
NoopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoopComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
NoopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: NoopComponent, selector: "zen-router-x-noop", ngImport: i0, template: '<div>noop</div>', isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoopComponent, decorators: [{
type: Component,
args: [{ selector: 'zen-router-x-noop', template: '<div>noop</div>' }]
}] });
/**
* A functionless module exporting the functionless `NoopComponent`.
*
* @export
* @class NoopModule
*/
export class NoopModule {
}
NoopModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoopModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
NoopModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: NoopModule, declarations: [NoopComponent], exports: [NoopComponent] });
NoopModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoopModule });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NoopModule, decorators: [{
type: NgModule,
args: [{ declarations: [NoopComponent], exports: [NoopComponent] }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItemVuL3JvdXRlci14L3Rlc3Rpbmcvc3JjL3V0aWxzL3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxRQUFrQjtJQUV2RCxNQUFNLE1BQU0sR0FBa0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRTVHLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3ZCO1FBQ0ksTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5FLGlDQUFpQztRQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDd0UsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7K0ZBQWIsYUFBYSx5REFBL0MsaUJBQWlCOzRGQUFpQixhQUFhO2tCQUFwRyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTs7QUFFekU7Ozs7O0dBS0c7QUFDb0UsTUFBTSxPQUFPLFVBQVU7O3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxpQkFSTixhQUFhLGFBQWIsYUFBYTt5R0FRakIsVUFBVTs0RkFBVixVQUFVO2tCQUE3RixRQUFRO21CQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSAgICAgICAgICAgICAgIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBSZWNvdXJzaXZlbHkgY3JlYXRlcyBuZXN0ZWQgcm91dGVzIGZvciB0aGUgc3BlY2lmaWVkIHNlZ21lbnRzLlxuICogRWFjaCBzcGVjaWZpZWQgc2VnbWVudCB3aWxsIGJlIGEgY2hpbGQgcm91dGUgb2YgaXRzIHByZXZpb3VzIHNlZ21lbnQuXG4gKiBcbiAqICMjIyMgRXhhbXBsZVxuICogUnVubmluZyB0aGUgZnVuY3Rpb24gb24gYFsnc29tZScsICdyb3V0ZSddYCB3aWxsIHJlc3VsdCBpbiB0aGUgZm9sbG93aW5nIHN1cHBvcnRlZCByb3V0ZXM6ICBcbiAqIC8gIFxuICogXG4gKiAvc29tZSAgXG4gKiAvc29tZS9yb3V0ZSAgXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtzdHJpbmdbXX0gc2VnbWVudHMgVGhlIHJvdXRlIHNlZ21lbnRzIGZyb20gd2hpY2ggcm91dGVzIGFyZSB0byBiZSBjcmVhdGVkLlxuICogQHJldHVybnMge1JvdXRlfSBBbiBBbmd1bGFyIHJvdXRlciBtb2R1bGUgY29tcGF0aWJsZSByb3V0ZSB0cmVlIGNvbnRhaW5pbmcgYWxsIHNlZ21lbnRzIGFzIGNoaWxkIHJvdXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZXBseU5lc3RlZFJvdXRlcyhzZWdtZW50czogc3RyaW5nW10pOiBSb3V0ZVxue1xuICAgIGNvbnN0IHBhcmVudDogUm91dGUgJiB7IGNoaWxkcmVuOiBSb3V0ZVtdIH0gPSB7IHBhdGg6IHNlZ21lbnRzWzBdLCBjb21wb25lbnQ6IE5vb3BDb21wb25lbnQsIGNoaWxkcmVuOiBbXSB9O1xuXG4gICAgaWYgKHNlZ21lbnRzLmxlbmd0aCA+IDEpXG4gICAge1xuICAgICAgICBjb25zdCBuZXN0ZWRDaGlsZHJlbiA9IGNyZWF0ZURlZXBseU5lc3RlZFJvdXRlcyhzZWdtZW50cy5zbGljZSgxKSk7XG4gICAgXG4gICAgICAgIC8vIEFkZCB0aGUgcm91dGUgdHJlZSB0byB0aGUgbm9kZVxuICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChuZXN0ZWRDaGlsZHJlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudDtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9ubGVzcyBjb21wb25lbnQuXG4gKiBDYW4gYmUgdXNlZCBmb3Igc2V0dGluZyByb3V0ZXMgaW4gd2hpY2ggdGhlIGNvbXBvbmVudCBpcyBub3QgaW1wb3J0YW50LCBidXQgcmVxdWlyZWQgYnkgdGhlIHJvdXRlIG9iamVjdC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgTm9vcENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICd6ZW4tcm91dGVyLXgtbm9vcCcsIHRlbXBsYXRlOiAnPGRpdj5ub29wPC9kaXY+JyB9KSBleHBvcnQgY2xhc3MgTm9vcENvbXBvbmVudCB7IH1cblxuLyoqXG4gKiBBIGZ1bmN0aW9ubGVzcyBtb2R1bGUgZXhwb3J0aW5nIHRoZSBmdW5jdGlvbmxlc3MgYE5vb3BDb21wb25lbnRgLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBOb29wTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7IGRlY2xhcmF0aW9uczogW05vb3BDb21wb25lbnRdLCBleHBvcnRzOiBbTm9vcENvbXBvbmVudF0gfSkgZXhwb3J0IGNsYXNzIE5vb3BNb2R1bGUgeyB9Il19