UNPKG

@bespunky/angular-zen

Version:

The Angular tools you always wished were there.

57 lines 6.08 kB
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