{"version":3,"file":"sidebar.types.cjs","sources":["../../../src/types/sidebar.types.ts"],"sourcesContent":["/**\n * JSidebar 타입 정의\n * JSidebar Type Definitions\n */\n\n/** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\nexport type MenuType = 'F' | 'L'\n\n/**\n * 사이드바 메뉴 아이템 (DB J_마스터_프로그램 트리 매핑)\n */\nexport interface SidebarMenuItem {\n  /** 프로그램 아이디 */\n  id: string\n  /** 부모 아이디 */\n  parentId?: string\n  /** 메뉴 표시 이름 */\n  label: string\n  /** lucide 아이콘 이름 */\n  icon?: string\n  /** 라우트 경로 (L 타입만) */\n  path?: string\n  /** 메뉴 타입: F=폴더(그룹), L=링크(페이지) */\n  menuType: MenuType\n  /** 정렬 순서 */\n  sortOrder?: number\n  /** 하위 메뉴 (서버에서 트리로 변환) */\n  children?: SidebarMenuItem[]\n  /** 비활성화 여부 */\n  disabled?: boolean\n}\n\n/**\n * 사이드바 내부 상태 (provide/inject)\n */\nexport interface SidebarState {\n  /** 접힘 상태 */\n  collapsed: boolean\n  /** 현재 활성 경로 */\n  activePath: string | undefined\n  /** 즐겨찾기 id Set */\n  favorites: Set<string>\n  /** 즐겨찾기 토글 */\n  toggleFavorite: (id: string) => void\n}\n\n// Vue InjectionKey 타입을 위한 import\nimport type { InjectionKey } from 'vue'\n\n/** provide/inject 키 */\nexport const SIDEBAR_INJECTION_KEY = Symbol('sidebar-state') as InjectionKey<SidebarState>\n"],"names":["SIDEBAR_INJECTION_KEY"],"mappings":"gFAkDO,MAAMA,SAA+B,eAAe"}