{"version":3,"file":"utils.cjs","sources":["../../../src/lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\nimport type { MenuPermission } from '@/types/sidebar-menu.types'\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n  return twMerge(clsx(inputs))\r\n}\r\n\r\n/**\r\n * 메뉴 권한 체크 함수\r\n * Check if user has permission for a menu\r\n * \r\n * @param menuKey - 메뉴 키 (없거나 0 이하면 항상 허용)\r\n * @param permissions - 권한 목록\r\n * @returns 권한 있으면 true, 없으면 false\r\n * \r\n * @example\r\n * ```ts\r\n * const hasPermission = hasMenuPermission(1, [\r\n *   { menuKey: 1, permissionLevel: 2 },\r\n *   { menuKey: 2, permissionLevel: 1 }\r\n * ])\r\n * ```\r\n */\r\nexport function hasMenuPermission(\r\n  menuKey: number | undefined,\r\n  permissions: MenuPermission[] | undefined\r\n): boolean {\r\n  // menuKey가 없거나 0 이하면 항상 허용 (기본 메뉴)\r\n  if (!menuKey || menuKey <= 0) {\r\n    return true\r\n  }\r\n\r\n  // 권한 목록이 없으면 모두 허용\r\n  if (!permissions || permissions.length === 0) {\r\n    return true\r\n  }\r\n\r\n  // 권한 목록에서 해당 menuKey 찾기\r\n  // permissionLevel > 0 이면 권한 있는 것으로 판단\r\n  return permissions.some(\r\n    (p) => p.menuKey === menuKey && p.permissionLevel > 0\r\n  )\r\n}\r\n\r\n\r\n"],"names":["cn","inputs","twMerge","clsx","hasMenuPermission","menuKey","permissions","p"],"mappings":"oIAIO,SAASA,KAAMC,EAAsB,CAC1C,OAAOC,EAAAA,QAAQC,OAAKF,CAAM,CAAC,CAC7B,CAkBO,SAASG,EACdC,EACAC,EACS,CAOT,MALI,CAACD,GAAWA,GAAW,GAKvB,CAACC,GAAeA,EAAY,SAAW,EAClC,GAKFA,EAAY,KAChBC,GAAMA,EAAE,UAAYF,GAAWE,EAAE,gBAAkB,CAAA,CAExD"}