1 line
19 KiB
JSON
1 line
19 KiB
JSON
{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/ETB/ETB-FrontEnd/src/components/Auth/AuthContext.tsx\",\n _s = $RefreshSig$(),\n _s2 = $RefreshSig$();\nimport React, { createContext, useContext, useState, useEffect } from 'react';\n\n// Type definitions\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst AuthContext = /*#__PURE__*/createContext(undefined);\nexport const useAuth = () => {\n _s();\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n\n// Role definitions with permissions\n_s(useAuth, \"b9L3QQ+jgeyIrH0NfHrJ8nn7VMU=\");\nexport const ROLES = {\n ADMIN: {\n name: 'Admin',\n permissions: ['*'],\n // All permissions\n modules: ['*'],\n // All modules\n color: '#d32f2f'\n },\n IT_STAFF: {\n name: 'IT Staff',\n permissions: ['incident.create', 'incident.edit', 'incident.assign', 'incident.resolve', 'problem.create', 'problem.edit', 'problem.assign', 'change.create', 'change.edit', 'change.approve', 'knowledge.create', 'knowledge.edit', 'cmdb.view', 'cmdb.edit'],\n modules: ['incident', 'problem', 'change', 'knowledge', 'cmdb'],\n color: '#1976d2'\n },\n MANAGER: {\n name: 'Manager',\n permissions: ['incident.view', 'incident.assign', 'incident.escalate', 'problem.view', 'problem.assign', 'change.view', 'change.approve', 'reporting.view', 'reporting.export', 'knowledge.view', 'executive.view'],\n modules: ['incident', 'problem', 'change', 'reporting', 'knowledge'],\n color: '#388e3c'\n },\n END_USER: {\n name: 'End User',\n permissions: ['incident.create', 'incident.view_own', 'selfservice.view', 'selfservice.create_request', 'knowledge.view'],\n modules: ['selfservice', 'knowledge'],\n color: '#f57c00'\n },\n AUDITOR: {\n name: 'Auditor',\n permissions: ['audit.view', 'audit.export', 'reporting.view', 'reporting.export', 'compliance.view'],\n modules: ['audit', 'reporting', 'compliance'],\n color: '#7b1fa2'\n }\n};\n\n// Mock user data\nconst mockUsers = [{\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null\n}, {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null\n}, {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null\n}, {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null\n}, {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null\n}];\nexport const AuthProvider = ({\n children\n}) => {\n _s2();\n const [user, setUser] = useState(null);\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n // Simulate checking for existing session\n const savedUser = localStorage.getItem('etb_user');\n if (savedUser) {\n setUser(JSON.parse(savedUser));\n }\n setLoading(false);\n }, []);\n const login = async (username, password) => {\n setLoading(true);\n try {\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 1000));\n const foundUser = mockUsers.find(u => u.username === username);\n if (foundUser) {\n const userWithRole = {\n ...foundUser,\n roleData: ROLES[foundUser.role]\n };\n setUser(userWithRole);\n localStorage.setItem('etb_user', JSON.stringify(userWithRole));\n return {\n success: true,\n user: userWithRole\n };\n } else {\n return {\n success: false,\n error: 'Invalid credentials'\n };\n }\n } catch (error) {\n return {\n success: false,\n error: 'Login failed'\n };\n } finally {\n setLoading(false);\n }\n };\n const logout = () => {\n setUser(null);\n localStorage.removeItem('etb_user');\n };\n const hasPermission = permission => {\n var _user$roleData, _user$roleData2;\n if (!user) return false;\n if ((_user$roleData = user.roleData) !== null && _user$roleData !== void 0 && _user$roleData.permissions.includes('*')) return true;\n return ((_user$roleData2 = user.roleData) === null || _user$roleData2 === void 0 ? void 0 : _user$roleData2.permissions.includes(permission)) || false;\n };\n const hasModuleAccess = module => {\n var _user$roleData3, _user$roleData4;\n if (!user) return false;\n if ((_user$roleData3 = user.roleData) !== null && _user$roleData3 !== void 0 && _user$roleData3.modules.includes('*')) return true;\n return ((_user$roleData4 = user.roleData) === null || _user$roleData4 === void 0 ? void 0 : _user$roleData4.modules.includes(module)) || false;\n };\n const canAccessRoute = route => {\n if (!user) return false;\n\n // Map routes to modules\n const routeModuleMap = {\n '/incident-management': 'incident',\n '/problem-management': 'problem',\n '/change-management': 'change',\n '/service-catalog': 'selfservice',\n '/cmdb': 'cmdb',\n '/knowledge-management': 'knowledge',\n '/reporting': 'reporting',\n '/security': 'compliance',\n '/automation': 'automation',\n '/admin': 'admin'\n };\n const module = routeModuleMap[route];\n return hasModuleAccess(module);\n };\n const value = {\n user,\n login,\n logout,\n loading,\n hasPermission,\n hasModuleAccess,\n canAccessRoute,\n ROLES\n };\n return /*#__PURE__*/_jsxDEV(AuthContext.Provider, {\n value: value,\n children: children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 251,\n columnNumber: 5\n }, this);\n};\n_s2(AuthProvider, \"NiO5z6JIqzX62LS5UWDgIqbZYyY=\");\n_c = AuthProvider;\nvar _c;\n$RefreshReg$(_c, \"AuthProvider\");","map":{"version":3,"names":["React","createContext","useContext","useState","useEffect","jsxDEV","_jsxDEV","AuthContext","undefined","useAuth","_s","context","Error","ROLES","ADMIN","name","permissions","modules","color","IT_STAFF","MANAGER","END_USER","AUDITOR","mockUsers","id","username","email","role","department","lastLogin","status","avatar","AuthProvider","children","_s2","user","setUser","loading","setLoading","savedUser","localStorage","getItem","JSON","parse","login","password","Promise","resolve","setTimeout","foundUser","find","u","userWithRole","roleData","setItem","stringify","success","error","logout","removeItem","hasPermission","permission","_user$roleData","_user$roleData2","includes","hasModuleAccess","module","_user$roleData3","_user$roleData4","canAccessRoute","route","routeModuleMap","value","Provider","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/components/Auth/AuthContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\n// Type definitions\nexport interface User {\n id: number;\n username: string;\n email: string;\n name: string;\n role: keyof typeof ROLES;\n department: string;\n lastLogin: string;\n status: string;\n avatar: string | null;\n roleData?: RoleData;\n}\n\nexport interface RoleData {\n name: string;\n permissions: string[];\n modules: string[];\n color: string;\n}\n\nexport interface AuthContextType {\n user: User | null;\n login: (username: string, password: string) => Promise<{ success: boolean; user?: User; error?: string }>;\n logout: () => void;\n loading: boolean;\n hasPermission: (permission: string) => boolean;\n hasModuleAccess: (module: string) => boolean;\n canAccessRoute: (route: string) => boolean;\n ROLES: typeof ROLES;\n}\n\nconst AuthContext = createContext<AuthContextType | undefined>(undefined);\n\nexport const useAuth = (): AuthContextType => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n\n// Role definitions with permissions\nexport const ROLES = {\n ADMIN: {\n name: 'Admin',\n permissions: ['*'], // All permissions\n modules: ['*'], // All modules\n color: '#d32f2f'\n },\n IT_STAFF: {\n name: 'IT Staff',\n permissions: [\n 'incident.create', 'incident.edit', 'incident.assign', 'incident.resolve',\n 'problem.create', 'problem.edit', 'problem.assign',\n 'change.create', 'change.edit', 'change.approve',\n 'knowledge.create', 'knowledge.edit',\n 'cmdb.view', 'cmdb.edit'\n ],\n modules: ['incident', 'problem', 'change', 'knowledge', 'cmdb'],\n color: '#1976d2'\n },\n MANAGER: {\n name: 'Manager',\n permissions: [\n 'incident.view', 'incident.assign', 'incident.escalate',\n 'problem.view', 'problem.assign',\n 'change.view', 'change.approve',\n 'reporting.view', 'reporting.export',\n 'knowledge.view',\n 'executive.view'\n ],\n modules: ['incident', 'problem', 'change', 'reporting', 'knowledge'],\n color: '#388e3c'\n },\n END_USER: {\n name: 'End User',\n permissions: [\n 'incident.create', 'incident.view_own',\n 'selfservice.view', 'selfservice.create_request',\n 'knowledge.view'\n ],\n modules: ['selfservice', 'knowledge'],\n color: '#f57c00'\n },\n AUDITOR: {\n name: 'Auditor',\n permissions: [\n 'audit.view', 'audit.export',\n 'reporting.view', 'reporting.export',\n 'compliance.view'\n ],\n modules: ['audit', 'reporting', 'compliance'],\n color: '#7b1fa2'\n }\n};\n\n// Mock user data\nconst mockUsers: User[] = [\n {\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null\n },\n {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null\n },\n {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null\n },\n {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null\n },\n {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null\n }\n];\n\ninterface AuthProviderProps {\n children: ReactNode;\n}\n\nexport const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {\n const [user, setUser] = useState<User | null>(null);\n const [loading, setLoading] = useState<boolean>(true);\n\n useEffect(() => {\n // Simulate checking for existing session\n const savedUser = localStorage.getItem('etb_user');\n if (savedUser) {\n setUser(JSON.parse(savedUser));\n }\n setLoading(false);\n }, []);\n\n const login = async (username: string, password: string): Promise<{ success: boolean; user?: User; error?: string }> => {\n setLoading(true);\n try {\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 1000));\n \n const foundUser = mockUsers.find(u => u.username === username);\n if (foundUser) {\n const userWithRole = {\n ...foundUser,\n roleData: ROLES[foundUser.role]\n };\n setUser(userWithRole);\n localStorage.setItem('etb_user', JSON.stringify(userWithRole));\n return { success: true, user: userWithRole };\n } else {\n return { success: false, error: 'Invalid credentials' };\n }\n } catch (error) {\n return { success: false, error: 'Login failed' };\n } finally {\n setLoading(false);\n }\n };\n\n const logout = (): void => {\n setUser(null);\n localStorage.removeItem('etb_user');\n };\n\n const hasPermission = (permission: string): boolean => {\n if (!user) return false;\n if (user.roleData?.permissions.includes('*')) return true;\n return user.roleData?.permissions.includes(permission) || false;\n };\n\n const hasModuleAccess = (module: string): boolean => {\n if (!user) return false;\n if (user.roleData?.modules.includes('*')) return true;\n return user.roleData?.modules.includes(module) || false;\n };\n\n const canAccessRoute = (route: string): boolean => {\n if (!user) return false;\n \n // Map routes to modules\n const routeModuleMap = {\n '/incident-management': 'incident',\n '/problem-management': 'problem',\n '/change-management': 'change',\n '/service-catalog': 'selfservice',\n '/cmdb': 'cmdb',\n '/knowledge-management': 'knowledge',\n '/reporting': 'reporting',\n '/security': 'compliance',\n '/automation': 'automation',\n '/admin': 'admin'\n };\n\n const module = routeModuleMap[route];\n return hasModuleAccess(module);\n };\n\n const value = {\n user,\n login,\n logout,\n loading,\n hasPermission,\n hasModuleAccess,\n canAccessRoute,\n ROLES\n };\n\n return (\n <AuthContext.Provider value={value}>\n {children}\n </AuthContext.Provider>\n );\n};\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,QAAmB,OAAO;;AAExF;AAAA,SAAAC,MAAA,IAAAC,OAAA;AAgCA,MAAMC,WAAW,gBAAGN,aAAa,CAA8BO,SAAS,CAAC;AAEzE,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAuB;EAAAC,EAAA;EAC5C,MAAMC,OAAO,GAAGT,UAAU,CAACK,WAAW,CAAC;EACvC,IAAI,CAACI,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;EAChE;EACA,OAAOD,OAAO;AAChB,CAAC;;AAED;AAAAD,EAAA,CARaD,OAAO;AASpB,OAAO,MAAMI,KAAK,GAAG;EACnBC,KAAK,EAAE;IACLC,IAAI,EAAE,OAAO;IACbC,WAAW,EAAE,CAAC,GAAG,CAAC;IAAE;IACpBC,OAAO,EAAE,CAAC,GAAG,CAAC;IAAE;IAChBC,KAAK,EAAE;EACT,CAAC;EACDC,QAAQ,EAAE;IACRJ,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,CACX,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EACzE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAClD,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAChD,kBAAkB,EAAE,gBAAgB,EACpC,WAAW,EAAE,WAAW,CACzB;IACDC,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;IAC/DC,KAAK,EAAE;EACT,CAAC;EACDE,OAAO,EAAE;IACPL,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,CACX,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EACvD,cAAc,EAAE,gBAAgB,EAChC,aAAa,EAAE,gBAAgB,EAC/B,gBAAgB,EAAE,kBAAkB,EACpC,gBAAgB,EAChB,gBAAgB,CACjB;IACDC,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;IACpEC,KAAK,EAAE;EACT,CAAC;EACDG,QAAQ,EAAE;IACRN,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,CACX,iBAAiB,EAAE,mBAAmB,EACtC,kBAAkB,EAAE,4BAA4B,EAChD,gBAAgB,CACjB;IACDC,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IACrCC,KAAK,EAAE;EACT,CAAC;EACDI,OAAO,EAAE;IACPP,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,CACX,YAAY,EAAE,cAAc,EAC5B,gBAAgB,EAAE,kBAAkB,EACpC,iBAAiB,CAClB;IACDC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;IAC7CC,KAAK,EAAE;EACT;AACF,CAAC;;AAED;AACA,MAAMK,SAAiB,GAAG,CACxB;EACEC,EAAE,EAAE,CAAC;EACLC,QAAQ,EAAE,OAAO;EACjBC,KAAK,EAAE,mBAAmB;EAC1BX,IAAI,EAAE,sBAAsB;EAC5BY,IAAI,EAAE,OAAO;EACbC,UAAU,EAAE,IAAI;EAChBC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC,EACD;EACEP,EAAE,EAAE,CAAC;EACLC,QAAQ,EAAE,YAAY;EACtBC,KAAK,EAAE,wBAAwB;EAC/BX,IAAI,EAAE,YAAY;EAClBY,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,gBAAgB;EAC5BC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC,EACD;EACEP,EAAE,EAAE,CAAC;EACLC,QAAQ,EAAE,eAAe;EACzBC,KAAK,EAAE,2BAA2B;EAClCX,IAAI,EAAE,eAAe;EACrBY,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,eAAe;EAC3BC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC,EACD;EACEP,EAAE,EAAE,CAAC;EACLC,QAAQ,EAAE,YAAY;EACtBC,KAAK,EAAE,wBAAwB;EAC/BX,IAAI,EAAE,YAAY;EAClBY,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC,EACD;EACEP,EAAE,EAAE,CAAC;EACLC,QAAQ,EAAE,aAAa;EACvBC,KAAK,EAAE,yBAAyB;EAChCX,IAAI,EAAE,aAAa;EACnBY,IAAI,EAAE,UAAU;EAChBC,UAAU,EAAE,IAAI;EAChBC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC,CACF;AAMD,OAAO,MAAMC,YAAyC,GAAGA,CAAC;EAAEC;AAAS,CAAC,KAAK;EAAAC,GAAA;EACzE,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGjC,QAAQ,CAAc,IAAI,CAAC;EACnD,MAAM,CAACkC,OAAO,EAAEC,UAAU,CAAC,GAAGnC,QAAQ,CAAU,IAAI,CAAC;EAErDC,SAAS,CAAC,MAAM;IACd;IACA,MAAMmC,SAAS,GAAGC,YAAY,CAACC,OAAO,CAAC,UAAU,CAAC;IAClD,IAAIF,SAAS,EAAE;MACbH,OAAO,CAACM,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAC,CAAC;IAChC;IACAD,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMM,KAAK,GAAG,MAAAA,CAAOnB,QAAgB,EAAEoB,QAAgB,KAAiE;IACtHP,UAAU,CAAC,IAAI,CAAC;IAChB,IAAI;MACF;MACA,MAAM,IAAIQ,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,IAAI,CAAC,CAAC;MAEvD,MAAME,SAAS,GAAG1B,SAAS,CAAC2B,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC1B,QAAQ,KAAKA,QAAQ,CAAC;MAC9D,IAAIwB,SAAS,EAAE;QACb,MAAMG,YAAY,GAAG;UACnB,GAAGH,SAAS;UACZI,QAAQ,EAAExC,KAAK,CAACoC,SAAS,CAACtB,IAAI;QAChC,CAAC;QACDS,OAAO,CAACgB,YAAY,CAAC;QACrBZ,YAAY,CAACc,OAAO,CAAC,UAAU,EAAEZ,IAAI,CAACa,SAAS,CAACH,YAAY,CAAC,CAAC;QAC9D,OAAO;UAAEI,OAAO,EAAE,IAAI;UAAErB,IAAI,EAAEiB;QAAa,CAAC;MAC9C,CAAC,MAAM;QACL,OAAO;UAAEI,OAAO,EAAE,KAAK;UAAEC,KAAK,EAAE;QAAsB,CAAC;MACzD;IACF,CAAC,CAAC,OAAOA,KAAK,EAAE;MACd,OAAO;QAAED,OAAO,EAAE,KAAK;QAAEC,KAAK,EAAE;MAAe,CAAC;IAClD,CAAC,SAAS;MACRnB,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC;EAED,MAAMoB,MAAM,GAAGA,CAAA,KAAY;IACzBtB,OAAO,CAAC,IAAI,CAAC;IACbI,YAAY,CAACmB,UAAU,CAAC,UAAU,CAAC;EACrC,CAAC;EAED,MAAMC,aAAa,GAAIC,UAAkB,IAAc;IAAA,IAAAC,cAAA,EAAAC,eAAA;IACrD,IAAI,CAAC5B,IAAI,EAAE,OAAO,KAAK;IACvB,KAAA2B,cAAA,GAAI3B,IAAI,CAACkB,QAAQ,cAAAS,cAAA,eAAbA,cAAA,CAAe9C,WAAW,CAACgD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;IACzD,OAAO,EAAAD,eAAA,GAAA5B,IAAI,CAACkB,QAAQ,cAAAU,eAAA,uBAAbA,eAAA,CAAe/C,WAAW,CAACgD,QAAQ,CAACH,UAAU,CAAC,KAAI,KAAK;EACjE,CAAC;EAED,MAAMI,eAAe,GAAIC,MAAc,IAAc;IAAA,IAAAC,eAAA,EAAAC,eAAA;IACnD,IAAI,CAACjC,IAAI,EAAE,OAAO,KAAK;IACvB,KAAAgC,eAAA,GAAIhC,IAAI,CAACkB,QAAQ,cAAAc,eAAA,eAAbA,eAAA,CAAelD,OAAO,CAAC+C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;IACrD,OAAO,EAAAI,eAAA,GAAAjC,IAAI,CAACkB,QAAQ,cAAAe,eAAA,uBAAbA,eAAA,CAAenD,OAAO,CAAC+C,QAAQ,CAACE,MAAM,CAAC,KAAI,KAAK;EACzD,CAAC;EAED,MAAMG,cAAc,GAAIC,KAAa,IAAc;IACjD,IAAI,CAACnC,IAAI,EAAE,OAAO,KAAK;;IAEvB;IACA,MAAMoC,cAAc,GAAG;MACrB,sBAAsB,EAAE,UAAU;MAClC,qBAAqB,EAAE,SAAS;MAChC,oBAAoB,EAAE,QAAQ;MAC9B,kBAAkB,EAAE,aAAa;MACjC,OAAO,EAAE,MAAM;MACf,uBAAuB,EAAE,WAAW;MACpC,YAAY,EAAE,WAAW;MACzB,WAAW,EAAE,YAAY;MACzB,aAAa,EAAE,YAAY;MAC3B,QAAQ,EAAE;IACZ,CAAC;IAED,MAAML,MAAM,GAAGK,cAAc,CAACD,KAAK,CAAC;IACpC,OAAOL,eAAe,CAACC,MAAM,CAAC;EAChC,CAAC;EAED,MAAMM,KAAK,GAAG;IACZrC,IAAI;IACJS,KAAK;IACLc,MAAM;IACNrB,OAAO;IACPuB,aAAa;IACbK,eAAe;IACfI,cAAc;IACdxD;EACF,CAAC;EAED,oBACEP,OAAA,CAACC,WAAW,CAACkE,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAvC,QAAA,EAChCA;EAAQ;IAAAyC,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACW,CAAC;AAE3B,CAAC;AAAC3C,GAAA,CA5FWF,YAAyC;AAAA8C,EAAA,GAAzC9C,YAAyC;AAAA,IAAA8C,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |