Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/53cc84eca42d4b3c4716f15ab1fc5eb780c42d297ee9ba84ce5730ee02b003a3.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
18 KiB
JSON

{"ast":null,"code":"import _objectSpread from\"/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import React,{createContext,useContext,useState,useEffect}from'react';// Type definitions\nimport{jsx as _jsx}from\"react/jsx-runtime\";const AuthContext=/*#__PURE__*/createContext(undefined);export const useAuth=()=>{const context=useContext(AuthContext);if(!context){throw new Error('useAuth must be used within an AuthProvider');}return context;};// Role definitions with permissions\nexport const ROLES={ADMIN:{name:'Admin',permissions:['*'],// All permissions\nmodules:['*'],// All modules\ncolor:'#d32f2f'},IT_STAFF:{name:'IT Staff',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'],modules:['incident','problem','change','knowledge','cmdb'],color:'#1976d2'},MANAGER:{name:'Manager',permissions:['incident.view','incident.assign','incident.escalate','problem.view','problem.assign','change.view','change.approve','reporting.view','reporting.export','knowledge.view','executive.view'],modules:['incident','problem','change','reporting','knowledge'],color:'#388e3c'},END_USER:{name:'End User',permissions:['incident.create','incident.view_own','selfservice.view','selfservice.create_request','knowledge.view'],modules:['selfservice','knowledge'],color:'#f57c00'},AUDITOR:{name:'Auditor',permissions:['audit.view','audit.export','reporting.view','reporting.export','compliance.view'],modules:['audit','reporting','compliance'],color:'#7b1fa2'}};// Mock user data\nconst mockUsers=[{id:1,username:'admin',email:'admin@company.com',name:'System Administrator',role:'ADMIN',department:'IT',lastLogin:'2024-01-15 10:30',status:'active',avatar:null},{id:2,username:'john.smith',email:'john.smith@company.com',name:'John Smith',role:'IT_STAFF',department:'Infrastructure',lastLogin:'2024-01-15 09:45',status:'active',avatar:null},{id:3,username:'sarah.johnson',email:'sarah.johnson@company.com',name:'Sarah Johnson',role:'MANAGER',department:'IT Operations',lastLogin:'2024-01-15 08:20',status:'active',avatar:null},{id:4,username:'mike.davis',email:'mike.davis@company.com',name:'Mike Davis',role:'IT_STAFF',department:'Applications',lastLogin:'2024-01-14 16:30',status:'active',avatar:null},{id:5,username:'lisa.wilson',email:'lisa.wilson@company.com',name:'Lisa Wilson',role:'END_USER',department:'HR',lastLogin:'2024-01-15 11:15',status:'active',avatar:null}];export const AuthProvider=_ref=>{let{children}=_ref;const[user,setUser]=useState(null);const[loading,setLoading]=useState(true);useEffect(()=>{// Simulate checking for existing session\nconst savedUser=localStorage.getItem('etb_user');if(savedUser){setUser(JSON.parse(savedUser));}setLoading(false);},[]);const login=async(username,password)=>{setLoading(true);try{// Simulate API call\nawait new Promise(resolve=>setTimeout(resolve,1000));const foundUser=mockUsers.find(u=>u.username===username);if(foundUser){const userWithRole=_objectSpread(_objectSpread({},foundUser),{},{roleData:ROLES[foundUser.role]});setUser(userWithRole);localStorage.setItem('etb_user',JSON.stringify(userWithRole));return{success:true,user:userWithRole};}else{return{success:false,error:'Invalid credentials'};}}catch(error){return{success:false,error:'Login failed'};}finally{setLoading(false);}};const logout=()=>{setUser(null);localStorage.removeItem('etb_user');};const hasPermission=permission=>{var _user$roleData,_user$roleData2;if(!user)return false;if((_user$roleData=user.roleData)!==null&&_user$roleData!==void 0&&_user$roleData.permissions.includes('*'))return true;return((_user$roleData2=user.roleData)===null||_user$roleData2===void 0?void 0:_user$roleData2.permissions.includes(permission))||false;};const hasModuleAccess=module=>{var _user$roleData3,_user$roleData4;if(!user)return false;if((_user$roleData3=user.roleData)!==null&&_user$roleData3!==void 0&&_user$roleData3.modules.includes('*'))return true;return((_user$roleData4=user.roleData)===null||_user$roleData4===void 0?void 0:_user$roleData4.modules.includes(module))||false;};const canAccessRoute=route=>{if(!user)return false;// Map routes to modules\nconst routeModuleMap={'/incident-management':'incident','/problem-management':'problem','/change-management':'change','/service-catalog':'selfservice','/cmdb':'cmdb','/knowledge-management':'knowledge','/reporting':'reporting','/security':'compliance','/automation':'automation','/admin':'admin'};const module=routeModuleMap[route];return hasModuleAccess(module);};const value={user,login,logout,loading,hasPermission,hasModuleAccess,canAccessRoute,ROLES};return/*#__PURE__*/_jsx(AuthContext.Provider,{value:value,children:children});};","map":{"version":3,"names":["React","createContext","useContext","useState","useEffect","jsx","_jsx","AuthContext","undefined","useAuth","context","Error","ROLES","ADMIN","name","permissions","modules","color","IT_STAFF","MANAGER","END_USER","AUDITOR","mockUsers","id","username","email","role","department","lastLogin","status","avatar","AuthProvider","_ref","children","user","setUser","loading","setLoading","savedUser","localStorage","getItem","JSON","parse","login","password","Promise","resolve","setTimeout","foundUser","find","u","userWithRole","_objectSpread","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"],"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: string;\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 as keyof typeof ROLES]\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 as keyof typeof routeModuleMap];\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":"uHAAA,MAAO,CAAAA,KAAK,EAAIC,aAAa,CAAEC,UAAU,CAAEC,QAAQ,CAAEC,SAAS,KAAmB,OAAO,CAExF;AAAA,OAAAC,GAAA,IAAAC,IAAA,yBAgCA,KAAM,CAAAC,WAAW,cAAGN,aAAa,CAA8BO,SAAS,CAAC,CAEzE,MAAO,MAAM,CAAAC,OAAO,CAAGA,CAAA,GAAuB,CAC5C,KAAM,CAAAC,OAAO,CAAGR,UAAU,CAACK,WAAW,CAAC,CACvC,GAAI,CAACG,OAAO,CAAE,CACZ,KAAM,IAAI,CAAAC,KAAK,CAAC,6CAA6C,CAAC,CAChE,CACA,MAAO,CAAAD,OAAO,CAChB,CAAC,CAED;AACA,MAAO,MAAM,CAAAE,KAAK,CAAG,CACnBC,KAAK,CAAE,CACLC,IAAI,CAAE,OAAO,CACbC,WAAW,CAAE,CAAC,GAAG,CAAC,CAAE;AACpBC,OAAO,CAAE,CAAC,GAAG,CAAC,CAAE;AAChBC,KAAK,CAAE,SACT,CAAC,CACDC,QAAQ,CAAE,CACRJ,IAAI,CAAE,UAAU,CAChBC,WAAW,CAAE,CACX,iBAAiB,CAAE,eAAe,CAAE,iBAAiB,CAAE,kBAAkB,CACzE,gBAAgB,CAAE,cAAc,CAAE,gBAAgB,CAClD,eAAe,CAAE,aAAa,CAAE,gBAAgB,CAChD,kBAAkB,CAAE,gBAAgB,CACpC,WAAW,CAAE,WAAW,CACzB,CACDC,OAAO,CAAE,CAAC,UAAU,CAAE,SAAS,CAAE,QAAQ,CAAE,WAAW,CAAE,MAAM,CAAC,CAC/DC,KAAK,CAAE,SACT,CAAC,CACDE,OAAO,CAAE,CACPL,IAAI,CAAE,SAAS,CACfC,WAAW,CAAE,CACX,eAAe,CAAE,iBAAiB,CAAE,mBAAmB,CACvD,cAAc,CAAE,gBAAgB,CAChC,aAAa,CAAE,gBAAgB,CAC/B,gBAAgB,CAAE,kBAAkB,CACpC,gBAAgB,CAChB,gBAAgB,CACjB,CACDC,OAAO,CAAE,CAAC,UAAU,CAAE,SAAS,CAAE,QAAQ,CAAE,WAAW,CAAE,WAAW,CAAC,CACpEC,KAAK,CAAE,SACT,CAAC,CACDG,QAAQ,CAAE,CACRN,IAAI,CAAE,UAAU,CAChBC,WAAW,CAAE,CACX,iBAAiB,CAAE,mBAAmB,CACtC,kBAAkB,CAAE,4BAA4B,CAChD,gBAAgB,CACjB,CACDC,OAAO,CAAE,CAAC,aAAa,CAAE,WAAW,CAAC,CACrCC,KAAK,CAAE,SACT,CAAC,CACDI,OAAO,CAAE,CACPP,IAAI,CAAE,SAAS,CACfC,WAAW,CAAE,CACX,YAAY,CAAE,cAAc,CAC5B,gBAAgB,CAAE,kBAAkB,CACpC,iBAAiB,CAClB,CACDC,OAAO,CAAE,CAAC,OAAO,CAAE,WAAW,CAAE,YAAY,CAAC,CAC7CC,KAAK,CAAE,SACT,CACF,CAAC,CAED;AACA,KAAM,CAAAK,SAAiB,CAAG,CACxB,CACEC,EAAE,CAAE,CAAC,CACLC,QAAQ,CAAE,OAAO,CACjBC,KAAK,CAAE,mBAAmB,CAC1BX,IAAI,CAAE,sBAAsB,CAC5BY,IAAI,CAAE,OAAO,CACbC,UAAU,CAAE,IAAI,CAChBC,SAAS,CAAE,kBAAkB,CAC7BC,MAAM,CAAE,QAAQ,CAChBC,MAAM,CAAE,IACV,CAAC,CACD,CACEP,EAAE,CAAE,CAAC,CACLC,QAAQ,CAAE,YAAY,CACtBC,KAAK,CAAE,wBAAwB,CAC/BX,IAAI,CAAE,YAAY,CAClBY,IAAI,CAAE,UAAU,CAChBC,UAAU,CAAE,gBAAgB,CAC5BC,SAAS,CAAE,kBAAkB,CAC7BC,MAAM,CAAE,QAAQ,CAChBC,MAAM,CAAE,IACV,CAAC,CACD,CACEP,EAAE,CAAE,CAAC,CACLC,QAAQ,CAAE,eAAe,CACzBC,KAAK,CAAE,2BAA2B,CAClCX,IAAI,CAAE,eAAe,CACrBY,IAAI,CAAE,SAAS,CACfC,UAAU,CAAE,eAAe,CAC3BC,SAAS,CAAE,kBAAkB,CAC7BC,MAAM,CAAE,QAAQ,CAChBC,MAAM,CAAE,IACV,CAAC,CACD,CACEP,EAAE,CAAE,CAAC,CACLC,QAAQ,CAAE,YAAY,CACtBC,KAAK,CAAE,wBAAwB,CAC/BX,IAAI,CAAE,YAAY,CAClBY,IAAI,CAAE,UAAU,CAChBC,UAAU,CAAE,cAAc,CAC1BC,SAAS,CAAE,kBAAkB,CAC7BC,MAAM,CAAE,QAAQ,CAChBC,MAAM,CAAE,IACV,CAAC,CACD,CACEP,EAAE,CAAE,CAAC,CACLC,QAAQ,CAAE,aAAa,CACvBC,KAAK,CAAE,yBAAyB,CAChCX,IAAI,CAAE,aAAa,CACnBY,IAAI,CAAE,UAAU,CAChBC,UAAU,CAAE,IAAI,CAChBC,SAAS,CAAE,kBAAkB,CAC7BC,MAAM,CAAE,QAAQ,CAChBC,MAAM,CAAE,IACV,CAAC,CACF,CAMD,MAAO,MAAM,CAAAC,YAAyC,CAAGC,IAAA,EAAkB,IAAjB,CAAEC,QAAS,CAAC,CAAAD,IAAA,CACpE,KAAM,CAACE,IAAI,CAAEC,OAAO,CAAC,CAAGhC,QAAQ,CAAc,IAAI,CAAC,CACnD,KAAM,CAACiC,OAAO,CAAEC,UAAU,CAAC,CAAGlC,QAAQ,CAAU,IAAI,CAAC,CAErDC,SAAS,CAAC,IAAM,CACd;AACA,KAAM,CAAAkC,SAAS,CAAGC,YAAY,CAACC,OAAO,CAAC,UAAU,CAAC,CAClD,GAAIF,SAAS,CAAE,CACbH,OAAO,CAACM,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAC,CAAC,CAChC,CACAD,UAAU,CAAC,KAAK,CAAC,CACnB,CAAC,CAAE,EAAE,CAAC,CAEN,KAAM,CAAAM,KAAK,CAAG,KAAAA,CAAOnB,QAAgB,CAAEoB,QAAgB,GAAiE,CACtHP,UAAU,CAAC,IAAI,CAAC,CAChB,GAAI,CACF;AACA,KAAM,IAAI,CAAAQ,OAAO,CAACC,OAAO,EAAIC,UAAU,CAACD,OAAO,CAAE,IAAI,CAAC,CAAC,CAEvD,KAAM,CAAAE,SAAS,CAAG1B,SAAS,CAAC2B,IAAI,CAACC,CAAC,EAAIA,CAAC,CAAC1B,QAAQ,GAAKA,QAAQ,CAAC,CAC9D,GAAIwB,SAAS,CAAE,CACb,KAAM,CAAAG,YAAY,CAAAC,aAAA,CAAAA,aAAA,IACbJ,SAAS,MACZK,QAAQ,CAAEzC,KAAK,CAACoC,SAAS,CAACtB,IAAI,CAAuB,EACtD,CACDS,OAAO,CAACgB,YAAY,CAAC,CACrBZ,YAAY,CAACe,OAAO,CAAC,UAAU,CAAEb,IAAI,CAACc,SAAS,CAACJ,YAAY,CAAC,CAAC,CAC9D,MAAO,CAAEK,OAAO,CAAE,IAAI,CAAEtB,IAAI,CAAEiB,YAAa,CAAC,CAC9C,CAAC,IAAM,CACL,MAAO,CAAEK,OAAO,CAAE,KAAK,CAAEC,KAAK,CAAE,qBAAsB,CAAC,CACzD,CACF,CAAE,MAAOA,KAAK,CAAE,CACd,MAAO,CAAED,OAAO,CAAE,KAAK,CAAEC,KAAK,CAAE,cAAe,CAAC,CAClD,CAAC,OAAS,CACRpB,UAAU,CAAC,KAAK,CAAC,CACnB,CACF,CAAC,CAED,KAAM,CAAAqB,MAAM,CAAGA,CAAA,GAAY,CACzBvB,OAAO,CAAC,IAAI,CAAC,CACbI,YAAY,CAACoB,UAAU,CAAC,UAAU,CAAC,CACrC,CAAC,CAED,KAAM,CAAAC,aAAa,CAAIC,UAAkB,EAAc,KAAAC,cAAA,CAAAC,eAAA,CACrD,GAAI,CAAC7B,IAAI,CAAE,MAAO,MAAK,CACvB,IAAA4B,cAAA,CAAI5B,IAAI,CAACmB,QAAQ,UAAAS,cAAA,WAAbA,cAAA,CAAe/C,WAAW,CAACiD,QAAQ,CAAC,GAAG,CAAC,CAAE,MAAO,KAAI,CACzD,MAAO,EAAAD,eAAA,CAAA7B,IAAI,CAACmB,QAAQ,UAAAU,eAAA,iBAAbA,eAAA,CAAehD,WAAW,CAACiD,QAAQ,CAACH,UAAU,CAAC,GAAI,KAAK,CACjE,CAAC,CAED,KAAM,CAAAI,eAAe,CAAIC,MAAc,EAAc,KAAAC,eAAA,CAAAC,eAAA,CACnD,GAAI,CAAClC,IAAI,CAAE,MAAO,MAAK,CACvB,IAAAiC,eAAA,CAAIjC,IAAI,CAACmB,QAAQ,UAAAc,eAAA,WAAbA,eAAA,CAAenD,OAAO,CAACgD,QAAQ,CAAC,GAAG,CAAC,CAAE,MAAO,KAAI,CACrD,MAAO,EAAAI,eAAA,CAAAlC,IAAI,CAACmB,QAAQ,UAAAe,eAAA,iBAAbA,eAAA,CAAepD,OAAO,CAACgD,QAAQ,CAACE,MAAM,CAAC,GAAI,KAAK,CACzD,CAAC,CAED,KAAM,CAAAG,cAAc,CAAIC,KAAa,EAAc,CACjD,GAAI,CAACpC,IAAI,CAAE,MAAO,MAAK,CAEvB;AACA,KAAM,CAAAqC,cAAc,CAAG,CACrB,sBAAsB,CAAE,UAAU,CAClC,qBAAqB,CAAE,SAAS,CAChC,oBAAoB,CAAE,QAAQ,CAC9B,kBAAkB,CAAE,aAAa,CACjC,OAAO,CAAE,MAAM,CACf,uBAAuB,CAAE,WAAW,CACpC,YAAY,CAAE,WAAW,CACzB,WAAW,CAAE,YAAY,CACzB,aAAa,CAAE,YAAY,CAC3B,QAAQ,CAAE,OACZ,CAAC,CAED,KAAM,CAAAL,MAAM,CAAGK,cAAc,CAACD,KAAK,CAAgC,CACnE,MAAO,CAAAL,eAAe,CAACC,MAAM,CAAC,CAChC,CAAC,CAED,KAAM,CAAAM,KAAK,CAAG,CACZtC,IAAI,CACJS,KAAK,CACLe,MAAM,CACNtB,OAAO,CACPwB,aAAa,CACbK,eAAe,CACfI,cAAc,CACdzD,KACF,CAAC,CAED,mBACEN,IAAA,CAACC,WAAW,CAACkE,QAAQ,EAACD,KAAK,CAAEA,KAAM,CAAAvC,QAAA,CAChCA,QAAQ,CACW,CAAC,CAE3B,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}