UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 36 kB
{"ast":null,"code":"\"use strict\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nvar _excluded = [\"screen\", \"if\"],\n _excluded2 = [\"screens\", \"groups\"],\n _excluded3 = [\"if\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\nimport { useRoute } from \"./useRoute.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar MemoizedScreen = React.memo(function (_ref) {\n var component = _ref.component;\n var route = useRoute();\n var children = React.createElement(component, {\n route: route\n });\n return children;\n});\nMemoizedScreen.displayName = 'Memo(Screen)';\nvar getItemsFromScreens = function getItemsFromScreens(Screen, screens) {\n return Object.entries(screens).map(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n name = _ref3[0],\n item = _ref3[1];\n var component;\n var props = {};\n var useIf;\n var isNavigator = false;\n if ('screen' in item) {\n var screen = item.screen,\n _if = item.if,\n rest = _objectWithoutProperties(item, _excluded);\n useIf = _if;\n props = rest;\n if (isValidElementType(screen)) {\n component = screen;\n } else if ('config' in screen) {\n isNavigator = true;\n component = createComponentForStaticNavigation(screen, `${name}Navigator`);\n }\n } else if (isValidElementType(item)) {\n component = item;\n } else if ('config' in item) {\n isNavigator = true;\n component = createComponentForStaticNavigation(item, `${name}Navigator`);\n }\n if (component == null) {\n throw new Error(`Couldn't find a 'screen' property for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);\n }\n var element = isNavigator ? (React.createElement(component, {})) : _jsx(MemoizedScreen, {\n component: component\n });\n return function () {\n var shouldRender = useIf == null || useIf();\n if (!shouldRender) {\n return null;\n }\n return _jsx(Screen, _objectSpread(_objectSpread({\n name: name\n }, props), {}, {\n children: function children() {\n return element;\n }\n }), name);\n };\n });\n};\nexport function createComponentForStaticNavigation(tree, displayName) {\n var Navigator = tree.Navigator,\n Group = tree.Group,\n Screen = tree.Screen,\n config = tree.config;\n var screens = config.screens,\n groups = config.groups,\n rest = _objectWithoutProperties(config, _excluded2);\n if (screens == null && groups == null) {\n throw new Error(\"Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.\");\n }\n var items = [];\n for (var key in config) {\n if (key === 'screens' && screens) {\n items.push.apply(items, _toConsumableArray(getItemsFromScreens(Screen, screens)));\n }\n if (key === 'groups' && groups) {\n items.push.apply(items, _toConsumableArray(Object.entries(groups).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n key = _ref6[0],\n _ref4 = _ref6[1];\n var useIf = _ref4.if,\n group = _objectWithoutProperties(_ref4, _excluded3);\n var groupItems = getItemsFromScreens(Screen, group.screens);\n return function () {\n var children = groupItems.map(function (item) {\n return item();\n });\n var shouldRender = useIf == null || useIf();\n if (!shouldRender) {\n return null;\n }\n return _jsx(Group, _objectSpread(_objectSpread({\n navigationKey: key\n }, group), {}, {\n children: children\n }), key);\n };\n })));\n }\n }\n var NavigatorComponent = function NavigatorComponent() {\n var children = items.map(function (item) {\n return item();\n });\n return _jsx(Navigator, _objectSpread(_objectSpread({}, rest), {}, {\n children: children\n }));\n };\n NavigatorComponent.displayName = displayName;\n return NavigatorComponent;\n}\nexport function createPathConfigForStaticNavigation(tree, options, auto) {\n var initialScreenConfig;\n var _createPathConfigForTree = function createPathConfigForTree(t, o, skipInitialDetection) {\n var createPathConfigForScreens = function createPathConfigForScreens(screens, initialRouteName) {\n return Object.fromEntries(Object.entries(screens).sort(function (_ref7, _ref8) {\n var _ref9 = _slicedToArray(_ref7, 1),\n a = _ref9[0];\n var _ref0 = _slicedToArray(_ref8, 1),\n b = _ref0[0];\n if (a === initialRouteName) {\n return -1;\n }\n if (b === initialRouteName) {\n return 1;\n }\n return 0;\n }).map(function (_ref1) {\n var _ref10 = _slicedToArray(_ref1, 2),\n key = _ref10[0],\n item = _ref10[1];\n var screenConfig = {};\n if ('linking' in item) {\n if (typeof item.linking === 'string') {\n screenConfig.path = item.linking;\n } else {\n Object.assign(screenConfig, item.linking);\n }\n if (typeof screenConfig.path === 'string') {\n screenConfig.path = screenConfig.path.replace(/^\\//, '').replace(/\\/$/, '');\n }\n }\n var screens;\n var skipInitialDetectionInChild = skipInitialDetection || screenConfig.path != null && screenConfig.path !== '';\n if ('config' in item) {\n screens = _createPathConfigForTree(item, undefined, skipInitialDetectionInChild);\n } else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {\n screens = _createPathConfigForTree(item.screen, undefined, skipInitialDetectionInChild);\n }\n if (screens) {\n screenConfig.screens = screens;\n }\n if (auto && !screenConfig.screens && !('linking' in item && item.linking == null)) {\n if (screenConfig.path != null) {\n if (!skipInitialDetection && screenConfig.path === '') {\n initialScreenConfig = undefined;\n }\n } else {\n if (!skipInitialDetection && initialScreenConfig == null) {\n initialScreenConfig = screenConfig;\n }\n screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();\n }\n }\n return [key, screenConfig];\n }).filter(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 2),\n screen = _ref12[1];\n return Object.keys(screen).length > 0;\n }));\n };\n var screens = {};\n for (var key in t.config) {\n if (key === 'screens' && t.config.screens) {\n var _o$initialRouteName;\n Object.assign(screens, createPathConfigForScreens(t.config.screens, (_o$initialRouteName = o == null ? void 0 : o.initialRouteName) != null ? _o$initialRouteName : t.config.initialRouteName));\n }\n if (key === 'groups' && t.config.groups) {\n Object.entries(t.config.groups).forEach(function (_ref13) {\n var _o$initialRouteName2;\n var _ref14 = _slicedToArray(_ref13, 2),\n group = _ref14[1];\n Object.assign(screens, createPathConfigForScreens(group.screens, (_o$initialRouteName2 = o == null ? void 0 : o.initialRouteName) != null ? _o$initialRouteName2 : t.config.initialRouteName));\n });\n }\n }\n if (Object.keys(screens).length === 0) {\n return undefined;\n }\n return screens;\n };\n var screens = _createPathConfigForTree(tree, options, false);\n if (auto && initialScreenConfig) {\n initialScreenConfig.path = '';\n }\n return screens;\n}","map":{"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","_ref","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","_ref2","_ref3","_slicedToArray","name","item","props","useIf","isNavigator","screen","_if","if","rest","_objectWithoutProperties","_excluded","createComponentForStaticNavigation","Error","element","shouldRender","_objectSpread","tree","Navigator","Group","config","groups","_excluded2","items","key","push","apply","_toConsumableArray","_ref5","_ref6","_ref4","group","_excluded3","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","_ref7","_ref8","_ref9","a","_ref0","b","_ref1","_ref10","screenConfig","linking","path","assign","replace","skipInitialDetectionInChild","undefined","toLowerCase","filter","_ref11","_ref12","keys","length","_o$initialRouteName","forEach","_ref13","_o$initialRouteName2","_ref14"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/StaticNavigation.tsx"],"sourcesContent":["import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\n\nimport type {\n DefaultNavigatorOptions,\n EventMapBase,\n NavigationListBase,\n NavigatorScreenParams,\n NavigatorTypeBagBase,\n PathConfig,\n RouteConfigComponent,\n RouteConfigProps,\n RouteGroupConfig,\n} from './types';\nimport { useRoute } from './useRoute';\n\n/**\n * Flatten a type to remove all type alias names, unions etc.\n * This will show a plain object when hovering over the type.\n */\ntype FlatType<T> = { [K in keyof T]: T[K] } & {};\n\n/**\n * keyof T doesn't work for union types. We can use distributive conditional types instead.\n * https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types\n */\ntype KeysOf<T> = T extends {} ? keyof T : never;\n\n/**\n * We get a union type when using keyof, but we want an intersection instead.\n * https://stackoverflow.com/a/50375286/1665026\n */\ntype UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (\n k: infer I\n) => void\n ? I\n : never;\n\ntype UnknownToUndefined<T> = unknown extends T ? undefined : T;\n\ntype ParamsForScreenComponent<T> = T extends {\n screen: React.ComponentType<{ route: { params: infer P } }>;\n}\n ? P\n : T extends React.ComponentType<{ route: { params: infer P } }>\n ? P\n : undefined;\n\ntype ParamsForScreen<T> = T extends { screen: StaticNavigation<any, any, any> }\n ? NavigatorScreenParams<StaticParamList<T['screen']>> | undefined\n : T extends StaticNavigation<any, any, any>\n ? NavigatorScreenParams<StaticParamList<T>> | undefined\n : UnknownToUndefined<ParamsForScreenComponent<T>>;\n\ntype ParamListForScreens<Screens> = {\n [Key in KeysOf<Screens>]: ParamsForScreen<Screens[Key]>;\n};\n\ntype ParamListForGroups<\n Groups extends\n | Readonly<{\n [key: string]: {\n screens: StaticConfigScreens<\n ParamListBase,\n NavigationState,\n {},\n EventMapBase,\n any\n >;\n };\n }>\n | undefined,\n> = Groups extends {\n [key: string]: {\n screens: StaticConfigScreens<\n ParamListBase,\n NavigationState,\n {},\n EventMapBase,\n any\n >;\n };\n}\n ? ParamListForScreens<UnionToIntersection<Groups[keyof Groups]['screens']>>\n : {};\n\ntype StaticRouteConfig<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n Navigation,\n> = RouteConfigProps<\n ParamList,\n RouteName,\n State,\n ScreenOptions,\n EventMap,\n Navigation\n> &\n RouteConfigComponent<ParamList, RouteName>;\n\nexport type StaticConfigScreens<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigationList extends NavigationListBase<ParamList>,\n> = {\n [RouteName in keyof ParamList]:\n | React.ComponentType<any>\n | StaticNavigation<any, any, any>\n | (Omit<\n StaticRouteConfig<\n ParamList,\n RouteName,\n State,\n ScreenOptions,\n EventMap,\n NavigationList[RouteName]\n >,\n 'name' | 'component' | 'getComponent' | 'children'\n > & {\n /**\n * Callback to determine whether the screen should be rendered or not.\n * This can be useful for conditional rendering of screens,\n * e.g. - if you want to render a different screen for logged in users.\n *\n * You can use a custom hook to use custom logic to determine the return value.\n *\n * @example\n * ```js\n * if: useIsLoggedIn\n * ```\n */\n if?: () => boolean;\n /**\n * Linking config for the screen.\n * This can be a string to specify the path, or an object with more options.\n *\n * @example\n * ```js\n * linking: {\n * path: 'profile/:id',\n * exact: true,\n * },\n * ```\n */\n linking?: PathConfig<ParamList> | string;\n /**\n * Static navigation config or Component to render for the screen.\n */\n screen: StaticNavigation<any, any, any> | React.ComponentType<any>;\n });\n};\n\nexport type StaticConfigGroup<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigationList extends NavigationListBase<ParamList>,\n> = Omit<\n RouteGroupConfig<ParamList, ScreenOptions, NavigationList[keyof ParamList]>,\n 'screens' | 'children'\n> & {\n /**\n * Callback to determine whether the screens in the group should be rendered or not.\n * This can be useful for conditional rendering of group of screens.\n */\n if?: () => boolean;\n /**\n * Static navigation config or Component to render for the screen.\n */\n screens: StaticConfigScreens<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n NavigationList\n >;\n};\n\nexport type StaticConfig<Bag extends NavigatorTypeBagBase> =\n StaticConfigInternal<\n Bag['ParamList'],\n Bag['NavigatorID'],\n Bag['State'],\n Bag['ScreenOptions'],\n Bag['EventMap'],\n Bag['NavigationList'],\n Bag['Navigator']\n >;\n\ntype StaticConfigInternal<\n ParamList extends ParamListBase,\n NavigatorID extends string | undefined,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigationList extends NavigationListBase<ParamList>,\n Navigator extends React.ComponentType<any>,\n> = Omit<\n Omit<\n React.ComponentProps<Navigator>,\n keyof DefaultNavigatorOptions<\n ParamListBase,\n string | undefined,\n NavigationState,\n {},\n EventMapBase,\n NavigationList[keyof ParamList]\n >\n > &\n DefaultNavigatorOptions<\n ParamList,\n NavigatorID,\n State,\n ScreenOptions,\n EventMap,\n NavigationList[keyof ParamList]\n >,\n 'screens' | 'children'\n> &\n (\n | {\n /**\n * Screens to render in the navigator and their configuration.\n */\n screens: StaticConfigScreens<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n NavigationList\n >;\n /**\n * Groups of screens to render in the navigator and their configuration.\n */\n groups?: {\n [key: string]: StaticConfigGroup<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n NavigationList\n >;\n };\n }\n | {\n /**\n * Screens to render in the navigator and their configuration.\n */\n screens?: StaticConfigScreens<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n NavigationList\n >;\n /**\n * Groups of screens to render in the navigator and their configuration.\n */\n groups: {\n [key: string]: StaticConfigGroup<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n NavigationList\n >;\n };\n }\n );\n\n/**\n * Props for a screen component which is rendered by a static navigator.\n * Takes the route params as a generic argument.\n */\nexport type StaticScreenProps<T extends Record<string, unknown> | undefined> = {\n route: {\n params: T;\n };\n};\n\n/**\n * Infer the param list from the static navigation config.\n */\nexport type StaticParamList<\n T extends {\n readonly config: {\n readonly screens?: Record<string, any>;\n readonly groups?: {\n [key: string]: {\n screens: Record<string, any>;\n };\n };\n };\n },\n> = FlatType<\n ParamListForScreens<T['config']['screens']> &\n ParamListForGroups<T['config']['groups']>\n>;\n\nexport type StaticNavigation<NavigatorProps, GroupProps, ScreenProps> = {\n Navigator: React.ComponentType<NavigatorProps>;\n Group: React.ComponentType<GroupProps>;\n Screen: React.ComponentType<ScreenProps>;\n config: StaticConfig<NavigatorTypeBagBase>;\n};\n\nconst MemoizedScreen = React.memo(\n <T extends React.ComponentType<any>>({ component }: { component: T }) => {\n const route = useRoute();\n const children = React.createElement(component, { route });\n\n return children;\n }\n);\n\nMemoizedScreen.displayName = 'Memo(Screen)';\n\nconst getItemsFromScreens = (\n Screen: React.ComponentType<any>,\n screens: StaticConfigScreens<any, any, any, any, any>\n) => {\n return Object.entries(screens).map(([name, item]) => {\n let component: React.ComponentType<any> | undefined;\n let props: {} = {};\n let useIf: (() => boolean) | undefined;\n\n let isNavigator = false;\n\n if ('screen' in item) {\n const { screen, if: _if, ...rest } = item;\n\n useIf = _if;\n props = rest;\n\n if (isValidElementType(screen)) {\n component = screen;\n } else if ('config' in screen) {\n isNavigator = true;\n component = createComponentForStaticNavigation(\n screen,\n `${name}Navigator`\n );\n }\n } else if (isValidElementType(item)) {\n component = item;\n } else if ('config' in item) {\n isNavigator = true;\n component = createComponentForStaticNavigation(item, `${name}Navigator`);\n }\n\n if (component == null) {\n throw new Error(\n `Couldn't find a 'screen' property for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`\n );\n }\n\n const element = isNavigator ? (\n React.createElement(component, {})\n ) : (\n <MemoizedScreen component={component} />\n );\n\n return () => {\n const shouldRender = useIf == null || useIf();\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <Screen key={name} name={name} {...props}>\n {() => element}\n </Screen>\n );\n };\n });\n};\n\n/**\n * Create a component that renders a navigator based on the static configuration.\n *\n * @param tree Static navigation config.\n * @param displayName Name of the component to be displayed in React DevTools.\n * @returns A component which renders the navigator.\n */\nexport function createComponentForStaticNavigation(\n tree: StaticNavigation<any, any, any>,\n displayName: string\n): React.ComponentType<{}> {\n const { Navigator, Group, Screen, config } = tree;\n const { screens, groups, ...rest } = config;\n\n if (screens == null && groups == null) {\n throw new Error(\n \"Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.\"\n );\n }\n\n const items: (() => React.JSX.Element | null)[] = [];\n\n // Loop through the config to find screens and groups\n // So we add the screens and groups in the same order as they are defined\n for (const key in config) {\n if (key === 'screens' && screens) {\n items.push(...getItemsFromScreens(Screen, screens));\n }\n\n if (key === 'groups' && groups) {\n items.push(\n ...Object.entries(groups).map(([key, { if: useIf, ...group }]) => {\n const groupItems = getItemsFromScreens(Screen, group.screens);\n\n return () => {\n // Call unconditionally since screen configs may contain `useIf` hooks\n const children = groupItems.map((item) => item());\n\n const shouldRender = useIf == null || useIf();\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <Group key={key} navigationKey={key} {...group}>\n {children}\n </Group>\n );\n };\n })\n );\n }\n }\n\n const NavigatorComponent = () => {\n const children = items.map((item) => item());\n\n return <Navigator {...rest}>{children}</Navigator>;\n };\n\n NavigatorComponent.displayName = displayName;\n\n return NavigatorComponent;\n}\n\ntype TreeForPathConfig = {\n config: {\n initialRouteName?: string;\n screens?: StaticConfigScreens<\n ParamListBase,\n NavigationState,\n {},\n EventMapBase,\n Record<string, unknown>\n >;\n groups?: {\n [key: string]: {\n screens: StaticConfigScreens<\n ParamListBase,\n NavigationState,\n {},\n EventMapBase,\n Record<string, unknown>\n >;\n };\n };\n };\n};\n\n/**\n * Create a path config object from a static navigation config for deep linking.\n *\n * @param tree Static navigation config.\n * @param options Additional options from `linking.config`.\n * @param auto Whether to automatically generate paths for leaf screens.\n * @returns Path config object to use in linking config.\n *\n * @example\n * ```js\n * const config = {\n * screens: {\n * Home: {\n * screens: createPathConfigForStaticNavigation(HomeTabs),\n * },\n * },\n * };\n * ```\n */\nexport function createPathConfigForStaticNavigation(\n tree: TreeForPathConfig,\n options?: {\n initialRouteName?: string;\n },\n auto?: boolean\n) {\n let initialScreenConfig: PathConfig<ParamListBase> | undefined;\n\n const createPathConfigForTree = (\n t: TreeForPathConfig,\n o: { initialRouteName?: string } | undefined,\n // If a screen is a leaf node, but inside a screen with path,\n // It should not be used for initial detection\n skipInitialDetection: boolean\n ) => {\n const createPathConfigForScreens = (\n screens: StaticConfigScreens<\n ParamListBase,\n NavigationState,\n {},\n EventMapBase,\n Record<string, unknown>\n >,\n initialRouteName: string | undefined\n ) => {\n return Object.fromEntries(\n Object.entries(screens)\n // Re-order to move the initial route to the front\n // This way we can detect the initial route correctly\n .sort(([a], [b]) => {\n if (a === initialRouteName) {\n return -1;\n }\n\n if (b === initialRouteName) {\n return 1;\n }\n\n return 0;\n })\n .map(([key, item]) => {\n const screenConfig: PathConfig<ParamListBase> = {};\n\n if ('linking' in item) {\n if (typeof item.linking === 'string') {\n screenConfig.path = item.linking;\n } else {\n Object.assign(screenConfig, item.linking);\n }\n\n if (typeof screenConfig.path === 'string') {\n screenConfig.path = screenConfig.path\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\/$/, ''); // Remove extra trailing slash\n }\n }\n\n let screens;\n\n const skipInitialDetectionInChild =\n skipInitialDetection ||\n (screenConfig.path != null && screenConfig.path !== '');\n\n if ('config' in item) {\n screens = createPathConfigForTree(\n item,\n undefined,\n skipInitialDetectionInChild\n );\n } else if (\n 'screen' in item &&\n 'config' in item.screen &&\n (item.screen.config.screens || item.screen.config.groups)\n ) {\n screens = createPathConfigForTree(\n item.screen,\n undefined,\n skipInitialDetectionInChild\n );\n }\n\n if (screens) {\n screenConfig.screens = screens;\n }\n\n if (\n auto &&\n !screenConfig.screens &&\n // Skip generating path for screens that specify linking config as `undefined` or `null` explicitly\n !('linking' in item && item.linking == null)\n ) {\n if (screenConfig.path != null) {\n if (!skipInitialDetection && screenConfig.path === '') {\n // We encounter a leaf screen with empty path,\n // Clear the initial screen config as it's not needed anymore\n initialScreenConfig = undefined;\n }\n } else {\n if (!skipInitialDetection && initialScreenConfig == null) {\n initialScreenConfig = screenConfig;\n }\n\n screenConfig.path = key\n .replace(/([A-Z]+)/g, '-$1')\n .replace(/^-/, '')\n .toLowerCase();\n }\n }\n\n return [key, screenConfig] as const;\n })\n .filter(([, screen]) => Object.keys(screen).length > 0)\n );\n };\n\n const screens = {};\n\n // Loop through the config to find screens and groups\n // So we add the screens and groups in the same order as they are defined\n for (const key in t.config) {\n if (key === 'screens' && t.config.screens) {\n Object.assign(\n screens,\n createPathConfigForScreens(\n t.config.screens,\n o?.initialRouteName ?? t.config.initialRouteName\n )\n );\n }\n\n if (key === 'groups' && t.config.groups) {\n Object.entries(t.config.groups).forEach(([, group]) => {\n Object.assign(\n screens,\n createPathConfigForScreens(\n group.screens,\n o?.initialRouteName ?? t.config.initialRouteName\n )\n );\n });\n }\n }\n\n if (Object.keys(screens).length === 0) {\n return undefined;\n }\n\n return screens;\n };\n\n const screens = createPathConfigForTree(tree, options, false);\n\n if (auto && initialScreenConfig) {\n initialScreenConfig.path = '';\n }\n\n return screens;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}