UNPKG

@bespunky/angular-zen

Version:

The Angular tools you always wished were there.

22 lines 4.38 kB
import { firstUpper } from '../_utils/_string-utils'; import { _RouteComposer_ } from '../_navigation-x.symbols'; // TODO: Warn if multiple composers with the same name were found export function collectRouteComposersByAutoNavigatorName(route) { const composer = route[_RouteComposer_]; const autoNavigatorName = `to${firstUpper(composer.name)}`; const childComposers = collectArrayRouteComposersByAutoNavigatioName(route.children); return new Map([ [autoNavigatorName, composer], ...(childComposers ?? []) ]); } function collectArrayRouteComposersByAutoNavigatioName(routes) { return routes?.map(collectRouteComposersByAutoNavigatorName) .reduce((allNestedComposers, childComposers) => new Map([...allNestedComposers, ...childComposers]), new Map()); } export function extractArgsFromPath(path) { return path .split('/') .filter(segment => segment.startsWith(':')); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXplbi9yb3V0ZXIteC9uYXZpZ2F0aW9uL3NyYy9saWIvcm91dGUtY29tcG9zZXIvX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLM0QsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSx3Q0FBd0MsQ0FBQyxLQUFzRjtJQUUzSSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUUsZUFBZSxDQUFFLENBQUM7SUFDMUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFFLEVBQUUsQ0FBQztJQUU3RCxNQUFNLGNBQWMsR0FBRyw2Q0FBNkMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFckYsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUNYLENBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFFO1FBQy9CLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO0tBQzVCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxTQUFTLDZDQUE2QyxDQUFDLE1BQTJGO0lBRTlJLE9BQU8sTUFBTSxFQUFFLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQztTQUN2RCxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUUsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLGNBQWMsQ0FBRSxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQzFILENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQXNCLElBQVU7SUFFL0QsT0FBTyxJQUFJO1NBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQTBCLENBQUM7QUFDN0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlQ29tcG9zZXIgfSBmcm9tICcuL3JvdXRlci1jb21wb3Nlcic7XG5pbXBvcnQgeyBmaXJzdFVwcGVyIH0gZnJvbSAnLi4vX3V0aWxzL19zdHJpbmctdXRpbHMnO1xuaW1wb3J0IHsgX1JvdXRlQ29tcG9zZXJfIH0gZnJvbSAnLi4vX25hdmlnYXRpb24teC5zeW1ib2xzJztcblxuaW1wb3J0IHR5cGUgeyBSZWFkb25seVJvdXRlLCBXaXRoUm91dGVDb21wb3NlciB9IGZyb20gJy4uL3R5cGVzL2NvbXBvc2FibGUtcm91dGVzLnR5cGVzJztcbmltcG9ydCB0eXBlIHsgUm91dGVBcmd1bWVudCB9IGZyb20gJy4uL3R5cGVzL3JvdXRlLXBhdGhzLnR5cGVzJztcblxuLy8gVE9ETzogV2FybiBpZiBtdWx0aXBsZSBjb21wb3NlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIHdlcmUgZm91bmRcbmV4cG9ydCBmdW5jdGlvbiBjb2xsZWN0Um91dGVDb21wb3NlcnNCeUF1dG9OYXZpZ2F0b3JOYW1lKHJvdXRlOiBXaXRoUm91dGVDb21wb3Nlcjx1bmtub3duLCBzdHJpbmcsIHN0cmluZz4gJiBSZWFkb25seVJvdXRlPHN0cmluZywgc3RyaW5nLCBhbnk+KTogTWFwPHN0cmluZywgUm91dGVDb21wb3Nlcjx1bmtub3duLCBzdHJpbmcsIHN0cmluZz4+XG57XG4gICAgY29uc3QgY29tcG9zZXIgPSByb3V0ZVsgX1JvdXRlQ29tcG9zZXJfIF07XG4gICAgY29uc3QgYXV0b05hdmlnYXRvck5hbWUgPSBgdG8keyBmaXJzdFVwcGVyKGNvbXBvc2VyLm5hbWUpIH1gO1xuXG4gICAgY29uc3QgY2hpbGRDb21wb3NlcnMgPSBjb2xsZWN0QXJyYXlSb3V0ZUNvbXBvc2Vyc0J5QXV0b05hdmlnYXRpb05hbWUocm91dGUuY2hpbGRyZW4pO1xuXG4gICAgcmV0dXJuIG5ldyBNYXAoW1xuICAgICAgICBbIGF1dG9OYXZpZ2F0b3JOYW1lLCBjb21wb3NlciBdLFxuICAgICAgICAuLi4oY2hpbGRDb21wb3NlcnMgPz8gW10pXG4gICAgXSk7XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RBcnJheVJvdXRlQ29tcG9zZXJzQnlBdXRvTmF2aWdhdGlvTmFtZShyb3V0ZXM6IChXaXRoUm91dGVDb21wb3Nlcjx1bmtub3duLCBzdHJpbmcsIHN0cmluZz4gJiBSZWFkb25seVJvdXRlPHN0cmluZywgc3RyaW5nLCBhbnk+KVtdKTogTWFwPHN0cmluZywgUm91dGVDb21wb3Nlcjx1bmtub3duLCBzdHJpbmcsIHN0cmluZz4+XG57XG4gICAgcmV0dXJuIHJvdXRlcz8ubWFwKGNvbGxlY3RSb3V0ZUNvbXBvc2Vyc0J5QXV0b05hdmlnYXRvck5hbWUpXG4gICAgICAgIC5yZWR1Y2UoKGFsbE5lc3RlZENvbXBvc2VycywgY2hpbGRDb21wb3NlcnMpID0+IG5ldyBNYXAoWyAuLi5hbGxOZXN0ZWRDb21wb3NlcnMsIC4uLmNoaWxkQ29tcG9zZXJzIF0pLCBuZXcgTWFwKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEFyZ3NGcm9tUGF0aDxQYXRoIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBQYXRoKTogUm91dGVBcmd1bWVudDxQYXRoPltdXG57XG4gICAgcmV0dXJuIHBhdGhcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihzZWdtZW50ID0+IHNlZ21lbnQuc3RhcnRzV2l0aCgnOicpKSBhcyBSb3V0ZUFyZ3VtZW50PFBhdGg+W107XG59Il19