{"version":3,"sources":["Tools/Hooks/useMountedState/useMountedState.ts","Tools/Hooks/useFetch/index.ts","Tools/Hooks/useLoading/useLoading.ts","Tools/Hooks/useMountedState/useMounted.ts","App/Routes/Guard.tsx","App/Routes/routes.tsx","Components/LoadingCover.tsx","App/Routes/RouteRenderer.tsx","App/Config/constants.ts","Tools/Store/actions/LocalCacheActions.ts","Tools/Store/actions/AccountActions.ts","Tools/Utils/React.tsx","Assets/fontawesome/svg lazy /^/.//.*/.fa/.svg$/ groupOptions: {} namespace object","Tools/Hooks/useAccount/index.ts","Tools/Store/useStore.ts","App/App.tsx","Tools/Utils/Cache.ts","Tools/Store/reducers/AccountReducer.ts","Tools/Store/reducers/DashboardReducer.ts","Tools/Store/reducers/LocalCacheReducer.ts","Tools/Store/reducers/index.ts","Tools/Store/index.tsx","reportWebVitals.ts","Components/ErrorBoundary/ErrorBoundary.tsx","index.tsx","Tools/Utils/String.ts","Tools/Store/actions/DashboardActions.ts","Assets/fontawesome/fa.bundle.svg","Components/FaIcon.tsx"],"names":["useMountedState","initState","isMounted","useMounted","useState","state","setState","value","current","ReqInit","base","throwError","extendOptions","options","authFetch","url","token","window","user_token","body","navigator","onLine","msg","Notify","error","duration","icon","Error","isFormData","FormData","JSON","stringify","fetchOptions","headers","Authorization","params","entries","Object","filter","item","undefined","map","stringParam","join","req_url","CONFIG","SERVER","fetch","response","status_code","status","json","onUploadProgress","event","percentage","Math","round","loaded","total","axios_options","data","axios","request","authFetchByMethod","method","get","put","post","delete","useFetch","fetchUrl","loadings","useLoading","dispatch","useStore","useAccount","user","tokenRef","setData","setError","setLoadingByMethod","isLoading","set","setUploadProgress","fetchByMethod","useCallback","mergedOptions","ext_options","res_json","message","LOADING","loading","is","getLoading","putLoading","postLoading","deleteLoading","all","FETCH_METHODS","Get","Put","Post","Delete","key","on","s","off","useRef","useEffect","GuestPath","children","loggedIn","isTokenValid","logout","to","AuthPath","useHistory","location","push","localStorage","setItem","pathname","redirectTo","getItem","removeItem","RolePath","not","routesArray","exact","path","component","lazy","guard","BASE_URL","LoadingCover","className","Loader","speed","size","center","RouteRenderer","props","replace","isFirstRenderRef","fallback","defaultRoute","routes","setTimeout","DefaultRoute","route","i","PathGuard","Fragment","role","APP_SHORT_NAME","APP_NAME","_mode","FRONTEND","clearClassData","createAction","setDisconnected","setLocalData","setLiveUpdateStatus","setLoadings","clearLocalStorage","setUserToken","login","createAsyncThunk","email","password","rejectWithValue","isEmail","username","isEqualToPrevUserInfo","Promise","resolve","init_loading","refresh_loading","lsName","prevHash","userData","name","ID","userIdHash","createHashId","isEqual","isDev","process","classNames","classes","forEach","e","p","clickOn","selector","document","querySelector","click","notify","type","interval","setInterval","toaster","clearInterval","closable","fa","placement","info","success","warning","webpackAsyncContext","req","__webpack_require__","o","then","code","ids","id","keys","module","exports","exp","jwtDecode","Date","now","account","useDispatch","useSelector","App","logger","removeFaIconCache","caches","has","removeBrowserCache","AccountReducer","createReducer","SYSTEM_USER_ID","_","pending","payload","rejected","fulfilled","DashboardReducer","uploadProgress","setLoading","init","disconnected","LocalCacheReducer","liveUpdateStatus","refresh","new_state","OBJ","clone","class_name","deleted","partialUpdate","last_update","length","PRIMARY_KEY","time","moment","utc","toISOString","dataUpdater","reduce","acc","extra","cur_data","partial_data","deleted_ids","pk","di","pd","compressor","createCompressor","reducers","combineReducers","dashboard","persistReducer","storage","blacklist","keyPrefix","transforms","stateSyncConfig","store","configureStore","devTools","reducer","middleware","getDefMid","mids","serializableCheck","createStateSyncMiddleware","Store","persistor","persistStore","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ErrorBoundary","hasError","remainTime","errorInfo","console","href","this","FaIcon","Button","Component","app","ReactDOM","render","capitalize","str","charAt","toUpperCase","slice","toLowerCase","uppercaseWords","split","isContain","string","searchValue","lowerStr","toLocaleLowerCase","trim","lowerSearchValue","includes","test","parse","decodeURIComponent","atob","c","charCodeAt","toString","crypto","createHash","update","digest","isUpperCase","userNameAbbreviation","parts","first","last","orderNumberMap","number","dynamicSvg","onClick","style","svgTag","setSvgTag","svgBundle","svgBase","viewBox","xlinkHref"],"mappings":"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","file":"static/js/main.39c7b8d7.chunk.js","sourcesContent":["import { useState } from 'react';\nimport useMounted from './useMounted';\n\nconst useMountedState = (initState?: T | (() => T)) => {\n\tconst { isMounted } = useMounted();\n\n\tconst [state, setState] = useState(initState as any);\n\n\tconst newSetState: (v: React.SetStateAction) => void = value => {\n\t\tif (!isMounted.current) return;\n\t\tsetState(value);\n\t};\n\n\treturn [state, newSetState] as [T, React.Dispatch>];\n};\n\nexport default useMountedState;\n","import useAccount from '../useAccount';\nimport { Notify } from '../../Utils/React';\nimport useStore from '@tools/Store/useStore';\nimport { useCallback, useState } from 'react';\nimport useLoading from '../useLoading/useLoading';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { CONFIG } from '../../../App/Config/constants';\nimport { setUploadProgress } from '@tools/Store/actions/DashboardActions';\n\n//? ----------------- 👇 Initial data ------------------------------------\n\nconst ReqInit: RequestOptions = { base: true, throwError: false };\n\n//? -------------------- 👇 useFetch -------------------------------------\n\nconst useFetch = (fetchUrl?: string, fetchOptions?: RequestOptions) => {\n\tconst loadings = useLoading();\n\tconst { dispatch } = useStore();\n\tconst { user, tokenRef } = useAccount();\n\tconst [data, setData] = useState(null);\n\tconst [error, setError] = useState(false);\n\n\tconst setLoadingByMethod = (isLoading: boolean, method?: RequestMethods) => {\n\t\tloadings.set('all', isLoading);\n\t\tif (method) loadings.set(method, isLoading);\n\t};\n\n\tconst onUploadProgress: OnUploadProgress = (event, percentage) => {\n\t\tdispatch(setUploadProgress(percentage));\n\t\tfetchOptions?.onUploadProgress?.(event, percentage);\n\t};\n\n\tconst fetchByMethod = useCallback(\n\t\t(method: RequestMethods) => async (options?: RequestOptions) => {\n\t\t\tlet json;\n\n\t\t\tsetData(null);\n\t\t\tsetError(false);\n\t\t\tsetLoadingByMethod(true, method);\n\n\t\t\tconst mergedOptions = { ...fetchOptions, ...options, onUploadProgress } as RequestOptions;\n\t\t\tconst url = mergedOptions?.url || fetchUrl;\n\t\t\tif (!url) return;\n\n\t\t\ttry {\n\t\t\t\tconst ext_options = { ...mergedOptions, token: tokenRef?.current, method: method };\n\t\t\t\tconst { json: res_json } = await authFetch(url, ext_options);\n\t\t\t\tjson = res_json;\n\t\t\t\tsetData(json);\n\t\t\t\tsetLoadingByMethod(false, method);\n\t\t\t\tif (json?.error) throw new Error(`${json?.message}`);\n\t\t\t} catch (e) {\n\t\t\t\tsetError(e);\n\t\t\t\tsetData(null);\n\t\t\t\tsetLoadingByMethod(false, method);\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\treturn json as T;\n\t\t},\n\t\t[fetchOptions, fetchUrl, CONFIG, user]\n\t);\n\n\tconst LOADING = {\n\t\tloading: loadings.is('all'),\n\t\tgetLoading: loadings.is('GET'),\n\t\tputLoading: loadings.is('PUT'),\n\t\tpostLoading: loadings.is('POST'),\n\t\tdeleteLoading: loadings.is('DELETE'),\n\t\tloadings: {\n\t\t\tall: loadings.is('all'),\n\t\t\tget: loadings.is('GET'),\n\t\t\tput: loadings.is('PUT'),\n\t\t\tpost: loadings.is('POST'),\n\t\t\tdelete: loadings.is('DELETE'),\n\t\t},\n\t};\n\n\tconst FETCH_METHODS = {\n\t\tGet: fetchByMethod('GET'),\n\t\tPut: fetchByMethod('PUT'),\n\t\tPost: fetchByMethod('POST'),\n\t\tDelete: fetchByMethod('DELETE'),\n\t};\n\n\treturn { data, error, ...LOADING, ...FETCH_METHODS };\n};\n\n//? --------------------- 👇 Utils ---------------------------------------\n\nconst extendOptions = (options: RequestOptions) => ({ ...ReqInit, ...options });\n\nexport const authFetch = async (url: string, options?: RequestOptions) => {\n\tlet { token = window?.user_token, body } = options || {};\n\tlet response: Response | undefined, status_code: any, json: any;\n\n\tif (!navigator.onLine) {\n\t\t//! if the internet is offline, throw an error\n\t\tconst msg = 'You are offline. Please check your internet connection.';\n\t\tNotify.error(msg, { duration: 4000, icon: 'l-wifi-slash' });\n\t\tthrow new Error(msg);\n\t}\n\n\t//? Handling Json and FormData\n\tconst isFormData = body instanceof FormData;\n\tif (body && typeof body === 'object' && !isFormData) body = JSON.stringify(body);\n\n\t//? Options\n\tconst fetchOptions = extendOptions({ ...options, body });\n\tfetchOptions.headers = {\n\t\t...fetchOptions.headers,\n\t\t...(!!token ? { Authorization: 'Bearer ' + token } : {}),\n\t\t...(!isFormData ? { 'Content-Type': 'application/json' } : { 'Content-Type': 'multipart/form-data' }),\n\t};\n\n\t//? Handling Query params\n\tconst params = fetchOptions?.params;\n\tlet stringParam;\n\tif (params) {\n\t\tlet entries: any[] = Object.entries(params || {}).filter(item => item[1] !== undefined);\n\t\tentries = entries.map(item => `${item[0]}=${item[1]}`);\n\t\tstringParam = '?' + entries.join('&');\n\t}\n\n\t//? Final Request Url\n\tlet req_url = (fetchOptions.base ? CONFIG.SERVER : '') + url + (stringParam || '');\n\n\t//? Execute request using fetch or axios\n\ttry {\n\t\tif (!isFormData) {\n\t\t\tresponse = await fetch(req_url, fetchOptions as RequestInit);\n\t\t\tstatus_code = response?.status;\n\t\t\ttry {\n\t\t\t\tjson = await response!!?.json();\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t} else {\n\t\t\tconst onUploadProgress = (event: ProgressEvent) => {\n\t\t\t\tconst percentage = Math.round((100 * event.loaded) / event.total);\n\t\t\t\toptions?.onUploadProgress?.(event, percentage);\n\t\t\t};\n\n\t\t\tconst axios_options: AxiosRequestConfig = {\n\t\t\t\turl: req_url,\n\t\t\t\tdata: fetchOptions?.body,\n\t\t\t\t...((fetchOptions as any) || {}),\n\t\t\t\tonUploadProgress,\n\t\t\t};\n\n\t\t\tconst { data, status } = await axios.request(axios_options);\n\n\t\t\tjson = data;\n\t\t\tstatus_code = status;\n\t\t}\n\n\t\tif (status_code >= 400) throw new Error(`Request Error ${status_code}`);\n\n\t\t//\n\t} catch (e) {\n\t\tif (options?.throwError) throw e;\n\t}\n\n\treturn { json, response };\n};\n\nconst authFetchByMethod = (method: RequestMethods) => async (url: string, options?: RequestOptions) =>\n\tawait authFetch(url, { method: method, ...options });\n\nauthFetch.get = authFetchByMethod('GET');\nauthFetch.put = authFetchByMethod('PUT');\nauthFetch.post = authFetchByMethod('POST');\nauthFetch.delete = authFetchByMethod('DELETE');\n\nexport const objectToFormData = (obj: { [key: string]: string | Blob | undefined }) => {\n\tconst formData = new FormData();\n\tObject.keys(obj || {}).forEach(key => obj[key] && formData.append(key, obj[key]!!));\n\treturn formData;\n};\n\n//? ----------------------- 👇 Types ------------------------------------\n\nexport type RequestMethods = 'GET' | 'POST' | 'PUT' | 'DELETE';\n\nexport type OnUploadProgress = (event: ProgressEvent, percentage: number) => void;\n\nexport type RequestOptions = Omit & {\n\turl?: string;\n\tbase?: boolean;\n\ttoken?: string;\n\tparams?: object;\n\tthrowError?: boolean;\n\tbody?: object | string | BodyInit;\n\tonUploadProgress?: OnUploadProgress;\n};\n\n//? ----------------------- 👇 Export ------------------------------------\n\nexport default useFetch;\n","import { useState } from 'react';\n\nconst useLoading = () => {\n\tconst [state, setState] = useState>>({});\n\treturn {\n\t\tis: (key: K) => state?.[key],\n\t\ton: (key: K) => setState(s => ({ ...s, [key]: true })),\n\t\toff: (key: K) => setState(s => ({ ...s, [key]: false })),\n\t\tset: (key: K, value: boolean) => setState(s => ({ ...s, [key]: value })),\n\t};\n};\n\nexport default useLoading;\n","import { useRef, useEffect } from 'react';\n\nconst useMounted = () => {\n\tconst isMounted = useRef(true);\n\n\tuseEffect(() => {\n\t\tisMounted.current = true;\n\t\treturn () => {\n\t\t\tisMounted.current = false;\n\t\t};\n\t}, []);\n\n\treturn { isMounted };\n};\n\nexport default useMounted;\n","import { FC } from 'react';\nimport useStore from '../../Tools/Store/useStore';\nimport useAccount from '../../Tools/Hooks/useAccount';\nimport { RoleProps } from '../../Components/Role/Role';\nimport { Redirect, useHistory } from 'react-router-dom';\nimport { isTokenValid } from '../../Tools/Hooks/useAccount';\nimport { logout } from '../../Tools/Store/actions/AccountActions';\n\nexport const GuestPath: FC = ({ children }) => {\n\tconst { dispatch } = useStore();\n\tconst { loggedIn, user } = useAccount();\n\tif (loggedIn && !isTokenValid(user?.token)) dispatch(logout());\n\tif (loggedIn) return ;\n\treturn <>{children};\n};\n\nexport const AuthPath: FC = ({ children }) => {\n\tconst { dispatch } = useStore();\n\tconst { location, push } = useHistory();\n\tconst { loggedIn, user } = useAccount();\n\n\tconst key = 'redirect-path-after-auth';\n\n\tif (loggedIn && !isTokenValid(user?.token)) dispatch(logout());\n\n\tif (loggedIn) {\n\t\tconst redirectTo = localStorage?.getItem(key);\n\t\tif (redirectTo) {\n\t\t\tlocalStorage.removeItem(key);\n\t\t\tpush(redirectTo);\n\t\t}\n\t} else {\n\t\tlocalStorage.setItem(key, location?.pathname);\n\t\treturn ;\n\t}\n\n\treturn <>{children};\n};\n\nexport const RolePath: FC = ({ children, is, not }) => {\n\t// const PERMISSION_ERROR_CONTACT_ADMIN =\n\t// \t'If you believe this is a mistake, please contact your system administrator.';\n\n\treturn <>{children};\n};\n\nconst Guard = { AuthPath, GuestPath };\n\nexport default Guard;\n","import { lazy } from 'react';\nimport { Path } from './RouteRenderer';\nimport { Redirect } from 'react-router-dom';\nimport { CONFIG } from '../Config/constants';\nimport { AuthPath, GuestPath } from './Guard';\n\nexport const routesArray: Path[] = [\n\t{\n\t\texact: true,\n\t\tpath: ['/reset-password/:token'],\n\t\tcomponent: lazy(() => import('../../Views/Pages/Login/ResetPassword/ResetPassword')),\n\t},\n\t{\n\t\texact: true,\n\t\tguard: GuestPath,\n\t\tpath: ['/login'],\n\t\tcomponent: lazy(() => import('../../Views/Pages/Login/Login')),\n\t},\n\t{\n\t\texact: false,\n\t\tguard: AuthPath,\n\t\tpath: ['/', '/panel'],\n\t\tcomponent: lazy(() => import('../../Views/Layouts')),\n\t},\n\n\t{\n\t\tpath: ['*'],\n\t\texact: true,\n\t\tcomponent: () => ,\n\t},\n];\n\nexport default routesArray;\n","import { FC } from 'react';\nimport { Loader } from 'rsuite';\n\ntype LoadingCoverProps = { className?: string };\n\nconst LoadingCover: FC = ({ className = '' }) => (\n\t\n);\n\nexport default LoadingCover;\n","import routesArray from './routes';\nimport { RolePath } from './Guard';\nimport LoadingCover from '../../Components/LoadingCover';\nimport { Switch, Route, useHistory } from 'react-router-dom';\nimport { ROLE_NAME } from '../../Tools/Store/reducers/AccountReducer';\nimport { FC, LazyExoticComponent, Suspense, Fragment, useRef } from 'react';\n\nexport type Path = {\n\tguard?: any;\n\texact: boolean;\n\tpath: string[];\n\trole?: Partial>;\n\tcomponent: LazyExoticComponent<() => JSX.Element> | (() => JSX.Element) | FC;\n};\n\nexport type RouteRendererProps = {\n\tbase?: string;\n\troutes?: Path[];\n\tdefaultRoute?: string;\n\tfallback?: () => JSX.Element;\n};\n\nconst RouteRenderer: FC = props => {\n\tconst { replace } = useHistory();\n\tconst isFirstRenderRef = useRef(true);\n\tconst { fallback, base = '', defaultRoute, routes = routesArray } = props;\n\tconst is_default_route_redirect = !!(isFirstRenderRef.current && defaultRoute);\n\n\tlet DefaultRoute;\n\tif (is_default_route_redirect) {\n\t\tisFirstRenderRef.current = false;\n\n\t\tsetTimeout(() => {\n\t\t\treplace(base + defaultRoute);\n\t\t}, 0);\n\t}\n\n\treturn (\n\t\t}>\n\t\t\t\n\t\t\t\t{DefaultRoute}\n\t\t\t\t{routes.map((route, i) =>\n\t\t\t\t\troute.path.map(path => {\n\t\t\t\t\t\tlet PathGuard = route.guard || Fragment;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default RouteRenderer;\n","//? ------------------------------ Configs --------------------------------------\n\nconst BASE = {\n\tBASE_URL: '/',\n\tAPP_SHORT_NAME: 'DMP',\n\tAPP_NAME: 'DMP Customer',\n};\n\nconst PRODUCTION = {\n\t_mode: 'PRODUCTION' as typeof window.MODE,\n\tSERVER: 'https://back.dmp.market',\n\tFRONTEND: 'https://dmp.market',\n};\n\n//? --------------------- Config selection ----------------------------------------\n\nexport type CONFIG_TYPE = typeof BASE & typeof PRODUCTION;\n\nexport const CONFIG: CONFIG_TYPE = { ...BASE, ...PRODUCTION };\n\nwindow.CONFIG = CONFIG;\n","import { createAction } from '@reduxjs/toolkit';\n\nexport type LocalActionEntryType = {\n\tdata: any;\n\tclass_name: string;\n\tdeleted?: string[];\n\tlast_update?: string;\n\tpartialUpdate: boolean;\n};\n\nexport const clearClassData = createAction('clearClassData');\n\nexport const setDisconnected = createAction('setDisconnected');\n\nexport const setLocalData = createAction('setLocalData');\n\nexport const setLiveUpdateStatus = createAction('setLiveUpdateStatus');\n\nexport const setLoadings = createAction<{ init?: boolean; refresh?: boolean }>('setLoadings');\n\nexport const clearLocalStorage = createAction<{ init_loading?: boolean; refresh_loading?: boolean }>('clearLocalStorage');\n","import { CONFIG } from '@config/constants';\nimport { isEmail } from '../../Utils/String';\nimport { authFetch } from '../../Hooks/useFetch';\nimport { createHashId } from '@tools/Utils/String';\nimport { clearLocalStorage } from './LocalCacheActions';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\n\nconst LOGIN_ERROR_MESSAGE = 'Email and password are invalid';\n\n//*---------------------- 👇 Actions -------------------------------------------------\n\n//* LogOut\nexport const logout = createAction('logout');\n\n//* Set Token\nexport const setUserToken = createAction('setUserToken');\n\n//* Login\nexport const login = createAsyncThunk(\n\t'login',\n\tasync ({ email, password }, { rejectWithValue, dispatch }) => {\n\t\tlet data: any;\n\n\t\tconst item: any = { email: email, password: password };\n\n\t\tif (!isEmail(email)) {\n\t\t\tdelete item.email;\n\t\t\titem.username = email;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { json } = await authFetch.post('/endpoints/login', { body: { ...item } });\n\t\t\tdata = json;\n\t\t\tif (!data || data?.error) return rejectWithValue({ error: data?.message || '' });\n\t\t\tconst isEqualPrev = isEqualToPrevUserInfo(data?.item);\n\t\t\tif (!isEqualPrev)\n\t\t\t\tawait new Promise(resolve =>\n\t\t\t\t\tresolve(dispatch(clearLocalStorage({ init_loading: true, refresh_loading: false })))\n\t\t\t\t);\n\t\t} catch (e: any) {\n\t\t\treturn rejectWithValue({ error: navigator.onLine ? LOGIN_ERROR_MESSAGE : e?.message });\n\t\t}\n\n\t\treturn data.item;\n\t}\n);\n\nconst isEqualToPrevUserInfo = (data: any) => {\n\tconst lsName = `${CONFIG.APP_SHORT_NAME}-UA`;\n\tconst prevHash = localStorage.getItem(lsName);\n\tconst userData = { name: data?.role?.name, ID: data?.ID };\n\tconst userIdHash = createHashId(JSON.stringify(userData));\n\tconst isEqual = !!prevHash && userIdHash === prevHash;\n\tif (!isEqual) {\n\t\tlocalStorage.setItem(lsName, userIdHash);\n\t\tlocalStorage.removeItem('redirect-path-after-auth');\n\t}\n\treturn isEqual;\n};\n","import FaIcon from '../../Components/FaIcon';\nimport { Notification, toaster } from 'rsuite';\nimport { IconNames } from '../../Assets/fontawesome/fa.names';\nimport { PlacementType } from 'rsuite/esm/toaster/ToastContainer';\n\nexport const isDev = process.env.NODE_ENV === 'development';\n\nexport const isProd = process.env.NODE_ENV === 'production';\n\ntype classIfType = { [key: string]: boolean };\nexport const classNames = (...entries: (string | classIfType)[]) => {\n\tlet classes = '';\n\tentries.forEach(e => {\n\t\tif (typeof e === 'string') return (classes += e + ' ');\n\t\tclasses += Object.entries(e || {})\n\t\t\t.filter(p => p[1] === true)\n\t\t\t.map(p => p[0])\n\t\t\t.join(' ');\n\t});\n\treturn classes;\n};\n\nexport const classes = (...entries: (string | classIfType)[]) => ({\n\tclassName: classNames(...(entries || [])),\n});\n\nexport const clickOn = (selector: string) => (document.querySelector(selector) as any)?.click?.();\n\nexport const copyToClipboard = async (content: string) => {\n\tconst type = 'text/plain';\n\tconst blob = new Blob([content], { type: 'text/plain' });\n\tconst data = [new ClipboardItem({ [type]: blob })];\n\treturn await navigator.clipboard.write(data);\n};\n\ntype NotifyOptions = {\n\ticon?: IconNames;\n\tduration?: number;\n\tclassName?: string;\n\tclosable?: boolean;\n\tplacement?: PlacementType;\n\ttype?: 'success' | 'error' | 'info' | 'warning';\n};\n\n//---------RsuiteNotification-------------\nexport const notify = (message: string, options?: NotifyOptions) => {\n\tconst type = options?.type;\n\tlet interval = setInterval(() => {\n\t\tif (!!toaster?.push) {\n\t\t\tclearInterval(interval);\n\t\t\ttoaster.push(\n\t\t\t\t\n\t\t\t\t\t{options?.icon && }\n\t\t\t\t\t{message}\n\t\t\t\t,\n\t\t\t\t{ placement: options?.placement || 'bottomEnd' }\n\t\t\t);\n\t\t}\n\t}, 200);\n};\n//\n\nexport const Notify = {\n\terror: (message: string, options?: NotifyOptions) => {\n\t\tnotify(message, { type: 'error', icon: 'l-xmark', ...(options || {}) });\n\t},\n\tinfo: (message: string, options?: NotifyOptions) => {\n\t\tnotify(message, { type: 'info', icon: 'l-info', ...(options || {}) });\n\t},\n\tsuccess: (message: string, options?: NotifyOptions) => {\n\t\tnotify(message, { type: 'success', icon: 'l-check', ...(options || {}) });\n\t},\n\twarning: (message: string, options?: NotifyOptions) => {\n\t\tnotify(message, { type: 'warning', icon: 'l-triangle-exclamation', ...(options || {}) });\n\t},\n};\n","var map = {\n\t\"./brands.fa.svg\": [\n\t\t631,\n\t\t17\n\t],\n\t\"./duotone.fa.svg\": [\n\t\t632,\n\t\t18\n\t],\n\t\"./light.fa.svg\": [\n\t\t633,\n\t\t19\n\t],\n\t\"./regular.fa.svg\": [\n\t\t634,\n\t\t20\n\t],\n\t\"./solid.fa.svg\": [\n\t\t635,\n\t\t21\n\t],\n\t\"./thin.fa.svg\": [\n\t\t636,\n\t\t22\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 445;\nmodule.exports = webpackAsyncContext;","import useStore from '../../Store/useStore';\nimport { useRef, useEffect } from 'react';\nimport { jwtDecode } from '../../Utils/String';\n\nconst useAccount = () => {\n\tconst { selector } = useStore();\n\tconst account = selector(s => s.account);\n\n\t//? Token\n\tconst tokenRef = useRef(account?.user?.token);\n\tuseEffect(() => {\n\t\ttokenRef.current = account?.user?.token;\n\t}, [account?.user, account?.user?.token]);\n\n\treturn { ...account, tokenRef };\n};\n\nexport const isTokenValid = (token?: string) => {\n\tif (!token) token = window?.user_token || '';\n\tif (!token) return false;\n\tconst exp = jwtDecode(token || '')?.exp;\n\tif (!exp) return false;\n\treturn exp * 1000 > Date.now();\n};\n\nexport default useAccount;\n","import { StoreTypes } from '.';\nimport { useSelector, useDispatch } from 'react-redux';\n\ntype SelectorType = (\n\tselector: (state: TState) => TSelected,\n\tequalityFn?: ((left: TSelected, right: TSelected) => boolean) | undefined\n) => TSelected;\n\nconst useStore = () => {\n\tconst dispatch = useDispatch();\n\tconst selector: SelectorType = useSelector;\n\treturn { selector, dispatch };\n};\n\n//* how to use ?\n// const {selector , dispatch} = useStore();\n// dispatch(action()) , selector(state=>state.value)\n\nexport default useStore;\n","import '@assets/less/rsuite.config.less';\nimport '@assets/scss/base/export.scss';\nimport '@assets/scss/base/RSuite.scss';\nimport '@assets/scss/App.scss';\nimport '@assets/scss/base/tailwind.scss';\nimport RoutesRenderer from './Routes/RouteRenderer';\nimport { useEffect } from 'react';\nimport { isDev } from '../Tools/Utils/React';\n\nconst App = () => {\n\t//? ------------------------------ useEffects ------------------------------------------------------\n\n\tuseEffect(() => {\n\t\tisDev && (window.logger = true);\n\t}, []);\n\n\t// -------------------------------------------------------------------------------------------------\n\treturn ;\n};\n\nexport default App;\n","export const removeFaIconCache = () => {\n\tif (!('caches' in window)) return;\n\tcaches.has('FaIconBundle').then(has => has && caches.delete('FaIconBundle'));\n};\n\nexport const removeImagesCache = () => {\n\tif (!('caches' in window)) return;\n\tcaches.has('Images').then(has => has && caches.delete('Images'));\n};\n\nexport const removeFontsCache = () => {\n\tif (!('caches' in window)) return;\n\tcaches.has('Fonts').then(has => has && caches.delete('Fonts'));\n};\n\nexport const removeBrowserCache = () => {\n\tremoveFaIconCache();\n\tremoveImagesCache();\n\tremoveFontsCache();\n};\n","import { createReducer } from '@reduxjs/toolkit';\nimport { removeFaIconCache } from '@tools/Utils/Cache';\nimport { login, logout, setUserToken } from '../actions/AccountActions';\n\nconst initState: AccountType = {\n\terror: '',\n\tloading: false,\n\tloggedIn: false,\n\tuser: {\n\t\tID: '',\n\t\tname: '',\n\t\ttoken: '',\n\t\temail: '',\n\t\tusername: '',\n\t\tSYSTEM_USER_ID: '',\n\t},\n};\n\nconst AccountReducer = createReducer(initState, {\n\t//? Logout\n\t[logout.type]: (state, _) => {\n\t\tremoveFaIconCache();\n\t\twindow.user_token = undefined;\n\t\treturn { user: null, loading: false, loggedIn: false, error: '' };\n\t},\n\n\t//? Login\n\t[login.pending.type]: (state, { payload }) => {\n\t\twindow.user_token = undefined;\n\t\treturn { user: null, loading: true, loggedIn: false, error: '' };\n\t},\n\t[login.rejected.type]: (state, { payload }) => {\n\t\twindow.user_token = undefined;\n\t\treturn { user: null, loading: false, loggedIn: false, error: payload.error };\n\t},\n\t[login.fulfilled.type]: (state, { payload }) => {\n\t\twindow.user_token = payload.token;\n\t\treturn { user: payload, loggedIn: true, loading: false, error: '' };\n\t},\n\n\t//? set token\n\t[setUserToken.type]: (state, { payload }) => {\n\t\twindow.user_token = payload;\n\t\treturn { ...state, user: { ...state?.user!!, token: payload } };\n\t},\n});\n\nexport type UserAccountType = null | {\n\tID: string;\n\tname: string;\n\temail: string;\n\ttoken: string;\n\tusername: string;\n\tSUPPLIER_ID?: string;\n\tREP_GROUP_ID?: string;\n\tSYSTEM_USER_ID?: string;\n\trole?: { name: ROLE_NAME };\n\tstatus?: 'ACTIVE' | 'DISABLED';\n\tCLASS_NAME?: 'SYSTEM_USER' | 'REP_GROUP' | 'SUPPLIER';\n};\n\nexport type AccountType = {\n\terror: string;\n\tloading: boolean;\n\tloggedIn: boolean;\n\tuser: UserAccountType;\n};\n\nexport type ROLE_NAME =\n\t| 'PACK_AND_SHIP'\n\t| 'SYSTEM_ADMIN'\n\t| 'FULFILLMENT'\n\t| 'ORDER_ENTRY'\n\t| 'SUPER_ADMIN'\n\t| 'LOGISTICS'\n\t| 'ARTWORK'\n\t| 'SUPPLIER'\n\t| 'REP_GROUP';\n\nexport default AccountReducer;\n","import { createReducer } from '@reduxjs/toolkit';\nimport { setLoading, setUploadProgress } from '../actions/DashboardActions';\n\ntype InitStateType = { isLoading: boolean; uploadProgress: number };\n\nconst initState: InitStateType = { isLoading: false, uploadProgress: 0 };\n\nconst DashboardReducer = createReducer(initState, {\n\t//* upload progress\n\t[setUploadProgress.type]: (state, { payload }) => ({ ...state, uploadProgress: payload }),\n\n\t//* loading\n\t[setLoading.type]: (state, { payload }) => ({ ...state, isLoading: payload }),\n});\n\nexport default DashboardReducer;\n","import moment from 'moment';\nimport { OBJ } from 'ahq-front-tools';\nimport { createReducer } from '@reduxjs/toolkit';\nimport { removeBrowserCache } from '../../Utils/Cache';\nimport { setLiveUpdateStatus, setLoadings, setLocalData } from '../actions/LocalCacheActions';\nimport { clearLocalStorage, clearClassData, setDisconnected } from '../actions/LocalCacheActions';\n\nconst initState: InitStateType = { loadings: { init: true }, disconnected: false };\n\nconst LocalCacheReducer = createReducer(initState, {\n\t//* Live update status\n\t[setLiveUpdateStatus.type]: (state, { payload }) => ({ ...state, liveUpdateStatus: payload }),\n\n\t//* Set server is disconnected\n\t[setDisconnected.type]: (state, { payload }) => ({ ...state, disconnected: payload }),\n\n\t//* Set initial and refresh cache loadings\n\t[setLoadings.type]: (state, { payload }) => ({\n\t\t...(state || {}),\n\t\tloadings: { ...state?.loadings, ...(payload || {}) },\n\t}),\n\n\t//* Clear all classes cached data\n\t[clearLocalStorage.type]: (state, { payload }) => {\n\t\tconst { init_loading, refresh_loading } = payload;\n\t\treturn {\n\t\t\t...initState,\n\t\t\tdisconnected: state?.disconnected,\n\t\t\tliveUpdateStatus: state?.liveUpdateStatus,\n\t\t\tloadings: { init: init_loading, refresh: refresh_loading },\n\t\t};\n\t},\n\n\t//* Clear cached data for specified class\n\t[clearClassData.type]: (state, { payload }) => {\n\t\tremoveBrowserCache();\n\t\tconst new_state = OBJ.clone(state);\n\t\tdelete (new_state as any)?.[payload];\n\t\treturn new_state as InitStateType;\n\t},\n\n\t//*---------------------- Class Data reducers -------------------------\n\n\t[setLocalData.type]: (state: InitStateType, { payload }) => {\n\t\tlet { class_name, data = [], deleted = [], partialUpdate, last_update } = payload;\n\t\tpartialUpdate = partialUpdate || !!deleted?.length;\n\n\t\tconst PRIMARY_KEY = `${class_name}_ID`;\n\t\tconst time = last_update || moment().utc().toISOString();\n\n\t\tif (!partialUpdate) data = (data as any[])?.reduce((acc, i) => (acc[i?.[PRIMARY_KEY]] = i) && acc, {});\n\t\telse data = dataUpdater((state as any)?.[class_name] || {}, data, deleted || [], PRIMARY_KEY);\n\n\t\tconst extra = { last_update: { ...(state?.last_update || {}), [class_name]: time } };\n\n\t\treturn { ...(state || {}), [class_name]: data, ...(extra || {}) };\n\t},\n\n\t//*----------------------------------------------------------------------\n});\n\nconst dataUpdater = (cur_data: Record, partial_data: any[], deleted_ids: string[], pk: string) => {\n\tconst data = OBJ.clone(cur_data);\n\tfor (const di of deleted_ids) if (!!di) delete data?.[di];\n\tfor (const pd of partial_data || []) if (!!pd?.[pk]) data[pd?.[pk]] = pd;\n\treturn data;\n};\n\ntype InitStateType = EXTRA & CLASS_DATA_TYPE;\n\ntype CLASS_DATA_TYPE = Partial>>;\n\ntype EXTRA = {\n\tdisconnected?: boolean;\n\tliveUpdateStatus?: boolean;\n\tloadings?: { init?: boolean; refresh?: boolean };\n\tlast_update?: Partial, string>>;\n};\n\nexport default LocalCacheReducer;\n","import { combineReducers } from 'redux';\nimport AccountReducer from './AccountReducer';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport DashboardReducer from './DashboardReducer';\nimport LocalCacheReducer from './LocalCacheReducer';\nimport { CONFIG } from './../../../App/Config/constants';\nimport createCompressor from 'redux-persist-transform-compress';\n\nconst compressor = createCompressor();\n\nconst reducers = combineReducers({\n\tdashboard: DashboardReducer,\n\taccount: persistReducer(\n\t\t{\n\t\t\tstorage,\n\t\t\tkey: 'account',\n\t\t\tblacklist: ['error', 'loading'],\n\t\t\tkeyPrefix: `${CONFIG.APP_SHORT_NAME}-`,\n\t\t\ttransforms: [compressor] as any,\n\t\t},\n\t\tAccountReducer\n\t),\n\tlocalStorage: persistReducer(\n\t\t{\n\t\t\tstorage,\n\t\t\tkey: 'storage',\n\t\t\tkeyPrefix: `${CONFIG.APP_SHORT_NAME}-`,\n\t\t\ttransforms: [compressor] as any,\n\t\t},\n\t\tLocalCacheReducer\n\t),\n});\n\nexport default reducers;\n","// \nimport { FC } from 'react';\nimport { Provider } from 'react-redux';\nimport { createStateSyncMiddleware } from 'redux-state-sync';\n\nimport { isDev } from '../Utils/React';\nimport { configureStore } from '@reduxjs/toolkit';\nimport { PersistGate } from 'redux-persist/integration/react';\n\nimport reducers from './reducers';\nimport persistStore from 'redux-persist/es/persistStore';\n\nconst stateSyncConfig = { blacklist: ['persist/PERSIST', 'persist/REHYDRATE'] };\n\nexport const store = configureStore({\n\tdevTools: isDev,\n\treducer: reducers,\n\tmiddleware: getDefMid => {\n\t\tconst mids = getDefMid({ serializableCheck: false });\n\t\tmids.push(createStateSyncMiddleware(stateSyncConfig));\n\t\treturn mids;\n\t},\n});\n\nconst Store: FC = ({ children }) => (\n\t\n\t\t{children}\n\t\n);\n\nexport type StoreTypes = ReturnType;\n\nexport default Store;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import './ErrorBoundary.scss';\nimport { Component } from 'react';\nimport FaIcon from '../FaIcon';\nimport { Button } from 'rsuite';\nimport { isDev } from '../../Tools/Utils/React';\n\nexport default class ErrorBoundary extends Component {\n\tstate = { hasError: false, remainTime: 10 };\n\n\tstatic getDerivedStateFromError(error: any) {\n\t\t// Update state so the next render will show the fallback UI.\n\t\treturn { hasError: true };\n\t}\n\n\tcomponentDidCatch(error: any, errorInfo: any) {\n\t\t// You can also log the error to an error reporting service\n\t\tif (isDev) return;\n\t\tconsole.error(error, errorInfo);\n\t\tconst interval = setInterval(() => {\n\t\t\tthis.setState((s: any) => {\n\t\t\t\tif (s.remainTime === 0) {\n\t\t\t\t\twindow.location.href = '/';\n\t\t\t\t\treturn clearInterval(interval);\n\t\t\t\t}\n\t\t\t\treturn { ...s, remainTime: s.remainTime - 1 };\n\t\t\t});\n\t\t}, 1000);\n\t}\n\n\trender() {\n\t\tif (!this.state.hasError) return this.props.children;\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t

Something went wrong !

\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import App from './App/App';\nimport ReactDOM from 'react-dom';\nimport './Assets/scss/index.scss';\nimport Store from './Tools/Store';\nimport reportWebVitals from './reportWebVitals';\nimport { BrowserRouter } from 'react-router-dom';\nimport ErrorBoundary from './Components/ErrorBoundary/ErrorBoundary';\n\nconst app = (\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n);\n\nReactDOM.render(app, document.querySelector('#root'));\nreportWebVitals();\n","import crypto from 'crypto';\n\nexport const capitalize = (str: string) => `${str?.charAt?.(0)?.toUpperCase?.()}${str?.slice?.(1)?.toLowerCase?.()}`;\n\nexport const lowercaseFirst = (str: string) => `${str?.charAt?.(0)?.toLowerCase?.()}${str?.slice?.(1)}`;\n\nexport const uppercaseWords = (str: string): string =>\n\tstr\n\t\t?.toLowerCase()\n\t\t?.split(/[_\\s]/)\n\t\t?.map((i: string) => capitalize(i))\n\t\t?.join(' ');\n\nexport const camelCase = (str: string) => str.trim().replace(/[-_\\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n\nexport const slugify = (str: string): string =>\n\tstr\n\t\t.toLowerCase()\n\t\t.replace(/\\s+/g, '-')\n\t\t.replace(/[^\\w-]+/g, '');\n\nexport const isContain = (string: string, searchValue: string) => {\n\tconst lowerStr = string?.toLocaleLowerCase?.()?.trim();\n\tconst lowerSearchValue = searchValue?.toLocaleLowerCase?.()?.trim();\n\treturn lowerStr?.includes(lowerSearchValue);\n};\n\nexport const isSomeContain = (searchValue: string, values: any[]) => values.some(sp => !!sp && isContain(sp, searchValue));\n\nexport const isEmail = (str: string) =>\n\t/^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i.test(\n\t\tstr\n\t);\n\nexport const jwtDecode = (token: string): { exp?: number; iat?: number } => {\n\tif (token === '') return {};\n\treturn JSON.parse(\n\t\tdecodeURIComponent(\n\t\t\tatob(token.split('.')[1]?.replace('-', '+')?.replace('_', '/'))\n\t\t\t\t.split('')\n\t\t\t\t.map(c => `%${('00' + c.charCodeAt(0).toString(16)).slice(-2)}`)\n\t\t\t\t.join('')\n\t\t)\n\t);\n};\n\nexport const generateRandomString = (length: number) => {\n\tconst chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\tconst numbers = '0123456789';\n\treturn Array(length)\n\t\t.fill('')\n\t\t.map(_ => {\n\t\t\tconst set = Math.random() < 0.5 ? chars : numbers;\n\t\t\treturn set[~~(Math.random() * set.length)];\n\t\t})\n\t\t.join('');\n};\n\nexport const uid = () => generateRandomString(~~Math.random() * 10 + 3);\n\nexport const createHashId = (str: string) => crypto.createHash('sha256').update(str).digest('base64');\n\nexport const urlHashes = (hash?: string) => hash?.split('#')?.slice(1) || [];\n\nexport const emailRegex =\n\t/^((([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,}))?$/i;\n\nexport const isUpperCase = (str: string) => /^[A-Z]*$/.test(str);\n\nexport const numFormatter = (num: number) => num?.toLocaleString('en', { minimumFractionDigits: 2 });\n\nexport const userNameAbbreviation = (str: string) => {\n\tif (!str) return '';\n\tconst parts = str?.split(' ');\n\tif (parts.length === 1) return str.slice(0, 2)?.toUpperCase();\n\telse {\n\t\tconst first = parts[0].slice(0, 1);\n\t\tconst last = parts[parts.length - 1].slice(0, 1);\n\t\treturn `${first}${last}`;\n\t}\n};\n\nexport const priceFormatter = (num: number) => (num || 0)?.toLocaleString('en', { minimumFractionDigits: 2 });\n\nexport const orderNumberMap = (str: string) => {\n\tconst number = +str?.replace('DMP', '');\n\tif (number >= 0) return `DMP #${number}`;\n\treturn undefined;\n};\n\nexport const invNumberMap = (str: string) => {\n\tconst number = +str?.replace('HD', '');\n\tif (number >= 0) return `HD #${number}`;\n\treturn undefined;\n};\n\nexport const invoiceNumberMap = (str: string) => {\n\tconst number = +str?.replace('INV', '');\n\tif (number >= 0) return `INV #${number}`;\n\treturn undefined;\n};\n\nexport const generateRandomBlueHex = () => {\n\tconst red = Math.floor(Math.random() * 56);\n\tconst green = Math.floor(Math.random() * 56);\n\tconst blue = Math.floor(Math.random() * 256);\n\treturn '#' + red.toString(16).padStart(2, '0') + green.toString(16).padStart(2, '0') + blue.toString(16).padStart(2, '0');\n};\n\nexport const splitString = (str: string) => {\n\tlet parts = str?.split?.(/(\\d+)/);\n\tlet letters = parts?.[0];\n\tlet numbers = parts?.[1];\n\treturn `${letters} #${numbers}`;\n};\n","import { createAction } from '@reduxjs/toolkit';\n\nexport const setLoading = createAction('setLoading');\n\nexport const setUploadProgress = createAction('setUploadProgress');\n","export default __webpack_public_path__ + \"static/media/fa.bundle.109bf56b.svg\";","import { IconNames } from '../Assets/fontawesome/fa.names';\nimport svgBundle from '../Assets/fontawesome/fa.bundle.svg';\nimport { FC, useEffect, MouseEventHandler, CSSProperties } from 'react';\nimport useMountedState from '../Tools/Hooks/useMountedState/useMountedState';\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst FaIcon: FC = ({ fa, onClick, className = '', style }) => {\n\tconst [svgTag, setSvgTag] = useMountedState();\n\tconst [svgBase, setSvgBase] = useMountedState(svgBundle);\n\n\tuseEffect(() => {\n\t\tif (svgTag === '#' + fa) return;\n\t\tsetSvgTag('#' + fa);\n\t\tif (isDev) importSvg[fa[0]]().then(s => setSvgBase(s.default));\n\t}, [fa]);\n\n\tconst IconElement = (\n\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn IconElement;\n};\n\nconst dynamicSvg = (name: string) => () => import(`../Assets/fontawesome/svg/${name}.fa.svg`);\nlet importSvg: { [key: string]: () => Promise } = {\n\tt: dynamicSvg('thin'),\n\tl: dynamicSvg('light'),\n\ts: dynamicSvg('solid'),\n\tb: dynamicSvg('brands'),\n\tr: dynamicSvg('regular'),\n\td: dynamicSvg('duotone'),\n};\n\ntype FaIconProps = {\n\tfa: IconNames;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tonClick?: MouseEventHandler;\n};\n\nexport default FaIcon;\n"],"sourceRoot":""}