affiliate-front-shared 1.3.29 → 1.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/utils/PackageServicesProvider.tsx","../src/utils/exportTranslation.ts","../src/utils/PackageTranslationProvider.tsx","../src/assets/icons/chevron-down.svg?react","../src/layouts/base-admin-layout/sidebar/style.ts","../src/hooks/useFetch.ts","../src/stores/useUserStore.ts","../src/assets/icons/checkmark.svg?react","../src/layouts/base-admin-layout/profile-menu/style.ts","../src/layouts/base-admin-layout/profile-menu/index.tsx","../src/layouts/base-admin-layout/sidebar/index.tsx","../src/layouts/base-admin-layout/style.ts","../src/layouts/base-admin-layout/index.tsx","../src/layouts/authorization-layout/style.ts","../src/assets/icons/arrow-left.svg?react","../src/styled-components/arrowLeft.ts","../src/components/box-component/style.ts","../src/components/box-component/index.tsx","../src/layouts/authorization-layout/index.tsx","../src/modules/GridViewPage/types.ts","../node_modules/zustand/esm/vanilla.mjs","../src/modules/GridViewPage/store/createGridViewStore.ts","../src/modules/GridViewPage/GridViewStoreProvider.tsx","../src/modules/GridViewPage/hooks/useGridViewSessionStorage.ts","../src/hooks/useElementHeight.ts","../src/modules/GridViewPage/style.ts","../src/assets/icons/filter.svg?react","../src/assets/icons/settings.svg?react","../src/assets/icons/color.svg?react","../src/hooks/useDebounce.ts","../src/assets/icons/arrow-up.svg?react","../src/assets/icons/arrow-down.svg?react","../src/assets/icons/sort.svg?react","../src/modules/GridViewPage/components/DropdownWrapper.tsx","../src/modules/GridViewPage/components/SortDropdown.tsx","../src/modules/GridViewPage/components/FilterDropdown.tsx","../src/stores/useModalStore.ts","../src/modules/GridViewPage/components/page-header/style.ts","../src/components/filter-configuration/constants.ts","../src/hooks/useFilterDataSourceType.ts","../src/utils/antdFunction.ts","../src/modules/GridViewPage/components/page-header/PageHeader.tsx","../src/assets/icons/plus.svg?react","../src/assets/icons/arrow-refresh.svg?react","../src/utils/DateHelper.ts","../src/assets/icons/close-mark.svg?react","../src/styled-components/closeMark.ts","../src/components/modal-host/TablePopup.style.ts","../src/utils/functions.ts","../src/utils/catchErrorFunction.ts","../src/components/filter-configuration/index.tsx","../src/assets/icons/arrow-right.svg?react","../src/styled-components/rightArrow.ts","../src/modules/GridViewPage/components/delete-record-popup/DeleteRecordPopup.tsx","../src/styled-components/styledCheckbox.ts","../src/modules/GridViewPage/components/PageFilter.tsx","../src/modules/GridViewPage/components/Table/style.ts","../src/modules/GridViewPage/components/Table/utils.ts","../src/modules/GridViewPage/components/Table/TableBodyRows.tsx","../src/modules/GridViewPage/components/Table/SubGroupedSection.tsx","../src/modules/GridViewPage/components/Table/GroupedTableBody.tsx","../src/modules/GridViewPage/components/Table/TablePagination.tsx","../src/assets/icons/eye-hide.svg?react","../src/modules/GridViewPage/components/Table/TableTh.tsx","../src/components/no-data/style.ts","../src/components/no-data/index.tsx","../src/modules/GridViewPage/components/Table/index.tsx","../src/modules/GridViewPage/components/setting-sidebar/style.ts","../src/assets/icons/close.svg?react","../src/assets/icons/checkmark-filled.svg?react","../src/components/contact-info-modal/style.ts","../src/assets/icons/error.svg?react","../src/utils/errors.ts","../src/components/two-factor-popup/style.tsx","../src/components/popup-mfa/mfa-all-popups/style.ts","../src/components/two-factor-popup/EnterBackupCodes.tsx","../src/components/generic-modal/style.ts","../src/components/generic-modal/index.tsx","../src/components/contact-info-modal/index.tsx","../src/hooks/useContactInfoController.ts","../src/modules/GridViewPage/components/setting-sidebar/index.tsx","../src/modules/GridViewPage/GridViewPage.tsx","../src/modules/GridViewPage/GridViewPageWrapper.tsx","../src/components/modal-host/ModalHost.tsx","../src/components/popup-mfa/PopupMFA.tsx","../src/components/popup-mfa/mfa-all-popups/SelectMFAMethod.tsx","../src/components/popup-mfa/mfa-all-popups/VerifyAuthenticatorCode.tsx","../src/components/popup-mfa/mfa-all-popups/SelectAuthenticatorApp.tsx","../src/components/popup-mfa/style.ts","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../src/components/popup-mfa/mfa-all-popups/ConnectAuthenticatorApp.tsx","../src/components/popup-mfa/mfa-all-popups/DisableAuthenticator.tsx","../src/components/popup-mfa/mfa-all-popups/VerifyEmailCode.tsx","../src/components/popup-mfa/mfa-all-popups/BackupCodes.tsx","../src/components/popup-mfa/mfa-all-popups/index.tsx","../src/components/page-breadcrumb/style.ts","../src/styled-components/breadcrumb.ts","../src/components/page-breadcrumb/index.tsx","../src/components/two-factor-popup/constants.ts","../src/components/two-factor-popup/TwoFactorPopup.tsx","../src/components/chart/style.ts","../src/components/chart/index.tsx","../src/components/spinner/style.ts","../src/components/spinner/index.tsx","../src/components/coming-soon/style.ts","../src/components/coming-soon/index.tsx","../src/components/expandable-table/style.ts","../src/assets/icons/chevron-up.svg?react","../src/components/expandable-table/index.tsx","../src/components/date-range-filter-tabs/style.ts","../node_modules/i18next/dist/esm/i18next.js","../src/assets/i18n/config.ts","../node_modules/dayjs/dayjs.min.js","../src/components/date-range-filter-tabs/date-picker/index.tsx","../src/styled-components/empty.ts","../src/styled-components/table.ts","../src/styled-components/tooltip.ts","../src/styled-components/StyledSelect.ts","../src/components/date-range-filter-tabs/index.tsx","../src/styled-components/styledDropdownContainer.ts","../src/utils/export-reports.tsx","../src/components/excel-export/style.ts","../src/components/excel-export/index.tsx","../src/utils/exportCsv.ts","../src/utils/exportXLSX.ts","../src/components/excel-export-selected/style.ts","../src/components/excel-export-selected/index.tsx","../src/components/date-picker-to-ISO/DatePickerToISO.tsx","../src/components/upload-files/style.ts","../src/components/upload-files/index.tsx","../src/styled-components/tabs.ts","../src/components/generic-tab-component/GenericTabComponent.style.ts","../src/components/responsive-sidebar-button/style.ts","../src/components/responsive-sidebar-button/index.tsx","../src/components/generic-tab-component/GenericTabComponent.tsx","../src/hooks/useFormController.ts","../src/hooks/useNewDesignFormController.ts","../src/hooks/useTwoFactor.ts","../src/hooks/useNavigationGuard.ts","../src/hooks/useAutofillStartDetection.ts","../src/utils/formatter.ts","../src/utils/parseCommissionErrors.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\n\n// ─── Response shapes ──────────────────────────────────────────────────────────\n\nexport interface FiltersType {\n id?: number;\n name: string;\n value: string;\n}\n\nexport interface TwoFactorInitResponse {\n data: {\n success: boolean;\n value?: {\n isTwoFactorRequired: boolean;\n token: string;\n id: string;\n };\n };\n}\n\nexport interface MFASetupResponse {\n data: {\n value: {\n totpSecret: string;\n qrCodeImage: string;\n provisioningUri: string;\n };\n };\n}\n\nexport interface SuccessResponse {\n data: { success: boolean; value?: unknown };\n}\n\nexport interface CustomerItem {\n id: number | string;\n name: string;\n}\n\n// ─── Service definitions ──────────────────────────────────────────────────────\n// All services are optional — provide only what your project uses.\n\nexport interface PackageServices {\n // ── GridView ──────────────────────────────────────────────────────────────\n getMyFilters?: (filterType: number | string) => Promise<{ data: FiltersType[] }>;\n saveMyFilter?: (filterType: string, name: string, value: string) => Promise<SuccessResponse>;\n deleteMyFilter?: (id: number) => Promise<SuccessResponse>;\n\n // ── MFA setup ─────────────────────────────────────────────────────────────\n enableTwoFactorService?: () => Promise<TwoFactorInitResponse>;\n initiateMFA?: () => Promise<MFASetupResponse>;\n verifyMFA?: (otpValue: string) => Promise<SuccessResponse>;\n\n // ── Two-factor verification (login / sensitive actions) ───────────────────\n confirmTwoFactor?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n resendOTP?: (confirmationToken: string, id: string) => Promise<SuccessResponse>;\n confirmTwoFactorBackupCode?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n\n // ── Contact info ──────────────────────────────────────────────────────────\n enableContactInfo?: () => Promise<SuccessResponse>;\n disableContactInfo?: () => Promise<SuccessResponse>;\n confirmContactInfo?: (code: string, otpValue: string, id: string) => Promise<SuccessResponse>;\n confirmContactInfoBackup?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n\n // ── Identity / customer switcher ──────────────────────────────────────────\n getCustomers?: () => Promise<{ data: CustomerItem[] }>;\n postSelectedCustomer?: (id: number | string) => Promise<SuccessResponse>;\n}\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\nconst PackageServicesContext = createContext<PackageServices>({});\n\n/**\n * Wrap your app (or the section using this package) once with this provider\n * and pass in all the API functions your project implements.\n *\n * Example:\n * import { enableTwoFactorService, getMyFilters } from './services/myApi';\n *\n * <PackageServicesProvider services={{ enableTwoFactorService, getMyFilters }}>\n * <App />\n * </PackageServicesProvider>\n */\nexport function PackageServicesProvider({\n services,\n children,\n}: {\n services: PackageServices;\n children: ReactNode;\n}) {\n return (\n <PackageServicesContext.Provider value={services}>\n {children}\n </PackageServicesContext.Provider>\n );\n}\n\n/**\n * Use inside any component in this package to access injected service functions.\n *\n * Example:\n * const { getMyFilters } = usePackageServices();\n * if (!getMyFilters) return;\n * const res = await getMyFilters(filterType);\n */\nexport function usePackageServices(): PackageServices {\n return useContext(PackageServicesContext);\n}\n","export type TranslationFn = (key: string, options?: Record<string, unknown>) => string;\n\n// Module-level singleton — set by PackageTranslationProvider\nlet _t: TranslationFn = (key: string) => key;\n\n/**\n * Called by PackageTranslationProvider to inject the parent app's t function.\n * The provider re-calls this whenever the language changes so the singleton stays fresh.\n */\nexport function setPackageTranslationFn(fn: TranslationFn): void {\n _t = fn;\n}\n\n// ─── Namespace helpers ────────────────────────────────────────────────────────\n// Each function prefixes the key with its namespace so the parent app's\n// translation files can be structured as:\n// { \"general\": { \"Filter\": \"Filter\" }, \"actions\": { \"Ascending\": \"Ascending\" }, … }\n// or flat with dot-notation keys, depending on the i18n library setup.\n\nexport const tGeneral = (key: string, options?: Record<string, unknown>): string =>\n _t(`general.${key}`, options);\nexport const tActions = (key: string, options?: Record<string, unknown>): string =>\n _t(`actions.${key}`, options);\nexport const tAuthentication = (key: string, options?: Record<string, unknown>): string =>\n _t(`authentication.${key}`, options);\nexport const tMonths = (key: string, options?: Record<string, unknown>): string =>\n _t(`months.${key}`, options);\nexport const tDate = (key: string, options?: Record<string, unknown>): string =>\n _t(`date.${key}`, options);\nexport const tWeekDays = (key: string, options?: Record<string, unknown>): string =>\n _t(`weekDays.${key}`, options);\nexport const tSidebar = (key: string, options?: Record<string, unknown>): string =>\n _t(`sidebar.${key}`, options);\n\nexport const tReports = (key: string, options?: Record<string, unknown>): string =>\n _t(`reports.${key}`, options);\n\nexport const tNoData = (key: string, options?: Record<string, unknown>): string =>\n _t(`noData.${key}`, options);\n\nexport const tTwoFactor = (key: string, options?: Record<string, unknown>): string =>\n _t(`twoFactor.${key}`, options);\n\nexport const tComingSoon = (key: string, options?: Record<string, unknown>): string =>\n _t(`comingSoon.${key}`, options);\n","import { useEffect, type ReactNode } from 'react';\nimport { setPackageTranslationFn, type TranslationFn } from './exportTranslation';\n\ninterface PackageTranslationProviderProps {\n /**\n * The translation function from the parent app's i18n library.\n * Called with keys like \"general.Filter\", \"actions.Ascending\", etc.\n *\n * Example with react-i18next (flat namespace):\n * const { t } = useTranslation();\n * <PackageTranslationProvider t={t}>\n *\n * Example with a custom function:\n * <PackageTranslationProvider t={(key) => myTranslations[key] ?? key}>\n */\n t: TranslationFn;\n children: ReactNode;\n}\n\n/**\n * Wrap your app (or the section using this package) with this provider to\n * inject your project's translation function into the package.\n *\n * Re-renders automatically when `t` changes (e.g. on language switch),\n * keeping all package translations in sync.\n */\nexport function PackageTranslationProvider({ t, children }: PackageTranslationProviderProps) {\n // Sync immediately on first render (covers SSR / initial paint)\n setPackageTranslationFn(t);\n\n // Keep in sync when `t` changes (language switch causes a new `t` reference\n // in react-i18next, which triggers this effect and updates the singleton)\n useEffect(() => {\n setPackageTranslationFn(t);\n }, [t]);\n\n return <>{children}</>;\n}\n","import * as React from \"react\";\nconst SvgChevronDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.33343 5.72363L8.0001 8.3903L10.6668 5.72363L11.6096 6.66644L8.0001 10.2759L4.39062 6.66644L5.33343 5.72363Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgChevronDown;\n","import { Menu } from 'antd';\nimport styled from 'styled-components';\nimport DownArrow from '../../../assets/icons/chevron-down.svg?react';\n\nexport const StyledDownArrow = styled(DownArrow)`\n color: var(--color-text-primary, #131412);\n`;\n\nexport const StyledSidebar = styled.div`\n background: var(--color-bg-secondary, #f5f5f5);\n color: #000;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n\n height: 100vh;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n`;\n\nexport const StyledHeaderLink = styled.div`\n display: inline-flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 1rem;\n img {\n width: var(--size-300, 1.5rem);\n height: var(--size-300, 1.5rem);\n border-radius: var(--border-radius-025, 0.125rem);\n }\n span {\n color: var(--color-text-primary, #131412);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n`;\n\nexport const StyledHeaderLogo = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n padding-top: 10px;\n cursor: pointer;\n width: max-content;\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const StyledMenu = styled(Menu)`\n border: none !important;\n background: transparent;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n\n border: none !important;\n background: transparent;\n .ant-menu-item {\n height: auto;\n width: auto;\n margin: 0.13rem 0.75rem !important;\n padding: 0.5rem !important;\n border-radius: var(--border-radius-025, 0.125rem);\n &.ant-menu-item-selected {\n background: var(--color-bg-tertiary, #e7e7e7);\n color: var(--color-text-primary, #131412);\n font-weight: var(--text-weight-medium, 500);\n }\n }\n .ant-menu-item-group {\n margin-top: 0.5rem;\n }\n .ant-menu-item-group-title {\n padding: 0.75rem 0 0.5rem 1.25rem;\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n }\n .ant-menu-item,\n .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n &:hover {\n a {\n color: var(--color-text-primary, #131412);\n }\n }\n svg {\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n\n .ant-menu-submenu-title {\n height: auto;\n width: auto;\n padding: 0.75rem 0 0.5rem 0.5rem !important;\n margin: 0.13rem 0.75rem !important;\n border-radius: var(--border-radius-025, 0.125rem);\n }\n\n .ant-menu-submenu-selected > .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412);\n }\n\n @media (max-width: 991px) {\n .ant-menu-submenu .ant-menu-item {\n margin-left: 1.5rem !important;\n }\n }\n`;\n","import { useState, useEffect } from 'react';\n\nexport const useFetch = <T>(\n fetchData: () => Promise<T>,\n dependencies: any[] = [],\n condition: boolean = true\n) => {\n const [data, setData] = useState<T | null>(null);\n const [listItems, setListItems] = useState<Array<any> | null>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n\n const fetchDataFromAPI = async () => {\n if (condition) {\n try {\n setLoading(true);\n setData(null);\n const response: any = await fetchData();\n setData(response);\n if (response?.data?.items) {\n setListItems(response.data.items);\n }\n } catch (err) {\n setError('Failed to fetch data');\n } finally {\n setLoading(false);\n }\n }\n };\n\n useEffect(() => {\n fetchDataFromAPI();\n }, [...dependencies]);\n\n return {\n response: data,\n loading,\n error,\n fetchData: fetchDataFromAPI,\n listItems: listItems,\n };\n};\n","import { create } from 'zustand';\n\ninterface UserData {\n type: string;\n id: number;\n userName: string;\n fullName: string;\n affiliateUserId: number;\n token: string;\n expired: string; // ISO date string\n permissions: Record<string, number>;\n sensitiveDataExpiration?: string;\n}\ninterface UserStore {\n user: UserData | null;\n prefersDark: boolean;\n storedThemeMode: boolean | null;\n setUser: (userData: UserData) => void;\n logout: () => void;\n setThemeMode: (prefersDark: boolean | null) => void;\n isSentsitiveInfoVisible: () => boolean;\n isTokenActive: () => boolean;\n hasPermission: (permission: number) => boolean;\n isManager: () => boolean;\n}\n\nconst useUserStore = create<UserStore>((set, get) => ({\n user: localStorage.getItem('userData')\n ? JSON.parse(localStorage.getItem('userData') as string)\n : null,\n\n prefersDark: false,\n storedThemeMode: null,\n setUser: (userData: any) => {\n localStorage.setItem('useToken', userData.token);\n localStorage.setItem('userData', JSON.stringify(userData));\n set({ user: userData });\n },\n\n setThemeMode: (newThemeMode: boolean | null) => {\n // when newThemeMode = null -> get from user preferences\n // when newThemeMode = true -> dark\n // when newThemeMode = false -> light\n const prefersDark =\n newThemeMode === null\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\n : !!newThemeMode;\n\n set({\n prefersDark: prefersDark,\n storedThemeMode: newThemeMode,\n });\n\n document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');\n localStorage.setItem('themeMode', JSON.stringify(newThemeMode));\n },\n logout: () => {\n localStorage.removeItem('userData');\n localStorage.removeItem('useToken');\n set({ user: null });\n },\n isSentsitiveInfoVisible: () => {\n const user = get().user;\n if (!user?.sensitiveDataExpiration) return false;\n return new Date() < new Date(user.sensitiveDataExpiration);\n },\n isTokenActive: () => {\n const user = get().user;\n if (!user?.expired) return false;\n return new Date() < new Date(user.expired);\n },\n isManager: () => {\n const user = get().user;\n\n if (user?.type === 'Manager') {\n return true;\n } else {\n return false;\n }\n },\n\n hasPermission: (permission: number) => {\n const user = get().user;\n if (!user?.permissions) return false;\n return !!user.permissions[permission];\n },\n}));\n\nexport default useUserStore;\n","import * as React from \"react\";\nconst SvgCheckmark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.4715 5.13812L12.5286 4.19531L7.00005 9.72391L4.13812 6.86198L3.19531 7.80479L7.00005 11.6095L13.4715 5.13812Z\", fill: \"currentColor\" }));\nexport default SvgCheckmark;\n","import { Menu } from 'antd';\nimport styled from 'styled-components';\nimport CheckMark from '../../../assets/icons/checkmark.svg?react';\n\nexport const StyledCheckMark = styled(CheckMark)`\n display: flex;\n justify-content: center;\n color: var(--color-text-primary, #131412) !important;\n`;\nexport const StyledProfileMenuChildren = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 256px;\n`;\n\nexport const StyledProfileLabel = styled.span`\n color: var(--color-text-primary, #131412);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const StyledMenu = styled(Menu)`\n display: flex;\n padding: var(--spacing-050, 4px) 0;\n flex-direction: column;\n gap: var(--spacing-025, 2px);\n align-self: stretch;\n background: var(--color-bg-quaternary, #fff);\n box-shadow:\n 0 4px 8px 0 rgba(20, 20, 20, 0.02),\n 0 4px 16px 0 rgba(20, 20, 20, 0.04) !important;\n border: none !important;\n border: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n\n .ant-menu-item-selected {\n background-color: transparent !important;\n }\n .ant-menu-item,\n .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412) !important;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px) !important;\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n }\n .ant-menu-item-divider {\n background: var(--color-bg-secondary, #f5f5f5) !important;\n height: 3px;\n }\n\n .ant-menu-submenu-popup > .ant-menu {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #fff);\n }\n\n .ant-menu-submenu-popup .ant-menu-item {\n background-color: transparent !important;\n display: flex;\n align-items: center;\n }\n\n .ant-menu-submenu-popup .ant-menu-item:hover {\n background-color: transparent !important;\n }\n`;\nexport const ProfileMenuWrapper = styled.div`\n width: 256px;\n position: absolute !important;\n z-index: 10000;\n`;\n","import { useNavigate } from 'react-router';\nimport { useFetch } from '../../../hooks/useFetch';\nimport useUserStore from '../../../stores/useUserStore';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\nimport {\n ProfileMenuWrapper,\n StyledCheckMark,\n StyledMenu,\n StyledProfileLabel,\n StyledProfileMenuChildren,\n} from './style';\nimport { useTranslation } from 'react-i18next';\n\nconst ProfileMenu = ({ closeProfileDropdown }: any) => {\n const navigate = useNavigate();\n const { getCustomers, postSelectedCustomer } = usePackageServices();\n const { storedThemeMode, logout, setThemeMode, user } = useUserStore();\n const { i18n } = useTranslation();\n\n function onLogoutClick() {\n logout();\n navigate('/authorization/login');\n }\n\n function handleLanguageSelect(lang: string) {\n i18n.changeLanguage(lang);\n window.location.reload();\n }\n\n const renderLabel = (label: any, isSelected?: boolean) => {\n return (\n <StyledProfileMenuChildren>\n <StyledProfileLabel>{label}</StyledProfileLabel>\n {isSelected && (\n <span>\n <StyledCheckMark />\n </span>\n )}\n </StyledProfileMenuChildren>\n );\n };\n\n const { response } = useFetch<any>(getCustomers ?? (() => Promise.resolve({ data: [] })), []);\n\n async function handleSetCustomer(id: any) {\n if (!postSelectedCustomer) return;\n const resp = await postSelectedCustomer(id);\n const userData = resp.data.value as any;\n\n localStorage.setItem('useToken', userData.token);\n localStorage.setItem('userData', JSON.stringify(userData));\n }\n\n const navigateToProfile = () => {\n if (user?.type === 'Manager') {\n navigate(`/affiliate-manager/profile/${user.id}`);\n } else {\n navigate(`/affiliate-users/profile/${user?.affiliateUserId}`);\n }\n };\n\n return (\n <ProfileMenuWrapper>\n <StyledMenu\n mode={window.innerWidth < 780 ? 'inline' : 'vertical'}\n key={'10'}\n getPopupContainer={trigger => trigger.parentElement || document.body}\n onClick={() => closeProfileDropdown(false)}\n >\n <StyledMenu.Item key={'10-1'} onClick={navigateToProfile}>\n {'Profile'}\n </StyledMenu.Item>\n <StyledMenu.Item key={'10-2'}> {'Notifications'}</StyledMenu.Item>\n <StyledMenu.Item key={'10-3'}> {'SecurityAccess'}</StyledMenu.Item>\n\n <StyledMenu.Divider />\n\n <StyledMenu.SubMenu key={'20'} title={'Language'}>\n <StyledMenu.Item key={'20-1'} onClick={() => handleLanguageSelect('en')}>\n {renderLabel('English', i18n.language === 'en')}\n </StyledMenu.Item>\n <StyledMenu.Item key={'20-2'} onClick={() => handleLanguageSelect('ka')}>\n {renderLabel('Georgian', i18n.language === 'ka')}\n </StyledMenu.Item>\n </StyledMenu.SubMenu>\n\n <StyledMenu.SubMenu key={'30'} title={'ColorTheme'}>\n <StyledMenu.Item key={'30-1'} onClick={() => setThemeMode(false)}>\n {renderLabel('Light', storedThemeMode === false)}\n </StyledMenu.Item>\n <StyledMenu.Item key={'30-2'} onClick={() => setThemeMode(true)}>\n {renderLabel('Dark', storedThemeMode === true)}\n </StyledMenu.Item>\n <StyledMenu.Item key={'30-3'} onClick={() => setThemeMode(null)}>\n {renderLabel(\n `${'DefinedBySystem'} (${window.matchMedia('(prefers-color-scheme: dark)').matches ? 'Dark' : 'Light'})`,\n storedThemeMode === null\n )}\n </StyledMenu.Item>\n </StyledMenu.SubMenu>\n\n <StyledMenu.Divider />\n\n <StyledMenu.SubMenu key={'40'} title={'ConnectedAccounts'}>\n {(response?.data || []).map((cust: any) => (\n <StyledMenu.Item key={cust.id} onClick={() => handleSetCustomer(cust.id)}>\n {renderLabel(cust.name)}\n </StyledMenu.Item>\n ))}\n </StyledMenu.SubMenu>\n\n <StyledMenu.Divider />\n\n <StyledMenu.Item key={'100'} onClick={onLogoutClick}>\n {'LogOut'}\n </StyledMenu.Item>\n </StyledMenu>\n </ProfileMenuWrapper>\n );\n};\n\nexport default ProfileMenu;\n","import {\n StyledDownArrow,\n StyledHeaderLink,\n StyledHeaderLogo,\n StyledMenu,\n StyledSidebar,\n} from './style';\nimport { useLocation } from 'react-router';\n\nimport { useEffect, useRef, useState } from 'react';\nimport ProfileMenu from '../profile-menu';\nimport { MenuItemProps } from 'antd';\n\ntype SidebarProps = {\n items?: MenuItemProps;\n topLogoPrimaryUrl?: string;\n shortName?: string;\n};\nconst Sidebar = ({ items, topLogoPrimaryUrl, shortName }: SidebarProps) => {\n const location = useLocation();\n\n const [showMenu, setShowMenu] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const toggleMenu = () => setShowMenu(prev => !prev);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setShowMenu(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n return (\n <StyledSidebar className=\"sidebar-wrapper\">\n <StyledHeaderLink ref={menuRef}>\n <StyledHeaderLogo onClick={toggleMenu}>\n <img src={topLogoPrimaryUrl} alt=\"logo\" />\n <span>{shortName}</span>\n\n <StyledDownArrow />\n </StyledHeaderLogo>\n <div>{showMenu && <ProfileMenu closeProfileDropdown={setShowMenu} />}</div>\n </StyledHeaderLink>\n\n <StyledMenu mode=\"inline\" selectedKeys={[location.pathname]} items={items as any} />\n </StyledSidebar>\n );\n};\n\nexport default Sidebar;\n","import styled from 'styled-components';\n\nexport const StyledLayout = styled.div`\n min-height: 100vh;\n min-height: 100dvh;\n background: var(--color-bg-primary, #fff);\n display: flex;\n\n .sidebar-wrapper {\n min-width: 15rem;\n flex: 0 0 250px;\n max-width: 250px;\n min-width: 250px;\n width: 250px;\n flex-shrink: 0;\n }\n @media (max-width: 991px) {\n .sidebar-wrapper {\n display: none;\n }\n }\n`;\n\nexport const StyledContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n max-height: 100vh;\n`;\n\nexport const StyledContent = styled.div`\n background: var(--color-bg-primary, #fff);\n`;\n","import { ReactNode } from 'react';\nimport Sidebar from './sidebar';\nimport { StyledContent, StyledContentWrapper, StyledLayout } from './style';\n\ninterface AdminPageProps {\n children: ReactNode;\n}\n\nconst AdminPage = ({ children }: AdminPageProps) => {\n return (\n <StyledLayout>\n <Sidebar />\n\n <StyledContentWrapper>\n <StyledContent>{children}</StyledContent>\n </StyledContentWrapper>\n </StyledLayout>\n );\n};\n\nexport default AdminPage;\n","import styled from 'styled-components';\n\ninterface BannerProps {\n backgroundcolor: any;\n}\n\nexport const Wrapper = styled.div`\n display: grid;\n grid-template-columns: 33.625rem 1fr;\n min-height: 100vh;\n overflow: hidden;\n\n .card-logo {\n width: var(--size-400, 32px);\n height: var(--size-400, 32px);\n flex-shrink: 0;\n object-fit: contain;\n }\n\n .terms-logo {\n width: var(--size-600, 48px);\n height: var(--size-600, 48px);\n flex-shrink: 0;\n object-fit: contain;\n }\n`;\n\nexport const LogoShortName = styled.span`\n font-size: 15px;\n`;\n\nexport const BackBtn = styled.button`\n height: var(--size-400, 2rem);\n width: var(--size-400, 2rem);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: var(--border-radius-full, 100%);\n border: none;\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n cursor: pointer;\n path {\n fill: var(--color-icon-primary, #131412);\n }\n`;\n\nexport const PageContainer = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 1.5rem;\n background: var(--color-bg-primary, #141414);\n header {\n padding: 1.25rem 0;\n height: 4.5rem;\n }\n @media (max-width: 1024px) {\n width: 100vw;\n height: 100%;\n header {\n height: 0;\n }\n }\n\n footer {\n margin-top: auto;\n padding: 1.5rem 0;\n height: 5rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n path[fill='#131412'] {\n fill: var(--color-text-primary);\n }\n nav {\n display: flex;\n gap: 1rem;\n a {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n\n @media (max-width: 768px) {\n margin-bottom: 2rem;\n }\n }\n`;\n\nexport const PageContent = styled.div``;\n\nexport const PageTitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n padding: 3rem 0 2rem;\n span {\n color: var(--color-text-primary, #fff);\n font-size: var(--typo-heading-size-medium, 1.875rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-heading-lineHeight-medium, 1.875rem);\n letter-spacing: var(--typo-heading-spacing-medium, -0.0375rem);\n }\n p {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-size: var(--typo-body-size-medium, 1.125rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 1.25rem);\n letter-spacing: var(--typo-body-spacing-medium, 0.00938rem);\n padding-right: 6rem;\n }\n\n @media (max-width: 768px) {\n padding: 1.7rem 0 1rem;\n }\n`;\n\nexport const SideBannerWrapper = styled.div<BannerProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props: any) => props.backgroundcolor};\n img,\n video {\n width: 50%;\n height: 50%;\n object-fit: contain;\n }\n\n @media (max-width: 1024px) {\n display: none;\n }\n`;\n\nexport const PageDesc = styled.p`\n /* body/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-medium, 18px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\n`;\n\nexport const PageTitle = styled.span`\n /* heading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-heading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-heading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-heading-spacing-medium, -0.5px);\n`;\n\nexport const AuthBoxComponentWrapper = styled.div`\n display: none;\n margin-bottom: 3px;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const StyledFooter = styled.footer`\n display: flex;\n gap: 10px;\n\n @media (max-width: 480px) {\n display: flex;\n flex-direction: column;\n align-items: start !important;\n }\n`;\n\nexport const StyledAuthSpan = styled.span``;\n","import * as React from \"react\";\nconst SvgArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 10, viewBox: \"0 0 12 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.60945 1.66669L2.94279 4.33335H11.3333V5.66669H2.94279L5.60945 8.33335L4.66665 9.27616L0.390503 5.00002L4.66665 0.723877L5.60945 1.66669Z\", fill: \"currentColor\" }));\nexport default SvgArrowLeft;\n","import styled from 'styled-components';\nimport ArrowLeft from '../assets/icons/arrow-left.svg?react';\n\nexport const ArrowLeftIcon = styled(ArrowLeft)`\n cursor: pointer;\n\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const BoxComponentWrapper = styled.div`\n width: 100%;\n height: 128px;\n max-height: max-content;\n border-radius: 2px;\n`;\n\nexport const BoxComponentBody = styled.div`\n display: flex;\n height: 100%;\n padding: 20px;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n background-color: var(--color-bg-secondary, #232323) !important;\n cursor: pointer;\n &.isActive {\n background-color: var(--color-bg-secondary, #232323);\n opacity: 1;\n transition: 0.3s all;\n }\n &.isNotActive {\n background-color: var(--color-bg-secondary, #232323);\n opacity: 0.2;\n transition: 0.3s all;\n }\n &.isActiveLightColor {\n /* var(--color-bg-secondary, #232323); */\n border-left: 4px solid ${props => props.color};\n }\n`;\n\nexport const BoxComponentBottomText = styled.span`\n color: var(--color-text-primary, #fff);\n\n /* subheading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const BoxComponentTopText = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const BoxComponentWithdrawalInfo = styled.span`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n /* caption/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n`;\n\nexport const CommissionStatusText = styled.span`\n color: ${props => props.color};\n font-size: 12px;\n`;\n","import { tGeneral } from '../../utils/exportTranslation';\nimport {\n BoxComponentBody,\n BoxComponentBottomText,\n BoxComponentTopText,\n BoxComponentWrapper,\n CommissionStatusText,\n} from './style';\n\nconst BoxComponent = ({\n boxBottomText,\n boxTopText,\n onClick,\n className,\n color,\n commissionStatus,\n}: any) => {\n return (\n <>\n <BoxComponentWrapper>\n <BoxComponentBody color={color} onClick={onClick} className={className}>\n <BoxComponentTopText>{boxTopText}</BoxComponentTopText>\n <BoxComponentBottomText>{boxBottomText}</BoxComponentBottomText>\n {commissionStatus && boxTopText === tGeneral('Commission') && (\n <CommissionStatusText color={color}>\n {commissionStatus}\n </CommissionStatusText>\n )}\n </BoxComponentBody>\n </BoxComponentWrapper>\n </>\n );\n};\n\nexport default BoxComponent;\n","import { ReactNode } from 'react';\nimport {\n AuthBoxComponentWrapper,\n BackBtn,\n LogoShortName,\n PageContainer,\n PageContent,\n PageDesc,\n PageTitle,\n PageTitleContainer,\n SideBannerWrapper,\n StyledAuthSpan,\n StyledFooter,\n Wrapper,\n} from './style';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { ArrowLeftIcon } from '../../styled-components/arrowLeft';\nimport { tAuthentication } from '../../utils/exportTranslation';\nimport BoxComponent from '../../components/box-component';\ninterface AuthorizationLayoutProps {\n pageTitle: string;\n pageDesc: string;\n children: ReactNode;\n logoPrimaryUrl: string;\n shortName: string;\n colorPrimary: string;\n}\n\nconst AuthorizationLayout = ({\n pageTitle,\n pageDesc,\n logoPrimaryUrl,\n shortName,\n colorPrimary,\n children,\n}: AuthorizationLayoutProps) => {\n const [searchParams] = useSearchParams();\n const backPath = searchParams.get('backPath');\n const navigate = useNavigate();\n function handleBackBtnClick(path: string) {\n navigate(path);\n }\n\n return (\n <Wrapper>\n <PageContainer>\n <header>\n {backPath && (\n <BackBtn onClick={() => handleBackBtnClick(backPath)}>\n <ArrowLeftIcon />\n </BackBtn>\n )}\n </header>\n <PageContent>\n <PageTitleContainer>\n <PageTitle>{pageTitle}</PageTitle>\n <PageDesc>{pageDesc}</PageDesc>\n </PageTitleContainer>\n </PageContent>\n <AuthBoxComponentWrapper>\n <BoxComponent\n boxTopText={<img className=\"card-logo\" src={logoPrimaryUrl} alt=\"logo\" />}\n boxBottomText={<LogoShortName>{shortName}</LogoShortName>}\n />\n </AuthBoxComponentWrapper>\n {children}\n <StyledFooter>\n <img\n className=\"terms-logo\"\n width={60}\n height={20}\n src={logoPrimaryUrl}\n alt=\"logo\"\n />\n <nav>\n <a href=\"\">\n <StyledAuthSpan>{tAuthentication('TermsOfUsage')}</StyledAuthSpan>\n </a>\n <a href=\"\">\n <StyledAuthSpan>{tAuthentication('PrivacyPolicy')}</StyledAuthSpan>\n </a>\n </nav>\n </StyledFooter>\n </PageContainer>\n\n <SideBannerWrapper backgroundcolor={colorPrimary}>\n <img src={logoPrimaryUrl} alt=\"logo\" />\n </SideBannerWrapper>\n </Wrapper>\n );\n};\n\nexport default AuthorizationLayout;\n","export enum TableViewOptions {\n TABLE,\n LIST,\n BOARD,\n}\n\nexport enum SortDirections {\n ASC,\n DESC,\n}\n\nexport enum FilterSelectTypes {\n NONE,\n COLUMN,\n TYPE,\n VALUE,\n}\n\nexport interface SortItem {\n title: string;\n direction: SortDirections;\n}\n\nexport interface FilterItem extends Column {\n selectType: FilterSelectTypes;\n filterValue?: number;\n filterLabel?: string;\n}\n\nexport enum ColumnFilterType {\n 'INPUT',\n 'SELECT',\n 'TwoComponentSelect',\n 'DATEPICKER',\n 'MULTISELECT',\n}\n\nexport interface ColumnFilterOption {\n id: number;\n name: string;\n}\n\nexport interface SelectFilterOption {\n value: number;\n label: string;\n}\nexport interface Column {\n title: string;\n dataIndex: string;\n width?: number;\n filterDropdown?: boolean;\n filters?: {\n type: ColumnFilterType;\n options: ColumnFilterOption[];\n };\n render?: (value: any, value2: any) => any;\n}\n\nexport interface GridViewPageProps {\n columns: Column[];\n getData: any;\n update?: boolean;\n hasDeleteBtn?: boolean;\n contentAfterPageHeader?: any;\n GridPageTopLeftComponent?: React.FC;\n hasEditBtn?: boolean;\n hasCreateBtn?: boolean;\n onRowClick?: any;\n checkedValue?: any;\n rowKey?: any;\n pagination?: any;\n CustomFilters?: any;\n initialFilterValues?: any;\n tableAdditionalFields?: (\n openModal: boolean,\n setOpenModal: (open: boolean) => void\n ) => React.ReactNode;\n setDisplayAddRuleModal: any;\n createIsModal: any;\n editButton: any;\n noPagination: boolean;\n noPageHeader?: boolean;\n noDataProps?: { title: any; description?: any; button?: any };\n exportButton?: any;\n hasSelect?: boolean;\n selectProps?: any;\n // New props for custom table component\n TableComponent?: React.ComponentType<any>;\n tableProps?: Record<string, unknown>;\n noNeedSidebarResponsiveButton?: boolean;\n loadedData: any;\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import { createStore } from 'zustand/vanilla';\nimport { SortDirections, TableViewOptions } from '../types';\n\nexport interface GridViewState {\n filters: any;\n setFilters: (filters: any) => void;\n\n isHydrated: boolean;\n columns: any[];\n setColumns: (items: any[]) => void;\n\n sortItems: any[];\n setSortItems: (items: any[]) => void;\n hydrateFromStorage: (storageKey: string, defaultView?: number) => void;\n\n filterItems: any[];\n setFilterItems: (items: any[], updateFilters?: boolean) => void;\n\n hideItems: Record<string, boolean>;\n setHideItems: (items: Record<string, boolean>) => void;\n\n groupByArr: any[];\n setGroupByArr: (arr: string[]) => void;\n\n activeTableView: number;\n setActiveTableView: (view: number) => void;\n\n selectedConfig: { id: number; name: string } | null;\n setSelectedConfig: (config: { id: number; name: string } | null) => void;\n\n hasCreateBtn: boolean;\n setHasCreateBtn: (view: boolean) => void;\n\n checkedValue: any;\n setCheckedValue: (view: any) => void;\n\n hasSelect: any;\n setHasSelect: (view: any) => void;\n\n configsVersion: number;\n bumpConfigsVersion: () => void;\n\n resetStore: () => void;\n}\nconst defaultFilters = {\n Page: 1,\n PageSize: 25,\n};\n\nconst initialState = {\n filters: defaultFilters,\n filterItems: [],\n sortItems: [],\n hideItems: {},\n groupByArr: [],\n activeTableView: TableViewOptions.TABLE,\n};\n\nexport const createGridViewStore = () =>\n createStore<GridViewState>((set, get) => ({\n columns: [],\n ...initialState,\n isHydrated: false,\n hasDeleteBtn: false,\n\n selectedConfig: null,\n setSelectedConfig: config => set({ selectedConfig: config }),\n\n configsVersion: 0,\n bumpConfigsVersion: () => set(state => ({ configsVersion: state.configsVersion + 1 })),\n\n hydrateFromStorage: (storageKey, defaultView = TableViewOptions.TABLE) => {\n if (get().isHydrated) return;\n\n const saved = sessionStorage.getItem(storageKey);\n\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n\n set({\n filters: parsed.filters ?? defaultFilters,\n filterItems: parsed.filterItems ?? [],\n sortItems: parsed.sortItems ?? [],\n activeTableView: parsed.activeTableView ?? defaultView,\n hideItems: parsed.hideItems ?? {},\n groupByArr: parsed.groupByArr ?? [],\n selectedConfig: parsed.selectedConfig ?? null,\n isHydrated: true,\n });\n return;\n } catch {\n console.warn('Failed to hydrate grid view state');\n }\n }\n\n set({ activeTableView: defaultView, isHydrated: true });\n },\n\n hasCreateBtn: false,\n setHasCreateBtn: (newValue?: boolean) => set({ hasCreateBtn: !!newValue }),\n\n checkedValue: true,\n setCheckedValue: (newValue?: any) => set({ checkedValue: newValue }),\n hasSelect: false,\n setHasSelect: (newValue?: boolean) => set({ hasSelect: !!newValue }),\n\n setFilters: filters => {\n if (!get().isHydrated) return;\n set({ filters });\n },\n setSortItems: items => {\n if (!get().isHydrated) return;\n\n set({ sortItems: items });\n\n set(state => {\n const { Sort, Asc, ...rest } = state.filters;\n const sortFilters =\n items.length > 0\n ? {\n Sort: items[0].param,\n Asc: items[0].direction === SortDirections.ASC,\n }\n : {};\n\n return {\n filters: {\n ...rest,\n ...sortFilters,\n },\n };\n });\n },\n setFilterItems: (items, updateFilters = false) => {\n if (!get().isHydrated) return;\n\n set({ filterItems: items });\n if (!updateFilters) return;\n\n const { filters, sortItems } = get();\n const { PageSize, Sort, Asc, QuickSearch } = filters;\n\n const newFilters: any = {};\n items.forEach(item => {\n newFilters[item.dataIndex] = item.filterValue;\n if (item.isCountryGroup !== undefined) {\n newFilters.isCountryGroup = item.isCountryGroup;\n }\n });\n\n set({\n filters: {\n Page: 1,\n PageSize,\n QuickSearch: QuickSearch || '',\n ...(sortItems.length > 0 ? { Sort, Asc } : {}),\n ...newFilters,\n },\n });\n },\n setHideItems: items => set({ hideItems: items }),\n setGroupByArr: arr => set({ groupByArr: arr }),\n setActiveTableView: view => set({ activeTableView: view }),\n setColumns: items => set({ columns: items }),\n\n resetStore: () => {\n set({\n ...initialState,\n isHydrated: true,\n selectedConfig: null,\n });\n },\n }));\n","import React, { createContext, useContext, useRef } from 'react';\nimport { StoreApi, useStore } from 'zustand';\nimport { createGridViewStore, type GridViewState } from './store/createGridViewStore';\n\nconst GridViewStoreContext = createContext<StoreApi<GridViewState> | null>(null);\n\nexport const GridViewStoreProvider = ({ children }: { children: React.ReactNode }) => {\n const storeRef = useRef<StoreApi<GridViewState>>();\n if (!storeRef.current) {\n storeRef.current = createGridViewStore();\n }\n\n return (\n <GridViewStoreContext.Provider value={storeRef.current}>\n {children}\n </GridViewStoreContext.Provider>\n );\n};\n\nexport const useGridViewStore = <T,>(selector: (state: GridViewState) => T): T => {\n const store = useContext(GridViewStoreContext);\n if (!store) throw new Error('GridViewStoreProvider is missing');\n return useStore(store, selector);\n};\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { useGridViewStore } from '../GridViewStoreProvider';\n\nconst useGridViewSessionStorage = () => {\n const hydrateFromStorage = useGridViewStore(s => s.hydrateFromStorage);\n const isHydrated = useGridViewStore(s => s.isHydrated);\n const filters = useGridViewStore(s => s.filters);\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n\n const location = useLocation();\n\n useEffect(() => {\n hydrateFromStorage(`grid-filters:${location.pathname}`);\n\n return sessionStorage.clear();\n }, []);\n\n useEffect(() => {\n if (!isHydrated) return;\n\n sessionStorage.setItem(\n `grid-filters:${location.pathname}`,\n JSON.stringify({\n filters,\n filterItems,\n sortItems,\n activeTableView,\n hideItems,\n groupByArr,\n selectedConfig,\n })\n );\n }, [\n filters,\n filterItems,\n sortItems,\n activeTableView,\n hideItems,\n groupByArr,\n selectedConfig,\n isHydrated,\n ]);\n};\n\nexport default useGridViewSessionStorage;\n","import { useEffect, useState } from 'react';\n\nexport function useElementHeight(ref: React.RefObject<HTMLElement>) {\n const [height, setHeight] = useState(0);\n\n useEffect(() => {\n if (!ref.current) return;\n\n const observer = new ResizeObserver(([entry]) => {\n setHeight(entry.contentRect.height);\n });\n\n observer.observe(ref.current);\n setHeight(ref.current.clientHeight);\n return () => observer.disconnect();\n }, [ref]);\n\n return height;\n}\n","import { DatePicker, Table } from 'antd';\nimport styled from 'styled-components';\n\ninterface GridViewPageTableWrapperProps {\n height?: any;\n}\n\nconst { RangePicker } = DatePicker;\n\nexport const PageWrapper = styled.div`\n background: var(--color-bg-primary, #fff);\n`;\n\nexport const PageHeaderWrapper = styled.div`\n height: var(--size-800, 4rem);\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-right: 1.5rem;\n\n button {\n padding: 0.44rem 0.75rem;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n border: none;\n outline: none;\n cursor: pointer;\n transition: 0.1s;\n border-radius: var(--border-radius-050, 0.25rem);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n\n &.create-btn {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n color: var(--color-text-brand-special, #06c193) !important;\n }\n }\n\n .icon {\n width: 2rem;\n height: 2rem;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n path {\n fill: var(--color-text-primary, #131412);\n }\n\n &.sidebar {\n display: none;\n }\n }\n\n .page-starter {\n display: flex;\n gap: 0.12rem;\n\n button {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n\n .icon {\n border-radius: 50%;\n }\n }\n\n .page-actions {\n display: flex;\n gap: 0.12rem;\n\n button {\n color: var(--color-text-primary, #131412);\n\n &:hover {\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n }\n }\n\n input {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #232323);\n border: 1px solid var(--color-bg-secondary, #232323);\n padding-left: 0.5rem;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n\n &:focus {\n border-color: var(--color-border-brand-special, #02e0ae);\n outline: none;\n }\n }\n }\n\n .sidebar-wrapper {\n display: none;\n }\n\n @media (max-width: 991px) {\n padding: 1rem;\n gap: 0.5rem;\n .page-starter {\n display: none;\n }\n\n .page-actions {\n input {\n width: 100px;\n }\n }\n\n .icon.sidebar {\n display: flex;\n border-radius: 50%;\n padding: 0.5rem;\n }\n\n .sidebar-wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n max-width: 100%;\n height: 100vh;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n }\n`;\n\nexport const PageTopContentWrapper = styled.div``;\n\nexport const StyledTable = styled(Table)`\n .ant-table-thead {\n tr {\n th {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n height: var(--size-450, 2.25rem);\n min-width: var(--size-1000, 5rem);\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n background: var(--color-bg-primary, #141414);\n text-transform: capitalize;\n &:first-child {\n min-width: 1.5rem;\n width: 1.5rem;\n padding: 0;\n border-start-start-radius: 0px !important;\n }\n &:last-child,\n &:first-child {\n border-start-start-radius: 0px !important;\n }\n &:before {\n display: none;\n }\n }\n }\n }\n .ant-table-tbody {\n tr {\n td {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-primary, #131412);\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n min-width: 5rem;\n height: 3rem;\n &:first-child {\n padding: 0;\n }\n }\n }\n }\n`;\n\nexport const DropdownContent = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n /* background: var(--color-bg-secondary, #f5f5f5);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04); */\n background: var(--color-bg-quaternary, #fff);\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\n min-width: 18.5rem;\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n input {\n width: 100%;\n padding: 0.75rem;\n border: none;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n background-color: transparent;\n &::placeholder {\n color: var(--color-text-quaternary, rgba(19, 20, 18, 0.25));\n }\n &:focus {\n outline: none;\n }\n &.filter-item-search {\n &:focus,\n &:active {\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n background: var(--color-bg-quaternary, #2f2f2f);\n }\n }\n }\n\n div {\n padding: 0.25rem 0;\n border-top: 1px solid var(--color-bg-secondary, #f5f5f5);\n display: flex;\n flex-direction: column;\n gap: 0.12rem;\n button {\n padding: 0.5rem 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n transition: 0.1s;\n span {\n margin-left: auto;\n }\n &:hover {\n background-color: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n }\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n }\n\n @media (max-width: 480px) {\n min-width: auto;\n &.filter-item-content {\n width: calc(100vw - 32px);\n }\n }\n`;\n\nexport const PageFilterWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 0.12rem;\n padding: 0.5rem 1.5rem;\n border-top: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n\n @media (max-width: 480px) {\n .debug-dropdwon {\n inset-inline-start: 16px !important;\n }\n }\n`;\n\nexport const FilterItemWrapper = styled.div`\n display: flex;\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n border-radius: var(--border-radius-full, 62.4375rem);\n padding: 0 0.25rem;\n align-items: center;\n &.sort {\n margin-right: 1rem;\n }\n &.add-filter {\n margin-right: 1rem;\n span {\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n svg {\n path {\n fill: var(--color-icon-tertiary);\n }\n }\n }\n }\n span {\n padding: 0.5rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-secondary);\n }\n }\n &:not(:first-child) {\n border-left: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n }\n }\n`;\n\nexport const ResetConditionsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex: 1;\n flex-shrink: 0;\n button {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n padding: 0.5rem;\n svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n`;\n\nexport const StyledRangePicker = styled(RangePicker)`\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n border: none !important;\n`;\n\nexport const OptionName = styled.span`\n color: var(--color-text-primary, #fff);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const OptionWrapper = styled.div`\n display: flex;\n min-height: var(--size-400, 32px);\n padding: var(--spacing-050, 4px) var(--spacing-150, 12px) !important;\n gap: var(--spacing-150, 12px);\n align-self: stretch;\n`;\n\nexport const TwoComponentSelectTitle = styled.div`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n background: var(--color-bg-secondary, #232323);\n display: flex;\n padding-left: 30px !important;\n gap: 8px;\n`;\n\nexport const TwoComponentSelectContent = styled.div`\n max-height: 300px;\n overflow: hidden;\n`;\n\nexport const GridViewPageTableWrapper = styled.div<GridViewPageTableWrapperProps>`\n height: ${(props: any) => props.height || '100%'};\n`;\n","import * as React from \"react\";\nconst SvgFilter = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.33203 3.33333H14.6654V4.66667H1.33203V3.33333Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.33203 7.33333H12.6654V8.66667H3.33203V7.33333Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.33203 11.3333H10.6654V12.6667H5.33203V11.3333Z\", fill: \"#131412\" }));\nexport default SvgFilter;\n","import * as React from \"react\";\nconst SvgSettings = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3.9987 2V4H1.33203V5.33333H3.9987V7.33333H7.9987V5.33333H14.6654V4H7.9987V2H3.9987ZM6.66536 3.33333H5.33203V6H6.66536V3.33333Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.9987 8.66667V10.6667H1.33203V12H7.9987V14H11.9987V12H14.6654V10.6667H11.9987V8.66667H7.9987ZM9.33203 10H10.6654V12.6667H9.33203V10Z\", fill: \"currentColor\" }));\nexport default SvgSettings;\n","import * as React from \"react\";\nconst SvgColor = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 12, viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 12H0V8H4V12Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 12H8V8H12V12Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 4H0V0H4V4Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 4H8V0H12V4Z\", fill: \"white\" }));\nexport default SvgColor;\n","import { useEffect, useMemo } from 'react';\nimport { debounce } from 'lodash';\n\nconst useDebounce = (fn: any, delay: number, deps: any[] = []) => {\n const debouncedFn = useMemo(() => debounce(fn, delay), deps);\n\n useEffect(() => {\n return () => {\n debouncedFn.cancel();\n };\n }, [debouncedFn]);\n\n return debouncedFn;\n};\n\nexport default useDebounce;\n","import * as React from \"react\";\nconst SvgArrowUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.99947 2.38989L3.72266 6.6667L4.66547 7.60951L7.3328 4.94218V13.3334H8.66613V4.94218L11.3335 7.60951L12.2763 6.6667L7.99947 2.38989Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgArrowUp;\n","import * as React from \"react\";\nconst SvgArrowDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66613 2.66675H7.3328V11.0573L4.66547 8.38994L3.72266 9.33275L7.99947 13.6096L12.2763 9.33275L11.3335 8.38994L8.66613 11.0573V2.66675Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgArrowDown;\n","import * as React from \"react\";\nconst SvgSort = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.7337 6.67614L14.6765 5.73333L11.3337 2.39052L7.99089 5.73333L8.93369 6.67614L10.667 4.94281L10.667 13.3333H12.0004L12.0004 4.94281L13.7337 6.67614Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.00984 10.2667L4.66703 13.6095L1.32422 10.2667L2.26703 9.32385L4.00036 11.0572L4.00036 2.66666L5.33369 2.66666L5.33369 11.0572L7.06703 9.32386L8.00984 10.2667Z\", fill: \"#131412\" }));\nexport default SvgSort;\n","import { Dropdown } from 'antd';\nimport { useState } from 'react';\n\nconst DropdownWrapper = ({ children, overlay, placement = 'bottomRight' }: any) => {\n const [open, setOpen] = useState(false);\n\n return (\n <Dropdown\n open={open}\n onOpenChange={setOpen}\n placement={placement}\n popupRender={() => (typeof overlay == 'function' ? overlay(setOpen) : overlay)}\n trigger={['click']}\n >\n <button className=\"icon\">{children}</button>\n </Dropdown>\n );\n};\n\nexport default DropdownWrapper;\n","import { useState } from 'react';\nimport { DropdownContent } from '../style';\nimport { Column, SortDirections } from '../types';\nimport ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\nimport Checkmark from '../../../assets/icons/checkmark.svg?react';\nimport SortLogo from '../../../assets/icons/sort.svg?react';\nimport DropdownWrapper from './DropdownWrapper';\nimport { useGridViewStore } from '../GridViewStoreProvider';\n\nconst SortDropdown = ({ placement, children }: any) => {\n const columns = useGridViewStore(s => s.columns);\n const sortItems = useGridViewStore(s => s.sortItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n\n const selectedSortItem = sortItems[0];\n\n const [searchValue, setSearchValue] = useState('');\n const [sortDirection, setSortDirection] = useState(\n selectedSortItem?.direction === SortDirections.ASC\n ? SortDirections.ASC\n : SortDirections.DESC\n );\n\n const filteredColumns = columns.filter(\n (col: any) =>\n col.title.toLowerCase().includes(searchValue.toLowerCase()) && col.sortable !== false\n );\n\n function onSelect(col: Column, direction: SortDirections) {\n setSortItems([\n {\n title: col.title,\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\n direction: direction,\n },\n ]);\n }\n\n function onRemove() {\n setSortItems([]);\n }\n\n return (\n <DropdownWrapper\n overlay={(_setOpen: any) => (\n <DropdownContent>\n <input\n type=\"text\"\n placeholder={'Search' + '...'}\n value={searchValue}\n onChange={e => setSearchValue(e.target.value)}\n />\n <div>\n {filteredColumns.map((col: any, i: any) => (\n <button\n key={i}\n onClick={() => {\n if (col.title == selectedSortItem?.title) {\n onRemove();\n } else {\n onSelect(col, sortDirection);\n }\n }}\n >\n {col.title}\n {col.title == selectedSortItem?.title && (\n <span>\n <Checkmark />\n </span>\n )}\n </button>\n ))}\n </div>\n <div>\n <button\n onClick={() => {\n setSortDirection(SortDirections.ASC);\n selectedSortItem && onSelect(selectedSortItem, SortDirections.ASC);\n }}\n >\n <ArrodwUpLogo />\n {'Ascending'}\n {sortDirection === SortDirections.ASC && <Checkmark />}\n </button>\n <button\n onClick={() => {\n setSortDirection(SortDirections.DESC);\n selectedSortItem && onSelect(selectedSortItem, SortDirections.DESC);\n }}\n >\n <ArrodwDownLogo />\n {'Descending'}\n\n {sortDirection === SortDirections.DESC && <Checkmark />}\n </button>\n </div>\n </DropdownContent>\n )}\n placement={placement || 'bottomRight'}\n >\n {children || <SortLogo />}\n </DropdownWrapper>\n );\n};\n\nexport default SortDropdown;\n","import { useState } from 'react';\nimport { Dropdown } from 'antd';\nimport { Column, FilterSelectTypes } from '../types';\nimport { DropdownContent } from '../style';\nimport { useGridViewStore } from '../GridViewStoreProvider';\nimport { tActions } from '../../../utils/exportTranslation';\n\nconst FilterDropdown = ({ placement, children, onSelect, CustomFilters }: any) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [searchValue, setSearchValue] = useState('');\n\n const columns = useGridViewStore(s => s.columns);\n const filterItems = useGridViewStore(s => s.filterItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n\n function onClickHandle(column: Column) {\n if (onSelect) {\n onSelect(column);\n } else {\n setFilterItems([\n ...filterItems,\n {\n ...column,\n selectType: FilterSelectTypes.VALUE,\n },\n ]);\n }\n setDropdownOpen(false);\n }\n\n return (\n <Dropdown\n open={dropdownOpen}\n onOpenChange={setDropdownOpen}\n placement={placement || 'bottomRight'}\n popupRender={() => (\n <DropdownContent>\n <input\n type=\"text\"\n placeholder={tActions('Search') + '...'}\n value={searchValue}\n onChange={e => setSearchValue(e.target.value)}\n />\n <div>\n {columns\n .filter(col => col.filterable !== false)\n .filter(c => !filterItems.some(f => f.title == c.title))\n .filter(col => col.filterable !== false)\n .filter(col => col.title.toLowerCase().includes(searchValue))\n .map((col, i: number) => (\n <button key={i} onClick={() => onClickHandle(col)}>\n {col.title}\n </button>\n ))}\n </div>\n {CustomFilters && (\n <CustomFilters\n setFilterItems={setFilterItems}\n filterItems={filterItems}\n columns={columns}\n setDropdownOpen={setDropdownOpen}\n />\n )}\n </DropdownContent>\n )}\n trigger={['click']}\n >\n <button className=\"icon\">{children}</button>\n </Dropdown>\n );\n};\n\nexport default FilterDropdown;\n","import { create } from 'zustand';\nimport React from 'react';\n\nexport interface FooterOptions {\n okText?: React.ReactNode;\n cancelText?: React.ReactNode;\n}\n\ninterface ModalOptions {\n title?: string;\n component?: React.FC<any>; // component to render\n componentProps?: Record<string, any>; // fresh props passed in\n onOk?: () => void;\n onCancel?: () => void;\n popupOptions?: Record<string, any> | null;\n footerOptions?: FooterOptions;\n hideFooter?: boolean;\n showCloseButton?: boolean;\n}\n\ninterface ModalState {\n options: ModalOptions | null;\n isOpen: boolean;\n\n store: (options: ModalOptions) => void;\n openModal: (options: ModalOptions) => void;\n open: () => void;\n close: () => void;\n\n setOnCancel: (fn: () => void) => void;\n setHideFooter: (hide: boolean) => void;\n setOnOk: (fn: () => void) => void;\n setComponentProps: (props: Record<string, any>) => void;\n setPopupOptions: (opts: Record<string, any>) => void;\n setFooterOptions: (opts: FooterOptions | null) => void;\n setTitle: (title: string) => void;\n}\n\nconst defaultPopupOptions = {\n open: true,\n closeIcon: false,\n footer: null,\n maskClosable: true,\n};\n\nconst defaultFooterOptions: FooterOptions = {\n okText: 'Create',\n cancelText: 'Cancel',\n};\n\nconst useModalStore = create<ModalState>((set, get) => {\n const buildOptions = (options: ModalOptions): ModalOptions => ({\n ...options,\n popupOptions: { ...defaultPopupOptions, ...options.popupOptions },\n footerOptions: { ...defaultFooterOptions, ...options.footerOptions },\n hideFooter: options.hideFooter ?? false,\n onCancel: options.onCancel ?? (() => get().close()),\n });\n\n return {\n options: null,\n isOpen: false,\n\n store: options => set({ options: buildOptions(options) }),\n\n openModal: options => set({ isOpen: true, options: buildOptions(options) }),\n\n open: () =>\n set(state => {\n if (!state.options) return state;\n return { ...state, isOpen: true };\n }),\n\n close: () => set({ isOpen: false }),\n\n setOnOk: fn =>\n set(state => (state.options ? { options: { ...state.options, onOk: fn } } : state)),\n\n setOnCancel: fn =>\n set(state => (state.options ? { options: { ...state.options, onCancel: fn } } : state)),\n\n setComponentProps: props =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n componentProps: { ...state.options.componentProps, ...props },\n },\n }\n : state\n ),\n\n setPopupOptions: opts =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n popupOptions: { ...state.options.popupOptions, ...opts },\n },\n }\n : state\n ),\n\n setFooterOptions: opts =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n footerOptions:\n opts == null\n ? undefined\n : { ...state.options.footerOptions, ...opts },\n },\n }\n : state\n ),\n\n setHideFooter: hide =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n hideFooter: hide,\n footerOptions: hide ? undefined : state.options.footerOptions,\n },\n }\n : state\n ),\n\n setTitle: title =>\n set(state => (state.options ? { options: { ...state.options, title } } : state)),\n };\n});\n\nexport default useModalStore;\n","import { Select } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledSelect = styled(Select)`\n width: 200px;\n\n display: flex;\n flex-direction: column;\n gap: 2.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-select-selector {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5) !important;\n border: none !important;\n .ant-select-selection-placeholder {\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75)) !important;\n }\n }\n }\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75)) !important;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n`;\n","export enum FilterDataSourceType {\n ActivityReport = 1,\n CommissionReport = 2,\n DepositReport = 3,\n MediaReport = 4,\n PaymentReport = 5,\n RegistrationReport = 6,\n Manager = 7,\n EndUser = 8,\n MarketingTool = 9,\n SubAffiliate = 10,\n CountryGroup = 11,\n Role = 12,\n Tag = 13,\n AffiliateUser = 14,\n EmailTemplate = 15,\n}\n\nexport const ROUTE_FILTER_TYPE_MAP: Record<string, FilterDataSourceType> = {\n '/reports/activity-report': FilterDataSourceType.ActivityReport,\n '/reports/commission-report': FilterDataSourceType.CommissionReport,\n '/reports/deposit-report': FilterDataSourceType.DepositReport,\n '/reports/media-report': FilterDataSourceType.MediaReport,\n '/reports/payments-report': FilterDataSourceType.PaymentReport,\n '/reports/registation-report': FilterDataSourceType.RegistrationReport,\n '/affiliate-manager': FilterDataSourceType.Manager,\n '/end-user': FilterDataSourceType.EndUser,\n '/marketing-tools': FilterDataSourceType.MarketingTool,\n '/sub-affiliates': FilterDataSourceType.SubAffiliate,\n '/affiliate-users': FilterDataSourceType.AffiliateUser,\n '/country-group': FilterDataSourceType.CountryGroup,\n '/email-constructor': FilterDataSourceType.EmailTemplate,\n '/roles': FilterDataSourceType.Role,\n '/tags': FilterDataSourceType.Tag,\n};\n","import { useLocation } from 'react-router';\nimport {\n FilterDataSourceType,\n ROUTE_FILTER_TYPE_MAP,\n} from '../components/filter-configuration/constants';\n\nexport const useFilterDataSourceType = (): FilterDataSourceType | undefined => {\n const { pathname } = useLocation();\n const match = Object.keys(ROUTE_FILTER_TYPE_MAP).find(\n route => pathname === route || pathname.startsWith(route + '/')\n );\n return match ? ROUTE_FILTER_TYPE_MAP[match] : undefined;\n};\n","export function handleDictionarySelectFilter(input: string, option: any) {\n return option.label.toLowerCase().includes(input.toLowerCase()) || option.value == input;\n}\n","import React from 'react';\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\nimport SettingsLogo from '../../../../assets/icons/settings.svg?react';\nimport SidebarIcon from '../../../../assets/icons/color.svg?react';\n\nimport { useNavigate } from 'react-router';\nimport { useEffect, useState } from 'react';\nimport { useGridViewStore } from '../../../../modules/GridViewPage/GridViewStoreProvider';\nimport { PageHeaderWrapper } from '../../../../modules/GridViewPage/style';\nimport useDebounce from '../../../../hooks/useDebounce';\nimport Sidebar from '../../../../layouts/base-admin-layout/sidebar';\nimport SortDropdown from '../SortDropdown';\nimport FilterDropdown from '../FilterDropdown';\nimport useModalStore from '../../../../stores/useModalStore';\nimport { StyledSelect } from './style';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\nimport { useFilterDataSourceType } from '../../../../hooks/useFilterDataSourceType';\nimport { usePackageServices } from '../../../../utils/PackageServicesProvider';\nimport type { FiltersType } from '../../../../utils/PackageServicesProvider';\nimport { handleDictionarySelectFilter } from '../../../../utils/antdFunction';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onChange: (value: string | number | null) => void;\n placeholder: any;\n}\n\ninterface PageHeaderProps {\n setisSettingPopupVisible: (visible: boolean) => void;\n CustomFilters?: any;\n tableAdditionalFields?: (\n openModal: boolean,\n setOpenModal: (open: boolean) => void\n ) => React.ReactNode;\n createIsModal?: any;\n exportButton?: any;\n hasSelect?: boolean;\n selectProps?: SelectProps;\n GridPageTopLeftComponent?: React.FC;\n noNeedSidebarResponsiveButton?: boolean;\n}\n\nconst PageHeader = ({\n setisSettingPopupVisible,\n CustomFilters,\n tableAdditionalFields,\n createIsModal,\n exportButton,\n hasSelect,\n selectProps,\n GridPageTopLeftComponent,\n noNeedSidebarResponsiveButton,\n}: PageHeaderProps) => {\n const navigate = useNavigate();\n const filters = useGridViewStore(s => s.filters);\n const hasCreateBtn = useGridViewStore(s => s.hasCreateBtn);\n\n const setFilters = useGridViewStore(s => s.setFilters);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n const [isQuicksearchVisible, setisQuicksearchVisible] = useState(() => {\n try {\n const stored = sessionStorage.getItem(`grid-filters:${window.location.pathname}`);\n if (stored) {\n return !!JSON.parse(stored)?.filters?.QuickSearch;\n } else {\n return false;\n }\n } catch {\n return false;\n }\n });\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\n const { open } = useModalStore();\n const [openModal, setOpenModal] = useState(false);\n\n const { getMyFilters } = usePackageServices();\n const filterType = useFilterDataSourceType();\n const [savedConfigs, setSavedConfigs] = useState<FiltersType[]>([]);\n\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\n const configsVersion = useGridViewStore(s => s.configsVersion);\n\n useEffect(() => {\n if (filterType == null || !getMyFilters) return;\n getMyFilters(String(filterType)).then(res => setSavedConfigs(res.data ?? []));\n }, [filterType, configsVersion, getMyFilters]);\n\n function applyConfiguration(id: number) {\n const config = savedConfigs.find(c => c.id === id);\n if (!config) return;\n const { filterItems, sortItems } = JSON.parse(config.value);\n setFilterItems(filterItems, true);\n setSortItems(sortItems);\n setSelectedConfig({ id: config.id!, name: config.name });\n }\n\n const onQuickSearchChange = useDebounce((e: any) => {\n setFilters({\n ...filters,\n QuickSearch: e.target.value,\n });\n }, 500);\n\n function onSettingClick() {\n setisSettingPopupVisible(true);\n }\n\n function handleCreateClick() {\n if (createIsModal) {\n open();\n } else {\n navigate('new');\n }\n }\n\n return (\n <PageHeaderWrapper>\n {!noNeedSidebarResponsiveButton && (\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\n <SidebarIcon />\n </button>\n )}\n\n {GridPageTopLeftComponent && <GridPageTopLeftComponent />}\n\n <div className=\"page-actions\">\n {savedConfigs.length > 0 && (\n <StyledSelect\n showSearch\n placeholder={tGeneral('SavedConfiguration')}\n options={savedConfigs.map(c => ({ value: c.id, label: c.name }))}\n value={selectedConfig?.id ?? null}\n filterOption={handleDictionarySelectFilter}\n onChange={(id: any) =>\n id != null ? applyConfiguration(id) : setSelectedConfig(null)\n }\n />\n )}\n\n {hasSelect && selectProps && (\n <div>\n <StyledSelect\n options={selectProps.options}\n placeholder={selectProps.placeholder}\n onChange={(option: any) => {\n selectProps.onChange(option ?? null);\n }}\n />\n </div>\n )}\n\n {tableAdditionalFields && tableAdditionalFields(openModal, setOpenModal)}\n\n {isQuicksearchVisible ? (\n <input\n type=\"text\"\n placeholder={tActions('QuickSearch')}\n defaultValue={filters?.QuickSearch ?? ''}\n onChange={onQuickSearchChange}\n />\n ) : (\n <button onClick={() => setisQuicksearchVisible(true)}>\n {tActions('Search')}\n </button>\n )}\n\n <SortDropdown />\n\n <FilterDropdown CustomFilters={CustomFilters}>\n <FilterLogo />\n </FilterDropdown>\n\n <button className=\"icon\" onClick={onSettingClick}>\n <SettingsLogo />\n </button>\n\n {exportButton && exportButton}\n\n {hasCreateBtn && (\n <button onClick={handleCreateClick} className=\"create-btn\">\n {tActions('Create')}\n </button>\n )}\n </div>\n\n {isSidebarVisible && <Sidebar />}\n </PageHeaderWrapper>\n );\n};\n\nexport default PageHeader;\n","import * as React from \"react\";\nconst SvgPlus = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66665 7.3335H12.6666V8.66683H8.66665V12.6668H7.33331V8.66683H3.33331V7.3335H7.33331V3.3335H8.66665V7.3335Z\", fill: \"white\" }));\nexport default SvgPlus;\n","import * as React from \"react\";\nconst SvgArrowRefresh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 2C9.69989 2 11.2343 2.70742 12.3255 3.84245V2.42578H13.6589V6.11654H9.96875V4.7832H11.3796C10.5289 3.88969 9.32909 3.33333 8 3.33333C5.42286 3.33333 3.33333 5.42286 3.33333 8C3.33333 10.5771 5.42286 12.6667 8 12.6667C10.5771 12.6667 12.6667 10.5771 12.6667 8V7.33333H14V8C14 11.3135 11.3135 14 8 14C4.68648 14 2 11.3135 2 8C2 4.68648 4.68648 2 8 2Z\", fill: \"#131412\" }));\nexport default SvgArrowRefresh;\n","export class DateHelper {\n static equals(value1?: Date | null, value2?: Date | null) {\n const val1 = value1 === undefined || value1 === null ? null : value1;\n const val2 = value2 === undefined || value2 === null ? null : value2;\n\n if (val1 === val2) {\n return true;\n }\n\n if (!val1 || !val2) {\n return false;\n }\n\n return val1.getTime() === val2.getTime();\n }\n\n static toMMddyyyy(value: Date | string) {\n const date = this.parseDate(value);\n if (!date) return null;\n\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n\n const mm = month < 10 ? `0${month}` : `${month}`;\n const dd = day < 10 ? `0${day}` : `${day}`;\n\n return `${mm}/${dd}/${year}`;\n }\n\n static toLocal(date: Date | string, start = false, end = false): Date | null {\n const d = this.parseDate(date);\n if (!d) return null;\n\n if (start) d.setHours(0, 0, 0, 0);\n if (end) d.setHours(23, 59, 59, 999);\n\n return this.utcToLocal(d);\n }\n\n static getDates(start: Date, end: Date) {\n const dates = new Array<Date>();\n let date = new Date(start.valueOf());\n while (date <= end) {\n dates.push(new Date(date));\n date = this.addDays(date, 1);\n }\n return dates;\n }\n\n static dateOnly(value: Date) {\n const year = value.getFullYear();\n const month = value.getMonth() + 1; // month is 0 based.\n const day = value.getDate();\n // const date = new Date(Date.UTC(year, month, day));\n\n // return date;\n\n return `${year}/${month}/${day}`;\n }\n\n static dateWithDashes(value: Date) {\n const year = value.getFullYear();\n const month = value.getMonth() + 1; // month is 0 based.\n const day = value.getDate();\n // const date = new Date(Date.UTC(year, month, day));\n\n // return date;\n\n return `${year}-${month}-${day}`;\n }\n static today() {\n return this.dateOnly(new Date());\n }\n\n static toISODateString(value: Date | string) {\n const date = this.parseDate(value);\n\n if (!date) return null;\n\n const year = date.getFullYear();\n // Add +1 to month since 0 is January\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n const str = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;\n return str;\n }\n\n static toISODateStringWithTime(value: Date | string) {\n const date = this.parseDate(value);\n\n if (!date) return null;\n\n const year = date.getFullYear();\n // Add +1 to month since 0 is January\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n\n const strTime = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\n const str =\n `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ` + strTime;\n return str;\n }\n\n static monthDayYear(value: Date | string) {\n const date = this.parseDate(value);\n if (!date) return null;\n\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n\n const month = months[date.getMonth()];\n const day = date.getDate();\n const year = date.getFullYear();\n\n return `${month} ${day}, ${year}`;\n }\n\n static withdrawalTableDateFormat(value: Date) {\n const date = this.parseDate(value);\n if (!date || isNaN(date.getTime())) return null;\n\n const year = value.getFullYear();\n const month = value.getMonth() + 1;\n const day = value.getDate();\n\n const datePart = `${year}/${month}/${day}`;\n\n const timePart = date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${datePart}, ${timePart}`;\n }\n\n static getCommonDateRange = (key: string): any => {\n let endDate: null | Date = new Date();\n let startDate: null | Date = new Date();\n\n switch (key) {\n case 'week': // 7 days\n startDate.setDate(endDate.getDate() - 7);\n break;\n case 'month': // 30 days\n startDate.setDate(endDate.getDate() - 30);\n break;\n case 'threeMonth': // 3 months\n startDate.setMonth(endDate.getMonth() - 3);\n startDate.setDate(1);\n break;\n case 'sixMonth': // 6 months\n startDate.setMonth(endDate.getMonth() - 6);\n startDate.setDate(1);\n break;\n case 'twelveMonth': // 12 months\n startDate.setMonth(endDate.getMonth() - 12);\n startDate.setDate(1);\n break;\n case 'year': // Year to date (from January 1st of current year)\n startDate.setMonth(0);\n startDate.setDate(1);\n break;\n case 'all': // send null\n endDate = null;\n startDate = null;\n break;\n case 'custom':\n break;\n default:\n startDate.setDate(endDate.getDate() - 7);\n }\n\n return {\n startDate: startDate ? this.toISODateString(startDate as Date) : null,\n endDate: endDate ? this.toISODateString(endDate as Date) : null,\n };\n };\n\n static getDateOnlyMonthAndNumber(value: Date | string) {\n if (!value) return '';\n\n const date = new Date(value);\n if (isNaN(date.getTime())) return '';\n\n const day = date.getDate();\n const monthIndex = date.getMonth();\n\n const month = monthIndex;\n\n const formattedDate = `${day} ${month}`;\n\n return formattedDate;\n }\n\n static fromDateOrStringToTable(value: Date | string) {\n const date = this.parseDate(value);\n if (!date || isNaN(date.getTime())) return null;\n\n const datePart = date.toLocaleString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n\n const timePart = date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${datePart}, ${timePart}`;\n }\n\n static toISOTimeString(value: Date | string) {\n const date = DateHelper.parseDate(value);\n\n if (!date) return null;\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n const second = date.getSeconds();\n\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}:${second < 10 ? '0' : ''}${second}`;\n return str;\n }\n\n static toTimeInput(value: Date | string) {\n const date = DateHelper.parseDate(value);\n\n if (!date) return null;\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\n return str;\n }\n\n //** Offes seconds ( offsetmin * 60sec * 1000ms) */\n private static readonly _utcDiff = -new Date().getTimezoneOffset() * 60000;\n static utcToLocal(utc: Date) {\n const dateObject = utc instanceof Date ? utc : new Date(utc);\n return new Date(dateObject.getTime() + this._utcDiff);\n }\n static localToUtc(utc: Date): Date {\n const dateObject = utc instanceof Date ? utc : new Date(utc);\n return new Date(dateObject.getTime() + this._utcDiff);\n }\n\n static addYears(v: Date, years: number): Date {\n if (!years) return v;\n\n const date = v;\n date.setFullYear(v.getFullYear() + years);\n return date;\n }\n static addMonths(v: Date, months: number) {\n if (!months) return v;\n\n const date = v;\n date.setMonth(date.getMonth() + months);\n return date;\n }\n static addDays(v: Date, days: number) {\n if (!days) return v;\n\n const date = v;\n date.setDate(date.getDate() + days);\n return date;\n }\n static addHours(v: Date, hours: number) {\n if (!hours) return v;\n\n const date = new Date(v);\n //todo need to check if this line needs --> date = new Date(date.getTime());\n date.setHours(date.getHours() + hours);\n return date;\n }\n static addMinutes(v: Date, minutes: number) {\n if (!minutes) return v;\n\n const date = new Date(v);\n //todo need to check if this line needs --> date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n }\n static addSeconds(v: Date, seconds: number) {\n if (!seconds) return v;\n\n const date = v;\n date.setSeconds(date.getSeconds() + seconds);\n\n return date;\n }\n static isToday(date: Date) {\n const today = new Date();\n return this.isSameDate(date, today);\n }\n static clone(date: Date) {\n return new Date(+date);\n }\n static isAnotherMonth(a: Date, b: Date) {\n return b && a.getMonth() !== b.getMonth();\n }\n static isWeekend(v: Date): boolean {\n return v.getDay() === 0 || v.getDay() === 6;\n }\n static isSameDate(a: Date, b: Date) {\n return (\n b &&\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n static getAge(value?: Date | string | null, now?: Date | null) {\n if (value === undefined || value === null || value === '' || value !== value) return null;\n\n const date = this.toDate(value);\n\n const nowTime = now ? now.getTime() : Date.now();\n const timeDiff = nowTime - date.getTime();\n\n return Math.floor(timeDiff / 86400000 / 365.25); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\n }\n static subtractMonths(endDate: Date, starDate: Date) {\n const start = starDate <= endDate ? starDate : endDate;\n const end = starDate <= endDate ? endDate : starDate;\n const plus = starDate <= endDate ? 1 : -1;\n\n let months = (end.getFullYear() - start.getFullYear()) * 12;\n months -= start.getMonth();\n months += end.getMonth();\n return months * plus;\n }\n\n static subtractDays(value: Date, date: Date) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n return Math.floor(timeDiff / 86400000); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\n }\n static subtractHours(value: Date, date?: Date | null) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n return Math.floor((timeDiff % 86400000) / 3600000);\n }\n static subtractMinutes(value: Date, date?: Date | null) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n //\n return Math.floor(((timeDiff % 86400000) % 3600000) / 60000);\n }\n\n static ISO8601_DATE_REGEX =\n /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n // 1 2 3 4 5 6 7 8 9 10 11\n\n static parseDate(value: any): Date | null {\n if (typeof value === 'undefined' || value == null || value === '') return null;\n return this.toDate(value);\n }\n\n // export function toDate(value: string|number|Date): Date this function is imported from date pipe\n // packages/common/src/i18n/format_date.ts\n\n /***\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\n static toDate(value: string | number | Date): Date {\n if (this.isDate(value)) {\n return value;\n }\n\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n\n if (typeof value === 'string') {\n value = value.trim();\n\n const parsedNb = parseFloat(value);\n\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN((value as any) - parsedNb)) {\n return new Date(parsedNb);\n }\n\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m, d] = value.split('-').map((val: string) => +val);\n return new Date(y, m - 1, d);\n }\n\n let match: RegExpMatchArray | null;\n if ((match = value.match(this.ISO8601_DATE_REGEX))) {\n return this.isoStringToDate(match);\n }\n }\n\n const date = new Date(value as any);\n if (!this.isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n }\n\n static isoStringToDate(match: RegExpMatchArray): Date {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n const ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n }\n\n static isDate(value: any): value is Date {\n return value instanceof Date && !isNaN(value.valueOf());\n }\n}\n","import * as React from \"react\";\nconst SvgCloseMark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.471 4.47152L8.94238 8.00016L12.471 11.5288L11.5283 12.4715L7.99967 8.94287L4.47103 12.4715L3.52832 11.5288L7.05697 8.00016L3.52832 4.47152L4.47103 3.52881L7.99967 7.05745L11.5283 3.52881L12.471 4.47152Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgCloseMark;\n","import styled from 'styled-components';\nimport CloseMark from '../assets/icons/close-mark.svg?react';\n\nexport const CloseMarkIcon = styled(CloseMark)`\n width: 25px;\n height: 25px;\n cursor: pointer;\n\n svg {\n height: 24px;\n width: 24px;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n","import { Button, Input, Modal } from 'antd';\nimport styled from 'styled-components';\n\nexport const Popup = styled(Modal)`\n display: flex;\n width: 420px;\n padding: var(--spacing-025, 2px);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-primary, #131412);\n\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n .ant-modal-content {\n padding: 0px;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary) !important;\n color: var(--color-text-primary) !important;\n }\n .ant-modal-header {\n background: var(--color-bg-quaternary) !important;\n }\n .ant-modal-title {\n color: var(--color-text-primary) !important;\n }\n .ant-modal-close-x {\n color: var(--color-icon-primary) !important;\n }\n\n .ant-select {\n .ant-select-selector {\n padding: 0 !important;\n border: none !important;\n background-color: transparent !important;\n box-shadow: none !important;\n }\n\n .ant-select-selection-placeholder {\n color: var(--color-text-secondary, #fff) !important;\n }\n\n .ant-select-selection-item {\n color: var(--color-text-primary) !important;\n }\n\n .ant-select-selection-search-input {\n color: var(--color-text-primary) !important;\n background: transparent !important;\n padding: 0 !important;\n }\n }\n .ant-modal-mask {\n background: rgba(0, 0, 0, 0.25) !important;\n }\n`;\n\nexport const PopupHeader = styled.div`\n color: var(--color-text-primary, #fff);\n display: flex;\n padding: 24px 24px 0;\n // padding-bottom: var(--spacing-400, 32px);\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-050, 4px);\n align-self: stretch;\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const CloseButton = styled.button`\n color: var(--color-text-primary, #fff);\n display: flex;\n align-items: center;\n text-align: center;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n\n svg {\n height: 24px;\n width: 24px;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n\nexport const ContentContainer = styled.div`\n display: flex;\n align-items: start;\n flex-direction: column;\n padding: 24px;\n padding-top: 0px;\n\n border-radius: var(--border-radius-025, 2px);\n padding-bottom: var(--spacing-200, 16px);\n`;\n\nexport const NoDataSpanForSelect = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.5)) !important;\n`;\n\nexport const LabelText = styled.div`\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n margin-bottom: 0.25rem;\n max-width: 350px;\n`;\n\nexport const PopupFooterContainer = styled.div`\n padding-top: 2px;\n display: flex;\n width: 100%;\n background: var(--color-bg-secondary, #232323);\n`;\nexport const CancelModalButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n justify-content: flex-start;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #2f2f2f);\n justify-content: flex-start;\n width: 100%;\n\n color: var(--color-text-primary, #fff);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px);\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n border: none;\n width: 100%;\n &:hover {\n border: none !important;\n }\n`;\n\nexport const ModalHostButtonWrapper = styled.div`\n width: 50%;\n`;\n\nexport const CreateModalButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n width: 100%;\n justify-content: space-between;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #141414);\n color: var(--color-text-inverse-primary, #fff) !important;\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 15px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n .arrow-styled {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 100px;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n @media (max-width: 445px) {\n gap: 50px;\n }\n }\n\n &:disabled {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n border: none;\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n\n .arrow-styled {\n svg {\n path {\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\n transition: 0.1s;\n }\n }\n }\n }\n &:hover {\n background: var(--color-bg-brand-special, #141414) !important;\n color: var(--color-text-inverse-primary, #fff) !important;\n }\n`;\n\nexport const RejectButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n width: 100%;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-status-error, #fd7f60);\n color: var(--color-text-inverse-primary, #fff) !important;\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n .arrow-styled {\n display: flex;\n align-items: center;\n align-items: center;\n justify-content: space-between;\n gap: 100px;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n }\n\n &:disabled {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n border: none;\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n\n .arrow-styled {\n svg {\n path {\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\n transition: 0.1s;\n }\n }\n }\n }\n &:hover {\n color: var(--color-text-inverse-primary, #fff) !important;\n background: var(--color-bg-status-error, #fd7f60) !important;\n }\n`;\n\nexport const GeneralInput = styled(Input)`\n input[type='number'] {\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n display: none;\n }\n }\n\n &.ant-input-status-error,\n &.ant-input-affix-wrapper-status-error {\n border: 1px solid var(--color-border-status-error) !important;\n\n .ant-input {\n background: transparent !important;\n }\n\n .ant-input-prefix {\n color: var(--color-text-status-error) !important;\n }\n .ant-input-suffix {\n color: var(--color-text-status-error) !important;\n }\n }\n\n &::placeholder,\n .ant-input::placeholder {\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\n }\n\n &.ant-input-outlined:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-outlined:focus {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-affix-wrapper-focused {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n display: flex;\n height: 40px;\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\n align-items: center;\n align-self: stretch;\n border-radius: var(--border-radius-025, 2px);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n background: var(--color-bg-secondary, #2f2f2f) !important;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n .ant-input-prefix {\n color: var(--color-text-primary, #131412);\n margin-left: 1px;\n gap: 8px;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n }\n`;\n","import { notification } from 'antd';\n\nexport const getBase64 = (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = error => reject(error);\n });\n};\n\nexport function lowercaseFirstLetter(word: string) {\n if (!word) return word;\n return word.charAt(0).toLowerCase() + word.slice(1);\n}\n\nexport const handleCopy = async (textToCopy: string) => {\n try {\n await navigator.clipboard.writeText(textToCopy);\n notification.success({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Copy To Clipboard',\n });\n } catch (err) {\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Failed to copy text.',\n });\n }\n};\n","import { lowercaseFirstLetter } from './functions';\n\nexport function catchErrorMessage(error: any, form: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = [];\n\n for (const key in response.errors) {\n errorMessages.push({\n name: lowercaseFirstLetter(key),\n errors: response.errors[key],\n });\n }\n\n form.setFields(errorMessages);\n }\n}\n","import { Form } from 'antd';\nimport { useEffect } from 'react';\nimport { GeneralInput, LabelText } from '../modal-host/TablePopup.style';\nimport useModalStore from '../../stores/useModalStore';\nimport { FilterDataSourceType } from './constants';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { catchErrorMessage } from '../../utils/catchErrorFunction';\n\ninterface FilterConfigurationProps {\n type?: FilterDataSourceType;\n value?: string;\n selectedConfig?: { id: number; name: string } | null;\n onSuccess?: (savedName: string) => void;\n postMyFilter: any;\n putMyFilter: any;\n}\n\nconst FilterConfiguration = ({\n type,\n value,\n selectedConfig,\n onSuccess,\n postMyFilter,\n putMyFilter,\n}: FilterConfigurationProps) => {\n const [form] = Form.useForm();\n const setOnOk = useModalStore(s => s.setOnOk);\n const close = useModalStore(s => s.close);\n\n useEffect(() => {\n if (selectedConfig) {\n form.setFieldsValue({ name: selectedConfig.name });\n }\n }, [selectedConfig, form]);\n\n useEffect(() => {\n setOnOk(async () => {\n try {\n const values = await form.validateFields();\n if (selectedConfig) {\n await putMyFilter({\n id: selectedConfig.id,\n type: type!,\n name: values.name,\n value: value ?? '',\n });\n } else {\n await postMyFilter({ type: type!, name: values.name, value: value ?? '' });\n }\n onSuccess?.(values.name);\n close();\n } catch (error: any) {\n const errors: any = catchErrorMessage(error, form);\n form.setFields(errors);\n }\n });\n }, [type, value, selectedConfig, onSuccess, form, setOnOk, close]);\n\n return (\n <Form form={form}>\n <LabelText>{tGeneral('ConfigurationName')}</LabelText>\n <Form.Item name=\"name\">\n <GeneralInput />\n </Form.Item>\n </Form>\n );\n};\n\nexport default FilterConfiguration;\n","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.6666 4.65485L10.4881 5.83336L13.8215 9.16669H3.33331V10.8334H13.8215L10.4881 14.1667L11.6666 15.3452L17.0118 10L11.6666 4.65485Z\", fill: \"currentColor\" }));\nexport default SvgArrowRight;\n","import styled from 'styled-components';\nimport ArrowRight from '../assets/icons/arrow-right.svg?react';\n\nexport const ArrowRightIcon = styled(ArrowRight)`\n cursor: pointer;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n`;\n","import { ContentContainer } from '../../../../components/modal-host/TablePopup.style';\nimport { tGeneral } from '../../../../utils/exportTranslation';\n\nconst DeleteRecordPopup = () => {\n return (\n <ContentContainer>\n <div>\n <p>{tGeneral('DeleteRecordQuestion')}</p>\n </div>\n </ContentContainer>\n );\n};\n\nexport default DeleteRecordPopup;\n","import { Checkbox } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledCheckbox = styled(Checkbox)`\n .ant-checkbox-inner {\n background-color: transparent;\n border: 1px solid #ccc;\n }\n span {\n color: var(--color-text-tertiary, #fff);\n }\n\n .ant-checkbox-checked .ant-checkbox-inner {\n background-color: white !important;\n border-color: black !important;\n }\n\n .ant-checkbox:hover .ant-checkbox-inner {\n border-color: var(--color-border-tertiary, black);\n }\n\n .ant-checkbox-checked:hover .ant-checkbox-inner {\n background-color: white !important;\n }\n\n .ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: black;\n }\n`;\n","import ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\nimport SettingsLogo from '../../../assets/icons/settings.svg?react';\nimport PlusLogo from '../../../assets/icons/plus.svg?react';\nimport RefrechSvg from '../../../assets/icons/arrow-refresh.svg?react';\nimport { Dropdown } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport { useGridViewStore } from '../GridViewStoreProvider';\nimport {\n Column,\n ColumnFilterOption,\n ColumnFilterType,\n FilterSelectTypes,\n SortDirections,\n} from '../types';\nimport {\n DropdownContent,\n FilterItemWrapper,\n OptionName,\n OptionWrapper,\n PageFilterWrapper,\n ResetConditionsWrapper,\n StyledRangePicker,\n TwoComponentSelectContent,\n TwoComponentSelectTitle,\n} from '../style';\nimport useDebounce from '../../../hooks/useDebounce';\nimport SortDropdown from './SortDropdown';\nimport FilterDropdown from './FilterDropdown';\nimport { DateHelper } from '../../../utils/DateHelper';\nimport { CloseMarkIcon } from '../../../styled-components/closeMark';\nimport useModalStore from '../../../stores/useModalStore';\nimport FilterConfiguration from '../../../components/filter-configuration';\nimport { useFilterDataSourceType } from '../../../hooks/useFilterDataSourceType';\nimport { CreateModalButton } from '../../../components/modal-host/TablePopup.style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport DeleteRecordPopup from './delete-record-popup/DeleteRecordPopup';\nimport { StyledCheckbox } from '../../../styled-components/styledCheckbox';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\ninterface FilterItemProps {\n item: any;\n}\n\nconst FilterItem = ({ item }: FilterItemProps) => {\n const inputRef: any = useRef(null);\n\n const filterItems = useGridViewStore(s => s.filterItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n\n const [dropdownOpen, setDropdownOpen] = useState(item.selectType == FilterSelectTypes.VALUE);\n\n function handleFocus() {\n inputRef?.current?.focus();\n }\n\n function onFilterValueDropdownClick(option: ColumnFilterOption) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title\n ? { ...e, filterValue: option.id, filterLabel: option.name }\n : e\n ),\n true\n );\n setDropdownOpen(false);\n }\n\n function twoComponentSelectDropdownClick(option: ColumnFilterOption, isCountryGroup = false) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title\n ? {\n ...e,\n filterValue: option.id,\n filterLabel: option.name,\n isCountryGroup: isCountryGroup,\n }\n : e\n ),\n true\n );\n setDropdownOpen(false);\n }\n\n const [selectedValues, setSelectedValues] = useState<any[]>(item.filterValue || []);\n\n const onFilterValueToggle = (optionId: any) => {\n const newValues = selectedValues.includes(optionId)\n ? selectedValues.filter(id => id !== optionId)\n : [...selectedValues, optionId];\n\n setSelectedValues(newValues);\n\n const selectedLabels = item?.filters?.options\n ?.filter((opt: any) => newValues.includes(opt.id))\n .map((opt: any) => opt.name)\n .join(', ');\n\n setFilterItems(\n filterItems.map((f: any) =>\n f.title === item.title\n ? {\n ...f,\n filterValue: newValues,\n filterLabel: selectedLabels || '',\n }\n : f\n ),\n true\n );\n };\n\n function onSelect(column: Column) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title ? { ...column, selectType: FilterSelectTypes.VALUE } : e\n )\n );\n }\n\n const onFilterValueChange = useDebounce((e: any) => {\n const value = e.target.value;\n setFilterItems(\n filterItems.map(e => (e.title == item.title ? { ...e, filterValue: value } : e)),\n true\n );\n }, 500);\n\n function onOpenChange(newValue: boolean) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title ? { ...e, selectType: FilterSelectTypes.NONE } : e\n )\n );\n setDropdownOpen(newValue);\n }\n\n function onRemove() {\n setFilterItems(\n filterItems.filter(e => e.title != item.title),\n true\n );\n }\n\n useEffect(() => {\n if (dropdownOpen && item?.filters?.type !== ColumnFilterType.SELECT) {\n setTimeout(() => {\n handleFocus();\n }, 0); // wait until DOM is updated\n }\n }, [dropdownOpen]);\n\n const dropdownContentComponent: any = {\n [ColumnFilterType.INPUT]: (\n <input\n ref={inputRef}\n type=\"text\"\n placeholder={'Search' + '...'}\n className=\"filter-item-search\"\n onChange={onFilterValueChange}\n />\n ),\n [ColumnFilterType.SELECT]: (\n <div>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <button key={option.id} onClick={() => onFilterValueDropdownClick(option)}>\n {option.name}\n </button>\n ))}\n </div>\n ),\n [ColumnFilterType.TwoComponentSelect]: (\n <>\n <TwoComponentSelectTitle>{item?.filters?.firstGroupName}</TwoComponentSelectTitle>\n <TwoComponentSelectContent>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <button\n key={option.id}\n onClick={() => twoComponentSelectDropdownClick(option, false)}\n >\n {option.name}\n </button>\n ))}\n </TwoComponentSelectContent>\n {/* {hasPermission(Permission.Customer_CountryGroup_View) && (\n <>\n <TwoComponentSelectTitle>\n {item?.filters?.secondGroupName}\n </TwoComponentSelectTitle>\n <TwoComponentSelectContent>\n {item?.filters?.secondOptions?.map((option: ColumnFilterOption) => (\n <button\n key={option.id}\n onClick={() => twoComponentSelectDropdownClick(option, true)}\n >\n {option.name}\n </button>\n ))}\n </TwoComponentSelectContent>\n </>\n )} */}\n </>\n ),\n [ColumnFilterType.MULTISELECT]: (\n <div>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <OptionWrapper key={option.id}>\n <StyledCheckbox onChange={() => onFilterValueToggle(option?.id)}>\n <OptionName>{option.name}</OptionName>\n </StyledCheckbox>\n </OptionWrapper>\n ))}\n </div>\n ),\n [ColumnFilterType.DATEPICKER]: (\n <StyledRangePicker\n open={true}\n allowClear\n format=\"MMM D, YYYY\"\n placeholder={['From', 'To']}\n onChange={(dates: any) => {\n if (!dates) {\n setFilterItems(\n filterItems.map(e =>\n e.title === item.title\n ? {\n ...e,\n filterValue: null,\n filterLabel: '',\n }\n : e\n ),\n true\n );\n } else {\n const isoDates = dates.map((d: any, i: any) =>\n d\n ? DateHelper.toLocal(\n d,\n i === 0,\n i === dates.length - 1\n )?.toISOString()\n : null\n );\n\n setFilterItems(\n filterItems.map(e =>\n e.title === item.title\n ? {\n ...e,\n // Store the ISO strings for the API\n filterValue: isoDates,\n // Keep the user-friendly label\n filterLabel: `${dates[0].format('MMM D, YYYY')} → ${dates[1].format('MMM D, YYYY')}`,\n }\n : e\n ),\n true\n );\n }\n setDropdownOpen(false);\n }}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n />\n ),\n };\n\n const dropdownContent = (\n <DropdownContent\n style={{\n border: item?.filters?.type === ColumnFilterType.DATEPICKER ? 'none' : 'inherit',\n }}\n >\n {dropdownContentComponent[item?.filters?.type || ColumnFilterType.INPUT]}\n </DropdownContent>\n );\n\n return (\n <FilterItemWrapper>\n <FilterDropdown placement={'bottomLeft'} onSelect={onSelect}>\n <span>\n <SettingsLogo />\n {item.title}\n </span>\n </FilterDropdown>\n <Dropdown\n overlayClassName=\"debug-dropdwon\"\n placement={'bottomLeft'}\n open={dropdownOpen}\n onOpenChange={onOpenChange}\n popupRender={() => dropdownContent}\n trigger={['click']}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n >\n <div>\n {item.filterValue\n ? item.filterLabel\n ? item.filterLabel\n : item.filterValue\n : 'NotSelected'}\n </div>\n </Dropdown>\n <span onClick={onRemove}>\n <CloseMarkIcon />\n </span>\n </FilterItemWrapper>\n );\n};\n\nconst PageFilter = () => {\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\n const resetStore = useGridViewStore(s => s.resetStore);\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n const { deleteMyFilter } = usePackageServices();\n\n const bumpConfigsVersion = useGridViewStore(s => s.bumpConfigsVersion);\n const { open, store, close } = useModalStore();\n const filterType = useFilterDataSourceType();\n\n async function handleDeleteConfiguration() {\n try {\n if (!selectedConfig || !deleteMyFilter) return;\n\n await deleteMyFilter(selectedConfig.id);\n setSelectedConfig(null);\n bumpConfigsVersion();\n } catch (err) {\n console.log(err, 'Error happened deleting configuration');\n }\n }\n\n function deleteConfiguration() {\n store({\n component: DeleteRecordPopup,\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\n footerOptions: {\n okText: (\n <CreateModalButton\n onClick={() => {\n handleDeleteConfiguration();\n close();\n resetStore();\n }}\n >\n <span className=\"arrow-styled\">\n {'Delete'}\n <ArrowRightIcon />\n </span>\n </CreateModalButton>\n ),\n cancelText: 'Cancel',\n },\n });\n open();\n }\n\n function handleSaveConfiguration() {\n const value = JSON.stringify({ filterItems, sortItems });\n store({\n component: FilterConfiguration,\n componentProps: {\n type: filterType,\n value,\n selectedConfig,\n onSuccess: (savedName: string) => {\n if (selectedConfig) {\n setSelectedConfig({ ...selectedConfig, name: savedName });\n }\n bumpConfigsVersion();\n },\n },\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\n footerOptions: {\n okText: (\n <CreateModalButton>\n <span className=\"arrow-styled\">\n {'Save'}\n <ArrowRightIcon />\n </span>\n </CreateModalButton>\n ),\n cancelText: 'Cancel',\n },\n });\n open();\n }\n\n return (\n <PageFilterWrapper>\n {sortItems.length > 0 && (\n <SortDropdown placement={'bottomLeft'}>\n <FilterItemWrapper className=\"sort\">\n <span>\n {sortItems[0].title}\n {sortItems[0].direction == SortDirections.ASC ? (\n <ArrodwUpLogo />\n ) : (\n <ArrodwDownLogo />\n )}\n </span>\n </FilterItemWrapper>\n </SortDropdown>\n )}\n {filterItems.map(item => (\n <FilterItem key={item.title} item={item} />\n ))}\n <FilterDropdown placement={'bottomLeft'}>\n <FilterItemWrapper className=\"add-filter\">\n <span>\n <PlusLogo />\n {'AddFilter'}\n </span>\n </FilterItemWrapper>\n </FilterDropdown>\n\n <ResetConditionsWrapper>\n <button onClick={handleSaveConfiguration}>\n {selectedConfig ? 'UpdateConfiguration' : 'SaveConfiguration'}\n </button>\n {selectedConfig && (\n <button onClick={deleteConfiguration}>{'DeleteConfiguration'}</button>\n )}\n <button onClick={resetStore}>\n <RefrechSvg />\n {'ResetConditions'}\n </button>\n </ResetConditionsWrapper>\n </PageFilterWrapper>\n );\n};\n\nexport default PageFilter;\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n overflow-y: auto;\n width: 100%;\n\n table {\n border-collapse: collapse;\n width: 100%;\n thead {\n tr {\n position: sticky;\n top: 0;\n z-index: 2;\n th {\n padding: 0.25rem 0.25rem;\n position: relative;\n overflow: hidden;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n height: var(--size-450, 2.25rem);\n background: var(--color-bg-primary, #141414);\n text-transform: capitalize;\n text-align: left;\n transition: 0.1s;\n span {\n display: flex;\n padding: 0.5rem 0.75rem;\n min-width: var(--size-1000, 5rem);\n }\n &:first-child {\n min-width: 1.5rem;\n width: 1.5rem;\n padding: 0;\n border-start-start-radius: 0px !important;\n span {\n display: none;\n }\n\n @media (max-width: 991px) {\n min-width: 1rem;\n width: 1rem;\n }\n }\n\n\n &:nth-child(2) {\n width: 10px;\n }\n &:after {\n display: none !important;\n }\n\n &:last-child,\n &:first-child {\n border-start-start-radius: 0px !important;\n }\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0px;\n height: 1px;\n width: 100%;\n background-color: var(--color-border-primary, rgba(255, 255, 255, 0.1));\n }\n &:before {\n top: unset;\n bottom: 0px;\n }\n &.active,\n &:active,\n &:hover {\n span {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5);\n }\n }\n }\n }\n }\n tbody {\n tr {\n transition: 0.1s;\n position: relative;\n\n td {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-primary, #131412);\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n height: 3rem;\n &:first-child {\n padding: 0;\n }\n }\n\n .row-actions {\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n }\n\n /* &:hover {\n background: var(--color-bg-tertiary, #e7e7e7);\n } */\n &.main-group-header {\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n span {\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n margin-left: 0.5rem;\n }\n }\n\n &.sub-group-header {\n div {\n display: flex;\n align-items: center;\n }\n span {\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n margin-left: 0.5rem;\n }\n\n .line {\n height: 0.0625rem;\n background: var(--color-border-secondary, rgba(255, 255, 255, 0.2));\n flex: 1;\n margin: 0 1rem;\n }\n }\n\n .action-buttons-wrapper {\n position: sticky;\n right: 1rem;\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-primary, #141414);\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n opacity: 0;\n padding: 0;\n div {\n display: flex;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n path {\n fill: var(--color-icon-primary, #fff);\n }\n }\n }\n\n &:hover {\n .action-buttons-wrapper {\n opacity: 1;\n }\n }\n &.checked {\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n }\n }\n tr:hover .row-actions {\n opacity: 1;\n }\n }\n }\n\n .ant-skeleton-paragraph {\n li {\n background: var(--color-interaction-press-primary) !important;\n }\n }\n`;\n\nexport const DrodownContent = styled.div`\n display: flex;\n flex-direction: column;\n background: var(--color-bg-quaternary, #fff);\n border-radius: var(--border-radius-025, 0.125rem);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n button {\n min-width: 8.5rem;\n padding: 0.5rem 0.75rem;\n display: flex;\n gap: 0.75rem;\n align-items: center;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n background-color: transparent;\n transition: 0.1s;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n &:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n }\n }\n`;\n\nexport const PaginationWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n padding: 0 1.5rem;\n margin-top: auto;\n position: sticky;\n left: 0;\n bottom: 0;\n width: 100%;\n background: var(--color-bg-primary, #141414);\n .ant-pagination-next,\n .ant-pagination-prev,\n .ant-pagination-jump-next {\n min-width: 1.5rem;\n height: 1.5rem;\n line-height: 1.5rem;\n }\n .ant-pagination-item {\n min-width: 1.5rem;\n height: 1.5rem;\n border: none;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: 0.12rem;\n &.ant-pagination-item-active {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n }\n a {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n .anticon {\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n\n .ant-pagination-disabled {\n opacity: 40%;\n }\n\n .ant-select {\n height: 1.5rem;\n .ant-select-selector {\n border: none;\n background-color: transparent;\n }\n\n .ant-select-selection-item {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n\n .page-size-select-header {\n padding: 0.5rem 0;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-secondary);\n }\n }\n }\n\n @media (max-width: 991px) {\n padding: 0 1rem;\n }\n`;\n\nexport const PageSizeSelectDropdownContent = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #232323);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n display: flex;\n flex-direction: column;\n button {\n padding: 0.5rem 0.75rem;\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n min-width: 12rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-align: left;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n","export function groupBy(column: any, items: any[]) {\r\n const currentGroupOptions: any = {};\r\n items.forEach((item: any) => {\r\n const option = item[column.dataIndex];\r\n if (currentGroupOptions[option]) {\r\n currentGroupOptions[option].push(item);\r\n } else {\r\n currentGroupOptions[option] = [item];\r\n }\r\n });\r\n return currentGroupOptions;\r\n}\r\n\r\nexport function getGroupLength(group: Record<string, any[]>) {\r\n return Object.values(group).reduce((sum, list) => sum + list.length, 0);\r\n}\r\n","import { Skeleton } from 'antd';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\n\nfunction TableRow({ item, columns, rowKey, onRowClick }: any) {\n const checkedValue = useGridViewStore(s => s.checkedValue);\n\n return (\n <tr\n key={item[rowKey]}\n onClick={onRowClick ? () => onRowClick(item) : undefined}\n className={`${checkedValue && checkedValue[item[rowKey]] ? 'checked' : ''}`}\n >\n {columns.map((col: any) => (\n <td key={`${item[rowKey]}-${col.dataIndex}`}>\n {col?.render ? col.render(item[col.dataIndex], item) : item[col.dataIndex]}\n </td>\n ))}\n </tr>\n );\n}\n\nexport function TableBodyRows({ rows, columns, rowKey, onRowClick }: any) {\n return rows.map((item: any) => (\n <TableRow\n key={item[rowKey]}\n item={item}\n columns={columns}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n ));\n}\n\nexport function SketelonRows({ rowLength, columnLength }: any) {\n return Array(rowLength)\n .fill(null)\n .map((_, rowIndex) => (\n <tr key={`skeleton-row-${rowIndex}`}>\n {Array(columnLength)\n .fill(null)\n .map((_col: any, colIndex: number) => (\n <td key={`${rowIndex}-${colIndex}`}>\n <Skeleton active title={false} paragraph={{ rows: 1, width: '100%' }} />\n </td>\n ))}\n </tr>\n ));\n}\n","import React from 'react';\r\nimport { TableBodyRows } from './TableBodyRows';\r\n\r\nexport function SubGroupedSection({ subGroups, columns, rowKey, onRowClick }: any) {\r\n return (\r\n <>\r\n {Object.keys(subGroups).map((subLabel: string) => (\r\n <React.Fragment key={subLabel}>\r\n <tr className=\"sub-group-header\">\r\n <td></td>\r\n <td colSpan={columns.length}>\r\n <div>\r\n {subLabel} <span>{subGroups[subLabel].length}</span>\r\n <span className=\"line\"></span>\r\n </div>\r\n </td>\r\n </tr>\r\n <TableBodyRows\r\n rows={subGroups[subLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n </React.Fragment>\r\n ))}\r\n </>\r\n );\r\n}\r\n","import React from 'react';\r\nimport { TableBodyRows } from './TableBodyRows';\r\nimport { SubGroupedSection } from './SubGroupedSection';\r\n\r\nfunction GroupHeader({ label, colSpan, count }: { label: string; colSpan: number; count: number }) {\r\n return (\r\n <tr className=\"main-group-header\">\r\n <td></td>\r\n <td colSpan={colSpan}>\r\n {label} <span>{count}</span>\r\n </td>\r\n <td></td>\r\n </tr>\r\n );\r\n}\r\n\r\nexport function GroupedTableBody({\r\n dataSource,\r\n columns,\r\n isSubGroupped,\r\n getGroupLength,\r\n rowKey,\r\n onRowClick,\r\n}: any) {\r\n return (\r\n <>\r\n {Object.keys(dataSource).map((groupLabel: string) => (\r\n <React.Fragment key={groupLabel}>\r\n <GroupHeader\r\n label={groupLabel}\r\n colSpan={columns.length}\r\n count={\r\n isSubGroupped\r\n ? getGroupLength(dataSource[groupLabel])\r\n : dataSource[groupLabel]?.length\r\n }\r\n />\r\n\r\n {isSubGroupped ? (\r\n <SubGroupedSection\r\n subGroups={dataSource[groupLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n ) : (\r\n <TableBodyRows\r\n rows={dataSource[groupLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\nexport default GroupedTableBody;\r\n","import { Dropdown, Pagination } from 'antd';\nimport { PageSizeSelectDropdownContent, PaginationWrapper } from './style';\nimport ChevronDown from '../../../../assets/icons/chevron-down.svg?react';\nimport CheckmarkIcon from '../../../../assets/icons/checkmark.svg?react';\nimport { useState } from 'react';\nimport { tGeneral } from '../../../../utils/exportTranslation';\n\nexport function TablePagination({\n pagination,\n onPerPageSelectChange,\n totalItemCount,\n onPaginationChange,\n}: any) {\n const [open, setOpen] = useState(false);\n\n return (\n <PaginationWrapper>\n <Pagination\n current={pagination.current}\n pageSize={pagination.pageSize}\n total={totalItemCount}\n showSizeChanger={false}\n onChange={onPaginationChange}\n />\n\n <Dropdown\n placement={'bottomRight'}\n popupRender={() => (\n <PageSizeSelectDropdownContent>\n {(\n pagination?.items || [\n { label: `10 ${tGeneral('Items')}`, value: 10 },\n { label: `25 ${tGeneral('Items')}`, value: 25 },\n { label: `50 ${tGeneral('Items')}`, value: 50 },\n { label: `100 ${tGeneral('Items')}`, value: 100 },\n ]\n ).map((option: any) => (\n <button\n key={option.value}\n onClick={() => onPerPageSelectChange(option.value)}\n >\n {option.label}{' '}\n {option.value == pagination.pageSize && <CheckmarkIcon />}\n </button>\n ))}\n </PageSizeSelectDropdownContent>\n )}\n trigger={['click']}\n open={open}\n onOpenChange={setOpen}\n >\n <div className=\"page-size-select-header\">\n {pagination.pageSize} {tGeneral('ItemsPerPage')} <ChevronDown />\n </div>\n </Dropdown>\n </PaginationWrapper>\n );\n}\n","import * as React from \"react\";\nconst SvgEyeHide = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.6094 3.33333L5.1263 11.8158C5.12139 11.8211 5.11638 11.8263 5.11133 11.8314L3.33333 13.6094L2.39062 12.6667L3.66211 11.3939C2.75363 10.5112 1.95159 9.31206 1.41341 8.31706L1.24219 8L1.41341 7.68294C2.08047 6.44895 3.05011 5.21371 4.17253 4.2793C5.28611 3.35227 6.61809 2.66667 8 2.66667C9.16616 2.66667 10.294 3.10021 11.291 3.76562L12.6667 2.39062L13.6094 3.33333ZM8 4C7.05196 4 6.01458 4.48114 5.02604 5.30404C4.14063 6.04112 3.34853 7.00907 2.76562 8C3.26512 8.86691 3.9209 9.79039 4.60482 10.4512L5.63021 9.42643C4.98911 8.36284 5.12669 6.96121 6.04427 6.04362C6.96186 5.12604 8.36349 4.98846 9.42708 5.62956L10.3255 4.73047C9.55755 4.26174 8.76273 4 8 4ZM8.42513 6.63151C7.93343 6.47928 7.37623 6.59708 6.98698 6.98633C6.59773 7.37558 6.47993 7.93278 6.63216 8.42448L8.42513 6.63151Z\", fill: \"currentColor\", fillOpacity: 0.75 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.2266 5.51432L13.4199 5.75651C13.8705 6.35556 14.306 7.16405 14.5866 7.68294L14.7578 8L14.5866 8.31706C13.9196 9.55061 12.9498 10.7856 11.8275 11.7201C10.714 12.6471 9.38194 13.3333 8 13.3333C7.42626 13.3333 6.86164 13.2272 6.32031 13.0423L6.08984 12.9583L5.5332 12.7422L6.5638 11.7116L6.57161 11.7148L6.75195 11.7806C7.17263 11.9243 7.59142 12 8 12C8.94792 12 9.98545 11.5189 10.974 10.696C11.8609 9.95749 12.6538 8.98668 13.237 7.99414C12.9701 7.50763 12.6616 6.96796 12.3665 6.57357L12.2122 6.38021L12.0664 6.20898L13.0124 5.26302L13.2266 5.51432Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgEyeHide;\n","import { useState } from 'react';\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\nimport ArrowUp from '../../../../assets/icons/arrow-up.svg?react';\nimport ArrowDown from '../../../../assets/icons/arrow-down.svg?react';\nimport EyeHide from '../../../../assets/icons/eye-hide.svg?react';\nimport { Dropdown } from 'antd';\nimport { DrodownContent } from './style';\nimport { Column, FilterSelectTypes, SortDirections } from '../../types';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\n\nexport function TableTh({ col }: any) {\n const [open, setOpen] = useState(false);\n const filterItems = useGridViewStore(s => s.filterItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n const setHideItems = useGridViewStore(s => s.setHideItems);\n\n function onSortSelectHandle(col: Column, direction: SortDirections) {\n setSortItems([\n {\n title: col.title,\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\n direction: direction,\n },\n ]);\n }\n\n function onFilterSelectHandle(col: Column) {\n const removeCurrentItem = filterItems.filter(f => col.title != f.title);\n setFilterItems([\n ...removeCurrentItem,\n {\n ...col,\n selectType: FilterSelectTypes.VALUE,\n },\n ]);\n }\n\n function onHideSelectHandle(col: Column, isHide: boolean) {\n setHideItems({\n ...hideItems,\n [col.dataIndex]: isHide ? true : false,\n });\n }\n\n const closeDropdown = () => setOpen(false);\n\n const dropdownItems = [\n { icon: <FilterLogo />, text: tGeneral('Filter'), action: () => onFilterSelectHandle(col) },\n {\n icon: <ArrowUp />,\n text: tActions('Ascending'),\n action: () => onSortSelectHandle(col, SortDirections.ASC),\n },\n {\n icon: <ArrowDown />,\n text: tActions('Descending'),\n action: () => onSortSelectHandle(col, SortDirections.DESC),\n },\n {\n icon: <EyeHide />,\n text: tGeneral('HideInView'),\n action: () => onHideSelectHandle(col, true),\n },\n ];\n\n if (col.filterDropdown === false) {\n return <th></th>;\n }\n\n return (\n <Dropdown\n placement=\"bottomLeft\"\n popupRender={() => (\n <DrodownContent>\n {dropdownItems.map(({ icon, text, action }) => (\n <button\n key={text}\n onClick={() => {\n action();\n closeDropdown();\n }}\n >\n {icon}\n {text}\n </button>\n ))}\n </DrodownContent>\n )}\n trigger={['click']}\n open={open}\n onOpenChange={setOpen}\n getPopupContainer={triggerNode => triggerNode?.parentElement ?? document.body}\n >\n <th className={open ? 'active' : ''}>\n <span>{col.title}</span>\n </th>\n </Dropdown>\n );\n}\n","import { Button } from 'antd';\nimport styled from 'styled-components';\n\nexport const NoDataWrapper = styled.div`\n display: flex;\n height: 80vh;\n padding: 24px var(--spacing-300, 24px);\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-align: center;\n gap: var(--spacing-400, 32px);\n`;\n\nexport const TextContainer = styled.div`\n display: flex;\n width: 864px;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n`;\n\nexport const HeaderText = styled.p`\n color: var(--color-text-primary, #131412);\n text-align: center;\n\n /* body/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-medium, 18px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\n`;\n\nexport const InfoText = styled.p`\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n text-align: center;\n width: 400px;\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n @media (max-width: 410px) {\n font-size: 10px;\n width: 350px;\n }\n`;\nexport const HelpSpan = styled.span`\n color: var(--color-text-status-info, #17adc1);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const NoDataButton = styled(Button)`\n display: flex;\n height: var(--size-400, 32px);\n padding: 8px;\n justify-content: center;\n align-items: center;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n\n border: none;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n","import { NoDataWrapper, TextContainer, HeaderText, InfoText, HelpSpan } from './style';\n\nconst NoData = ({ title, description, button, helpSpan }: any) => {\n return (\n <NoDataWrapper>\n <TextContainer>\n <HeaderText>{title}</HeaderText>\n <InfoText>\n {description} {helpSpan && <HelpSpan>{helpSpan}</HelpSpan>}\n </InfoText>\n {button && button}\n </TextContainer>\n </NoDataWrapper>\n );\n};\n\nexport default NoData;\n","import { TableWrapper } from './style';\nimport { getGroupLength, groupBy } from './utils';\nimport { SketelonRows, TableBodyRows } from './TableBodyRows';\nimport GroupedTableBody from './GroupedTableBody';\nimport { TablePagination } from './TablePagination';\nimport { TableTh } from './TableTh';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { useMemo } from 'react';\nimport { TableViewOptions } from '../../types';\nimport NoData from '../../../../components/no-data';\n\nconst Table = ({\n activeTableView,\n columns,\n rowKey,\n dataSource,\n loading,\n pagination,\n totalItemCount,\n onRowClick,\n noPagination,\n noDataProps,\n}: any) => {\n const filters = useGridViewStore(s => s.filters);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n\n const setFilters = useGridViewStore(s => s.setFilters);\n\n const currentColumns = useMemo(() => {\n if (groupByArr.length > 0) {\n return columns.filter(\n (col: any) => !groupByArr.some((g: any) => g.dataIndex == col.dataIndex)\n );\n } else {\n return columns;\n }\n }, [columns, groupByArr]);\n\n const { isTableGroupped, isTableSubGroupped } = useMemo(\n () => ({\n isTableGroupped: !!groupByArr[0],\n isTableSubGroupped: !!groupByArr[1],\n }),\n [groupByArr]\n );\n const currentDataSource = useMemo(() => {\n if (groupByArr[0]) {\n const grouped = groupBy(groupByArr[0], dataSource);\n\n if (groupByArr[1]) {\n const subGrouped: any = {};\n Object.keys(grouped).forEach(key => {\n subGrouped[key] = groupBy(groupByArr[1], grouped[key]);\n });\n\n return subGrouped;\n }\n\n return grouped;\n }\n\n return dataSource;\n }, [dataSource, groupByArr]);\n\n function onPerPageSelectChange(newPageSize: number) {\n setFilters({\n ...filters,\n PageSize: newPageSize,\n Page: 1,\n });\n }\n\n function onPaginationChange(newPage: number) {\n setFilters({\n ...filters,\n Page: newPage,\n });\n }\n\n return (\n <TableWrapper>\n <table>\n {activeTableView != TableViewOptions.LIST && (\n <thead>\n <tr>\n {currentColumns.map((col: any) => (\n <TableTh key={col.dataIndex} col={col} />\n ))}\n <th></th>\n </tr>\n </thead>\n )}\n <tbody>\n {loading ? (\n <SketelonRows\n rowLength={pagination.pageSize}\n columnLength={currentColumns.length}\n />\n ) : currentDataSource?.length == 0 && noDataProps ? (\n <tr>\n <td colSpan={currentColumns.length}>\n <NoData {...noDataProps} />\n </td>\n </tr>\n ) : (\n <>\n {isTableGroupped ? (\n <GroupedTableBody\n dataSource={currentDataSource}\n columns={currentColumns}\n isSubGroupped={isTableSubGroupped}\n getGroupLength={getGroupLength}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n ) : (\n <TableBodyRows\n rows={currentDataSource}\n columns={currentColumns}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n )}\n </>\n )}\n </tbody>\n </table>\n {pagination && !noPagination && (\n <TablePagination\n pagination={pagination}\n totalItemCount={totalItemCount}\n onPerPageSelectChange={onPerPageSelectChange}\n onPaginationChange={onPaginationChange}\n />\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n","import styled from 'styled-components';\n\nexport const SettingSidebarWrapper = styled.div`\n display: flex;\n flex-direction: column;\n position: fixed;\n right: 0;\n top: 0;\n height: 100vh;\n background: var(--color-bg-primary, #fff);\n border-left: 1px solid var(--color-bg-secondary, #f5f5f5);\n max-width: 22.5rem;\n width: 100%;\n z-index: 3;\n header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n button {\n display: flex;\n align-items: center;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary);\n }\n }\n }\n }\n\n .setting-sidebar-content {\n padding: 0 1.5rem;\n margin-top: 1.2rem;\n .table-view-list {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n li {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0.75rem;\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-quaternary, #fff);\n gap: 0.75rem;\n transition: 0.1s;\n cursor: pointer;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n transition: 0.1s;\n }\n svg {\n width: var(--size-250, 1.25rem);\n height: var(--size-250, 1.25rem);\n path {\n fill: var(--color-icon-secondary);\n transition: 0.1s;\n }\n }\n &.active,\n &:hover {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-brand-special, #141414);\n span {\n color: var(--color-text-inverse-primary, #fff);\n }\n svg {\n path {\n fill: var(--color-icon-inverse);\n }\n }\n }\n }\n }\n\n .grouping-list {\n display: flex;\n flex-direction: column;\n gap: 2.5rem;\n margin-top: 2.5rem;\n li {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-select-selector {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5);\n border: none;\n .ant-select-selection-placeholder {\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n }\n\n .properties-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: 2.5rem;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n ul {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n li {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-primary, #131412);\n text-align: center;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n padding: 0.25rem 0.75rem 0.25rem 0.4rem;\n border-radius: var(--border-radius-full, 62.4375rem);\n background-color: var(--color-bg-secondary);\n border: 1px solid var(--color-bg-secondary, rgba(20, 20, 20, 0.05));\n cursor: pointer;\n text-transform: capitalize;\n &::before {\n content: '';\n display: block;\n width: 0.875rem;\n height: 0.875rem;\n background-color: var(--color-icon-primary);\n border-radius: 100%;\n }\n &.hide {\n background-color: transparent;\n border: 1px dashed var(--color-border-primary, rgba(20, 20, 20, 0.05));\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n &::before {\n width: 0.5rem;\n height: 0.5rem;\n margin: 0.25rem;\n background-color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n }\n }\n }\n }\n }\n }\n\n footer {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 0 1.5rem;\n margin-top: auto;\n padding-bottom: 1.5rem;\n button {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n padding: 0.5rem;\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary);\n }\n }\n }\n }\n\n @media (max-width: 991px) {\n max-width: 100%;\n overflow: auto;\n header {\n position: sticky;\n top: 0;\n left: 0;\n background: var(--color-bg-primary, #fff);\n z-index: 9;\n }\n }\n`;\n\nexport const StyledNoGrouping = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M12 2C6.47672 2 2 6.47672 2 12C2 17.5233 6.47672 22 12 22C17.5233 22 22 17.5233 22 12C22 6.47672 17.5233 2 12 2ZM4 12C4 7.58128 7.58128 4 12 4C16.4187 4 20 7.58128 20 12C20 16.4187 16.4187 20 12 20C7.58128 20 4 16.4187 4 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.207 9.20703L13.4141 12L16.207 14.793L14.793 16.207L12 13.4141L9.20703 16.207L7.79297 14.793L10.5859 12L7.79297 9.20703L9.20703 7.79297L12 10.5859L14.793 7.79297L16.207 9.20703Z\", fill: \"currentColor\" }));\nexport default SvgClose;\n","import * as React from \"react\";\nconst SvgCheckmarkFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.0013 1.66675C5.39856 1.66675 1.66797 5.39734 1.66797 10.0001C1.66797 14.6028 5.39856 18.3334 10.0013 18.3334C14.604 18.3334 18.3346 14.6028 18.3346 10.0001C18.3346 5.39734 14.604 1.66675 10.0013 1.66675ZM13.9239 8.92267C14.2493 8.59723 14.2493 8.0696 13.9239 7.74416C13.5985 7.41872 13.0708 7.41872 12.7454 7.74416L9.16797 11.3216L7.25722 9.41083C6.93179 9.08539 6.40415 9.08539 6.07871 9.41083C5.75328 9.73626 5.75328 10.2639 6.07871 10.5893L8.57871 13.0893C8.90415 13.4148 9.43179 13.4148 9.75723 13.0893L13.9239 8.92267Z\", fill: \"currentColor\" }));\nexport default SvgCheckmarkFilled;\n","import styled from 'styled-components';\nimport { Button } from 'antd';\n\nexport const ModalContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: 1.5rem;\n h2 {\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n margin-bottom: 0.25rem;\n padding: 0 1.5rem;\n }\n p {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n margin-bottom: 2rem;\n padding: 0 1.5rem;\n }\n button {\n color: var(--color-text-inverse-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-brand-special, #02e0ae);\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.25rem 1.5rem;\n path {\n fill: var(--color-icon-inverse);\n }\n }\n`;\n\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n\nexport const DidnotReceiveCodeSpan = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const OtpContentWrapper = styled(ModalContentWrapper)`\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-status-error, #fd7f60) !important;\n border: 2px solid var(--color-bg-secondary, #f5f5f5);\n padding-top: 0 !important;\n`;\n\nexport const BlockedOtpHeader = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-050, 4px);\n padding: var(--spacing-400, 32px) var(--spacing-300, 24px) !important;\n`;\n\nexport const BlockedOtpTitle = styled.div`\n display: flex;\n justify-content: space-between;\n color: var(--color-text-contrast-onlight-primary, #131412);\n\n /* subheading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const OtpBlockedLabel = styled.div`\n color: var(--color-text-contrast-onlight-secondary, rgba(19, 20, 18, 0.75));\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n padding-bottom: var(--spacing-400, 32px) !important;\n`;\n\nexport const OtpBlockedButton = styled(Button)`\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #02e0ae);\n display: flex;\n justify-content: start;\n color: var(--color-text-inverse-primary, #131412) !important;\n border: none !important;\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n padding: var(--spacing-350, 30px) var(--spacing-300, 24px) !important;\n &:hover {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #02e0ae) !important;\n border: none !important;\n color: var(--color-text-inverse-primary, #131412) !important;\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n }\n`;\n","import * as React from \"react\";\nconst SvgError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.16635 10.8358C7.16765 11.2949 7.54029 11.6667 7.99968 11.6667C8.45987 11.6667 8.83301 11.2936 8.83301 10.8334C8.83301 10.3715 8.45813 10 7.99901 10C7.54056 10 7.1643 10.372 7.16635 10.8358Z\", fill: \"#FD6C49\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66634 9.00004V4.33338H7.33301V9.00004H8.66634Z\", fill: \"#FD6C49\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.943 1.33337L11.1383 1.52921C12.2476 2.64117 13.3589 3.75126 14.4708 4.86166L14.6663 5.05698V10.9429L10.9425 14.6667H5.05687L1.33301 10.9429L1.33301 5.05723L5.05687 1.33338L10.943 1.33337ZM5.60915 2.66671L2.66634 5.60952L2.66634 10.3906L5.60915 13.3334H10.3902L13.333 10.3906V5.60977C12.3516 4.62959 11.37 3.64891 10.3898 2.66671L5.60915 2.66671Z\", fill: \"#FD6C49\" }));\nexport default SvgError;\n","export function parseErrorMessageKey(input: string) {\n if (!input) return input;\n\n // Always lowercase the first character\n let result = input[0].toLowerCase();\n\n for (let i = 1; i < input.length; i++) {\n const prev = input[i - 1];\n const curr = input[i];\n const next = input[i + 1];\n\n // Check if current is uppercase\n if (/[A-Z]/.test(curr)) {\n // If surrounded by other uppercase chars, lowercase it\n if (/[A-Z]/.test(prev) && /[A-Z]/.test(next)) {\n result += curr.toLowerCase();\n } else if (/[A-Z]/.test(prev) && (!next || /[^A-Z]/.test(next))) {\n // If it's the *last* uppercase in a group, keep it uppercase\n result += curr;\n } else {\n result += curr;\n }\n } else {\n result += curr;\n }\n }\n\n return result;\n}\n\nexport function parseServerErrors(errors: Record<string, string[]>) {\n return Object.entries(errors).map(([key, messages]) => {\n const name: any = key\n .replace(/\\[(\\d+)\\]/g, '.$1')\n .split('.')\n .map(part => {\n if (isNaN(part as any)) {\n return parseErrorMessageKey(part);\n }\n return Number(part);\n });\n\n return { name, errors: messages };\n });\n}\n","import { Button, Form } from 'antd';\nimport styled from 'styled-components';\n\nexport const OtpWrapper = styled(Form.Item)`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\nexport const ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid black;\n`;\nexport const ResendButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n align-self: stretch;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #2f2f2f);\n`;\nexport const BackupSpan = styled.span`\n color: var(--color-text-brand, #06c193);\n cursor: pointer;\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n cursor: pointer;\n`;\n\nexport const DidnotReceiveCodeSpan = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const BackupCodeInfoText = styled.span`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n`;\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n\n /* ✅ OTP input styling */\n .ant-otp {\n column-gap: 0.12rem;\n }\n\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n box-shadow: none;\n }\n }\n\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n /* ✅ Regular Ant Design Input styling */\n .ant-input {\n height: 3rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: 1rem;\n font-weight: var(--text-weight-regular, 400);\n line-height: 1.25rem;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease;\n\n &::placeholder {\n color: rgba(255, 255, 255, 0.4);\n }\n\n &:focus,\n &.ant-input-focused {\n border-color: var(--color-border-brand-special, #02e0ae);\n box-shadow: none;\n }\n\n &.ant-input-status-error,\n &.ant-input-status-error:focus {\n border-color: var(--color-border-status-error, #fd7f60) !important;\n box-shadow: none !important;\n }\n }\n\n /* ✅ Error wrapper for both OTP and Inputs */\n &.verification-error {\n .ant-otp-input-wrapper input,\n .ant-input {\n border-color: var(--color-border-status-error, #fd7f60);\n }\n\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n","import { Input } from 'antd';\nimport styled from 'styled-components';\n\nexport const MFAPopupHeader = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 15px 15px 0 0;\n\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n\nexport const PasswordInputWrapper = styled.div`\n padding: 1.5rem;\n`;\n\nexport const SpinWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n`;\n\nexport const BackupCodeWrapper = styled.div`\n display: flex;\n align-items: center;\n padding: 24px;\n\n .ant-btn {\n background: var(--color-bg-brand-special, #02e0ae);\n color: var(--color-text-inverse-primary, #131412);\n &:hover {\n background: var(--color-bg-brand-special, #02e0ae) !important;\n color: var(--color-text-inverse-primary, #131412) !important;\n }\n }\n`;\n\nexport const PasswordInput = styled(Input.Password)`\n input[type='number'] {\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n display: none;\n }\n }\n\n &.ant-input-status-error,\n &.ant-input-affix-wrapper-status-error {\n border: 1px solid var(--color-border-status-error) !important;\n\n .ant-input {\n background: transparent !important;\n }\n\n .ant-input-prefix {\n color: var(--color-text-status-error) !important;\n }\n .ant-input-suffix {\n color: var(--color-text-status-error) !important;\n }\n }\n\n &::placeholder,\n .ant-input::placeholder {\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\n }\n\n &.ant-input-outlined:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-outlined:focus {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-affix-wrapper-focused {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n display: flex;\n height: 40px;\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\n align-items: center;\n align-self: stretch;\n border-radius: var(--border-radius-025, 2px);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n background: var(--color-bg-secondary, #2f2f2f) !important;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n &:hover,\n &:focus,\n &:focus-within,\n &:active {\n background: none;\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n box-shadow: none;\n }\n &:focus,\n &.ant-input:focus,\n &.ant-input-focused {\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n box-shadow: none !important;\n }\n\n &:hover,\n &:focus,\n &:focus-within,\n &:active,\n &.has-value {\n outline: none;\n span {\n transform: translateY(0%);\n top: 1rem;\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n }\n }\n\n .ant-input-suffix {\n color: var(--color-text-primary, #131412) !important;\n\n svg path {\n fill: var(--color-text-primary, #131412) !important;\n }\n }\n`;\n","import {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n GeneralInput,\n LabelText,\n} from '../modal-host/TablePopup.style';\n\nimport { useState } from 'react';\nimport { BackupCodeInfoText, ButtonsWrapper, VerificationWrapper } from './style';\nimport { parseServerErrors } from '../../utils/errors';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport { MFAPopupHeader } from '../popup-mfa/mfa-all-popups/style';\nimport { tActions, tAuthentication } from '../../utils/exportTranslation';\n\nconst EnterBackupCode = ({\n confirmationToken,\n backupCodeEndpoint,\n setBackupActivated,\n setVisible,\n id,\n setRefetchData,\n}: any) => {\n const [code, setCode] = useState();\n const [errorList, setErrorList] = useState<any[]>([]);\n async function handleSubmit() {\n try {\n const resp = await backupCodeEndpoint({ confirmationToken, code, id });\n\n if (resp?.data?.success) {\n setVisible(false);\n setRefetchData((prev: any) => !prev);\n }\n } catch (error: any) {\n const errorList = parseServerErrors(error?.response?.data?.errors);\n setErrorList(errorList);\n console.log(error);\n }\n }\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterBackupCode')}\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n\n <VerificationWrapper className={errorList.length > 0 ? 'verification-error' : ''}>\n <LabelText>{tAuthentication('BackupCode')}</LabelText>\n <GeneralInput\n value={code}\n onChange={(e: any) => setCode(e.target.value)}\n placeholder=\"xxxx-xxxx-xxxx\"\n />\n {errorList.map((error: any) => (\n <span key={error.name}>\n <ErrorSvg /> {error.errors[0]}\n </span>\n ))}\n <BackupCodeInfoText>{tAuthentication('BackupCodeSpan')}</BackupCodeInfoText>\n </VerificationWrapper>\n\n <ButtonsWrapper>\n <CancelModalButton\n onClick={() => {\n setBackupActivated(false);\n }}\n >\n {tActions('Back')}\n </CancelModalButton>\n\n <CreateModalButton onClick={handleSubmit}>\n <span className=\"arrow-styled\">\n {tActions('Continue')} <ArrowRightIcon />\n </span>\n </CreateModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\nexport default EnterBackupCode;\n","import styled from 'styled-components';\n\nexport const Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n`;\n\nexport const ModalContainer = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-quaternary, #2f2f2f);\n min-width: 300px;\n max-width: 500px;\n position: relative;\n animation: fadeIn 0.3s ease;\n`;\n","import { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModalContainer, Overlay } from './style';\n\nconst modalRoot =\n document.getElementById('modal-root') ||\n (() => {\n const el = document.createElement('div');\n el.id = 'modal-root';\n document.body.appendChild(el);\n return el;\n })();\n\nfunction Modal({ isOpen, onClose, children }: any) {\n useEffect(() => {\n const onKeyDown = (e: any) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [onClose]);\n\n if (!isOpen) return null;\n\n return ReactDOM.createPortal(\n <Overlay onClick={onClose}>\n <ModalContainer onClick={e => e.stopPropagation()}>{children}</ModalContainer>\n </Overlay>,\n modalRoot\n );\n}\n\nexport default Modal;\n","import { Input } from 'antd';\nimport {\n BlockedOtpHeader,\n BlockedOtpTitle,\n DidnotReceiveCodeSpan,\n ModalContentWrapper,\n OtpBlockedButton,\n OtpBlockedLabel,\n OtpContentWrapper,\n VerificationWrapper,\n} from './style';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { useState } from 'react';\nimport useUserStore from '../../stores/useUserStore';\nimport { parseServerErrors } from '../../utils/errors';\nimport EnterBackupCode from '../two-factor-popup/EnterBackupCodes';\nimport { BackupSpan } from '../two-factor-popup/style';\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport Modal from '../generic-modal';\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\nimport { usePackageServices } from '../../utils/PackageServicesProvider';\n\nenum MfaType {\n None = 1,\n OTP = 2,\n TOTP = 3,\n BackupCode = 4,\n}\n\nconst ModalText: any = {\n [MfaType.None]: `Enable2FaFirst`,\n [MfaType.OTP]: `ToViewOtpContactInfoDesc`,\n [MfaType.TOTP]: `ToViewTotpContactInfoDesc`,\n [MfaType.BackupCode]: `ToViewBackupCodeContactInfoDesc`,\n};\n\nconst ContactInfoModal = ({\n isVisible,\n setVisible,\n code,\n mfaType,\n id,\n isBlocked,\n onBlockStateClose,\n}: any) => {\n const { confirmContactInfo, confirmContactInfoBackup } = usePackageServices();\n const { setUser } = useUserStore();\n const [optValue, setOPTValue] = useState('');\n const [errors, setErrors] = useState<any[]>([]);\n const [backupActivated, setBackupActivated] = useState(false);\n\n function handleOTPChange(text: string) {\n setOPTValue(text);\n }\n async function handleSubmitVerificationCode() {\n const _confirm = confirmContactInfo;\n if (!_confirm) return;\n try {\n setErrors([]);\n const resp = await _confirm(code, optValue, id);\n setUser(resp.data.value as any);\n onClose();\n } catch (error: any) {\n console.log(error);\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = parseServerErrors(response.errors);\n setErrors(errorMessages);\n }\n }\n }\n\n async function handleSubmitBackupCode(params: any) {\n const _confirmBackup = confirmContactInfoBackup;\n if (!_confirmBackup) return;\n try {\n setErrors([]);\n const resp = await _confirmBackup(params);\n setUser(resp.data.value as any);\n } catch (error: any) {\n console.log(error);\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = parseServerErrors(response.errors);\n setErrors(errorMessages);\n }\n }\n }\n\n function onClose() {\n setOPTValue('');\n setVisible(false);\n setErrors([]);\n }\n\n if (isBlocked) {\n return (\n <Modal isOpen={isBlocked} onClose={onBlockStateClose}>\n <OtpContentWrapper>\n <BlockedOtpHeader>\n <BlockedOtpTitle>\n <span>{tGeneral('ContactInformationBlocked')}</span>\n <span onClick={onBlockStateClose}>\n <CloseMarkIcon />\n </span>\n </BlockedOtpTitle>\n <OtpBlockedLabel>\n {tGeneral('ContactInformationBlockedDesc')}\n </OtpBlockedLabel>\n </BlockedOtpHeader>\n <OtpBlockedButton>\n {tGeneral('TryAgain')}\n <ArrowRightIcon />\n </OtpBlockedButton>\n </OtpContentWrapper>\n </Modal>\n );\n } else {\n return (\n <Modal isOpen={isVisible} onClose={onClose}>\n {!backupActivated ? (\n <ModalContentWrapper>\n <h2>{tAuthentication('EnterVerificationCode')}</h2>\n <p>{mfaType !== undefined ? tGeneral(ModalText[mfaType]) : ''}</p>\n {mfaType !== MfaType.None && (\n <>\n <VerificationWrapper\n className={errors.length > 0 ? 'verification-error' : ''}\n >\n <Input.OTP value={optValue} onChange={handleOTPChange} />\n <DidnotReceiveCodeSpan>\n {tAuthentication('DidnReceiveCode')}{' '}\n <BackupSpan onClick={() => setBackupActivated(true)}>\n {tAuthentication('EnterBackupCode')}\n </BackupSpan>\n </DidnotReceiveCodeSpan>\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <button\n onClick={handleSubmitVerificationCode}\n disabled={optValue.length !== 6}\n >\n {tActions('ShowContactInformation')}\n <ArrowRightIcon />\n </button>\n </>\n )}\n </ModalContentWrapper>\n ) : (\n <EnterBackupCode\n setBackupActivated={setBackupActivated}\n backupCodeEndpoint={handleSubmitBackupCode}\n confirmationToken={code}\n id={id}\n setVisible={setVisible}\n />\n )}\n </Modal>\n );\n }\n};\n\nexport default ContactInfoModal;\n","import { useState } from 'react';\nimport useUserStore from '../stores/useUserStore';\nimport { usePackageServices } from '../utils/PackageServicesProvider';\n\nexport const useContactInfoController = () => {\n const { enableContactInfo, disableContactInfo } = usePackageServices();\n const { setUser } = useUserStore();\n const [isContactInfoModalVisible, setIsContactInfoModalVisible] = useState(false);\n const [savedResp, setSavedResp] = useState<any>(null);\n const [isBlocked, setIsBlocked] = useState(false);\n\n const handleEnableContactInfo = async () => {\n if (!enableContactInfo) return;\n try {\n setIsBlocked(false);\n const resp = await enableContactInfo();\n setSavedResp({\n token: (resp.data?.value as any)?.token,\n id: (resp.data?.value as any)?.id,\n mfaType: (resp.data?.value as any)?.mfaType,\n });\n setIsContactInfoModalVisible(true);\n } catch (error: any) {\n const response = error.response?.data;\n const errorMessages: any = response?.errors;\n\n if (\n (errorMessages &&\n Array.isArray(errorMessages['']) &&\n errorMessages[''][0] === 'TooManyAttempts') ||\n errorMessages[''][0] === 'IsNotAllowed'\n ) {\n setIsBlocked(true);\n }\n }\n };\n\n async function handleDisableContactInfo() {\n if (!disableContactInfo) return;\n const resp = await disableContactInfo();\n setUser(resp.data.value as any);\n }\n\n const onBlockStateClose = () => {\n setIsBlocked(false);\n setIsContactInfoModalVisible(false);\n };\n\n return {\n isContactInfoModalVisible,\n setIsContactInfoModalVisible,\n isBlocked,\n setIsBlocked,\n onBlockStateClose,\n handleEnableContactInfo,\n handleDisableContactInfo,\n ContactInfoModalProps: {\n isVisible: isContactInfoModalVisible,\n setVisible: setIsContactInfoModalVisible,\n code: savedResp?.token,\n mfaType: savedResp?.mfaType,\n id: savedResp?.id,\n isBlocked: isBlocked,\n onBlockStateClose: onBlockStateClose,\n },\n };\n};\n","import { SettingSidebarWrapper, StyledNoGrouping } from './style';\nimport CloseSvg from '../../../../assets/icons/close.svg?react';\nimport CheckmarkFilledSvg from '../../../../assets/icons/checkmark-filled.svg?react';\nimport FilterSvg from '../../../../assets/icons/filter.svg?react';\nimport RefrechSvg from '../../../../assets/icons/arrow-refresh.svg?react';\nimport { Select } from 'antd';\nimport ContactInfoModal from '../../../../components/contact-info-modal';\nimport useUserStore from '../../../../stores/useUserStore';\nimport { Column, TableViewOptions } from '../../types';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { useContactInfoController } from '../../../../hooks/useContactInfoController';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\n\nconst SettingSidebar = ({ close }: any) => {\n const { user } = useUserStore();\n const columns = useGridViewStore(s => s.columns);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n const hideItems = useGridViewStore(s => s.hideItems);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n const setActiveTableView = useGridViewStore(s => s.setActiveTableView);\n const setGroupByArr = useGridViewStore(s => s.setGroupByArr);\n const setHideItems = useGridViewStore(s => s.setHideItems);\n const resetStore = useGridViewStore(s => s.resetStore);\n const { handleEnableContactInfo, handleDisableContactInfo, ContactInfoModalProps } =\n useContactInfoController();\n function handleGroupChange(col: any) {\n const currentCol = columns.find((c: any) => c.dataIndex == col.value);\n setGroupByArr([currentCol]);\n }\n\n //DONT NEED NOW\n\n // function handleSubGroupChange(col: any) {\n // const currentCol = columns.find((c: any) => c.dataIndex == col.value);\n // setGroupByArr([groupByArr[0], currentCol]);\n // }\n\n function onHideSelectHandle(col: Column, isHide: boolean) {\n setHideItems({\n ...hideItems,\n [col.dataIndex]: isHide ? true : false,\n });\n }\n\n function formatDateDifference(date1: Date | string, date2: Date | string) {\n const d1 = new Date(date1);\n const d2 = new Date(date2);\n\n const diffMs = Math.abs(d2.getTime() - d1.getTime());\n\n const minutes = Math.floor(diffMs / (1000 * 60)) % 60;\n const hours = Math.floor(diffMs / (1000 * 60 * 60)) % 24;\n\n const parts = [];\n if (hours > 0) parts.push(`${hours}h`);\n if (minutes > 0) parts.push(`${minutes}m`);\n\n return parts.join(' ');\n }\n\n function onResetAllOptions() {\n resetStore();\n close();\n }\n\n return (\n <SettingSidebarWrapper>\n <header>\n <span>{tGeneral('ViewOptions')}</span>\n <button onClick={close}>\n <CloseSvg />\n </button>\n </header>\n\n <div className=\"setting-sidebar-content\">\n <ul className=\"table-view-list\">\n <li\n className={activeTableView == TableViewOptions.TABLE ? 'active' : ''}\n onClick={() => setActiveTableView(TableViewOptions.TABLE)}\n >\n <CheckmarkFilledSvg />\n <span>{tGeneral('Table')}</span>\n </li>\n <li\n className={activeTableView == TableViewOptions.LIST ? 'active' : ''}\n onClick={() => setActiveTableView(TableViewOptions.LIST)}\n >\n <FilterSvg />\n <span>{tGeneral('List')}</span>\n </li>\n </ul>\n\n <ul className=\"grouping-list\">\n <li>\n <span>{tGeneral('Grouping')}</span>\n <Select\n className={'teeest'}\n showSearch\n options={columns.map((col: any) => ({\n value: col.dataIndex,\n label: col.title,\n }))}\n labelInValue\n placeholder={\n <StyledNoGrouping>\n <FilterSvg />\n {tGeneral('NoGrouping')}\n </StyledNoGrouping>\n }\n value={groupByArr[0]?.dataIndex || null}\n onChange={handleGroupChange}\n />\n </li>\n {/* <li>\n\n\n DONT NEEED NOW\n\n\n <span>Sub grouping</span>\n <Select\n disabled={!groupByArr[0]?.dataIndex}\n showSearch\n options={columns\n .filter((col: any) => col.dataIndex != groupByArr[0]?.dataIndex)\n .map((col: any) => ({\n value: col.dataIndex,\n label: col.title,\n }))}\n labelInValue\n placeholder={\n <div>\n <FilterSvg />\n No grouping\n </div>\n }\n value={groupByArr[1]?.dataIndex || null}\n onChange={handleSubGroupChange}\n />\n </li> */}\n </ul>\n\n <div className=\"properties-list\">\n <span>{tGeneral('ShowProperties')}</span>\n <ul>\n {columns.map((col: any) => (\n <li\n key={col.dataIndex}\n className={hideItems[col.dataIndex] === true ? 'hide' : ''}\n onClick={() =>\n onHideSelectHandle(col, !(hideItems[col.dataIndex] === true))\n }\n >\n {col.title}\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n <footer>\n {user?.sensitiveDataExpiration &&\n new Date(user?.sensitiveDataExpiration) > new Date() ? (\n <button onClick={handleDisableContactInfo}>\n {tGeneral('HideContactInfo')} •{' '}\n {formatDateDifference(new Date(user?.sensitiveDataExpiration), new Date())}\n <CloseSvg />\n </button>\n ) : (\n <button onClick={handleEnableContactInfo}>\n {tActions('ShowContactInformation')} {}\n <CheckmarkFilledSvg />\n </button>\n )}\n\n <button onClick={onResetAllOptions}>\n {tActions('ResetAllOptions')}\n <RefrechSvg />\n </button>\n </footer>\n\n <ContactInfoModal {...ContactInfoModalProps} />\n </SettingSidebarWrapper>\n );\n};\n\nexport default SettingSidebar;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport useGridViewSessionStorage from './hooks/useGridViewSessionStorage';\nimport { useElementHeight } from '../../hooks/useElementHeight';\nimport { useGridViewStore } from './GridViewStoreProvider';\nimport { GridViewPageTableWrapper, PageTopContentWrapper, PageWrapper } from './style';\nimport PageHeader from './components/page-header/PageHeader';\nimport PageFilter from './components/PageFilter';\nimport Table from './components/Table';\nimport useUserStore from '../../stores/useUserStore';\nimport { useFetch } from '../../hooks/useFetch';\nimport SettingSidebar from './components/setting-sidebar';\nimport type { Column, GridViewPageProps } from './types';\n\nconst GridViewPage = ({\n columns,\n getData,\n update,\n hasCreateBtn,\n GridPageTopLeftComponent,\n contentAfterPageHeader,\n onRowClick,\n checkedValue,\n rowKey,\n pagination,\n CustomFilters,\n initialFilterValues,\n tableAdditionalFields,\n createIsModal,\n editButton,\n noPagination,\n noDataProps,\n exportButton,\n hasSelect,\n selectProps,\n TableComponent,\n tableProps = {},\n noNeedSidebarResponsiveButton,\n loadedData = () => {},\n}: GridViewPageProps) => {\n const { user } = useUserStore();\n const filters = useGridViewStore(s => s.filters);\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n\n const setColumns = useGridViewStore(s => s.setColumns);\n const setHasCreateBtn = useGridViewStore(s => s.setHasCreateBtn);\n const setHasSelect = useGridViewStore(s => s.setHasSelect);\n\n const setCheckedValue = useGridViewStore(s => s.setCheckedValue);\n\n const { response, loading } = useFetch<any>(\n () => getData({ ...filters, ...initialFilterValues }),\n [filters, user, update]\n );\n\n useGridViewSessionStorage();\n\n useEffect(() => {\n if (response?.data) {\n loadedData(response.data);\n }\n }, [response, loadedData]);\n\n const [isSettingPopupVisible, setisSettingPopupVisible] = useState(false);\n\n const pageTopContent: any = useRef(null);\n const topContentHeight = useElementHeight(pageTopContent);\n\n const currentColumns = useMemo(() => {\n const arr = columns.filter((c: Column) => hideItems[c.dataIndex] !== true);\n return arr;\n }, [columns, hideItems]);\n\n useEffect(() => {\n setHasCreateBtn(hasCreateBtn || false);\n setHasSelect(hasSelect || false);\n }, [hasSelect]);\n\n // here goes the logic for managing the NameMyreports state and then passing it through components.\n useEffect(() => {\n setColumns(columns);\n }, [columns]);\n\n useEffect(() => {\n setCheckedValue(checkedValue);\n }, [checkedValue]);\n\n return (\n <PageWrapper>\n <PageTopContentWrapper ref={pageTopContent}>\n <PageHeader\n noNeedSidebarResponsiveButton={noNeedSidebarResponsiveButton}\n hasSelect={hasSelect}\n selectProps={selectProps}\n exportButton={exportButton}\n setisSettingPopupVisible={setisSettingPopupVisible}\n CustomFilters={CustomFilters}\n tableAdditionalFields={tableAdditionalFields}\n createIsModal={createIsModal}\n GridPageTopLeftComponent={GridPageTopLeftComponent}\n />\n {contentAfterPageHeader}\n {(filterItems.length > 0 || sortItems.length > 0) && <PageFilter />}\n </PageTopContentWrapper>\n\n <GridViewPageTableWrapper height={`calc(100vh - ${`${topContentHeight}px`})`}>\n {TableComponent ? (\n <TableComponent\n dataSource={response?.data?.items || []}\n {...tableProps}\n rowKey={rowKey || 'id'}\n columns={[\n {\n title: '',\n dataIndex: '',\n },\n ...currentColumns,\n ]}\n loading={loading}\n pagination={{\n current: filters.Page,\n pageSize: filters.PageSize,\n items: pagination?.items,\n }}\n />\n ) : (\n <Table\n noPagination={noPagination}\n editButton={editButton}\n createIsModal={createIsModal}\n rowKey={rowKey || 'id'}\n columns={[\n {\n title: '',\n dataIndex: '',\n },\n ...currentColumns,\n ]}\n dataSource={response?.data?.items || []}\n loading={loading}\n pagination={{\n current: filters.Page,\n pageSize: filters.PageSize,\n items: pagination?.items,\n }}\n activeTableView={activeTableView}\n totalItemCount={response?.data?.totalItemCount || 0}\n onRowClick={onRowClick}\n noDataProps={noDataProps || null}\n />\n )}\n </GridViewPageTableWrapper>\n {isSettingPopupVisible && (\n <SettingSidebar close={() => setisSettingPopupVisible(false)} />\n )}\n </PageWrapper>\n );\n};\n\nexport default GridViewPage;\n","import GridViewPage from '../GridViewPage/GridViewPage';\nimport { GridViewStoreProvider } from './GridViewStoreProvider';\n\nconst GridViewPageWrapper = (props: any) => {\n return (\n <GridViewStoreProvider>\n <GridViewPage {...props} />\n </GridViewStoreProvider>\n );\n};\n\nexport default GridViewPageWrapper;\n","import React, { useEffect } from 'react';\nimport useModalStore from '../../stores/useModalStore';\nimport {\n CancelModalButton,\n CloseButton,\n ModalHostButtonWrapper,\n Popup,\n PopupFooterContainer,\n PopupHeader,\n} from './TablePopup.style';\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\nimport { useLocation } from 'react-router';\n\nconst ModalHost: React.FC = () => {\n const isOpen = useModalStore(state => state.isOpen);\n const options = useModalStore(state => state.options);\n const close = useModalStore(state => state.close);\n const location = useLocation();\n\n useEffect(() => {\n if (isOpen) {\n close();\n }\n }, [location.pathname]);\n\n if (!options || !isOpen) return null;\n\n const {\n title,\n component: Component,\n componentProps,\n popupOptions,\n footerOptions,\n hideFooter,\n showCloseButton,\n onOk,\n onCancel,\n } = options;\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleOk = () => {\n onOk?.();\n };\n\n return (\n <Popup\n centered\n title={\n title || showCloseButton ? (\n <PopupHeader>\n <span>{title}</span>\n {showCloseButton && (\n <CloseButton onClick={close}>\n <CloseMarkIcon />\n </CloseButton>\n )}\n </PopupHeader>\n ) : undefined\n }\n {...popupOptions}\n >\n {Component && <Component {...componentProps} />}\n\n {!hideFooter && (\n <PopupFooterContainer>\n <CancelModalButton onClick={handleCancel}>\n {footerOptions?.cancelText}\n </CancelModalButton>\n\n <ModalHostButtonWrapper\n onClick={handleOk}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') handleOk();\n }}\n >\n {footerOptions?.okText}\n </ModalHostButtonWrapper>\n </PopupFooterContainer>\n )}\n </Popup>\n );\n};\n\nexport default ModalHost;\n","import { ReactNode } from 'react';\nimport { Popup } from '../modal-host/TablePopup.style';\n\ninterface PopupMFAProps {\n displayAddRuleModal: boolean;\n onClose: () => void;\n title?: string;\n hideFooter?: boolean;\n children: ReactNode;\n}\n\nconst PopupMFA = ({\n displayAddRuleModal,\n onClose,\n title,\n hideFooter = false,\n children,\n}: PopupMFAProps) => {\n return (\n <Popup\n open={displayAddRuleModal}\n onCancel={onClose}\n closeIcon={false}\n title={title}\n footer={hideFooter ? null : undefined}\n destroyOnClose\n centered\n >\n {children}\n </Popup>\n );\n};\n\nexport default PopupMFA;\n","import { MFA_STEP } from '.';\nimport {\n CancelModalButton,\n ContentContainer,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { MFAPopupHeader } from './style';\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst SelectMFAMethod = ({\n onClose,\n setCurrentStep,\n setConfirmationToken,\n enableTwoFactorService,\n setRefetch,\n setIdOf2FA,\n}: any) => {\n async function getEmailToken() {\n const _enable = enableTwoFactorService;\n if (!_enable) return;\n try {\n const resp = await _enable();\n\n if (resp.data?.value?.isTwoFactorRequired) {\n setConfirmationToken(resp.data.value.token);\n setIdOf2FA(resp.data.value.id);\n setCurrentStep(MFA_STEP.VERIFY_EMAIL_CODE);\n } else if (resp?.data?.success && !resp?.data?.value) {\n //MEANS THAT it was activated before and it should automatically close\n setRefetch((prev: any) => !prev);\n onClose();\n } else {\n onClose();\n }\n } catch (error) {\n console.error('Failed to toggle 2FA:', error);\n }\n }\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('SetupTwoFactorAuthentication')}\n <LabelText>{tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <ButtonsWrapper onClick={getEmailToken}>\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{tGeneral('Email')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n <ButtonsWrapper onClick={() => setCurrentStep(MFA_STEP.SELECT_AUTHENTICATOR_APP)}>\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{tAuthentication('AuthenticatorApp')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default SelectMFAMethod;\n","import { Input } from 'antd';\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\n\nimport { MFAPopupHeader, VerificationWrapper } from './style';\nimport { useState } from 'react';\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\nimport { MFA_STEP } from '.';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst VerifyAuthenticatorCode = ({\n onClose,\n setCurrentStep,\n setBackupCodes,\n setRefetch,\n confirmTwoFactorService,\n}: any) => {\n const [optValue, setOPTValue] = useState('');\n const [errors, _setErrors] = useState<any[]>([]);\n\n function handleOTPChange(text: string) {\n setOPTValue(text);\n }\n\n async function handleContinue() {\n const _verify = confirmTwoFactorService;\n if (!_verify) return;\n try {\n const resp = await _verify(optValue);\n if (resp.data?.success) {\n setCurrentStep(MFA_STEP.BACKUP_CODES);\n setBackupCodes((resp.data.value as any).recoveryCodes);\n }\n } catch (err) {\n console.log(err);\n } finally {\n setRefetch((prev: any) => prev + 1);\n }\n }\n\n return (\n <div>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication('YouMaySeeVerificationCode')}</LabelText>\n </MFAPopupHeader>\n <VerificationWrapper>\n <Input.OTP value={optValue} onChange={handleOTPChange} />\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n <CancelModalButton onClick={handleContinue}>\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default VerifyAuthenticatorCode;\n","import { MFA_STEP } from '.';\nimport {\n CancelModalButton,\n ContentContainer,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { MFAPopupHeader } from './style';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst SelectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\n const authenticatorApps = [\n tAuthentication('Microsoft'),\n tAuthentication('Google'),\n tAuthentication('Other'),\n ];\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('SetupTwoFactorAuthentication')}\n <LabelText> {tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n {authenticatorApps.map(app => (\n <ButtonsWrapper\n key={app}\n onClick={() => setCurrentStep(MFA_STEP.CONNECT_AUTHENTICATOR)}\n >\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{app}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n ))}\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default SelectAuthenticatorApp;\n","import styled from 'styled-components';\r\n\r\nexport const QrWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const QrInputWrapper = styled.div`\r\n position: relative;\r\n width: 100%;\r\n input {\r\n padding-right: 35px;\r\n &.ant-input-disabled {\r\n color: var(--color-text-primary, #131412);\r\n cursor: pointer;\r\n }\r\n }\r\n`;\r\n\r\nexport const AuthenticatorQrCopyWrapper = styled.div`\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n cursor: pointer;\r\n width: 20px;\r\n height: 20px;\r\n`;\r\n\r\nexport const AuthenticatoQrInpuWrapper = styled.div`\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 5px;\r\n`;\r\n\r\nexport const QrModalButtonWrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n gap: 1px;\r\n`;\r\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n constructor(input) {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n _defineProperty(this, \"isValid\", true);\n /**\n * Red, R in RGB\n */\n _defineProperty(this, \"r\", 0);\n /**\n * Green, G in RGB\n */\n _defineProperty(this, \"g\", 0);\n /**\n * Blue, B in RGB\n */\n _defineProperty(this, \"b\", 0);\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n _defineProperty(this, \"a\", 1);\n // HSV privates\n _defineProperty(this, \"_h\", void 0);\n _defineProperty(this, \"_s\", void 0);\n _defineProperty(this, \"_l\", void 0);\n _defineProperty(this, \"_v\", void 0);\n // intermediate variables to calculate HSL/HSV\n _defineProperty(this, \"_max\", void 0);\n _defineProperty(this, \"_min\", void 0);\n _defineProperty(this, \"_brightness\", void 0);\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = new FastColor(color);\n var hsv = pColor.toHsv();\n for (var i = lightColorCount; i > 0; i -= 1) {\n var c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _c = new FastColor({\n h: getHue(hsv, _i),\n s: getSaturation(hsv, _i),\n v: getValue(hsv, _i)\n });\n patterns.push(_c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref) {\n var index = _ref.index,\n amount = _ref.amount;\n return new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString();\n });\n }\n return patterns.map(function (c) {\n return c.toHexString();\n });\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n red: red,\n volcano: volcano,\n orange: orange,\n gold: gold,\n yellow: yellow,\n lime: lime,\n green: green,\n cyan: cyan,\n blue: blue,\n geekblue: geekblue,\n purple: purple,\n magenta: magenta,\n grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls,\n layer = _useContext.layer;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = \"@layer \".concat(layer, \" {\\n\").concat(mergedStyleStr, \"\\n}\");\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\n\n/**![copy](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CopyOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CopyOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\n\n/**![download](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownloadOutlined';\n}\nexport default RefIcon;","import {\n CancelModalButton,\n ContentContainer,\n GeneralInput,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport {\n AuthenticatoQrInpuWrapper,\n AuthenticatorQrCopyWrapper,\n QrInputWrapper,\n QrModalButtonWrapper,\n QrWrapper,\n} from '../style';\nimport { CopyOutlined } from '@ant-design/icons';\nimport { useEffect, useState } from 'react';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\nimport { MFA_STEP } from '.';\nimport { handleCopy } from '../../../utils/functions';\nimport { Spin } from 'antd';\nimport { MFAPopupHeader, SpinWrapper } from './style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\n\n// {\n// \"totpSecret\": \"WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====\",\n// \"qrCodeImage\": \"iVBORw0KGgoAAAANSUhEUgAAAVkAAAFZAQAAAAAaiWF2AAAE0klEQVR4nO1aSw7iSAw1YpElR8hNyMUiEYmLwU3qCLVkEeF5nwDp7hmpF90Lj8gCQfIKKbbLfn7lyN+/lviCv+Av+C+Ae0Qc+iWH2+maMfH2M+Yxb6d1jENmG25ADIXBl8x7P2bEKdvjgHv8GOOMtVhxbcMd6yuD58DPFe/bYQPcG2UXXGvQLnjaYywPvubwpFf1FN/G4GXc/wScWkErAHVs72WR1cGMZ7kbm/MRJ67oR0X2KFz+HPzVwMpIM736Hx+/pK9aYF/XhCHw+rc4yhr8CD5dx18LUDEwMyt2qIoIUhCTr/YqQuChrxMLS10wIhY/UUnO2KZ4OrNUyi4xIqhXoE9LFAanyqI27Iqn3Ktatn3jhmXSqgvGPVgDrhUNuHd5mDm2X2gc8qG4tCwMnvnwwhwLa6CcgNedksuAIx9iVn7Hc0Ew3M0VJDsAc3OS4TkF6adiPAuDXSobtyntcnQNRSjDyWIFdPdQF0yHbhRnZsoF5BZmBeEMfPCfVgUjvbpeApfavyyVqimvEoM4GOqC1XCgsDDRihqQBSFLnU/OUrTL9ZOR6oF5Ya+GPP1g8o0zvM94ZrZVSf2YriC4q2CkuA8aY+YmpmEsUxu5hHrnyuBZ9A3uZti618CKmERc8c1NSGEwss8kYsMHE2keA1jkjtyHPj9mabAa4yZCYBVnIuOh44NB/eC9oS6YOD4dntTc2Pnb8aozknJYYgqD/eaXFLlTwyFqQLrqjCSOnnXBafECBRKVkyZhyg2Wk4XfUGcOu06zILirR8z0h+oHmTlYgWge+dCLx9YEp146JJ029fs0hLUbUgMkqI8EVxPMAJ6ptC1jbJG97VBefloYbDXq0oTLFMXpoj3EUedXVi4MjrdrN/10YGMsJ7P9b8Oe9lQE2xop2eYlL6rLEj+QcUqDcyuVg/rGt4DDjireP6Mw2MGaPldLUXEFtXAHt5bXPa+rBlaHgft+87MUKsupVKjYIu8FyYJghvJEXergA7cj7ZLuiUn40n9QGLyJ3yj+KiLcumIF3Kak7OiOr5/dXQ8snYaEYGsedf5Loh6Sj8kUdq1HSXDIvxKiNplKTIGaKtOSC0tdsNSorc2g0IgAnrpYEFPuVlejMBh7VclIirDajGT/4YMbGeJ2eh8HVwRb3wirOPY+w1s6XPKokXyoFQYr28oaavr5oRLjatpfcxl1wT4znLeWUWfCTEv6g80Q/dgqg51jKUStEhrddbA75jIpxzvNvB7Y1xqiAR43EUmY3EtqJ+/O2uqB+zall57B8JwbvY+iqRKD8P7wuoJgXk/nHOmn5AJMUJRyWGyaD8LrgnmQ4bHLjYBb7NcKjhOx/8jSYPUa3pe+55EMC42h8F7GwmCNzVAM1qEox/d0rOgsNWme4QfiWg7MivhUju1by6ig1jG+iKuPGiuDdVzYJJ1q/jk8SsNtqv5Dsn9dsC53/oA8NeNlQrB4LoM/fyhAxcBOPD4tJblbQpLjbuRL80OFwZf3FM3sA26Livf+b4JkRbDmn5fwtNdT6QlOtrt5yhjhJqQ2mCNfeGkNYuyV1Nco5lAdfE29NE8zGie6myz0YKCHh77rgv36GoFi558bXb27T17rg0PMTfy05XukVHZRbiKtrQz+7esL/oK/4D8P/gc1+xu9btDsTAAAAABJRU5ErkJggg==\",\n// \"provisioningUri\": \"otpauth://totp/kezherashvilinika+1@gmail.com?secret=WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====&issuer=Affiliate system\"\n// }\n\nconst ConnectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\n const { initiateMFA } = usePackageServices();\n const [data, setData] = useState<any>(null);\n\n async function init() {\n if (!initiateMFA) return;\n try {\n const resp = await initiateMFA();\n setData(resp.data.value);\n } catch (err) {\n console.log(err);\n }\n }\n\n useEffect(() => {\n init();\n }, []);\n\n return (\n <div>\n {data ? (\n <>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterAuthenticationCode')}\n </MFAPopupHeader>\n </ContentContainer>\n <QrWrapper>\n <img src={`data:image/png;base64,${data.qrCodeImage}`} />\n </QrWrapper>\n <br />\n <AuthenticatoQrInpuWrapper>\n <LabelText> {tAuthentication('CopyCodeManually')}</LabelText>\n <QrInputWrapper onClick={() => handleCopy(data.totpSecret)}>\n <GeneralInput value={data.totpSecret} disabled />\n <AuthenticatorQrCopyWrapper>\n <CopyOutlined />\n </AuthenticatorQrCopyWrapper>\n </QrInputWrapper>\n </AuthenticatoQrInpuWrapper>\n <PopupFooterContainer>\n <QrModalButtonWrapper>\n <CancelModalButton onClick={onClose}>\n {tActions('Cancel')}\n </CancelModalButton>\n <CancelModalButton\n onClick={() => setCurrentStep(MFA_STEP.VERIFY_AUTHENTICATOR_CODE)}\n >\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </QrModalButtonWrapper>\n </PopupFooterContainer>\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </div>\n );\n};\n\nexport default ConnectAuthenticatorApp;\n","import {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n LabelText,\n} from '../../modal-host/TablePopup.style';\n\nimport { useState } from 'react';\nimport { MFAPopupHeader, PasswordInput, PasswordInputWrapper } from './style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst DisableAuthenticator = ({ onClose, setRefetch, disableMFAService }: any) => {\n const [optValue, setOPTValue] = useState('');\n\n function handleOTPChange(e: any) {\n setOPTValue(e.target.value);\n }\n\n async function handleContinue() {\n if (!disableMFAService) return;\n try {\n await disableMFAService(optValue);\n onClose();\n } catch (err) {\n console.log(err, 'err');\n } finally {\n setRefetch((prev: number) => prev + 1);\n }\n }\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('DisableTwoFactor')}\n <LabelText>{tAuthentication('DisableTwoFactorDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <PasswordInputWrapper>\n <LabelText>{tGeneral('Password')}</LabelText>\n <PasswordInput\n value={optValue}\n onChange={handleOTPChange}\n placeholder={tGeneral('EnterPassword')}\n />\n </PasswordInputWrapper>\n\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n <CreateModalButton onClick={handleContinue}>\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CreateModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default DisableAuthenticator;\n","import { Input, Spin } from 'antd';\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\n\nimport { MFAPopupHeader, SpinWrapper, VerificationWrapper } from './style';\nimport { useState } from 'react';\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst VerifyEmailCode = ({\n onClose,\n confirmationToken,\n setRefetch,\n idOf2FA,\n confirmTwoFactorService,\n}: any) => {\n const [otpValue, setOtpValue] = useState('');\n const [errors, _setErrors] = useState<any[]>([]);\n\n function handleOTPChange(text: string) {\n setOtpValue(text);\n }\n\n async function handleContinue() {\n if (!confirmTwoFactorService) return;\n try {\n const resp: any = await confirmTwoFactorService({\n confirmationToken,\n code: otpValue,\n id: idOf2FA,\n });\n if (resp.data.success) {\n onClose();\n }\n } catch (err) {\n console.log(err);\n } finally {\n setRefetch((prev: number) => prev + 1);\n }\n }\n\n return (\n <div>\n {confirmationToken ? (\n <>\n <MFAPopupHeader>\n <div>{tAuthentication('EnterVerificationCode')}</div>\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n <VerificationWrapper>\n <Input.OTP value={otpValue} onChange={handleOTPChange} />\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>\n {tActions('Cancel')}\n </CancelModalButton>\n <CancelModalButton\n onClick={handleContinue}\n disabled={otpValue?.length != 6}\n >\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </ButtonsWrapper>\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </div>\n );\n};\n\nexport default VerifyEmailCode;\n","import { CancelModalButton, ContentContainer, LabelText } from '../../modal-host/TablePopup.style';\nimport { BackupCodeWrapper, MFAPopupHeader } from './style';\nimport { Button } from 'antd';\nimport { DownloadOutlined } from '@ant-design/icons';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst BackupCodes = ({ onClose, backupCodes }: any) => {\n const handleDownload = () => {\n const content = backupCodes.join('\\n');\n const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n\n const a = document.createElement('a');\n a.href = url;\n a.download = 'backup-codes.txt';\n a.click();\n\n URL.revokeObjectURL(url);\n };\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <BackupCodeWrapper>\n <Button type=\"primary\" icon={<DownloadOutlined />} onClick={handleDownload}>\n {tAuthentication('DownloadBackupCodes')}\n </Button>\n </BackupCodeWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default BackupCodes;\n","import React, { useMemo, useState } from 'react';\nimport SelectMFAMethod from './SelectMFAMethod';\nimport VerifyAuthenticatorCode from './VerifyAuthenticatorCode';\nimport SelectAuthenticatorApp from './SelectAuthenticatorApp';\nimport ConnectAuthenticatorApp from './ConnectAuthenticatorApp';\nimport DisableAuthenticator from './DisableAuthenticator';\nimport VerifyEmailCode from './VerifyEmailCode';\nimport BackupCodes from './BackupCodes';\nimport PopupMFA from '../PopupMFA';\n\nexport enum MFA_STEP {\n SELECT_MFA_OPTION,\n SELECT_AUTHENTICATOR_APP,\n CONNECT_AUTHENTICATOR,\n VERIFY_AUTHENTICATOR_CODE,\n VERIFY_EMAIL_CODE,\n DISABLE_AUTHENTICATOR,\n BACKUP_CODES,\n ENTER_BACKUP_CODE,\n}\n\nexport interface ConfirmTwoFactorParam {\n confirmationToken: string;\n code: string;\n id: number;\n}\n\ninterface ModalManagerProps {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n modal?: MFA_STEP;\n setRefetch?: React.Dispatch<React.SetStateAction<boolean>>;\n enableTwoFactorService?: () => Promise<any>;\n disableMFAService?: () => Promise<any>;\n confirmTwoFactorService?: (param: ConfirmTwoFactorParam) => Promise<any>;\n}\n\nconst ModalManager = ({\n isOpen,\n setIsOpen,\n modal = MFA_STEP.SELECT_MFA_OPTION,\n setRefetch,\n enableTwoFactorService,\n disableMFAService,\n confirmTwoFactorService,\n}: ModalManagerProps) => {\n const [currentStep, setCurrentStep] = useState(modal);\n const [confirmationToken, setConfirmationToken] = useState<string>('');\n const [idOf2FA, setIdOf2FA] = useState();\n const [backupCodes, setBackupCodes] = useState('');\n\n function onClose() {\n setIsOpen(false);\n }\n\n // map step -> component\n const StepComponent = useMemo(() => {\n switch (currentStep) {\n case MFA_STEP.SELECT_MFA_OPTION:\n return SelectMFAMethod;\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\n return SelectAuthenticatorApp;\n case MFA_STEP.CONNECT_AUTHENTICATOR:\n return ConnectAuthenticatorApp;\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\n return VerifyAuthenticatorCode;\n case MFA_STEP.VERIFY_EMAIL_CODE:\n return VerifyEmailCode;\n case MFA_STEP.DISABLE_AUTHENTICATOR:\n return DisableAuthenticator;\n case MFA_STEP.BACKUP_CODES:\n return BackupCodes;\n\n default:\n return SelectMFAMethod;\n }\n }, [currentStep]);\n\n // map props per step\n const stepProps = useMemo(() => {\n switch (currentStep) {\n case MFA_STEP.SELECT_MFA_OPTION:\n return {\n onClose,\n setCurrentStep,\n setConfirmationToken,\n setRefetch,\n setIdOf2FA,\n enableTwoFactorService,\n disableMFAService,\n };\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\n return { onClose, setCurrentStep };\n case MFA_STEP.CONNECT_AUTHENTICATOR:\n return { onClose, setCurrentStep };\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\n return {\n onClose,\n setCurrentStep,\n setBackupCodes,\n setRefetch,\n confirmTwoFactorService,\n };\n case MFA_STEP.VERIFY_EMAIL_CODE:\n return {\n onClose,\n setCurrentStep,\n confirmationToken,\n setRefetch,\n idOf2FA,\n confirmTwoFactorService,\n };\n case MFA_STEP.DISABLE_AUTHENTICATOR:\n return { onClose, setRefetch, disableMFAService };\n case MFA_STEP.BACKUP_CODES:\n return { onClose, backupCodes };\n case MFA_STEP.ENTER_BACKUP_CODE:\n return { onClose, confirmationToken, setRefetch, idOf2FA };\n default:\n return { onClose };\n }\n }, [currentStep, confirmationToken, backupCodes]);\n\n return (\n <PopupMFA displayAddRuleModal={isOpen} onClose={onClose} hideFooter>\n <StepComponent {...stepProps} />\n </PopupMFA>\n );\n};\n\nexport default ModalManager;\n","import styled from 'styled-components';\nimport ArrowLeft from '../../assets/icons/arrow-left.svg?react';\n\nexport const PageBreadcrumbWrapper = styled.div`\n height: var(--size-800, 4rem);\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 1.5rem;\n\n button {\n border: none;\n outline: none;\n transition: 0.1s;\n }\n\n .icon {\n border-radius: 50%;\n width: 2rem;\n height: 2rem;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n\n path {\n fill: var(--color-icon-primary, #131412);\n }\n }\n\n .page-starter {\n display: flex;\n gap: 0.12rem;\n }\n`;\n\nexport const BackButton = styled.div`\n cursor: pointer;\n`;\n\nexport const StyledArrowLeft = styled(ArrowLeft)`\n width: 10.943px !important;\n height: 8.552px !important;\n\n path {\n fill: var(--color-icon-primary, #131412) !important;\n }\n`;\n","import { Breadcrumb } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledBreadcrumb = styled(Breadcrumb)`\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n padding: 0.44rem 0.75rem;\r\n border-radius: var(--border-radius-050, 1rem);\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n .ant-breadcrumb-separator {\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\r\n }\r\n .ant-breadcrumb-link {\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n`;\r\n","import { BackButton, PageBreadcrumbWrapper, StyledArrowLeft } from './style';\nimport { StyledBreadcrumb } from '../../styled-components/breadcrumb';\nimport type { PageBreadcrumbProps } from './types';\nimport { useNavigate } from 'react-router';\n\nconst PageBreadcrumb = ({\n breadcrumbItems,\n logo,\n button,\n className,\n backButton = <StyledArrowLeft />,\n}: PageBreadcrumbProps) => {\n const navigate = useNavigate();\n return (\n <PageBreadcrumbWrapper className={className || ''}>\n <div className=\"page-starter\">\n {logo ? (\n <div className=\"icon\">{logo}</div>\n ) : (\n <BackButton className=\"icon\" onClick={() => navigate(-1)}>\n {backButton}\n </BackButton>\n )}\n <StyledBreadcrumb items={breadcrumbItems} />\n </div>\n <div>{button && button}</div>\n </PageBreadcrumbWrapper>\n );\n};\n\nexport default PageBreadcrumb;\n","export enum MfaType {\n None = 1,\n OTP = 2,\n TOTP = 3,\n BackupCode = 4,\n}\nexport const ModalText: any = {\n [MfaType.None]: '',\n [MfaType.OTP]: 'OtpDesc',\n [MfaType.TOTP]: 'TotpDesc',\n [MfaType.BackupCode]: 'TotpDesc',\n};\n","import { Input, Spin } from 'antd';\nimport { useEffect, useState } from 'react';\nimport {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n LabelText,\n Popup,\n} from '../modal-host/TablePopup.style';\nimport { BackupSpan, ButtonsWrapper, DidnotReceiveCodeSpan, VerificationWrapper } from './style';\nimport EnterBackupCode from './EnterBackupCodes';\nimport { MFAPopupHeader, SpinWrapper } from '../popup-mfa/mfa-all-popups/style';\nimport { MfaType, ModalText } from './constants';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { parseServerErrors } from '../../utils/errors';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\n\ntype TwoFactorPopupPropType = {\n confirmTwoFactor: any;\n resendOTP?: any;\n confirmationToken: string;\n updatedResponse?: any;\n backupCodeEndpoint?: any;\n setVisible: any;\n visible: any;\n setRefetchData?: any;\n mfaType: any;\n id: any;\n};\n\nconst TwoFactorPopup = ({\n confirmTwoFactor,\n resendOTP,\n confirmationToken,\n updatedResponse,\n mfaType = 1,\n id,\n setRefetchData,\n backupCodeEndpoint,\n setVisible,\n visible,\n}: TwoFactorPopupPropType) => {\n const [otpValue, setOtpValue] = useState('');\n const [disabledUntilMinutePasses, setDisabledUntilMinutePasses] = useState(true);\n const [timeLeft, setTimeLeft] = useState(60);\n const [errorList, setErrorList] = useState<any[]>([]);\n\n const [backupActivated, setBackupActivated] = useState(false);\n\n async function onSave() {\n if (!otpValue) return;\n try {\n const resp = await confirmTwoFactor({ confirmationToken, code: otpValue, id });\n if (resp?.data?.success) {\n setVisible(false);\n if (setRefetchData) {\n setRefetchData((prev: any) => !prev);\n }\n }\n } catch (error: any) {\n const errorList: any = parseServerErrors(error?.response?.data?.errors);\n setErrorList(errorList);\n console.log('Error in Save OTP', error);\n }\n }\n\n async function handleResendOTP() {\n if (!resendOTP) return;\n try {\n const resp = await resendOTP(confirmationToken, id);\n if (resp.data.success) {\n updatedResponse(resp);\n setDisabledUntilMinutePasses(true);\n setTimeLeft(60);\n }\n } catch (err) {\n console.log('Error in OTP resend', err);\n }\n }\n\n function handleCancel() {\n setVisible(false);\n }\n\n function handleOTPChange(val: any) {\n setOtpValue(val);\n }\n\n useEffect(() => {\n if (!disabledUntilMinutePasses) return;\n\n const interval = setInterval(() => {\n setTimeLeft(prev => {\n if (prev <= 1) {\n clearInterval(interval);\n setDisabledUntilMinutePasses(false);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => clearInterval(interval);\n }, [disabledUntilMinutePasses]);\n\n return (\n <Popup open={visible} onCancel={handleCancel} footer={[null]}>\n {confirmationToken ? (\n <>\n {!backupActivated ? (\n <>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication(ModalText[mfaType])}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <VerificationWrapper\n className={errorList.length > 0 ? 'verification-error' : ''}\n >\n <Input.OTP value={otpValue} onChange={handleOTPChange} />\n {errorList.map((error: any) => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n <DidnotReceiveCodeSpan>\n {tAuthentication('DidnReceiveCode')}{' '}\n <BackupSpan onClick={() => setBackupActivated(true)}>\n {tAuthentication('EnterBackupCode')}\n </BackupSpan>\n </DidnotReceiveCodeSpan>\n </VerificationWrapper>\n <ButtonsWrapper>\n {mfaType !== MfaType.TOTP && (\n <CancelModalButton\n disabled={disabledUntilMinutePasses}\n onClick={handleResendOTP}\n >\n {disabledUntilMinutePasses\n ? `${tAuthentication('ResendAvailable')} ${timeLeft} ${tGeneral('Second')}`\n : `${tAuthentication('Resend')}`}\n </CancelModalButton>\n )}\n\n <CreateModalButton\n onClick={onSave}\n disabled={otpValue?.length !== 6 && mfaType !== MfaType.TOTP}\n >\n <span> {tActions('Continue')}</span>\n <ArrowRightIcon />\n </CreateModalButton>\n </ButtonsWrapper>\n </>\n ) : (\n <>\n <EnterBackupCode\n setBackupActivated={setBackupActivated}\n backupCodeEndpoint={backupCodeEndpoint}\n setVisible={setVisible}\n id={id}\n setRefetchData={setRefetchData}\n confirmationToken={confirmationToken}\n />\n </>\n )}\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </Popup>\n );\n};\n\nexport default TwoFactorPopup;\n","import styled from 'styled-components';\n\nexport const ChartWrapper = styled.div`\n width: 100%;\n height: 100%;\n`;\n","import { useEffect } from 'react';\nimport * as echarts from 'echarts';\nimport { ChartWrapper } from './style';\n\nconst Chart = ({ option }: any) => {\n useEffect(() => {\n const chartDom = document.getElementById('my-chart');\n const chartInstance = echarts.init(chartDom);\n\n chartInstance.setOption(option);\n\n const resizeHandler = () => chartInstance.resize();\n window.addEventListener('resize', resizeHandler, { passive: true, capture: true });\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n chartInstance.dispose();\n };\n }, [option]);\n\n return <ChartWrapper id=\"my-chart\" />;\n};\n\nexport default Chart;\n","import { Spin } from 'antd';\nimport styled from 'styled-components';\n\ninterface SpinnerProps {\n backgroundcolor: any;\n}\n\nexport const SpinnerWrapper = styled.div<SpinnerProps>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n background-color: ${(props: any) => props.backgroundcolor};\n`;\n\nexport const StyledSpin = styled(Spin)<SpinnerProps>`\n .ant-spin-dot-item {\n background-color: ${(props: any) => props.backgroundcolor};\n }\n`;\n","import { StyledSpin } from './style';\n\nconst Spinner = ({ backgroundcolor }: any) => {\n return (\n <div>\n <StyledSpin size=\"large\" backgroundcolor={backgroundcolor} />\n </div>\n );\n};\n\nexport default Spinner;\n","import styled, { keyframes } from 'styled-components';\n\ninterface SkeletonContentLine {\n width?: string;\n}\n\ninterface SkeletonSubtitleProps {\n width?: string;\n height?: string;\n marginbottom?: string;\n}\n\nexport const Wrapper = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 99;\n div {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.25rem;\n }\n\n h2 {\n font-family: var(--text-font-family-base, Geist);\n color: #fff;\n text-align: center;\n font-weight: var(--text-weight-medium, 500);\n font-size: 1.5rem;\n }\n\n p {\n font-family: var(--text-font-family-base, Geist);\n color: rgba(255, 255, 255, 0.75);\n text-align: center;\n font-style: normal;\n font-weight: 400;\n font-size: 1.125rem;\n max-width: 25rem;\n }\n`;\n\nconst shimmer = keyframes`\n 0% {\n opacity: 90%;\n }\n 50% {\n opacity: 100%;\n }\n 100% {\n opacity: 90%;\n }\n`;\n\nexport const SkeletonBase = styled.div`\n background: #282828; /* Dark base color */\n border-radius: 4px;\n background-size: 1000px 100%;\n animation: ${shimmer} 1.5s infinite linear;\n background: var(--color-interaction-press-primary, rgba(20, 20, 20, 0.1));\n`;\n\nexport const SkeletonHeader = styled(SkeletonBase)`\n width: 70%; /* Mimics the main title area */\n height: 20px;\n margin-bottom: 10px;\n`;\n\nexport const SkeletonSubtitle = styled(SkeletonBase)<SkeletonSubtitleProps>`\n width: ${(props: any) => props.width};\n height: ${(props: any) => props.height};\n margin-bottom: ${(props: any) => props.marginbottom};\n`;\n\nexport const SkeletonBox = styled(SkeletonBase)`\n flex-grow: 1;\n height: 130px;\n margin: 0 1px;\n background: var(--color-bg-secondary, #f5f5f5);\n padding: 20px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n animation: unset;\n`;\n\nexport const SkeletonRow = styled.div`\n display: flex;\n margin-bottom: 2px;\n justify-content: space-between;\n margin-top: auto;\n ${SkeletonBox}:first-child {\n margin-left: 0;\n }\n ${SkeletonBox}:last-child {\n margin-right: 0;\n }\n`;\n\nexport const Container = styled.div`\n padding: 20px;\n overflow-y: hidden;\n height: 100vh;\n position: relative;\n background: var(--color-bg-primary, #fff);\n`;\n\nexport const SkeletonChipRow = styled.div`\n display: flex;\n width: fit-content;\n gap: 2rem;\n background: var(--color-bg-secondary, #232323);\n padding: 0.5rem;\n margin-top: 3rem;\n margin-bottom: 1.5rem;\n`;\n\nexport const SkeletonChip = styled(SkeletonBase)`\n width: 4rem;\n height: 1rem;\n border-radius: 5px;\n`;\n\nexport const SkeletonContentLine = styled(SkeletonBase)<SkeletonContentLine>`\n width: ${(props: any) => props.width || '100%'};\n height: 20px;\n margin-bottom: 8px;\n`;\n\nexport const BigBox = styled.div`\n border-radius: 2px;\n background: var(--color-bg-secondary, #232323);\n height: 40rem;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n margin-bottom: 2px;\n`;\n","import { tComingSoon } from '../../utils/exportTranslation';\nimport {\n BigBox,\n Container,\n SkeletonBox,\n SkeletonChip,\n SkeletonChipRow,\n SkeletonContentLine,\n SkeletonHeader,\n SkeletonRow,\n SkeletonSubtitle,\n Wrapper,\n} from './style';\n\nconst SkeletonCardContent = () => (\n <>\n <SkeletonContentLine width={'80%'} />\n\n <SkeletonContentLine width={'60%'} />\n </>\n);\n\nconst ComingSoon = () => {\n return (\n <Container>\n <Wrapper>\n <div>\n <h2>{tComingSoon('ComingSoon')}</h2>\n\n <p>{tComingSoon('ComingSoonDesc')}</p>\n </div>\n </Wrapper>\n\n <SkeletonHeader />\n\n <SkeletonSubtitle />\n\n <SkeletonChipRow>\n {[...Array(7)].map((_, i) => (\n <SkeletonChip key={i} />\n ))}\n </SkeletonChipRow>\n\n <SkeletonRow>\n {[...Array(5)].map((_, i) => (\n <SkeletonBox key={i}>\n <SkeletonCardContent />\n </SkeletonBox>\n ))}\n </SkeletonRow>\n\n <BigBox>\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'10px'} />\n\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'20px'} />\n\n <SkeletonRow>\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\n\n <SkeletonSubtitle width={'120%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\n </SkeletonRow>\n </BigBox>\n\n <SkeletonRow>\n {[...Array(5)].map((_, i) => (\n <SkeletonBox key={i}>\n <SkeletonCardContent />\n </SkeletonBox>\n ))}\n </SkeletonRow>\n </Container>\n );\n};\nexport default ComingSoon;\n","import { Table } from 'antd';\nimport styled from 'styled-components';\n\nexport const CustomTable = styled(Table)`\n .ant-table-thead > tr > th {\n background: var(--color-bg-primary, #fff);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n\n border: none !important;\n height: var(--size-500, 40px);\n padding: var(--spacing-025, 2px) var(--spacing-300, 12px);\n align-items: center;\n flex-shrink: 0;\n align-self: stretch;\n\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* caption/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n border-start-start-radius: 0px !important;\n }\n\n .ant-table-tbody > tr:hover > td {\n background: inherit !important;\n }\n .ant-pagination-item {\n min-width: 1.5rem;\n height: 1.5rem;\n border: none;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: 0.12rem;\n\n &.ant-pagination-item-active {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n }\n }\n .anticon {\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n\n .ant-table-tbody > tr {\n background: var(--color-bg-secondary);\n color: var(--color-text-primary, #131412);\n }\n &:where(.css-dev-only-do-not-override-vrrzze).ant-table-wrapper\n .ant-table-tbody\n .ant-table-row\n > .ant-table-cell-row-hover {\n background-color: transparent !important;\n }\n .ant-collapse {\n background-color: transparent !important;\n }\n\n .ant-collapse-item {\n background-color: transparent !important;\n }\n\n .ant-collapse-header {\n background-color: transparent !important;\n }\n\n // this disables the right column seperator on headers\n .ant-table-thead > tr > th::before {\n display: none !important;\n }\n\n .ant-table-tbody > tr > td {\n height: 48px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\n }\n\n .ant-table-expanded-row > .ant-table-cell {\n padding: 24px;\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\n }\n\n .arrow-svg {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, #fff);\n transition: 0.1s;\n }\n }\n }\n\n .active-svg-closemark {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-status-error);\n transition: 0.1s;\n }\n }\n }\n\n .active-svg-checkmark {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-status-success);\n transition: 0.1s;\n }\n }\n }\n`;\n","import * as React from \"react\";\nconst SvgChevronUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.0001 5.72363L11.6096 9.33311L10.6668 10.2759L8.0001 7.60925L5.33343 10.2759L4.39062 9.33311L8.0001 5.72363Z\", fill: \"currentColor\" }));\nexport default SvgChevronUp;\n","import { CustomTable } from './style';\nimport ChevronDown from '../../assets/icons/chevron-down.svg?react';\nimport ChevronUp from '../../assets/icons/chevron-up.svg?react';\nimport { useEffect, useState } from 'react';\nimport type { ColumnsType, TablePaginationConfig } from 'antd/es/table';\nimport { Empty } from 'antd';\nimport { tNoData } from '../../utils/exportTranslation';\n\ninterface ExpandableTableProps<T = Record<string, unknown>> {\n rowKey: string | number | any;\n CustomExpandableRow: React.ComponentType<Record<string, unknown>>;\n // Support both GridView's 'columns' and standalone 'dataTableColumns'\n columns?: ColumnsType<T>;\n dataTableColumns?: ColumnsType<T>;\n dataSource: any;\n expandableRowProps?: Record<string, unknown>;\n expandedRows?: string[];\n setExpandedRow?: (rows: string[]) => void;\n loading?: boolean;\n pagination?: TablePaginationConfig | false;\n}\n\nconst ExpandableTable = ({\n rowKey,\n CustomExpandableRow,\n columns,\n dataTableColumns,\n dataSource,\n expandableRowProps,\n expandedRows,\n setExpandedRow,\n loading,\n pagination,\n}: ExpandableTableProps) => {\n const [expandedRowKeys, setExpandedRowKeys] = useState<any>([]);\n\n // Support both prop names for compatibility\n const tableColumns = columns || dataTableColumns;\n useEffect(() => {\n if (expandedRows && expandedRows.length > 0) {\n setExpandedRowKeys((prev: any) => [...expandedRows, ...prev]);\n }\n }, [expandedRows]);\n\n function handleExpandedRowsChange(arr: any) {\n setExpandedRowKeys(arr);\n setExpandedRow && setExpandedRow([]);\n }\n\n return (\n <CustomTable\n rowKey={rowKey || 'id'}\n pagination={pagination}\n scroll={{ x: 1500 }}\n locale={{\n emptyText: <Empty description={tNoData('NoData')} />,\n }}\n loading={loading}\n columns={tableColumns as ColumnsType<unknown>}\n expandedRowKeys={expandedRowKeys}\n onExpandedRowsChange={handleExpandedRowsChange}\n expandable={{\n expandedRowRender: record => (\n <CustomExpandableRow {...expandableRowProps} record={record} />\n ),\n expandIcon: ({ expanded }) => (\n <>\n {expanded ? (\n <span className=\"arrow-svg\">\n <ChevronUp />\n </span>\n ) : (\n <span className=\"arrow-svg\">\n <ChevronDown />\n </span>\n )}\n </>\n ),\n expandRowByClick: true,\n }}\n dataSource={dataSource}\n />\n );\n};\n\nexport default ExpandableTable;\n","import { Tabs } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDateRangeFilterTabs = styled(Tabs)`\n display: flex;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n .ant-tabs-tab {\n margin: 0 !important;\n border-radius: 0 !important;\n border: none !important;\n .ant-tabs-tab-btn {\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n border-radius: var(--border-radius-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n transition: color 0.2s;\n\n &:hover,\n &:focus {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n }\n\n &.ant-tabs-tab-active {\n background: var(--color-bg-inverse-primary, #141414) !important;\n\n .ant-tabs-tab-btn {\n color: var(--color-text-inverse-primary, #131412) !important;\n\n &:hover,\n &:focus {\n color: var(--color-text-inverse-primary, #131412) !important;\n }\n }\n }\n @media (max-width: 1080px) {\n display: none !important;\n }\n }\n .ant-tabs-nav {\n margin: 0;\n\n &::before {\n display: none;\n }\n }\n\n .ant-tabs-ink-bar {\n display: none;\n }\n\n .ant-tabs-nav-list {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-secondary);\n }\n\n .ant-tabs-nav-more {\n display: none !important;\n }\n\n .ant-tabs-nav-add {\n background-color: #f0f0f0;\n border: none !important;\n path {\n fill: var(--color-icon-primary, #fff);\n }\n }\n`;\n\nexport const TabBarExtraContentIconWrapper = styled.div`\n display: flex;\n height: var(--size-400, 32px);\n padding: 0 var(--spacing-100, 8px);\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n cursor: pointer;\n\n &.space {\n display: flex;\n gap: 5px;\n }\n`;\n\nexport const TabsCustomDateFilterWrapper = styled.div`\n position: relative;\n @media (min-width: 1080px) {\n .tab-select {\n display: none;\n }\n }\n`;\nexport const CustomDateFilterWrapper = styled.div`\n position: absolute;\n left: 20px;\n top: 10px;\n z-index: 1000;\n`;\n","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return String(object);\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.includes('###') ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nconst _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => !nsSeparator.includes(c) && !keySeparator.includes(c));\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].includes(typeof next) && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace(/_/g, '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n once(event, listener) {\n const wrapper = (...args) => {\n listener(...args);\n this.off(event, wrapper);\n };\n this.on(event, wrapper);\n return this;\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(event, ...args);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (!this.options.ns.includes(ns)) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.includes('.')) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.includes('.')) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.includes('.')) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.includes('.')) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n const keySeparator = opts?.keySeparator ?? '.';\n const nsSeparator = opts?.nsSeparator ?? ':';\n if (path.length > 1 && nsSeparator) {\n const ns = opts?.ns;\n const nsArray = Array.isArray(ns) ? ns : null;\n if (nsArray && nsArray.length > 1 && nsArray.slice(1).includes(path[0])) {\n return `${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`;\n }\n }\n return path.join(keySeparator);\n}\n\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n this.checkedLoadedFor = {};\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.includes(nsSeparator);\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.includes(parts[0])) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : String(k));\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && !noObject.includes(resType) && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && !suffixes.includes(`${this.options.pluralSeparator}zero`)) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : k);\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!this.checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n this.checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && option.startsWith(prefix) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.includes('-')) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.includes(code);\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return true;\n if (!supportedLng.includes('-') && !lngOnly.includes('-')) return false;\n if (supportedLng.includes('-') && !lngOnly.includes('-') && supportedLng.slice(0, supportedLng.indexOf('-')) === lngOnly) return true;\n if (supportedLng.startsWith(lngOnly) && lngOnly.length > 1) return true;\n return false;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.includes('-') || code.includes('_'))) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (!codes.includes(fc)) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (!key.includes(this.formatSeparator)) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (!key.includes(sep)) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.includes(this.prefix)) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.includes('(')) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].slice(0, -1);\n if (formatName === 'currency' && !optStr.includes(':')) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && !optStr.includes(':')) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n if (!format) return value;\n if (value == null) return value;\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && !formats[0].includes(')') && formats.find(f => f.includes(')'))) {\n const lastIndex = formats.findIndex(f => f.includes(')'));\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read(lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && !options.supportedLngs.includes('cimode')) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (!options.ns.includes('translation')) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n if (typeof this.options.overloadTranslationOptionHandler !== 'function') {\n this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator\n });\n if (formatter) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (!toLoad.includes(l)) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].includes(l)) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].includes(lngInLngs)) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && !this.languages.includes(l) && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const selectorOpts = {\n ...this.options,\n ...o\n };\n if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (!this.options.ns.includes(n)) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => !preloaded.includes(lng) && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.includes(languageUtils.getLanguagePartFromCode(lng)) || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator);\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport HttpApi from 'i18next-http-backend';\n\ni18n.use(HttpApi)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en',\n supportedLngs: ['en', 'ka'],\n debug: false,\n backend: {\n loadPath: '/locales/langs/{{lng}}.json',\n },\n detection: {\n order: ['localStorage'],\n lookupLocalStorage: 'Language',\n caches: ['localStorage'],\n },\n interpolation: { escapeValue: false },\n });\nexport default i18n;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import i18n from '../../../assets/i18n/config';\nimport { StyledRangePicker } from '../../../modules/GridViewPage/style';\nimport { DateHelper } from '../../../utils/DateHelper';\nimport dayjs from 'dayjs';\nimport { tMonths, tWeekDays } from '../../../utils/exportTranslation';\n\nconst CustomDateRangePicker = ({ setDateFilter, setShowRange, setDates }: any) => {\n const disabledDate = (current: any) => {\n return current && current > dayjs().endOf('day');\n };\n\n const handleRangeChange = (values: any) => {\n if (values && values[0] && values[1]) {\n const startDate = DateHelper.toISODateString(values[0].toDate());\n const endDate = DateHelper.toISODateString(values[1].toDate());\n\n setDates([startDate, endDate]);\n setDateFilter((prev: any) => ({\n ...prev,\n startDate,\n endDate,\n }));\n\n setShowRange(false);\n }\n };\n\n const headerLocale = {\n lang: {\n locale: i18n.language,\n shortMonths: [\n tMonths('0'),\n tMonths('1'),\n tMonths('2'),\n tMonths('3'),\n tMonths('4'),\n tMonths('5'),\n tMonths('6'),\n tMonths('7'),\n tMonths('8'),\n tMonths('9'),\n tMonths('10'),\n tMonths('11'),\n ],\n shortWeekDays: [\n tWeekDays('Sun'),\n tWeekDays('Mon'),\n tWeekDays('Tue'),\n tWeekDays('Wed'),\n tWeekDays('Thu'),\n tWeekDays('Fri'),\n tWeekDays('Sat'),\n ],\n },\n };\n\n return (\n <StyledRangePicker\n dropdownClassName=\"date-picker-column-style\"\n locale={headerLocale as any}\n open={true}\n allowClear\n format=\"MMM D, YYYY\"\n placeholder={['From', 'To']}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n onOpenChange={open => {\n if (!open) {\n setShowRange(false);\n }\n }}\n onChange={e => handleRangeChange(e)}\n disabledDate={disabledDate}\n />\n );\n};\n\nexport default CustomDateRangePicker;\n","import { Empty } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledEmpty = styled(Empty)`\r\n .ant-empty-description {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n`;\r\n","import { Table } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledTable = styled(Table)`\r\n .ant-table-thead > tr > th {\r\n background: var(--color-bg-primary, #fff);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n\r\n border: none !important;\r\n height: var(--size-500, 40px);\r\n padding: var(--spacing-025, 2px) var(--spacing-300, 12px);\r\n align-items: center;\r\n flex-shrink: 0;\r\n align-self: stretch;\r\n\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n\r\n /* caption/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-small, 12px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\r\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\r\n\r\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1)) !important;\r\n border-radius: 0px !important;\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n .ant-table-tbody {\r\n tr {\r\n background: var(--color-bg-primary, #fff) !important;\r\n color: var(--color-text-primary, #131412);\r\n td {\r\n height: 48px;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n gap: 4px;\r\n align-self: stretch;\r\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\r\n background: var(--color-bg-primary, #fff) !important;\r\n border-bottom: none !important;\r\n &:hover {\r\n background: var(--color-bg-primary, #fff) !important;\r\n }\r\n }\r\n\r\n &:hover {\r\n background: var(--color-bg-primary, #fff) !important;\r\n td {\r\n background-color: var(--color-bg-primary, #fff) !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .ant-empty-image {\r\n svg {\r\n path {\r\n fill: transparent !important;\r\n }\r\n ellipse {\r\n fill: transparent !important;\r\n }\r\n }\r\n }\r\n\r\n .ant-empty-image svg .ant-empty-description {\r\n color: lightgray;\r\n }\r\n\r\n .ant-pagination-item {\r\n min-width: 1.5rem;\r\n height: 1.5rem;\r\n border: none;\r\n background: transparent;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-inline-end: 0.12rem;\r\n\r\n &.ant-pagination-item-active {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\r\n }\r\n }\r\n .anticon {\r\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\r\n }\r\n\r\n .ant-collapse {\r\n background-color: transparent !important;\r\n }\r\n\r\n .ant-collapse-item {\r\n background-color: transparent !important;\r\n }\r\n\r\n .ant-collapse-header {\r\n background-color: transparent !important;\r\n }\r\n`;\r\n","import { Tooltip } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledTooltip = styled(Tooltip)`\r\n .ant-tooltip-inner {\r\n min-width: auto;\r\n min-height: auto;\r\n padding: 0.25rem;\r\n color: var(--color-text-inverse-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-small, 0.75rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-small, 1rem); /* 133.333% */\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n }\r\n`;\r\n","import { Select } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\n// export const StyledSelect = styled(Select)<{ $width?: string }>`\r\n// width: ${({ $width }) => $width ?? '100%'};\r\n\r\n// display: flex;\r\n// flex-direction: column;\r\n// gap: 2.5rem;\r\n// display: flex;\r\n// flex-direction: column;\r\n// gap: 0.5rem;\r\n// .ant-select-selector {\r\n// border-radius: var(--border-radius-025, 0.125rem);\r\n// background: var(--color-bg-secondary, #f5f5f5) !important;\r\n// border: none !important;\r\n// .ant-select-selection-placeholder {\r\n// path {\r\n// fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75)) !important;\r\n// }\r\n// }\r\n// }\r\n// span {\r\n// color: var(--color-text-secondary, rgba(19, 20, 18, 0.75)) !important;\r\n// font-family: var(--text-font-family-base, Geist);\r\n// font-size: var(--typo-caption-size-medium, 0.875rem);\r\n// font-weight: var(--text-weight-regular, 400);\r\n// line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\r\n// letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n// }\r\n// `;\r\nexport const StyledSelect = styled(Select)<{ $width?: string; $height?: string }>`\r\n width: ${({ $width }) => $width ?? '100%'};\r\n\r\n min-height: ${({ $height }) => $height ?? 'unset'};\r\n gap: 2.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n\r\n .arrow-svg {\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n path {\r\n fill: var(--color-text-primary, #131412);\r\n }\r\n }\r\n }\r\n\r\n &.ant-select-multiple .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n\r\n &:hover {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n .ant-select-selector {\r\n padding: 0 !important;\r\n border: none !important;\r\n background-color: transparent !important;\r\n box-shadow: none !important;\r\n }\r\n .ant-select-selection-overflow {\r\n justify-content: flex-start !important;\r\n background-color: none;\r\n margin-top: 5px;\r\n }\r\n .ant-select-selection-item {\r\n background: transparent !important;\r\n }\r\n\r\n &&& {\r\n .ant-select-selector {\r\n border: none !important;\r\n box-shadow: none !important;\r\n background-color: transparent !important;\r\n padding: 0 !important;\r\n }\r\n\r\n &:hover .ant-select-selector,\r\n &.ant-select-focused .ant-select-selector,\r\n &.ant-select-open .ant-select-selector {\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n }\r\n &.ant-select-single {\r\n .ant-select-selector .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n }\r\n\r\n &.ant-select-multiple {\r\n .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 5px);\r\n }\r\n .anticon.anticon-close {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n`;\r\n","import { useMemo, useState } from 'react';\nimport {\n CustomDateFilterWrapper,\n StyledDateRangeFilterTabs,\n TabsCustomDateFilterWrapper,\n} from './style';\nimport { DateHelper } from '../../utils/DateHelper';\nimport CustomDateRangePicker from './date-picker';\nimport { tDate, tGeneral } from '../../utils/exportTranslation';\nimport { StyledSelect } from '../../styled-components';\n\ninterface TabItem {\n key: string;\n label: string;\n startDate: string;\n endDate: string;\n}\n\ninterface DateRangeFilterTabsProps {\n setDateFilters: React.Dispatch<React.SetStateAction<any>>;\n hasAllFilter?: boolean;\n}\n\nconst DateRangeFilterTabs = ({\n setDateFilters,\n hasAllFilter = false,\n}: DateRangeFilterTabsProps) => {\n const [dates, setDates] = useState([]);\n\n const TabItems: TabItem[] = [\n { key: 'week', label: tDate('7D'), ...DateHelper.getCommonDateRange('week') },\n { key: 'month', label: tDate('30D'), ...DateHelper.getCommonDateRange('month') },\n { key: 'threeMonth', label: tDate('3M'), ...DateHelper.getCommonDateRange('threeMonth') },\n { key: 'sixMonth', label: tDate('6M'), ...DateHelper.getCommonDateRange('sixMonth') },\n {\n key: 'twelveMonth',\n label: tDate('12M'),\n ...DateHelper.getCommonDateRange('twelveMonth'),\n },\n { key: 'year', label: tDate('YTD'), ...DateHelper.getCommonDateRange('year') },\n {\n key: 'custom',\n label:\n dates.length === 2 && dates[0] !== ''\n ? `${tGeneral('Custom')}: ${dates[0]} / ${dates[1]}`\n : tGeneral('Custom'),\n ...DateHelper.getCommonDateRange('custom'),\n },\n ];\n\n const [showRange, setShowRange] = useState<boolean>();\n\n const tabItems = useMemo(() => {\n if (hasAllFilter) {\n return [\n { key: 'all', label: tGeneral('All'), ...DateHelper.getCommonDateRange('all') },\n ...TabItems,\n ];\n } else {\n return TabItems;\n }\n }, [hasAllFilter, dates]);\n\n function handleTabClick(tab: any) {\n if (tab === 'custom') {\n setShowRange(true);\n } else {\n setShowRange(false);\n const foundTab = tabItems.find(each => each.key === tab);\n if (foundTab) {\n setDateFilters((prev: any) => ({\n ...prev,\n startDate: foundTab.startDate,\n endDate: foundTab.endDate,\n }));\n }\n }\n return tab;\n }\n return (\n <TabsCustomDateFilterWrapper id=\"tabs-container\">\n <StyledDateRangeFilterTabs\n type=\"editable-card\"\n items={tabItems}\n onTabClick={handleTabClick}\n activeKey={showRange ? 'custom' : undefined}\n removeIcon={true}\n hideAdd={true}\n />\n\n {showRange && (\n <CustomDateFilterWrapper>\n <CustomDateRangePicker\n setDates={setDates}\n setDateFilter={setDateFilters}\n setShowRange={setShowRange}\n getPopupContainer={() => document.getElementById('tabs-container')!}\n />\n </CustomDateFilterWrapper>\n )}\n <StyledSelect\n className=\"tab-select\"\n $width=\"200px\"\n placeholder={tGeneral('Choose')}\n getPopupContainer={(triggerNode: any) => triggerNode.parentElement}\n onChange={handleTabClick}\n options={tabItems.map(item => ({\n value: item.key,\n label: item.label,\n }))}\n />\n </TabsCustomDateFilterWrapper>\n );\n};\n\nexport default DateRangeFilterTabs;\n","import styled from 'styled-components';\n\nexport const StyledDropdownContainer = styled.div`\n .ant-dropdown-menu {\n border-radius: 2px !important;\n background: var(--color-bg-quaternary, #2f2f2f) !important;\n width: 150px !important;\n padding: 0 !important;\n }\n\n .ant-dropdown-menu-item {\n padding: 0 !important; /* რომ შიდა კონტენტი გაიწელოს */\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.05) !important;\n }\n }\n\n .ant-dropdown-menu-title-content {\n color: var(--color-text-primary, #fff) !important;\n font-family: Geist;\n font-size: var(--typo-caption-size-medium, 14px);\n font-weight: 400;\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n padding: 8px 12px; /* აქ დაარეგულირე შიდა დაშორება */\n display: block;\n }\n`;\n","export const ExportXlsxFunction = (resp: any, name: any) => {\r\n const url = window.URL.createObjectURL(resp);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n\r\n link.setAttribute('download', name);\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n};\r\n\r\nexport const ExportCsvFunction = (csvDataString: string, name: string) => {\r\n const blob = new Blob([csvDataString], { type: 'text/csv;charset=utf-8;' });\r\n\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n\r\n link.setAttribute('download', name);\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n window.URL.revokeObjectURL(url);\r\n};\r\n","import { Dropdown } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDropdown = styled(Dropdown)`\n background: var(--color-bg-secondary, #f0ededff) !important;\n font-size: 14px;\n font-weight: 500;\n\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\n padding: 10px 14px !important;\n border-radius: 8px !important;\n background: #000 !important;\n\n font-size: 14px;\n font-weight: 500;\n color: var(--color-text-primary, #000000ff) !important;\n }\n`;\nexport const StyledButton = styled.div`\n background-color: red;\n padding: 5px;\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n color: var(--color-text-primary, #fff);\n cursor: pointer;\n`;\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\nimport { ExportCsvFunction, ExportXlsxFunction } from '../../utils/export-reports';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { StyledButton, StyledDropdown } from './style';\n\ntype ExcelExportProps = {\n exportFileName: string;\n filters: any;\n service: any;\n};\n\nconst ExcelExport = ({ exportFileName, filters, service }: ExcelExportProps) => {\n const onExportClick = async (type: any) => {\n try {\n const { PageSize, Page, ...filtersWithoutPageAndPageSize }: any = filters;\n\n const resp = await service(filtersWithoutPageAndPageSize, type);\n\n const blob = resp.data;\n\n if (type === 'xlsx') {\n ExportXlsxFunction(blob, `${exportFileName}.${type}`);\n } else {\n ExportCsvFunction(blob, `${exportFileName}`);\n }\n } catch (error) {\n console.error('Export failed:', error);\n }\n };\n\n const items: any = [\n {\n key: '1',\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\n onClick: () => onExportClick('xlsx'),\n },\n {\n key: '2',\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\n onClick: () => onExportClick('csv'),\n },\n ];\n return (\n <StyledDropdown\n menu={{\n items,\n className: 'dropdown-menu',\n }}\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\n placement=\"bottomLeft\"\n >\n <StyledButton>{tGeneral('Export')}</StyledButton>\n </StyledDropdown>\n );\n};\n\nexport default ExcelExport;\n","export const exportSelectedToCSV = (\n tableData: any[],\n checked: { [key: number]: boolean },\n fileName: any\n) => {\n const selectedRows = tableData.filter(row => checked[row.id]);\n\n const headers = Object.keys(selectedRows[0]);\n\n const rows = selectedRows.map(row => {\n return headers.map(key => {\n const value = row[key];\n\n if (value === null || value === undefined) return '';\n if (typeof value === 'object') {\n const flat = Object.values(value).find(v => typeof v !== 'object');\n return flat ?? '';\n }\n return value;\n });\n });\n\n const csvArray = [headers, ...rows]\n .map(row =>\n row.map((cell: any) => `\"${(cell || '').toString().replace(/\"/g, '\"\"')}\"`).join(',')\n )\n .join('\\r\\n');\n\n const BOM = '\\uFEFF';\n const blob = new Blob([BOM + csvArray], { type: 'text/csv;charset=utf-8;' });\n\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n};\n","import * as XLSX from 'xlsx';\n\nexport const exportSelectedToXLSX = (\n tableData: any[],\n checked: { [key: number]: boolean },\n fileName: any\n) => {\n const selectedRows = tableData.filter(row => checked[row.id]);\n\n const simplifiedData = selectedRows.map(row => {\n const result: any = {};\n Object.entries(row).forEach(([key, value]) => {\n if (value === null || value === undefined) {\n result[key] = '';\n } else if (typeof value === 'object') {\n const flatValue = Object.values(value).find(v => typeof v !== 'object');\n result[key] = flatValue ?? '';\n } else {\n result[key] = value;\n }\n });\n return result;\n });\n\n const worksheet = XLSX.utils.json_to_sheet(simplifiedData);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Data');\n\n const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });\n const url = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n};\n","import { Dropdown } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDropdown = styled(Dropdown)`\n background: var(--color-bg-secondary, #f0ededff) !important;\n font-size: 14px;\n font-weight: 500;\n\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\n padding: 10px 14px !important;\n border-radius: 8px !important;\n background: #000 !important;\n\n font-size: 14px;\n font-weight: 500;\n color: var(--color-text-primary, #000000ff) !important;\n }\n`;\nexport const StyledButton = styled.div`\n background-color: red;\n padding: 5px;\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n color: var(--color-text-primary, #fff);\n cursor: pointer;\n`;\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\nimport { exportSelectedToCSV } from '../../utils/exportCsv';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { exportSelectedToXLSX } from '../../utils/exportXLSX';\nimport { StyledButton, StyledDropdown } from './style';\n\ntype ExcelExportProps = {\n tableData: any[];\n checked: { [key: number]: boolean };\n fileName: any;\n};\n\nconst ExcelExportSelected = ({ tableData, checked, fileName }: ExcelExportProps) => {\n const onExportClick = async (type: any) => {\n try {\n if (type === 'xlsx') {\n exportSelectedToXLSX(tableData, checked, fileName + '.xlsx');\n } else {\n exportSelectedToCSV(tableData, checked, fileName + '.csv');\n }\n } catch (error) {\n console.error('Export failed:', error);\n }\n };\n\n const items: any = [\n {\n key: '1',\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\n onClick: () => onExportClick('xlsx'),\n },\n {\n key: '2',\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\n onClick: () => onExportClick('csv'),\n },\n ];\n return (\n <StyledDropdown\n menu={{\n items,\n className: 'dropdown-menu',\n }}\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\n placement=\"bottomLeft\"\n >\n <StyledButton>{tGeneral('Export')}</StyledButton>\n </StyledDropdown>\n );\n};\n\nexport default ExcelExportSelected;\n","import { DatePicker } from 'antd';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { DateHelper } from '../../utils/DateHelper';\r\ntype DatePickerToISOProps = {\r\n value: any;\r\n onChange: any;\r\n};\r\nconst DatePickerToISO = ({ value, onChange, ...props }: DatePickerToISOProps) => {\r\n const parsedValue = value ? dayjs(value) : null;\r\n\r\n const handleChange = (date: Dayjs): any => {\r\n if (date) {\r\n onChange?.(DateHelper.toISODateString(date.toDate()));\r\n } else {\r\n onChange?.(null);\r\n }\r\n };\r\n\r\n return <DatePicker value={parsedValue} onChange={handleChange} allowClear {...props} />;\r\n};\r\n\r\nexport default DatePickerToISO;\r\n","import styled from 'styled-components';\r\n\r\nimport { Button, Upload } from 'antd';\r\n\r\nconst { Dragger } = Upload;\r\nexport const StyledUploadFile = styled(Dragger)`\r\n &.default-design {\r\n .ant-upload {\r\n padding: 0 !important;\r\n border-radius: var(--border-radius-025, 2px);\r\n border: none !important;\r\n background: transparent !important;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n }\r\n }\r\n\r\n &.input-design {\r\n .ant-upload,\r\n .ant-upload-drag {\r\n gap: 8px;\r\n align-self: stretch;\r\n padding: 5px;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n }\r\n .ant-upload-btn {\r\n border: none;\r\n }\r\n }\r\n .ant-upload-list-item {\r\n display: flex;\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n align-items: center;\r\n gap: 8px;\r\n align-self: stretch;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n padding: 20px 12px;\r\n .ant-upload-list-item-name {\r\n color: var(--color-text-primary, #131412);\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n }\r\n box-shadow:\r\n 0 4px 8px 0 rgba(20, 20, 20, 0.02),\r\n 0 4px 16px 0 rgba(20, 20, 20, 0.04);\r\n\r\n .anticon-delete {\r\n color: var(--color-text-primary, #fff) !important;\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledUploadFileButton = styled(Button)`\r\n display: flex;\r\n align-items: center;\r\n justify-content: start;\r\n background: transparent !important;\r\n padding: 20px 8px;\r\n gap: 8px;\r\n border: transparent !important;\r\n border-radius: var(--border-radius-025, 2px);\r\n align-self: stretch;\r\n\r\n overflow: hidden;\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\r\n text-overflow: ellipsis;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n`;\r\n","import React from 'react';\nimport { notification } from 'antd';\nimport { StyledUploadFile } from './style';\n\nexport interface UploadFileProps {\n value?: any[];\n onChange: (fileList: any[]) => void;\n children?: React.ReactNode;\n inputDesign?: boolean;\n addFilesService: (formData: FormData) => Promise<any>;\n maxCount?: number;\n showUploadList?: boolean;\n [key: string]: any;\n}\n\nconst UploadFiles: React.FC<UploadFileProps> = ({\n value = [],\n onChange,\n children,\n inputDesign,\n addFilesService,\n ...props\n}) => {\n const handleUpload = async (options: any) => {\n const { file } = options;\n const previewUrl = URL.createObjectURL(file);\n const tempFile = { name: file.name, uid: file.uid, status: 'uploading', url: previewUrl };\n\n const newFileList = [...value, tempFile];\n onChange(newFileList); // Ensure only fileList is passed\n\n try {\n const formData = new FormData();\n formData.append('files', file);\n const response = await addFilesService(formData);\n\n if (response?.data?.success) {\n const uploadedFile = response?.data?.value[0];\n onChange(\n newFileList.map(item =>\n item.uid === file.uid ? { ...item, status: 'done', ...uploadedFile } : item\n )\n );\n } else {\n onChange(newFileList.filter(item => item.uid !== file.uid));\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Upload failed',\n });\n }\n } catch (error) {\n onChange(newFileList.filter(item => item.uid !== file.uid));\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Upload failed',\n });\n }\n };\n\n const handleRemove = (file: any) => {\n onChange(value.filter((item: any) => item.uid !== file.uid));\n };\n\n return (\n <StyledUploadFile\n className={inputDesign ? 'input-design' : 'default-design'}\n multiple={props.maxCount !== undefined && props.maxCount > 1}\n customRequest={handleUpload}\n showUploadList={!!props.showUploadList}\n fileList={value}\n onRemove={handleRemove}\n maxCount={props.maxCount}\n {...props}\n >\n {value.length < (props.maxCount || 15) && children}\n </StyledUploadFile>\n );\n};\n\nexport default UploadFiles;\n","import { Tabs } from 'antd';\nimport styled from 'styled-components';\n\nexport const TabComponent = styled(Tabs)`\n display: flex;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n padding: 1.5rem;\n\n @media (max-width: 1024px) {\n .ant-tabs-nav-list {\n /* display: none; */\n }\n \n .ant-tabs-extra-content {\n width: 100%;\n }\n }\n\n .ant-tabs-tab {\n height: 32px;\n padding: 8px 4px;\n margin: 0 !important;\n padding: var(--spacing-050, 0.25rem) var(--spacing-150, 0.75rem);\n\n .ant-tabs-tab-btn {\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n border-radius: var(--border-radius-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n transition: color 0.2s;\n\n &:hover,\n &:focus {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n }\n\n &.ant-tabs-tab-active {\n background: var(--color-bg-brand-special, #02e0ae);\n\n .ant-tabs-tab-btn {\n color: var(--color-text-inverse-primary, #131412);\n\n &:hover,\n &:focus {\n color: var(--color-text-inverse-primary, #131412);\n }\n }\n }\n }\n .ant-tabs-nav {\n margin: 0;\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n\n @media (max-width: 1024px) {\n border-bottom: none;\n }\n\n &::before {\n display: none;\n }\n }\n\n .ant-tabs-ink-bar {\n display: none;\n }\n\n .ant-tabs-nav-list {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-secondary);\n }\n\n .ant-tabs-nav-more {\n display: none !important;\n }\n`;\n","import styled from 'styled-components';\n\nexport const TabExtraContent = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const ExtraContentWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100% !important;\n\n @media (max-width: 450px) {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .partner-tab-select {\n width: 150px;\n @media (max-width: 450px) {\n width: 100%;\n }\n }\n`;\n\nexport const TabSelectWrapper = styled.div`\n display: none;\n @media (max-width: 1024px) {\n display: block;\n }\n align-items: start !important;\n`;\n","import styled from 'styled-components';\n\nexport const DashboardResponsiveButtonWrapper = styled.div`\n display: none;\n\n @media (max-width: 991px) {\n display: block;\n margin-left: 0.9rem;\n }\n`;\n","import { useState } from 'react';\nimport { DashboardResponsiveButtonWrapper } from './style';\nimport Sidebar from '../../layouts/base-admin-layout/sidebar';\nimport SidebarIcon from '../../assets/icons/color.svg?react';\n\nconst ResponsiveSidebarButton = () => {\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\n return (\n <DashboardResponsiveButtonWrapper>\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\n <SidebarIcon />\n </button>\n {isSidebarVisible && <Sidebar />}\n </DashboardResponsiveButtonWrapper>\n );\n};\n\nexport default ResponsiveSidebarButton;\n","import { useLocation, useNavigate, useParams } from 'react-router';\nimport { useMemo, useState, ReactNode } from 'react';\nimport { TabComponent } from '../../styled-components/tabs';\nimport useUserStore from '../../stores/useUserStore';\nimport {\n ExtraContentWrapper,\n TabExtraContent,\n TabSelectWrapper,\n} from './GenericTabComponent.style';\nimport { StyledSelect } from '../../styled-components';\nimport PageBreadcrumb from '../page-breadcrumb';\nimport type { BreadcrumbItem } from '../page-breadcrumb/types';\nimport ResponsiveSidebarButton from '../responsive-sidebar-button';\n\nexport type { BreadcrumbItem };\n\nexport interface TabItem {\n key: string;\n label: string;\n permission?: number[];\n featureFlag?: number;\n}\n\ninterface GenericTabsPageProps {\n basePath: string;\n tabItems: TabItem[];\n contentMap: Record<string, ReactNode>;\n defaultTabKey?: string;\n logo?: ReactNode;\n breadcrumbItems?: BreadcrumbItem[];\n needsBreadcrumb?: boolean;\n customTabFilter?: (items: TabItem[]) => TabItem[];\n}\n\nconst GenericTabsPage = ({\n basePath,\n tabItems,\n contentMap,\n defaultTabKey = 'overview',\n logo,\n breadcrumbItems,\n needsBreadcrumb,\n customTabFilter,\n}: GenericTabsPageProps) => {\n const { hasPermission } = useUserStore();\n const { id } = useParams();\n const location = useLocation();\n const navigate = useNavigate();\n\n const activeKey = useMemo(() => {\n const pathParts = location.pathname.split('/');\n return pathParts[pathParts.length - 1] || defaultTabKey;\n }, [location.pathname, defaultTabKey]);\n const [extraTabItem, setExtraTabItem] = useState<ReactNode>(null);\n const [secondExtraTab, setSecondExtraTab] = useState<ReactNode>(null);\n\n const onTabChange = (key: string) => {\n navigate(`${basePath}/${id}/${key}`);\n };\n\n const getFilteredTabs = () => {\n if (customTabFilter) {\n return customTabFilter(tabItems);\n }\n\n return tabItems.filter(item => {\n return item.permission?.some((perm: any) => hasPermission(perm));\n });\n };\n\n const renderContent = () => {\n const content = contentMap[activeKey] || contentMap[defaultTabKey];\n\n if (!content) return null;\n\n if (typeof content === 'object' && content !== null && 'type' in content) {\n return {\n ...content,\n props: {\n ...content.props,\n setExtraTabItem,\n setSecondExtraTab,\n },\n };\n }\n\n return content;\n };\n\n return (\n <>\n <ResponsiveSidebarButton />\n {needsBreadcrumb && <PageBreadcrumb logo={logo} breadcrumbItems={breadcrumbItems} />}\n\n <TabComponent\n activeKey={activeKey}\n onChange={onTabChange}\n tabBarExtraContent={{\n right: (\n <ExtraContentWrapper>\n <TabSelectWrapper>\n <StyledSelect\n className=\"partner-tab-select\"\n placeholder={'Modules'}\n onChange={(e: any) => onTabChange(e)}\n value={activeKey}\n options={tabItems\n .filter((item: any) => item?.label !== 'Details')\n .map((item: any) => ({\n value: item.key,\n label: item.label,\n }))}\n />\n </TabSelectWrapper>\n <TabExtraContent>\n {secondExtraTab}\n {extraTabItem}\n </TabExtraContent>\n </ExtraContentWrapper>\n ),\n }}\n items={getFilteredTabs()}\n />\n\n <div>{renderContent()}</div>\n </>\n );\n};\n\nexport default GenericTabsPage;\n","import { Form } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { parseServerErrors } from '../utils/errors';\n\nconst useFormController = ({\n id,\n refetchFormItems,\n redirectPrevPage,\n updateItem,\n addItem,\n getItemById,\n onSetFormValues,\n}: any) => {\n //maybe add in formcontroller the 2FA extra requests.\n const navigate = useNavigate();\n const [form] = Form.useForm();\n\n const [isAddingForm, setIsAddingForm] = useState(id == 'new');\n const [item, setItem] = useState<any>(null);\n\n const handleSave = async (values: any) => {\n const currentPath = window.location.pathname;\n const parentPath = currentPath.substring(0, currentPath.lastIndexOf('/'));\n try {\n if (item) {\n let resp;\n if (id) {\n resp = await updateItem({ ...values, id });\n } else {\n resp = await updateItem(values);\n }\n\n if (redirectPrevPage !== false && resp.data.success === true) {\n navigate(parentPath);\n }\n return resp;\n } else {\n const resp = await addItem(values);\n if (redirectPrevPage !== false && resp.data.success === true) {\n navigate(parentPath);\n }\n //return for 2fa\n return resp;\n }\n } catch (error: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errors = parseServerErrors(response.errors);\n\n form.setFields(errors);\n }\n }\n };\n\n const getItem = async (id: number) => {\n try {\n const response = await getItemById(id);\n const data = onSetFormValues ? onSetFormValues(response.data) : response.data;\n setItem(data);\n form.setFieldsValue(data);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n };\n\n useEffect(() => {\n setIsAddingForm(id == 'new');\n if (id != 'new') {\n getItem(Number(id));\n } else {\n form.resetFields();\n }\n }, [id, refetchFormItems]);\n\n return {\n form,\n item,\n getItemById,\n isAddingForm,\n handleSave,\n };\n};\n\nexport default useFormController;\n","import { Form } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { parseServerErrors } from '../utils/errors';\n\nconst useFormController = ({ id, formItem, updateItem, addItem, getItemById }: any) => {\n const [form] = Form.useForm();\n\n const [item, setItem] = useState<any>(null);\n\n const handleSave = async (values: any) => {\n try {\n let resp: any;\n if (id) {\n resp = await updateItem({ ...values });\n } else {\n resp = await addItem(values);\n }\n\n return resp;\n } catch (error: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errors = parseServerErrors(response.errors);\n\n form.setFields(errors);\n }\n throw error;\n }\n };\n\n const getItem = async (id: number) => {\n try {\n const response = await getItemById(id);\n const data = response.data;\n setItem(data);\n form.setFieldsValue(data);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n };\n\n useEffect(() => {\n try {\n if (!formItem) return;\n setItem(formItem);\n form.setFieldsValue(formItem);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n }, [formItem]);\n\n useEffect(() => {\n if (!id) return;\n getItem(Number(id));\n }, [id]);\n\n return {\n form,\n item,\n handleSave,\n };\n};\n\nexport default useFormController;\n","import { useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport useUserStore from '../stores/useUserStore';\n\ninterface TwoFactorState {\n visible: boolean;\n token: string;\n id?: number;\n mfaType?: number;\n}\n\nexport const useTwoFactor = () => {\n const navigate = useNavigate();\n const { setUser } = useUserStore();\n\n const [twoFactor, setTwoFactor] = useState<TwoFactorState>({\n visible: false,\n token: '',\n });\n\n const finalizeLogin = (userData: any) => {\n setUser(userData);\n setTwoFactor({ visible: false, token: '' });\n navigate('/');\n };\n\n const handleTwoFactorResponse: any = (resp: any, isLogin?: boolean) => {\n const { success, value } = resp.data;\n\n if (!success) {\n throw new Error('Authentication failed');\n }\n\n if (value.isTwoFactorRequired) {\n setTwoFactor({\n visible: true,\n token: value.token,\n id: value.id,\n mfaType: value.mfaType,\n });\n return;\n }\n\n if (isLogin) {\n finalizeLogin(value);\n }\n };\n\n return {\n handleTwoFactorResponse: handleTwoFactorResponse,\n finalizeLogin,\n twoFactor,\n setTwoFactor,\n };\n};\n","import { useContext, useEffect } from 'react';\nimport { UNSAFE_NavigationContext, useLocation } from 'react-router';\nimport { Modal } from 'antd';\n\nexport function useNavigationGuard(shouldBlock: any) {\n const { navigator } = useContext(UNSAFE_NavigationContext);\n const location = useLocation();\n\n useEffect(() => {\n if (!shouldBlock) return;\n\n const originalPush = navigator.push;\n const originalReplace = navigator.replace;\n\n const confirmAndNavigate =\n (method: any) =>\n (...args: any) => {\n Modal.confirm({\n title: 'UnsavedChanges',\n\n content: 'UnsavedMoveDesc',\n okText: 'Leave',\n className: 'custom-confirm-modal',\n cancelText: 'Save',\n okButtonProps: {\n className: 'ok-text-btn',\n },\n cancelButtonProps: {\n className: 'no-hover-cancel-btn', // in global css at this point for this..\n },\n onOk: () => {\n method(...args);\n },\n onCancel: () => {},\n });\n };\n\n navigator.push = confirmAndNavigate(originalPush);\n navigator.replace = confirmAndNavigate(originalReplace);\n\n return () => {\n navigator.push = originalPush;\n navigator.replace = originalReplace;\n };\n }, [shouldBlock, navigator, location]);\n\n useEffect(() => {\n const handleBeforeUnload = (e: any) => {\n if (!shouldBlock) return;\n e.preventDefault();\n e.returnValue = '';\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [shouldBlock]);\n}\n","import { useEffect } from 'react';\n\nexport function useAutofillStartDetection(callback: Function) {\n useEffect(() => {\n const handleAnimationStart = (e: AnimationEvent) => {\n if (e.animationName === 'onAutoFillStart') {\n callback(e);\n }\n };\n\n document.addEventListener('animationstart', handleAnimationStart, true);\n return () => {\n document.removeEventListener('animationstart', handleAnimationStart, true);\n };\n }, []);\n}\n","export function formatDate(dateStr: any, options?: { withTime?: boolean }): string {\n if (!dateStr) return '';\n\n const date = new Date(dateStr);\n if (isNaN(date.getTime())) return '';\n\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n\n const month = monthIndex;\n\n const formattedDate = `${day} ${month}, ${year}`;\n\n if (options?.withTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n return `${formattedDate} ${hours}:${minutes}`;\n }\n\n return formattedDate;\n}\n\nexport function numberFormatterWithComma(number: number, local = 'en-US'): any {\n if (number < 1) {\n return 0;\n } else if (!number) {\n return '';\n }\n\n return number.toLocaleString(local);\n}\n","// Backend sends PascalCase. Converts to camelCase, handling:\n// - Standard PascalCase: 'SubAffiliateRevShare' → 'subAffiliateRevShare'\n// - All-caps acronyms: 'CPA' → 'cpa'\n// - Leading acronyms: 'FTDAmountTiers' → 'ftdAmountTiers'\nconst toCamelCase = (str: string) =>\n str.replace(/^[A-Z]+/, match => {\n if (match.length === str.length) return match.toLowerCase();\n if (match.length > 1) return match.slice(0, -1).toLowerCase() + match.slice(-1);\n return match.toLowerCase();\n });\n\nexport type ParsedCommissionError = {\n brandIndex: number;\n message: string;\n generalType?: string;\n specificType?: string;\n itemIndex?: number;\n field?: string;\n};\n\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].SubAffiliate.SubAffiliateRevShare[0].Commission\"\nconst FIELD_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\[(\\d+)\\]\\.(\\w+)$/;\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers\"\nconst SPECIFIC_TYPE_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)$/;\n\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers.Count\"\nconst SPECIFIC_TYPE_ERROR_REGEX_COUNT = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\.(\\w+)$/;\n//this looks like this in bacckend VALIDATION DTO. \"Commissions[1]\"\nconst BRAND_ERROR_REGEX = /^Commissions\\[(\\d+)\\]$/;\n\nexport function parseCommissionErrors(error: any): ParsedCommissionError | null {\n const { errors: errorList } = error.response.data;\n\n const key = Object.keys(errorList)[0];\n const message = errorList[key][0];\n\n const fieldMatch = key.match(FIELD_ERROR_REGEX);\n if (fieldMatch) {\n const [, brandIndexStr, generalTypePascal, specificTypePascal, itemIndexStr, fieldPascal] =\n fieldMatch;\n return {\n brandIndex: Number(brandIndexStr),\n generalType: toCamelCase(generalTypePascal),\n specificType: toCamelCase(specificTypePascal),\n itemIndex: Number(itemIndexStr),\n field: toCamelCase(fieldPascal),\n message,\n };\n }\n\n const specificTypeMatch =\n key.match(SPECIFIC_TYPE_ERROR_REGEX) || key.match(SPECIFIC_TYPE_ERROR_REGEX_COUNT);\n if (specificTypeMatch) {\n const [, brandIndexStr, generalTypePascal, specificTypePascal] = specificTypeMatch;\n return {\n brandIndex: Number(brandIndexStr),\n generalType: toCamelCase(generalTypePascal),\n specificType: toCamelCase(specificTypePascal),\n message,\n };\n }\n\n const brandMatch = key.match(BRAND_ERROR_REGEX);\n if (brandMatch) {\n return {\n brandIndex: Number(brandMatch[1]),\n message,\n };\n }\n\n console.warn(\n 'parseCommissionErrors: unrecognized key format from the validations on commissions',\n key\n );\n return null;\n}\n"],"names":["PackageServicesContext","createContext","PackageServicesProvider","services","children","usePackageServices","useContext","_t","key","setPackageTranslationFn","fn","tGeneral","options","tActions","tAuthentication","tMonths","tDate","tWeekDays","tNoData","tComingSoon","PackageTranslationProvider","t","useEffect","SvgChevronDown","props","React","StyledDownArrow","styled","DownArrow","StyledSidebar","StyledHeaderLink","StyledHeaderLogo","StyledMenu","Menu","useFetch","fetchData","dependencies","condition","data","setData","useState","listItems","setListItems","loading","setLoading","error","setError","fetchDataFromAPI","response","_a","useUserStore","create","set","get","userData","newThemeMode","prefersDark","user","permission","SvgCheckmark","StyledCheckMark","CheckMark","StyledProfileMenuChildren","StyledProfileLabel","ProfileMenuWrapper","ProfileMenu","closeProfileDropdown","navigate","useNavigate","getCustomers","postSelectedCustomer","storedThemeMode","logout","setThemeMode","i18n","useTranslation","onLogoutClick","handleLanguageSelect","lang","renderLabel","label","isSelected","jsx","handleSetCustomer","id","navigateToProfile","jsxs","trigger","cust","Sidebar","items","topLogoPrimaryUrl","shortName","location","useLocation","showMenu","setShowMenu","menuRef","useRef","toggleMenu","prev","handleClickOutside","event","StyledLayout","StyledContentWrapper","StyledContent","AdminPage","Wrapper","LogoShortName","BackBtn","PageContainer","PageContent","PageTitleContainer","SideBannerWrapper","PageDesc","PageTitle","AuthBoxComponentWrapper","StyledFooter","StyledAuthSpan","SvgArrowLeft","ArrowLeftIcon","ArrowLeft","BoxComponentWrapper","BoxComponentBody","BoxComponentBottomText","BoxComponentTopText","CommissionStatusText","BoxComponent","boxBottomText","boxTopText","onClick","className","color","commissionStatus","AuthorizationLayout","pageTitle","pageDesc","logoPrimaryUrl","colorPrimary","searchParams","useSearchParams","backPath","handleBackBtnClick","path","TableViewOptions","SortDirections","FilterSelectTypes","ColumnFilterType","createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","defaultFilters","createGridViewStore","config","storageKey","defaultView","saved","parsed","newValue","filters","Sort","Asc","rest","sortFilters","updateFilters","sortItems","PageSize","QuickSearch","newFilters","item","arr","view","GridViewStoreContext","GridViewStoreProvider","storeRef","useGridViewStore","selector","store","useStore","useGridViewSessionStorage","hydrateFromStorage","s","isHydrated","filterItems","hideItems","groupByArr","activeTableView","selectedConfig","useElementHeight","ref","height","setHeight","observer","entry","RangePicker","DatePicker","PageWrapper","PageHeaderWrapper","PageTopContentWrapper","Table","DropdownContent","PageFilterWrapper","FilterItemWrapper","ResetConditionsWrapper","StyledRangePicker","OptionName","OptionWrapper","TwoComponentSelectTitle","TwoComponentSelectContent","GridViewPageTableWrapper","SvgFilter","SvgSettings","SvgColor","useDebounce","delay","deps","debouncedFn","useMemo","debounce","SvgArrowUp","SvgArrowDown","SvgSort","DropdownWrapper","overlay","placement","open","setOpen","Dropdown","SortDropdown","columns","setSortItems","selectedSortItem","searchValue","setSearchValue","sortDirection","setSortDirection","filteredColumns","col","onSelect","direction","onRemove","_setOpen","e","i","Checkmark","ArrodwUpLogo","ArrodwDownLogo","SortLogo","FilterDropdown","CustomFilters","dropdownOpen","setDropdownOpen","setFilterItems","onClickHandle","column","c","defaultPopupOptions","defaultFooterOptions","useModalStore","buildOptions","opts","hide","title","StyledSelect","Select","ROUTE_FILTER_TYPE_MAP","useFilterDataSourceType","pathname","match","route","handleDictionarySelectFilter","input","option","PageHeader","setisSettingPopupVisible","tableAdditionalFields","createIsModal","exportButton","hasSelect","selectProps","GridPageTopLeftComponent","noNeedSidebarResponsiveButton","hasCreateBtn","setFilters","isQuicksearchVisible","setisQuicksearchVisible","stored","_b","isSidebarVisible","setIsSidebarVisible","openModal","setOpenModal","getMyFilters","filterType","savedConfigs","setSavedConfigs","setSelectedConfig","configsVersion","res","applyConfiguration","onQuickSearchChange","onSettingClick","handleCreateClick","SidebarIcon","FilterLogo","SettingsLogo","SvgPlus","SvgArrowRefresh","_DateHelper","value1","value2","val1","val2","value","date","month","day","year","mm","dd","start","end","d","dates","hour","minute","strTime","datePart","timePart","second","utc","dateObject","v","years","months","days","hours","minutes","seconds","today","a","b","now","timeDiff","endDate","starDate","plus","parsedNb","y","m","val","tzHour","tzMin","dateSetter","timeSetter","h","ms","__publicField","startDate","DateHelper","SvgCloseMark","CloseMarkIcon","CloseMark","Popup","Modal","PopupHeader","CloseButton","ContentContainer","NoDataSpanForSelect","LabelText","PopupFooterContainer","CancelModalButton","Button","ModalHostButtonWrapper","CreateModalButton","RejectButton","GeneralInput","Input","getBase64","file","resolve","reject","reader","lowercaseFirstLetter","word","handleCopy","textToCopy","notification","catchErrorMessage","form","errorMessages","FilterConfiguration","type","onSuccess","postMyFilter","putMyFilter","Form","setOnOk","close","values","errors","SvgArrowRight","ArrowRightIcon","ArrowRight","DeleteRecordPopup","StyledCheckbox","Checkbox","FilterItem","inputRef","handleFocus","onFilterValueDropdownClick","twoComponentSelectDropdownClick","isCountryGroup","selectedValues","setSelectedValues","onFilterValueToggle","optionId","newValues","selectedLabels","opt","f","onFilterValueChange","onOpenChange","dropdownContentComponent","Fragment","_c","_e","_d","_g","_f","isoDates","triggerNode","dropdownContent","_h","_i","PageFilter","resetStore","deleteMyFilter","bumpConfigsVersion","handleDeleteConfiguration","err","deleteConfiguration","handleSaveConfiguration","savedName","PlusLogo","RefrechSvg","TableWrapper","DrodownContent","PaginationWrapper","PageSizeSelectDropdownContent","groupBy","currentGroupOptions","getGroupLength","group","sum","list","TableRow","rowKey","onRowClick","checkedValue","TableBodyRows","rows","SketelonRows","rowLength","columnLength","_","rowIndex","_col","colIndex","Skeleton","SubGroupedSection","subGroups","subLabel","GroupHeader","colSpan","count","GroupedTableBody","dataSource","isSubGroupped","groupLabel","TablePagination","pagination","onPerPageSelectChange","totalItemCount","onPaginationChange","Pagination","CheckmarkIcon","ChevronDown","SvgEyeHide","TableTh","setHideItems","onSortSelectHandle","onFilterSelectHandle","removeCurrentItem","onHideSelectHandle","isHide","closeDropdown","dropdownItems","ArrowUp","ArrowDown","EyeHide","icon","text","action","NoDataWrapper","TextContainer","HeaderText","InfoText","HelpSpan","NoData","description","button","helpSpan","noPagination","noDataProps","currentColumns","g","isTableGroupped","isTableSubGroupped","currentDataSource","grouped","subGrouped","newPageSize","newPage","SettingSidebarWrapper","StyledNoGrouping","SvgClose","SvgCheckmarkFilled","ModalContentWrapper","VerificationWrapper","DidnotReceiveCodeSpan","OtpContentWrapper","BlockedOtpHeader","BlockedOtpTitle","OtpBlockedLabel","OtpBlockedButton","SvgError","parseErrorMessageKey","result","curr","next","parseServerErrors","messages","part","ButtonsWrapper","BackupSpan","BackupCodeInfoText","MFAPopupHeader","PasswordInputWrapper","SpinWrapper","BackupCodeWrapper","PasswordInput","EnterBackupCode","confirmationToken","backupCodeEndpoint","setBackupActivated","setVisible","setRefetchData","code","setCode","errorList","setErrorList","handleSubmit","resp","ErrorSvg","Overlay","ModalContainer","modalRoot","el","isOpen","onClose","onKeyDown","ReactDOM","ModalText","ContactInfoModal","isVisible","mfaType","isBlocked","onBlockStateClose","confirmContactInfo","confirmContactInfoBackup","setUser","optValue","setOPTValue","setErrors","backupActivated","handleOTPChange","handleSubmitVerificationCode","_confirm","handleSubmitBackupCode","params","_confirmBackup","useContactInfoController","enableContactInfo","disableContactInfo","isContactInfoModalVisible","setIsContactInfoModalVisible","savedResp","setSavedResp","setIsBlocked","handleEnableContactInfo","handleDisableContactInfo","SettingSidebar","setActiveTableView","setGroupByArr","ContactInfoModalProps","handleGroupChange","currentCol","formatDateDifference","date1","date2","d1","d2","diffMs","parts","onResetAllOptions","CloseSvg","CheckmarkFilledSvg","FilterSvg","GridViewPage","getData","update","contentAfterPageHeader","initialFilterValues","editButton","TableComponent","tableProps","loadedData","setColumns","setHasCreateBtn","setHasSelect","setCheckedValue","isSettingPopupVisible","pageTopContent","topContentHeight","GridViewPageWrapper","ModalHost","Component","componentProps","popupOptions","footerOptions","hideFooter","showCloseButton","onOk","onCancel","handleCancel","handleOk","PopupMFA","displayAddRuleModal","SelectMFAMethod","setCurrentStep","setConfirmationToken","enableTwoFactorService","setRefetch","setIdOf2FA","getEmailToken","_enable","MFA_STEP","VerifyAuthenticatorCode","setBackupCodes","confirmTwoFactorService","_setErrors","handleContinue","_verify","SelectAuthenticatorApp","authenticatorApps","app","QrWrapper","QrInputWrapper","AuthenticatorQrCopyWrapper","AuthenticatoQrInpuWrapper","QrModalButtonWrapper","IconContext","_extends","n","r","_arrayWithHoles","_iterableToArrayLimit","l","u","o","_arrayLikeToArray","_unsupportedIterableToArray","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_typeof","toPrimitive","toPropertyKey","_defineProperty","_objectWithoutPropertiesLoose","_objectWithoutProperties","objectWithoutPropertiesLoose","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","round","splitColorStr","str","parseNum","numList","parseHSVorHSL","num","index","limitRange","max","mergedMax","FastColor","matchFormat","matchPrefix","prefix","trimStr","hsv","adjustGamma","raw","R","G","B","delta","amount","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","huePrime","chroma","secondComponent","lightnessModification","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","getValue","generate","patterns","pColor","_ref","blue","ownKeys","_objectSpread2","defineProperty","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","head","getOrder","prepend","findStyles","container","injectCSS","css","csp","_option$priority","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","styles","_objectSpread","existNode","_option$csp","_option$csp2","_option$csp3","newNode","getRoot","ele","_ele$getRootNode","inShadow","getShadowRoot","warned","preWarningFns","preMessage","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","warn","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","_useContext","prefixCls","layer","mergedStyleStr","shadowRoot","_excluded","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","style","restProps","svgRef","colors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","getTwoToneColor","Icon","spin","rotate","tabIndex","_React$useContext","Context","_React$useContext$pre","rootClassName","classString","iconTabIndex","svgStyle","CopyOutlined","AntdIcon","CopyOutlinedSvg","RefIcon","DownloadOutlined","DownloadOutlinedSvg","ConnectAuthenticatorApp","initiateMFA","init","Spin","DisableAuthenticator","disableMFAService","VerifyEmailCode","idOf2FA","otpValue","setOtpValue","BackupCodes","backupCodes","handleDownload","content","blob","url","ModalManager","setIsOpen","modal","currentStep","StepComponent","stepProps","PageBreadcrumbWrapper","BackButton","StyledArrowLeft","StyledBreadcrumb","Breadcrumb","PageBreadcrumb","breadcrumbItems","logo","backButton","MfaType","TwoFactorPopup","confirmTwoFactor","resendOTP","updatedResponse","visible","disabledUntilMinutePasses","setDisabledUntilMinutePasses","timeLeft","setTimeLeft","onSave","handleResendOTP","interval","ChartWrapper","Chart","chartDom","chartInstance","echarts","resizeHandler","StyledSpin","Spinner","backgroundcolor","shimmer","keyframes","SkeletonBase","SkeletonHeader","SkeletonSubtitle","SkeletonBox","SkeletonRow","Container","SkeletonChipRow","SkeletonChip","SkeletonContentLine","BigBox","SkeletonCardContent","ComingSoon","CustomTable","SvgChevronUp","ExpandableTable","CustomExpandableRow","dataTableColumns","expandableRowProps","expandedRows","setExpandedRow","expandedRowKeys","setExpandedRowKeys","tableColumns","handleExpandedRowsChange","Empty","record","expanded","ChevronUp","StyledDateRangeFilterTabs","Tabs","TabsCustomDateFilterWrapper","CustomDateFilterWrapper","isString","obj","defer","rej","promise","makeString","object","copy","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","stack","stackIndex","setPath","k","last","pushPath","concat","getPath","getPathWithDefaults","defaultData","deepExtend","source","overwrite","prop","regexEscape","_entityMap","escape","RegExpCache","capacity","pattern","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","matched","ki","deepFind","tokens","current","nextPath","j","getCleanedCode","consoleLogger","args","Logger","concreteLogger","lvl","debugOnly","moduleName","baseLogger","EventEmitter","events","numListeners","wrapper","numTimesAdded","ResourceStore","ns","lng","ignoreJSONStructure","resources","deep","pack","postProcessor","processors","translator","processor","PATH_KEY","createProxy","handler","proxy","keysFromSelector","nsArray","shouldHandleAsObject","Translator","resolved","isObject","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","keys","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","noObject","joinArrays","handleAsObjectInI18nFormat","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","defaultValue","resForObjHndl","handleAsObject","resType","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","specificDefaultValue","defaultForMissing","language","suffixes","suffix","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","LanguageUtil","formattedCode","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","suffixesOrder","dummyRule","PluralResolver","languageUtils","cleanedCode","cacheKey","rule","lngPart","pluralCategory1","pluralCategory2","pluralCategory","deepFindWithDefaults","regexSafe","Interpolator","escape$1","escapeValue","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","getOrResetRegExp","existingRegExp","replaces","handleFormat","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","keyEndIndex","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","trimmedKey","createCachedFormatter","cache","optForCache","frm","createNonCachedFormatter","Formatter","cf","formatter","name","format","formats","lastIndex","mem","formatted","valOptions","removePending","Connector","backend","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","loaded","loadedKeys","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","ret","transformOptions","noop","bindMemberFunctions","inst","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","deferred","load","finish","usedCallback","append","li","lngInLngs","setLngProps","done","setLng","fl","keyPrefix","fixedT","selectorOpts","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","ti","rtlLngs","instance","forkResourceStore","mergedOptions","clonedData","mergedInterpolation","mergedForInterpolator","HttpApi","LanguageDetector","initReactI18next","this","$","M","D","S","w","O","CustomDateRangePicker","setDateFilter","setShowRange","setDates","disabledDate","dayjs","handleRangeChange","headerLocale","StyledEmpty","StyledTable","StyledTooltip","Tooltip","$width","$height","DateRangeFilterTabs","setDateFilters","hasAllFilter","TabItems","showRange","tabItems","handleTabClick","tab","foundTab","each","StyledDropdownContainer","ExportXlsxFunction","link","ExportCsvFunction","csvDataString","StyledDropdown","StyledButton","ExcelExport","exportFileName","service","onExportClick","Page","filtersWithoutPageAndPageSize","menu","exportSelectedToCSV","tableData","checked","fileName","selectedRows","row","headers","csvArray","cell","BOM","exportSelectedToXLSX","simplifiedData","flatValue","worksheet","XLSX","workbook","excelBuffer","ExcelExportSelected","DatePickerToISO","onChange","parsedValue","handleChange","Dragger","Upload","StyledUploadFile","UploadFiles","inputDesign","addFilesService","handleUpload","previewUrl","tempFile","newFileList","formData","uploadedFile","handleRemove","TabComponent","TabExtraContent","ExtraContentWrapper","TabSelectWrapper","DashboardResponsiveButtonWrapper","ResponsiveSidebarButton","GenericTabsPage","basePath","contentMap","defaultTabKey","needsBreadcrumb","customTabFilter","hasPermission","useParams","activeKey","pathParts","extraTabItem","setExtraTabItem","secondExtraTab","setSecondExtraTab","onTabChange","getFilteredTabs","perm","renderContent","useFormController","refetchFormItems","redirectPrevPage","updateItem","addItem","getItemById","onSetFormValues","isAddingForm","setIsAddingForm","setItem","handleSave","currentPath","parentPath","getItem","formItem","useTwoFactor","twoFactor","setTwoFactor","finalizeLogin","isLogin","success","useNavigationGuard","shouldBlock","navigator","UNSAFE_NavigationContext","originalPush","originalReplace","confirmAndNavigate","handleBeforeUnload","useAutofillStartDetection","handleAnimationStart","formatDate","dateStr","monthIndex","formattedDate","numberFormatterWithComma","number","local","toCamelCase","FIELD_ERROR_REGEX","SPECIFIC_TYPE_ERROR_REGEX","SPECIFIC_TYPE_ERROR_REGEX_COUNT","BRAND_ERROR_REGEX","parseCommissionErrors","fieldMatch","brandIndexStr","generalTypePascal","specificTypePascal","itemIndexStr","fieldPascal","specificTypeMatch","brandMatch"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmMtB+a,GAAiB/a,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCxBgb,GAAoBhb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8F3Bib,GAAgCjb,EAAO;AAAA;AA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","x_google_ignoreList":[20,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,141,143]}
1
+ {"version":3,"file":"index.cjs","sources":["../src/utils/PackageServicesProvider.tsx","../src/utils/exportTranslation.ts","../src/utils/PackageTranslationProvider.tsx","../src/assets/icons/chevron-down.svg?react","../src/layouts/base-admin-layout/sidebar/style.ts","../src/hooks/useFetch.ts","../src/stores/useUserStore.ts","../src/assets/icons/checkmark.svg?react","../src/layouts/base-admin-layout/profile-menu/style.ts","../src/layouts/base-admin-layout/profile-menu/index.tsx","../src/layouts/base-admin-layout/sidebar/index.tsx","../src/layouts/base-admin-layout/style.ts","../src/layouts/base-admin-layout/index.tsx","../src/layouts/authorization-layout/style.ts","../src/assets/icons/arrow-left.svg?react","../src/styled-components/arrowLeft.ts","../src/components/box-component/style.ts","../src/components/box-component/index.tsx","../src/layouts/authorization-layout/index.tsx","../src/modules/GridViewPage/types.ts","../node_modules/zustand/esm/vanilla.mjs","../src/modules/GridViewPage/store/createGridViewStore.ts","../src/modules/GridViewPage/GridViewStoreProvider.tsx","../src/modules/GridViewPage/hooks/useGridViewSessionStorage.ts","../src/hooks/useElementHeight.ts","../src/modules/GridViewPage/style.ts","../src/assets/icons/filter.svg?react","../src/assets/icons/settings.svg?react","../src/assets/icons/color.svg?react","../src/hooks/useDebounce.ts","../src/assets/icons/arrow-up.svg?react","../src/assets/icons/arrow-down.svg?react","../src/assets/icons/sort.svg?react","../src/modules/GridViewPage/components/DropdownWrapper.tsx","../src/modules/GridViewPage/components/SortDropdown.tsx","../src/modules/GridViewPage/components/FilterDropdown.tsx","../src/stores/useModalStore.ts","../src/modules/GridViewPage/components/page-header/style.ts","../src/components/filter-configuration/constants.ts","../src/hooks/useFilterDataSourceType.ts","../src/utils/antdFunction.ts","../src/modules/GridViewPage/components/page-header/PageHeader.tsx","../src/assets/icons/plus.svg?react","../src/assets/icons/arrow-refresh.svg?react","../src/utils/DateHelper.ts","../src/assets/icons/close-mark.svg?react","../src/styled-components/closeMark.ts","../src/components/modal-host/TablePopup.style.ts","../src/utils/functions.ts","../src/utils/catchErrorFunction.ts","../src/components/filter-configuration/index.tsx","../src/assets/icons/arrow-right.svg?react","../src/styled-components/rightArrow.ts","../src/modules/GridViewPage/components/delete-record-popup/DeleteRecordPopup.tsx","../src/styled-components/styledCheckbox.ts","../src/modules/GridViewPage/components/PageFilter.tsx","../src/modules/GridViewPage/components/Table/style.ts","../src/modules/GridViewPage/components/Table/utils.ts","../src/modules/GridViewPage/components/Table/TableBodyRows.tsx","../src/modules/GridViewPage/components/Table/SubGroupedSection.tsx","../src/modules/GridViewPage/components/Table/GroupedTableBody.tsx","../src/modules/GridViewPage/components/Table/TablePagination.tsx","../src/assets/icons/eye-hide.svg?react","../src/modules/GridViewPage/components/Table/TableTh.tsx","../src/components/no-data/style.ts","../src/components/no-data/index.tsx","../src/modules/GridViewPage/components/Table/index.tsx","../src/modules/GridViewPage/components/setting-sidebar/style.ts","../src/assets/icons/close.svg?react","../src/assets/icons/checkmark-filled.svg?react","../src/components/contact-info-modal/style.ts","../src/assets/icons/error.svg?react","../src/utils/errors.ts","../src/components/two-factor-popup/style.tsx","../src/components/popup-mfa/mfa-all-popups/style.ts","../src/components/two-factor-popup/EnterBackupCodes.tsx","../src/components/generic-modal/style.ts","../src/components/generic-modal/index.tsx","../src/components/contact-info-modal/index.tsx","../src/hooks/useContactInfoController.ts","../src/modules/GridViewPage/components/setting-sidebar/index.tsx","../src/modules/GridViewPage/GridViewPage.tsx","../src/modules/GridViewPage/GridViewPageWrapper.tsx","../src/components/modal-host/ModalHost.tsx","../src/components/popup-mfa/PopupMFA.tsx","../src/components/popup-mfa/mfa-all-popups/SelectMFAMethod.tsx","../src/components/popup-mfa/mfa-all-popups/VerifyAuthenticatorCode.tsx","../src/components/popup-mfa/mfa-all-popups/SelectAuthenticatorApp.tsx","../src/components/popup-mfa/style.ts","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../src/components/popup-mfa/mfa-all-popups/ConnectAuthenticatorApp.tsx","../src/components/popup-mfa/mfa-all-popups/DisableAuthenticator.tsx","../src/components/popup-mfa/mfa-all-popups/VerifyEmailCode.tsx","../src/components/popup-mfa/mfa-all-popups/BackupCodes.tsx","../src/components/popup-mfa/mfa-all-popups/index.tsx","../src/components/page-breadcrumb/style.ts","../src/styled-components/breadcrumb.ts","../src/components/page-breadcrumb/index.tsx","../src/components/two-factor-popup/constants.ts","../src/components/two-factor-popup/TwoFactorPopup.tsx","../src/components/chart/style.ts","../src/components/chart/index.tsx","../src/components/spinner/style.ts","../src/components/spinner/index.tsx","../src/components/coming-soon/style.ts","../src/components/coming-soon/index.tsx","../src/components/expandable-table/style.ts","../src/assets/icons/chevron-up.svg?react","../src/components/expandable-table/index.tsx","../src/components/date-range-filter-tabs/style.ts","../node_modules/i18next/dist/esm/i18next.js","../src/assets/i18n/config.ts","../node_modules/dayjs/dayjs.min.js","../src/components/date-range-filter-tabs/date-picker/index.tsx","../src/styled-components/empty.ts","../src/styled-components/table.ts","../src/styled-components/tooltip.ts","../src/styled-components/StyledSelect.ts","../src/components/date-range-filter-tabs/index.tsx","../src/styled-components/styledDropdownContainer.ts","../src/utils/export-reports.tsx","../src/components/excel-export/style.ts","../src/components/excel-export/index.tsx","../src/utils/exportCsv.ts","../src/utils/exportXLSX.ts","../src/components/excel-export-selected/style.ts","../src/components/excel-export-selected/index.tsx","../src/components/date-picker-to-ISO/DatePickerToISO.tsx","../src/components/upload-files/style.ts","../src/components/upload-files/index.tsx","../src/styled-components/tabs.ts","../src/components/generic-tab-component/GenericTabComponent.style.ts","../src/components/responsive-sidebar-button/style.ts","../src/components/responsive-sidebar-button/index.tsx","../src/components/generic-tab-component/GenericTabComponent.tsx","../src/components/success-page/style.ts","../src/components/success-page/index.tsx","../src/hooks/useFormController.ts","../src/hooks/useNewDesignFormController.ts","../src/hooks/useTwoFactor.ts","../src/hooks/useNavigationGuard.ts","../src/hooks/useAutofillStartDetection.ts","../src/utils/formatter.ts","../src/utils/parseCommissionErrors.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\n\n// ─── Response shapes ──────────────────────────────────────────────────────────\n\nexport interface FiltersType {\n id?: number;\n name: string;\n value: string;\n}\n\nexport interface TwoFactorInitResponse {\n data: {\n success: boolean;\n value?: {\n isTwoFactorRequired: boolean;\n token: string;\n id: string;\n };\n };\n}\n\nexport interface MFASetupResponse {\n data: {\n value: {\n totpSecret: string;\n qrCodeImage: string;\n provisioningUri: string;\n };\n };\n}\n\nexport interface SuccessResponse {\n data: { success: boolean; value?: unknown };\n}\n\nexport interface CustomerItem {\n id: number | string;\n name: string;\n}\n\n// ─── Service definitions ──────────────────────────────────────────────────────\n// All services are optional — provide only what your project uses.\n\nexport interface PackageServices {\n // ── GridView ──────────────────────────────────────────────────────────────\n getMyFilters?: (filterType: number | string) => Promise<{ data: FiltersType[] }>;\n saveMyFilter?: (filterType: string, name: string, value: string) => Promise<SuccessResponse>;\n deleteMyFilter?: (id: number) => Promise<SuccessResponse>;\n\n // ── MFA setup ─────────────────────────────────────────────────────────────\n enableTwoFactorService?: () => Promise<TwoFactorInitResponse>;\n initiateMFA?: () => Promise<MFASetupResponse>;\n verifyMFA?: (otpValue: string) => Promise<SuccessResponse>;\n\n // ── Two-factor verification (login / sensitive actions) ───────────────────\n confirmTwoFactor?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n resendOTP?: (confirmationToken: string, id: string) => Promise<SuccessResponse>;\n confirmTwoFactorBackupCode?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n\n // ── Contact info ──────────────────────────────────────────────────────────\n enableContactInfo?: () => Promise<SuccessResponse>;\n disableContactInfo?: () => Promise<SuccessResponse>;\n confirmContactInfo?: (code: string, otpValue: string, id: string) => Promise<SuccessResponse>;\n confirmContactInfoBackup?: (params: {\n confirmationToken: string;\n code: string;\n id: string;\n }) => Promise<SuccessResponse>;\n\n // ── Identity / customer switcher ──────────────────────────────────────────\n getCustomers?: () => Promise<{ data: CustomerItem[] }>;\n postSelectedCustomer?: (id: number | string) => Promise<SuccessResponse>;\n}\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\nconst PackageServicesContext = createContext<PackageServices>({});\n\n/**\n * Wrap your app (or the section using this package) once with this provider\n * and pass in all the API functions your project implements.\n *\n * Example:\n * import { enableTwoFactorService, getMyFilters } from './services/myApi';\n *\n * <PackageServicesProvider services={{ enableTwoFactorService, getMyFilters }}>\n * <App />\n * </PackageServicesProvider>\n */\nexport function PackageServicesProvider({\n services,\n children,\n}: {\n services: PackageServices;\n children: ReactNode;\n}) {\n return (\n <PackageServicesContext.Provider value={services}>\n {children}\n </PackageServicesContext.Provider>\n );\n}\n\n/**\n * Use inside any component in this package to access injected service functions.\n *\n * Example:\n * const { getMyFilters } = usePackageServices();\n * if (!getMyFilters) return;\n * const res = await getMyFilters(filterType);\n */\nexport function usePackageServices(): PackageServices {\n return useContext(PackageServicesContext);\n}\n","export type TranslationFn = (key: string, options?: Record<string, unknown>) => string;\n\n// Module-level singleton — set by PackageTranslationProvider\nlet _t: TranslationFn = (key: string) => key;\n\n/**\n * Called by PackageTranslationProvider to inject the parent app's t function.\n * The provider re-calls this whenever the language changes so the singleton stays fresh.\n */\nexport function setPackageTranslationFn(fn: TranslationFn): void {\n _t = fn;\n}\n\n// ─── Namespace helpers ────────────────────────────────────────────────────────\n// Each function prefixes the key with its namespace so the parent app's\n// translation files can be structured as:\n// { \"general\": { \"Filter\": \"Filter\" }, \"actions\": { \"Ascending\": \"Ascending\" }, … }\n// or flat with dot-notation keys, depending on the i18n library setup.\n\nexport const tGeneral = (key: string, options?: Record<string, unknown>): string =>\n _t(`general.${key}`, options);\nexport const tActions = (key: string, options?: Record<string, unknown>): string =>\n _t(`actions.${key}`, options);\nexport const tAuthentication = (key: string, options?: Record<string, unknown>): string =>\n _t(`authentication.${key}`, options);\nexport const tMonths = (key: string, options?: Record<string, unknown>): string =>\n _t(`months.${key}`, options);\nexport const tDate = (key: string, options?: Record<string, unknown>): string =>\n _t(`date.${key}`, options);\nexport const tWeekDays = (key: string, options?: Record<string, unknown>): string =>\n _t(`weekDays.${key}`, options);\nexport const tSidebar = (key: string, options?: Record<string, unknown>): string =>\n _t(`sidebar.${key}`, options);\n\nexport const tReports = (key: string, options?: Record<string, unknown>): string =>\n _t(`reports.${key}`, options);\n\nexport const tNoData = (key: string, options?: Record<string, unknown>): string =>\n _t(`noData.${key}`, options);\n\nexport const tTwoFactor = (key: string, options?: Record<string, unknown>): string =>\n _t(`twoFactor.${key}`, options);\n\nexport const tComingSoon = (key: string, options?: Record<string, unknown>): string =>\n _t(`comingSoon.${key}`, options);\n","import { useEffect, type ReactNode } from 'react';\nimport { setPackageTranslationFn, type TranslationFn } from './exportTranslation';\n\ninterface PackageTranslationProviderProps {\n /**\n * The translation function from the parent app's i18n library.\n * Called with keys like \"general.Filter\", \"actions.Ascending\", etc.\n *\n * Example with react-i18next (flat namespace):\n * const { t } = useTranslation();\n * <PackageTranslationProvider t={t}>\n *\n * Example with a custom function:\n * <PackageTranslationProvider t={(key) => myTranslations[key] ?? key}>\n */\n t: TranslationFn;\n children: ReactNode;\n}\n\n/**\n * Wrap your app (or the section using this package) with this provider to\n * inject your project's translation function into the package.\n *\n * Re-renders automatically when `t` changes (e.g. on language switch),\n * keeping all package translations in sync.\n */\nexport function PackageTranslationProvider({ t, children }: PackageTranslationProviderProps) {\n // Sync immediately on first render (covers SSR / initial paint)\n setPackageTranslationFn(t);\n\n // Keep in sync when `t` changes (language switch causes a new `t` reference\n // in react-i18next, which triggers this effect and updates the singleton)\n useEffect(() => {\n setPackageTranslationFn(t);\n }, [t]);\n\n return <>{children}</>;\n}\n","import * as React from \"react\";\nconst SvgChevronDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.33343 5.72363L8.0001 8.3903L10.6668 5.72363L11.6096 6.66644L8.0001 10.2759L4.39062 6.66644L5.33343 5.72363Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgChevronDown;\n","import { Menu } from 'antd';\nimport styled from 'styled-components';\nimport DownArrow from '../../../assets/icons/chevron-down.svg?react';\n\nexport const StyledDownArrow = styled(DownArrow)`\n color: var(--color-text-primary, #131412);\n`;\n\nexport const StyledSidebar = styled.div`\n background: var(--color-bg-secondary, #f5f5f5);\n color: #000;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n\n height: 100vh;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n`;\n\nexport const StyledHeaderLink = styled.div`\n display: inline-flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 1rem;\n img {\n width: var(--size-300, 1.5rem);\n height: var(--size-300, 1.5rem);\n border-radius: var(--border-radius-025, 0.125rem);\n }\n span {\n color: var(--color-text-primary, #131412);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n`;\n\nexport const StyledHeaderLogo = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n padding-top: 10px;\n cursor: pointer;\n width: max-content;\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const StyledMenu = styled(Menu)`\n border: none !important;\n background: transparent;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n\n border: none !important;\n background: transparent;\n .ant-menu-item {\n height: auto;\n width: auto;\n margin: 0.13rem 0.75rem !important;\n padding: 0.5rem !important;\n border-radius: var(--border-radius-025, 0.125rem);\n &.ant-menu-item-selected {\n background: var(--color-bg-tertiary, #e7e7e7);\n color: var(--color-text-primary, #131412);\n font-weight: var(--text-weight-medium, 500);\n }\n }\n .ant-menu-item-group {\n margin-top: 0.5rem;\n }\n .ant-menu-item-group-title {\n padding: 0.75rem 0 0.5rem 1.25rem;\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n }\n .ant-menu-item,\n .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n &:hover {\n a {\n color: var(--color-text-primary, #131412);\n }\n }\n svg {\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n\n .ant-menu-submenu-title {\n height: auto;\n width: auto;\n padding: 0.75rem 0 0.5rem 0.5rem !important;\n margin: 0.13rem 0.75rem !important;\n border-radius: var(--border-radius-025, 0.125rem);\n }\n\n .ant-menu-submenu-selected > .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412);\n }\n\n @media (max-width: 991px) {\n .ant-menu-submenu .ant-menu-item {\n margin-left: 1.5rem !important;\n }\n }\n`;\n","import { useState, useEffect } from 'react';\n\nexport const useFetch = <T>(\n fetchData: () => Promise<T>,\n dependencies: any[] = [],\n condition: boolean = true\n) => {\n const [data, setData] = useState<T | null>(null);\n const [listItems, setListItems] = useState<Array<any> | null>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const [error, setError] = useState<string | null>(null);\n\n const fetchDataFromAPI = async () => {\n if (condition) {\n try {\n setLoading(true);\n setData(null);\n const response: any = await fetchData();\n setData(response);\n if (response?.data?.items) {\n setListItems(response.data.items);\n }\n } catch (err) {\n setError('Failed to fetch data');\n } finally {\n setLoading(false);\n }\n }\n };\n\n useEffect(() => {\n fetchDataFromAPI();\n }, [...dependencies]);\n\n return {\n response: data,\n loading,\n error,\n fetchData: fetchDataFromAPI,\n listItems: listItems,\n };\n};\n","import { create } from 'zustand';\n\ninterface UserData {\n type: string;\n id: number;\n userName: string;\n fullName: string;\n affiliateUserId: number;\n token: string;\n expired: string; // ISO date string\n permissions: Record<string, number>;\n sensitiveDataExpiration?: string;\n}\ninterface UserStore {\n user: UserData | null;\n prefersDark: boolean;\n storedThemeMode: boolean | null;\n setUser: (userData: UserData) => void;\n logout: () => void;\n setThemeMode: (prefersDark: boolean | null) => void;\n isSentsitiveInfoVisible: () => boolean;\n isTokenActive: () => boolean;\n hasPermission: (permission: number) => boolean;\n isManager: () => boolean;\n}\n\nconst useUserStore = create<UserStore>((set, get) => ({\n user: localStorage.getItem('userData')\n ? JSON.parse(localStorage.getItem('userData') as string)\n : null,\n\n prefersDark: false,\n storedThemeMode: null,\n setUser: (userData: any) => {\n localStorage.setItem('useToken', userData.token);\n localStorage.setItem('userData', JSON.stringify(userData));\n set({ user: userData });\n },\n\n setThemeMode: (newThemeMode: boolean | null) => {\n // when newThemeMode = null -> get from user preferences\n // when newThemeMode = true -> dark\n // when newThemeMode = false -> light\n const prefersDark =\n newThemeMode === null\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\n : !!newThemeMode;\n\n set({\n prefersDark: prefersDark,\n storedThemeMode: newThemeMode,\n });\n\n document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');\n localStorage.setItem('themeMode', JSON.stringify(newThemeMode));\n },\n logout: () => {\n localStorage.removeItem('userData');\n localStorage.removeItem('useToken');\n set({ user: null });\n },\n isSentsitiveInfoVisible: () => {\n const user = get().user;\n if (!user?.sensitiveDataExpiration) return false;\n return new Date() < new Date(user.sensitiveDataExpiration);\n },\n isTokenActive: () => {\n const user = get().user;\n if (!user?.expired) return false;\n return new Date() < new Date(user.expired);\n },\n isManager: () => {\n const user = get().user;\n\n if (user?.type === 'Manager') {\n return true;\n } else {\n return false;\n }\n },\n\n hasPermission: (permission: number) => {\n const user = get().user;\n if (!user?.permissions) return false;\n return !!user.permissions[permission];\n },\n}));\n\nexport default useUserStore;\n","import * as React from \"react\";\nconst SvgCheckmark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.4715 5.13812L12.5286 4.19531L7.00005 9.72391L4.13812 6.86198L3.19531 7.80479L7.00005 11.6095L13.4715 5.13812Z\", fill: \"currentColor\" }));\nexport default SvgCheckmark;\n","import { Menu } from 'antd';\nimport styled from 'styled-components';\nimport CheckMark from '../../../assets/icons/checkmark.svg?react';\n\nexport const StyledCheckMark = styled(CheckMark)`\n display: flex;\n justify-content: center;\n color: var(--color-text-primary, #131412) !important;\n`;\nexport const StyledProfileMenuChildren = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 256px;\n`;\n\nexport const StyledProfileLabel = styled.span`\n color: var(--color-text-primary, #131412);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const StyledMenu = styled(Menu)`\n display: flex;\n padding: var(--spacing-050, 4px) 0;\n flex-direction: column;\n gap: var(--spacing-025, 2px);\n align-self: stretch;\n background: var(--color-bg-quaternary, #fff);\n box-shadow:\n 0 4px 8px 0 rgba(20, 20, 20, 0.02),\n 0 4px 16px 0 rgba(20, 20, 20, 0.04) !important;\n border: none !important;\n border: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n\n .ant-menu-item-selected {\n background-color: transparent !important;\n }\n .ant-menu-item,\n .ant-menu-submenu-title {\n color: var(--color-text-primary, #131412) !important;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px) !important;\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n }\n .ant-menu-item-divider {\n background: var(--color-bg-secondary, #f5f5f5) !important;\n height: 3px;\n }\n\n .ant-menu-submenu-popup > .ant-menu {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #fff);\n }\n\n .ant-menu-submenu-popup .ant-menu-item {\n background-color: transparent !important;\n display: flex;\n align-items: center;\n }\n\n .ant-menu-submenu-popup .ant-menu-item:hover {\n background-color: transparent !important;\n }\n`;\nexport const ProfileMenuWrapper = styled.div`\n width: 256px;\n position: absolute !important;\n z-index: 10000;\n`;\n","import { useNavigate } from 'react-router';\nimport { useFetch } from '../../../hooks/useFetch';\nimport useUserStore from '../../../stores/useUserStore';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\nimport {\n ProfileMenuWrapper,\n StyledCheckMark,\n StyledMenu,\n StyledProfileLabel,\n StyledProfileMenuChildren,\n} from './style';\nimport { useTranslation } from 'react-i18next';\n\nconst ProfileMenu = ({ closeProfileDropdown }: any) => {\n const navigate = useNavigate();\n const { getCustomers, postSelectedCustomer } = usePackageServices();\n const { storedThemeMode, logout, setThemeMode, user } = useUserStore();\n const { i18n } = useTranslation();\n\n function onLogoutClick() {\n logout();\n navigate('/authorization/login');\n }\n\n function handleLanguageSelect(lang: string) {\n i18n.changeLanguage(lang);\n window.location.reload();\n }\n\n const renderLabel = (label: any, isSelected?: boolean) => {\n return (\n <StyledProfileMenuChildren>\n <StyledProfileLabel>{label}</StyledProfileLabel>\n {isSelected && (\n <span>\n <StyledCheckMark />\n </span>\n )}\n </StyledProfileMenuChildren>\n );\n };\n\n const { response } = useFetch<any>(getCustomers ?? (() => Promise.resolve({ data: [] })), []);\n\n async function handleSetCustomer(id: any) {\n if (!postSelectedCustomer) return;\n const resp = await postSelectedCustomer(id);\n const userData = resp.data.value as any;\n\n localStorage.setItem('useToken', userData.token);\n localStorage.setItem('userData', JSON.stringify(userData));\n }\n\n const navigateToProfile = () => {\n if (user?.type === 'Manager') {\n navigate(`/affiliate-manager/profile/${user.id}`);\n } else {\n navigate(`/affiliate-users/profile/${user?.affiliateUserId}`);\n }\n };\n\n return (\n <ProfileMenuWrapper>\n <StyledMenu\n mode={window.innerWidth < 780 ? 'inline' : 'vertical'}\n key={'10'}\n getPopupContainer={trigger => trigger.parentElement || document.body}\n onClick={() => closeProfileDropdown(false)}\n >\n <StyledMenu.Item key={'10-1'} onClick={navigateToProfile}>\n {'Profile'}\n </StyledMenu.Item>\n <StyledMenu.Item key={'10-2'}> {'Notifications'}</StyledMenu.Item>\n <StyledMenu.Item key={'10-3'}> {'SecurityAccess'}</StyledMenu.Item>\n\n <StyledMenu.Divider />\n\n <StyledMenu.SubMenu key={'20'} title={'Language'}>\n <StyledMenu.Item key={'20-1'} onClick={() => handleLanguageSelect('en')}>\n {renderLabel('English', i18n.language === 'en')}\n </StyledMenu.Item>\n <StyledMenu.Item key={'20-2'} onClick={() => handleLanguageSelect('ka')}>\n {renderLabel('Georgian', i18n.language === 'ka')}\n </StyledMenu.Item>\n </StyledMenu.SubMenu>\n\n <StyledMenu.SubMenu key={'30'} title={'ColorTheme'}>\n <StyledMenu.Item key={'30-1'} onClick={() => setThemeMode(false)}>\n {renderLabel('Light', storedThemeMode === false)}\n </StyledMenu.Item>\n <StyledMenu.Item key={'30-2'} onClick={() => setThemeMode(true)}>\n {renderLabel('Dark', storedThemeMode === true)}\n </StyledMenu.Item>\n <StyledMenu.Item key={'30-3'} onClick={() => setThemeMode(null)}>\n {renderLabel(\n `${'DefinedBySystem'} (${window.matchMedia('(prefers-color-scheme: dark)').matches ? 'Dark' : 'Light'})`,\n storedThemeMode === null\n )}\n </StyledMenu.Item>\n </StyledMenu.SubMenu>\n\n <StyledMenu.Divider />\n\n <StyledMenu.SubMenu key={'40'} title={'ConnectedAccounts'}>\n {(response?.data || []).map((cust: any) => (\n <StyledMenu.Item key={cust.id} onClick={() => handleSetCustomer(cust.id)}>\n {renderLabel(cust.name)}\n </StyledMenu.Item>\n ))}\n </StyledMenu.SubMenu>\n\n <StyledMenu.Divider />\n\n <StyledMenu.Item key={'100'} onClick={onLogoutClick}>\n {'LogOut'}\n </StyledMenu.Item>\n </StyledMenu>\n </ProfileMenuWrapper>\n );\n};\n\nexport default ProfileMenu;\n","import {\n StyledDownArrow,\n StyledHeaderLink,\n StyledHeaderLogo,\n StyledMenu,\n StyledSidebar,\n} from './style';\nimport { useLocation } from 'react-router';\n\nimport { useEffect, useRef, useState } from 'react';\nimport ProfileMenu from '../profile-menu';\nimport { MenuItemProps } from 'antd';\n\ntype SidebarProps = {\n items?: MenuItemProps;\n topLogoPrimaryUrl?: string;\n shortName?: string;\n};\nconst Sidebar = ({ items, topLogoPrimaryUrl, shortName }: SidebarProps) => {\n const location = useLocation();\n\n const [showMenu, setShowMenu] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const toggleMenu = () => setShowMenu(prev => !prev);\n\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setShowMenu(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n return (\n <StyledSidebar className=\"sidebar-wrapper\">\n <StyledHeaderLink ref={menuRef}>\n <StyledHeaderLogo onClick={toggleMenu}>\n <img src={topLogoPrimaryUrl} alt=\"logo\" />\n <span>{shortName}</span>\n\n <StyledDownArrow />\n </StyledHeaderLogo>\n <div>{showMenu && <ProfileMenu closeProfileDropdown={setShowMenu} />}</div>\n </StyledHeaderLink>\n\n <StyledMenu mode=\"inline\" selectedKeys={[location.pathname]} items={items as any} />\n </StyledSidebar>\n );\n};\n\nexport default Sidebar;\n","import styled from 'styled-components';\n\nexport const StyledLayout = styled.div`\n min-height: 100vh;\n min-height: 100dvh;\n background: var(--color-bg-primary, #fff);\n display: flex;\n\n .sidebar-wrapper {\n min-width: 15rem;\n flex: 0 0 250px;\n max-width: 250px;\n min-width: 250px;\n width: 250px;\n flex-shrink: 0;\n }\n @media (max-width: 991px) {\n .sidebar-wrapper {\n display: none;\n }\n }\n`;\n\nexport const StyledContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n max-height: 100vh;\n`;\n\nexport const StyledContent = styled.div`\n background: var(--color-bg-primary, #fff);\n`;\n","import { ReactNode } from 'react';\nimport Sidebar from './sidebar';\nimport { StyledContent, StyledContentWrapper, StyledLayout } from './style';\n\ninterface AdminPageProps {\n children: ReactNode;\n}\n\nconst AdminPage = ({ children }: AdminPageProps) => {\n return (\n <StyledLayout>\n <Sidebar />\n\n <StyledContentWrapper>\n <StyledContent>{children}</StyledContent>\n </StyledContentWrapper>\n </StyledLayout>\n );\n};\n\nexport default AdminPage;\n","import styled from 'styled-components';\n\ninterface BannerProps {\n backgroundcolor: any;\n}\n\nexport const Wrapper = styled.div`\n display: grid;\n grid-template-columns: 33.625rem 1fr;\n min-height: 100vh;\n overflow: hidden;\n\n .card-logo {\n width: var(--size-400, 32px);\n height: var(--size-400, 32px);\n flex-shrink: 0;\n object-fit: contain;\n }\n\n .terms-logo {\n width: var(--size-600, 48px);\n height: var(--size-600, 48px);\n flex-shrink: 0;\n object-fit: contain;\n }\n`;\n\nexport const LogoShortName = styled.span`\n font-size: 15px;\n`;\n\nexport const BackBtn = styled.button`\n height: var(--size-400, 2rem);\n width: var(--size-400, 2rem);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: var(--border-radius-full, 100%);\n border: none;\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n cursor: pointer;\n path {\n fill: var(--color-icon-primary, #131412);\n }\n`;\n\nexport const PageContainer = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 1.5rem;\n background: var(--color-bg-primary, #141414);\n header {\n padding: 1.25rem 0;\n height: 4.5rem;\n }\n @media (max-width: 1024px) {\n width: 100vw;\n height: 100%;\n header {\n height: 0;\n }\n }\n\n footer {\n margin-top: auto;\n padding: 1.5rem 0;\n height: 5rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n path[fill='#131412'] {\n fill: var(--color-text-primary);\n }\n nav {\n display: flex;\n gap: 1rem;\n a {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n\n @media (max-width: 768px) {\n margin-bottom: 2rem;\n }\n }\n`;\n\nexport const PageContent = styled.div``;\n\nexport const PageTitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n padding: 3rem 0 2rem;\n span {\n color: var(--color-text-primary, #fff);\n font-size: var(--typo-heading-size-medium, 1.875rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-heading-lineHeight-medium, 1.875rem);\n letter-spacing: var(--typo-heading-spacing-medium, -0.0375rem);\n }\n p {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-size: var(--typo-body-size-medium, 1.125rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 1.25rem);\n letter-spacing: var(--typo-body-spacing-medium, 0.00938rem);\n padding-right: 6rem;\n }\n\n @media (max-width: 768px) {\n padding: 1.7rem 0 1rem;\n }\n`;\n\nexport const SideBannerWrapper = styled.div<BannerProps>`\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props: any) => props.backgroundcolor};\n img,\n video {\n width: 50%;\n height: 50%;\n object-fit: contain;\n }\n\n @media (max-width: 1024px) {\n display: none;\n }\n`;\n\nexport const PageDesc = styled.p`\n /* body/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-medium, 18px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\n`;\n\nexport const PageTitle = styled.span`\n /* heading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-heading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-heading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-heading-spacing-medium, -0.5px);\n`;\n\nexport const AuthBoxComponentWrapper = styled.div`\n display: none;\n margin-bottom: 3px;\n\n @media (max-width: 768px) {\n display: block;\n }\n`;\n\nexport const StyledFooter = styled.footer`\n display: flex;\n gap: 10px;\n\n @media (max-width: 480px) {\n display: flex;\n flex-direction: column;\n align-items: start !important;\n }\n`;\n\nexport const StyledAuthSpan = styled.span``;\n","import * as React from \"react\";\nconst SvgArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 10, viewBox: \"0 0 12 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.60945 1.66669L2.94279 4.33335H11.3333V5.66669H2.94279L5.60945 8.33335L4.66665 9.27616L0.390503 5.00002L4.66665 0.723877L5.60945 1.66669Z\", fill: \"currentColor\" }));\nexport default SvgArrowLeft;\n","import styled from 'styled-components';\nimport ArrowLeft from '../assets/icons/arrow-left.svg?react';\n\nexport const ArrowLeftIcon = styled(ArrowLeft)`\n cursor: pointer;\n\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n`;\n","import styled from 'styled-components';\n\nexport const BoxComponentWrapper = styled.div`\n width: 100%;\n height: 128px;\n max-height: max-content;\n border-radius: 2px;\n`;\n\nexport const BoxComponentBody = styled.div`\n display: flex;\n height: 100%;\n padding: 20px;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n background-color: var(--color-bg-secondary, #232323) !important;\n cursor: pointer;\n &.isActive {\n background-color: var(--color-bg-secondary, #232323);\n opacity: 1;\n transition: 0.3s all;\n }\n &.isNotActive {\n background-color: var(--color-bg-secondary, #232323);\n opacity: 0.2;\n transition: 0.3s all;\n }\n &.isActiveLightColor {\n /* var(--color-bg-secondary, #232323); */\n border-left: 4px solid ${props => props.color};\n }\n`;\n\nexport const BoxComponentBottomText = styled.span`\n color: var(--color-text-primary, #fff);\n\n /* subheading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const BoxComponentTopText = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const BoxComponentWithdrawalInfo = styled.span`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n /* caption/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n`;\n\nexport const CommissionStatusText = styled.span`\n color: ${props => props.color};\n font-size: 12px;\n`;\n","import { tGeneral } from '../../utils/exportTranslation';\nimport {\n BoxComponentBody,\n BoxComponentBottomText,\n BoxComponentTopText,\n BoxComponentWrapper,\n CommissionStatusText,\n} from './style';\n\nconst BoxComponent = ({\n boxBottomText,\n boxTopText,\n onClick,\n className,\n color,\n commissionStatus,\n}: any) => {\n return (\n <>\n <BoxComponentWrapper>\n <BoxComponentBody color={color} onClick={onClick} className={className}>\n <BoxComponentTopText>{boxTopText}</BoxComponentTopText>\n <BoxComponentBottomText>{boxBottomText}</BoxComponentBottomText>\n {commissionStatus && boxTopText === tGeneral('Commission') && (\n <CommissionStatusText color={color}>\n {commissionStatus}\n </CommissionStatusText>\n )}\n </BoxComponentBody>\n </BoxComponentWrapper>\n </>\n );\n};\n\nexport default BoxComponent;\n","import { ReactNode } from 'react';\nimport {\n AuthBoxComponentWrapper,\n BackBtn,\n LogoShortName,\n PageContainer,\n PageContent,\n PageDesc,\n PageTitle,\n PageTitleContainer,\n SideBannerWrapper,\n StyledAuthSpan,\n StyledFooter,\n Wrapper,\n} from './style';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { ArrowLeftIcon } from '../../styled-components/arrowLeft';\nimport { tAuthentication } from '../../utils/exportTranslation';\nimport BoxComponent from '../../components/box-component';\ninterface AuthorizationLayoutProps {\n pageTitle: string;\n pageDesc: string;\n children: ReactNode;\n logoPrimaryUrl: string;\n shortName: string;\n colorPrimary: string;\n}\n\nconst AuthorizationLayout = ({\n pageTitle,\n pageDesc,\n logoPrimaryUrl,\n shortName,\n colorPrimary,\n children,\n}: AuthorizationLayoutProps) => {\n const [searchParams] = useSearchParams();\n const backPath = searchParams.get('backPath');\n const navigate = useNavigate();\n function handleBackBtnClick(path: string) {\n navigate(path);\n }\n\n return (\n <Wrapper>\n <PageContainer>\n <header>\n {backPath && (\n <BackBtn onClick={() => handleBackBtnClick(backPath)}>\n <ArrowLeftIcon />\n </BackBtn>\n )}\n </header>\n <PageContent>\n <PageTitleContainer>\n <PageTitle>{pageTitle}</PageTitle>\n <PageDesc>{pageDesc}</PageDesc>\n </PageTitleContainer>\n </PageContent>\n <AuthBoxComponentWrapper>\n <BoxComponent\n boxTopText={<img className=\"card-logo\" src={logoPrimaryUrl} alt=\"logo\" />}\n boxBottomText={<LogoShortName>{shortName}</LogoShortName>}\n />\n </AuthBoxComponentWrapper>\n {children}\n <StyledFooter>\n <img\n className=\"terms-logo\"\n width={60}\n height={20}\n src={logoPrimaryUrl}\n alt=\"logo\"\n />\n <nav>\n <a href=\"\">\n <StyledAuthSpan>{tAuthentication('TermsOfUsage')}</StyledAuthSpan>\n </a>\n <a href=\"\">\n <StyledAuthSpan>{tAuthentication('PrivacyPolicy')}</StyledAuthSpan>\n </a>\n </nav>\n </StyledFooter>\n </PageContainer>\n\n <SideBannerWrapper backgroundcolor={colorPrimary}>\n <img src={logoPrimaryUrl} alt=\"logo\" />\n </SideBannerWrapper>\n </Wrapper>\n );\n};\n\nexport default AuthorizationLayout;\n","export enum TableViewOptions {\n TABLE,\n LIST,\n BOARD,\n}\n\nexport enum SortDirections {\n ASC,\n DESC,\n}\n\nexport enum FilterSelectTypes {\n NONE,\n COLUMN,\n TYPE,\n VALUE,\n}\n\nexport interface SortItem {\n title: string;\n direction: SortDirections;\n}\n\nexport interface FilterItem extends Column {\n selectType: FilterSelectTypes;\n filterValue?: number;\n filterLabel?: string;\n}\n\nexport enum ColumnFilterType {\n 'INPUT',\n 'SELECT',\n 'TwoComponentSelect',\n 'DATEPICKER',\n 'MULTISELECT',\n}\n\nexport interface ColumnFilterOption {\n id: number;\n name: string;\n}\n\nexport interface SelectFilterOption {\n value: number;\n label: string;\n}\nexport interface Column {\n title: string;\n dataIndex: string;\n width?: number;\n filterDropdown?: boolean;\n filters?: {\n type: ColumnFilterType;\n options: ColumnFilterOption[];\n };\n render?: (value: any, value2: any) => any;\n}\n\nexport interface GridViewPageProps {\n columns: Column[];\n getData: any;\n update?: boolean;\n hasDeleteBtn?: boolean;\n contentAfterPageHeader?: any;\n GridPageTopLeftComponent?: React.FC;\n hasEditBtn?: boolean;\n hasCreateBtn?: boolean;\n onRowClick?: any;\n checkedValue?: any;\n rowKey?: any;\n pagination?: any;\n CustomFilters?: any;\n initialFilterValues?: any;\n tableAdditionalFields?: (\n openModal: boolean,\n setOpenModal: (open: boolean) => void\n ) => React.ReactNode;\n setDisplayAddRuleModal: any;\n createIsModal: any;\n editButton: any;\n noPagination: boolean;\n noPageHeader?: boolean;\n noDataProps?: { title: any; description?: any; button?: any };\n exportButton?: any;\n hasSelect?: boolean;\n selectProps?: any;\n // New props for custom table component\n TableComponent?: React.ComponentType<any>;\n tableProps?: Record<string, unknown>;\n noNeedSidebarResponsiveButton?: boolean;\n loadedData: any;\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import { createStore } from 'zustand/vanilla';\nimport { SortDirections, TableViewOptions } from '../types';\n\nexport interface GridViewState {\n filters: any;\n setFilters: (filters: any) => void;\n\n isHydrated: boolean;\n columns: any[];\n setColumns: (items: any[]) => void;\n\n sortItems: any[];\n setSortItems: (items: any[]) => void;\n hydrateFromStorage: (storageKey: string, defaultView?: number) => void;\n\n filterItems: any[];\n setFilterItems: (items: any[], updateFilters?: boolean) => void;\n\n hideItems: Record<string, boolean>;\n setHideItems: (items: Record<string, boolean>) => void;\n\n groupByArr: any[];\n setGroupByArr: (arr: string[]) => void;\n\n activeTableView: number;\n setActiveTableView: (view: number) => void;\n\n selectedConfig: { id: number; name: string } | null;\n setSelectedConfig: (config: { id: number; name: string } | null) => void;\n\n hasCreateBtn: boolean;\n setHasCreateBtn: (view: boolean) => void;\n\n checkedValue: any;\n setCheckedValue: (view: any) => void;\n\n hasSelect: any;\n setHasSelect: (view: any) => void;\n\n configsVersion: number;\n bumpConfigsVersion: () => void;\n\n resetStore: () => void;\n}\nconst defaultFilters = {\n Page: 1,\n PageSize: 25,\n};\n\nconst initialState = {\n filters: defaultFilters,\n filterItems: [],\n sortItems: [],\n hideItems: {},\n groupByArr: [],\n activeTableView: TableViewOptions.TABLE,\n};\n\nexport const createGridViewStore = () =>\n createStore<GridViewState>((set, get) => ({\n columns: [],\n ...initialState,\n isHydrated: false,\n hasDeleteBtn: false,\n\n selectedConfig: null,\n setSelectedConfig: config => set({ selectedConfig: config }),\n\n configsVersion: 0,\n bumpConfigsVersion: () => set(state => ({ configsVersion: state.configsVersion + 1 })),\n\n hydrateFromStorage: (storageKey, defaultView = TableViewOptions.TABLE) => {\n if (get().isHydrated) return;\n\n const saved = sessionStorage.getItem(storageKey);\n\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n\n set({\n filters: parsed.filters ?? defaultFilters,\n filterItems: parsed.filterItems ?? [],\n sortItems: parsed.sortItems ?? [],\n activeTableView: parsed.activeTableView ?? defaultView,\n hideItems: parsed.hideItems ?? {},\n groupByArr: parsed.groupByArr ?? [],\n selectedConfig: parsed.selectedConfig ?? null,\n isHydrated: true,\n });\n return;\n } catch {\n console.warn('Failed to hydrate grid view state');\n }\n }\n\n set({ activeTableView: defaultView, isHydrated: true });\n },\n\n hasCreateBtn: false,\n setHasCreateBtn: (newValue?: boolean) => set({ hasCreateBtn: !!newValue }),\n\n checkedValue: true,\n setCheckedValue: (newValue?: any) => set({ checkedValue: newValue }),\n hasSelect: false,\n setHasSelect: (newValue?: boolean) => set({ hasSelect: !!newValue }),\n\n setFilters: filters => {\n if (!get().isHydrated) return;\n set({ filters });\n },\n setSortItems: items => {\n if (!get().isHydrated) return;\n\n set({ sortItems: items });\n\n set(state => {\n const { Sort, Asc, ...rest } = state.filters;\n const sortFilters =\n items.length > 0\n ? {\n Sort: items[0].param,\n Asc: items[0].direction === SortDirections.ASC,\n }\n : {};\n\n return {\n filters: {\n ...rest,\n ...sortFilters,\n },\n };\n });\n },\n setFilterItems: (items, updateFilters = false) => {\n if (!get().isHydrated) return;\n\n set({ filterItems: items });\n if (!updateFilters) return;\n\n const { filters, sortItems } = get();\n const { PageSize, Sort, Asc, QuickSearch } = filters;\n\n const newFilters: any = {};\n items.forEach(item => {\n newFilters[item.dataIndex] = item.filterValue;\n if (item.isCountryGroup !== undefined) {\n newFilters.isCountryGroup = item.isCountryGroup;\n }\n });\n\n set({\n filters: {\n Page: 1,\n PageSize,\n QuickSearch: QuickSearch || '',\n ...(sortItems.length > 0 ? { Sort, Asc } : {}),\n ...newFilters,\n },\n });\n },\n setHideItems: items => set({ hideItems: items }),\n setGroupByArr: arr => set({ groupByArr: arr }),\n setActiveTableView: view => set({ activeTableView: view }),\n setColumns: items => set({ columns: items }),\n\n resetStore: () => {\n set({\n ...initialState,\n isHydrated: true,\n selectedConfig: null,\n });\n },\n }));\n","import React, { createContext, useContext, useRef } from 'react';\nimport { StoreApi, useStore } from 'zustand';\nimport { createGridViewStore, type GridViewState } from './store/createGridViewStore';\n\nconst GridViewStoreContext = createContext<StoreApi<GridViewState> | null>(null);\n\nexport const GridViewStoreProvider = ({ children }: { children: React.ReactNode }) => {\n const storeRef = useRef<StoreApi<GridViewState>>();\n if (!storeRef.current) {\n storeRef.current = createGridViewStore();\n }\n\n return (\n <GridViewStoreContext.Provider value={storeRef.current}>\n {children}\n </GridViewStoreContext.Provider>\n );\n};\n\nexport const useGridViewStore = <T,>(selector: (state: GridViewState) => T): T => {\n const store = useContext(GridViewStoreContext);\n if (!store) throw new Error('GridViewStoreProvider is missing');\n return useStore(store, selector);\n};\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { useGridViewStore } from '../GridViewStoreProvider';\n\nconst useGridViewSessionStorage = () => {\n const hydrateFromStorage = useGridViewStore(s => s.hydrateFromStorage);\n const isHydrated = useGridViewStore(s => s.isHydrated);\n const filters = useGridViewStore(s => s.filters);\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n\n const location = useLocation();\n\n useEffect(() => {\n hydrateFromStorage(`grid-filters:${location.pathname}`);\n\n return sessionStorage.clear();\n }, []);\n\n useEffect(() => {\n if (!isHydrated) return;\n\n sessionStorage.setItem(\n `grid-filters:${location.pathname}`,\n JSON.stringify({\n filters,\n filterItems,\n sortItems,\n activeTableView,\n hideItems,\n groupByArr,\n selectedConfig,\n })\n );\n }, [\n filters,\n filterItems,\n sortItems,\n activeTableView,\n hideItems,\n groupByArr,\n selectedConfig,\n isHydrated,\n ]);\n};\n\nexport default useGridViewSessionStorage;\n","import { useEffect, useState } from 'react';\n\nexport function useElementHeight(ref: React.RefObject<HTMLElement>) {\n const [height, setHeight] = useState(0);\n\n useEffect(() => {\n if (!ref.current) return;\n\n const observer = new ResizeObserver(([entry]) => {\n setHeight(entry.contentRect.height);\n });\n\n observer.observe(ref.current);\n setHeight(ref.current.clientHeight);\n return () => observer.disconnect();\n }, [ref]);\n\n return height;\n}\n","import { DatePicker, Table } from 'antd';\nimport styled from 'styled-components';\n\ninterface GridViewPageTableWrapperProps {\n height?: any;\n}\n\nconst { RangePicker } = DatePicker;\n\nexport const PageWrapper = styled.div`\n background: var(--color-bg-primary, #fff);\n`;\n\nexport const PageHeaderWrapper = styled.div`\n height: var(--size-800, 4rem);\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-right: 1.5rem;\n\n button {\n padding: 0.44rem 0.75rem;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n border: none;\n outline: none;\n cursor: pointer;\n transition: 0.1s;\n border-radius: var(--border-radius-050, 0.25rem);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n\n &.create-btn {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n color: var(--color-text-brand-special, #06c193) !important;\n }\n }\n\n .icon {\n width: 2rem;\n height: 2rem;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n path {\n fill: var(--color-text-primary, #131412);\n }\n\n &.sidebar {\n display: none;\n }\n }\n\n .page-starter {\n display: flex;\n gap: 0.12rem;\n\n button {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n\n .icon {\n border-radius: 50%;\n }\n }\n\n .page-actions {\n display: flex;\n gap: 0.12rem;\n\n button {\n color: var(--color-text-primary, #131412);\n\n &:hover {\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n }\n }\n\n input {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #232323);\n border: 1px solid var(--color-bg-secondary, #232323);\n padding-left: 0.5rem;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n\n &:focus {\n border-color: var(--color-border-brand-special, #02e0ae);\n outline: none;\n }\n }\n }\n\n .sidebar-wrapper {\n display: none;\n }\n\n @media (max-width: 991px) {\n padding: 1rem;\n gap: 0.5rem;\n .page-starter {\n display: none;\n }\n\n .page-actions {\n input {\n width: 100px;\n }\n }\n\n .icon.sidebar {\n display: flex;\n border-radius: 50%;\n padding: 0.5rem;\n }\n\n .sidebar-wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n max-width: 100%;\n height: 100vh;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n }\n`;\n\nexport const PageTopContentWrapper = styled.div``;\n\nexport const StyledTable = styled(Table)`\n .ant-table-thead {\n tr {\n th {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n height: var(--size-450, 2.25rem);\n min-width: var(--size-1000, 5rem);\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n background: var(--color-bg-primary, #141414);\n text-transform: capitalize;\n &:first-child {\n min-width: 1.5rem;\n width: 1.5rem;\n padding: 0;\n border-start-start-radius: 0px !important;\n }\n &:last-child,\n &:first-child {\n border-start-start-radius: 0px !important;\n }\n &:before {\n display: none;\n }\n }\n }\n }\n .ant-table-tbody {\n tr {\n td {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-primary, #131412);\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n min-width: 5rem;\n height: 3rem;\n &:first-child {\n padding: 0;\n }\n }\n }\n }\n`;\n\nexport const DropdownContent = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n /* background: var(--color-bg-secondary, #f5f5f5);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04); */\n background: var(--color-bg-quaternary, #fff);\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\n min-width: 18.5rem;\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n input {\n width: 100%;\n padding: 0.75rem;\n border: none;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n background-color: transparent;\n &::placeholder {\n color: var(--color-text-quaternary, rgba(19, 20, 18, 0.25));\n }\n &:focus {\n outline: none;\n }\n &.filter-item-search {\n &:focus,\n &:active {\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n background: var(--color-bg-quaternary, #2f2f2f);\n }\n }\n }\n\n div {\n padding: 0.25rem 0;\n border-top: 1px solid var(--color-bg-secondary, #f5f5f5);\n display: flex;\n flex-direction: column;\n gap: 0.12rem;\n button {\n padding: 0.5rem 0.75rem;\n display: flex;\n align-items: center;\n gap: 0.75rem;\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n transition: 0.1s;\n span {\n margin-left: auto;\n }\n &:hover {\n background-color: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n }\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n }\n\n @media (max-width: 480px) {\n min-width: auto;\n &.filter-item-content {\n width: calc(100vw - 32px);\n }\n }\n`;\n\nexport const PageFilterWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 0.12rem;\n padding: 0.5rem 1.5rem;\n border-top: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n\n @media (max-width: 480px) {\n .debug-dropdwon {\n inset-inline-start: 16px !important;\n }\n }\n`;\n\nexport const FilterItemWrapper = styled.div`\n display: flex;\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n border-radius: var(--border-radius-full, 62.4375rem);\n padding: 0 0.25rem;\n align-items: center;\n &.sort {\n margin-right: 1rem;\n }\n &.add-filter {\n margin-right: 1rem;\n span {\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n svg {\n path {\n fill: var(--color-icon-tertiary);\n }\n }\n }\n }\n span {\n padding: 0.5rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-secondary);\n }\n }\n &:not(:first-child) {\n border-left: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n }\n }\n`;\n\nexport const ResetConditionsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex: 1;\n flex-shrink: 0;\n button {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n padding: 0.5rem;\n svg {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n`;\n\nexport const StyledRangePicker = styled(RangePicker)`\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n border: none !important;\n`;\n\nexport const OptionName = styled.span`\n color: var(--color-text-primary, #fff);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const OptionWrapper = styled.div`\n display: flex;\n min-height: var(--size-400, 32px);\n padding: var(--spacing-050, 4px) var(--spacing-150, 12px) !important;\n gap: var(--spacing-150, 12px);\n align-self: stretch;\n`;\n\nexport const TwoComponentSelectTitle = styled.div`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n background: var(--color-bg-secondary, #232323);\n display: flex;\n padding-left: 30px !important;\n gap: 8px;\n`;\n\nexport const TwoComponentSelectContent = styled.div`\n max-height: 300px;\n overflow: hidden;\n`;\n\nexport const GridViewPageTableWrapper = styled.div<GridViewPageTableWrapperProps>`\n height: ${(props: any) => props.height || '100%'};\n`;\n","import * as React from \"react\";\nconst SvgFilter = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.33203 3.33333H14.6654V4.66667H1.33203V3.33333Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.33203 7.33333H12.6654V8.66667H3.33203V7.33333Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.33203 11.3333H10.6654V12.6667H5.33203V11.3333Z\", fill: \"#131412\" }));\nexport default SvgFilter;\n","import * as React from \"react\";\nconst SvgSettings = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3.9987 2V4H1.33203V5.33333H3.9987V7.33333H7.9987V5.33333H14.6654V4H7.9987V2H3.9987ZM6.66536 3.33333H5.33203V6H6.66536V3.33333Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.9987 8.66667V10.6667H1.33203V12H7.9987V14H11.9987V12H14.6654V10.6667H11.9987V8.66667H7.9987ZM9.33203 10H10.6654V12.6667H9.33203V10Z\", fill: \"currentColor\" }));\nexport default SvgSettings;\n","import * as React from \"react\";\nconst SvgColor = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 12, height: 12, viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 12H0V8H4V12Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 12H8V8H12V12Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 4H0V0H4V4Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 4H8V0H12V4Z\", fill: \"white\" }));\nexport default SvgColor;\n","import { useEffect, useMemo } from 'react';\nimport { debounce } from 'lodash';\n\nconst useDebounce = (fn: any, delay: number, deps: any[] = []) => {\n const debouncedFn = useMemo(() => debounce(fn, delay), deps);\n\n useEffect(() => {\n return () => {\n debouncedFn.cancel();\n };\n }, [debouncedFn]);\n\n return debouncedFn;\n};\n\nexport default useDebounce;\n","import * as React from \"react\";\nconst SvgArrowUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.99947 2.38989L3.72266 6.6667L4.66547 7.60951L7.3328 4.94218V13.3334H8.66613V4.94218L11.3335 7.60951L12.2763 6.6667L7.99947 2.38989Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgArrowUp;\n","import * as React from \"react\";\nconst SvgArrowDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66613 2.66675H7.3328V11.0573L4.66547 8.38994L3.72266 9.33275L7.99947 13.6096L12.2763 9.33275L11.3335 8.38994L8.66613 11.0573V2.66675Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgArrowDown;\n","import * as React from \"react\";\nconst SvgSort = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.7337 6.67614L14.6765 5.73333L11.3337 2.39052L7.99089 5.73333L8.93369 6.67614L10.667 4.94281L10.667 13.3333H12.0004L12.0004 4.94281L13.7337 6.67614Z\", fill: \"#131412\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.00984 10.2667L4.66703 13.6095L1.32422 10.2667L2.26703 9.32385L4.00036 11.0572L4.00036 2.66666L5.33369 2.66666L5.33369 11.0572L7.06703 9.32386L8.00984 10.2667Z\", fill: \"#131412\" }));\nexport default SvgSort;\n","import { Dropdown } from 'antd';\nimport { useState } from 'react';\n\nconst DropdownWrapper = ({ children, overlay, placement = 'bottomRight' }: any) => {\n const [open, setOpen] = useState(false);\n\n return (\n <Dropdown\n open={open}\n onOpenChange={setOpen}\n placement={placement}\n popupRender={() => (typeof overlay == 'function' ? overlay(setOpen) : overlay)}\n trigger={['click']}\n >\n <button className=\"icon\">{children}</button>\n </Dropdown>\n );\n};\n\nexport default DropdownWrapper;\n","import { useState } from 'react';\nimport { DropdownContent } from '../style';\nimport { Column, SortDirections } from '../types';\nimport ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\nimport Checkmark from '../../../assets/icons/checkmark.svg?react';\nimport SortLogo from '../../../assets/icons/sort.svg?react';\nimport DropdownWrapper from './DropdownWrapper';\nimport { useGridViewStore } from '../GridViewStoreProvider';\n\nconst SortDropdown = ({ placement, children }: any) => {\n const columns = useGridViewStore(s => s.columns);\n const sortItems = useGridViewStore(s => s.sortItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n\n const selectedSortItem = sortItems[0];\n\n const [searchValue, setSearchValue] = useState('');\n const [sortDirection, setSortDirection] = useState(\n selectedSortItem?.direction === SortDirections.ASC\n ? SortDirections.ASC\n : SortDirections.DESC\n );\n\n const filteredColumns = columns.filter(\n (col: any) =>\n col.title.toLowerCase().includes(searchValue.toLowerCase()) && col.sortable !== false\n );\n\n function onSelect(col: Column, direction: SortDirections) {\n setSortItems([\n {\n title: col.title,\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\n direction: direction,\n },\n ]);\n }\n\n function onRemove() {\n setSortItems([]);\n }\n\n return (\n <DropdownWrapper\n overlay={(_setOpen: any) => (\n <DropdownContent>\n <input\n type=\"text\"\n placeholder={'Search' + '...'}\n value={searchValue}\n onChange={e => setSearchValue(e.target.value)}\n />\n <div>\n {filteredColumns.map((col: any, i: any) => (\n <button\n key={i}\n onClick={() => {\n if (col.title == selectedSortItem?.title) {\n onRemove();\n } else {\n onSelect(col, sortDirection);\n }\n }}\n >\n {col.title}\n {col.title == selectedSortItem?.title && (\n <span>\n <Checkmark />\n </span>\n )}\n </button>\n ))}\n </div>\n <div>\n <button\n onClick={() => {\n setSortDirection(SortDirections.ASC);\n selectedSortItem && onSelect(selectedSortItem, SortDirections.ASC);\n }}\n >\n <ArrodwUpLogo />\n {'Ascending'}\n {sortDirection === SortDirections.ASC && <Checkmark />}\n </button>\n <button\n onClick={() => {\n setSortDirection(SortDirections.DESC);\n selectedSortItem && onSelect(selectedSortItem, SortDirections.DESC);\n }}\n >\n <ArrodwDownLogo />\n {'Descending'}\n\n {sortDirection === SortDirections.DESC && <Checkmark />}\n </button>\n </div>\n </DropdownContent>\n )}\n placement={placement || 'bottomRight'}\n >\n {children || <SortLogo />}\n </DropdownWrapper>\n );\n};\n\nexport default SortDropdown;\n","import { useState } from 'react';\nimport { Dropdown } from 'antd';\nimport { Column, FilterSelectTypes } from '../types';\nimport { DropdownContent } from '../style';\nimport { useGridViewStore } from '../GridViewStoreProvider';\nimport { tActions } from '../../../utils/exportTranslation';\n\nconst FilterDropdown = ({ placement, children, onSelect, CustomFilters }: any) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const [searchValue, setSearchValue] = useState('');\n\n const columns = useGridViewStore(s => s.columns);\n const filterItems = useGridViewStore(s => s.filterItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n\n function onClickHandle(column: Column) {\n if (onSelect) {\n onSelect(column);\n } else {\n setFilterItems([\n ...filterItems,\n {\n ...column,\n selectType: FilterSelectTypes.VALUE,\n },\n ]);\n }\n setDropdownOpen(false);\n }\n\n return (\n <Dropdown\n open={dropdownOpen}\n onOpenChange={setDropdownOpen}\n placement={placement || 'bottomRight'}\n popupRender={() => (\n <DropdownContent>\n <input\n type=\"text\"\n placeholder={tActions('Search') + '...'}\n value={searchValue}\n onChange={e => setSearchValue(e.target.value)}\n />\n <div>\n {columns\n .filter(col => col.filterable !== false)\n .filter(c => !filterItems.some(f => f.title == c.title))\n .filter(col => col.filterable !== false)\n .filter(col => col.title.toLowerCase().includes(searchValue))\n .map((col, i: number) => (\n <button key={i} onClick={() => onClickHandle(col)}>\n {col.title}\n </button>\n ))}\n </div>\n {CustomFilters && (\n <CustomFilters\n setFilterItems={setFilterItems}\n filterItems={filterItems}\n columns={columns}\n setDropdownOpen={setDropdownOpen}\n />\n )}\n </DropdownContent>\n )}\n trigger={['click']}\n >\n <button className=\"icon\">{children}</button>\n </Dropdown>\n );\n};\n\nexport default FilterDropdown;\n","import { create } from 'zustand';\nimport React from 'react';\n\nexport interface FooterOptions {\n okText?: React.ReactNode;\n cancelText?: React.ReactNode;\n}\n\ninterface ModalOptions {\n title?: string;\n component?: React.FC<any>; // component to render\n componentProps?: Record<string, any>; // fresh props passed in\n onOk?: () => void;\n onCancel?: () => void;\n popupOptions?: Record<string, any> | null;\n footerOptions?: FooterOptions;\n hideFooter?: boolean;\n showCloseButton?: boolean;\n}\n\ninterface ModalState {\n options: ModalOptions | null;\n isOpen: boolean;\n\n store: (options: ModalOptions) => void;\n openModal: (options: ModalOptions) => void;\n open: () => void;\n close: () => void;\n\n setOnCancel: (fn: () => void) => void;\n setHideFooter: (hide: boolean) => void;\n setOnOk: (fn: () => void) => void;\n setComponentProps: (props: Record<string, any>) => void;\n setPopupOptions: (opts: Record<string, any>) => void;\n setFooterOptions: (opts: FooterOptions | null) => void;\n setTitle: (title: string) => void;\n}\n\nconst defaultPopupOptions = {\n open: true,\n closeIcon: false,\n footer: null,\n maskClosable: true,\n};\n\nconst defaultFooterOptions: FooterOptions = {\n okText: 'Create',\n cancelText: 'Cancel',\n};\n\nconst useModalStore = create<ModalState>((set, get) => {\n const buildOptions = (options: ModalOptions): ModalOptions => ({\n ...options,\n popupOptions: { ...defaultPopupOptions, ...options.popupOptions },\n footerOptions: { ...defaultFooterOptions, ...options.footerOptions },\n hideFooter: options.hideFooter ?? false,\n onCancel: options.onCancel ?? (() => get().close()),\n });\n\n return {\n options: null,\n isOpen: false,\n\n store: options => set({ options: buildOptions(options) }),\n\n openModal: options => set({ isOpen: true, options: buildOptions(options) }),\n\n open: () =>\n set(state => {\n if (!state.options) return state;\n return { ...state, isOpen: true };\n }),\n\n close: () => set({ isOpen: false }),\n\n setOnOk: fn =>\n set(state => (state.options ? { options: { ...state.options, onOk: fn } } : state)),\n\n setOnCancel: fn =>\n set(state => (state.options ? { options: { ...state.options, onCancel: fn } } : state)),\n\n setComponentProps: props =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n componentProps: { ...state.options.componentProps, ...props },\n },\n }\n : state\n ),\n\n setPopupOptions: opts =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n popupOptions: { ...state.options.popupOptions, ...opts },\n },\n }\n : state\n ),\n\n setFooterOptions: opts =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n footerOptions:\n opts == null\n ? undefined\n : { ...state.options.footerOptions, ...opts },\n },\n }\n : state\n ),\n\n setHideFooter: hide =>\n set(state =>\n state.options\n ? {\n options: {\n ...state.options,\n hideFooter: hide,\n footerOptions: hide ? undefined : state.options.footerOptions,\n },\n }\n : state\n ),\n\n setTitle: title =>\n set(state => (state.options ? { options: { ...state.options, title } } : state)),\n };\n});\n\nexport default useModalStore;\n","import { Select } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledSelect = styled(Select)`\n width: 200px;\n\n display: flex;\n flex-direction: column;\n gap: 2.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-select-selector {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5) !important;\n border: none !important;\n .ant-select-selection-placeholder {\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75)) !important;\n }\n }\n }\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75)) !important;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n`;\n","export enum FilterDataSourceType {\n ActivityReport = 1,\n CommissionReport = 2,\n DepositReport = 3,\n MediaReport = 4,\n PaymentReport = 5,\n RegistrationReport = 6,\n Manager = 7,\n EndUser = 8,\n MarketingTool = 9,\n SubAffiliate = 10,\n CountryGroup = 11,\n Role = 12,\n Tag = 13,\n AffiliateUser = 14,\n EmailTemplate = 15,\n}\n\nexport const ROUTE_FILTER_TYPE_MAP: Record<string, FilterDataSourceType> = {\n '/reports/activity-report': FilterDataSourceType.ActivityReport,\n '/reports/commission-report': FilterDataSourceType.CommissionReport,\n '/reports/deposit-report': FilterDataSourceType.DepositReport,\n '/reports/media-report': FilterDataSourceType.MediaReport,\n '/reports/payments-report': FilterDataSourceType.PaymentReport,\n '/reports/registation-report': FilterDataSourceType.RegistrationReport,\n '/affiliate-manager': FilterDataSourceType.Manager,\n '/end-user': FilterDataSourceType.EndUser,\n '/marketing-tools': FilterDataSourceType.MarketingTool,\n '/sub-affiliates': FilterDataSourceType.SubAffiliate,\n '/affiliate-users': FilterDataSourceType.AffiliateUser,\n '/country-group': FilterDataSourceType.CountryGroup,\n '/email-constructor': FilterDataSourceType.EmailTemplate,\n '/roles': FilterDataSourceType.Role,\n '/tags': FilterDataSourceType.Tag,\n};\n","import { useLocation } from 'react-router';\nimport {\n FilterDataSourceType,\n ROUTE_FILTER_TYPE_MAP,\n} from '../components/filter-configuration/constants';\n\nexport const useFilterDataSourceType = (): FilterDataSourceType | undefined => {\n const { pathname } = useLocation();\n const match = Object.keys(ROUTE_FILTER_TYPE_MAP).find(\n route => pathname === route || pathname.startsWith(route + '/')\n );\n return match ? ROUTE_FILTER_TYPE_MAP[match] : undefined;\n};\n","export function handleDictionarySelectFilter(input: string, option: any) {\n return option.label.toLowerCase().includes(input.toLowerCase()) || option.value == input;\n}\n","import React from 'react';\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\nimport SettingsLogo from '../../../../assets/icons/settings.svg?react';\nimport SidebarIcon from '../../../../assets/icons/color.svg?react';\n\nimport { useNavigate } from 'react-router';\nimport { useEffect, useState } from 'react';\nimport { useGridViewStore } from '../../../../modules/GridViewPage/GridViewStoreProvider';\nimport { PageHeaderWrapper } from '../../../../modules/GridViewPage/style';\nimport useDebounce from '../../../../hooks/useDebounce';\nimport Sidebar from '../../../../layouts/base-admin-layout/sidebar';\nimport SortDropdown from '../SortDropdown';\nimport FilterDropdown from '../FilterDropdown';\nimport useModalStore from '../../../../stores/useModalStore';\nimport { StyledSelect } from './style';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\nimport { useFilterDataSourceType } from '../../../../hooks/useFilterDataSourceType';\nimport { usePackageServices } from '../../../../utils/PackageServicesProvider';\nimport type { FiltersType } from '../../../../utils/PackageServicesProvider';\nimport { handleDictionarySelectFilter } from '../../../../utils/antdFunction';\n\ninterface SelectOption {\n value: string | number;\n label: string;\n}\n\ninterface SelectProps {\n options: SelectOption[];\n onChange: (value: string | number | null) => void;\n placeholder: any;\n}\n\ninterface PageHeaderProps {\n setisSettingPopupVisible: (visible: boolean) => void;\n CustomFilters?: any;\n tableAdditionalFields?: (\n openModal: boolean,\n setOpenModal: (open: boolean) => void\n ) => React.ReactNode;\n createIsModal?: any;\n exportButton?: any;\n hasSelect?: boolean;\n selectProps?: SelectProps;\n GridPageTopLeftComponent?: React.FC;\n noNeedSidebarResponsiveButton?: boolean;\n}\n\nconst PageHeader = ({\n setisSettingPopupVisible,\n CustomFilters,\n tableAdditionalFields,\n createIsModal,\n exportButton,\n hasSelect,\n selectProps,\n GridPageTopLeftComponent,\n noNeedSidebarResponsiveButton,\n}: PageHeaderProps) => {\n const navigate = useNavigate();\n const filters = useGridViewStore(s => s.filters);\n const hasCreateBtn = useGridViewStore(s => s.hasCreateBtn);\n\n const setFilters = useGridViewStore(s => s.setFilters);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n const [isQuicksearchVisible, setisQuicksearchVisible] = useState(() => {\n try {\n const stored = sessionStorage.getItem(`grid-filters:${window.location.pathname}`);\n if (stored) {\n return !!JSON.parse(stored)?.filters?.QuickSearch;\n } else {\n return false;\n }\n } catch {\n return false;\n }\n });\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\n const { open } = useModalStore();\n const [openModal, setOpenModal] = useState(false);\n\n const { getMyFilters } = usePackageServices();\n const filterType = useFilterDataSourceType();\n const [savedConfigs, setSavedConfigs] = useState<FiltersType[]>([]);\n\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\n const configsVersion = useGridViewStore(s => s.configsVersion);\n\n useEffect(() => {\n if (filterType == null || !getMyFilters) return;\n getMyFilters(String(filterType)).then(res => setSavedConfigs(res.data ?? []));\n }, [filterType, configsVersion, getMyFilters]);\n\n function applyConfiguration(id: number) {\n const config = savedConfigs.find(c => c.id === id);\n if (!config) return;\n const { filterItems, sortItems } = JSON.parse(config.value);\n setFilterItems(filterItems, true);\n setSortItems(sortItems);\n setSelectedConfig({ id: config.id!, name: config.name });\n }\n\n const onQuickSearchChange = useDebounce((e: any) => {\n setFilters({\n ...filters,\n QuickSearch: e.target.value,\n });\n }, 500);\n\n function onSettingClick() {\n setisSettingPopupVisible(true);\n }\n\n function handleCreateClick() {\n if (createIsModal) {\n open();\n } else {\n navigate('new');\n }\n }\n\n return (\n <PageHeaderWrapper>\n {!noNeedSidebarResponsiveButton && (\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\n <SidebarIcon />\n </button>\n )}\n\n {GridPageTopLeftComponent && <GridPageTopLeftComponent />}\n\n <div className=\"page-actions\">\n {savedConfigs.length > 0 && (\n <StyledSelect\n showSearch\n placeholder={tGeneral('SavedConfiguration')}\n options={savedConfigs.map(c => ({ value: c.id, label: c.name }))}\n value={selectedConfig?.id ?? null}\n filterOption={handleDictionarySelectFilter}\n onChange={(id: any) =>\n id != null ? applyConfiguration(id) : setSelectedConfig(null)\n }\n />\n )}\n\n {hasSelect && selectProps && (\n <div>\n <StyledSelect\n options={selectProps.options}\n placeholder={selectProps.placeholder}\n onChange={(option: any) => {\n selectProps.onChange(option ?? null);\n }}\n />\n </div>\n )}\n\n {tableAdditionalFields && tableAdditionalFields(openModal, setOpenModal)}\n\n {isQuicksearchVisible ? (\n <input\n type=\"text\"\n placeholder={tActions('QuickSearch')}\n defaultValue={filters?.QuickSearch ?? ''}\n onChange={onQuickSearchChange}\n />\n ) : (\n <button onClick={() => setisQuicksearchVisible(true)}>\n {tActions('Search')}\n </button>\n )}\n\n <SortDropdown />\n\n <FilterDropdown CustomFilters={CustomFilters}>\n <FilterLogo />\n </FilterDropdown>\n\n <button className=\"icon\" onClick={onSettingClick}>\n <SettingsLogo />\n </button>\n\n {exportButton && exportButton}\n\n {hasCreateBtn && (\n <button onClick={handleCreateClick} className=\"create-btn\">\n {tActions('Create')}\n </button>\n )}\n </div>\n\n {isSidebarVisible && <Sidebar />}\n </PageHeaderWrapper>\n );\n};\n\nexport default PageHeader;\n","import * as React from \"react\";\nconst SvgPlus = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66665 7.3335H12.6666V8.66683H8.66665V12.6668H7.33331V8.66683H3.33331V7.3335H7.33331V3.3335H8.66665V7.3335Z\", fill: \"white\" }));\nexport default SvgPlus;\n","import * as React from \"react\";\nconst SvgArrowRefresh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 2C9.69989 2 11.2343 2.70742 12.3255 3.84245V2.42578H13.6589V6.11654H9.96875V4.7832H11.3796C10.5289 3.88969 9.32909 3.33333 8 3.33333C5.42286 3.33333 3.33333 5.42286 3.33333 8C3.33333 10.5771 5.42286 12.6667 8 12.6667C10.5771 12.6667 12.6667 10.5771 12.6667 8V7.33333H14V8C14 11.3135 11.3135 14 8 14C4.68648 14 2 11.3135 2 8C2 4.68648 4.68648 2 8 2Z\", fill: \"#131412\" }));\nexport default SvgArrowRefresh;\n","export class DateHelper {\n static equals(value1?: Date | null, value2?: Date | null) {\n const val1 = value1 === undefined || value1 === null ? null : value1;\n const val2 = value2 === undefined || value2 === null ? null : value2;\n\n if (val1 === val2) {\n return true;\n }\n\n if (!val1 || !val2) {\n return false;\n }\n\n return val1.getTime() === val2.getTime();\n }\n\n static toMMddyyyy(value: Date | string) {\n const date = this.parseDate(value);\n if (!date) return null;\n\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n\n const mm = month < 10 ? `0${month}` : `${month}`;\n const dd = day < 10 ? `0${day}` : `${day}`;\n\n return `${mm}/${dd}/${year}`;\n }\n\n static toLocal(date: Date | string, start = false, end = false): Date | null {\n const d = this.parseDate(date);\n if (!d) return null;\n\n if (start) d.setHours(0, 0, 0, 0);\n if (end) d.setHours(23, 59, 59, 999);\n\n return this.utcToLocal(d);\n }\n\n static getDates(start: Date, end: Date) {\n const dates = new Array<Date>();\n let date = new Date(start.valueOf());\n while (date <= end) {\n dates.push(new Date(date));\n date = this.addDays(date, 1);\n }\n return dates;\n }\n\n static dateOnly(value: Date) {\n const year = value.getFullYear();\n const month = value.getMonth() + 1; // month is 0 based.\n const day = value.getDate();\n // const date = new Date(Date.UTC(year, month, day));\n\n // return date;\n\n return `${year}/${month}/${day}`;\n }\n\n static dateWithDashes(value: Date) {\n const year = value.getFullYear();\n const month = value.getMonth() + 1; // month is 0 based.\n const day = value.getDate();\n // const date = new Date(Date.UTC(year, month, day));\n\n // return date;\n\n return `${year}-${month}-${day}`;\n }\n static today() {\n return this.dateOnly(new Date());\n }\n\n static toISODateString(value: Date | string) {\n const date = this.parseDate(value);\n\n if (!date) return null;\n\n const year = date.getFullYear();\n // Add +1 to month since 0 is January\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n const str = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;\n return str;\n }\n\n static toISODateStringWithTime(value: Date | string) {\n const date = this.parseDate(value);\n\n if (!date) return null;\n\n const year = date.getFullYear();\n // Add +1 to month since 0 is January\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n\n const strTime = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\n const str =\n `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ` + strTime;\n return str;\n }\n\n static monthDayYear(value: Date | string) {\n const date = this.parseDate(value);\n if (!date) return null;\n\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n\n const month = months[date.getMonth()];\n const day = date.getDate();\n const year = date.getFullYear();\n\n return `${month} ${day}, ${year}`;\n }\n\n static withdrawalTableDateFormat(value: Date) {\n const date = this.parseDate(value);\n if (!date || isNaN(date.getTime())) return null;\n\n const year = value.getFullYear();\n const month = value.getMonth() + 1;\n const day = value.getDate();\n\n const datePart = `${year}/${month}/${day}`;\n\n const timePart = date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${datePart}, ${timePart}`;\n }\n\n static getCommonDateRange = (key: string): any => {\n let endDate: null | Date = new Date();\n let startDate: null | Date = new Date();\n\n switch (key) {\n case 'week': // 7 days\n startDate.setDate(endDate.getDate() - 7);\n break;\n case 'month': // 30 days\n startDate.setDate(endDate.getDate() - 30);\n break;\n case 'threeMonth': // 3 months\n startDate.setMonth(endDate.getMonth() - 3);\n startDate.setDate(1);\n break;\n case 'sixMonth': // 6 months\n startDate.setMonth(endDate.getMonth() - 6);\n startDate.setDate(1);\n break;\n case 'twelveMonth': // 12 months\n startDate.setMonth(endDate.getMonth() - 12);\n startDate.setDate(1);\n break;\n case 'year': // Year to date (from January 1st of current year)\n startDate.setMonth(0);\n startDate.setDate(1);\n break;\n case 'all': // send null\n endDate = null;\n startDate = null;\n break;\n case 'custom':\n break;\n default:\n startDate.setDate(endDate.getDate() - 7);\n }\n\n return {\n startDate: startDate ? this.toISODateString(startDate as Date) : null,\n endDate: endDate ? this.toISODateString(endDate as Date) : null,\n };\n };\n\n static getDateOnlyMonthAndNumber(value: Date | string) {\n if (!value) return '';\n\n const date = new Date(value);\n if (isNaN(date.getTime())) return '';\n\n const day = date.getDate();\n const monthIndex = date.getMonth();\n\n const month = monthIndex;\n\n const formattedDate = `${day} ${month}`;\n\n return formattedDate;\n }\n\n static fromDateOrStringToTable(value: Date | string) {\n const date = this.parseDate(value);\n if (!date || isNaN(date.getTime())) return null;\n\n const datePart = date.toLocaleString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n\n const timePart = date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n return `${datePart}, ${timePart}`;\n }\n\n static toISOTimeString(value: Date | string) {\n const date = DateHelper.parseDate(value);\n\n if (!date) return null;\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n const second = date.getSeconds();\n\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}:${second < 10 ? '0' : ''}${second}`;\n return str;\n }\n\n static toTimeInput(value: Date | string) {\n const date = DateHelper.parseDate(value);\n\n if (!date) return null;\n\n const hour = date.getHours();\n const minute = date.getMinutes();\n\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\n return str;\n }\n\n //** Offes seconds ( offsetmin * 60sec * 1000ms) */\n private static readonly _utcDiff = -new Date().getTimezoneOffset() * 60000;\n static utcToLocal(utc: Date) {\n const dateObject = utc instanceof Date ? utc : new Date(utc);\n return new Date(dateObject.getTime() + this._utcDiff);\n }\n static localToUtc(utc: Date): Date {\n const dateObject = utc instanceof Date ? utc : new Date(utc);\n return new Date(dateObject.getTime() + this._utcDiff);\n }\n\n static addYears(v: Date, years: number): Date {\n if (!years) return v;\n\n const date = v;\n date.setFullYear(v.getFullYear() + years);\n return date;\n }\n static addMonths(v: Date, months: number) {\n if (!months) return v;\n\n const date = v;\n date.setMonth(date.getMonth() + months);\n return date;\n }\n static addDays(v: Date, days: number) {\n if (!days) return v;\n\n const date = v;\n date.setDate(date.getDate() + days);\n return date;\n }\n static addHours(v: Date, hours: number) {\n if (!hours) return v;\n\n const date = new Date(v);\n //todo need to check if this line needs --> date = new Date(date.getTime());\n date.setHours(date.getHours() + hours);\n return date;\n }\n static addMinutes(v: Date, minutes: number) {\n if (!minutes) return v;\n\n const date = new Date(v);\n //todo need to check if this line needs --> date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n }\n static addSeconds(v: Date, seconds: number) {\n if (!seconds) return v;\n\n const date = v;\n date.setSeconds(date.getSeconds() + seconds);\n\n return date;\n }\n static isToday(date: Date) {\n const today = new Date();\n return this.isSameDate(date, today);\n }\n static clone(date: Date) {\n return new Date(+date);\n }\n static isAnotherMonth(a: Date, b: Date) {\n return b && a.getMonth() !== b.getMonth();\n }\n static isWeekend(v: Date): boolean {\n return v.getDay() === 0 || v.getDay() === 6;\n }\n static isSameDate(a: Date, b: Date) {\n return (\n b &&\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n static getAge(value?: Date | string | null, now?: Date | null) {\n if (value === undefined || value === null || value === '' || value !== value) return null;\n\n const date = this.toDate(value);\n\n const nowTime = now ? now.getTime() : Date.now();\n const timeDiff = nowTime - date.getTime();\n\n return Math.floor(timeDiff / 86400000 / 365.25); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\n }\n static subtractMonths(endDate: Date, starDate: Date) {\n const start = starDate <= endDate ? starDate : endDate;\n const end = starDate <= endDate ? endDate : starDate;\n const plus = starDate <= endDate ? 1 : -1;\n\n let months = (end.getFullYear() - start.getFullYear()) * 12;\n months -= start.getMonth();\n months += end.getMonth();\n return months * plus;\n }\n\n static subtractDays(value: Date, date: Date) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n return Math.floor(timeDiff / 86400000); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\n }\n static subtractHours(value: Date, date?: Date | null) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n return Math.floor((timeDiff % 86400000) / 3600000);\n }\n static subtractMinutes(value: Date, date?: Date | null) {\n if (!date) return null;\n\n date = this.toDate(date);\n const timeDiff = date.getTime() - value.getTime();\n //\n return Math.floor(((timeDiff % 86400000) % 3600000) / 60000);\n }\n\n static ISO8601_DATE_REGEX =\n /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n // 1 2 3 4 5 6 7 8 9 10 11\n\n static parseDate(value: any): Date | null {\n if (typeof value === 'undefined' || value == null || value === '') return null;\n return this.toDate(value);\n }\n\n // export function toDate(value: string|number|Date): Date this function is imported from date pipe\n // packages/common/src/i18n/format_date.ts\n\n /***\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\n static toDate(value: string | number | Date): Date {\n if (this.isDate(value)) {\n return value;\n }\n\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n\n if (typeof value === 'string') {\n value = value.trim();\n\n const parsedNb = parseFloat(value);\n\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN((value as any) - parsedNb)) {\n return new Date(parsedNb);\n }\n\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m, d] = value.split('-').map((val: string) => +val);\n return new Date(y, m - 1, d);\n }\n\n let match: RegExpMatchArray | null;\n if ((match = value.match(this.ISO8601_DATE_REGEX))) {\n return this.isoStringToDate(match);\n }\n }\n\n const date = new Date(value as any);\n if (!this.isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n }\n\n static isoStringToDate(match: RegExpMatchArray): Date {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n const ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n }\n\n static isDate(value: any): value is Date {\n return value instanceof Date && !isNaN(value.valueOf());\n }\n}\n","import * as React from \"react\";\nconst SvgCloseMark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.471 4.47152L8.94238 8.00016L12.471 11.5288L11.5283 12.4715L7.99967 8.94287L4.47103 12.4715L3.52832 11.5288L7.05697 8.00016L3.52832 4.47152L4.47103 3.52881L7.99967 7.05745L11.5283 3.52881L12.471 4.47152Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgCloseMark;\n","import styled from 'styled-components';\nimport CloseMark from '../assets/icons/close-mark.svg?react';\n\nexport const CloseMarkIcon = styled(CloseMark)`\n width: 25px;\n height: 25px;\n cursor: pointer;\n\n svg {\n height: 24px;\n width: 24px;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n","import { Button, Input, Modal } from 'antd';\nimport styled from 'styled-components';\n\nexport const Popup = styled(Modal)`\n display: flex;\n width: 420px;\n padding: var(--spacing-025, 2px);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-primary, #131412);\n\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n .ant-modal-content {\n padding: 0px;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary) !important;\n color: var(--color-text-primary) !important;\n }\n .ant-modal-header {\n background: var(--color-bg-quaternary) !important;\n }\n .ant-modal-title {\n color: var(--color-text-primary) !important;\n }\n .ant-modal-close-x {\n color: var(--color-icon-primary) !important;\n }\n\n .ant-select {\n .ant-select-selector {\n padding: 0 !important;\n border: none !important;\n background-color: transparent !important;\n box-shadow: none !important;\n }\n\n .ant-select-selection-placeholder {\n color: var(--color-text-secondary, #fff) !important;\n }\n\n .ant-select-selection-item {\n color: var(--color-text-primary) !important;\n }\n\n .ant-select-selection-search-input {\n color: var(--color-text-primary) !important;\n background: transparent !important;\n padding: 0 !important;\n }\n }\n .ant-modal-mask {\n background: rgba(0, 0, 0, 0.25) !important;\n }\n`;\n\nexport const PopupHeader = styled.div`\n color: var(--color-text-primary, #fff);\n display: flex;\n padding: 24px 24px 0;\n // padding-bottom: var(--spacing-400, 32px);\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-050, 4px);\n align-self: stretch;\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const CloseButton = styled.button`\n color: var(--color-text-primary, #fff);\n display: flex;\n align-items: center;\n text-align: center;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n\n svg {\n height: 24px;\n width: 24px;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n\nexport const ContentContainer = styled.div`\n display: flex;\n align-items: start;\n flex-direction: column;\n padding: 24px;\n padding-top: 0px;\n\n border-radius: var(--border-radius-025, 2px);\n padding-bottom: var(--spacing-200, 16px);\n`;\n\nexport const NoDataSpanForSelect = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.5)) !important;\n`;\n\nexport const LabelText = styled.div`\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n margin-bottom: 0.25rem;\n max-width: 350px;\n`;\n\nexport const PopupFooterContainer = styled.div`\n padding-top: 2px;\n display: flex;\n width: 100%;\n background: var(--color-bg-secondary, #232323);\n`;\nexport const CancelModalButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n justify-content: flex-start;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #2f2f2f);\n justify-content: flex-start;\n width: 100%;\n\n color: var(--color-text-primary, #fff);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px);\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n border: none;\n width: 100%;\n &:hover {\n border: none !important;\n }\n`;\n\nexport const ModalHostButtonWrapper = styled.div`\n width: 50%;\n`;\n\nexport const CreateModalButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n width: 100%;\n justify-content: space-between;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #141414);\n color: var(--color-text-inverse-primary, #fff) !important;\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 15px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n .arrow-styled {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 100px;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n @media (max-width: 445px) {\n gap: 50px;\n }\n }\n\n &:disabled {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n border: none;\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n\n .arrow-styled {\n svg {\n path {\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\n transition: 0.1s;\n }\n }\n }\n }\n &:hover {\n background: var(--color-bg-brand-special, #141414) !important;\n color: var(--color-text-inverse-primary, #fff) !important;\n }\n`;\n\nexport const RejectButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n flex: 1 0 0;\n width: 100%;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-status-error, #fd7f60);\n color: var(--color-text-inverse-primary, #fff) !important;\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n .arrow-styled {\n display: flex;\n align-items: center;\n align-items: center;\n justify-content: space-between;\n gap: 100px;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n }\n\n &:disabled {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n border: none;\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n\n .arrow-styled {\n svg {\n path {\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\n transition: 0.1s;\n }\n }\n }\n }\n &:hover {\n color: var(--color-text-inverse-primary, #fff) !important;\n background: var(--color-bg-status-error, #fd7f60) !important;\n }\n`;\n\nexport const GeneralInput = styled(Input)`\n input[type='number'] {\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n display: none;\n }\n }\n\n &.ant-input-status-error,\n &.ant-input-affix-wrapper-status-error {\n border: 1px solid var(--color-border-status-error) !important;\n\n .ant-input {\n background: transparent !important;\n }\n\n .ant-input-prefix {\n color: var(--color-text-status-error) !important;\n }\n .ant-input-suffix {\n color: var(--color-text-status-error) !important;\n }\n }\n\n &::placeholder,\n .ant-input::placeholder {\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\n }\n\n &.ant-input-outlined:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-outlined:focus {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-affix-wrapper-focused {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n display: flex;\n height: 40px;\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\n align-items: center;\n align-self: stretch;\n border-radius: var(--border-radius-025, 2px);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n background: var(--color-bg-secondary, #2f2f2f) !important;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n .ant-input-prefix {\n color: var(--color-text-primary, #131412);\n margin-left: 1px;\n gap: 8px;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n }\n`;\n","import { notification } from 'antd';\n\nexport const getBase64 = (file: File): Promise<string> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = error => reject(error);\n });\n};\n\nexport function lowercaseFirstLetter(word: string) {\n if (!word) return word;\n return word.charAt(0).toLowerCase() + word.slice(1);\n}\n\nexport const handleCopy = async (textToCopy: string) => {\n try {\n await navigator.clipboard.writeText(textToCopy);\n notification.success({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Copy To Clipboard',\n });\n } catch (err) {\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Failed to copy text.',\n });\n }\n};\n","import { lowercaseFirstLetter } from './functions';\n\nexport function catchErrorMessage(error: any, form: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = [];\n\n for (const key in response.errors) {\n errorMessages.push({\n name: lowercaseFirstLetter(key),\n errors: response.errors[key],\n });\n }\n\n form.setFields(errorMessages);\n }\n}\n","import { Form } from 'antd';\nimport { useEffect } from 'react';\nimport { GeneralInput, LabelText } from '../modal-host/TablePopup.style';\nimport useModalStore from '../../stores/useModalStore';\nimport { FilterDataSourceType } from './constants';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { catchErrorMessage } from '../../utils/catchErrorFunction';\n\ninterface FilterConfigurationProps {\n type?: FilterDataSourceType;\n value?: string;\n selectedConfig?: { id: number; name: string } | null;\n onSuccess?: (savedName: string) => void;\n postMyFilter: any;\n putMyFilter: any;\n}\n\nconst FilterConfiguration = ({\n type,\n value,\n selectedConfig,\n onSuccess,\n postMyFilter,\n putMyFilter,\n}: FilterConfigurationProps) => {\n const [form] = Form.useForm();\n const setOnOk = useModalStore(s => s.setOnOk);\n const close = useModalStore(s => s.close);\n\n useEffect(() => {\n if (selectedConfig) {\n form.setFieldsValue({ name: selectedConfig.name });\n }\n }, [selectedConfig, form]);\n\n useEffect(() => {\n setOnOk(async () => {\n try {\n const values = await form.validateFields();\n if (selectedConfig) {\n await putMyFilter({\n id: selectedConfig.id,\n type: type!,\n name: values.name,\n value: value ?? '',\n });\n } else {\n await postMyFilter({ type: type!, name: values.name, value: value ?? '' });\n }\n onSuccess?.(values.name);\n close();\n } catch (error: any) {\n const errors: any = catchErrorMessage(error, form);\n form.setFields(errors);\n }\n });\n }, [type, value, selectedConfig, onSuccess, form, setOnOk, close]);\n\n return (\n <Form form={form}>\n <LabelText>{tGeneral('ConfigurationName')}</LabelText>\n <Form.Item name=\"name\">\n <GeneralInput />\n </Form.Item>\n </Form>\n );\n};\n\nexport default FilterConfiguration;\n","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.6666 4.65485L10.4881 5.83336L13.8215 9.16669H3.33331V10.8334H13.8215L10.4881 14.1667L11.6666 15.3452L17.0118 10L11.6666 4.65485Z\", fill: \"currentColor\" }));\nexport default SvgArrowRight;\n","import styled from 'styled-components';\nimport ArrowRight from '../assets/icons/arrow-right.svg?react';\n\nexport const ArrowRightIcon = styled(ArrowRight)`\n cursor: pointer;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-inverse-primary, #fff) !important;\n transition: 0.1s;\n }\n }\n`;\n","import { ContentContainer } from '../../../../components/modal-host/TablePopup.style';\nimport { tGeneral } from '../../../../utils/exportTranslation';\n\nconst DeleteRecordPopup = () => {\n return (\n <ContentContainer>\n <div>\n <p>{tGeneral('DeleteRecordQuestion')}</p>\n </div>\n </ContentContainer>\n );\n};\n\nexport default DeleteRecordPopup;\n","import { Checkbox } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledCheckbox = styled(Checkbox)`\n .ant-checkbox-inner {\n background-color: transparent;\n border: 1px solid #ccc;\n }\n span {\n color: var(--color-text-tertiary, #fff);\n }\n\n .ant-checkbox-checked .ant-checkbox-inner {\n background-color: white !important;\n border-color: black !important;\n }\n\n .ant-checkbox:hover .ant-checkbox-inner {\n border-color: var(--color-border-tertiary, black);\n }\n\n .ant-checkbox-checked:hover .ant-checkbox-inner {\n background-color: white !important;\n }\n\n .ant-checkbox-checked .ant-checkbox-inner::after {\n border-color: black;\n }\n`;\n","import ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\nimport SettingsLogo from '../../../assets/icons/settings.svg?react';\nimport PlusLogo from '../../../assets/icons/plus.svg?react';\nimport RefrechSvg from '../../../assets/icons/arrow-refresh.svg?react';\nimport { Dropdown } from 'antd';\nimport { useEffect, useRef, useState } from 'react';\nimport { useGridViewStore } from '../GridViewStoreProvider';\nimport {\n Column,\n ColumnFilterOption,\n ColumnFilterType,\n FilterSelectTypes,\n SortDirections,\n} from '../types';\nimport {\n DropdownContent,\n FilterItemWrapper,\n OptionName,\n OptionWrapper,\n PageFilterWrapper,\n ResetConditionsWrapper,\n StyledRangePicker,\n TwoComponentSelectContent,\n TwoComponentSelectTitle,\n} from '../style';\nimport useDebounce from '../../../hooks/useDebounce';\nimport SortDropdown from './SortDropdown';\nimport FilterDropdown from './FilterDropdown';\nimport { DateHelper } from '../../../utils/DateHelper';\nimport { CloseMarkIcon } from '../../../styled-components/closeMark';\nimport useModalStore from '../../../stores/useModalStore';\nimport FilterConfiguration from '../../../components/filter-configuration';\nimport { useFilterDataSourceType } from '../../../hooks/useFilterDataSourceType';\nimport { CreateModalButton } from '../../../components/modal-host/TablePopup.style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport DeleteRecordPopup from './delete-record-popup/DeleteRecordPopup';\nimport { StyledCheckbox } from '../../../styled-components/styledCheckbox';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\ninterface FilterItemProps {\n item: any;\n}\n\nconst FilterItem = ({ item }: FilterItemProps) => {\n const inputRef: any = useRef(null);\n\n const filterItems = useGridViewStore(s => s.filterItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n\n const [dropdownOpen, setDropdownOpen] = useState(item.selectType == FilterSelectTypes.VALUE);\n\n function handleFocus() {\n inputRef?.current?.focus();\n }\n\n function onFilterValueDropdownClick(option: ColumnFilterOption) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title\n ? { ...e, filterValue: option.id, filterLabel: option.name }\n : e\n ),\n true\n );\n setDropdownOpen(false);\n }\n\n function twoComponentSelectDropdownClick(option: ColumnFilterOption, isCountryGroup = false) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title\n ? {\n ...e,\n filterValue: option.id,\n filterLabel: option.name,\n isCountryGroup: isCountryGroup,\n }\n : e\n ),\n true\n );\n setDropdownOpen(false);\n }\n\n const [selectedValues, setSelectedValues] = useState<any[]>(item.filterValue || []);\n\n const onFilterValueToggle = (optionId: any) => {\n const newValues = selectedValues.includes(optionId)\n ? selectedValues.filter(id => id !== optionId)\n : [...selectedValues, optionId];\n\n setSelectedValues(newValues);\n\n const selectedLabels = item?.filters?.options\n ?.filter((opt: any) => newValues.includes(opt.id))\n .map((opt: any) => opt.name)\n .join(', ');\n\n setFilterItems(\n filterItems.map((f: any) =>\n f.title === item.title\n ? {\n ...f,\n filterValue: newValues,\n filterLabel: selectedLabels || '',\n }\n : f\n ),\n true\n );\n };\n\n function onSelect(column: Column) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title ? { ...column, selectType: FilterSelectTypes.VALUE } : e\n )\n );\n }\n\n const onFilterValueChange = useDebounce((e: any) => {\n const value = e.target.value;\n setFilterItems(\n filterItems.map(e => (e.title == item.title ? { ...e, filterValue: value } : e)),\n true\n );\n }, 500);\n\n function onOpenChange(newValue: boolean) {\n setFilterItems(\n filterItems.map(e =>\n e.title == item.title ? { ...e, selectType: FilterSelectTypes.NONE } : e\n )\n );\n setDropdownOpen(newValue);\n }\n\n function onRemove() {\n setFilterItems(\n filterItems.filter(e => e.title != item.title),\n true\n );\n }\n\n useEffect(() => {\n if (dropdownOpen && item?.filters?.type !== ColumnFilterType.SELECT) {\n setTimeout(() => {\n handleFocus();\n }, 0); // wait until DOM is updated\n }\n }, [dropdownOpen]);\n\n const dropdownContentComponent: any = {\n [ColumnFilterType.INPUT]: (\n <input\n ref={inputRef}\n type=\"text\"\n placeholder={'Search' + '...'}\n className=\"filter-item-search\"\n onChange={onFilterValueChange}\n />\n ),\n [ColumnFilterType.SELECT]: (\n <div>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <button key={option.id} onClick={() => onFilterValueDropdownClick(option)}>\n {option.name}\n </button>\n ))}\n </div>\n ),\n [ColumnFilterType.TwoComponentSelect]: (\n <>\n <TwoComponentSelectTitle>{item?.filters?.firstGroupName}</TwoComponentSelectTitle>\n <TwoComponentSelectContent>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <button\n key={option.id}\n onClick={() => twoComponentSelectDropdownClick(option, false)}\n >\n {option.name}\n </button>\n ))}\n </TwoComponentSelectContent>\n {/* {hasPermission(Permission.Customer_CountryGroup_View) && (\n <>\n <TwoComponentSelectTitle>\n {item?.filters?.secondGroupName}\n </TwoComponentSelectTitle>\n <TwoComponentSelectContent>\n {item?.filters?.secondOptions?.map((option: ColumnFilterOption) => (\n <button\n key={option.id}\n onClick={() => twoComponentSelectDropdownClick(option, true)}\n >\n {option.name}\n </button>\n ))}\n </TwoComponentSelectContent>\n </>\n )} */}\n </>\n ),\n [ColumnFilterType.MULTISELECT]: (\n <div>\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\n <OptionWrapper key={option.id}>\n <StyledCheckbox onChange={() => onFilterValueToggle(option?.id)}>\n <OptionName>{option.name}</OptionName>\n </StyledCheckbox>\n </OptionWrapper>\n ))}\n </div>\n ),\n [ColumnFilterType.DATEPICKER]: (\n <StyledRangePicker\n open={true}\n allowClear\n format=\"MMM D, YYYY\"\n placeholder={['From', 'To']}\n onChange={(dates: any) => {\n if (!dates) {\n setFilterItems(\n filterItems.map(e =>\n e.title === item.title\n ? {\n ...e,\n filterValue: null,\n filterLabel: '',\n }\n : e\n ),\n true\n );\n } else {\n const isoDates = dates.map((d: any, i: any) =>\n d\n ? DateHelper.toLocal(\n d,\n i === 0,\n i === dates.length - 1\n )?.toISOString()\n : null\n );\n\n setFilterItems(\n filterItems.map(e =>\n e.title === item.title\n ? {\n ...e,\n // Store the ISO strings for the API\n filterValue: isoDates,\n // Keep the user-friendly label\n filterLabel: `${dates[0].format('MMM D, YYYY')} → ${dates[1].format('MMM D, YYYY')}`,\n }\n : e\n ),\n true\n );\n }\n setDropdownOpen(false);\n }}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n />\n ),\n };\n\n const dropdownContent = (\n <DropdownContent\n style={{\n border: item?.filters?.type === ColumnFilterType.DATEPICKER ? 'none' : 'inherit',\n }}\n >\n {dropdownContentComponent[item?.filters?.type || ColumnFilterType.INPUT]}\n </DropdownContent>\n );\n\n return (\n <FilterItemWrapper>\n <FilterDropdown placement={'bottomLeft'} onSelect={onSelect}>\n <span>\n <SettingsLogo />\n {item.title}\n </span>\n </FilterDropdown>\n <Dropdown\n overlayClassName=\"debug-dropdwon\"\n placement={'bottomLeft'}\n open={dropdownOpen}\n onOpenChange={onOpenChange}\n popupRender={() => dropdownContent}\n trigger={['click']}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n >\n <div>\n {item.filterValue\n ? item.filterLabel\n ? item.filterLabel\n : item.filterValue\n : 'NotSelected'}\n </div>\n </Dropdown>\n <span onClick={onRemove}>\n <CloseMarkIcon />\n </span>\n </FilterItemWrapper>\n );\n};\n\nconst PageFilter = () => {\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\n const resetStore = useGridViewStore(s => s.resetStore);\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\n const { deleteMyFilter } = usePackageServices();\n\n const bumpConfigsVersion = useGridViewStore(s => s.bumpConfigsVersion);\n const { open, store, close } = useModalStore();\n const filterType = useFilterDataSourceType();\n\n async function handleDeleteConfiguration() {\n try {\n if (!selectedConfig || !deleteMyFilter) return;\n\n await deleteMyFilter(selectedConfig.id);\n setSelectedConfig(null);\n bumpConfigsVersion();\n } catch (err) {\n console.log(err, 'Error happened deleting configuration');\n }\n }\n\n function deleteConfiguration() {\n store({\n component: DeleteRecordPopup,\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\n footerOptions: {\n okText: (\n <CreateModalButton\n onClick={() => {\n handleDeleteConfiguration();\n close();\n resetStore();\n }}\n >\n <span className=\"arrow-styled\">\n {'Delete'}\n <ArrowRightIcon />\n </span>\n </CreateModalButton>\n ),\n cancelText: 'Cancel',\n },\n });\n open();\n }\n\n function handleSaveConfiguration() {\n const value = JSON.stringify({ filterItems, sortItems });\n store({\n component: FilterConfiguration,\n componentProps: {\n type: filterType,\n value,\n selectedConfig,\n onSuccess: (savedName: string) => {\n if (selectedConfig) {\n setSelectedConfig({ ...selectedConfig, name: savedName });\n }\n bumpConfigsVersion();\n },\n },\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\n footerOptions: {\n okText: (\n <CreateModalButton>\n <span className=\"arrow-styled\">\n {'Save'}\n <ArrowRightIcon />\n </span>\n </CreateModalButton>\n ),\n cancelText: 'Cancel',\n },\n });\n open();\n }\n\n return (\n <PageFilterWrapper>\n {sortItems.length > 0 && (\n <SortDropdown placement={'bottomLeft'}>\n <FilterItemWrapper className=\"sort\">\n <span>\n {sortItems[0].title}\n {sortItems[0].direction == SortDirections.ASC ? (\n <ArrodwUpLogo />\n ) : (\n <ArrodwDownLogo />\n )}\n </span>\n </FilterItemWrapper>\n </SortDropdown>\n )}\n {filterItems.map(item => (\n <FilterItem key={item.title} item={item} />\n ))}\n <FilterDropdown placement={'bottomLeft'}>\n <FilterItemWrapper className=\"add-filter\">\n <span>\n <PlusLogo />\n {'AddFilter'}\n </span>\n </FilterItemWrapper>\n </FilterDropdown>\n\n <ResetConditionsWrapper>\n <button onClick={handleSaveConfiguration}>\n {selectedConfig ? 'UpdateConfiguration' : 'SaveConfiguration'}\n </button>\n {selectedConfig && (\n <button onClick={deleteConfiguration}>{'DeleteConfiguration'}</button>\n )}\n <button onClick={resetStore}>\n <RefrechSvg />\n {'ResetConditions'}\n </button>\n </ResetConditionsWrapper>\n </PageFilterWrapper>\n );\n};\n\nexport default PageFilter;\n","import styled from 'styled-components';\n\nexport const TableWrapper = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n overflow-y: auto;\n width: 100%;\n\n table {\n border-collapse: collapse;\n width: 100%;\n thead {\n tr {\n position: sticky;\n top: 0;\n z-index: 2;\n th {\n padding: 0.25rem 0.25rem;\n position: relative;\n overflow: hidden;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n height: var(--size-450, 2.25rem);\n background: var(--color-bg-primary, #141414);\n text-transform: capitalize;\n text-align: left;\n transition: 0.1s;\n span {\n display: flex;\n padding: 0.5rem 0.75rem;\n min-width: var(--size-1000, 5rem);\n }\n &:first-child {\n min-width: 1.5rem;\n width: 1.5rem;\n padding: 0;\n border-start-start-radius: 0px !important;\n span {\n display: none;\n }\n\n @media (max-width: 991px) {\n min-width: 1rem;\n width: 1rem;\n }\n }\n\n\n &:nth-child(2) {\n width: 10px;\n }\n &:after {\n display: none !important;\n }\n\n &:last-child,\n &:first-child {\n border-start-start-radius: 0px !important;\n }\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n top: 0px;\n height: 1px;\n width: 100%;\n background-color: var(--color-border-primary, rgba(255, 255, 255, 0.1));\n }\n &:before {\n top: unset;\n bottom: 0px;\n }\n &.active,\n &:active,\n &:hover {\n span {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5);\n }\n }\n }\n }\n }\n tbody {\n tr {\n transition: 0.1s;\n position: relative;\n\n td {\n padding: 0 0.75rem;\n overflow: hidden;\n color: var(--color-text-primary, #131412);\n text-overflow: ellipsis;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n height: 3rem;\n &:first-child {\n padding: 0;\n }\n }\n\n .row-actions {\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n }\n\n /* &:hover {\n background: var(--color-bg-tertiary, #e7e7e7);\n } */\n &.main-group-header {\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n span {\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n margin-left: 0.5rem;\n }\n }\n\n &.sub-group-header {\n div {\n display: flex;\n align-items: center;\n }\n span {\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n margin-left: 0.5rem;\n }\n\n .line {\n height: 0.0625rem;\n background: var(--color-border-secondary, rgba(255, 255, 255, 0.2));\n flex: 1;\n margin: 0 1rem;\n }\n }\n\n .action-buttons-wrapper {\n position: sticky;\n right: 1rem;\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-primary, #141414);\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n opacity: 0;\n padding: 0;\n div {\n display: flex;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n path {\n fill: var(--color-icon-primary, #fff);\n }\n }\n }\n\n &:hover {\n .action-buttons-wrapper {\n opacity: 1;\n }\n }\n &.checked {\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n }\n }\n tr:hover .row-actions {\n opacity: 1;\n }\n }\n }\n\n .ant-skeleton-paragraph {\n li {\n background: var(--color-interaction-press-primary) !important;\n }\n }\n`;\n\nexport const DrodownContent = styled.div`\n display: flex;\n flex-direction: column;\n background: var(--color-bg-quaternary, #fff);\n border-radius: var(--border-radius-025, 0.125rem);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n button {\n min-width: 8.5rem;\n padding: 0.5rem 0.75rem;\n display: flex;\n gap: 0.75rem;\n align-items: center;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n background-color: transparent;\n transition: 0.1s;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n }\n &:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n }\n }\n`;\n\nexport const PaginationWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n padding: 0 1.5rem;\n margin-top: auto;\n position: sticky;\n left: 0;\n bottom: 0;\n width: 100%;\n background: var(--color-bg-primary, #141414);\n .ant-pagination-next,\n .ant-pagination-prev,\n .ant-pagination-jump-next {\n min-width: 1.5rem;\n height: 1.5rem;\n line-height: 1.5rem;\n }\n .ant-pagination-item {\n min-width: 1.5rem;\n height: 1.5rem;\n border: none;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: 0.12rem;\n &.ant-pagination-item-active {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n }\n a {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n .anticon {\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n\n .ant-pagination-disabled {\n opacity: 40%;\n }\n\n .ant-select {\n height: 1.5rem;\n .ant-select-selector {\n border: none;\n background-color: transparent;\n }\n\n .ant-select-selection-item {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n\n .page-size-select-header {\n padding: 0.5rem 0;\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-secondary);\n }\n }\n }\n\n @media (max-width: 991px) {\n padding: 0 1rem;\n }\n`;\n\nexport const PageSizeSelectDropdownContent = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #232323);\n box-shadow:\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\n display: flex;\n flex-direction: column;\n button {\n padding: 0.5rem 0.75rem;\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n min-width: 12rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-align: left;\n path {\n fill: var(--color-text-primary, #fff);\n }\n }\n`;\n","export function groupBy(column: any, items: any[]) {\r\n const currentGroupOptions: any = {};\r\n items.forEach((item: any) => {\r\n const option = item[column.dataIndex];\r\n if (currentGroupOptions[option]) {\r\n currentGroupOptions[option].push(item);\r\n } else {\r\n currentGroupOptions[option] = [item];\r\n }\r\n });\r\n return currentGroupOptions;\r\n}\r\n\r\nexport function getGroupLength(group: Record<string, any[]>) {\r\n return Object.values(group).reduce((sum, list) => sum + list.length, 0);\r\n}\r\n","import { Skeleton } from 'antd';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\n\nfunction TableRow({ item, columns, rowKey, onRowClick }: any) {\n const checkedValue = useGridViewStore(s => s.checkedValue);\n\n return (\n <tr\n key={item[rowKey]}\n onClick={onRowClick ? () => onRowClick(item) : undefined}\n className={`${checkedValue && checkedValue[item[rowKey]] ? 'checked' : ''}`}\n >\n {columns.map((col: any) => (\n <td key={`${item[rowKey]}-${col.dataIndex}`}>\n {col?.render ? col.render(item[col.dataIndex], item) : item[col.dataIndex]}\n </td>\n ))}\n </tr>\n );\n}\n\nexport function TableBodyRows({ rows, columns, rowKey, onRowClick }: any) {\n return rows.map((item: any) => (\n <TableRow\n key={item[rowKey]}\n item={item}\n columns={columns}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n ));\n}\n\nexport function SketelonRows({ rowLength, columnLength }: any) {\n return Array(rowLength)\n .fill(null)\n .map((_, rowIndex) => (\n <tr key={`skeleton-row-${rowIndex}`}>\n {Array(columnLength)\n .fill(null)\n .map((_col: any, colIndex: number) => (\n <td key={`${rowIndex}-${colIndex}`}>\n <Skeleton active title={false} paragraph={{ rows: 1, width: '100%' }} />\n </td>\n ))}\n </tr>\n ));\n}\n","import React from 'react';\r\nimport { TableBodyRows } from './TableBodyRows';\r\n\r\nexport function SubGroupedSection({ subGroups, columns, rowKey, onRowClick }: any) {\r\n return (\r\n <>\r\n {Object.keys(subGroups).map((subLabel: string) => (\r\n <React.Fragment key={subLabel}>\r\n <tr className=\"sub-group-header\">\r\n <td></td>\r\n <td colSpan={columns.length}>\r\n <div>\r\n {subLabel} <span>{subGroups[subLabel].length}</span>\r\n <span className=\"line\"></span>\r\n </div>\r\n </td>\r\n </tr>\r\n <TableBodyRows\r\n rows={subGroups[subLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n </React.Fragment>\r\n ))}\r\n </>\r\n );\r\n}\r\n","import React from 'react';\r\nimport { TableBodyRows } from './TableBodyRows';\r\nimport { SubGroupedSection } from './SubGroupedSection';\r\n\r\nfunction GroupHeader({ label, colSpan, count }: { label: string; colSpan: number; count: number }) {\r\n return (\r\n <tr className=\"main-group-header\">\r\n <td></td>\r\n <td colSpan={colSpan}>\r\n {label} <span>{count}</span>\r\n </td>\r\n <td></td>\r\n </tr>\r\n );\r\n}\r\n\r\nexport function GroupedTableBody({\r\n dataSource,\r\n columns,\r\n isSubGroupped,\r\n getGroupLength,\r\n rowKey,\r\n onRowClick,\r\n}: any) {\r\n return (\r\n <>\r\n {Object.keys(dataSource).map((groupLabel: string) => (\r\n <React.Fragment key={groupLabel}>\r\n <GroupHeader\r\n label={groupLabel}\r\n colSpan={columns.length}\r\n count={\r\n isSubGroupped\r\n ? getGroupLength(dataSource[groupLabel])\r\n : dataSource[groupLabel]?.length\r\n }\r\n />\r\n\r\n {isSubGroupped ? (\r\n <SubGroupedSection\r\n subGroups={dataSource[groupLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n ) : (\r\n <TableBodyRows\r\n rows={dataSource[groupLabel]}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\nexport default GroupedTableBody;\r\n","import { Dropdown, Pagination } from 'antd';\nimport { PageSizeSelectDropdownContent, PaginationWrapper } from './style';\nimport ChevronDown from '../../../../assets/icons/chevron-down.svg?react';\nimport CheckmarkIcon from '../../../../assets/icons/checkmark.svg?react';\nimport { useState } from 'react';\nimport { tGeneral } from '../../../../utils/exportTranslation';\n\nexport function TablePagination({\n pagination,\n onPerPageSelectChange,\n totalItemCount,\n onPaginationChange,\n}: any) {\n const [open, setOpen] = useState(false);\n\n return (\n <PaginationWrapper>\n <Pagination\n current={pagination.current}\n pageSize={pagination.pageSize}\n total={totalItemCount}\n showSizeChanger={false}\n onChange={onPaginationChange}\n />\n\n <Dropdown\n placement={'bottomRight'}\n popupRender={() => (\n <PageSizeSelectDropdownContent>\n {(\n pagination?.items || [\n { label: `10 ${tGeneral('Items')}`, value: 10 },\n { label: `25 ${tGeneral('Items')}`, value: 25 },\n { label: `50 ${tGeneral('Items')}`, value: 50 },\n { label: `100 ${tGeneral('Items')}`, value: 100 },\n ]\n ).map((option: any) => (\n <button\n key={option.value}\n onClick={() => onPerPageSelectChange(option.value)}\n >\n {option.label}{' '}\n {option.value == pagination.pageSize && <CheckmarkIcon />}\n </button>\n ))}\n </PageSizeSelectDropdownContent>\n )}\n trigger={['click']}\n open={open}\n onOpenChange={setOpen}\n >\n <div className=\"page-size-select-header\">\n {pagination.pageSize} {tGeneral('ItemsPerPage')} <ChevronDown />\n </div>\n </Dropdown>\n </PaginationWrapper>\n );\n}\n","import * as React from \"react\";\nconst SvgEyeHide = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.6094 3.33333L5.1263 11.8158C5.12139 11.8211 5.11638 11.8263 5.11133 11.8314L3.33333 13.6094L2.39062 12.6667L3.66211 11.3939C2.75363 10.5112 1.95159 9.31206 1.41341 8.31706L1.24219 8L1.41341 7.68294C2.08047 6.44895 3.05011 5.21371 4.17253 4.2793C5.28611 3.35227 6.61809 2.66667 8 2.66667C9.16616 2.66667 10.294 3.10021 11.291 3.76562L12.6667 2.39062L13.6094 3.33333ZM8 4C7.05196 4 6.01458 4.48114 5.02604 5.30404C4.14063 6.04112 3.34853 7.00907 2.76562 8C3.26512 8.86691 3.9209 9.79039 4.60482 10.4512L5.63021 9.42643C4.98911 8.36284 5.12669 6.96121 6.04427 6.04362C6.96186 5.12604 8.36349 4.98846 9.42708 5.62956L10.3255 4.73047C9.55755 4.26174 8.76273 4 8 4ZM8.42513 6.63151C7.93343 6.47928 7.37623 6.59708 6.98698 6.98633C6.59773 7.37558 6.47993 7.93278 6.63216 8.42448L8.42513 6.63151Z\", fill: \"currentColor\", fillOpacity: 0.75 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.2266 5.51432L13.4199 5.75651C13.8705 6.35556 14.306 7.16405 14.5866 7.68294L14.7578 8L14.5866 8.31706C13.9196 9.55061 12.9498 10.7856 11.8275 11.7201C10.714 12.6471 9.38194 13.3333 8 13.3333C7.42626 13.3333 6.86164 13.2272 6.32031 13.0423L6.08984 12.9583L5.5332 12.7422L6.5638 11.7116L6.57161 11.7148L6.75195 11.7806C7.17263 11.9243 7.59142 12 8 12C8.94792 12 9.98545 11.5189 10.974 10.696C11.8609 9.95749 12.6538 8.98668 13.237 7.99414C12.9701 7.50763 12.6616 6.96796 12.3665 6.57357L12.2122 6.38021L12.0664 6.20898L13.0124 5.26302L13.2266 5.51432Z\", fill: \"currentColor\", fillOpacity: 0.75 }));\nexport default SvgEyeHide;\n","import { useState } from 'react';\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\nimport ArrowUp from '../../../../assets/icons/arrow-up.svg?react';\nimport ArrowDown from '../../../../assets/icons/arrow-down.svg?react';\nimport EyeHide from '../../../../assets/icons/eye-hide.svg?react';\nimport { Dropdown } from 'antd';\nimport { DrodownContent } from './style';\nimport { Column, FilterSelectTypes, SortDirections } from '../../types';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\n\nexport function TableTh({ col }: any) {\n const [open, setOpen] = useState(false);\n const filterItems = useGridViewStore(s => s.filterItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\n const setSortItems = useGridViewStore(s => s.setSortItems);\n const setHideItems = useGridViewStore(s => s.setHideItems);\n\n function onSortSelectHandle(col: Column, direction: SortDirections) {\n setSortItems([\n {\n title: col.title,\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\n direction: direction,\n },\n ]);\n }\n\n function onFilterSelectHandle(col: Column) {\n const removeCurrentItem = filterItems.filter(f => col.title != f.title);\n setFilterItems([\n ...removeCurrentItem,\n {\n ...col,\n selectType: FilterSelectTypes.VALUE,\n },\n ]);\n }\n\n function onHideSelectHandle(col: Column, isHide: boolean) {\n setHideItems({\n ...hideItems,\n [col.dataIndex]: isHide ? true : false,\n });\n }\n\n const closeDropdown = () => setOpen(false);\n\n const dropdownItems = [\n { icon: <FilterLogo />, text: tGeneral('Filter'), action: () => onFilterSelectHandle(col) },\n {\n icon: <ArrowUp />,\n text: tActions('Ascending'),\n action: () => onSortSelectHandle(col, SortDirections.ASC),\n },\n {\n icon: <ArrowDown />,\n text: tActions('Descending'),\n action: () => onSortSelectHandle(col, SortDirections.DESC),\n },\n {\n icon: <EyeHide />,\n text: tGeneral('HideInView'),\n action: () => onHideSelectHandle(col, true),\n },\n ];\n\n if (col.filterDropdown === false) {\n return <th></th>;\n }\n\n return (\n <Dropdown\n placement=\"bottomLeft\"\n popupRender={() => (\n <DrodownContent>\n {dropdownItems.map(({ icon, text, action }) => (\n <button\n key={text}\n onClick={() => {\n action();\n closeDropdown();\n }}\n >\n {icon}\n {text}\n </button>\n ))}\n </DrodownContent>\n )}\n trigger={['click']}\n open={open}\n onOpenChange={setOpen}\n getPopupContainer={triggerNode => triggerNode?.parentElement ?? document.body}\n >\n <th className={open ? 'active' : ''}>\n <span>{col.title}</span>\n </th>\n </Dropdown>\n );\n}\n","import { Button } from 'antd';\nimport styled from 'styled-components';\n\nexport const NoDataWrapper = styled.div`\n display: flex;\n height: 80vh;\n padding: 24px var(--spacing-300, 24px);\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-align: center;\n gap: var(--spacing-400, 32px);\n`;\n\nexport const TextContainer = styled.div`\n display: flex;\n width: 864px;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n`;\n\nexport const HeaderText = styled.p`\n color: var(--color-text-primary, #131412);\n text-align: center;\n\n /* body/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-medium, 18px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\n`;\n\nexport const InfoText = styled.p`\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n text-align: center;\n width: 400px;\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n @media (max-width: 410px) {\n font-size: 10px;\n width: 350px;\n }\n`;\nexport const HelpSpan = styled.span`\n color: var(--color-text-status-info, #17adc1);\n\n /* caption/medium-r */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const NoDataButton = styled(Button)`\n display: flex;\n height: var(--size-400, 32px);\n padding: 8px;\n justify-content: center;\n align-items: center;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n\n border: none;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n","import { NoDataWrapper, TextContainer, HeaderText, InfoText, HelpSpan } from './style';\n\nconst NoData = ({ title, description, button, helpSpan }: any) => {\n return (\n <NoDataWrapper>\n <TextContainer>\n <HeaderText>{title}</HeaderText>\n <InfoText>\n {description} {helpSpan && <HelpSpan>{helpSpan}</HelpSpan>}\n </InfoText>\n {button && button}\n </TextContainer>\n </NoDataWrapper>\n );\n};\n\nexport default NoData;\n","import { TableWrapper } from './style';\nimport { getGroupLength, groupBy } from './utils';\nimport { SketelonRows, TableBodyRows } from './TableBodyRows';\nimport GroupedTableBody from './GroupedTableBody';\nimport { TablePagination } from './TablePagination';\nimport { TableTh } from './TableTh';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { useMemo } from 'react';\nimport { TableViewOptions } from '../../types';\nimport NoData from '../../../../components/no-data';\n\nconst Table = ({\n activeTableView,\n columns,\n rowKey,\n dataSource,\n loading,\n pagination,\n totalItemCount,\n onRowClick,\n noPagination,\n noDataProps,\n}: any) => {\n const filters = useGridViewStore(s => s.filters);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n\n const setFilters = useGridViewStore(s => s.setFilters);\n\n const currentColumns = useMemo(() => {\n if (groupByArr.length > 0) {\n return columns.filter(\n (col: any) => !groupByArr.some((g: any) => g.dataIndex == col.dataIndex)\n );\n } else {\n return columns;\n }\n }, [columns, groupByArr]);\n\n const { isTableGroupped, isTableSubGroupped } = useMemo(\n () => ({\n isTableGroupped: !!groupByArr[0],\n isTableSubGroupped: !!groupByArr[1],\n }),\n [groupByArr]\n );\n const currentDataSource = useMemo(() => {\n if (groupByArr[0]) {\n const grouped = groupBy(groupByArr[0], dataSource);\n\n if (groupByArr[1]) {\n const subGrouped: any = {};\n Object.keys(grouped).forEach(key => {\n subGrouped[key] = groupBy(groupByArr[1], grouped[key]);\n });\n\n return subGrouped;\n }\n\n return grouped;\n }\n\n return dataSource;\n }, [dataSource, groupByArr]);\n\n function onPerPageSelectChange(newPageSize: number) {\n setFilters({\n ...filters,\n PageSize: newPageSize,\n Page: 1,\n });\n }\n\n function onPaginationChange(newPage: number) {\n setFilters({\n ...filters,\n Page: newPage,\n });\n }\n\n return (\n <TableWrapper>\n <table>\n {activeTableView != TableViewOptions.LIST && (\n <thead>\n <tr>\n {currentColumns.map((col: any) => (\n <TableTh key={col.dataIndex} col={col} />\n ))}\n <th></th>\n </tr>\n </thead>\n )}\n <tbody>\n {loading ? (\n <SketelonRows\n rowLength={pagination.pageSize}\n columnLength={currentColumns.length}\n />\n ) : currentDataSource?.length == 0 && noDataProps ? (\n <tr>\n <td colSpan={currentColumns.length}>\n <NoData {...noDataProps} />\n </td>\n </tr>\n ) : (\n <>\n {isTableGroupped ? (\n <GroupedTableBody\n dataSource={currentDataSource}\n columns={currentColumns}\n isSubGroupped={isTableSubGroupped}\n getGroupLength={getGroupLength}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n ) : (\n <TableBodyRows\n rows={currentDataSource}\n columns={currentColumns}\n rowKey={rowKey}\n onRowClick={onRowClick}\n />\n )}\n </>\n )}\n </tbody>\n </table>\n {pagination && !noPagination && (\n <TablePagination\n pagination={pagination}\n totalItemCount={totalItemCount}\n onPerPageSelectChange={onPerPageSelectChange}\n onPaginationChange={onPaginationChange}\n />\n )}\n </TableWrapper>\n );\n};\n\nexport default Table;\n","import styled from 'styled-components';\n\nexport const SettingSidebarWrapper = styled.div`\n display: flex;\n flex-direction: column;\n position: fixed;\n right: 0;\n top: 0;\n height: 100vh;\n background: var(--color-bg-primary, #fff);\n border-left: 1px solid var(--color-bg-secondary, #f5f5f5);\n max-width: 22.5rem;\n width: 100%;\n z-index: 3;\n header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n button {\n display: flex;\n align-items: center;\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary);\n }\n }\n }\n }\n\n .setting-sidebar-content {\n padding: 0 1.5rem;\n margin-top: 1.2rem;\n .table-view-list {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n li {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0.75rem;\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-quaternary, #fff);\n gap: 0.75rem;\n transition: 0.1s;\n cursor: pointer;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n transition: 0.1s;\n }\n svg {\n width: var(--size-250, 1.25rem);\n height: var(--size-250, 1.25rem);\n path {\n fill: var(--color-icon-secondary);\n transition: 0.1s;\n }\n }\n &.active,\n &:hover {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-brand-special, #141414);\n span {\n color: var(--color-text-inverse-primary, #fff);\n }\n svg {\n path {\n fill: var(--color-icon-inverse);\n }\n }\n }\n }\n }\n\n .grouping-list {\n display: flex;\n flex-direction: column;\n gap: 2.5rem;\n margin-top: 2.5rem;\n li {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-select-selector {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-secondary, #f5f5f5);\n border: none;\n .ant-select-selection-placeholder {\n path {\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n }\n }\n }\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n }\n }\n\n .properties-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: 2.5rem;\n span {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n }\n ul {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n li {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-primary, #131412);\n text-align: center;\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n padding: 0.25rem 0.75rem 0.25rem 0.4rem;\n border-radius: var(--border-radius-full, 62.4375rem);\n background-color: var(--color-bg-secondary);\n border: 1px solid var(--color-bg-secondary, rgba(20, 20, 20, 0.05));\n cursor: pointer;\n text-transform: capitalize;\n &::before {\n content: '';\n display: block;\n width: 0.875rem;\n height: 0.875rem;\n background-color: var(--color-icon-primary);\n border-radius: 100%;\n }\n &.hide {\n background-color: transparent;\n border: 1px dashed var(--color-border-primary, rgba(20, 20, 20, 0.05));\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n &::before {\n width: 0.5rem;\n height: 0.5rem;\n margin: 0.25rem;\n background-color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\n }\n }\n }\n }\n }\n }\n\n footer {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n padding: 0 1.5rem;\n margin-top: auto;\n padding-bottom: 1.5rem;\n button {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n padding: 0.5rem;\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary);\n }\n }\n }\n }\n\n @media (max-width: 991px) {\n max-width: 100%;\n overflow: auto;\n header {\n position: sticky;\n top: 0;\n left: 0;\n background: var(--color-bg-primary, #fff);\n z-index: 9;\n }\n }\n`;\n\nexport const StyledNoGrouping = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M12 2C6.47672 2 2 6.47672 2 12C2 17.5233 6.47672 22 12 22C17.5233 22 22 17.5233 22 12C22 6.47672 17.5233 2 12 2ZM4 12C4 7.58128 7.58128 4 12 4C16.4187 4 20 7.58128 20 12C20 16.4187 16.4187 20 12 20C7.58128 20 4 16.4187 4 12Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.207 9.20703L13.4141 12L16.207 14.793L14.793 16.207L12 13.4141L9.20703 16.207L7.79297 14.793L10.5859 12L7.79297 9.20703L9.20703 7.79297L12 10.5859L14.793 7.79297L16.207 9.20703Z\", fill: \"currentColor\" }));\nexport default SvgClose;\n","import * as React from \"react\";\nconst SvgCheckmarkFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.0013 1.66675C5.39856 1.66675 1.66797 5.39734 1.66797 10.0001C1.66797 14.6028 5.39856 18.3334 10.0013 18.3334C14.604 18.3334 18.3346 14.6028 18.3346 10.0001C18.3346 5.39734 14.604 1.66675 10.0013 1.66675ZM13.9239 8.92267C14.2493 8.59723 14.2493 8.0696 13.9239 7.74416C13.5985 7.41872 13.0708 7.41872 12.7454 7.74416L9.16797 11.3216L7.25722 9.41083C6.93179 9.08539 6.40415 9.08539 6.07871 9.41083C5.75328 9.73626 5.75328 10.2639 6.07871 10.5893L8.57871 13.0893C8.90415 13.4148 9.43179 13.4148 9.75723 13.0893L13.9239 8.92267Z\", fill: \"currentColor\" }));\nexport default SvgCheckmarkFilled;\n","import styled from 'styled-components';\nimport { Button } from 'antd';\n\nexport const ModalContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: 1.5rem;\n h2 {\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n margin-bottom: 0.25rem;\n padding: 0 1.5rem;\n }\n p {\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n margin-bottom: 2rem;\n padding: 0 1.5rem;\n }\n button {\n color: var(--color-text-inverse-primary, #131412);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-brand-special, #02e0ae);\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.25rem 1.5rem;\n path {\n fill: var(--color-icon-inverse);\n }\n }\n`;\n\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n\nexport const DidnotReceiveCodeSpan = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const OtpContentWrapper = styled(ModalContentWrapper)`\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-status-error, #fd7f60) !important;\n border: 2px solid var(--color-bg-secondary, #f5f5f5);\n padding-top: 0 !important;\n`;\n\nexport const BlockedOtpHeader = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-050, 4px);\n padding: var(--spacing-400, 32px) var(--spacing-300, 24px) !important;\n`;\n\nexport const BlockedOtpTitle = styled.div`\n display: flex;\n justify-content: space-between;\n color: var(--color-text-contrast-onlight-primary, #131412);\n\n /* subheading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const OtpBlockedLabel = styled.div`\n color: var(--color-text-contrast-onlight-secondary, rgba(19, 20, 18, 0.75));\n\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n padding-bottom: var(--spacing-400, 32px) !important;\n`;\n\nexport const OtpBlockedButton = styled(Button)`\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #02e0ae);\n display: flex;\n justify-content: start;\n color: var(--color-text-inverse-primary, #131412) !important;\n border: none !important;\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n /* body/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n padding: var(--spacing-350, 30px) var(--spacing-300, 24px) !important;\n &:hover {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #02e0ae) !important;\n border: none !important;\n color: var(--color-text-inverse-primary, #131412) !important;\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\n }\n`;\n","import * as React from \"react\";\nconst SvgError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.16635 10.8358C7.16765 11.2949 7.54029 11.6667 7.99968 11.6667C8.45987 11.6667 8.83301 11.2936 8.83301 10.8334C8.83301 10.3715 8.45813 10 7.99901 10C7.54056 10 7.1643 10.372 7.16635 10.8358Z\", fill: \"#FD6C49\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.66634 9.00004V4.33338H7.33301V9.00004H8.66634Z\", fill: \"#FD6C49\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.943 1.33337L11.1383 1.52921C12.2476 2.64117 13.3589 3.75126 14.4708 4.86166L14.6663 5.05698V10.9429L10.9425 14.6667H5.05687L1.33301 10.9429L1.33301 5.05723L5.05687 1.33338L10.943 1.33337ZM5.60915 2.66671L2.66634 5.60952L2.66634 10.3906L5.60915 13.3334H10.3902L13.333 10.3906V5.60977C12.3516 4.62959 11.37 3.64891 10.3898 2.66671L5.60915 2.66671Z\", fill: \"#FD6C49\" }));\nexport default SvgError;\n","export function parseErrorMessageKey(input: string) {\n if (!input) return input;\n\n // Always lowercase the first character\n let result = input[0].toLowerCase();\n\n for (let i = 1; i < input.length; i++) {\n const prev = input[i - 1];\n const curr = input[i];\n const next = input[i + 1];\n\n // Check if current is uppercase\n if (/[A-Z]/.test(curr)) {\n // If surrounded by other uppercase chars, lowercase it\n if (/[A-Z]/.test(prev) && /[A-Z]/.test(next)) {\n result += curr.toLowerCase();\n } else if (/[A-Z]/.test(prev) && (!next || /[^A-Z]/.test(next))) {\n // If it's the *last* uppercase in a group, keep it uppercase\n result += curr;\n } else {\n result += curr;\n }\n } else {\n result += curr;\n }\n }\n\n return result;\n}\n\nexport function parseServerErrors(errors: Record<string, string[]>) {\n return Object.entries(errors).map(([key, messages]) => {\n const name: any = key\n .replace(/\\[(\\d+)\\]/g, '.$1')\n .split('.')\n .map(part => {\n if (isNaN(part as any)) {\n return parseErrorMessageKey(part);\n }\n return Number(part);\n });\n\n return { name, errors: messages };\n });\n}\n","import { Button, Form } from 'antd';\nimport styled from 'styled-components';\n\nexport const OtpWrapper = styled(Form.Item)`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\nexport const ButtonsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid black;\n`;\nexport const ResendButton = styled(Button)`\n display: flex;\n height: var(--size-800, 64px);\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\n align-items: center;\n gap: var(--spacing-200, 16px);\n align-self: stretch;\n\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-quaternary, #2f2f2f);\n`;\nexport const BackupSpan = styled.span`\n color: var(--color-text-brand, #06c193);\n cursor: pointer;\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n cursor: pointer;\n`;\n\nexport const DidnotReceiveCodeSpan = styled.span`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n\nexport const BackupCodeInfoText = styled.span`\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n`;\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n\n /* ✅ OTP input styling */\n .ant-otp {\n column-gap: 0.12rem;\n }\n\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n box-shadow: none;\n }\n }\n\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n /* ✅ Regular Ant Design Input styling */\n .ant-input {\n height: 3rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: 1rem;\n font-weight: var(--text-weight-regular, 400);\n line-height: 1.25rem;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease;\n\n &::placeholder {\n color: rgba(255, 255, 255, 0.4);\n }\n\n &:focus,\n &.ant-input-focused {\n border-color: var(--color-border-brand-special, #02e0ae);\n box-shadow: none;\n }\n\n &.ant-input-status-error,\n &.ant-input-status-error:focus {\n border-color: var(--color-border-status-error, #fd7f60) !important;\n box-shadow: none !important;\n }\n }\n\n /* ✅ Error wrapper for both OTP and Inputs */\n &.verification-error {\n .ant-otp-input-wrapper input,\n .ant-input {\n border-color: var(--color-border-status-error, #fd7f60);\n }\n\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n","import { Input } from 'antd';\nimport styled from 'styled-components';\n\nexport const MFAPopupHeader = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 15px 15px 0 0;\n\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const VerificationWrapper = styled.div`\n margin-bottom: 2.5rem;\n padding: 0 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n .ant-otp {\n column-gap: 0.12rem;\n }\n .ant-otp-input-wrapper {\n input {\n width: 3rem;\n height: 4rem;\n border-radius: var(--border-radius-025, 0.125rem);\n border: 1px solid var(--color-bg-secondary, #232323);\n background: var(--color-bg-secondary, #232323);\n color: var(--color-text-primary, #fff);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 1.5rem);\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\n &:focus {\n border: 1px solid var(--color-border-brand-special, #02e0ae);\n }\n }\n &:nth-child(3) {\n margin-right: 0.38rem;\n }\n }\n\n &.verification-error {\n .ant-otp-input-wrapper {\n border: 1px solid var(--color-border-status-error, #fd7f60);\n }\n & > span {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: var(--color-text-status-error, #fd6c49);\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 1rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\n }\n }\n`;\n\nexport const PasswordInputWrapper = styled.div`\n padding: 1.5rem;\n`;\n\nexport const SpinWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem;\n`;\n\nexport const BackupCodeWrapper = styled.div`\n display: flex;\n align-items: center;\n padding: 24px;\n\n .ant-btn {\n background: var(--color-bg-brand-special, #02e0ae);\n color: var(--color-text-inverse-primary, #131412);\n &:hover {\n background: var(--color-bg-brand-special, #02e0ae) !important;\n color: var(--color-text-inverse-primary, #131412) !important;\n }\n }\n`;\n\nexport const PasswordInput = styled(Input.Password)`\n input[type='number'] {\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n display: none;\n }\n }\n\n &.ant-input-status-error,\n &.ant-input-affix-wrapper-status-error {\n border: 1px solid var(--color-border-status-error) !important;\n\n .ant-input {\n background: transparent !important;\n }\n\n .ant-input-prefix {\n color: var(--color-text-status-error) !important;\n }\n .ant-input-suffix {\n color: var(--color-text-status-error) !important;\n }\n }\n\n &::placeholder,\n .ant-input::placeholder {\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\n }\n\n &.ant-input-outlined:hover {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-outlined:focus {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n &.ant-input-affix-wrapper-focused {\n background: var(--color-bg-secondary, #f5f5f5);\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n }\n\n display: flex;\n height: 40px;\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\n align-items: center;\n align-self: stretch;\n border-radius: var(--border-radius-025, 2px);\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\n background: var(--color-bg-secondary, #2f2f2f) !important;\n\n color: var(--color-text-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n &:hover,\n &:focus,\n &:focus-within,\n &:active {\n background: none;\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n box-shadow: none;\n }\n &:focus,\n &.ant-input:focus,\n &.ant-input-focused {\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\n box-shadow: none !important;\n }\n\n &:hover,\n &:focus,\n &:focus-within,\n &:active,\n &.has-value {\n outline: none;\n span {\n transform: translateY(0%);\n top: 1rem;\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 0.75rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 1rem);\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\n }\n }\n\n .ant-input-suffix {\n color: var(--color-text-primary, #131412) !important;\n\n svg path {\n fill: var(--color-text-primary, #131412) !important;\n }\n }\n`;\n","import {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n GeneralInput,\n LabelText,\n} from '../modal-host/TablePopup.style';\n\nimport { useState } from 'react';\nimport { BackupCodeInfoText, ButtonsWrapper, VerificationWrapper } from './style';\nimport { parseServerErrors } from '../../utils/errors';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport { MFAPopupHeader } from '../popup-mfa/mfa-all-popups/style';\nimport { tActions, tAuthentication } from '../../utils/exportTranslation';\n\nconst EnterBackupCode = ({\n confirmationToken,\n backupCodeEndpoint,\n setBackupActivated,\n setVisible,\n id,\n setRefetchData,\n}: any) => {\n const [code, setCode] = useState();\n const [errorList, setErrorList] = useState<any[]>([]);\n async function handleSubmit() {\n try {\n const resp = await backupCodeEndpoint({ confirmationToken, code, id });\n\n if (resp?.data?.success) {\n setVisible(false);\n setRefetchData((prev: any) => !prev);\n }\n } catch (error: any) {\n const errorList = parseServerErrors(error?.response?.data?.errors);\n setErrorList(errorList);\n console.log(error);\n }\n }\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterBackupCode')}\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n\n <VerificationWrapper className={errorList.length > 0 ? 'verification-error' : ''}>\n <LabelText>{tAuthentication('BackupCode')}</LabelText>\n <GeneralInput\n value={code}\n onChange={(e: any) => setCode(e.target.value)}\n placeholder=\"xxxx-xxxx-xxxx\"\n />\n {errorList.map((error: any) => (\n <span key={error.name}>\n <ErrorSvg /> {error.errors[0]}\n </span>\n ))}\n <BackupCodeInfoText>{tAuthentication('BackupCodeSpan')}</BackupCodeInfoText>\n </VerificationWrapper>\n\n <ButtonsWrapper>\n <CancelModalButton\n onClick={() => {\n setBackupActivated(false);\n }}\n >\n {tActions('Back')}\n </CancelModalButton>\n\n <CreateModalButton onClick={handleSubmit}>\n <span className=\"arrow-styled\">\n {tActions('Continue')} <ArrowRightIcon />\n </span>\n </CreateModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\nexport default EnterBackupCode;\n","import styled from 'styled-components';\n\nexport const Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n`;\n\nexport const ModalContainer = styled.div`\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-quaternary, #2f2f2f);\n min-width: 300px;\n max-width: 500px;\n position: relative;\n animation: fadeIn 0.3s ease;\n`;\n","import { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModalContainer, Overlay } from './style';\n\nconst modalRoot =\n document.getElementById('modal-root') ||\n (() => {\n const el = document.createElement('div');\n el.id = 'modal-root';\n document.body.appendChild(el);\n return el;\n })();\n\nfunction Modal({ isOpen, onClose, children }: any) {\n useEffect(() => {\n const onKeyDown = (e: any) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [onClose]);\n\n if (!isOpen) return null;\n\n return ReactDOM.createPortal(\n <Overlay onClick={onClose}>\n <ModalContainer onClick={e => e.stopPropagation()}>{children}</ModalContainer>\n </Overlay>,\n modalRoot\n );\n}\n\nexport default Modal;\n","import { Input } from 'antd';\nimport {\n BlockedOtpHeader,\n BlockedOtpTitle,\n DidnotReceiveCodeSpan,\n ModalContentWrapper,\n OtpBlockedButton,\n OtpBlockedLabel,\n OtpContentWrapper,\n VerificationWrapper,\n} from './style';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { useState } from 'react';\nimport useUserStore from '../../stores/useUserStore';\nimport { parseServerErrors } from '../../utils/errors';\nimport EnterBackupCode from '../two-factor-popup/EnterBackupCodes';\nimport { BackupSpan } from '../two-factor-popup/style';\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport Modal from '../generic-modal';\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\nimport { usePackageServices } from '../../utils/PackageServicesProvider';\n\nenum MfaType {\n None = 1,\n OTP = 2,\n TOTP = 3,\n BackupCode = 4,\n}\n\nconst ModalText: any = {\n [MfaType.None]: `Enable2FaFirst`,\n [MfaType.OTP]: `ToViewOtpContactInfoDesc`,\n [MfaType.TOTP]: `ToViewTotpContactInfoDesc`,\n [MfaType.BackupCode]: `ToViewBackupCodeContactInfoDesc`,\n};\n\nconst ContactInfoModal = ({\n isVisible,\n setVisible,\n code,\n mfaType,\n id,\n isBlocked,\n onBlockStateClose,\n}: any) => {\n const { confirmContactInfo, confirmContactInfoBackup } = usePackageServices();\n const { setUser } = useUserStore();\n const [optValue, setOPTValue] = useState('');\n const [errors, setErrors] = useState<any[]>([]);\n const [backupActivated, setBackupActivated] = useState(false);\n\n function handleOTPChange(text: string) {\n setOPTValue(text);\n }\n async function handleSubmitVerificationCode() {\n const _confirm = confirmContactInfo;\n if (!_confirm) return;\n try {\n setErrors([]);\n const resp = await _confirm(code, optValue, id);\n setUser(resp.data.value as any);\n onClose();\n } catch (error: any) {\n console.log(error);\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = parseServerErrors(response.errors);\n setErrors(errorMessages);\n }\n }\n }\n\n async function handleSubmitBackupCode(params: any) {\n const _confirmBackup = confirmContactInfoBackup;\n if (!_confirmBackup) return;\n try {\n setErrors([]);\n const resp = await _confirmBackup(params);\n setUser(resp.data.value as any);\n } catch (error: any) {\n console.log(error);\n if (error.status === 400) {\n const response = error.response.data;\n const errorMessages = parseServerErrors(response.errors);\n setErrors(errorMessages);\n }\n }\n }\n\n function onClose() {\n setOPTValue('');\n setVisible(false);\n setErrors([]);\n }\n\n if (isBlocked) {\n return (\n <Modal isOpen={isBlocked} onClose={onBlockStateClose}>\n <OtpContentWrapper>\n <BlockedOtpHeader>\n <BlockedOtpTitle>\n <span>{tGeneral('ContactInformationBlocked')}</span>\n <span onClick={onBlockStateClose}>\n <CloseMarkIcon />\n </span>\n </BlockedOtpTitle>\n <OtpBlockedLabel>\n {tGeneral('ContactInformationBlockedDesc')}\n </OtpBlockedLabel>\n </BlockedOtpHeader>\n <OtpBlockedButton>\n {tGeneral('TryAgain')}\n <ArrowRightIcon />\n </OtpBlockedButton>\n </OtpContentWrapper>\n </Modal>\n );\n } else {\n return (\n <Modal isOpen={isVisible} onClose={onClose}>\n {!backupActivated ? (\n <ModalContentWrapper>\n <h2>{tAuthentication('EnterVerificationCode')}</h2>\n <p>{mfaType !== undefined ? tGeneral(ModalText[mfaType]) : ''}</p>\n {mfaType !== MfaType.None && (\n <>\n <VerificationWrapper\n className={errors.length > 0 ? 'verification-error' : ''}\n >\n <Input.OTP value={optValue} onChange={handleOTPChange} />\n <DidnotReceiveCodeSpan>\n {tAuthentication('DidnReceiveCode')}{' '}\n <BackupSpan onClick={() => setBackupActivated(true)}>\n {tAuthentication('EnterBackupCode')}\n </BackupSpan>\n </DidnotReceiveCodeSpan>\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <button\n onClick={handleSubmitVerificationCode}\n disabled={optValue.length !== 6}\n >\n {tActions('ShowContactInformation')}\n <ArrowRightIcon />\n </button>\n </>\n )}\n </ModalContentWrapper>\n ) : (\n <EnterBackupCode\n setBackupActivated={setBackupActivated}\n backupCodeEndpoint={handleSubmitBackupCode}\n confirmationToken={code}\n id={id}\n setVisible={setVisible}\n />\n )}\n </Modal>\n );\n }\n};\n\nexport default ContactInfoModal;\n","import { useState } from 'react';\nimport useUserStore from '../stores/useUserStore';\nimport { usePackageServices } from '../utils/PackageServicesProvider';\n\nexport const useContactInfoController = () => {\n const { enableContactInfo, disableContactInfo } = usePackageServices();\n const { setUser } = useUserStore();\n const [isContactInfoModalVisible, setIsContactInfoModalVisible] = useState(false);\n const [savedResp, setSavedResp] = useState<any>(null);\n const [isBlocked, setIsBlocked] = useState(false);\n\n const handleEnableContactInfo = async () => {\n if (!enableContactInfo) return;\n try {\n setIsBlocked(false);\n const resp = await enableContactInfo();\n setSavedResp({\n token: (resp.data?.value as any)?.token,\n id: (resp.data?.value as any)?.id,\n mfaType: (resp.data?.value as any)?.mfaType,\n });\n setIsContactInfoModalVisible(true);\n } catch (error: any) {\n const response = error.response?.data;\n const errorMessages: any = response?.errors;\n\n if (\n (errorMessages &&\n Array.isArray(errorMessages['']) &&\n errorMessages[''][0] === 'TooManyAttempts') ||\n errorMessages[''][0] === 'IsNotAllowed'\n ) {\n setIsBlocked(true);\n }\n }\n };\n\n async function handleDisableContactInfo() {\n if (!disableContactInfo) return;\n const resp = await disableContactInfo();\n setUser(resp.data.value as any);\n }\n\n const onBlockStateClose = () => {\n setIsBlocked(false);\n setIsContactInfoModalVisible(false);\n };\n\n return {\n isContactInfoModalVisible,\n setIsContactInfoModalVisible,\n isBlocked,\n setIsBlocked,\n onBlockStateClose,\n handleEnableContactInfo,\n handleDisableContactInfo,\n ContactInfoModalProps: {\n isVisible: isContactInfoModalVisible,\n setVisible: setIsContactInfoModalVisible,\n code: savedResp?.token,\n mfaType: savedResp?.mfaType,\n id: savedResp?.id,\n isBlocked: isBlocked,\n onBlockStateClose: onBlockStateClose,\n },\n };\n};\n","import { SettingSidebarWrapper, StyledNoGrouping } from './style';\nimport CloseSvg from '../../../../assets/icons/close.svg?react';\nimport CheckmarkFilledSvg from '../../../../assets/icons/checkmark-filled.svg?react';\nimport FilterSvg from '../../../../assets/icons/filter.svg?react';\nimport RefrechSvg from '../../../../assets/icons/arrow-refresh.svg?react';\nimport { Select } from 'antd';\nimport ContactInfoModal from '../../../../components/contact-info-modal';\nimport useUserStore from '../../../../stores/useUserStore';\nimport { Column, TableViewOptions } from '../../types';\nimport { useGridViewStore } from '../../GridViewStoreProvider';\nimport { useContactInfoController } from '../../../../hooks/useContactInfoController';\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\n\nconst SettingSidebar = ({ close }: any) => {\n const { user } = useUserStore();\n const columns = useGridViewStore(s => s.columns);\n const groupByArr = useGridViewStore(s => s.groupByArr);\n const hideItems = useGridViewStore(s => s.hideItems);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n const setActiveTableView = useGridViewStore(s => s.setActiveTableView);\n const setGroupByArr = useGridViewStore(s => s.setGroupByArr);\n const setHideItems = useGridViewStore(s => s.setHideItems);\n const resetStore = useGridViewStore(s => s.resetStore);\n const { handleEnableContactInfo, handleDisableContactInfo, ContactInfoModalProps } =\n useContactInfoController();\n function handleGroupChange(col: any) {\n const currentCol = columns.find((c: any) => c.dataIndex == col.value);\n setGroupByArr([currentCol]);\n }\n\n //DONT NEED NOW\n\n // function handleSubGroupChange(col: any) {\n // const currentCol = columns.find((c: any) => c.dataIndex == col.value);\n // setGroupByArr([groupByArr[0], currentCol]);\n // }\n\n function onHideSelectHandle(col: Column, isHide: boolean) {\n setHideItems({\n ...hideItems,\n [col.dataIndex]: isHide ? true : false,\n });\n }\n\n function formatDateDifference(date1: Date | string, date2: Date | string) {\n const d1 = new Date(date1);\n const d2 = new Date(date2);\n\n const diffMs = Math.abs(d2.getTime() - d1.getTime());\n\n const minutes = Math.floor(diffMs / (1000 * 60)) % 60;\n const hours = Math.floor(diffMs / (1000 * 60 * 60)) % 24;\n\n const parts = [];\n if (hours > 0) parts.push(`${hours}h`);\n if (minutes > 0) parts.push(`${minutes}m`);\n\n return parts.join(' ');\n }\n\n function onResetAllOptions() {\n resetStore();\n close();\n }\n\n return (\n <SettingSidebarWrapper>\n <header>\n <span>{tGeneral('ViewOptions')}</span>\n <button onClick={close}>\n <CloseSvg />\n </button>\n </header>\n\n <div className=\"setting-sidebar-content\">\n <ul className=\"table-view-list\">\n <li\n className={activeTableView == TableViewOptions.TABLE ? 'active' : ''}\n onClick={() => setActiveTableView(TableViewOptions.TABLE)}\n >\n <CheckmarkFilledSvg />\n <span>{tGeneral('Table')}</span>\n </li>\n <li\n className={activeTableView == TableViewOptions.LIST ? 'active' : ''}\n onClick={() => setActiveTableView(TableViewOptions.LIST)}\n >\n <FilterSvg />\n <span>{tGeneral('List')}</span>\n </li>\n </ul>\n\n <ul className=\"grouping-list\">\n <li>\n <span>{tGeneral('Grouping')}</span>\n <Select\n className={'teeest'}\n showSearch\n options={columns.map((col: any) => ({\n value: col.dataIndex,\n label: col.title,\n }))}\n labelInValue\n placeholder={\n <StyledNoGrouping>\n <FilterSvg />\n {tGeneral('NoGrouping')}\n </StyledNoGrouping>\n }\n value={groupByArr[0]?.dataIndex || null}\n onChange={handleGroupChange}\n />\n </li>\n {/* <li>\n\n\n DONT NEEED NOW\n\n\n <span>Sub grouping</span>\n <Select\n disabled={!groupByArr[0]?.dataIndex}\n showSearch\n options={columns\n .filter((col: any) => col.dataIndex != groupByArr[0]?.dataIndex)\n .map((col: any) => ({\n value: col.dataIndex,\n label: col.title,\n }))}\n labelInValue\n placeholder={\n <div>\n <FilterSvg />\n No grouping\n </div>\n }\n value={groupByArr[1]?.dataIndex || null}\n onChange={handleSubGroupChange}\n />\n </li> */}\n </ul>\n\n <div className=\"properties-list\">\n <span>{tGeneral('ShowProperties')}</span>\n <ul>\n {columns.map((col: any) => (\n <li\n key={col.dataIndex}\n className={hideItems[col.dataIndex] === true ? 'hide' : ''}\n onClick={() =>\n onHideSelectHandle(col, !(hideItems[col.dataIndex] === true))\n }\n >\n {col.title}\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n <footer>\n {user?.sensitiveDataExpiration &&\n new Date(user?.sensitiveDataExpiration) > new Date() ? (\n <button onClick={handleDisableContactInfo}>\n {tGeneral('HideContactInfo')} •{' '}\n {formatDateDifference(new Date(user?.sensitiveDataExpiration), new Date())}\n <CloseSvg />\n </button>\n ) : (\n <button onClick={handleEnableContactInfo}>\n {tActions('ShowContactInformation')} {}\n <CheckmarkFilledSvg />\n </button>\n )}\n\n <button onClick={onResetAllOptions}>\n {tActions('ResetAllOptions')}\n <RefrechSvg />\n </button>\n </footer>\n\n <ContactInfoModal {...ContactInfoModalProps} />\n </SettingSidebarWrapper>\n );\n};\n\nexport default SettingSidebar;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport useGridViewSessionStorage from './hooks/useGridViewSessionStorage';\nimport { useElementHeight } from '../../hooks/useElementHeight';\nimport { useGridViewStore } from './GridViewStoreProvider';\nimport { GridViewPageTableWrapper, PageTopContentWrapper, PageWrapper } from './style';\nimport PageHeader from './components/page-header/PageHeader';\nimport PageFilter from './components/PageFilter';\nimport Table from './components/Table';\nimport useUserStore from '../../stores/useUserStore';\nimport { useFetch } from '../../hooks/useFetch';\nimport SettingSidebar from './components/setting-sidebar';\nimport type { Column, GridViewPageProps } from './types';\n\nconst GridViewPage = ({\n columns,\n getData,\n update,\n hasCreateBtn,\n GridPageTopLeftComponent,\n contentAfterPageHeader,\n onRowClick,\n checkedValue,\n rowKey,\n pagination,\n CustomFilters,\n initialFilterValues,\n tableAdditionalFields,\n createIsModal,\n editButton,\n noPagination,\n noDataProps,\n exportButton,\n hasSelect,\n selectProps,\n TableComponent,\n tableProps = {},\n noNeedSidebarResponsiveButton,\n loadedData = () => {},\n}: GridViewPageProps) => {\n const { user } = useUserStore();\n const filters = useGridViewStore(s => s.filters);\n const filterItems = useGridViewStore(s => s.filterItems);\n const sortItems = useGridViewStore(s => s.sortItems);\n const hideItems = useGridViewStore(s => s.hideItems);\n const activeTableView = useGridViewStore(s => s.activeTableView);\n\n const setColumns = useGridViewStore(s => s.setColumns);\n const setHasCreateBtn = useGridViewStore(s => s.setHasCreateBtn);\n const setHasSelect = useGridViewStore(s => s.setHasSelect);\n\n const setCheckedValue = useGridViewStore(s => s.setCheckedValue);\n\n const { response, loading } = useFetch<any>(\n () => getData({ ...filters, ...initialFilterValues }),\n [filters, user, update]\n );\n\n useGridViewSessionStorage();\n\n useEffect(() => {\n if (response?.data) {\n loadedData(response.data);\n }\n }, [response, loadedData]);\n\n const [isSettingPopupVisible, setisSettingPopupVisible] = useState(false);\n\n const pageTopContent: any = useRef(null);\n const topContentHeight = useElementHeight(pageTopContent);\n\n const currentColumns = useMemo(() => {\n const arr = columns.filter((c: Column) => hideItems[c.dataIndex] !== true);\n return arr;\n }, [columns, hideItems]);\n\n useEffect(() => {\n setHasCreateBtn(hasCreateBtn || false);\n setHasSelect(hasSelect || false);\n }, [hasSelect]);\n\n // here goes the logic for managing the NameMyreports state and then passing it through components.\n useEffect(() => {\n setColumns(columns);\n }, [columns]);\n\n useEffect(() => {\n setCheckedValue(checkedValue);\n }, [checkedValue]);\n\n return (\n <PageWrapper>\n <PageTopContentWrapper ref={pageTopContent}>\n <PageHeader\n noNeedSidebarResponsiveButton={noNeedSidebarResponsiveButton}\n hasSelect={hasSelect}\n selectProps={selectProps}\n exportButton={exportButton}\n setisSettingPopupVisible={setisSettingPopupVisible}\n CustomFilters={CustomFilters}\n tableAdditionalFields={tableAdditionalFields}\n createIsModal={createIsModal}\n GridPageTopLeftComponent={GridPageTopLeftComponent}\n />\n {contentAfterPageHeader}\n {(filterItems.length > 0 || sortItems.length > 0) && <PageFilter />}\n </PageTopContentWrapper>\n\n <GridViewPageTableWrapper height={`calc(100vh - ${`${topContentHeight}px`})`}>\n {TableComponent ? (\n <TableComponent\n dataSource={response?.data?.items || []}\n {...tableProps}\n rowKey={rowKey || 'id'}\n columns={[\n {\n title: '',\n dataIndex: '',\n },\n ...currentColumns,\n ]}\n loading={loading}\n pagination={{\n current: filters.Page,\n pageSize: filters.PageSize,\n items: pagination?.items,\n }}\n />\n ) : (\n <Table\n noPagination={noPagination}\n editButton={editButton}\n createIsModal={createIsModal}\n rowKey={rowKey || 'id'}\n columns={[\n {\n title: '',\n dataIndex: '',\n },\n ...currentColumns,\n ]}\n dataSource={response?.data?.items || []}\n loading={loading}\n pagination={{\n current: filters.Page,\n pageSize: filters.PageSize,\n items: pagination?.items,\n }}\n activeTableView={activeTableView}\n totalItemCount={response?.data?.totalItemCount || 0}\n onRowClick={onRowClick}\n noDataProps={noDataProps || null}\n />\n )}\n </GridViewPageTableWrapper>\n {isSettingPopupVisible && (\n <SettingSidebar close={() => setisSettingPopupVisible(false)} />\n )}\n </PageWrapper>\n );\n};\n\nexport default GridViewPage;\n","import GridViewPage from '../GridViewPage/GridViewPage';\nimport { GridViewStoreProvider } from './GridViewStoreProvider';\n\nconst GridViewPageWrapper = (props: any) => {\n return (\n <GridViewStoreProvider>\n <GridViewPage {...props} />\n </GridViewStoreProvider>\n );\n};\n\nexport default GridViewPageWrapper;\n","import React, { useEffect } from 'react';\nimport useModalStore from '../../stores/useModalStore';\nimport {\n CancelModalButton,\n CloseButton,\n ModalHostButtonWrapper,\n Popup,\n PopupFooterContainer,\n PopupHeader,\n} from './TablePopup.style';\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\nimport { useLocation } from 'react-router';\n\nconst ModalHost: React.FC = () => {\n const isOpen = useModalStore(state => state.isOpen);\n const options = useModalStore(state => state.options);\n const close = useModalStore(state => state.close);\n const location = useLocation();\n\n useEffect(() => {\n if (isOpen) {\n close();\n }\n }, [location.pathname]);\n\n if (!options || !isOpen) return null;\n\n const {\n title,\n component: Component,\n componentProps,\n popupOptions,\n footerOptions,\n hideFooter,\n showCloseButton,\n onOk,\n onCancel,\n } = options;\n\n const handleCancel = () => {\n onCancel?.();\n };\n\n const handleOk = () => {\n onOk?.();\n };\n\n return (\n <Popup\n centered\n title={\n title || showCloseButton ? (\n <PopupHeader>\n <span>{title}</span>\n {showCloseButton && (\n <CloseButton onClick={close}>\n <CloseMarkIcon />\n </CloseButton>\n )}\n </PopupHeader>\n ) : undefined\n }\n {...popupOptions}\n >\n {Component && <Component {...componentProps} />}\n\n {!hideFooter && (\n <PopupFooterContainer>\n <CancelModalButton onClick={handleCancel}>\n {footerOptions?.cancelText}\n </CancelModalButton>\n\n <ModalHostButtonWrapper\n onClick={handleOk}\n role=\"button\"\n tabIndex={0}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') handleOk();\n }}\n >\n {footerOptions?.okText}\n </ModalHostButtonWrapper>\n </PopupFooterContainer>\n )}\n </Popup>\n );\n};\n\nexport default ModalHost;\n","import { ReactNode } from 'react';\nimport { Popup } from '../modal-host/TablePopup.style';\n\ninterface PopupMFAProps {\n displayAddRuleModal: boolean;\n onClose: () => void;\n title?: string;\n hideFooter?: boolean;\n children: ReactNode;\n}\n\nconst PopupMFA = ({\n displayAddRuleModal,\n onClose,\n title,\n hideFooter = false,\n children,\n}: PopupMFAProps) => {\n return (\n <Popup\n open={displayAddRuleModal}\n onCancel={onClose}\n closeIcon={false}\n title={title}\n footer={hideFooter ? null : undefined}\n destroyOnClose\n centered\n >\n {children}\n </Popup>\n );\n};\n\nexport default PopupMFA;\n","import { MFA_STEP } from '.';\nimport {\n CancelModalButton,\n ContentContainer,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { MFAPopupHeader } from './style';\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst SelectMFAMethod = ({\n onClose,\n setCurrentStep,\n setConfirmationToken,\n enableTwoFactorService,\n setRefetch,\n setIdOf2FA,\n}: any) => {\n async function getEmailToken() {\n const _enable = enableTwoFactorService;\n if (!_enable) return;\n try {\n const resp = await _enable();\n\n if (resp.data?.value?.isTwoFactorRequired) {\n setConfirmationToken(resp.data.value.token);\n setIdOf2FA(resp.data.value.id);\n setCurrentStep(MFA_STEP.VERIFY_EMAIL_CODE);\n } else if (resp?.data?.success && !resp?.data?.value) {\n //MEANS THAT it was activated before and it should automatically close\n setRefetch((prev: any) => !prev);\n onClose();\n } else {\n onClose();\n }\n } catch (error) {\n console.error('Failed to toggle 2FA:', error);\n }\n }\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('SetupTwoFactorAuthentication')}\n <LabelText>{tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <ButtonsWrapper onClick={getEmailToken}>\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{tGeneral('Email')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n <ButtonsWrapper onClick={() => setCurrentStep(MFA_STEP.SELECT_AUTHENTICATOR_APP)}>\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{tAuthentication('AuthenticatorApp')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default SelectMFAMethod;\n","import { Input } from 'antd';\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\n\nimport { MFAPopupHeader, VerificationWrapper } from './style';\nimport { useState } from 'react';\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\nimport { MFA_STEP } from '.';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst VerifyAuthenticatorCode = ({\n onClose,\n setCurrentStep,\n setBackupCodes,\n setRefetch,\n confirmTwoFactorService,\n}: any) => {\n const [optValue, setOPTValue] = useState('');\n const [errors, _setErrors] = useState<any[]>([]);\n\n function handleOTPChange(text: string) {\n setOPTValue(text);\n }\n\n async function handleContinue() {\n const _verify = confirmTwoFactorService;\n if (!_verify) return;\n try {\n const resp = await _verify(optValue);\n if (resp.data?.success) {\n setCurrentStep(MFA_STEP.BACKUP_CODES);\n setBackupCodes((resp.data.value as any).recoveryCodes);\n }\n } catch (err) {\n console.log(err);\n } finally {\n setRefetch((prev: any) => prev + 1);\n }\n }\n\n return (\n <div>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication('YouMaySeeVerificationCode')}</LabelText>\n </MFAPopupHeader>\n <VerificationWrapper>\n <Input.OTP value={optValue} onChange={handleOTPChange} />\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n <CancelModalButton onClick={handleContinue}>\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default VerifyAuthenticatorCode;\n","import { MFA_STEP } from '.';\nimport {\n CancelModalButton,\n ContentContainer,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { MFAPopupHeader } from './style';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst SelectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\n const authenticatorApps = [\n tAuthentication('Microsoft'),\n tAuthentication('Google'),\n tAuthentication('Other'),\n ];\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('SetupTwoFactorAuthentication')}\n <LabelText> {tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n {authenticatorApps.map(app => (\n <ButtonsWrapper\n key={app}\n onClick={() => setCurrentStep(MFA_STEP.CONNECT_AUTHENTICATOR)}\n >\n <PopupFooterContainer>\n <CancelModalButton>\n <span>{app}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </PopupFooterContainer>\n </ButtonsWrapper>\n ))}\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default SelectAuthenticatorApp;\n","import styled from 'styled-components';\r\n\r\nexport const QrWrapper = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const QrInputWrapper = styled.div`\r\n position: relative;\r\n width: 100%;\r\n input {\r\n padding-right: 35px;\r\n &.ant-input-disabled {\r\n color: var(--color-text-primary, #131412);\r\n cursor: pointer;\r\n }\r\n }\r\n`;\r\n\r\nexport const AuthenticatorQrCopyWrapper = styled.div`\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n cursor: pointer;\r\n width: 20px;\r\n height: 20px;\r\n`;\r\n\r\nexport const AuthenticatoQrInpuWrapper = styled.div`\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 5px;\r\n`;\r\n\r\nexport const QrModalButtonWrapper = styled.div`\r\n width: 100%;\r\n display: flex;\r\n gap: 1px;\r\n`;\r\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n constructor(input) {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n _defineProperty(this, \"isValid\", true);\n /**\n * Red, R in RGB\n */\n _defineProperty(this, \"r\", 0);\n /**\n * Green, G in RGB\n */\n _defineProperty(this, \"g\", 0);\n /**\n * Blue, B in RGB\n */\n _defineProperty(this, \"b\", 0);\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n _defineProperty(this, \"a\", 1);\n // HSV privates\n _defineProperty(this, \"_h\", void 0);\n _defineProperty(this, \"_s\", void 0);\n _defineProperty(this, \"_l\", void 0);\n _defineProperty(this, \"_v\", void 0);\n // intermediate variables to calculate HSL/HSV\n _defineProperty(this, \"_max\", void 0);\n _defineProperty(this, \"_min\", void 0);\n _defineProperty(this, \"_brightness\", void 0);\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = new FastColor(color);\n var hsv = pColor.toHsv();\n for (var i = lightColorCount; i > 0; i -= 1) {\n var c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _c = new FastColor({\n h: getHue(hsv, _i),\n s: getSaturation(hsv, _i),\n v: getValue(hsv, _i)\n });\n patterns.push(_c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref) {\n var index = _ref.index,\n amount = _ref.amount;\n return new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString();\n });\n }\n return patterns.map(function (c) {\n return c.toHexString();\n });\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n red: red,\n volcano: volcano,\n orange: orange,\n gold: gold,\n yellow: yellow,\n lime: lime,\n green: green,\n cyan: cyan,\n blue: blue,\n geekblue: geekblue,\n purple: purple,\n magenta: magenta,\n grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls,\n layer = _useContext.layer;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = \"@layer \".concat(layer, \" {\\n\").concat(mergedStyleStr, \"\\n}\");\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\n\n/**![copy](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CopyOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CopyOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\n\n/**![download](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownloadOutlined';\n}\nexport default RefIcon;","import {\n CancelModalButton,\n ContentContainer,\n GeneralInput,\n LabelText,\n PopupFooterContainer,\n} from '../../modal-host/TablePopup.style';\n\nimport {\n AuthenticatoQrInpuWrapper,\n AuthenticatorQrCopyWrapper,\n QrInputWrapper,\n QrModalButtonWrapper,\n QrWrapper,\n} from '../style';\nimport { CopyOutlined } from '@ant-design/icons';\nimport { useEffect, useState } from 'react';\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\nimport { MFA_STEP } from '.';\nimport { handleCopy } from '../../../utils/functions';\nimport { Spin } from 'antd';\nimport { MFAPopupHeader, SpinWrapper } from './style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\n\n// {\n// \"totpSecret\": \"WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====\",\n// \"qrCodeImage\": \"iVBORw0KGgoAAAANSUhEUgAAAVkAAAFZAQAAAAAaiWF2AAAE0klEQVR4nO1aSw7iSAw1YpElR8hNyMUiEYmLwU3qCLVkEeF5nwDp7hmpF90Lj8gCQfIKKbbLfn7lyN+/lviCv+Av+C+Ae0Qc+iWH2+maMfH2M+Yxb6d1jENmG25ADIXBl8x7P2bEKdvjgHv8GOOMtVhxbcMd6yuD58DPFe/bYQPcG2UXXGvQLnjaYywPvubwpFf1FN/G4GXc/wScWkErAHVs72WR1cGMZ7kbm/MRJ67oR0X2KFz+HPzVwMpIM736Hx+/pK9aYF/XhCHw+rc4yhr8CD5dx18LUDEwMyt2qIoIUhCTr/YqQuChrxMLS10wIhY/UUnO2KZ4OrNUyi4xIqhXoE9LFAanyqI27Iqn3Ktatn3jhmXSqgvGPVgDrhUNuHd5mDm2X2gc8qG4tCwMnvnwwhwLa6CcgNedksuAIx9iVn7Hc0Ew3M0VJDsAc3OS4TkF6adiPAuDXSobtyntcnQNRSjDyWIFdPdQF0yHbhRnZsoF5BZmBeEMfPCfVgUjvbpeApfavyyVqimvEoM4GOqC1XCgsDDRihqQBSFLnU/OUrTL9ZOR6oF5Ya+GPP1g8o0zvM94ZrZVSf2YriC4q2CkuA8aY+YmpmEsUxu5hHrnyuBZ9A3uZti618CKmERc8c1NSGEwss8kYsMHE2keA1jkjtyHPj9mabAa4yZCYBVnIuOh44NB/eC9oS6YOD4dntTc2Pnb8aozknJYYgqD/eaXFLlTwyFqQLrqjCSOnnXBafECBRKVkyZhyg2Wk4XfUGcOu06zILirR8z0h+oHmTlYgWge+dCLx9YEp146JJ029fs0hLUbUgMkqI8EVxPMAJ6ptC1jbJG97VBefloYbDXq0oTLFMXpoj3EUedXVi4MjrdrN/10YGMsJ7P9b8Oe9lQE2xop2eYlL6rLEj+QcUqDcyuVg/rGt4DDjireP6Mw2MGaPldLUXEFtXAHt5bXPa+rBlaHgft+87MUKsupVKjYIu8FyYJghvJEXergA7cj7ZLuiUn40n9QGLyJ3yj+KiLcumIF3Kak7OiOr5/dXQ8snYaEYGsedf5Loh6Sj8kUdq1HSXDIvxKiNplKTIGaKtOSC0tdsNSorc2g0IgAnrpYEFPuVlejMBh7VclIirDajGT/4YMbGeJ2eh8HVwRb3wirOPY+w1s6XPKokXyoFQYr28oaavr5oRLjatpfcxl1wT4znLeWUWfCTEv6g80Q/dgqg51jKUStEhrddbA75jIpxzvNvB7Y1xqiAR43EUmY3EtqJ+/O2uqB+zall57B8JwbvY+iqRKD8P7wuoJgXk/nHOmn5AJMUJRyWGyaD8LrgnmQ4bHLjYBb7NcKjhOx/8jSYPUa3pe+55EMC42h8F7GwmCNzVAM1qEox/d0rOgsNWme4QfiWg7MivhUju1by6ig1jG+iKuPGiuDdVzYJJ1q/jk8SsNtqv5Dsn9dsC53/oA8NeNlQrB4LoM/fyhAxcBOPD4tJblbQpLjbuRL80OFwZf3FM3sA26Livf+b4JkRbDmn5fwtNdT6QlOtrt5yhjhJqQ2mCNfeGkNYuyV1Nco5lAdfE29NE8zGie6myz0YKCHh77rgv36GoFi558bXb27T17rg0PMTfy05XukVHZRbiKtrQz+7esL/oK/4D8P/gc1+xu9btDsTAAAAABJRU5ErkJggg==\",\n// \"provisioningUri\": \"otpauth://totp/kezherashvilinika+1@gmail.com?secret=WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====&issuer=Affiliate system\"\n// }\n\nconst ConnectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\n const { initiateMFA } = usePackageServices();\n const [data, setData] = useState<any>(null);\n\n async function init() {\n if (!initiateMFA) return;\n try {\n const resp = await initiateMFA();\n setData(resp.data.value);\n } catch (err) {\n console.log(err);\n }\n }\n\n useEffect(() => {\n init();\n }, []);\n\n return (\n <div>\n {data ? (\n <>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterAuthenticationCode')}\n </MFAPopupHeader>\n </ContentContainer>\n <QrWrapper>\n <img src={`data:image/png;base64,${data.qrCodeImage}`} />\n </QrWrapper>\n <br />\n <AuthenticatoQrInpuWrapper>\n <LabelText> {tAuthentication('CopyCodeManually')}</LabelText>\n <QrInputWrapper onClick={() => handleCopy(data.totpSecret)}>\n <GeneralInput value={data.totpSecret} disabled />\n <AuthenticatorQrCopyWrapper>\n <CopyOutlined />\n </AuthenticatorQrCopyWrapper>\n </QrInputWrapper>\n </AuthenticatoQrInpuWrapper>\n <PopupFooterContainer>\n <QrModalButtonWrapper>\n <CancelModalButton onClick={onClose}>\n {tActions('Cancel')}\n </CancelModalButton>\n <CancelModalButton\n onClick={() => setCurrentStep(MFA_STEP.VERIFY_AUTHENTICATOR_CODE)}\n >\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </QrModalButtonWrapper>\n </PopupFooterContainer>\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </div>\n );\n};\n\nexport default ConnectAuthenticatorApp;\n","import {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n LabelText,\n} from '../../modal-host/TablePopup.style';\n\nimport { useState } from 'react';\nimport { MFAPopupHeader, PasswordInput, PasswordInputWrapper } from './style';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst DisableAuthenticator = ({ onClose, setRefetch, disableMFAService }: any) => {\n const [optValue, setOPTValue] = useState('');\n\n function handleOTPChange(e: any) {\n setOPTValue(e.target.value);\n }\n\n async function handleContinue() {\n if (!disableMFAService) return;\n try {\n await disableMFAService(optValue);\n onClose();\n } catch (err) {\n console.log(err, 'err');\n } finally {\n setRefetch((prev: number) => prev + 1);\n }\n }\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('DisableTwoFactor')}\n <LabelText>{tAuthentication('DisableTwoFactorDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <PasswordInputWrapper>\n <LabelText>{tGeneral('Password')}</LabelText>\n <PasswordInput\n value={optValue}\n onChange={handleOTPChange}\n placeholder={tGeneral('EnterPassword')}\n />\n </PasswordInputWrapper>\n\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n <CreateModalButton onClick={handleContinue}>\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CreateModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default DisableAuthenticator;\n","import { Input, Spin } from 'antd';\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\n\nimport { MFAPopupHeader, SpinWrapper, VerificationWrapper } from './style';\nimport { useState } from 'react';\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst VerifyEmailCode = ({\n onClose,\n confirmationToken,\n setRefetch,\n idOf2FA,\n confirmTwoFactorService,\n}: any) => {\n const [otpValue, setOtpValue] = useState('');\n const [errors, _setErrors] = useState<any[]>([]);\n\n function handleOTPChange(text: string) {\n setOtpValue(text);\n }\n\n async function handleContinue() {\n if (!confirmTwoFactorService) return;\n try {\n const resp: any = await confirmTwoFactorService({\n confirmationToken,\n code: otpValue,\n id: idOf2FA,\n });\n if (resp.data.success) {\n onClose();\n }\n } catch (err) {\n console.log(err);\n } finally {\n setRefetch((prev: number) => prev + 1);\n }\n }\n\n return (\n <div>\n {confirmationToken ? (\n <>\n <MFAPopupHeader>\n <div>{tAuthentication('EnterVerificationCode')}</div>\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n <VerificationWrapper>\n <Input.OTP value={otpValue} onChange={handleOTPChange} />\n {errors.map(error => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n </VerificationWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>\n {tActions('Cancel')}\n </CancelModalButton>\n <CancelModalButton\n onClick={handleContinue}\n disabled={otpValue?.length != 6}\n >\n <span>{tActions('Continue')}</span>\n <ArrowRightIcon />\n </CancelModalButton>\n </ButtonsWrapper>\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </div>\n );\n};\n\nexport default VerifyEmailCode;\n","import { CancelModalButton, ContentContainer, LabelText } from '../../modal-host/TablePopup.style';\nimport { BackupCodeWrapper, MFAPopupHeader } from './style';\nimport { Button } from 'antd';\nimport { DownloadOutlined } from '@ant-design/icons';\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\n\nconst BackupCodes = ({ onClose, backupCodes }: any) => {\n const handleDownload = () => {\n const content = backupCodes.join('\\n');\n const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n\n const a = document.createElement('a');\n a.href = url;\n a.download = 'backup-codes.txt';\n a.click();\n\n URL.revokeObjectURL(url);\n };\n\n return (\n <div>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <BackupCodeWrapper>\n <Button type=\"primary\" icon={<DownloadOutlined />} onClick={handleDownload}>\n {tAuthentication('DownloadBackupCodes')}\n </Button>\n </BackupCodeWrapper>\n <ButtonsWrapper>\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\n </ButtonsWrapper>\n </div>\n );\n};\n\nexport default BackupCodes;\n","import React, { useMemo, useState } from 'react';\nimport SelectMFAMethod from './SelectMFAMethod';\nimport VerifyAuthenticatorCode from './VerifyAuthenticatorCode';\nimport SelectAuthenticatorApp from './SelectAuthenticatorApp';\nimport ConnectAuthenticatorApp from './ConnectAuthenticatorApp';\nimport DisableAuthenticator from './DisableAuthenticator';\nimport VerifyEmailCode from './VerifyEmailCode';\nimport BackupCodes from './BackupCodes';\nimport PopupMFA from '../PopupMFA';\n\nexport enum MFA_STEP {\n SELECT_MFA_OPTION,\n SELECT_AUTHENTICATOR_APP,\n CONNECT_AUTHENTICATOR,\n VERIFY_AUTHENTICATOR_CODE,\n VERIFY_EMAIL_CODE,\n DISABLE_AUTHENTICATOR,\n BACKUP_CODES,\n ENTER_BACKUP_CODE,\n}\n\nexport interface ConfirmTwoFactorParam {\n confirmationToken: string;\n code: string;\n id: number;\n}\n\ninterface ModalManagerProps {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n modal?: MFA_STEP;\n setRefetch?: React.Dispatch<React.SetStateAction<boolean>>;\n enableTwoFactorService?: () => Promise<any>;\n disableMFAService?: () => Promise<any>;\n confirmTwoFactorService?: (param: ConfirmTwoFactorParam) => Promise<any>;\n}\n\nconst ModalManager = ({\n isOpen,\n setIsOpen,\n modal = MFA_STEP.SELECT_MFA_OPTION,\n setRefetch,\n enableTwoFactorService,\n disableMFAService,\n confirmTwoFactorService,\n}: ModalManagerProps) => {\n const [currentStep, setCurrentStep] = useState(modal);\n const [confirmationToken, setConfirmationToken] = useState<string>('');\n const [idOf2FA, setIdOf2FA] = useState();\n const [backupCodes, setBackupCodes] = useState('');\n\n function onClose() {\n setIsOpen(false);\n }\n\n // map step -> component\n const StepComponent = useMemo(() => {\n switch (currentStep) {\n case MFA_STEP.SELECT_MFA_OPTION:\n return SelectMFAMethod;\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\n return SelectAuthenticatorApp;\n case MFA_STEP.CONNECT_AUTHENTICATOR:\n return ConnectAuthenticatorApp;\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\n return VerifyAuthenticatorCode;\n case MFA_STEP.VERIFY_EMAIL_CODE:\n return VerifyEmailCode;\n case MFA_STEP.DISABLE_AUTHENTICATOR:\n return DisableAuthenticator;\n case MFA_STEP.BACKUP_CODES:\n return BackupCodes;\n\n default:\n return SelectMFAMethod;\n }\n }, [currentStep]);\n\n // map props per step\n const stepProps = useMemo(() => {\n switch (currentStep) {\n case MFA_STEP.SELECT_MFA_OPTION:\n return {\n onClose,\n setCurrentStep,\n setConfirmationToken,\n setRefetch,\n setIdOf2FA,\n enableTwoFactorService,\n disableMFAService,\n };\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\n return { onClose, setCurrentStep };\n case MFA_STEP.CONNECT_AUTHENTICATOR:\n return { onClose, setCurrentStep };\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\n return {\n onClose,\n setCurrentStep,\n setBackupCodes,\n setRefetch,\n confirmTwoFactorService,\n };\n case MFA_STEP.VERIFY_EMAIL_CODE:\n return {\n onClose,\n setCurrentStep,\n confirmationToken,\n setRefetch,\n idOf2FA,\n confirmTwoFactorService,\n };\n case MFA_STEP.DISABLE_AUTHENTICATOR:\n return { onClose, setRefetch, disableMFAService };\n case MFA_STEP.BACKUP_CODES:\n return { onClose, backupCodes };\n case MFA_STEP.ENTER_BACKUP_CODE:\n return { onClose, confirmationToken, setRefetch, idOf2FA };\n default:\n return { onClose };\n }\n }, [currentStep, confirmationToken, backupCodes]);\n\n return (\n <PopupMFA displayAddRuleModal={isOpen} onClose={onClose} hideFooter>\n <StepComponent {...stepProps} />\n </PopupMFA>\n );\n};\n\nexport default ModalManager;\n","import styled from 'styled-components';\nimport ArrowLeft from '../../assets/icons/arrow-left.svg?react';\n\nexport const PageBreadcrumbWrapper = styled.div`\n height: var(--size-800, 4rem);\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 1.5rem;\n\n button {\n border: none;\n outline: none;\n transition: 0.1s;\n }\n\n .icon {\n border-radius: 50%;\n width: 2rem;\n height: 2rem;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n\n path {\n fill: var(--color-icon-primary, #131412);\n }\n }\n\n .page-starter {\n display: flex;\n gap: 0.12rem;\n }\n`;\n\nexport const BackButton = styled.div`\n cursor: pointer;\n`;\n\nexport const StyledArrowLeft = styled(ArrowLeft)`\n width: 10.943px !important;\n height: 8.552px !important;\n\n path {\n fill: var(--color-icon-primary, #131412) !important;\n }\n`;\n","import { Breadcrumb } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledBreadcrumb = styled(Breadcrumb)`\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n padding: 0.44rem 0.75rem;\r\n border-radius: var(--border-radius-050, 1rem);\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n .ant-breadcrumb-separator {\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\r\n }\r\n .ant-breadcrumb-link {\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n`;\r\n","import { BackButton, PageBreadcrumbWrapper, StyledArrowLeft } from './style';\nimport { StyledBreadcrumb } from '../../styled-components/breadcrumb';\nimport type { PageBreadcrumbProps } from './types';\nimport { useNavigate } from 'react-router';\n\nconst PageBreadcrumb = ({\n breadcrumbItems,\n logo,\n button,\n className,\n backButton = <StyledArrowLeft />,\n}: PageBreadcrumbProps) => {\n const navigate = useNavigate();\n return (\n <PageBreadcrumbWrapper className={className || ''}>\n <div className=\"page-starter\">\n {logo ? (\n <div className=\"icon\">{logo}</div>\n ) : (\n <BackButton className=\"icon\" onClick={() => navigate(-1)}>\n {backButton}\n </BackButton>\n )}\n <StyledBreadcrumb items={breadcrumbItems} />\n </div>\n <div>{button && button}</div>\n </PageBreadcrumbWrapper>\n );\n};\n\nexport default PageBreadcrumb;\n","export enum MfaType {\n None = 1,\n OTP = 2,\n TOTP = 3,\n BackupCode = 4,\n}\nexport const ModalText: any = {\n [MfaType.None]: '',\n [MfaType.OTP]: 'OtpDesc',\n [MfaType.TOTP]: 'TotpDesc',\n [MfaType.BackupCode]: 'TotpDesc',\n};\n","import { Input, Spin } from 'antd';\nimport { useEffect, useState } from 'react';\nimport {\n CancelModalButton,\n ContentContainer,\n CreateModalButton,\n LabelText,\n Popup,\n} from '../modal-host/TablePopup.style';\nimport { BackupSpan, ButtonsWrapper, DidnotReceiveCodeSpan, VerificationWrapper } from './style';\nimport EnterBackupCode from './EnterBackupCodes';\nimport { MFAPopupHeader, SpinWrapper } from '../popup-mfa/mfa-all-popups/style';\nimport { MfaType, ModalText } from './constants';\nimport ErrorSvg from '../../assets/icons/error.svg?react';\nimport { parseServerErrors } from '../../utils/errors';\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\n\ntype TwoFactorPopupPropType = {\n confirmTwoFactor: any;\n resendOTP?: any;\n confirmationToken: string;\n updatedResponse?: any;\n backupCodeEndpoint?: any;\n setVisible: any;\n visible: any;\n setRefetchData?: any;\n mfaType: any;\n id: any;\n};\n\nconst TwoFactorPopup = ({\n confirmTwoFactor,\n resendOTP,\n confirmationToken,\n updatedResponse,\n mfaType = 1,\n id,\n setRefetchData,\n backupCodeEndpoint,\n setVisible,\n visible,\n}: TwoFactorPopupPropType) => {\n const [otpValue, setOtpValue] = useState('');\n const [disabledUntilMinutePasses, setDisabledUntilMinutePasses] = useState(true);\n const [timeLeft, setTimeLeft] = useState(60);\n const [errorList, setErrorList] = useState<any[]>([]);\n\n const [backupActivated, setBackupActivated] = useState(false);\n\n async function onSave() {\n if (!otpValue) return;\n try {\n const resp = await confirmTwoFactor({ confirmationToken, code: otpValue, id });\n if (resp?.data?.success) {\n setVisible(false);\n if (setRefetchData) {\n setRefetchData((prev: any) => !prev);\n }\n }\n } catch (error: any) {\n const errorList: any = parseServerErrors(error?.response?.data?.errors);\n setErrorList(errorList);\n console.log('Error in Save OTP', error);\n }\n }\n\n async function handleResendOTP() {\n if (!resendOTP) return;\n try {\n const resp = await resendOTP(confirmationToken, id);\n if (resp.data.success) {\n updatedResponse(resp);\n setDisabledUntilMinutePasses(true);\n setTimeLeft(60);\n }\n } catch (err) {\n console.log('Error in OTP resend', err);\n }\n }\n\n function handleCancel() {\n setVisible(false);\n }\n\n function handleOTPChange(val: any) {\n setOtpValue(val);\n }\n\n useEffect(() => {\n if (!disabledUntilMinutePasses) return;\n\n const interval = setInterval(() => {\n setTimeLeft(prev => {\n if (prev <= 1) {\n clearInterval(interval);\n setDisabledUntilMinutePasses(false);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => clearInterval(interval);\n }, [disabledUntilMinutePasses]);\n\n return (\n <Popup open={visible} onCancel={handleCancel} footer={[null]}>\n {confirmationToken ? (\n <>\n {!backupActivated ? (\n <>\n <ContentContainer>\n <MFAPopupHeader>\n {tAuthentication('EnterVerificationCode')}\n <LabelText>{tAuthentication(ModalText[mfaType])}</LabelText>\n </MFAPopupHeader>\n </ContentContainer>\n <VerificationWrapper\n className={errorList.length > 0 ? 'verification-error' : ''}\n >\n <Input.OTP value={otpValue} onChange={handleOTPChange} />\n {errorList.map((error: any) => (\n <span key={error.name}>\n <ErrorSvg />\n {error.errors[0]}\n </span>\n ))}\n <DidnotReceiveCodeSpan>\n {tAuthentication('DidnReceiveCode')}{' '}\n <BackupSpan onClick={() => setBackupActivated(true)}>\n {tAuthentication('EnterBackupCode')}\n </BackupSpan>\n </DidnotReceiveCodeSpan>\n </VerificationWrapper>\n <ButtonsWrapper>\n {mfaType !== MfaType.TOTP && (\n <CancelModalButton\n disabled={disabledUntilMinutePasses}\n onClick={handleResendOTP}\n >\n {disabledUntilMinutePasses\n ? `${tAuthentication('ResendAvailable')} ${timeLeft} ${tGeneral('Second')}`\n : `${tAuthentication('Resend')}`}\n </CancelModalButton>\n )}\n\n <CreateModalButton\n onClick={onSave}\n disabled={otpValue?.length !== 6 && mfaType !== MfaType.TOTP}\n >\n <span> {tActions('Continue')}</span>\n <ArrowRightIcon />\n </CreateModalButton>\n </ButtonsWrapper>\n </>\n ) : (\n <>\n <EnterBackupCode\n setBackupActivated={setBackupActivated}\n backupCodeEndpoint={backupCodeEndpoint}\n setVisible={setVisible}\n id={id}\n setRefetchData={setRefetchData}\n confirmationToken={confirmationToken}\n />\n </>\n )}\n </>\n ) : (\n <SpinWrapper>\n <Spin />\n </SpinWrapper>\n )}\n </Popup>\n );\n};\n\nexport default TwoFactorPopup;\n","import styled from 'styled-components';\n\nexport const ChartWrapper = styled.div`\n width: 100%;\n height: 100%;\n`;\n","import { useEffect } from 'react';\nimport * as echarts from 'echarts';\nimport { ChartWrapper } from './style';\n\nconst Chart = ({ option }: any) => {\n useEffect(() => {\n const chartDom = document.getElementById('my-chart');\n const chartInstance = echarts.init(chartDom);\n\n chartInstance.setOption(option);\n\n const resizeHandler = () => chartInstance.resize();\n window.addEventListener('resize', resizeHandler, { passive: true, capture: true });\n\n return () => {\n window.removeEventListener('resize', resizeHandler);\n chartInstance.dispose();\n };\n }, [option]);\n\n return <ChartWrapper id=\"my-chart\" />;\n};\n\nexport default Chart;\n","import { Spin } from 'antd';\nimport styled from 'styled-components';\n\ninterface SpinnerProps {\n backgroundcolor: any;\n}\n\nexport const SpinnerWrapper = styled.div<SpinnerProps>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n background-color: ${(props: any) => props.backgroundcolor};\n`;\n\nexport const StyledSpin = styled(Spin)<SpinnerProps>`\n .ant-spin-dot-item {\n background-color: ${(props: any) => props.backgroundcolor};\n }\n`;\n","import { StyledSpin } from './style';\n\nconst Spinner = ({ backgroundcolor }: any) => {\n return (\n <div>\n <StyledSpin size=\"large\" backgroundcolor={backgroundcolor} />\n </div>\n );\n};\n\nexport default Spinner;\n","import styled, { keyframes } from 'styled-components';\n\ninterface SkeletonContentLine {\n width?: string;\n}\n\ninterface SkeletonSubtitleProps {\n width?: string;\n height?: string;\n marginbottom?: string;\n}\n\nexport const Wrapper = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 99;\n div {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.25rem;\n }\n\n h2 {\n font-family: var(--text-font-family-base, Geist);\n color: #fff;\n text-align: center;\n font-weight: var(--text-weight-medium, 500);\n font-size: 1.5rem;\n }\n\n p {\n font-family: var(--text-font-family-base, Geist);\n color: rgba(255, 255, 255, 0.75);\n text-align: center;\n font-style: normal;\n font-weight: 400;\n font-size: 1.125rem;\n max-width: 25rem;\n }\n`;\n\nconst shimmer = keyframes`\n 0% {\n opacity: 90%;\n }\n 50% {\n opacity: 100%;\n }\n 100% {\n opacity: 90%;\n }\n`;\n\nexport const SkeletonBase = styled.div`\n background: #282828; /* Dark base color */\n border-radius: 4px;\n background-size: 1000px 100%;\n animation: ${shimmer} 1.5s infinite linear;\n background: var(--color-interaction-press-primary, rgba(20, 20, 20, 0.1));\n`;\n\nexport const SkeletonHeader = styled(SkeletonBase)`\n width: 70%; /* Mimics the main title area */\n height: 20px;\n margin-bottom: 10px;\n`;\n\nexport const SkeletonSubtitle = styled(SkeletonBase)<SkeletonSubtitleProps>`\n width: ${(props: any) => props.width};\n height: ${(props: any) => props.height};\n margin-bottom: ${(props: any) => props.marginbottom};\n`;\n\nexport const SkeletonBox = styled(SkeletonBase)`\n flex-grow: 1;\n height: 130px;\n margin: 0 1px;\n background: var(--color-bg-secondary, #f5f5f5);\n padding: 20px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n animation: unset;\n`;\n\nexport const SkeletonRow = styled.div`\n display: flex;\n margin-bottom: 2px;\n justify-content: space-between;\n margin-top: auto;\n ${SkeletonBox}:first-child {\n margin-left: 0;\n }\n ${SkeletonBox}:last-child {\n margin-right: 0;\n }\n`;\n\nexport const Container = styled.div`\n padding: 20px;\n overflow-y: hidden;\n height: 100vh;\n position: relative;\n background: var(--color-bg-primary, #fff);\n`;\n\nexport const SkeletonChipRow = styled.div`\n display: flex;\n width: fit-content;\n gap: 2rem;\n background: var(--color-bg-secondary, #232323);\n padding: 0.5rem;\n margin-top: 3rem;\n margin-bottom: 1.5rem;\n`;\n\nexport const SkeletonChip = styled(SkeletonBase)`\n width: 4rem;\n height: 1rem;\n border-radius: 5px;\n`;\n\nexport const SkeletonContentLine = styled(SkeletonBase)<SkeletonContentLine>`\n width: ${(props: any) => props.width || '100%'};\n height: 20px;\n margin-bottom: 8px;\n`;\n\nexport const BigBox = styled.div`\n border-radius: 2px;\n background: var(--color-bg-secondary, #232323);\n height: 40rem;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n margin-bottom: 2px;\n`;\n","import { tComingSoon } from '../../utils/exportTranslation';\nimport {\n BigBox,\n Container,\n SkeletonBox,\n SkeletonChip,\n SkeletonChipRow,\n SkeletonContentLine,\n SkeletonHeader,\n SkeletonRow,\n SkeletonSubtitle,\n Wrapper,\n} from './style';\n\nconst SkeletonCardContent = () => (\n <>\n <SkeletonContentLine width={'80%'} />\n\n <SkeletonContentLine width={'60%'} />\n </>\n);\n\nconst ComingSoon = () => {\n return (\n <Container>\n <Wrapper>\n <div>\n <h2>{tComingSoon('ComingSoon')}</h2>\n\n <p>{tComingSoon('ComingSoonDesc')}</p>\n </div>\n </Wrapper>\n\n <SkeletonHeader />\n\n <SkeletonSubtitle />\n\n <SkeletonChipRow>\n {[...Array(7)].map((_, i) => (\n <SkeletonChip key={i} />\n ))}\n </SkeletonChipRow>\n\n <SkeletonRow>\n {[...Array(5)].map((_, i) => (\n <SkeletonBox key={i}>\n <SkeletonCardContent />\n </SkeletonBox>\n ))}\n </SkeletonRow>\n\n <BigBox>\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'10px'} />\n\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'20px'} />\n\n <SkeletonRow>\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\n\n <SkeletonSubtitle width={'120%'} height={'18px'} marginbottom={'10'} />\n\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\n </SkeletonRow>\n </BigBox>\n\n <SkeletonRow>\n {[...Array(5)].map((_, i) => (\n <SkeletonBox key={i}>\n <SkeletonCardContent />\n </SkeletonBox>\n ))}\n </SkeletonRow>\n </Container>\n );\n};\nexport default ComingSoon;\n","import { Table } from 'antd';\nimport styled from 'styled-components';\n\nexport const CustomTable = styled(Table)`\n .ant-table-thead > tr > th {\n background: var(--color-bg-primary, #fff);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n\n border: none !important;\n height: var(--size-500, 40px);\n padding: var(--spacing-025, 2px) var(--spacing-300, 12px);\n align-items: center;\n flex-shrink: 0;\n align-self: stretch;\n\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* caption/small */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-small, 12px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\n border-start-start-radius: 0px !important;\n }\n\n .ant-table-tbody > tr:hover > td {\n background: inherit !important;\n }\n .ant-pagination-item {\n min-width: 1.5rem;\n height: 1.5rem;\n border: none;\n background: transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-end: 0.12rem;\n\n &.ant-pagination-item-active {\n border-radius: var(--border-radius-025, 0.125rem);\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\n }\n }\n .anticon {\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\n }\n\n .ant-table-tbody > tr {\n background: var(--color-bg-secondary);\n color: var(--color-text-primary, #131412);\n }\n &:where(.css-dev-only-do-not-override-vrrzze).ant-table-wrapper\n .ant-table-tbody\n .ant-table-row\n > .ant-table-cell-row-hover {\n background-color: transparent !important;\n }\n .ant-collapse {\n background-color: transparent !important;\n }\n\n .ant-collapse-item {\n background-color: transparent !important;\n }\n\n .ant-collapse-header {\n background-color: transparent !important;\n }\n\n // this disables the right column seperator on headers\n .ant-table-thead > tr > th::before {\n display: none !important;\n }\n\n .ant-table-tbody > tr > td {\n height: 48px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\n }\n\n .ant-table-expanded-row > .ant-table-cell {\n padding: 24px;\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\n }\n\n .arrow-svg {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-icon-primary, #fff);\n transition: 0.1s;\n }\n }\n }\n\n .active-svg-closemark {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-status-error);\n transition: 0.1s;\n }\n }\n }\n\n .active-svg-checkmark {\n svg {\n width: 1rem;\n height: 1rem;\n path {\n fill: var(--color-text-status-success);\n transition: 0.1s;\n }\n }\n }\n`;\n","import * as React from \"react\";\nconst SvgChevronUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.0001 5.72363L11.6096 9.33311L10.6668 10.2759L8.0001 7.60925L5.33343 10.2759L4.39062 9.33311L8.0001 5.72363Z\", fill: \"currentColor\" }));\nexport default SvgChevronUp;\n","import { CustomTable } from './style';\nimport ChevronDown from '../../assets/icons/chevron-down.svg?react';\nimport ChevronUp from '../../assets/icons/chevron-up.svg?react';\nimport { useEffect, useState } from 'react';\nimport type { ColumnsType, TablePaginationConfig } from 'antd/es/table';\nimport { Empty } from 'antd';\nimport { tNoData } from '../../utils/exportTranslation';\n\ninterface ExpandableTableProps<T = Record<string, unknown>> {\n rowKey: string | number | any;\n CustomExpandableRow: React.ComponentType<Record<string, unknown>>;\n // Support both GridView's 'columns' and standalone 'dataTableColumns'\n columns?: ColumnsType<T>;\n dataTableColumns?: ColumnsType<T>;\n dataSource: any;\n expandableRowProps?: Record<string, unknown>;\n expandedRows?: string[];\n setExpandedRow?: (rows: string[]) => void;\n loading?: boolean;\n pagination?: TablePaginationConfig | false;\n}\n\nconst ExpandableTable = ({\n rowKey,\n CustomExpandableRow,\n columns,\n dataTableColumns,\n dataSource,\n expandableRowProps,\n expandedRows,\n setExpandedRow,\n loading,\n pagination,\n}: ExpandableTableProps) => {\n const [expandedRowKeys, setExpandedRowKeys] = useState<any>([]);\n\n // Support both prop names for compatibility\n const tableColumns = columns || dataTableColumns;\n useEffect(() => {\n if (expandedRows && expandedRows.length > 0) {\n setExpandedRowKeys((prev: any) => [...expandedRows, ...prev]);\n }\n }, [expandedRows]);\n\n function handleExpandedRowsChange(arr: any) {\n setExpandedRowKeys(arr);\n setExpandedRow && setExpandedRow([]);\n }\n\n return (\n <CustomTable\n rowKey={rowKey || 'id'}\n pagination={pagination}\n scroll={{ x: 1500 }}\n locale={{\n emptyText: <Empty description={tNoData('NoData')} />,\n }}\n loading={loading}\n columns={tableColumns as ColumnsType<unknown>}\n expandedRowKeys={expandedRowKeys}\n onExpandedRowsChange={handleExpandedRowsChange}\n expandable={{\n expandedRowRender: record => (\n <CustomExpandableRow {...expandableRowProps} record={record} />\n ),\n expandIcon: ({ expanded }) => (\n <>\n {expanded ? (\n <span className=\"arrow-svg\">\n <ChevronUp />\n </span>\n ) : (\n <span className=\"arrow-svg\">\n <ChevronDown />\n </span>\n )}\n </>\n ),\n expandRowByClick: true,\n }}\n dataSource={dataSource}\n />\n );\n};\n\nexport default ExpandableTable;\n","import { Tabs } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDateRangeFilterTabs = styled(Tabs)`\n display: flex;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n\n .ant-tabs-tab {\n margin: 0 !important;\n border-radius: 0 !important;\n border: none !important;\n .ant-tabs-tab-btn {\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n border-radius: var(--border-radius-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n transition: color 0.2s;\n\n &:hover,\n &:focus {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n }\n\n &.ant-tabs-tab-active {\n background: var(--color-bg-inverse-primary, #141414) !important;\n\n .ant-tabs-tab-btn {\n color: var(--color-text-inverse-primary, #131412) !important;\n\n &:hover,\n &:focus {\n color: var(--color-text-inverse-primary, #131412) !important;\n }\n }\n }\n @media (max-width: 1080px) {\n display: none !important;\n }\n }\n .ant-tabs-nav {\n margin: 0;\n\n &::before {\n display: none;\n }\n }\n\n .ant-tabs-ink-bar {\n display: none;\n }\n\n .ant-tabs-nav-list {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-secondary);\n }\n\n .ant-tabs-nav-more {\n display: none !important;\n }\n\n .ant-tabs-nav-add {\n background-color: #f0f0f0;\n border: none !important;\n path {\n fill: var(--color-icon-primary, #fff);\n }\n }\n`;\n\nexport const TabBarExtraContentIconWrapper = styled.div`\n display: flex;\n height: var(--size-400, 32px);\n padding: 0 var(--spacing-100, 8px);\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\n cursor: pointer;\n\n &.space {\n display: flex;\n gap: 5px;\n }\n`;\n\nexport const TabsCustomDateFilterWrapper = styled.div`\n position: relative;\n @media (min-width: 1080px) {\n .tab-select {\n display: none;\n }\n }\n`;\nexport const CustomDateFilterWrapper = styled.div`\n position: absolute;\n left: 20px;\n top: 10px;\n z-index: 1000;\n`;\n","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return String(object);\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.includes('###') ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nconst _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => !nsSeparator.includes(c) && !keySeparator.includes(c));\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].includes(typeof next) && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace(/_/g, '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n once(event, listener) {\n const wrapper = (...args) => {\n listener(...args);\n this.off(event, wrapper);\n };\n this.on(event, wrapper);\n return this;\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(event, ...args);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (!this.options.ns.includes(ns)) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.includes('.')) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.includes('.')) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.includes('.')) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.includes('.')) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n const keySeparator = opts?.keySeparator ?? '.';\n const nsSeparator = opts?.nsSeparator ?? ':';\n if (path.length > 1 && nsSeparator) {\n const ns = opts?.ns;\n const nsArray = Array.isArray(ns) ? ns : null;\n if (nsArray && nsArray.length > 1 && nsArray.slice(1).includes(path[0])) {\n return `${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`;\n }\n }\n return path.join(keySeparator);\n}\n\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n this.checkedLoadedFor = {};\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.includes(nsSeparator);\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.includes(parts[0])) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : String(k));\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && !noObject.includes(resType) && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && !suffixes.includes(`${this.options.pluralSeparator}zero`)) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : k);\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!this.checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n this.checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && option.startsWith(prefix) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.includes('-')) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.includes(code);\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return true;\n if (!supportedLng.includes('-') && !lngOnly.includes('-')) return false;\n if (supportedLng.includes('-') && !lngOnly.includes('-') && supportedLng.slice(0, supportedLng.indexOf('-')) === lngOnly) return true;\n if (supportedLng.startsWith(lngOnly) && lngOnly.length > 1) return true;\n return false;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.includes('-') || code.includes('_'))) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (!codes.includes(fc)) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (!key.includes(this.formatSeparator)) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (!key.includes(sep)) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.includes(this.prefix)) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.includes('(')) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].slice(0, -1);\n if (formatName === 'currency' && !optStr.includes(':')) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && !optStr.includes(':')) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n if (!format) return value;\n if (value == null) return value;\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && !formats[0].includes(')') && formats.find(f => f.includes(')'))) {\n const lastIndex = formats.findIndex(f => f.includes(')'));\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read(lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && !options.supportedLngs.includes('cimode')) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (!options.ns.includes('translation')) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n if (typeof this.options.overloadTranslationOptionHandler !== 'function') {\n this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator\n });\n if (formatter) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (!toLoad.includes(l)) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].includes(l)) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].includes(lngInLngs)) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && !this.languages.includes(l) && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const selectorOpts = {\n ...this.options,\n ...o\n };\n if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (!this.options.ns.includes(n)) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => !preloaded.includes(lng) && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.includes(languageUtils.getLanguagePartFromCode(lng)) || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator);\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport HttpApi from 'i18next-http-backend';\n\ni18n.use(HttpApi)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en',\n supportedLngs: ['en', 'ka'],\n debug: false,\n backend: {\n loadPath: '/locales/langs/{{lng}}.json',\n },\n detection: {\n order: ['localStorage'],\n lookupLocalStorage: 'Language',\n caches: ['localStorage'],\n },\n interpolation: { escapeValue: false },\n });\nexport default i18n;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import i18n from '../../../assets/i18n/config';\nimport { StyledRangePicker } from '../../../modules/GridViewPage/style';\nimport { DateHelper } from '../../../utils/DateHelper';\nimport dayjs from 'dayjs';\nimport { tMonths, tWeekDays } from '../../../utils/exportTranslation';\n\nconst CustomDateRangePicker = ({ setDateFilter, setShowRange, setDates }: any) => {\n const disabledDate = (current: any) => {\n return current && current > dayjs().endOf('day');\n };\n\n const handleRangeChange = (values: any) => {\n if (values && values[0] && values[1]) {\n const startDate = DateHelper.toISODateString(values[0].toDate());\n const endDate = DateHelper.toISODateString(values[1].toDate());\n\n setDates([startDate, endDate]);\n setDateFilter((prev: any) => ({\n ...prev,\n startDate,\n endDate,\n }));\n\n setShowRange(false);\n }\n };\n\n const headerLocale = {\n lang: {\n locale: i18n.language,\n shortMonths: [\n tMonths('0'),\n tMonths('1'),\n tMonths('2'),\n tMonths('3'),\n tMonths('4'),\n tMonths('5'),\n tMonths('6'),\n tMonths('7'),\n tMonths('8'),\n tMonths('9'),\n tMonths('10'),\n tMonths('11'),\n ],\n shortWeekDays: [\n tWeekDays('Sun'),\n tWeekDays('Mon'),\n tWeekDays('Tue'),\n tWeekDays('Wed'),\n tWeekDays('Thu'),\n tWeekDays('Fri'),\n tWeekDays('Sat'),\n ],\n },\n };\n\n return (\n <StyledRangePicker\n dropdownClassName=\"date-picker-column-style\"\n locale={headerLocale as any}\n open={true}\n allowClear\n format=\"MMM D, YYYY\"\n placeholder={['From', 'To']}\n getPopupContainer={triggerNode =>\n triggerNode?.parentElement?.parentElement ?? document.body\n }\n onOpenChange={open => {\n if (!open) {\n setShowRange(false);\n }\n }}\n onChange={e => handleRangeChange(e)}\n disabledDate={disabledDate}\n />\n );\n};\n\nexport default CustomDateRangePicker;\n","import { Empty } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledEmpty = styled(Empty)`\r\n .ant-empty-description {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n`;\r\n","import { Table } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledTable = styled(Table)`\r\n .ant-table-thead > tr > th {\r\n background: var(--color-bg-primary, #fff);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n\r\n border: none !important;\r\n height: var(--size-500, 40px);\r\n padding: var(--spacing-025, 2px) var(--spacing-300, 12px);\r\n align-items: center;\r\n flex-shrink: 0;\r\n align-self: stretch;\r\n\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n\r\n /* caption/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-small, 12px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-small, 16px); /* 133.333% */\r\n letter-spacing: var(--typo-caption-spacing-small, 0.1px);\r\n\r\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1)) !important;\r\n border-radius: 0px !important;\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n .ant-table-tbody {\r\n tr {\r\n background: var(--color-bg-primary, #fff) !important;\r\n color: var(--color-text-primary, #131412);\r\n td {\r\n height: 48px;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n gap: 4px;\r\n align-self: stretch;\r\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\r\n background: var(--color-bg-primary, #fff) !important;\r\n border-bottom: none !important;\r\n &:hover {\r\n background: var(--color-bg-primary, #fff) !important;\r\n }\r\n }\r\n\r\n &:hover {\r\n background: var(--color-bg-primary, #fff) !important;\r\n td {\r\n background-color: var(--color-bg-primary, #fff) !important;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .ant-empty-image {\r\n svg {\r\n path {\r\n fill: transparent !important;\r\n }\r\n ellipse {\r\n fill: transparent !important;\r\n }\r\n }\r\n }\r\n\r\n .ant-empty-image svg .ant-empty-description {\r\n color: lightgray;\r\n }\r\n\r\n .ant-pagination-item {\r\n min-width: 1.5rem;\r\n height: 1.5rem;\r\n border: none;\r\n background: transparent;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-inline-end: 0.12rem;\r\n\r\n &.ant-pagination-item-active {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\r\n }\r\n }\r\n .anticon {\r\n color: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\r\n }\r\n\r\n .ant-collapse {\r\n background-color: transparent !important;\r\n }\r\n\r\n .ant-collapse-item {\r\n background-color: transparent !important;\r\n }\r\n\r\n .ant-collapse-header {\r\n background-color: transparent !important;\r\n }\r\n`;\r\n","import { Tooltip } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledTooltip = styled(Tooltip)`\r\n .ant-tooltip-inner {\r\n min-width: auto;\r\n min-height: auto;\r\n padding: 0.25rem;\r\n color: var(--color-text-inverse-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-small, 0.75rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-small, 1rem); /* 133.333% */\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n }\r\n`;\r\n","import { Select } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\n// export const StyledSelect = styled(Select)<{ $width?: string }>`\r\n// width: ${({ $width }) => $width ?? '100%'};\r\n\r\n// display: flex;\r\n// flex-direction: column;\r\n// gap: 2.5rem;\r\n// display: flex;\r\n// flex-direction: column;\r\n// gap: 0.5rem;\r\n// .ant-select-selector {\r\n// border-radius: var(--border-radius-025, 0.125rem);\r\n// background: var(--color-bg-secondary, #f5f5f5) !important;\r\n// border: none !important;\r\n// .ant-select-selection-placeholder {\r\n// path {\r\n// fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75)) !important;\r\n// }\r\n// }\r\n// }\r\n// span {\r\n// color: var(--color-text-secondary, rgba(19, 20, 18, 0.75)) !important;\r\n// font-family: var(--text-font-family-base, Geist);\r\n// font-size: var(--typo-caption-size-medium, 0.875rem);\r\n// font-weight: var(--text-weight-regular, 400);\r\n// line-height: var(--typo-caption-lineHeight-medium, 1.125rem); /* 128.571% */\r\n// letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n// }\r\n// `;\r\nexport const StyledSelect = styled(Select)<{ $width?: string; $height?: string }>`\r\n width: ${({ $width }) => $width ?? '100%'};\r\n\r\n min-height: ${({ $height }) => $height ?? 'unset'};\r\n gap: 2.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n\r\n .arrow-svg {\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n path {\r\n fill: var(--color-text-primary, #131412);\r\n }\r\n }\r\n }\r\n\r\n &.ant-select-multiple .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n\r\n &:hover {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n .ant-select-selector {\r\n padding: 0 !important;\r\n border: none !important;\r\n background-color: transparent !important;\r\n box-shadow: none !important;\r\n }\r\n .ant-select-selection-overflow {\r\n justify-content: flex-start !important;\r\n background-color: none;\r\n margin-top: 5px;\r\n }\r\n .ant-select-selection-item {\r\n background: transparent !important;\r\n }\r\n\r\n &&& {\r\n .ant-select-selector {\r\n border: none !important;\r\n box-shadow: none !important;\r\n background-color: transparent !important;\r\n padding: 0 !important;\r\n }\r\n\r\n &:hover .ant-select-selector,\r\n &.ant-select-focused .ant-select-selector,\r\n &.ant-select-open .ant-select-selector {\r\n border: none !important;\r\n box-shadow: none !important;\r\n }\r\n }\r\n &.ant-select-single {\r\n .ant-select-selector .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n }\r\n\r\n &.ant-select-multiple {\r\n .ant-select-selection-placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 5px);\r\n }\r\n .anticon.anticon-close {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n`;\r\n","import { useMemo, useState } from 'react';\nimport {\n CustomDateFilterWrapper,\n StyledDateRangeFilterTabs,\n TabsCustomDateFilterWrapper,\n} from './style';\nimport { DateHelper } from '../../utils/DateHelper';\nimport CustomDateRangePicker from './date-picker';\nimport { tDate, tGeneral } from '../../utils/exportTranslation';\nimport { StyledSelect } from '../../styled-components';\n\ninterface TabItem {\n key: string;\n label: string;\n startDate: string;\n endDate: string;\n}\n\ninterface DateRangeFilterTabsProps {\n setDateFilters: React.Dispatch<React.SetStateAction<any>>;\n hasAllFilter?: boolean;\n}\n\nconst DateRangeFilterTabs = ({\n setDateFilters,\n hasAllFilter = false,\n}: DateRangeFilterTabsProps) => {\n const [dates, setDates] = useState([]);\n\n const TabItems: TabItem[] = [\n { key: 'week', label: tDate('7D'), ...DateHelper.getCommonDateRange('week') },\n { key: 'month', label: tDate('30D'), ...DateHelper.getCommonDateRange('month') },\n { key: 'threeMonth', label: tDate('3M'), ...DateHelper.getCommonDateRange('threeMonth') },\n { key: 'sixMonth', label: tDate('6M'), ...DateHelper.getCommonDateRange('sixMonth') },\n {\n key: 'twelveMonth',\n label: tDate('12M'),\n ...DateHelper.getCommonDateRange('twelveMonth'),\n },\n { key: 'year', label: tDate('YTD'), ...DateHelper.getCommonDateRange('year') },\n {\n key: 'custom',\n label:\n dates.length === 2 && dates[0] !== ''\n ? `${tGeneral('Custom')}: ${dates[0]} / ${dates[1]}`\n : tGeneral('Custom'),\n ...DateHelper.getCommonDateRange('custom'),\n },\n ];\n\n const [showRange, setShowRange] = useState<boolean>();\n\n const tabItems = useMemo(() => {\n if (hasAllFilter) {\n return [\n { key: 'all', label: tGeneral('All'), ...DateHelper.getCommonDateRange('all') },\n ...TabItems,\n ];\n } else {\n return TabItems;\n }\n }, [hasAllFilter, dates]);\n\n function handleTabClick(tab: any) {\n if (tab === 'custom') {\n setShowRange(true);\n } else {\n setShowRange(false);\n const foundTab = tabItems.find(each => each.key === tab);\n if (foundTab) {\n setDateFilters((prev: any) => ({\n ...prev,\n startDate: foundTab.startDate,\n endDate: foundTab.endDate,\n }));\n }\n }\n return tab;\n }\n return (\n <TabsCustomDateFilterWrapper id=\"tabs-container\">\n <StyledDateRangeFilterTabs\n type=\"editable-card\"\n items={tabItems}\n onTabClick={handleTabClick}\n activeKey={showRange ? 'custom' : undefined}\n removeIcon={true}\n hideAdd={true}\n />\n\n {showRange && (\n <CustomDateFilterWrapper>\n <CustomDateRangePicker\n setDates={setDates}\n setDateFilter={setDateFilters}\n setShowRange={setShowRange}\n getPopupContainer={() => document.getElementById('tabs-container')!}\n />\n </CustomDateFilterWrapper>\n )}\n <StyledSelect\n className=\"tab-select\"\n $width=\"200px\"\n placeholder={tGeneral('Choose')}\n getPopupContainer={(triggerNode: any) => triggerNode.parentElement}\n onChange={handleTabClick}\n options={tabItems.map(item => ({\n value: item.key,\n label: item.label,\n }))}\n />\n </TabsCustomDateFilterWrapper>\n );\n};\n\nexport default DateRangeFilterTabs;\n","import styled from 'styled-components';\n\nexport const StyledDropdownContainer = styled.div`\n .ant-dropdown-menu {\n border-radius: 2px !important;\n background: var(--color-bg-quaternary, #2f2f2f) !important;\n width: 150px !important;\n padding: 0 !important;\n }\n\n .ant-dropdown-menu-item {\n padding: 0 !important; /* რომ შიდა კონტენტი გაიწელოს */\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.05) !important;\n }\n }\n\n .ant-dropdown-menu-title-content {\n color: var(--color-text-primary, #fff) !important;\n font-family: Geist;\n font-size: var(--typo-caption-size-medium, 14px);\n font-weight: 400;\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n padding: 8px 12px; /* აქ დაარეგულირე შიდა დაშორება */\n display: block;\n }\n`;\n","export const ExportXlsxFunction = (resp: any, name: any) => {\r\n const url = window.URL.createObjectURL(resp);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n\r\n link.setAttribute('download', name);\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n window.URL.revokeObjectURL(url);\r\n};\r\n\r\nexport const ExportCsvFunction = (csvDataString: string, name: string) => {\r\n const blob = new Blob([csvDataString], { type: 'text/csv;charset=utf-8;' });\r\n\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n\r\n link.setAttribute('download', name);\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n window.URL.revokeObjectURL(url);\r\n};\r\n","import { Dropdown } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDropdown = styled(Dropdown)`\n background: var(--color-bg-secondary, #f0ededff) !important;\n font-size: 14px;\n font-weight: 500;\n\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\n padding: 10px 14px !important;\n border-radius: 8px !important;\n background: #000 !important;\n\n font-size: 14px;\n font-weight: 500;\n color: var(--color-text-primary, #000000ff) !important;\n }\n`;\nexport const StyledButton = styled.div`\n background-color: red;\n padding: 5px;\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n color: var(--color-text-primary, #fff);\n cursor: pointer;\n`;\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\nimport { ExportCsvFunction, ExportXlsxFunction } from '../../utils/export-reports';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { StyledButton, StyledDropdown } from './style';\n\ntype ExcelExportProps = {\n exportFileName: string;\n filters: any;\n service: any;\n};\n\nconst ExcelExport = ({ exportFileName, filters, service }: ExcelExportProps) => {\n const onExportClick = async (type: any) => {\n try {\n const { PageSize, Page, ...filtersWithoutPageAndPageSize }: any = filters;\n\n const resp = await service(filtersWithoutPageAndPageSize, type);\n\n const blob = resp.data;\n\n if (type === 'xlsx') {\n ExportXlsxFunction(blob, `${exportFileName}.${type}`);\n } else {\n ExportCsvFunction(blob, `${exportFileName}`);\n }\n } catch (error) {\n console.error('Export failed:', error);\n }\n };\n\n const items: any = [\n {\n key: '1',\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\n onClick: () => onExportClick('xlsx'),\n },\n {\n key: '2',\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\n onClick: () => onExportClick('csv'),\n },\n ];\n return (\n <StyledDropdown\n menu={{\n items,\n className: 'dropdown-menu',\n }}\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\n placement=\"bottomLeft\"\n >\n <StyledButton>{tGeneral('Export')}</StyledButton>\n </StyledDropdown>\n );\n};\n\nexport default ExcelExport;\n","export const exportSelectedToCSV = (\n tableData: any[],\n checked: { [key: number]: boolean },\n fileName: any\n) => {\n const selectedRows = tableData.filter(row => checked[row.id]);\n\n const headers = Object.keys(selectedRows[0]);\n\n const rows = selectedRows.map(row => {\n return headers.map(key => {\n const value = row[key];\n\n if (value === null || value === undefined) return '';\n if (typeof value === 'object') {\n const flat = Object.values(value).find(v => typeof v !== 'object');\n return flat ?? '';\n }\n return value;\n });\n });\n\n const csvArray = [headers, ...rows]\n .map(row =>\n row.map((cell: any) => `\"${(cell || '').toString().replace(/\"/g, '\"\"')}\"`).join(',')\n )\n .join('\\r\\n');\n\n const BOM = '\\uFEFF';\n const blob = new Blob([BOM + csvArray], { type: 'text/csv;charset=utf-8;' });\n\n const link = document.createElement('a');\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n};\n","import * as XLSX from 'xlsx';\n\nexport const exportSelectedToXLSX = (\n tableData: any[],\n checked: { [key: number]: boolean },\n fileName: any\n) => {\n const selectedRows = tableData.filter(row => checked[row.id]);\n\n const simplifiedData = selectedRows.map(row => {\n const result: any = {};\n Object.entries(row).forEach(([key, value]) => {\n if (value === null || value === undefined) {\n result[key] = '';\n } else if (typeof value === 'object') {\n const flatValue = Object.values(value).find(v => typeof v !== 'object');\n result[key] = flatValue ?? '';\n } else {\n result[key] = value;\n }\n });\n return result;\n });\n\n const worksheet = XLSX.utils.json_to_sheet(simplifiedData);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Data');\n\n const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });\n const url = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n};\n","import { Dropdown } from 'antd';\nimport styled from 'styled-components';\n\nexport const StyledDropdown = styled(Dropdown)`\n background: var(--color-bg-secondary, #f0ededff) !important;\n font-size: 14px;\n font-weight: 500;\n\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\n padding: 10px 14px !important;\n border-radius: 8px !important;\n background: #000 !important;\n\n font-size: 14px;\n font-weight: 500;\n color: var(--color-text-primary, #000000ff) !important;\n }\n`;\nexport const StyledButton = styled.div`\n background-color: red;\n padding: 5px;\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\n color: var(--color-text-primary, #fff);\n cursor: pointer;\n`;\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\nimport { exportSelectedToCSV } from '../../utils/exportCsv';\nimport { tGeneral } from '../../utils/exportTranslation';\nimport { exportSelectedToXLSX } from '../../utils/exportXLSX';\nimport { StyledButton, StyledDropdown } from './style';\n\ntype ExcelExportProps = {\n tableData: any[];\n checked: { [key: number]: boolean };\n fileName: any;\n};\n\nconst ExcelExportSelected = ({ tableData, checked, fileName }: ExcelExportProps) => {\n const onExportClick = async (type: any) => {\n try {\n if (type === 'xlsx') {\n exportSelectedToXLSX(tableData, checked, fileName + '.xlsx');\n } else {\n exportSelectedToCSV(tableData, checked, fileName + '.csv');\n }\n } catch (error) {\n console.error('Export failed:', error);\n }\n };\n\n const items: any = [\n {\n key: '1',\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\n onClick: () => onExportClick('xlsx'),\n },\n {\n key: '2',\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\n onClick: () => onExportClick('csv'),\n },\n ];\n return (\n <StyledDropdown\n menu={{\n items,\n className: 'dropdown-menu',\n }}\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\n placement=\"bottomLeft\"\n >\n <StyledButton>{tGeneral('Export')}</StyledButton>\n </StyledDropdown>\n );\n};\n\nexport default ExcelExportSelected;\n","import { DatePicker } from 'antd';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { DateHelper } from '../../utils/DateHelper';\r\ntype DatePickerToISOProps = {\r\n value: any;\r\n onChange: any;\r\n};\r\nconst DatePickerToISO = ({ value, onChange, ...props }: DatePickerToISOProps) => {\r\n const parsedValue = value ? dayjs(value) : null;\r\n\r\n const handleChange = (date: Dayjs): any => {\r\n if (date) {\r\n onChange?.(DateHelper.toISODateString(date.toDate()));\r\n } else {\r\n onChange?.(null);\r\n }\r\n };\r\n\r\n return <DatePicker value={parsedValue} onChange={handleChange} allowClear {...props} />;\r\n};\r\n\r\nexport default DatePickerToISO;\r\n","import styled from 'styled-components';\r\n\r\nimport { Button, Upload } from 'antd';\r\n\r\nconst { Dragger } = Upload;\r\nexport const StyledUploadFile = styled(Dragger)`\r\n &.default-design {\r\n .ant-upload {\r\n padding: 0 !important;\r\n border-radius: var(--border-radius-025, 2px);\r\n border: none !important;\r\n background: transparent !important;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n }\r\n }\r\n\r\n &.input-design {\r\n .ant-upload,\r\n .ant-upload-drag {\r\n gap: 8px;\r\n align-self: stretch;\r\n padding: 5px;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n }\r\n .ant-upload-btn {\r\n border: none;\r\n }\r\n }\r\n .ant-upload-list-item {\r\n display: flex;\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n align-items: center;\r\n gap: 8px;\r\n align-self: stretch;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n padding: 20px 12px;\r\n .ant-upload-list-item-name {\r\n color: var(--color-text-primary, #131412);\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n }\r\n box-shadow:\r\n 0 4px 8px 0 rgba(20, 20, 20, 0.02),\r\n 0 4px 16px 0 rgba(20, 20, 20, 0.04);\r\n\r\n .anticon-delete {\r\n color: var(--color-text-primary, #fff) !important;\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledUploadFileButton = styled(Button)`\r\n display: flex;\r\n align-items: center;\r\n justify-content: start;\r\n background: transparent !important;\r\n padding: 20px 8px;\r\n gap: 8px;\r\n border: transparent !important;\r\n border-radius: var(--border-radius-025, 2px);\r\n align-self: stretch;\r\n\r\n overflow: hidden;\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\r\n text-overflow: ellipsis;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n`;\r\n","import React from 'react';\nimport { notification } from 'antd';\nimport { StyledUploadFile } from './style';\n\nexport interface UploadFileProps {\n value?: any[];\n onChange: (fileList: any[]) => void;\n children?: React.ReactNode;\n inputDesign?: boolean;\n addFilesService: (formData: FormData) => Promise<any>;\n maxCount?: number;\n showUploadList?: boolean;\n [key: string]: any;\n}\n\nconst UploadFiles: React.FC<UploadFileProps> = ({\n value = [],\n onChange,\n children,\n inputDesign,\n addFilesService,\n ...props\n}) => {\n const handleUpload = async (options: any) => {\n const { file } = options;\n const previewUrl = URL.createObjectURL(file);\n const tempFile = { name: file.name, uid: file.uid, status: 'uploading', url: previewUrl };\n\n const newFileList = [...value, tempFile];\n onChange(newFileList); // Ensure only fileList is passed\n\n try {\n const formData = new FormData();\n formData.append('files', file);\n const response = await addFilesService(formData);\n\n if (response?.data?.success) {\n const uploadedFile = response?.data?.value[0];\n onChange(\n newFileList.map(item =>\n item.uid === file.uid ? { ...item, status: 'done', ...uploadedFile } : item\n )\n );\n } else {\n onChange(newFileList.filter(item => item.uid !== file.uid));\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Upload failed',\n });\n }\n } catch (error) {\n onChange(newFileList.filter(item => item.uid !== file.uid));\n notification.error({\n className: 'bottom-right-notification',\n placement: 'bottomRight',\n message: 'Error',\n description: 'Upload failed',\n });\n }\n };\n\n const handleRemove = (file: any) => {\n onChange(value.filter((item: any) => item.uid !== file.uid));\n };\n\n return (\n <StyledUploadFile\n className={inputDesign ? 'input-design' : 'default-design'}\n multiple={props.maxCount !== undefined && props.maxCount > 1}\n customRequest={handleUpload}\n showUploadList={!!props.showUploadList}\n fileList={value}\n onRemove={handleRemove}\n maxCount={props.maxCount}\n {...props}\n >\n {value.length < (props.maxCount || 15) && children}\n </StyledUploadFile>\n );\n};\n\nexport default UploadFiles;\n","import { Tabs } from 'antd';\nimport styled from 'styled-components';\n\nexport const TabComponent = styled(Tabs)`\n display: flex;\n gap: var(--spacing-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px);\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n padding: 1.5rem;\n\n @media (max-width: 1024px) {\n .ant-tabs-nav-list {\n /* display: none; */\n }\n \n .ant-tabs-extra-content {\n width: 100%;\n }\n }\n\n .ant-tabs-tab {\n height: 32px;\n padding: 8px 4px;\n margin: 0 !important;\n padding: var(--spacing-050, 0.25rem) var(--spacing-150, 0.75rem);\n\n .ant-tabs-tab-btn {\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n\n border-radius: var(--border-radius-025, 2px);\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 0.875rem);\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\n transition: color 0.2s;\n\n &:hover,\n &:focus {\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\n }\n }\n\n &.ant-tabs-tab-active {\n background: var(--color-bg-brand-special, #02e0ae);\n\n .ant-tabs-tab-btn {\n color: var(--color-text-inverse-primary, #131412);\n\n &:hover,\n &:focus {\n color: var(--color-text-inverse-primary, #131412);\n }\n }\n }\n }\n .ant-tabs-nav {\n margin: 0;\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\n\n @media (max-width: 1024px) {\n border-bottom: none;\n }\n\n &::before {\n display: none;\n }\n }\n\n .ant-tabs-ink-bar {\n display: none;\n }\n\n .ant-tabs-nav-list {\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-secondary);\n }\n\n .ant-tabs-nav-more {\n display: none !important;\n }\n`;\n","import styled from 'styled-components';\n\nexport const TabExtraContent = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nexport const ExtraContentWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100% !important;\n\n @media (max-width: 450px) {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .partner-tab-select {\n width: 150px;\n @media (max-width: 450px) {\n width: 100%;\n }\n }\n`;\n\nexport const TabSelectWrapper = styled.div`\n display: none;\n @media (max-width: 1024px) {\n display: block;\n }\n align-items: start !important;\n`;\n","import styled from 'styled-components';\n\nexport const DashboardResponsiveButtonWrapper = styled.div`\n display: none;\n\n @media (max-width: 991px) {\n display: block;\n margin-left: 0.9rem;\n }\n`;\n","import { useState } from 'react';\nimport { DashboardResponsiveButtonWrapper } from './style';\nimport Sidebar from '../../layouts/base-admin-layout/sidebar';\nimport SidebarIcon from '../../assets/icons/color.svg?react';\n\nconst ResponsiveSidebarButton = () => {\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\n return (\n <DashboardResponsiveButtonWrapper>\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\n <SidebarIcon />\n </button>\n {isSidebarVisible && <Sidebar />}\n </DashboardResponsiveButtonWrapper>\n );\n};\n\nexport default ResponsiveSidebarButton;\n","import { useLocation, useNavigate, useParams } from 'react-router';\nimport { useMemo, useState, ReactNode } from 'react';\nimport { TabComponent } from '../../styled-components/tabs';\nimport useUserStore from '../../stores/useUserStore';\nimport {\n ExtraContentWrapper,\n TabExtraContent,\n TabSelectWrapper,\n} from './GenericTabComponent.style';\nimport { StyledSelect } from '../../styled-components';\nimport PageBreadcrumb from '../page-breadcrumb';\nimport type { BreadcrumbItem } from '../page-breadcrumb/types';\nimport ResponsiveSidebarButton from '../responsive-sidebar-button';\n\nexport type { BreadcrumbItem };\n\nexport interface TabItem {\n key: string;\n label: string;\n permission?: number[];\n featureFlag?: number;\n}\n\ninterface GenericTabsPageProps {\n basePath: string;\n tabItems: TabItem[];\n contentMap: Record<string, ReactNode>;\n defaultTabKey?: string;\n logo?: ReactNode;\n breadcrumbItems?: BreadcrumbItem[];\n needsBreadcrumb?: boolean;\n customTabFilter?: (items: TabItem[]) => TabItem[];\n}\n\nconst GenericTabsPage = ({\n basePath,\n tabItems,\n contentMap,\n defaultTabKey = 'overview',\n logo,\n breadcrumbItems,\n needsBreadcrumb,\n customTabFilter,\n}: GenericTabsPageProps) => {\n const { hasPermission } = useUserStore();\n const { id } = useParams();\n const location = useLocation();\n const navigate = useNavigate();\n\n const activeKey = useMemo(() => {\n const pathParts = location.pathname.split('/');\n return pathParts[pathParts.length - 1] || defaultTabKey;\n }, [location.pathname, defaultTabKey]);\n const [extraTabItem, setExtraTabItem] = useState<ReactNode>(null);\n const [secondExtraTab, setSecondExtraTab] = useState<ReactNode>(null);\n\n const onTabChange = (key: string) => {\n navigate(`${basePath}/${id}/${key}`);\n };\n\n const getFilteredTabs = () => {\n if (customTabFilter) {\n return customTabFilter(tabItems);\n }\n\n return tabItems.filter(item => {\n return item.permission?.some((perm: any) => hasPermission(perm));\n });\n };\n\n const renderContent = () => {\n const content = contentMap[activeKey] || contentMap[defaultTabKey];\n\n if (!content) return null;\n\n if (typeof content === 'object' && content !== null && 'type' in content) {\n return {\n ...content,\n props: {\n ...content.props,\n setExtraTabItem,\n setSecondExtraTab,\n },\n };\n }\n\n return content;\n };\n\n return (\n <>\n <ResponsiveSidebarButton />\n {needsBreadcrumb && <PageBreadcrumb logo={logo} breadcrumbItems={breadcrumbItems} />}\n\n <TabComponent\n activeKey={activeKey}\n onChange={onTabChange}\n tabBarExtraContent={{\n right: (\n <ExtraContentWrapper>\n <TabSelectWrapper>\n <StyledSelect\n className=\"partner-tab-select\"\n placeholder={'Modules'}\n onChange={(e: any) => onTabChange(e)}\n value={activeKey}\n options={tabItems\n .filter((item: any) => item?.label !== 'Details')\n .map((item: any) => ({\n value: item.key,\n label: item.label,\n }))}\n />\n </TabSelectWrapper>\n <TabExtraContent>\n {secondExtraTab}\n {extraTabItem}\n </TabExtraContent>\n </ExtraContentWrapper>\n ),\n }}\n items={getFilteredTabs()}\n />\n\n <div>{renderContent()}</div>\n </>\n );\n};\n\nexport default GenericTabsPage;\n","import { Button } from 'antd';\nimport styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n background: var(--color-bg-primary, #ffffff);\n`;\n\nexport const Card = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 3rem 2.5rem;\n border-radius: var(--border-radius-025, 0.125rem);\n max-width: 28rem;\n width: 100%;\n text-align: center;\n`;\n\nexport const IconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 4rem;\n height: 4rem;\n border-radius: 50%;\n background: #02e0ae;\n\n svg {\n width: 2rem;\n height: 2rem;\n color: var(--color-text-inverse-primary, #131412);\n }\n`;\n\nexport const Title = styled.h2`\n color: var(--color-text-primary, #fff);\n text-align: center;\n\n /* subheading/medium */\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-subheading-size-medium, 24px);\n font-style: normal;\n font-weight: var(--text-weight-medium, 500);\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\n`;\n\nexport const Description = styled.p`\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\n text-align: center;\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-body-size-small, 16px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\n`;\n\nexport const BackButton = styled(Button)`\n display: flex;\n height: var(--size-500, 40px);\n justify-content: center;\n align-items: center;\n border-radius: var(--border-radius-025, 2px);\n background: var(--color-bg-brand-special, #02e0ae);\n\n color: var(--color-text-inverse-primary, #131412);\n\n font-family: var(--text-font-family-base, Geist);\n font-size: var(--typo-caption-size-medium, 14px);\n font-style: normal;\n font-weight: var(--text-weight-regular, 400);\n line-height: var(--typo-caption-lineHeight-medium, 18px); /* 128.571% */\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\n`;\n","import { useNavigate } from 'react-router';\nimport { BackButton, Card, Description, IconWrapper, Title, Wrapper } from './style';\nimport { tGeneral } from '../../utils/exportTranslation';\n\nconst SuccessPage = () => {\n const navigate = useNavigate();\n\n return (\n <Wrapper>\n <Card>\n <IconWrapper>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n </IconWrapper>\n <Title>{tGeneral('Success')}</Title>\n <Description>{tGeneral('YourActionHasBeenCompletedSuccessfully')}</Description>\n <BackButton onClick={() => navigate(-1)}>{tGeneral('GoBack')}</BackButton>\n </Card>\n </Wrapper>\n );\n};\n\nexport default SuccessPage;\n","import { Form } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport { parseServerErrors } from '../utils/errors';\n\nconst useFormController = ({\n id,\n refetchFormItems,\n redirectPrevPage,\n updateItem,\n addItem,\n getItemById,\n onSetFormValues,\n}: any) => {\n //maybe add in formcontroller the 2FA extra requests.\n const navigate = useNavigate();\n const [form] = Form.useForm();\n\n const [isAddingForm, setIsAddingForm] = useState(id == 'new');\n const [item, setItem] = useState<any>(null);\n\n const handleSave = async (values: any) => {\n const currentPath = window.location.pathname;\n const parentPath = currentPath.substring(0, currentPath.lastIndexOf('/'));\n try {\n if (item) {\n let resp;\n if (id) {\n resp = await updateItem({ ...values, id });\n } else {\n resp = await updateItem(values);\n }\n\n if (redirectPrevPage !== false && resp.data.success === true) {\n navigate(parentPath);\n }\n return resp;\n } else {\n const resp = await addItem(values);\n if (redirectPrevPage !== false && resp.data.success === true) {\n navigate(parentPath);\n }\n //return for 2fa\n return resp;\n }\n } catch (error: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errors = parseServerErrors(response.errors);\n\n form.setFields(errors);\n }\n }\n };\n\n const getItem = async (id: number) => {\n try {\n const response = await getItemById(id);\n const data = onSetFormValues ? onSetFormValues(response.data) : response.data;\n setItem(data);\n form.setFieldsValue(data);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n };\n\n useEffect(() => {\n setIsAddingForm(id == 'new');\n if (id != 'new') {\n getItem(Number(id));\n } else {\n form.resetFields();\n }\n }, [id, refetchFormItems]);\n\n return {\n form,\n item,\n getItemById,\n isAddingForm,\n handleSave,\n };\n};\n\nexport default useFormController;\n","import { Form } from 'antd';\nimport { useEffect, useState } from 'react';\nimport { parseServerErrors } from '../utils/errors';\n\nconst useFormController = ({ id, formItem, updateItem, addItem, getItemById }: any) => {\n const [form] = Form.useForm();\n\n const [item, setItem] = useState<any>(null);\n\n const handleSave = async (values: any) => {\n try {\n let resp: any;\n if (id) {\n resp = await updateItem({ ...values });\n } else {\n resp = await addItem(values);\n }\n\n return resp;\n } catch (error: any) {\n if (error.status === 400) {\n const response = error.response.data;\n const errors = parseServerErrors(response.errors);\n\n form.setFields(errors);\n }\n throw error;\n }\n };\n\n const getItem = async (id: number) => {\n try {\n const response = await getItemById(id);\n const data = response.data;\n setItem(data);\n form.setFieldsValue(data);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n };\n\n useEffect(() => {\n try {\n if (!formItem) return;\n setItem(formItem);\n form.setFieldsValue(formItem);\n } catch (err) {\n console.log(err, 'Error in Form Controller.');\n }\n }, [formItem]);\n\n useEffect(() => {\n if (!id) return;\n getItem(Number(id));\n }, [id]);\n\n return {\n form,\n item,\n handleSave,\n };\n};\n\nexport default useFormController;\n","import { useState } from 'react';\nimport { useNavigate } from 'react-router';\nimport useUserStore from '../stores/useUserStore';\n\ninterface TwoFactorState {\n visible: boolean;\n token: string;\n id?: number;\n mfaType?: number;\n}\n\nexport const useTwoFactor = () => {\n const navigate = useNavigate();\n const { setUser } = useUserStore();\n\n const [twoFactor, setTwoFactor] = useState<TwoFactorState>({\n visible: false,\n token: '',\n });\n\n const finalizeLogin = (userData: any) => {\n setUser(userData);\n setTwoFactor({ visible: false, token: '' });\n navigate('/');\n };\n\n const handleTwoFactorResponse: any = (resp: any, isLogin?: boolean) => {\n const { success, value } = resp.data;\n\n if (!success) {\n throw new Error('Authentication failed');\n }\n\n if (value.isTwoFactorRequired) {\n setTwoFactor({\n visible: true,\n token: value.token,\n id: value.id,\n mfaType: value.mfaType,\n });\n return;\n }\n\n if (isLogin) {\n finalizeLogin(value);\n }\n };\n\n return {\n handleTwoFactorResponse: handleTwoFactorResponse,\n finalizeLogin,\n twoFactor,\n setTwoFactor,\n };\n};\n","import { useContext, useEffect } from 'react';\nimport { UNSAFE_NavigationContext, useLocation } from 'react-router';\nimport { Modal } from 'antd';\n\nexport function useNavigationGuard(shouldBlock: any) {\n const { navigator } = useContext(UNSAFE_NavigationContext);\n const location = useLocation();\n\n useEffect(() => {\n if (!shouldBlock) return;\n\n const originalPush = navigator.push;\n const originalReplace = navigator.replace;\n\n const confirmAndNavigate =\n (method: any) =>\n (...args: any) => {\n Modal.confirm({\n title: 'UnsavedChanges',\n\n content: 'UnsavedMoveDesc',\n okText: 'Leave',\n className: 'custom-confirm-modal',\n cancelText: 'Save',\n okButtonProps: {\n className: 'ok-text-btn',\n },\n cancelButtonProps: {\n className: 'no-hover-cancel-btn', // in global css at this point for this..\n },\n onOk: () => {\n method(...args);\n },\n onCancel: () => {},\n });\n };\n\n navigator.push = confirmAndNavigate(originalPush);\n navigator.replace = confirmAndNavigate(originalReplace);\n\n return () => {\n navigator.push = originalPush;\n navigator.replace = originalReplace;\n };\n }, [shouldBlock, navigator, location]);\n\n useEffect(() => {\n const handleBeforeUnload = (e: any) => {\n if (!shouldBlock) return;\n e.preventDefault();\n e.returnValue = '';\n };\n\n window.addEventListener('beforeunload', handleBeforeUnload);\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [shouldBlock]);\n}\n","import { useEffect } from 'react';\n\nexport function useAutofillStartDetection(callback: Function) {\n useEffect(() => {\n const handleAnimationStart = (e: AnimationEvent) => {\n if (e.animationName === 'onAutoFillStart') {\n callback(e);\n }\n };\n\n document.addEventListener('animationstart', handleAnimationStart, true);\n return () => {\n document.removeEventListener('animationstart', handleAnimationStart, true);\n };\n }, []);\n}\n","export function formatDate(dateStr: any, options?: { withTime?: boolean }): string {\n if (!dateStr) return '';\n\n const date = new Date(dateStr);\n if (isNaN(date.getTime())) return '';\n\n const day = date.getDate();\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n\n const month = monthIndex;\n\n const formattedDate = `${day} ${month}, ${year}`;\n\n if (options?.withTime) {\n const hours = date.getHours().toString().padStart(2, '0');\n const minutes = date.getMinutes().toString().padStart(2, '0');\n return `${formattedDate} ${hours}:${minutes}`;\n }\n\n return formattedDate;\n}\n\nexport function numberFormatterWithComma(number: number, local = 'en-US'): any {\n if (number < 1) {\n return 0;\n } else if (!number) {\n return '';\n }\n\n return number.toLocaleString(local);\n}\n","// Backend sends PascalCase. Converts to camelCase, handling:\n// - Standard PascalCase: 'SubAffiliateRevShare' → 'subAffiliateRevShare'\n// - All-caps acronyms: 'CPA' → 'cpa'\n// - Leading acronyms: 'FTDAmountTiers' → 'ftdAmountTiers'\nconst toCamelCase = (str: string) =>\n str.replace(/^[A-Z]+/, match => {\n if (match.length === str.length) return match.toLowerCase();\n if (match.length > 1) return match.slice(0, -1).toLowerCase() + match.slice(-1);\n return match.toLowerCase();\n });\n\nexport type ParsedCommissionError = {\n brandIndex: number;\n message: string;\n generalType?: string;\n specificType?: string;\n itemIndex?: number;\n field?: string;\n};\n\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].SubAffiliate.SubAffiliateRevShare[0].Commission\"\nconst FIELD_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\[(\\d+)\\]\\.(\\w+)$/;\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers\"\nconst SPECIFIC_TYPE_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)$/;\n\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers.Count\"\nconst SPECIFIC_TYPE_ERROR_REGEX_COUNT = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\.(\\w+)$/;\n//this looks like this in bacckend VALIDATION DTO. \"Commissions[1]\"\nconst BRAND_ERROR_REGEX = /^Commissions\\[(\\d+)\\]$/;\n\nexport function parseCommissionErrors(error: any): ParsedCommissionError | null {\n const { errors: errorList } = error.response.data;\n\n const key = Object.keys(errorList)[0];\n const message = errorList[key][0];\n\n const fieldMatch = key.match(FIELD_ERROR_REGEX);\n if (fieldMatch) {\n const [, brandIndexStr, generalTypePascal, specificTypePascal, itemIndexStr, fieldPascal] =\n fieldMatch;\n return {\n brandIndex: Number(brandIndexStr),\n generalType: toCamelCase(generalTypePascal),\n specificType: toCamelCase(specificTypePascal),\n itemIndex: Number(itemIndexStr),\n field: toCamelCase(fieldPascal),\n message,\n };\n }\n\n const specificTypeMatch =\n key.match(SPECIFIC_TYPE_ERROR_REGEX) || key.match(SPECIFIC_TYPE_ERROR_REGEX_COUNT);\n if (specificTypeMatch) {\n const [, brandIndexStr, generalTypePascal, specificTypePascal] = specificTypeMatch;\n return {\n brandIndex: Number(brandIndexStr),\n generalType: toCamelCase(generalTypePascal),\n specificType: toCamelCase(specificTypePascal),\n message,\n };\n }\n\n const brandMatch = key.match(BRAND_ERROR_REGEX);\n if (brandMatch) {\n return {\n brandIndex: Number(brandMatch[1]),\n message,\n };\n }\n\n console.warn(\n 'parseCommissionErrors: unrecognized key format from the validations on commissions',\n key\n );\n return null;\n}\n"],"names":["PackageServicesContext","createContext","PackageServicesProvider","services","children","usePackageServices","useContext","_t","key","setPackageTranslationFn","fn","tGeneral","options","tActions","tAuthentication","tMonths","tDate","tWeekDays","tNoData","tComingSoon","PackageTranslationProvider","t","useEffect","SvgChevronDown","props","React","StyledDownArrow","styled","DownArrow","StyledSidebar","StyledHeaderLink","StyledHeaderLogo","StyledMenu","Menu","useFetch","fetchData","dependencies","condition","data","setData","useState","listItems","setListItems","loading","setLoading","error","setError","fetchDataFromAPI","response","_a","useUserStore","create","set","get","userData","newThemeMode","prefersDark","user","permission","SvgCheckmark","StyledCheckMark","CheckMark","StyledProfileMenuChildren","StyledProfileLabel","ProfileMenuWrapper","ProfileMenu","closeProfileDropdown","navigate","useNavigate","getCustomers","postSelectedCustomer","storedThemeMode","logout","setThemeMode","i18n","useTranslation","onLogoutClick","handleLanguageSelect","lang","renderLabel","label","isSelected","jsx","handleSetCustomer","id","navigateToProfile","jsxs","trigger","cust","Sidebar","items","topLogoPrimaryUrl","shortName","location","useLocation","showMenu","setShowMenu","menuRef","useRef","toggleMenu","prev","handleClickOutside","event","StyledLayout","StyledContentWrapper","StyledContent","AdminPage","Wrapper","LogoShortName","BackBtn","PageContainer","PageContent","PageTitleContainer","SideBannerWrapper","PageDesc","PageTitle","AuthBoxComponentWrapper","StyledFooter","StyledAuthSpan","SvgArrowLeft","ArrowLeftIcon","ArrowLeft","BoxComponentWrapper","BoxComponentBody","BoxComponentBottomText","BoxComponentTopText","CommissionStatusText","BoxComponent","boxBottomText","boxTopText","onClick","className","color","commissionStatus","AuthorizationLayout","pageTitle","pageDesc","logoPrimaryUrl","colorPrimary","searchParams","useSearchParams","backPath","handleBackBtnClick","path","TableViewOptions","SortDirections","FilterSelectTypes","ColumnFilterType","createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","defaultFilters","createGridViewStore","config","storageKey","defaultView","saved","parsed","newValue","filters","Sort","Asc","rest","sortFilters","updateFilters","sortItems","PageSize","QuickSearch","newFilters","item","arr","view","GridViewStoreContext","GridViewStoreProvider","storeRef","useGridViewStore","selector","store","useStore","useGridViewSessionStorage","hydrateFromStorage","s","isHydrated","filterItems","hideItems","groupByArr","activeTableView","selectedConfig","useElementHeight","ref","height","setHeight","observer","entry","RangePicker","DatePicker","PageWrapper","PageHeaderWrapper","PageTopContentWrapper","Table","DropdownContent","PageFilterWrapper","FilterItemWrapper","ResetConditionsWrapper","StyledRangePicker","OptionName","OptionWrapper","TwoComponentSelectTitle","TwoComponentSelectContent","GridViewPageTableWrapper","SvgFilter","SvgSettings","SvgColor","useDebounce","delay","deps","debouncedFn","useMemo","debounce","SvgArrowUp","SvgArrowDown","SvgSort","DropdownWrapper","overlay","placement","open","setOpen","Dropdown","SortDropdown","columns","setSortItems","selectedSortItem","searchValue","setSearchValue","sortDirection","setSortDirection","filteredColumns","col","onSelect","direction","onRemove","_setOpen","e","i","Checkmark","ArrodwUpLogo","ArrodwDownLogo","SortLogo","FilterDropdown","CustomFilters","dropdownOpen","setDropdownOpen","setFilterItems","onClickHandle","column","c","defaultPopupOptions","defaultFooterOptions","useModalStore","buildOptions","opts","hide","title","StyledSelect","Select","ROUTE_FILTER_TYPE_MAP","useFilterDataSourceType","pathname","match","route","handleDictionarySelectFilter","input","option","PageHeader","setisSettingPopupVisible","tableAdditionalFields","createIsModal","exportButton","hasSelect","selectProps","GridPageTopLeftComponent","noNeedSidebarResponsiveButton","hasCreateBtn","setFilters","isQuicksearchVisible","setisQuicksearchVisible","stored","_b","isSidebarVisible","setIsSidebarVisible","openModal","setOpenModal","getMyFilters","filterType","savedConfigs","setSavedConfigs","setSelectedConfig","configsVersion","res","applyConfiguration","onQuickSearchChange","onSettingClick","handleCreateClick","SidebarIcon","FilterLogo","SettingsLogo","SvgPlus","SvgArrowRefresh","_DateHelper","value1","value2","val1","val2","value","date","month","day","year","mm","dd","start","end","d","dates","hour","minute","strTime","datePart","timePart","second","utc","dateObject","v","years","months","days","hours","minutes","seconds","today","a","b","now","timeDiff","endDate","starDate","plus","parsedNb","y","m","val","tzHour","tzMin","dateSetter","timeSetter","h","ms","__publicField","startDate","DateHelper","SvgCloseMark","CloseMarkIcon","CloseMark","Popup","Modal","PopupHeader","CloseButton","ContentContainer","NoDataSpanForSelect","LabelText","PopupFooterContainer","CancelModalButton","Button","ModalHostButtonWrapper","CreateModalButton","RejectButton","GeneralInput","Input","getBase64","file","resolve","reject","reader","lowercaseFirstLetter","word","handleCopy","textToCopy","notification","catchErrorMessage","form","errorMessages","FilterConfiguration","type","onSuccess","postMyFilter","putMyFilter","Form","setOnOk","close","values","errors","SvgArrowRight","ArrowRightIcon","ArrowRight","DeleteRecordPopup","StyledCheckbox","Checkbox","FilterItem","inputRef","handleFocus","onFilterValueDropdownClick","twoComponentSelectDropdownClick","isCountryGroup","selectedValues","setSelectedValues","onFilterValueToggle","optionId","newValues","selectedLabels","opt","f","onFilterValueChange","onOpenChange","dropdownContentComponent","Fragment","_c","_e","_d","_g","_f","isoDates","triggerNode","dropdownContent","_h","_i","PageFilter","resetStore","deleteMyFilter","bumpConfigsVersion","handleDeleteConfiguration","err","deleteConfiguration","handleSaveConfiguration","savedName","PlusLogo","RefrechSvg","TableWrapper","DrodownContent","PaginationWrapper","PageSizeSelectDropdownContent","groupBy","currentGroupOptions","getGroupLength","group","sum","list","TableRow","rowKey","onRowClick","checkedValue","TableBodyRows","rows","SketelonRows","rowLength","columnLength","_","rowIndex","_col","colIndex","Skeleton","SubGroupedSection","subGroups","subLabel","GroupHeader","colSpan","count","GroupedTableBody","dataSource","isSubGroupped","groupLabel","TablePagination","pagination","onPerPageSelectChange","totalItemCount","onPaginationChange","Pagination","CheckmarkIcon","ChevronDown","SvgEyeHide","TableTh","setHideItems","onSortSelectHandle","onFilterSelectHandle","removeCurrentItem","onHideSelectHandle","isHide","closeDropdown","dropdownItems","ArrowUp","ArrowDown","EyeHide","icon","text","action","NoDataWrapper","TextContainer","HeaderText","InfoText","HelpSpan","NoData","description","button","helpSpan","noPagination","noDataProps","currentColumns","g","isTableGroupped","isTableSubGroupped","currentDataSource","grouped","subGrouped","newPageSize","newPage","SettingSidebarWrapper","StyledNoGrouping","SvgClose","SvgCheckmarkFilled","ModalContentWrapper","VerificationWrapper","DidnotReceiveCodeSpan","OtpContentWrapper","BlockedOtpHeader","BlockedOtpTitle","OtpBlockedLabel","OtpBlockedButton","SvgError","parseErrorMessageKey","result","curr","next","parseServerErrors","messages","part","ButtonsWrapper","BackupSpan","BackupCodeInfoText","MFAPopupHeader","PasswordInputWrapper","SpinWrapper","BackupCodeWrapper","PasswordInput","EnterBackupCode","confirmationToken","backupCodeEndpoint","setBackupActivated","setVisible","setRefetchData","code","setCode","errorList","setErrorList","handleSubmit","resp","ErrorSvg","Overlay","ModalContainer","modalRoot","el","isOpen","onClose","onKeyDown","ReactDOM","ModalText","ContactInfoModal","isVisible","mfaType","isBlocked","onBlockStateClose","confirmContactInfo","confirmContactInfoBackup","setUser","optValue","setOPTValue","setErrors","backupActivated","handleOTPChange","handleSubmitVerificationCode","_confirm","handleSubmitBackupCode","params","_confirmBackup","useContactInfoController","enableContactInfo","disableContactInfo","isContactInfoModalVisible","setIsContactInfoModalVisible","savedResp","setSavedResp","setIsBlocked","handleEnableContactInfo","handleDisableContactInfo","SettingSidebar","setActiveTableView","setGroupByArr","ContactInfoModalProps","handleGroupChange","currentCol","formatDateDifference","date1","date2","d1","d2","diffMs","parts","onResetAllOptions","CloseSvg","CheckmarkFilledSvg","FilterSvg","GridViewPage","getData","update","contentAfterPageHeader","initialFilterValues","editButton","TableComponent","tableProps","loadedData","setColumns","setHasCreateBtn","setHasSelect","setCheckedValue","isSettingPopupVisible","pageTopContent","topContentHeight","GridViewPageWrapper","ModalHost","Component","componentProps","popupOptions","footerOptions","hideFooter","showCloseButton","onOk","onCancel","handleCancel","handleOk","PopupMFA","displayAddRuleModal","SelectMFAMethod","setCurrentStep","setConfirmationToken","enableTwoFactorService","setRefetch","setIdOf2FA","getEmailToken","_enable","MFA_STEP","VerifyAuthenticatorCode","setBackupCodes","confirmTwoFactorService","_setErrors","handleContinue","_verify","SelectAuthenticatorApp","authenticatorApps","app","QrWrapper","QrInputWrapper","AuthenticatorQrCopyWrapper","AuthenticatoQrInpuWrapper","QrModalButtonWrapper","IconContext","_extends","n","r","_arrayWithHoles","_iterableToArrayLimit","l","u","o","_arrayLikeToArray","_unsupportedIterableToArray","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_typeof","toPrimitive","toPropertyKey","_defineProperty","_objectWithoutPropertiesLoose","_objectWithoutProperties","objectWithoutPropertiesLoose","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","round","splitColorStr","str","parseNum","numList","parseHSVorHSL","num","index","limitRange","max","mergedMax","FastColor","matchFormat","matchPrefix","prefix","trimStr","hsv","adjustGamma","raw","R","G","B","delta","amount","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","huePrime","chroma","secondComponent","lightnessModification","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","getValue","generate","patterns","pColor","_ref","blue","ownKeys","_objectSpread2","defineProperty","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","head","getOrder","prepend","findStyles","container","injectCSS","css","csp","_option$priority","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","styles","_objectSpread","existNode","_option$csp","_option$csp2","_option$csp3","newNode","getRoot","ele","_ele$getRootNode","inShadow","getShadowRoot","warned","preWarningFns","preMessage","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","warn","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","_useContext","prefixCls","layer","mergedStyleStr","shadowRoot","_excluded","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","style","restProps","svgRef","colors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","getTwoToneColor","Icon","spin","rotate","tabIndex","_React$useContext","Context","_React$useContext$pre","rootClassName","classString","iconTabIndex","svgStyle","CopyOutlined","AntdIcon","CopyOutlinedSvg","RefIcon","DownloadOutlined","DownloadOutlinedSvg","ConnectAuthenticatorApp","initiateMFA","init","Spin","DisableAuthenticator","disableMFAService","VerifyEmailCode","idOf2FA","otpValue","setOtpValue","BackupCodes","backupCodes","handleDownload","content","blob","url","ModalManager","setIsOpen","modal","currentStep","StepComponent","stepProps","PageBreadcrumbWrapper","BackButton","StyledArrowLeft","StyledBreadcrumb","Breadcrumb","PageBreadcrumb","breadcrumbItems","logo","backButton","MfaType","TwoFactorPopup","confirmTwoFactor","resendOTP","updatedResponse","visible","disabledUntilMinutePasses","setDisabledUntilMinutePasses","timeLeft","setTimeLeft","onSave","handleResendOTP","interval","ChartWrapper","Chart","chartDom","chartInstance","echarts","resizeHandler","StyledSpin","Spinner","backgroundcolor","shimmer","keyframes","SkeletonBase","SkeletonHeader","SkeletonSubtitle","SkeletonBox","SkeletonRow","Container","SkeletonChipRow","SkeletonChip","SkeletonContentLine","BigBox","SkeletonCardContent","ComingSoon","CustomTable","SvgChevronUp","ExpandableTable","CustomExpandableRow","dataTableColumns","expandableRowProps","expandedRows","setExpandedRow","expandedRowKeys","setExpandedRowKeys","tableColumns","handleExpandedRowsChange","Empty","record","expanded","ChevronUp","StyledDateRangeFilterTabs","Tabs","TabsCustomDateFilterWrapper","CustomDateFilterWrapper","isString","obj","defer","rej","promise","makeString","object","copy","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","stack","stackIndex","setPath","k","last","pushPath","concat","getPath","getPathWithDefaults","defaultData","deepExtend","source","overwrite","prop","regexEscape","_entityMap","escape","RegExpCache","capacity","pattern","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","matched","ki","deepFind","tokens","current","nextPath","j","getCleanedCode","consoleLogger","args","Logger","concreteLogger","lvl","debugOnly","moduleName","baseLogger","EventEmitter","events","numListeners","wrapper","numTimesAdded","ResourceStore","ns","lng","ignoreJSONStructure","resources","deep","pack","postProcessor","processors","translator","processor","PATH_KEY","createProxy","handler","proxy","keysFromSelector","nsArray","shouldHandleAsObject","Translator","resolved","isObject","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","keys","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","noObject","joinArrays","handleAsObjectInI18nFormat","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","defaultValue","resForObjHndl","handleAsObject","resType","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","specificDefaultValue","defaultForMissing","language","suffixes","suffix","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","LanguageUtil","formattedCode","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","suffixesOrder","dummyRule","PluralResolver","languageUtils","cleanedCode","cacheKey","rule","lngPart","pluralCategory1","pluralCategory2","pluralCategory","deepFindWithDefaults","regexSafe","Interpolator","escape$1","escapeValue","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","getOrResetRegExp","existingRegExp","replaces","handleFormat","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","keyEndIndex","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","trimmedKey","createCachedFormatter","cache","optForCache","frm","createNonCachedFormatter","Formatter","cf","formatter","name","format","formats","lastIndex","mem","formatted","valOptions","removePending","Connector","backend","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","loaded","loadedKeys","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","ret","transformOptions","noop","bindMemberFunctions","inst","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","deferred","load","finish","usedCallback","append","li","lngInLngs","setLngProps","done","setLng","fl","keyPrefix","fixedT","selectorOpts","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","ti","rtlLngs","instance","forkResourceStore","mergedOptions","clonedData","mergedInterpolation","mergedForInterpolator","HttpApi","LanguageDetector","initReactI18next","this","$","M","D","S","w","O","CustomDateRangePicker","setDateFilter","setShowRange","setDates","disabledDate","dayjs","handleRangeChange","headerLocale","StyledEmpty","StyledTable","StyledTooltip","Tooltip","$width","$height","DateRangeFilterTabs","setDateFilters","hasAllFilter","TabItems","showRange","tabItems","handleTabClick","tab","foundTab","each","StyledDropdownContainer","ExportXlsxFunction","link","ExportCsvFunction","csvDataString","StyledDropdown","StyledButton","ExcelExport","exportFileName","service","onExportClick","Page","filtersWithoutPageAndPageSize","menu","exportSelectedToCSV","tableData","checked","fileName","selectedRows","row","headers","csvArray","cell","BOM","exportSelectedToXLSX","simplifiedData","flatValue","worksheet","XLSX","workbook","excelBuffer","ExcelExportSelected","DatePickerToISO","onChange","parsedValue","handleChange","Dragger","Upload","StyledUploadFile","UploadFiles","inputDesign","addFilesService","handleUpload","previewUrl","tempFile","newFileList","formData","uploadedFile","handleRemove","TabComponent","TabExtraContent","ExtraContentWrapper","TabSelectWrapper","DashboardResponsiveButtonWrapper","ResponsiveSidebarButton","GenericTabsPage","basePath","contentMap","defaultTabKey","needsBreadcrumb","customTabFilter","hasPermission","useParams","activeKey","pathParts","extraTabItem","setExtraTabItem","secondExtraTab","setSecondExtraTab","onTabChange","getFilteredTabs","perm","renderContent","Card","IconWrapper","Title","Description","SuccessPage","useFormController","refetchFormItems","redirectPrevPage","updateItem","addItem","getItemById","onSetFormValues","isAddingForm","setIsAddingForm","setItem","handleSave","currentPath","parentPath","getItem","formItem","useTwoFactor","twoFactor","setTwoFactor","finalizeLogin","isLogin","success","useNavigationGuard","shouldBlock","navigator","UNSAFE_NavigationContext","originalPush","originalReplace","confirmAndNavigate","handleBeforeUnload","useAutofillStartDetection","handleAnimationStart","formatDate","dateStr","monthIndex","formattedDate","numberFormatterWithComma","number","local","toCamelCase","FIELD_ERROR_REGEX","SPECIFIC_TYPE_ERROR_REGEX","SPECIFIC_TYPE_ERROR_REGEX_COUNT","BRAND_ERROR_REGEX","parseCommissionErrors","fieldMatch","brandIndexStr","generalTypePascal","specificTypePascal","itemIndexStr","fieldPascal","specificTypeMatch","brandMatch"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmMtB+a,GAAiB/a,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCxBgb,GAAoBhb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8F3Bib,GAAgCjb,EAAO;AAAA;AA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","x_google_ignoreList":[20,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,141,143]}