import { PHASE_1_COMPONENTS } from '../../router/adapters/backendMenuAdapter.js' const RELEASED_COMPONENT_PATHS = new Set(Object.values(PHASE_1_COMPONENTS)) function isIframe(url) { return url.startsWith('/outside/iframe/') } const isNavigableMenuItem = (menuItem) => { if (!menuItem.path || !menuItem.path.trim()) { return false } if (!menuItem.meta?.isHide) { return true } return menuItem.meta?.isFullPage === true } const normalizePath = (path) => { return path.startsWith('/') ? path : `/${path}` } const hasReleasedComponent = (menuItem) => { if (!menuItem || typeof menuItem !== 'object') { return false } const componentPath = typeof menuItem.component === 'string' ? menuItem.component.trim() : '' return RELEASED_COMPONENT_PATHS.has(componentPath) } const getFirstMenuPath = (menuList) => { if (!Array.isArray(menuList) || menuList.length === 0) { return '' } for (const menuItem of menuList) { if (!isNavigableMenuItem(menuItem)) { continue } if (menuItem.children?.length) { const childPath = getFirstMenuPath(menuItem.children) if (childPath) { return childPath } } if (hasReleasedComponent(menuItem)) { return normalizePath(menuItem.path) } } return '' } export { getFirstMenuPath, isIframe, isNavigableMenuItem }