affiliate-front-shared 1.3.30 → 1.3.32

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.mjs","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","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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","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.mjs","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/SelectOtherMethod.tsx","../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/constants/currencies.ts","../src/utils/formatter.ts","../src/utils/parseCommissionErrors.ts"],"sourcesContent":["import { createContext, useContext, type ReactNode } from 'react';\r\n\r\n// ─── Response shapes ──────────────────────────────────────────────────────────\r\n\r\nexport interface FiltersType {\r\n id?: number;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface TwoFactorInitResponse {\r\n data: {\r\n success: boolean;\r\n value?: {\r\n isTwoFactorRequired: boolean;\r\n token: string;\r\n id: string;\r\n };\r\n };\r\n}\r\n\r\nexport interface MFASetupResponse {\r\n data: {\r\n value: {\r\n totpSecret: string;\r\n qrCodeImage: string;\r\n provisioningUri: string;\r\n };\r\n };\r\n}\r\n\r\nexport interface SuccessResponse {\r\n data: { success: boolean; value?: unknown };\r\n}\r\n\r\nexport interface CustomerItem {\r\n id: number | string;\r\n name: string;\r\n}\r\n\r\n// ─── Service definitions ──────────────────────────────────────────────────────\r\n// All services are optional — provide only what your project uses.\r\n\r\nexport interface PackageServices {\r\n // ── GridView ──────────────────────────────────────────────────────────────\r\n getMyFilters?: (filterType: number | string) => Promise<{ data: FiltersType[] }>;\r\n saveMyFilter?: (filterType: string, name: string, value: string) => Promise<SuccessResponse>;\r\n updateMyFilter?: (\r\n id: number,\r\n filterType: string,\r\n name: string,\r\n value: string\r\n ) => Promise<SuccessResponse>;\r\n deleteMyFilter?: (id: number) => Promise<SuccessResponse>;\r\n\r\n // ── MFA setup ─────────────────────────────────────────────────────────────\r\n enableTwoFactorService?: () => Promise<TwoFactorInitResponse>;\r\n initiateMFA?: () => Promise<MFASetupResponse>;\r\n verifyMFA?: (otpValue: string) => Promise<SuccessResponse>;\r\n\r\n // ── Two-factor verification (login / sensitive actions) ───────────────────\r\n confirmTwoFactor?: (params: {\r\n confirmationToken: string;\r\n code: string;\r\n id: string;\r\n }) => Promise<SuccessResponse>;\r\n resendOTP?: (confirmationToken: string, id: string) => Promise<SuccessResponse>;\r\n confirmTwoFactorBackupCode?: (params: {\r\n confirmationToken: string;\r\n code: string;\r\n id: string;\r\n }) => Promise<SuccessResponse>;\r\n\r\n // ── Contact info ──────────────────────────────────────────────────────────\r\n enableContactInfo?: () => Promise<SuccessResponse>;\r\n disableContactInfo?: () => Promise<SuccessResponse>;\r\n confirmContactInfo?: (code: string, otpValue: string, id: string) => Promise<SuccessResponse>;\r\n confirmContactInfoBackup?: (params: {\r\n confirmationToken: string;\r\n code: string;\r\n id: string;\r\n }) => Promise<SuccessResponse>;\r\n\r\n // ── Identity / customer switcher ──────────────────────────────────────────\r\n getCustomers?: () => Promise<{ data: CustomerItem[] }>;\r\n postSelectedCustomer?: (id: number | string) => Promise<SuccessResponse>;\r\n}\r\n\r\n// ─── Context ──────────────────────────────────────────────────────────────────\r\n\r\nconst PackageServicesContext = createContext<PackageServices>({});\r\n\r\n/**\r\n * Wrap your app (or the section using this package) once with this provider\r\n * and pass in all the API functions your project implements.\r\n *\r\n * Example:\r\n * import { enableTwoFactorService, getMyFilters } from './services/myApi';\r\n *\r\n * <PackageServicesProvider services={{ enableTwoFactorService, getMyFilters }}>\r\n * <App />\r\n * </PackageServicesProvider>\r\n */\r\nexport function PackageServicesProvider({\r\n services,\r\n children,\r\n}: {\r\n services: PackageServices;\r\n children: ReactNode;\r\n}) {\r\n return (\r\n <PackageServicesContext.Provider value={services}>\r\n {children}\r\n </PackageServicesContext.Provider>\r\n );\r\n}\r\n\r\n/**\r\n * Use inside any component in this package to access injected service functions.\r\n *\r\n * Example:\r\n * const { getMyFilters } = usePackageServices();\r\n * if (!getMyFilters) return;\r\n * const res = await getMyFilters(filterType);\r\n */\r\nexport function usePackageServices(): PackageServices {\r\n return useContext(PackageServicesContext);\r\n}\r\n","export type TranslationFn = (key: string, options?: Record<string, unknown>) => string;\r\n\r\n// Module-level singleton — set by PackageTranslationProvider\r\nlet _t: TranslationFn = (key: string) => key;\r\n\r\n/**\r\n * Called by PackageTranslationProvider to inject the parent app's t function.\r\n * The provider re-calls this whenever the language changes so the singleton stays fresh.\r\n */\r\nexport function setPackageTranslationFn(fn: TranslationFn): void {\r\n _t = fn;\r\n}\r\n\r\n// ─── Namespace helpers ────────────────────────────────────────────────────────\r\n// Each function prefixes the key with its namespace so the parent app's\r\n// translation files can be structured as:\r\n// { \"general\": { \"Filter\": \"Filter\" }, \"actions\": { \"Ascending\": \"Ascending\" }, … }\r\n// or flat with dot-notation keys, depending on the i18n library setup.\r\n\r\nexport const tGeneral = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`general.${key}`, options);\r\nexport const tActions = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`actions.${key}`, options);\r\nexport const tAuthentication = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`authentication.${key}`, options);\r\nexport const tMonths = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`months.${key}`, options);\r\nexport const tDate = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`date.${key}`, options);\r\nexport const tWeekDays = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`weekDays.${key}`, options);\r\nexport const tSidebar = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`sidebar.${key}`, options);\r\n\r\nexport const tReports = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`reports.${key}`, options);\r\n\r\nexport const tNoData = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`noData.${key}`, options);\r\n\r\nexport const tTwoFactor = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`twoFactor.${key}`, options);\r\n\r\nexport const tComingSoon = (key: string, options?: Record<string, unknown>): string =>\r\n _t(`comingSoon.${key}`, options);\r\n","import { useEffect, type ReactNode } from 'react';\r\nimport { setPackageTranslationFn, type TranslationFn } from './exportTranslation';\r\n\r\ninterface PackageTranslationProviderProps {\r\n /**\r\n * The translation function from the parent app's i18n library.\r\n * Called with keys like \"general.Filter\", \"actions.Ascending\", etc.\r\n *\r\n * Example with react-i18next (flat namespace):\r\n * const { t } = useTranslation();\r\n * <PackageTranslationProvider t={t}>\r\n *\r\n * Example with a custom function:\r\n * <PackageTranslationProvider t={(key) => myTranslations[key] ?? key}>\r\n */\r\n t: TranslationFn;\r\n children: ReactNode;\r\n}\r\n\r\n/**\r\n * Wrap your app (or the section using this package) with this provider to\r\n * inject your project's translation function into the package.\r\n *\r\n * Re-renders automatically when `t` changes (e.g. on language switch),\r\n * keeping all package translations in sync.\r\n */\r\nexport function PackageTranslationProvider({ t, children }: PackageTranslationProviderProps) {\r\n // Sync immediately on first render (covers SSR / initial paint)\r\n setPackageTranslationFn(t);\r\n\r\n // Keep in sync when `t` changes (language switch causes a new `t` reference\r\n // in react-i18next, which triggers this effect and updates the singleton)\r\n useEffect(() => {\r\n setPackageTranslationFn(t);\r\n }, [t]);\r\n\r\n return <>{children}</>;\r\n}\r\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';\r\nimport styled from 'styled-components';\r\nimport DownArrow from '../../../assets/icons/chevron-down.svg?react';\r\n\r\nexport const StyledDownArrow = styled(DownArrow)`\r\n color: var(--color-text-primary, #131412);\r\n`;\r\n\r\nexport const StyledSidebar = styled.div`\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n color: #000;\r\n width: 100%;\r\n box-sizing: border-box;\r\n position: relative;\r\n\r\n height: 100vh;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n position: relative;\r\n`;\r\n\r\nexport const StyledHeaderLink = styled.div`\r\n display: inline-flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 1rem;\r\n img {\r\n width: var(--size-300, 1.5rem);\r\n height: var(--size-300, 1.5rem);\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n }\r\n span {\r\n color: var(--color-text-primary, #131412);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-caption-lineHeight-medium, 1.125rem);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.00625rem);\r\n }\r\n`;\r\n\r\nexport const StyledHeaderLogo = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 5px;\r\n padding-top: 10px;\r\n cursor: pointer;\r\n width: max-content;\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-medium, 500);\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\r\nexport const StyledMenu = styled(Menu)`\r\n border: none !important;\r\n background: transparent;\r\n flex: 1;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n\r\n border: none !important;\r\n background: transparent;\r\n .ant-menu-item {\r\n height: auto;\r\n width: auto;\r\n margin: 0.13rem 0.75rem !important;\r\n padding: 0.5rem !important;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n &.ant-menu-item-selected {\r\n background: var(--color-bg-tertiary, #e7e7e7);\r\n color: var(--color-text-primary, #131412);\r\n font-weight: var(--text-weight-medium, 500);\r\n }\r\n }\r\n .ant-menu-item-group {\r\n margin-top: 0.5rem;\r\n }\r\n .ant-menu-item-group-title {\r\n padding: 0.75rem 0 0.5rem 1.25rem;\r\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\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);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n }\r\n .ant-menu-item,\r\n .ant-menu-submenu-title {\r\n color: var(--color-text-primary, #131412);\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 &:hover {\r\n a {\r\n color: var(--color-text-primary, #131412);\r\n }\r\n }\r\n svg {\r\n path {\r\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\r\n }\r\n }\r\n }\r\n\r\n .ant-menu-submenu-title {\r\n height: auto;\r\n width: auto;\r\n padding: 0.75rem 0 0.5rem 0.5rem !important;\r\n margin: 0.13rem 0.75rem !important;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n }\r\n\r\n .ant-menu-submenu-selected > .ant-menu-submenu-title {\r\n color: var(--color-text-primary, #131412);\r\n }\r\n\r\n @media (max-width: 991px) {\r\n .ant-menu-submenu .ant-menu-item {\r\n margin-left: 1.5rem !important;\r\n }\r\n }\r\n`;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useFetch = <T>(\r\n fetchData: () => Promise<T>,\r\n dependencies: any[] = [],\r\n condition: boolean = true\r\n) => {\r\n const [data, setData] = useState<T | null>(null);\r\n const [listItems, setListItems] = useState<Array<any> | null>(null);\r\n const [loading, setLoading] = useState<boolean>(true);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n const fetchDataFromAPI = async () => {\r\n if (condition) {\r\n try {\r\n setLoading(true);\r\n setData(null);\r\n const response: any = await fetchData();\r\n setData(response);\r\n if (response?.data?.items) {\r\n setListItems(response.data.items);\r\n }\r\n } catch (err) {\r\n setError('Failed to fetch data');\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchDataFromAPI();\r\n }, [...dependencies]);\r\n\r\n return {\r\n response: data,\r\n loading,\r\n error,\r\n fetchData: fetchDataFromAPI,\r\n listItems: listItems,\r\n };\r\n};\r\n","import { create } from 'zustand';\r\n\r\ninterface UserData {\r\n type: string;\r\n id: number;\r\n userName: string;\r\n fullName: string;\r\n affiliateUserId: number;\r\n token: string;\r\n expired: string; // ISO date string\r\n permissions: Record<string, number>;\r\n sensitiveDataExpiration?: string;\r\n}\r\ninterface UserStore {\r\n user: UserData | null;\r\n prefersDark: boolean;\r\n storedThemeMode: boolean | null;\r\n setUser: (userData: UserData) => void;\r\n logout: () => void;\r\n setThemeMode: (prefersDark: boolean | null) => void;\r\n isSentsitiveInfoVisible: () => boolean;\r\n isTokenActive: () => boolean;\r\n hasPermission: (permission: number) => boolean;\r\n isManager: () => boolean;\r\n}\r\n\r\nconst useUserStore = create<UserStore>((set, get) => ({\r\n user: localStorage.getItem('userData')\r\n ? JSON.parse(localStorage.getItem('userData') as string)\r\n : null,\r\n\r\n prefersDark: false,\r\n storedThemeMode: null,\r\n setUser: (userData: any) => {\r\n localStorage.setItem('useToken', userData.token);\r\n localStorage.setItem('userData', JSON.stringify(userData));\r\n set({ user: userData });\r\n },\r\n\r\n setThemeMode: (newThemeMode: boolean | null) => {\r\n // when newThemeMode = null -> get from user preferences\r\n // when newThemeMode = true -> dark\r\n // when newThemeMode = false -> light\r\n const prefersDark =\r\n newThemeMode === null\r\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\r\n : !!newThemeMode;\r\n\r\n set({\r\n prefersDark: prefersDark,\r\n storedThemeMode: newThemeMode,\r\n });\r\n\r\n document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');\r\n localStorage.setItem('themeMode', JSON.stringify(newThemeMode));\r\n },\r\n logout: () => {\r\n localStorage.removeItem('userData');\r\n localStorage.removeItem('useToken');\r\n set({ user: null });\r\n },\r\n isSentsitiveInfoVisible: () => {\r\n const user = get().user;\r\n if (!user?.sensitiveDataExpiration) return false;\r\n return new Date() < new Date(user.sensitiveDataExpiration);\r\n },\r\n isTokenActive: () => {\r\n const user = get().user;\r\n if (!user?.expired) return false;\r\n return new Date() < new Date(user.expired);\r\n },\r\n isManager: () => {\r\n const user = get().user;\r\n\r\n if (user?.type === 'Manager') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n hasPermission: (permission: number) => {\r\n const user = get().user;\r\n if (!user?.permissions) return false;\r\n return !!user.permissions[permission];\r\n },\r\n}));\r\n\r\nexport default useUserStore;\r\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';\r\nimport styled from 'styled-components';\r\nimport CheckMark from '../../../assets/icons/checkmark.svg?react';\r\n\r\nexport const StyledCheckMark = styled(CheckMark)`\r\n display: flex;\r\n justify-content: center;\r\n color: var(--color-text-primary, #131412) !important;\r\n`;\r\nexport const StyledProfileMenuChildren = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n width: 256px;\r\n`;\r\n\r\nexport const StyledProfileLabel = styled.span`\r\n color: var(--color-text-primary, #131412);\r\n\r\n /* caption/medium-r */\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\r\nexport const StyledMenu = styled(Menu)`\r\n display: flex;\r\n padding: var(--spacing-050, 4px) 0;\r\n flex-direction: column;\r\n gap: var(--spacing-025, 2px);\r\n align-self: stretch;\r\n background: var(--color-bg-quaternary, #fff);\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) !important;\r\n border: none !important;\r\n border: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\r\n\r\n .ant-menu-item-selected {\r\n background-color: transparent !important;\r\n }\r\n .ant-menu-item,\r\n .ant-menu-submenu-title {\r\n color: var(--color-text-primary, #131412) !important;\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 14px) !important;\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n }\r\n .ant-menu-item-divider {\r\n background: var(--color-bg-secondary, #f5f5f5) !important;\r\n height: 3px;\r\n }\r\n\r\n .ant-menu-submenu-popup > .ant-menu {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-quaternary, #fff);\r\n }\r\n\r\n .ant-menu-submenu-popup .ant-menu-item {\r\n background-color: transparent !important;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .ant-menu-submenu-popup .ant-menu-item:hover {\r\n background-color: transparent !important;\r\n }\r\n`;\r\nexport const ProfileMenuWrapper = styled.div`\r\n width: 256px;\r\n position: absolute !important;\r\n z-index: 10000;\r\n`;\r\n","import { useNavigate } from 'react-router';\r\nimport { useFetch } from '../../../hooks/useFetch';\r\nimport useUserStore from '../../../stores/useUserStore';\r\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\r\nimport {\r\n ProfileMenuWrapper,\r\n StyledCheckMark,\r\n StyledMenu,\r\n StyledProfileLabel,\r\n StyledProfileMenuChildren,\r\n} from './style';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst ProfileMenu = ({ closeProfileDropdown }: any) => {\r\n const navigate = useNavigate();\r\n const { getCustomers, postSelectedCustomer } = usePackageServices();\r\n const { storedThemeMode, logout, setThemeMode, user } = useUserStore();\r\n const { i18n } = useTranslation();\r\n\r\n function onLogoutClick() {\r\n logout();\r\n navigate('/authorization/login');\r\n }\r\n\r\n function handleLanguageSelect(lang: string) {\r\n i18n.changeLanguage(lang);\r\n window.location.reload();\r\n }\r\n\r\n const renderLabel = (label: any, isSelected?: boolean) => {\r\n return (\r\n <StyledProfileMenuChildren>\r\n <StyledProfileLabel>{label}</StyledProfileLabel>\r\n {isSelected && (\r\n <span>\r\n <StyledCheckMark />\r\n </span>\r\n )}\r\n </StyledProfileMenuChildren>\r\n );\r\n };\r\n\r\n const { response } = useFetch<any>(getCustomers ?? (() => Promise.resolve({ data: [] })), []);\r\n\r\n async function handleSetCustomer(id: any) {\r\n if (!postSelectedCustomer) return;\r\n const resp = await postSelectedCustomer(id);\r\n const userData = resp.data.value as any;\r\n\r\n localStorage.setItem('useToken', userData.token);\r\n localStorage.setItem('userData', JSON.stringify(userData));\r\n }\r\n\r\n const navigateToProfile = () => {\r\n if (user?.type === 'Manager') {\r\n navigate(`/affiliate-manager/profile/${user.id}`);\r\n } else {\r\n navigate(`/affiliate-users/profile/${user?.affiliateUserId}`);\r\n }\r\n };\r\n\r\n return (\r\n <ProfileMenuWrapper>\r\n <StyledMenu\r\n mode={window.innerWidth < 780 ? 'inline' : 'vertical'}\r\n key={'10'}\r\n getPopupContainer={trigger => trigger.parentElement || document.body}\r\n onClick={() => closeProfileDropdown(false)}\r\n >\r\n <StyledMenu.Item key={'10-1'} onClick={navigateToProfile}>\r\n {'Profile'}\r\n </StyledMenu.Item>\r\n <StyledMenu.Item key={'10-2'}> {'Notifications'}</StyledMenu.Item>\r\n <StyledMenu.Item key={'10-3'}> {'SecurityAccess'}</StyledMenu.Item>\r\n\r\n <StyledMenu.Divider />\r\n\r\n <StyledMenu.SubMenu key={'20'} title={'Language'}>\r\n <StyledMenu.Item key={'20-1'} onClick={() => handleLanguageSelect('en')}>\r\n {renderLabel('English', i18n.language === 'en')}\r\n </StyledMenu.Item>\r\n <StyledMenu.Item key={'20-2'} onClick={() => handleLanguageSelect('ka')}>\r\n {renderLabel('Georgian', i18n.language === 'ka')}\r\n </StyledMenu.Item>\r\n </StyledMenu.SubMenu>\r\n\r\n <StyledMenu.SubMenu key={'30'} title={'ColorTheme'}>\r\n <StyledMenu.Item key={'30-1'} onClick={() => setThemeMode(false)}>\r\n {renderLabel('Light', storedThemeMode === false)}\r\n </StyledMenu.Item>\r\n <StyledMenu.Item key={'30-2'} onClick={() => setThemeMode(true)}>\r\n {renderLabel('Dark', storedThemeMode === true)}\r\n </StyledMenu.Item>\r\n <StyledMenu.Item key={'30-3'} onClick={() => setThemeMode(null)}>\r\n {renderLabel(\r\n `${'DefinedBySystem'} (${window.matchMedia('(prefers-color-scheme: dark)').matches ? 'Dark' : 'Light'})`,\r\n storedThemeMode === null\r\n )}\r\n </StyledMenu.Item>\r\n </StyledMenu.SubMenu>\r\n\r\n <StyledMenu.Divider />\r\n\r\n <StyledMenu.SubMenu key={'40'} title={'ConnectedAccounts'}>\r\n {(response?.data || []).map((cust: any) => (\r\n <StyledMenu.Item key={cust.id} onClick={() => handleSetCustomer(cust.id)}>\r\n {renderLabel(cust.name)}\r\n </StyledMenu.Item>\r\n ))}\r\n </StyledMenu.SubMenu>\r\n\r\n <StyledMenu.Divider />\r\n\r\n <StyledMenu.Item key={'100'} onClick={onLogoutClick}>\r\n {'LogOut'}\r\n </StyledMenu.Item>\r\n </StyledMenu>\r\n </ProfileMenuWrapper>\r\n );\r\n};\r\n\r\nexport default ProfileMenu;\r\n","import {\r\n StyledDownArrow,\r\n StyledHeaderLink,\r\n StyledHeaderLogo,\r\n StyledMenu,\r\n StyledSidebar,\r\n} from './style';\r\nimport { useLocation } from 'react-router';\r\n\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport ProfileMenu from '../profile-menu';\r\nimport { MenuItemProps } from 'antd';\r\n\r\ntype SidebarProps = {\r\n items?: MenuItemProps;\r\n topLogoPrimaryUrl?: string;\r\n shortName?: string;\r\n};\r\nconst Sidebar = ({ items, topLogoPrimaryUrl, shortName }: SidebarProps) => {\r\n const location = useLocation();\r\n\r\n const [showMenu, setShowMenu] = useState(false);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n\r\n const toggleMenu = () => setShowMenu(prev => !prev);\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\r\n setShowMenu(false);\r\n }\r\n }\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => document.removeEventListener('mousedown', handleClickOutside);\r\n }, []);\r\n\r\n return (\r\n <StyledSidebar className=\"sidebar-wrapper\">\r\n <StyledHeaderLink ref={menuRef}>\r\n <StyledHeaderLogo onClick={toggleMenu}>\r\n <img src={topLogoPrimaryUrl} alt=\"logo\" />\r\n <span>{shortName}</span>\r\n\r\n <StyledDownArrow />\r\n </StyledHeaderLogo>\r\n <div>{showMenu && <ProfileMenu closeProfileDropdown={setShowMenu} />}</div>\r\n </StyledHeaderLink>\r\n\r\n <StyledMenu mode=\"inline\" selectedKeys={[location.pathname]} items={items as any} />\r\n </StyledSidebar>\r\n );\r\n};\r\n\r\nexport default Sidebar;\r\n","import styled from 'styled-components';\r\n\r\nexport const StyledLayout = styled.div`\r\n min-height: 100vh;\r\n min-height: 100dvh;\r\n background: var(--color-bg-primary, #fff);\r\n display: flex;\r\n\r\n .sidebar-wrapper {\r\n min-width: 15rem;\r\n flex: 0 0 250px;\r\n max-width: 250px;\r\n min-width: 250px;\r\n width: 250px;\r\n flex-shrink: 0;\r\n }\r\n @media (max-width: 991px) {\r\n .sidebar-wrapper {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledContentWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n flex: 1;\r\n overflow-y: auto;\r\n max-height: 100vh;\r\n`;\r\n\r\nexport const StyledContent = styled.div`\r\n background: var(--color-bg-primary, #fff);\r\n`;\r\n","import { ReactNode } from 'react';\r\nimport Sidebar from './sidebar';\r\nimport { StyledContent, StyledContentWrapper, StyledLayout } from './style';\r\n\r\ninterface AdminPageProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst AdminPage = ({ children }: AdminPageProps) => {\r\n return (\r\n <StyledLayout>\r\n <Sidebar />\r\n\r\n <StyledContentWrapper>\r\n <StyledContent>{children}</StyledContent>\r\n </StyledContentWrapper>\r\n </StyledLayout>\r\n );\r\n};\r\n\r\nexport default AdminPage;\r\n","import styled from 'styled-components';\r\n\r\ninterface BannerProps {\r\n backgroundcolor: any;\r\n}\r\n\r\nexport const Wrapper = styled.div`\r\n display: grid;\r\n grid-template-columns: 33.625rem 1fr;\r\n min-height: 100vh;\r\n overflow: hidden;\r\n\r\n .card-logo {\r\n width: var(--size-400, 32px);\r\n height: var(--size-400, 32px);\r\n flex-shrink: 0;\r\n object-fit: contain;\r\n }\r\n\r\n .terms-logo {\r\n width: var(--size-600, 48px);\r\n height: var(--size-600, 48px);\r\n flex-shrink: 0;\r\n object-fit: contain;\r\n }\r\n`;\r\n\r\nexport const LogoShortName = styled.span`\r\n font-size: 15px;\r\n`;\r\n\r\nexport const BackBtn = styled.button`\r\n height: var(--size-400, 2rem);\r\n width: var(--size-400, 2rem);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n border-radius: var(--border-radius-full, 100%);\r\n border: none;\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n cursor: pointer;\r\n path {\r\n fill: var(--color-icon-primary, #131412);\r\n }\r\n`;\r\n\r\nexport const PageContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0 1.5rem;\r\n background: var(--color-bg-primary, #141414);\r\n header {\r\n padding: 1.25rem 0;\r\n height: 4.5rem;\r\n }\r\n @media (max-width: 1024px) {\r\n width: 100vw;\r\n height: 100%;\r\n header {\r\n height: 0;\r\n }\r\n }\r\n\r\n footer {\r\n margin-top: auto;\r\n padding: 1.5rem 0;\r\n height: 5rem;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n path[fill='#131412'] {\r\n fill: var(--color-text-primary);\r\n }\r\n nav {\r\n display: flex;\r\n gap: 1rem;\r\n a {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 }\r\n }\r\n\r\n @media (max-width: 768px) {\r\n margin-bottom: 2rem;\r\n }\r\n }\r\n`;\r\n\r\nexport const PageContent = styled.div``;\r\n\r\nexport const PageTitleContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.25rem;\r\n padding: 3rem 0 2rem;\r\n span {\r\n color: var(--color-text-primary, #fff);\r\n font-size: var(--typo-heading-size-medium, 1.875rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-heading-lineHeight-medium, 1.875rem);\r\n letter-spacing: var(--typo-heading-spacing-medium, -0.0375rem);\r\n }\r\n p {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n font-size: var(--typo-body-size-medium, 1.125rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-medium, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-medium, 0.00938rem);\r\n padding-right: 6rem;\r\n }\r\n\r\n @media (max-width: 768px) {\r\n padding: 1.7rem 0 1rem;\r\n }\r\n`;\r\n\r\nexport const SideBannerWrapper = styled.div<BannerProps>`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background-color: ${(props: any) => props.backgroundcolor};\r\n img,\r\n video {\r\n width: 50%;\r\n height: 50%;\r\n object-fit: contain;\r\n }\r\n\r\n @media (max-width: 1024px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const PageDesc = styled.p`\r\n /* body/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-medium, 18px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\r\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\r\n`;\r\n\r\nexport const PageTitle = styled.span`\r\n /* heading/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-heading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-heading-lineHeight-medium, 28px); /* 116.667% */\r\n letter-spacing: var(--typo-heading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const AuthBoxComponentWrapper = styled.div`\r\n display: none;\r\n margin-bottom: 3px;\r\n\r\n @media (max-width: 768px) {\r\n display: block;\r\n }\r\n`;\r\n\r\nexport const StyledFooter = styled.footer`\r\n display: flex;\r\n gap: 10px;\r\n\r\n @media (max-width: 480px) {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: start !important;\r\n }\r\n`;\r\n\r\nexport const StyledAuthSpan = styled.span``;\r\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';\r\nimport ArrowLeft from '../assets/icons/arrow-left.svg?react';\r\n\r\nexport const ArrowLeftIcon = styled(ArrowLeft)`\r\n cursor: pointer;\r\n\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-inverse-primary, #fff) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const BoxComponentWrapper = styled.div`\r\n width: 100%;\r\n height: 128px;\r\n max-height: max-content;\r\n border-radius: 2px;\r\n`;\r\n\r\nexport const BoxComponentBody = styled.div`\r\n display: flex;\r\n height: 100%;\r\n padding: 20px;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n background-color: var(--color-bg-secondary, #232323) !important;\r\n cursor: pointer;\r\n &.isActive {\r\n background-color: var(--color-bg-secondary, #232323);\r\n opacity: 1;\r\n transition: 0.3s all;\r\n }\r\n &.isNotActive {\r\n background-color: var(--color-bg-secondary, #232323);\r\n opacity: 0.2;\r\n transition: 0.3s all;\r\n }\r\n &.isActiveLightColor {\r\n /* var(--color-bg-secondary, #232323); */\r\n border-left: 4px solid ${props => props.color};\r\n }\r\n`;\r\n\r\nexport const BoxComponentBottomText = styled.span`\r\n color: var(--color-text-primary, #fff);\r\n\r\n /* subheading/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const BoxComponentTopText = styled.span`\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n\r\n /* caption/medium-r */\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\r\nexport const BoxComponentWithdrawalInfo = styled.span`\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\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\r\nexport const CommissionStatusText = styled.span`\r\n color: ${props => props.color};\r\n font-size: 12px;\r\n`;\r\n","import { tGeneral } from '../../utils/exportTranslation';\r\nimport {\r\n BoxComponentBody,\r\n BoxComponentBottomText,\r\n BoxComponentTopText,\r\n BoxComponentWrapper,\r\n CommissionStatusText,\r\n} from './style';\r\n\r\nconst BoxComponent = ({\r\n boxBottomText,\r\n boxTopText,\r\n onClick,\r\n className,\r\n color,\r\n commissionStatus,\r\n}: any) => {\r\n return (\r\n <>\r\n <BoxComponentWrapper>\r\n <BoxComponentBody color={color} onClick={onClick} className={className}>\r\n <BoxComponentTopText>{boxTopText}</BoxComponentTopText>\r\n <BoxComponentBottomText>{boxBottomText}</BoxComponentBottomText>\r\n {commissionStatus && boxTopText === tGeneral('Commission') && (\r\n <CommissionStatusText color={color}>\r\n {commissionStatus}\r\n </CommissionStatusText>\r\n )}\r\n </BoxComponentBody>\r\n </BoxComponentWrapper>\r\n </>\r\n );\r\n};\r\n\r\nexport default BoxComponent;\r\n","import { ReactNode } from 'react';\r\nimport {\r\n AuthBoxComponentWrapper,\r\n BackBtn,\r\n LogoShortName,\r\n PageContainer,\r\n PageContent,\r\n PageDesc,\r\n PageTitle,\r\n PageTitleContainer,\r\n SideBannerWrapper,\r\n StyledAuthSpan,\r\n StyledFooter,\r\n Wrapper,\r\n} from './style';\r\nimport { useNavigate, useSearchParams } from 'react-router';\r\nimport { ArrowLeftIcon } from '../../styled-components/arrowLeft';\r\nimport { tAuthentication } from '../../utils/exportTranslation';\r\nimport BoxComponent from '../../components/box-component';\r\ninterface AuthorizationLayoutProps {\r\n pageTitle: string;\r\n pageDesc: string;\r\n children: ReactNode;\r\n logoPrimaryUrl: string;\r\n shortName: string;\r\n colorPrimary: string;\r\n}\r\n\r\nconst AuthorizationLayout = ({\r\n pageTitle,\r\n pageDesc,\r\n logoPrimaryUrl,\r\n shortName,\r\n colorPrimary,\r\n children,\r\n}: AuthorizationLayoutProps) => {\r\n const [searchParams] = useSearchParams();\r\n const backPath = searchParams.get('backPath');\r\n const navigate = useNavigate();\r\n function handleBackBtnClick(path: string) {\r\n navigate(path);\r\n }\r\n\r\n return (\r\n <Wrapper>\r\n <PageContainer>\r\n <header>\r\n {backPath && (\r\n <BackBtn onClick={() => handleBackBtnClick(backPath)}>\r\n <ArrowLeftIcon />\r\n </BackBtn>\r\n )}\r\n </header>\r\n <PageContent>\r\n <PageTitleContainer>\r\n <PageTitle>{pageTitle}</PageTitle>\r\n <PageDesc>{pageDesc}</PageDesc>\r\n </PageTitleContainer>\r\n </PageContent>\r\n <AuthBoxComponentWrapper>\r\n <BoxComponent\r\n boxTopText={<img className=\"card-logo\" src={logoPrimaryUrl} alt=\"logo\" />}\r\n boxBottomText={<LogoShortName>{shortName}</LogoShortName>}\r\n />\r\n </AuthBoxComponentWrapper>\r\n {children}\r\n <StyledFooter>\r\n <img\r\n className=\"terms-logo\"\r\n width={60}\r\n height={20}\r\n src={logoPrimaryUrl}\r\n alt=\"logo\"\r\n />\r\n <nav>\r\n <a href=\"\">\r\n <StyledAuthSpan>{tAuthentication('TermsOfUsage')}</StyledAuthSpan>\r\n </a>\r\n <a href=\"\">\r\n <StyledAuthSpan>{tAuthentication('PrivacyPolicy')}</StyledAuthSpan>\r\n </a>\r\n </nav>\r\n </StyledFooter>\r\n </PageContainer>\r\n\r\n <SideBannerWrapper backgroundcolor={colorPrimary}>\r\n <img src={logoPrimaryUrl} alt=\"logo\" />\r\n </SideBannerWrapper>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default AuthorizationLayout;\r\n","export enum TableViewOptions {\r\n TABLE,\r\n LIST,\r\n BOARD,\r\n}\r\n\r\nexport enum SortDirections {\r\n ASC,\r\n DESC,\r\n}\r\n\r\nexport enum FilterSelectTypes {\r\n NONE,\r\n COLUMN,\r\n TYPE,\r\n VALUE,\r\n}\r\n\r\nexport interface SortItem {\r\n title: string;\r\n direction: SortDirections;\r\n}\r\n\r\nexport interface FilterItem extends Column {\r\n selectType: FilterSelectTypes;\r\n filterValue?: number;\r\n filterLabel?: string;\r\n}\r\n\r\nexport enum ColumnFilterType {\r\n 'INPUT',\r\n 'SELECT',\r\n 'TwoComponentSelect',\r\n 'DATEPICKER',\r\n 'MULTISELECT',\r\n}\r\n\r\nexport interface ColumnFilterOption {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface SelectFilterOption {\r\n value: number;\r\n label: string;\r\n}\r\nexport interface Column {\r\n title: string;\r\n dataIndex: string;\r\n width?: number;\r\n filterDropdown?: boolean;\r\n filters?: {\r\n type: ColumnFilterType;\r\n options: ColumnFilterOption[];\r\n };\r\n render?: (value: any, value2: any) => any;\r\n}\r\n\r\nexport interface GridViewPageProps {\r\n columns: Column[];\r\n getData: any;\r\n update?: boolean;\r\n hasDeleteBtn?: boolean;\r\n contentAfterPageHeader?: any;\r\n GridPageTopLeftComponent?: React.FC;\r\n hasEditBtn?: boolean;\r\n hasCreateBtn?: boolean;\r\n onRowClick?: any;\r\n checkedValue?: any;\r\n rowKey?: any;\r\n pagination?: any;\r\n CustomFilters?: any;\r\n initialFilterValues?: any;\r\n tableAdditionalFields?: (\r\n openModal: boolean,\r\n setOpenModal: (open: boolean) => void\r\n ) => React.ReactNode;\r\n setDisplayAddRuleModal: any;\r\n createIsModal: any;\r\n editButton: any;\r\n noPagination: boolean;\r\n noPageHeader?: boolean;\r\n noDataProps?: { title: any; description?: any; button?: any };\r\n exportButton?: any;\r\n hasSelect?: boolean;\r\n selectProps?: any;\r\n // New props for custom table component\r\n TableComponent?: React.ComponentType<any>;\r\n tableProps?: Record<string, unknown>;\r\n noNeedSidebarResponsiveButton?: boolean;\r\n loadedData: any;\r\n}\r\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';\r\nimport { SortDirections, TableViewOptions } from '../types';\r\n\r\nexport interface GridViewState {\r\n filters: any;\r\n setFilters: (filters: any) => void;\r\n\r\n isHydrated: boolean;\r\n columns: any[];\r\n setColumns: (items: any[]) => void;\r\n\r\n sortItems: any[];\r\n setSortItems: (items: any[]) => void;\r\n hydrateFromStorage: (storageKey: string, defaultView?: number) => void;\r\n\r\n filterItems: any[];\r\n setFilterItems: (items: any[], updateFilters?: boolean) => void;\r\n\r\n hideItems: Record<string, boolean>;\r\n setHideItems: (items: Record<string, boolean>) => void;\r\n\r\n groupByArr: any[];\r\n setGroupByArr: (arr: string[]) => void;\r\n\r\n activeTableView: number;\r\n setActiveTableView: (view: number) => void;\r\n\r\n selectedConfig: { id: number; name: string } | null;\r\n setSelectedConfig: (config: { id: number; name: string } | null) => void;\r\n\r\n hasCreateBtn: boolean;\r\n setHasCreateBtn: (view: boolean) => void;\r\n\r\n checkedValue: any;\r\n setCheckedValue: (view: any) => void;\r\n\r\n hasSelect: any;\r\n setHasSelect: (view: any) => void;\r\n\r\n configsVersion: number;\r\n bumpConfigsVersion: () => void;\r\n\r\n resetStore: () => void;\r\n}\r\nconst defaultFilters = {\r\n Page: 1,\r\n PageSize: 25,\r\n};\r\n\r\nconst initialState = {\r\n filters: defaultFilters,\r\n filterItems: [],\r\n sortItems: [],\r\n hideItems: {},\r\n groupByArr: [],\r\n activeTableView: TableViewOptions.TABLE,\r\n};\r\n\r\nexport const createGridViewStore = () =>\r\n createStore<GridViewState>((set, get) => ({\r\n columns: [],\r\n ...initialState,\r\n isHydrated: false,\r\n hasDeleteBtn: false,\r\n\r\n selectedConfig: null,\r\n setSelectedConfig: config => set({ selectedConfig: config }),\r\n\r\n configsVersion: 0,\r\n bumpConfigsVersion: () => set(state => ({ configsVersion: state.configsVersion + 1 })),\r\n\r\n hydrateFromStorage: (storageKey, defaultView = TableViewOptions.TABLE) => {\r\n if (get().isHydrated) return;\r\n\r\n const saved = sessionStorage.getItem(storageKey);\r\n\r\n if (saved) {\r\n try {\r\n const parsed = JSON.parse(saved);\r\n\r\n set({\r\n filters: parsed.filters ?? defaultFilters,\r\n filterItems: parsed.filterItems ?? [],\r\n sortItems: parsed.sortItems ?? [],\r\n activeTableView: parsed.activeTableView ?? defaultView,\r\n hideItems: parsed.hideItems ?? {},\r\n groupByArr: parsed.groupByArr ?? [],\r\n selectedConfig: parsed.selectedConfig ?? null,\r\n isHydrated: true,\r\n });\r\n return;\r\n } catch {\r\n console.warn('Failed to hydrate grid view state');\r\n }\r\n }\r\n\r\n set({ activeTableView: defaultView, isHydrated: true });\r\n },\r\n\r\n hasCreateBtn: false,\r\n setHasCreateBtn: (newValue?: boolean) => set({ hasCreateBtn: !!newValue }),\r\n\r\n checkedValue: true,\r\n setCheckedValue: (newValue?: any) => set({ checkedValue: newValue }),\r\n hasSelect: false,\r\n setHasSelect: (newValue?: boolean) => set({ hasSelect: !!newValue }),\r\n\r\n setFilters: filters => {\r\n if (!get().isHydrated) return;\r\n set({ filters });\r\n },\r\n setSortItems: items => {\r\n if (!get().isHydrated) return;\r\n\r\n set({ sortItems: items });\r\n\r\n set(state => {\r\n const { Sort, Asc, ...rest } = state.filters;\r\n const sortFilters =\r\n items.length > 0\r\n ? {\r\n Sort: items[0].param,\r\n Asc: items[0].direction === SortDirections.ASC,\r\n }\r\n : {};\r\n\r\n return {\r\n filters: {\r\n ...rest,\r\n ...sortFilters,\r\n },\r\n };\r\n });\r\n },\r\n setFilterItems: (items, updateFilters = false) => {\r\n if (!get().isHydrated) return;\r\n\r\n set({ filterItems: items });\r\n if (!updateFilters) return;\r\n\r\n const { filters, sortItems } = get();\r\n const { PageSize, Sort, Asc, QuickSearch } = filters;\r\n\r\n const newFilters: any = {};\r\n items.forEach(item => {\r\n newFilters[item.dataIndex] = item.filterValue;\r\n if (item.isCountryGroup !== undefined) {\r\n newFilters.isCountryGroup = item.isCountryGroup;\r\n }\r\n });\r\n\r\n set({\r\n filters: {\r\n Page: 1,\r\n PageSize,\r\n QuickSearch: QuickSearch || '',\r\n ...(sortItems.length > 0 ? { Sort, Asc } : {}),\r\n ...newFilters,\r\n },\r\n });\r\n },\r\n setHideItems: items => set({ hideItems: items }),\r\n setGroupByArr: arr => set({ groupByArr: arr }),\r\n setActiveTableView: view => set({ activeTableView: view }),\r\n setColumns: items => set({ columns: items }),\r\n\r\n resetStore: () => {\r\n set({\r\n ...initialState,\r\n isHydrated: true,\r\n selectedConfig: null,\r\n });\r\n },\r\n }));\r\n","import React, { createContext, useContext, useRef } from 'react';\r\nimport { StoreApi, useStore } from 'zustand';\r\nimport { createGridViewStore, type GridViewState } from './store/createGridViewStore';\r\n\r\nconst GridViewStoreContext = createContext<StoreApi<GridViewState> | null>(null);\r\n\r\nexport const GridViewStoreProvider = ({ children }: { children: React.ReactNode }) => {\r\n const storeRef = useRef<StoreApi<GridViewState>>();\r\n if (!storeRef.current) {\r\n storeRef.current = createGridViewStore();\r\n }\r\n\r\n return (\r\n <GridViewStoreContext.Provider value={storeRef.current}>\r\n {children}\r\n </GridViewStoreContext.Provider>\r\n );\r\n};\r\n\r\nexport const useGridViewStore = <T,>(selector: (state: GridViewState) => T): T => {\r\n const store = useContext(GridViewStoreContext);\r\n if (!store) throw new Error('GridViewStoreProvider is missing');\r\n return useStore(store, selector);\r\n};\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router';\r\nimport { useGridViewStore } from '../GridViewStoreProvider';\r\n\r\nconst useGridViewSessionStorage = () => {\r\n const hydrateFromStorage = useGridViewStore(s => s.hydrateFromStorage);\r\n const isHydrated = useGridViewStore(s => s.isHydrated);\r\n const filters = useGridViewStore(s => s.filters);\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const sortItems = useGridViewStore(s => s.sortItems);\r\n const hideItems = useGridViewStore(s => s.hideItems);\r\n const groupByArr = useGridViewStore(s => s.groupByArr);\r\n const activeTableView = useGridViewStore(s => s.activeTableView);\r\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\r\n\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n hydrateFromStorage(`grid-filters:${location.pathname}`);\r\n\r\n return sessionStorage.clear();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isHydrated) return;\r\n\r\n sessionStorage.setItem(\r\n `grid-filters:${location.pathname}`,\r\n JSON.stringify({\r\n filters,\r\n filterItems,\r\n sortItems,\r\n activeTableView,\r\n hideItems,\r\n groupByArr,\r\n selectedConfig,\r\n })\r\n );\r\n }, [\r\n filters,\r\n filterItems,\r\n sortItems,\r\n activeTableView,\r\n hideItems,\r\n groupByArr,\r\n selectedConfig,\r\n isHydrated,\r\n ]);\r\n};\r\n\r\nexport default useGridViewSessionStorage;\r\n","import { useEffect, useState } from 'react';\r\n\r\nexport function useElementHeight(ref: React.RefObject<HTMLElement>) {\r\n const [height, setHeight] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!ref.current) return;\r\n\r\n const observer = new ResizeObserver(([entry]) => {\r\n setHeight(entry.contentRect.height);\r\n });\r\n\r\n observer.observe(ref.current);\r\n setHeight(ref.current.clientHeight);\r\n return () => observer.disconnect();\r\n }, [ref]);\r\n\r\n return height;\r\n}\r\n","import { DatePicker, Table } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\ninterface GridViewPageTableWrapperProps {\r\n height?: any;\r\n}\r\n\r\nconst { RangePicker } = DatePicker;\r\n\r\nexport const PageWrapper = styled.div`\r\n background: var(--color-bg-primary, #fff);\r\n`;\r\n\r\nexport const PageHeaderWrapper = styled.div`\r\n height: var(--size-800, 4rem);\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding-right: 1.5rem;\r\n\r\n button {\r\n padding: 0.44rem 0.75rem;\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 border: none;\r\n outline: none;\r\n cursor: pointer;\r\n transition: 0.1s;\r\n border-radius: var(--border-radius-050, 0.25rem);\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n }\r\n\r\n &.create-btn {\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 backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\r\n color: var(--color-text-brand-special, #06c193) !important;\r\n }\r\n }\r\n\r\n .icon {\r\n width: 2rem;\r\n height: 2rem;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n path {\r\n fill: var(--color-text-primary, #131412);\r\n }\r\n\r\n &.sidebar {\r\n display: none;\r\n }\r\n }\r\n\r\n .page-starter {\r\n display: flex;\r\n gap: 0.12rem;\r\n\r\n button {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n\r\n .icon {\r\n border-radius: 50%;\r\n }\r\n }\r\n\r\n .page-actions {\r\n display: flex;\r\n gap: 0.12rem;\r\n\r\n button {\r\n color: var(--color-text-primary, #131412);\r\n\r\n &:hover {\r\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\r\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\r\n }\r\n }\r\n\r\n input {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-secondary, #232323);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n padding-left: 0.5rem;\r\n color: var(--color-text-primary, #131412);\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);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n\r\n &:focus {\r\n border-color: var(--color-border-brand-special, #02e0ae);\r\n outline: none;\r\n }\r\n }\r\n }\r\n\r\n .sidebar-wrapper {\r\n display: none;\r\n }\r\n\r\n @media (max-width: 991px) {\r\n padding: 1rem;\r\n gap: 0.5rem;\r\n .page-starter {\r\n display: none;\r\n }\r\n\r\n .page-actions {\r\n input {\r\n width: 100px;\r\n }\r\n }\r\n\r\n .icon.sidebar {\r\n display: flex;\r\n border-radius: 50%;\r\n padding: 0.5rem;\r\n }\r\n\r\n .sidebar-wrapper {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n max-width: 100%;\r\n height: 100vh;\r\n z-index: 1000;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-y: auto;\r\n }\r\n }\r\n`;\r\n\r\nexport const PageTopContentWrapper = styled.div``;\r\n\r\nexport const StyledTable = styled(Table)`\r\n .ant-table-thead {\r\n tr {\r\n th {\r\n padding: 0 0.75rem;\r\n overflow: hidden;\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n text-overflow: ellipsis;\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);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n height: var(--size-450, 2.25rem);\r\n min-width: var(--size-1000, 5rem);\r\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\r\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\r\n background: var(--color-bg-primary, #141414);\r\n text-transform: capitalize;\r\n &:first-child {\r\n min-width: 1.5rem;\r\n width: 1.5rem;\r\n padding: 0;\r\n border-start-start-radius: 0px !important;\r\n }\r\n &:last-child,\r\n &:first-child {\r\n border-start-start-radius: 0px !important;\r\n }\r\n &:before {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n .ant-table-tbody {\r\n tr {\r\n td {\r\n padding: 0 0.75rem;\r\n overflow: hidden;\r\n color: var(--color-text-primary, #131412);\r\n text-overflow: ellipsis;\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 min-width: 5rem;\r\n height: 3rem;\r\n &:first-child {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const DropdownContent = styled.div`\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n /* background: var(--color-bg-secondary, #f5f5f5);\r\n box-shadow:\r\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\r\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04); */\r\n background: var(--color-bg-quaternary, #fff);\r\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\r\n min-width: 18.5rem;\r\n box-shadow:\r\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\r\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\r\n input {\r\n width: 100%;\r\n padding: 0.75rem;\r\n border: none;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n color: var(--color-text-primary, #131412);\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);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n background-color: transparent;\r\n &::placeholder {\r\n color: var(--color-text-quaternary, rgba(19, 20, 18, 0.25));\r\n }\r\n &:focus {\r\n outline: none;\r\n }\r\n &.filter-item-search {\r\n &:focus,\r\n &:active {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae);\r\n background: var(--color-bg-quaternary, #2f2f2f);\r\n }\r\n }\r\n }\r\n\r\n div {\r\n padding: 0.25rem 0;\r\n border-top: 1px solid var(--color-bg-secondary, #f5f5f5);\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.12rem;\r\n button {\r\n padding: 0.5rem 0.75rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.75rem;\r\n color: var(--color-text-primary, #fff);\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 transition: 0.1s;\r\n span {\r\n margin-left: auto;\r\n }\r\n &:hover {\r\n background-color: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n }\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 480px) {\r\n min-width: auto;\r\n &.filter-item-content {\r\n width: calc(100vw - 32px);\r\n }\r\n }\r\n`;\r\n\r\nexport const PageFilterWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0.12rem;\r\n padding: 0.5rem 1.5rem;\r\n border-top: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n\r\n @media (max-width: 480px) {\r\n .debug-dropdwon {\r\n inset-inline-start: 16px !important;\r\n }\r\n }\r\n`;\r\n\r\nexport const FilterItemWrapper = styled.div`\r\n display: flex;\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 border: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n border-radius: var(--border-radius-full, 62.4375rem);\r\n padding: 0 0.25rem;\r\n align-items: center;\r\n &.sort {\r\n margin-right: 1rem;\r\n }\r\n &.add-filter {\r\n margin-right: 1rem;\r\n span {\r\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\r\n svg {\r\n path {\r\n fill: var(--color-icon-tertiary);\r\n }\r\n }\r\n }\r\n }\r\n span {\r\n padding: 0.5rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n cursor: pointer;\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\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 svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-secondary);\r\n }\r\n }\r\n &:not(:first-child) {\r\n border-left: 1px solid var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n }\r\n }\r\n`;\r\n\r\nexport const ResetConditionsWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n flex: 1;\r\n flex-shrink: 0;\r\n button {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-style: normal;\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 padding: 0.5rem;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n flex-shrink: 0;\r\n path {\r\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledRangePicker = styled(RangePicker)`\r\n height: 0;\r\n padding: 0 !important;\r\n overflow: hidden;\r\n border: none !important;\r\n`;\r\n\r\nexport const OptionName = styled.span`\r\n color: var(--color-text-primary, #fff);\r\n\r\n /* caption/medium-r */\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\r\nexport const OptionWrapper = styled.div`\r\n display: flex;\r\n min-height: var(--size-400, 32px);\r\n padding: var(--spacing-050, 4px) var(--spacing-150, 12px) !important;\r\n gap: var(--spacing-150, 12px);\r\n align-self: stretch;\r\n`;\r\n\r\nexport const TwoComponentSelectTitle = styled.div`\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\r\n\r\n background: var(--color-bg-secondary, #232323);\r\n display: flex;\r\n padding-left: 30px !important;\r\n gap: 8px;\r\n`;\r\n\r\nexport const TwoComponentSelectContent = styled.div`\r\n max-height: 300px;\r\n overflow: hidden;\r\n`;\r\n\r\nexport const GridViewPageTableWrapper = styled.div<GridViewPageTableWrapperProps>`\r\n height: ${(props: any) => props.height || '100%'};\r\n`;\r\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';\r\nimport { debounce } from 'lodash';\r\n\r\nconst useDebounce = (fn: any, delay: number, deps: any[] = []) => {\r\n const debouncedFn = useMemo(() => debounce(fn, delay), deps);\r\n\r\n useEffect(() => {\r\n return () => {\r\n debouncedFn.cancel();\r\n };\r\n }, [debouncedFn]);\r\n\r\n return debouncedFn;\r\n};\r\n\r\nexport default useDebounce;\r\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';\r\nimport { useState } from 'react';\r\n\r\nconst DropdownWrapper = ({ children, overlay, placement = 'bottomRight' }: any) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <Dropdown\r\n open={open}\r\n onOpenChange={setOpen}\r\n placement={placement}\r\n popupRender={() => (typeof overlay == 'function' ? overlay(setOpen) : overlay)}\r\n trigger={['click']}\r\n >\r\n <button className=\"icon\">{children}</button>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default DropdownWrapper;\r\n","import { useState } from 'react';\r\nimport { DropdownContent } from '../style';\r\nimport { Column, SortDirections } from '../types';\r\nimport ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\r\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\r\nimport Checkmark from '../../../assets/icons/checkmark.svg?react';\r\nimport SortLogo from '../../../assets/icons/sort.svg?react';\r\nimport DropdownWrapper from './DropdownWrapper';\r\nimport { useGridViewStore } from '../GridViewStoreProvider';\r\n\r\nconst SortDropdown = ({ placement, children }: any) => {\r\n const columns = useGridViewStore(s => s.columns);\r\n const sortItems = useGridViewStore(s => s.sortItems);\r\n const setSortItems = useGridViewStore(s => s.setSortItems);\r\n\r\n const selectedSortItem = sortItems[0];\r\n\r\n const [searchValue, setSearchValue] = useState('');\r\n const [sortDirection, setSortDirection] = useState(\r\n selectedSortItem?.direction === SortDirections.ASC\r\n ? SortDirections.ASC\r\n : SortDirections.DESC\r\n );\r\n\r\n const filteredColumns = columns.filter(\r\n (col: any) =>\r\n col.title.toLowerCase().includes(searchValue.toLowerCase()) && col.sortable !== false\r\n );\r\n\r\n function onSelect(col: Column, direction: SortDirections) {\r\n setSortItems([\r\n {\r\n title: col.title,\r\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\r\n direction: direction,\r\n },\r\n ]);\r\n }\r\n\r\n function onRemove() {\r\n setSortItems([]);\r\n }\r\n\r\n return (\r\n <DropdownWrapper\r\n overlay={(_setOpen: any) => (\r\n <DropdownContent>\r\n <input\r\n type=\"text\"\r\n placeholder={'Search' + '...'}\r\n value={searchValue}\r\n onChange={e => setSearchValue(e.target.value)}\r\n />\r\n <div>\r\n {filteredColumns.map((col: any, i: any) => (\r\n <button\r\n key={i}\r\n onClick={() => {\r\n if (col.title == selectedSortItem?.title) {\r\n onRemove();\r\n } else {\r\n onSelect(col, sortDirection);\r\n }\r\n }}\r\n >\r\n {col.title}\r\n {col.title == selectedSortItem?.title && (\r\n <span>\r\n <Checkmark />\r\n </span>\r\n )}\r\n </button>\r\n ))}\r\n </div>\r\n <div>\r\n <button\r\n onClick={() => {\r\n setSortDirection(SortDirections.ASC);\r\n selectedSortItem && onSelect(selectedSortItem, SortDirections.ASC);\r\n }}\r\n >\r\n <ArrodwUpLogo />\r\n {'Ascending'}\r\n {sortDirection === SortDirections.ASC && <Checkmark />}\r\n </button>\r\n <button\r\n onClick={() => {\r\n setSortDirection(SortDirections.DESC);\r\n selectedSortItem && onSelect(selectedSortItem, SortDirections.DESC);\r\n }}\r\n >\r\n <ArrodwDownLogo />\r\n {'Descending'}\r\n\r\n {sortDirection === SortDirections.DESC && <Checkmark />}\r\n </button>\r\n </div>\r\n </DropdownContent>\r\n )}\r\n placement={placement || 'bottomRight'}\r\n >\r\n {children || <SortLogo />}\r\n </DropdownWrapper>\r\n );\r\n};\r\n\r\nexport default SortDropdown;\r\n","import { useState } from 'react';\r\nimport { Dropdown } from 'antd';\r\nimport { Column, FilterSelectTypes } from '../types';\r\nimport { DropdownContent } from '../style';\r\nimport { useGridViewStore } from '../GridViewStoreProvider';\r\nimport { tActions } from '../../../utils/exportTranslation';\r\n\r\nconst FilterDropdown = ({ placement, children, onSelect, CustomFilters }: any) => {\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const [searchValue, setSearchValue] = useState('');\r\n\r\n const columns = useGridViewStore(s => s.columns);\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\r\n\r\n function onClickHandle(column: Column) {\r\n if (onSelect) {\r\n onSelect(column);\r\n } else {\r\n setFilterItems([\r\n ...filterItems,\r\n {\r\n ...column,\r\n selectType: FilterSelectTypes.VALUE,\r\n },\r\n ]);\r\n }\r\n setDropdownOpen(false);\r\n }\r\n\r\n return (\r\n <Dropdown\r\n open={dropdownOpen}\r\n onOpenChange={setDropdownOpen}\r\n placement={placement || 'bottomRight'}\r\n popupRender={() => (\r\n <DropdownContent>\r\n <input\r\n type=\"text\"\r\n placeholder={tActions('Search') + '...'}\r\n value={searchValue}\r\n onChange={e => setSearchValue(e.target.value)}\r\n />\r\n <div>\r\n {columns\r\n .filter(col => col.filterable !== false)\r\n .filter(c => !filterItems.some(f => f.title == c.title))\r\n .filter(col => col.filterable !== false)\r\n .filter(col => col.title.toLowerCase().includes(searchValue))\r\n .map((col, i: number) => (\r\n <button key={i} onClick={() => onClickHandle(col)}>\r\n {col.title}\r\n </button>\r\n ))}\r\n </div>\r\n {CustomFilters && (\r\n <CustomFilters\r\n setFilterItems={setFilterItems}\r\n filterItems={filterItems}\r\n columns={columns}\r\n setDropdownOpen={setDropdownOpen}\r\n />\r\n )}\r\n </DropdownContent>\r\n )}\r\n trigger={['click']}\r\n >\r\n <button className=\"icon\">{children}</button>\r\n </Dropdown>\r\n );\r\n};\r\n\r\nexport default FilterDropdown;\r\n","import { create } from 'zustand';\r\nimport React from 'react';\r\n\r\nexport interface FooterOptions {\r\n okText?: React.ReactNode;\r\n cancelText?: React.ReactNode;\r\n}\r\n\r\ninterface ModalOptions {\r\n title?: string;\r\n component?: React.FC<any>; // component to render\r\n componentProps?: Record<string, any>; // fresh props passed in\r\n onOk?: () => void;\r\n onCancel?: () => void;\r\n popupOptions?: Record<string, any> | null;\r\n footerOptions?: FooterOptions;\r\n hideFooter?: boolean;\r\n showCloseButton?: boolean;\r\n}\r\n\r\ninterface ModalState {\r\n options: ModalOptions | null;\r\n isOpen: boolean;\r\n\r\n store: (options: ModalOptions) => void;\r\n openModal: (options: ModalOptions) => void;\r\n open: () => void;\r\n close: () => void;\r\n\r\n setOnCancel: (fn: () => void) => void;\r\n setHideFooter: (hide: boolean) => void;\r\n setOnOk: (fn: () => void) => void;\r\n setComponentProps: (props: Record<string, any>) => void;\r\n setPopupOptions: (opts: Record<string, any>) => void;\r\n setFooterOptions: (opts: FooterOptions | null) => void;\r\n setTitle: (title: string) => void;\r\n}\r\n\r\nconst defaultPopupOptions = {\r\n open: true,\r\n closeIcon: false,\r\n footer: null,\r\n maskClosable: true,\r\n};\r\n\r\nconst defaultFooterOptions: FooterOptions = {\r\n okText: 'Create',\r\n cancelText: 'Cancel',\r\n};\r\n\r\nconst useModalStore = create<ModalState>((set, get) => {\r\n const buildOptions = (options: ModalOptions): ModalOptions => ({\r\n ...options,\r\n popupOptions: { ...defaultPopupOptions, ...options.popupOptions },\r\n footerOptions: { ...defaultFooterOptions, ...options.footerOptions },\r\n hideFooter: options.hideFooter ?? false,\r\n onCancel: options.onCancel ?? (() => get().close()),\r\n });\r\n\r\n return {\r\n options: null,\r\n isOpen: false,\r\n\r\n store: options => set({ options: buildOptions(options) }),\r\n\r\n openModal: options => set({ isOpen: true, options: buildOptions(options) }),\r\n\r\n open: () =>\r\n set(state => {\r\n if (!state.options) return state;\r\n return { ...state, isOpen: true };\r\n }),\r\n\r\n close: () => set({ isOpen: false }),\r\n\r\n setOnOk: fn =>\r\n set(state => (state.options ? { options: { ...state.options, onOk: fn } } : state)),\r\n\r\n setOnCancel: fn =>\r\n set(state => (state.options ? { options: { ...state.options, onCancel: fn } } : state)),\r\n\r\n setComponentProps: props =>\r\n set(state =>\r\n state.options\r\n ? {\r\n options: {\r\n ...state.options,\r\n componentProps: { ...state.options.componentProps, ...props },\r\n },\r\n }\r\n : state\r\n ),\r\n\r\n setPopupOptions: opts =>\r\n set(state =>\r\n state.options\r\n ? {\r\n options: {\r\n ...state.options,\r\n popupOptions: { ...state.options.popupOptions, ...opts },\r\n },\r\n }\r\n : state\r\n ),\r\n\r\n setFooterOptions: opts =>\r\n set(state =>\r\n state.options\r\n ? {\r\n options: {\r\n ...state.options,\r\n footerOptions:\r\n opts == null\r\n ? undefined\r\n : { ...state.options.footerOptions, ...opts },\r\n },\r\n }\r\n : state\r\n ),\r\n\r\n setHideFooter: hide =>\r\n set(state =>\r\n state.options\r\n ? {\r\n options: {\r\n ...state.options,\r\n hideFooter: hide,\r\n footerOptions: hide ? undefined : state.options.footerOptions,\r\n },\r\n }\r\n : state\r\n ),\r\n\r\n setTitle: title =>\r\n set(state => (state.options ? { options: { ...state.options, title } } : state)),\r\n };\r\n});\r\n\r\nexport default useModalStore;\r\n","import { Select } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledSelect = styled(Select)`\r\n width: 200px;\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\n","export enum FilterDataSourceType {\r\n ActivityReport = 1,\r\n CommissionReport = 2,\r\n DepositReport = 3,\r\n MediaReport = 4,\r\n PaymentReport = 5,\r\n RegistrationReport = 6,\r\n Manager = 7,\r\n EndUser = 8,\r\n MarketingTool = 9,\r\n SubAffiliate = 10,\r\n CountryGroup = 11,\r\n Role = 12,\r\n Tag = 13,\r\n AffiliateUser = 14,\r\n EmailTemplate = 15,\r\n}\r\n\r\nexport const ROUTE_FILTER_TYPE_MAP: Record<string, FilterDataSourceType> = {\r\n '/reports/activity-report': FilterDataSourceType.ActivityReport,\r\n '/reports/commission-report': FilterDataSourceType.CommissionReport,\r\n '/reports/deposit-report': FilterDataSourceType.DepositReport,\r\n '/reports/media-report': FilterDataSourceType.MediaReport,\r\n '/reports/payments-report': FilterDataSourceType.PaymentReport,\r\n '/reports/registation-report': FilterDataSourceType.RegistrationReport,\r\n '/affiliate-manager': FilterDataSourceType.Manager,\r\n '/end-user': FilterDataSourceType.EndUser,\r\n '/marketing-tools': FilterDataSourceType.MarketingTool,\r\n '/sub-affiliates': FilterDataSourceType.SubAffiliate,\r\n '/affiliate-users': FilterDataSourceType.AffiliateUser,\r\n '/country-group': FilterDataSourceType.CountryGroup,\r\n '/email-constructor': FilterDataSourceType.EmailTemplate,\r\n '/roles': FilterDataSourceType.Role,\r\n '/tags': FilterDataSourceType.Tag,\r\n};\r\n","import { useLocation } from 'react-router';\r\nimport {\r\n FilterDataSourceType,\r\n ROUTE_FILTER_TYPE_MAP,\r\n} from '../components/filter-configuration/constants';\r\n\r\nexport const useFilterDataSourceType = (): FilterDataSourceType | undefined => {\r\n const { pathname } = useLocation();\r\n const match = Object.keys(ROUTE_FILTER_TYPE_MAP).find(\r\n route => pathname === route || pathname.startsWith(route + '/')\r\n );\r\n return match ? ROUTE_FILTER_TYPE_MAP[match] : undefined;\r\n};\r\n","export function handleDictionarySelectFilter(input: string, option: any) {\r\n return option.label.toLowerCase().includes(input.toLowerCase()) || option.value == input;\r\n}\r\n","import React from 'react';\r\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\r\nimport SettingsLogo from '../../../../assets/icons/settings.svg?react';\r\nimport SidebarIcon from '../../../../assets/icons/color.svg?react';\r\n\r\nimport { useNavigate } from 'react-router';\r\nimport { useEffect, useState } from 'react';\r\nimport { useGridViewStore } from '../../../../modules/GridViewPage/GridViewStoreProvider';\r\nimport { PageHeaderWrapper } from '../../../../modules/GridViewPage/style';\r\nimport useDebounce from '../../../../hooks/useDebounce';\r\nimport Sidebar from '../../../../layouts/base-admin-layout/sidebar';\r\nimport SortDropdown from '../SortDropdown';\r\nimport FilterDropdown from '../FilterDropdown';\r\nimport useModalStore from '../../../../stores/useModalStore';\r\nimport { StyledSelect } from './style';\r\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\r\nimport { useFilterDataSourceType } from '../../../../hooks/useFilterDataSourceType';\r\nimport { usePackageServices } from '../../../../utils/PackageServicesProvider';\r\nimport type { FiltersType } from '../../../../utils/PackageServicesProvider';\r\nimport { handleDictionarySelectFilter } from '../../../../utils/antdFunction';\r\n\r\ninterface SelectOption {\r\n value: string | number;\r\n label: string;\r\n}\r\n\r\ninterface SelectProps {\r\n options: SelectOption[];\r\n onChange: (value: string | number | null) => void;\r\n placeholder: any;\r\n}\r\n\r\ninterface PageHeaderProps {\r\n setisSettingPopupVisible: (visible: boolean) => void;\r\n CustomFilters?: any;\r\n tableAdditionalFields?: (\r\n openModal: boolean,\r\n setOpenModal: (open: boolean) => void\r\n ) => React.ReactNode;\r\n createIsModal?: any;\r\n exportButton?: any;\r\n hasSelect?: boolean;\r\n selectProps?: SelectProps;\r\n GridPageTopLeftComponent?: React.FC;\r\n noNeedSidebarResponsiveButton?: boolean;\r\n}\r\n\r\nconst PageHeader = ({\r\n setisSettingPopupVisible,\r\n CustomFilters,\r\n tableAdditionalFields,\r\n createIsModal,\r\n exportButton,\r\n hasSelect,\r\n selectProps,\r\n GridPageTopLeftComponent,\r\n noNeedSidebarResponsiveButton,\r\n}: PageHeaderProps) => {\r\n const navigate = useNavigate();\r\n const filters = useGridViewStore(s => s.filters);\r\n const hasCreateBtn = useGridViewStore(s => s.hasCreateBtn);\r\n\r\n const setFilters = useGridViewStore(s => s.setFilters);\r\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\r\n const setSortItems = useGridViewStore(s => s.setSortItems);\r\n const [isQuicksearchVisible, setisQuicksearchVisible] = useState(() => {\r\n try {\r\n const stored = sessionStorage.getItem(`grid-filters:${window.location.pathname}`);\r\n if (stored) {\r\n return !!JSON.parse(stored)?.filters?.QuickSearch;\r\n } else {\r\n return false;\r\n }\r\n } catch {\r\n return false;\r\n }\r\n });\r\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\r\n const { open } = useModalStore();\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n const { getMyFilters } = usePackageServices();\r\n const filterType = useFilterDataSourceType();\r\n const [savedConfigs, setSavedConfigs] = useState<FiltersType[]>([]);\r\n\r\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\r\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\r\n const configsVersion = useGridViewStore(s => s.configsVersion);\r\n\r\n useEffect(() => {\r\n if (filterType == null || !getMyFilters) return;\r\n getMyFilters(String(filterType)).then(res => setSavedConfigs(res.data ?? []));\r\n }, [filterType, configsVersion, getMyFilters]);\r\n\r\n function applyConfiguration(id: number) {\r\n const config = savedConfigs.find(c => c.id === id);\r\n if (!config) return;\r\n const { filterItems, sortItems } = JSON.parse(config.value);\r\n setFilterItems(filterItems, true);\r\n setSortItems(sortItems);\r\n setSelectedConfig({ id: config.id!, name: config.name });\r\n }\r\n\r\n const onQuickSearchChange = useDebounce((e: any) => {\r\n setFilters({\r\n ...filters,\r\n QuickSearch: e.target.value,\r\n });\r\n }, 500);\r\n\r\n function onSettingClick() {\r\n setisSettingPopupVisible(true);\r\n }\r\n\r\n function handleCreateClick() {\r\n if (createIsModal) {\r\n open();\r\n } else {\r\n navigate('new');\r\n }\r\n }\r\n\r\n return (\r\n <PageHeaderWrapper>\r\n {!noNeedSidebarResponsiveButton && (\r\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\r\n <SidebarIcon />\r\n </button>\r\n )}\r\n\r\n {GridPageTopLeftComponent && <GridPageTopLeftComponent />}\r\n\r\n <div className=\"page-actions\">\r\n {savedConfigs.length > 0 && (\r\n <StyledSelect\r\n showSearch\r\n placeholder={tGeneral('SavedConfiguration')}\r\n options={savedConfigs.map(c => ({ value: c.id, label: c.name }))}\r\n value={selectedConfig?.id ?? null}\r\n filterOption={handleDictionarySelectFilter}\r\n onChange={(id: any) =>\r\n id != null ? applyConfiguration(id) : setSelectedConfig(null)\r\n }\r\n />\r\n )}\r\n\r\n {hasSelect && selectProps && (\r\n <div>\r\n <StyledSelect\r\n options={selectProps.options}\r\n placeholder={selectProps.placeholder}\r\n onChange={(option: any) => {\r\n selectProps.onChange(option ?? null);\r\n }}\r\n />\r\n </div>\r\n )}\r\n\r\n {tableAdditionalFields && tableAdditionalFields(openModal, setOpenModal)}\r\n\r\n {isQuicksearchVisible ? (\r\n <input\r\n type=\"text\"\r\n placeholder={tActions('QuickSearch')}\r\n defaultValue={filters?.QuickSearch ?? ''}\r\n onChange={onQuickSearchChange}\r\n />\r\n ) : (\r\n <button onClick={() => setisQuicksearchVisible(true)}>\r\n {tActions('Search')}\r\n </button>\r\n )}\r\n\r\n <SortDropdown />\r\n\r\n <FilterDropdown CustomFilters={CustomFilters}>\r\n <FilterLogo />\r\n </FilterDropdown>\r\n\r\n <button className=\"icon\" onClick={onSettingClick}>\r\n <SettingsLogo />\r\n </button>\r\n\r\n {exportButton && exportButton}\r\n\r\n {hasCreateBtn && (\r\n <button onClick={handleCreateClick} className=\"create-btn\">\r\n {tActions('Create')}\r\n </button>\r\n )}\r\n </div>\r\n\r\n {isSidebarVisible && <Sidebar />}\r\n </PageHeaderWrapper>\r\n );\r\n};\r\n\r\nexport default PageHeader;\r\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 {\r\n static equals(value1?: Date | null, value2?: Date | null) {\r\n const val1 = value1 === undefined || value1 === null ? null : value1;\r\n const val2 = value2 === undefined || value2 === null ? null : value2;\r\n\r\n if (val1 === val2) {\r\n return true;\r\n }\r\n\r\n if (!val1 || !val2) {\r\n return false;\r\n }\r\n\r\n return val1.getTime() === val2.getTime();\r\n }\r\n\r\n static toMMddyyyy(value: Date | string) {\r\n const date = this.parseDate(value);\r\n if (!date) return null;\r\n\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n const mm = month < 10 ? `0${month}` : `${month}`;\r\n const dd = day < 10 ? `0${day}` : `${day}`;\r\n\r\n return `${mm}/${dd}/${year}`;\r\n }\r\n\r\n static toLocal(date: Date | string, start = false, end = false): Date | null {\r\n const d = this.parseDate(date);\r\n if (!d) return null;\r\n\r\n if (start) d.setHours(0, 0, 0, 0);\r\n if (end) d.setHours(23, 59, 59, 999);\r\n\r\n return this.utcToLocal(d);\r\n }\r\n\r\n static getDates(start: Date, end: Date) {\r\n const dates = new Array<Date>();\r\n let date = new Date(start.valueOf());\r\n while (date <= end) {\r\n dates.push(new Date(date));\r\n date = this.addDays(date, 1);\r\n }\r\n return dates;\r\n }\r\n\r\n static dateOnly(value: Date) {\r\n const year = value.getFullYear();\r\n const month = value.getMonth() + 1; // month is 0 based.\r\n const day = value.getDate();\r\n // const date = new Date(Date.UTC(year, month, day));\r\n\r\n // return date;\r\n\r\n return `${year}/${month}/${day}`;\r\n }\r\n\r\n static dateWithDashes(value: Date) {\r\n const year = value.getFullYear();\r\n const month = value.getMonth() + 1; // month is 0 based.\r\n const day = value.getDate();\r\n // const date = new Date(Date.UTC(year, month, day));\r\n\r\n // return date;\r\n\r\n return `${year}-${month}-${day}`;\r\n }\r\n static today() {\r\n return this.dateOnly(new Date());\r\n }\r\n\r\n static toISODateString(value: Date | string) {\r\n const date = this.parseDate(value);\r\n\r\n if (!date) return null;\r\n\r\n const year = date.getFullYear();\r\n // Add +1 to month since 0 is January\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n\r\n const str = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;\r\n return str;\r\n }\r\n\r\n static toISODateStringWithTime(value: Date | string) {\r\n const date = this.parseDate(value);\r\n\r\n if (!date) return null;\r\n\r\n const year = date.getFullYear();\r\n // Add +1 to month since 0 is January\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n\r\n const strTime = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\r\n const str =\r\n `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day} ` + strTime;\r\n return str;\r\n }\r\n\r\n static monthDayYear(value: Date | string) {\r\n const date = this.parseDate(value);\r\n if (!date) return null;\r\n\r\n const months = [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ];\r\n\r\n const month = months[date.getMonth()];\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n return `${month} ${day}, ${year}`;\r\n }\r\n\r\n static withdrawalTableDateFormat(value: Date) {\r\n const date = this.parseDate(value);\r\n if (!date || isNaN(date.getTime())) return null;\r\n\r\n const year = value.getFullYear();\r\n const month = value.getMonth() + 1;\r\n const day = value.getDate();\r\n\r\n const datePart = `${year}/${month}/${day}`;\r\n\r\n const timePart = date.toLocaleTimeString('en-US', {\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: false,\r\n });\r\n\r\n return `${datePart}, ${timePart}`;\r\n }\r\n\r\n static getCommonDateRange = (key: string): any => {\r\n let endDate: null | Date = new Date();\r\n let startDate: null | Date = new Date();\r\n\r\n switch (key) {\r\n case 'week': // 7 days\r\n startDate.setDate(endDate.getDate() - 7);\r\n break;\r\n case 'month': // 30 days\r\n startDate.setDate(endDate.getDate() - 30);\r\n break;\r\n case 'threeMonth': // 3 months\r\n startDate.setMonth(endDate.getMonth() - 3);\r\n startDate.setDate(1);\r\n break;\r\n case 'sixMonth': // 6 months\r\n startDate.setMonth(endDate.getMonth() - 6);\r\n startDate.setDate(1);\r\n break;\r\n case 'twelveMonth': // 12 months\r\n startDate.setMonth(endDate.getMonth() - 12);\r\n startDate.setDate(1);\r\n break;\r\n case 'year': // Year to date (from January 1st of current year)\r\n startDate.setMonth(0);\r\n startDate.setDate(1);\r\n break;\r\n case 'all': // send null\r\n endDate = null;\r\n startDate = null;\r\n break;\r\n case 'custom':\r\n break;\r\n default:\r\n startDate.setDate(endDate.getDate() - 7);\r\n }\r\n\r\n return {\r\n startDate: startDate ? this.toISODateString(startDate as Date) : null,\r\n endDate: endDate ? this.toISODateString(endDate as Date) : null,\r\n };\r\n };\r\n\r\n static getDateOnlyMonthAndNumber(value: Date | string) {\r\n if (!value) return '';\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) return '';\r\n\r\n const day = date.getDate();\r\n const monthIndex = date.getMonth();\r\n\r\n const month = monthIndex;\r\n\r\n const formattedDate = `${day} ${month}`;\r\n\r\n return formattedDate;\r\n }\r\n\r\n static fromDateOrStringToTable(value: Date | string) {\r\n const date = this.parseDate(value);\r\n if (!date || isNaN(date.getTime())) return null;\r\n\r\n const datePart = date.toLocaleString('en-US', {\r\n month: 'long',\r\n day: 'numeric',\r\n year: 'numeric',\r\n });\r\n\r\n const timePart = date.toLocaleTimeString('en-US', {\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: false,\r\n });\r\n\r\n return `${datePart}, ${timePart}`;\r\n }\r\n\r\n static toISOTimeString(value: Date | string) {\r\n const date = DateHelper.parseDate(value);\r\n\r\n if (!date) return null;\r\n\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n const second = date.getSeconds();\r\n\r\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}:${second < 10 ? '0' : ''}${second}`;\r\n return str;\r\n }\r\n\r\n static toTimeInput(value: Date | string) {\r\n const date = DateHelper.parseDate(value);\r\n\r\n if (!date) return null;\r\n\r\n const hour = date.getHours();\r\n const minute = date.getMinutes();\r\n\r\n const str = `${hour < 10 ? '0' : ''}${hour}:${minute < 10 ? '0' : ''}${minute}`;\r\n return str;\r\n }\r\n\r\n //** Offes seconds ( offsetmin * 60sec * 1000ms) */\r\n private static readonly _utcDiff = -new Date().getTimezoneOffset() * 60000;\r\n static utcToLocal(utc: Date) {\r\n const dateObject = utc instanceof Date ? utc : new Date(utc);\r\n return new Date(dateObject.getTime() + this._utcDiff);\r\n }\r\n static localToUtc(utc: Date): Date {\r\n const dateObject = utc instanceof Date ? utc : new Date(utc);\r\n return new Date(dateObject.getTime() + this._utcDiff);\r\n }\r\n\r\n static addYears(v: Date, years: number): Date {\r\n if (!years) return v;\r\n\r\n const date = v;\r\n date.setFullYear(v.getFullYear() + years);\r\n return date;\r\n }\r\n static addMonths(v: Date, months: number) {\r\n if (!months) return v;\r\n\r\n const date = v;\r\n date.setMonth(date.getMonth() + months);\r\n return date;\r\n }\r\n static addDays(v: Date, days: number) {\r\n if (!days) return v;\r\n\r\n const date = v;\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n }\r\n static addHours(v: Date, hours: number) {\r\n if (!hours) return v;\r\n\r\n const date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setHours(date.getHours() + hours);\r\n return date;\r\n }\r\n static addMinutes(v: Date, minutes: number) {\r\n if (!minutes) return v;\r\n\r\n const date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setMinutes(date.getMinutes() + minutes);\r\n return date;\r\n }\r\n static addSeconds(v: Date, seconds: number) {\r\n if (!seconds) return v;\r\n\r\n const date = v;\r\n date.setSeconds(date.getSeconds() + seconds);\r\n\r\n return date;\r\n }\r\n static isToday(date: Date) {\r\n const today = new Date();\r\n return this.isSameDate(date, today);\r\n }\r\n static clone(date: Date) {\r\n return new Date(+date);\r\n }\r\n static isAnotherMonth(a: Date, b: Date) {\r\n return b && a.getMonth() !== b.getMonth();\r\n }\r\n static isWeekend(v: Date): boolean {\r\n return v.getDay() === 0 || v.getDay() === 6;\r\n }\r\n static isSameDate(a: Date, b: Date) {\r\n return (\r\n b &&\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n }\r\n\r\n static getAge(value?: Date | string | null, now?: Date | null) {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const date = this.toDate(value);\r\n\r\n const nowTime = now ? now.getTime() : Date.now();\r\n const timeDiff = nowTime - date.getTime();\r\n\r\n return Math.floor(timeDiff / 86400000 / 365.25); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n }\r\n static subtractMonths(endDate: Date, starDate: Date) {\r\n const start = starDate <= endDate ? starDate : endDate;\r\n const end = starDate <= endDate ? endDate : starDate;\r\n const plus = starDate <= endDate ? 1 : -1;\r\n\r\n let months = (end.getFullYear() - start.getFullYear()) * 12;\r\n months -= start.getMonth();\r\n months += end.getMonth();\r\n return months * plus;\r\n }\r\n\r\n static subtractDays(value: Date, date: Date) {\r\n if (!date) return null;\r\n\r\n date = this.toDate(date);\r\n const timeDiff = date.getTime() - value.getTime();\r\n return Math.floor(timeDiff / 86400000); //86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n }\r\n static subtractHours(value: Date, date?: Date | null) {\r\n if (!date) return null;\r\n\r\n date = this.toDate(date);\r\n const timeDiff = date.getTime() - value.getTime();\r\n return Math.floor((timeDiff % 86400000) / 3600000);\r\n }\r\n static subtractMinutes(value: Date, date?: Date | null) {\r\n if (!date) return null;\r\n\r\n date = this.toDate(date);\r\n const timeDiff = date.getTime() - value.getTime();\r\n //\r\n return Math.floor(((timeDiff % 86400000) % 3600000) / 60000);\r\n }\r\n\r\n static ISO8601_DATE_REGEX =\r\n /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\r\n // 1 2 3 4 5 6 7 8 9 10 11\r\n\r\n static parseDate(value: any): Date | null {\r\n if (typeof value === 'undefined' || value == null || value === '') return null;\r\n return this.toDate(value);\r\n }\r\n\r\n // export function toDate(value: string|number|Date): Date this function is imported from date pipe\r\n // packages/common/src/i18n/format_date.ts\r\n\r\n /***\r\n * Converts a value to date.\r\n *\r\n * Supported input formats:\r\n * - `Date`\r\n * - number: timestamp\r\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\r\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\r\n * Note: ISO strings without time return a date without timeoffset.\r\n *\r\n * Throws if unable to convert to a date.\r\n */\r\n static toDate(value: string | number | Date): Date {\r\n if (this.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (typeof value === 'number' && !isNaN(value)) {\r\n return new Date(value);\r\n }\r\n\r\n if (typeof value === 'string') {\r\n value = value.trim();\r\n\r\n const parsedNb = parseFloat(value);\r\n\r\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\r\n if (!isNaN((value as any) - parsedNb)) {\r\n return new Date(parsedNb);\r\n }\r\n\r\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\r\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\r\n before Date creation to avoid time offset and errors in the new Date.\r\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\r\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\r\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\r\n is applied.\r\n Note: ISO months are 0 for January, 1 for February, ... */\r\n const [y, m, d] = value.split('-').map((val: string) => +val);\r\n return new Date(y, m - 1, d);\r\n }\r\n\r\n let match: RegExpMatchArray | null;\r\n if ((match = value.match(this.ISO8601_DATE_REGEX))) {\r\n return this.isoStringToDate(match);\r\n }\r\n }\r\n\r\n const date = new Date(value as any);\r\n if (!this.isDate(date)) {\r\n throw new Error(`Unable to convert \"${value}\" into a date`);\r\n }\r\n return date;\r\n }\r\n\r\n static isoStringToDate(match: RegExpMatchArray): Date {\r\n const date = new Date(0);\r\n let tzHour = 0;\r\n let tzMin = 0;\r\n\r\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\r\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\r\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\r\n\r\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\r\n if (match[9]) {\r\n tzHour = Number(match[9] + match[10]);\r\n tzMin = Number(match[9] + match[11]);\r\n }\r\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\r\n const h = Number(match[4] || 0) - tzHour;\r\n const m = Number(match[5] || 0) - tzMin;\r\n const s = Number(match[6] || 0);\r\n const ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\r\n timeSetter.call(date, h, m, s, ms);\r\n return date;\r\n }\r\n\r\n static isDate(value: any): value is Date {\r\n return value instanceof Date && !isNaN(value.valueOf());\r\n }\r\n}\r\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';\r\nimport CloseMark from '../assets/icons/close-mark.svg?react';\r\n\r\nexport const CloseMarkIcon = styled(CloseMark)`\r\n width: 25px;\r\n height: 25px;\r\n cursor: pointer;\r\n\r\n svg {\r\n height: 24px;\r\n width: 24px;\r\n path {\r\n fill: var(--color-text-primary, #fff);\r\n }\r\n }\r\n`;\r\n","import { Button, Input, Modal } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const Popup = styled(Modal)`\r\n display: flex;\r\n width: 420px;\r\n padding: var(--spacing-025, 2px);\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: var(--spacing-025, 2px);\r\n color: var(--color-text-primary, #131412);\r\n\r\n box-shadow:\r\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\r\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\r\n .ant-modal-content {\r\n padding: 0px;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-quaternary) !important;\r\n color: var(--color-text-primary) !important;\r\n }\r\n .ant-modal-header {\r\n background: var(--color-bg-quaternary) !important;\r\n }\r\n .ant-modal-title {\r\n color: var(--color-text-primary) !important;\r\n }\r\n .ant-modal-close-x {\r\n color: var(--color-icon-primary) !important;\r\n }\r\n\r\n .ant-select {\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\r\n .ant-select-selection-placeholder {\r\n color: var(--color-text-secondary, #fff) !important;\r\n }\r\n\r\n .ant-select-selection-item {\r\n color: var(--color-text-primary) !important;\r\n }\r\n\r\n .ant-select-selection-search-input {\r\n color: var(--color-text-primary) !important;\r\n background: transparent !important;\r\n padding: 0 !important;\r\n }\r\n }\r\n .ant-modal-mask {\r\n background: rgba(0, 0, 0, 0.25) !important;\r\n }\r\n`;\r\n\r\nexport const PopupHeader = styled.div`\r\n color: var(--color-text-primary, #fff);\r\n display: flex;\r\n padding: 24px 24px 0;\r\n // padding-bottom: var(--spacing-400, 32px);\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: var(--spacing-050, 4px);\r\n align-self: stretch;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const CloseButton = styled.button`\r\n color: var(--color-text-primary, #fff);\r\n display: flex;\r\n align-items: center;\r\n text-align: center;\r\n background: none;\r\n border: none;\r\n padding: 0;\r\n cursor: pointer;\r\n\r\n svg {\r\n height: 24px;\r\n width: 24px;\r\n path {\r\n fill: var(--color-text-primary, #fff);\r\n }\r\n }\r\n`;\r\n\r\nexport const ContentContainer = styled.div`\r\n display: flex;\r\n align-items: start;\r\n flex-direction: column;\r\n padding: 24px;\r\n padding-top: 0px;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n padding-bottom: var(--spacing-200, 16px);\r\n`;\r\n\r\nexport const NoDataSpanForSelect = styled.span`\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.5)) !important;\r\n`;\r\n\r\nexport const LabelText = styled.div`\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 margin-bottom: 0.25rem;\r\n max-width: 350px;\r\n`;\r\n\r\nexport const PopupFooterContainer = styled.div`\r\n padding-top: 2px;\r\n display: flex;\r\n width: 100%;\r\n background: var(--color-bg-secondary, #232323);\r\n`;\r\nexport const CancelModalButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-800, 64px);\r\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\r\n align-items: center;\r\n justify-content: flex-start;\r\n gap: var(--spacing-200, 16px);\r\n flex: 1 0 0;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-quaternary, #2f2f2f);\r\n justify-content: flex-start;\r\n width: 100%;\r\n\r\n color: var(--color-text-primary, #fff);\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px);\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n border: none;\r\n width: 100%;\r\n &:hover {\r\n border: none !important;\r\n }\r\n`;\r\n\r\nexport const ModalHostButtonWrapper = styled.div`\r\n width: 50%;\r\n`;\r\n\r\nexport const CreateModalButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-800, 64px);\r\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\r\n align-items: center;\r\n gap: var(--spacing-200, 16px);\r\n flex: 1 0 0;\r\n width: 100%;\r\n justify-content: space-between;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-brand-special, #141414);\r\n color: var(--color-text-inverse-primary, #fff) !important;\r\n\r\n /* body/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 15px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n .arrow-styled {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 100px;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-inverse-primary, #fff) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n @media (max-width: 445px) {\r\n gap: 50px;\r\n }\r\n }\r\n\r\n &:disabled {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\r\n border: none;\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n\r\n .arrow-styled {\r\n svg {\r\n path {\r\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n }\r\n &:hover {\r\n background: var(--color-bg-brand-special, #141414) !important;\r\n color: var(--color-text-inverse-primary, #fff) !important;\r\n }\r\n`;\r\n\r\nexport const RejectButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-800, 64px);\r\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\r\n align-items: center;\r\n gap: var(--spacing-200, 16px);\r\n flex: 1 0 0;\r\n width: 100%;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-status-error, #fd7f60);\r\n color: var(--color-text-inverse-primary, #fff) !important;\r\n\r\n /* body/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n .arrow-styled {\r\n display: flex;\r\n align-items: center;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 100px;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-inverse-primary, #fff) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-opaque-secondary, rgba(255, 255, 255, 0.1));\r\n border: none;\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n\r\n .arrow-styled {\r\n svg {\r\n path {\r\n fill: var(--color-text-quaternary, rgba(255, 255, 255, 0.25)) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n }\r\n &:hover {\r\n color: var(--color-text-inverse-primary, #fff) !important;\r\n background: var(--color-bg-status-error, #fd7f60) !important;\r\n }\r\n`;\r\n\r\nexport const GeneralInput = styled(Input)`\r\n input[type='number'] {\r\n &::-webkit-outer-spin-button,\r\n &::-webkit-inner-spin-button {\r\n display: none;\r\n }\r\n }\r\n\r\n &.ant-input-status-error,\r\n &.ant-input-affix-wrapper-status-error {\r\n border: 1px solid var(--color-border-status-error) !important;\r\n\r\n .ant-input {\r\n background: transparent !important;\r\n }\r\n\r\n .ant-input-prefix {\r\n color: var(--color-text-status-error) !important;\r\n }\r\n .ant-input-suffix {\r\n color: var(--color-text-status-error) !important;\r\n }\r\n }\r\n\r\n &::placeholder,\r\n .ant-input::placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n\r\n &.ant-input-outlined:hover {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n &.ant-input-outlined:focus {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n &.ant-input-affix-wrapper-focused {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n display: flex;\r\n height: 40px;\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n align-items: center;\r\n align-self: stretch;\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, #2f2f2f) !important;\r\n\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 .ant-input-prefix {\r\n color: var(--color-text-primary, #131412);\r\n margin-left: 1px;\r\n gap: 8px;\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`;\r\n","import { notification } from 'antd';\r\n\r\nexport const getBase64 = (file: File): Promise<string> => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result as string);\r\n reader.onerror = error => reject(error);\r\n });\r\n};\r\n\r\nexport function lowercaseFirstLetter(word: string) {\r\n if (!word) return word;\r\n return word.charAt(0).toLowerCase() + word.slice(1);\r\n}\r\n\r\nexport const handleCopy = async (textToCopy: string) => {\r\n try {\r\n await navigator.clipboard.writeText(textToCopy);\r\n notification.success({\r\n className: 'bottom-right-notification',\r\n placement: 'bottomRight',\r\n message: 'Copy To Clipboard',\r\n });\r\n } catch (err) {\r\n notification.error({\r\n className: 'bottom-right-notification',\r\n placement: 'bottomRight',\r\n message: 'Error',\r\n description: 'Failed to copy text.',\r\n });\r\n }\r\n};\r\n","import { lowercaseFirstLetter } from './functions';\r\n\r\nexport function catchErrorMessage(error: any, form: any) {\r\n if (error.status === 400) {\r\n const response = error.response.data;\r\n const errorMessages = [];\r\n\r\n for (const key in response.errors) {\r\n errorMessages.push({\r\n name: lowercaseFirstLetter(key),\r\n errors: response.errors[key],\r\n });\r\n }\r\n\r\n form.setFields(errorMessages);\r\n }\r\n}\r\n","import { Form } from 'antd';\r\nimport { useEffect } from 'react';\r\nimport { GeneralInput, LabelText } from '../modal-host/TablePopup.style';\r\nimport useModalStore from '../../stores/useModalStore';\r\nimport { FilterDataSourceType } from './constants';\r\nimport { tGeneral } from '../../utils/exportTranslation';\r\nimport { catchErrorMessage } from '../../utils/catchErrorFunction';\r\n\r\ninterface FilterConfigurationProps {\r\n type?: FilterDataSourceType;\r\n value?: string;\r\n selectedConfig?: { id: number; name: string } | null;\r\n onSuccess?: (savedName: string) => void;\r\n postMyFilter: any;\r\n putMyFilter: any;\r\n}\r\n\r\nconst FilterConfiguration = ({\r\n type,\r\n value,\r\n selectedConfig,\r\n onSuccess,\r\n postMyFilter,\r\n putMyFilter,\r\n}: FilterConfigurationProps) => {\r\n const [form] = Form.useForm();\r\n const setOnOk = useModalStore(s => s.setOnOk);\r\n const close = useModalStore(s => s.close);\r\n\r\n useEffect(() => {\r\n if (selectedConfig) {\r\n form.setFieldsValue({ name: selectedConfig.name });\r\n }\r\n }, [selectedConfig, form]);\r\n\r\n useEffect(() => {\r\n setOnOk(async () => {\r\n try {\r\n const values = await form.validateFields();\r\n if (selectedConfig) {\r\n await putMyFilter({\r\n id: selectedConfig.id,\r\n type: type!,\r\n name: values.name,\r\n value: value ?? '',\r\n });\r\n } else {\r\n await postMyFilter({ type: type!, name: values.name, value: value ?? '' });\r\n }\r\n onSuccess?.(values.name);\r\n close();\r\n } catch (error: any) {\r\n const errors: any = catchErrorMessage(error, form);\r\n form.setFields(errors);\r\n }\r\n });\r\n }, [type, value, selectedConfig, onSuccess, form, setOnOk, close]);\r\n\r\n return (\r\n <Form form={form}>\r\n <LabelText>{tGeneral('ConfigurationName')}</LabelText>\r\n <Form.Item name=\"name\">\r\n <GeneralInput />\r\n </Form.Item>\r\n </Form>\r\n );\r\n};\r\n\r\nexport default FilterConfiguration;\r\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';\r\nimport ArrowRight from '../assets/icons/arrow-right.svg?react';\r\n\r\nexport const ArrowRightIcon = styled(ArrowRight)`\r\n cursor: pointer;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-inverse-primary, #fff) !important;\r\n transition: 0.1s;\r\n }\r\n }\r\n`;\r\n","import { ContentContainer } from '../../../../components/modal-host/TablePopup.style';\r\nimport { tGeneral } from '../../../../utils/exportTranslation';\r\n\r\nconst DeleteRecordPopup = () => {\r\n return (\r\n <ContentContainer>\r\n <div>\r\n <p>{tGeneral('DeleteRecordQuestion')}</p>\r\n </div>\r\n </ContentContainer>\r\n );\r\n};\r\n\r\nexport default DeleteRecordPopup;\r\n","import { Checkbox } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledCheckbox = styled(Checkbox)`\r\n .ant-checkbox-inner {\r\n background-color: transparent;\r\n border: 1px solid #ccc;\r\n }\r\n span {\r\n color: var(--color-text-tertiary, #fff);\r\n }\r\n\r\n .ant-checkbox-checked .ant-checkbox-inner {\r\n background-color: white !important;\r\n border-color: black !important;\r\n }\r\n\r\n .ant-checkbox:hover .ant-checkbox-inner {\r\n border-color: var(--color-border-tertiary, black);\r\n }\r\n\r\n .ant-checkbox-checked:hover .ant-checkbox-inner {\r\n background-color: white !important;\r\n }\r\n\r\n .ant-checkbox-checked .ant-checkbox-inner::after {\r\n border-color: black;\r\n }\r\n`;\r\n","import ArrodwUpLogo from '../../../assets/icons/arrow-up.svg?react';\r\nimport ArrodwDownLogo from '../../../assets/icons/arrow-down.svg?react';\r\nimport SettingsLogo from '../../../assets/icons/settings.svg?react';\r\nimport PlusLogo from '../../../assets/icons/plus.svg?react';\r\nimport RefrechSvg from '../../../assets/icons/arrow-refresh.svg?react';\r\nimport { Dropdown } from 'antd';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { useGridViewStore } from '../GridViewStoreProvider';\r\nimport {\r\n Column,\r\n ColumnFilterOption,\r\n ColumnFilterType,\r\n FilterSelectTypes,\r\n SortDirections,\r\n} from '../types';\r\nimport {\r\n DropdownContent,\r\n FilterItemWrapper,\r\n OptionName,\r\n OptionWrapper,\r\n PageFilterWrapper,\r\n ResetConditionsWrapper,\r\n StyledRangePicker,\r\n TwoComponentSelectContent,\r\n TwoComponentSelectTitle,\r\n} from '../style';\r\nimport useDebounce from '../../../hooks/useDebounce';\r\nimport SortDropdown from './SortDropdown';\r\nimport FilterDropdown from './FilterDropdown';\r\nimport { DateHelper } from '../../../utils/DateHelper';\r\nimport { CloseMarkIcon } from '../../../styled-components/closeMark';\r\nimport useModalStore from '../../../stores/useModalStore';\r\nimport FilterConfiguration from '../../../components/filter-configuration';\r\nimport { useFilterDataSourceType } from '../../../hooks/useFilterDataSourceType';\r\nimport { CreateModalButton } from '../../../components/modal-host/TablePopup.style';\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport DeleteRecordPopup from './delete-record-popup/DeleteRecordPopup';\r\nimport { StyledCheckbox } from '../../../styled-components/styledCheckbox';\r\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\r\ninterface FilterItemProps {\r\n item: any;\r\n}\r\n\r\nconst FilterItem = ({ item }: FilterItemProps) => {\r\n const inputRef: any = useRef(null);\r\n\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(item.selectType == FilterSelectTypes.VALUE);\r\n\r\n function handleFocus() {\r\n inputRef?.current?.focus();\r\n }\r\n\r\n function onFilterValueDropdownClick(option: ColumnFilterOption) {\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title == item.title\r\n ? { ...e, filterValue: option.id, filterLabel: option.name }\r\n : e\r\n ),\r\n true\r\n );\r\n setDropdownOpen(false);\r\n }\r\n\r\n function twoComponentSelectDropdownClick(option: ColumnFilterOption, isCountryGroup = false) {\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title == item.title\r\n ? {\r\n ...e,\r\n filterValue: option.id,\r\n filterLabel: option.name,\r\n isCountryGroup: isCountryGroup,\r\n }\r\n : e\r\n ),\r\n true\r\n );\r\n setDropdownOpen(false);\r\n }\r\n\r\n const [selectedValues, setSelectedValues] = useState<any[]>(item.filterValue || []);\r\n\r\n const onFilterValueToggle = (optionId: any) => {\r\n const newValues = selectedValues.includes(optionId)\r\n ? selectedValues.filter(id => id !== optionId)\r\n : [...selectedValues, optionId];\r\n\r\n setSelectedValues(newValues);\r\n\r\n const selectedLabels = item?.filters?.options\r\n ?.filter((opt: any) => newValues.includes(opt.id))\r\n .map((opt: any) => opt.name)\r\n .join(', ');\r\n\r\n setFilterItems(\r\n filterItems.map((f: any) =>\r\n f.title === item.title\r\n ? {\r\n ...f,\r\n filterValue: newValues,\r\n filterLabel: selectedLabels || '',\r\n }\r\n : f\r\n ),\r\n true\r\n );\r\n };\r\n\r\n function onSelect(column: Column) {\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title == item.title ? { ...column, selectType: FilterSelectTypes.VALUE } : e\r\n )\r\n );\r\n }\r\n\r\n const onFilterValueChange = useDebounce((e: any) => {\r\n const value = e.target.value;\r\n setFilterItems(\r\n filterItems.map(e => (e.title == item.title ? { ...e, filterValue: value } : e)),\r\n true\r\n );\r\n }, 500);\r\n\r\n function onOpenChange(newValue: boolean) {\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title == item.title ? { ...e, selectType: FilterSelectTypes.NONE } : e\r\n )\r\n );\r\n setDropdownOpen(newValue);\r\n }\r\n\r\n function onRemove() {\r\n setFilterItems(\r\n filterItems.filter(e => e.title != item.title),\r\n true\r\n );\r\n }\r\n\r\n useEffect(() => {\r\n if (dropdownOpen && item?.filters?.type !== ColumnFilterType.SELECT) {\r\n setTimeout(() => {\r\n handleFocus();\r\n }, 0); // wait until DOM is updated\r\n }\r\n }, [dropdownOpen]);\r\n\r\n const dropdownContentComponent: any = {\r\n [ColumnFilterType.INPUT]: (\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n placeholder={'Search' + '...'}\r\n className=\"filter-item-search\"\r\n onChange={onFilterValueChange}\r\n />\r\n ),\r\n [ColumnFilterType.SELECT]: (\r\n <div>\r\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\r\n <button key={option.id} onClick={() => onFilterValueDropdownClick(option)}>\r\n {option.name}\r\n </button>\r\n ))}\r\n </div>\r\n ),\r\n [ColumnFilterType.TwoComponentSelect]: (\r\n <>\r\n <TwoComponentSelectTitle>{item?.filters?.firstGroupName}</TwoComponentSelectTitle>\r\n <TwoComponentSelectContent>\r\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\r\n <button\r\n key={option.id}\r\n onClick={() => twoComponentSelectDropdownClick(option, false)}\r\n >\r\n {option.name}\r\n </button>\r\n ))}\r\n </TwoComponentSelectContent>\r\n {/* {hasPermission(Permission.Customer_CountryGroup_View) && (\r\n <>\r\n <TwoComponentSelectTitle>\r\n {item?.filters?.secondGroupName}\r\n </TwoComponentSelectTitle>\r\n <TwoComponentSelectContent>\r\n {item?.filters?.secondOptions?.map((option: ColumnFilterOption) => (\r\n <button\r\n key={option.id}\r\n onClick={() => twoComponentSelectDropdownClick(option, true)}\r\n >\r\n {option.name}\r\n </button>\r\n ))}\r\n </TwoComponentSelectContent>\r\n </>\r\n )} */}\r\n </>\r\n ),\r\n [ColumnFilterType.MULTISELECT]: (\r\n <div>\r\n {item?.filters?.options?.map((option: ColumnFilterOption) => (\r\n <OptionWrapper key={option.id}>\r\n <StyledCheckbox onChange={() => onFilterValueToggle(option?.id)}>\r\n <OptionName>{option.name}</OptionName>\r\n </StyledCheckbox>\r\n </OptionWrapper>\r\n ))}\r\n </div>\r\n ),\r\n [ColumnFilterType.DATEPICKER]: (\r\n <StyledRangePicker\r\n open={true}\r\n allowClear\r\n format=\"MMM D, YYYY\"\r\n placeholder={['From', 'To']}\r\n onChange={(dates: any) => {\r\n if (!dates) {\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title === item.title\r\n ? {\r\n ...e,\r\n filterValue: null,\r\n filterLabel: '',\r\n }\r\n : e\r\n ),\r\n true\r\n );\r\n } else {\r\n const isoDates = dates.map((d: any, i: any) =>\r\n d\r\n ? DateHelper.toLocal(\r\n d,\r\n i === 0,\r\n i === dates.length - 1\r\n )?.toISOString()\r\n : null\r\n );\r\n\r\n setFilterItems(\r\n filterItems.map(e =>\r\n e.title === item.title\r\n ? {\r\n ...e,\r\n // Store the ISO strings for the API\r\n filterValue: isoDates,\r\n // Keep the user-friendly label\r\n filterLabel: `${dates[0].format('MMM D, YYYY')} → ${dates[1].format('MMM D, YYYY')}`,\r\n }\r\n : e\r\n ),\r\n true\r\n );\r\n }\r\n setDropdownOpen(false);\r\n }}\r\n getPopupContainer={triggerNode =>\r\n triggerNode?.parentElement?.parentElement ?? document.body\r\n }\r\n />\r\n ),\r\n };\r\n\r\n const dropdownContent = (\r\n <DropdownContent\r\n style={{\r\n border: item?.filters?.type === ColumnFilterType.DATEPICKER ? 'none' : 'inherit',\r\n }}\r\n >\r\n {dropdownContentComponent[item?.filters?.type || ColumnFilterType.INPUT]}\r\n </DropdownContent>\r\n );\r\n\r\n return (\r\n <FilterItemWrapper>\r\n <FilterDropdown placement={'bottomLeft'} onSelect={onSelect}>\r\n <span>\r\n <SettingsLogo />\r\n {item.title}\r\n </span>\r\n </FilterDropdown>\r\n <Dropdown\r\n overlayClassName=\"debug-dropdwon\"\r\n placement={'bottomLeft'}\r\n open={dropdownOpen}\r\n onOpenChange={onOpenChange}\r\n popupRender={() => dropdownContent}\r\n trigger={['click']}\r\n getPopupContainer={triggerNode =>\r\n triggerNode?.parentElement?.parentElement ?? document.body\r\n }\r\n >\r\n <div>\r\n {item.filterValue\r\n ? item.filterLabel\r\n ? item.filterLabel\r\n : item.filterValue\r\n : 'NotSelected'}\r\n </div>\r\n </Dropdown>\r\n <span onClick={onRemove}>\r\n <CloseMarkIcon />\r\n </span>\r\n </FilterItemWrapper>\r\n );\r\n};\r\n\r\nconst PageFilter = () => {\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const sortItems = useGridViewStore(s => s.sortItems);\r\n const setSelectedConfig = useGridViewStore(s => s.setSelectedConfig);\r\n const resetStore = useGridViewStore(s => s.resetStore);\r\n const selectedConfig = useGridViewStore(s => s.selectedConfig);\r\n const { deleteMyFilter, saveMyFilter, updateMyFilter } = usePackageServices();\r\n\r\n const bumpConfigsVersion = useGridViewStore(s => s.bumpConfigsVersion);\r\n const { open, store, close } = useModalStore();\r\n const filterType = useFilterDataSourceType();\r\n\r\n async function handleDeleteConfiguration() {\r\n try {\r\n if (!selectedConfig || !deleteMyFilter) return;\r\n\r\n await deleteMyFilter(selectedConfig.id);\r\n setSelectedConfig(null);\r\n bumpConfigsVersion();\r\n } catch (err) {\r\n console.log(err, 'Error happened deleting configuration');\r\n }\r\n }\r\n\r\n function deleteConfiguration() {\r\n store({\r\n component: DeleteRecordPopup,\r\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\r\n footerOptions: {\r\n okText: (\r\n <CreateModalButton\r\n onClick={() => {\r\n handleDeleteConfiguration();\r\n close();\r\n resetStore();\r\n }}\r\n >\r\n <span className=\"arrow-styled\">\r\n {'Delete'}\r\n <ArrowRightIcon />\r\n </span>\r\n </CreateModalButton>\r\n ),\r\n cancelText: 'Cancel',\r\n },\r\n });\r\n open();\r\n }\r\n\r\n function handleSaveConfiguration() {\r\n const value = JSON.stringify({ filterItems, sortItems });\r\n store({\r\n component: FilterConfiguration,\r\n componentProps: {\r\n type: filterType,\r\n value,\r\n selectedConfig,\r\n onSuccess: (savedName: string) => {\r\n if (selectedConfig) {\r\n setSelectedConfig({ ...selectedConfig, name: savedName });\r\n }\r\n bumpConfigsVersion();\r\n },\r\n postMyFilter: ({ type, name, value }: any) => saveMyFilter?.(type, name, value),\r\n putMyFilter: ({ id, type, name, value }: any) =>\r\n updateMyFilter?.(id, type, name, value),\r\n },\r\n title: selectedConfig ? 'UpdateConfiguration' : 'NameYourConfiguration',\r\n footerOptions: {\r\n okText: (\r\n <CreateModalButton onClick={handleSaveConfiguration}>\r\n <span className=\"arrow-styled\">\r\n {'Save'}\r\n <ArrowRightIcon />\r\n </span>\r\n </CreateModalButton>\r\n ),\r\n cancelText: 'Cancel',\r\n },\r\n });\r\n open();\r\n }\r\n\r\n return (\r\n <PageFilterWrapper>\r\n {sortItems.length > 0 && (\r\n <SortDropdown placement={'bottomLeft'}>\r\n <FilterItemWrapper className=\"sort\">\r\n <span>\r\n {sortItems[0].title}\r\n {sortItems[0].direction == SortDirections.ASC ? (\r\n <ArrodwUpLogo />\r\n ) : (\r\n <ArrodwDownLogo />\r\n )}\r\n </span>\r\n </FilterItemWrapper>\r\n </SortDropdown>\r\n )}\r\n {filterItems.map(item => (\r\n <FilterItem key={item.title} item={item} />\r\n ))}\r\n <FilterDropdown placement={'bottomLeft'}>\r\n <FilterItemWrapper className=\"add-filter\">\r\n <span>\r\n <PlusLogo />\r\n {'AddFilter'}\r\n </span>\r\n </FilterItemWrapper>\r\n </FilterDropdown>\r\n\r\n <ResetConditionsWrapper>\r\n <button onClick={handleSaveConfiguration}>\r\n {selectedConfig ? 'UpdateConfiguration' : 'SaveConfiguration'}\r\n </button>\r\n {selectedConfig && (\r\n <button onClick={deleteConfiguration}>{'DeleteConfiguration'}</button>\r\n )}\r\n <button onClick={resetStore}>\r\n <RefrechSvg />\r\n {'ResetConditions'}\r\n </button>\r\n </ResetConditionsWrapper>\r\n </PageFilterWrapper>\r\n );\r\n};\r\n\r\nexport default PageFilter;\r\n","import styled from 'styled-components';\r\n\r\nexport const TableWrapper = styled.div`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-x: auto;\r\n overflow-y: auto;\r\n width: 100%;\r\n\r\n table {\r\n border-collapse: collapse;\r\n width: 100%;\r\n thead {\r\n tr {\r\n position: sticky;\r\n top: 0;\r\n z-index: 2;\r\n th {\r\n padding: 0.25rem 0.25rem;\r\n position: relative;\r\n overflow: hidden;\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n text-overflow: ellipsis;\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);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n height: var(--size-450, 2.25rem);\r\n background: var(--color-bg-primary, #141414);\r\n text-transform: capitalize;\r\n text-align: left;\r\n transition: 0.1s;\r\n span {\r\n display: flex;\r\n padding: 0.5rem 0.75rem;\r\n min-width: var(--size-1000, 5rem);\r\n }\r\n &:first-child {\r\n min-width: 1.5rem;\r\n width: 1.5rem;\r\n padding: 0;\r\n border-start-start-radius: 0px !important;\r\n span {\r\n display: none;\r\n }\r\n\r\n @media (max-width: 991px) {\r\n min-width: 1rem;\r\n width: 1rem;\r\n }\r\n }\r\n\r\n\r\n &:nth-child(2) {\r\n width: 10px;\r\n }\r\n &:after {\r\n display: none !important;\r\n }\r\n\r\n &:last-child,\r\n &:first-child {\r\n border-start-start-radius: 0px !important;\r\n }\r\n &:before,\r\n &:after {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n top: 0px;\r\n height: 1px;\r\n width: 100%;\r\n background-color: var(--color-border-primary, rgba(255, 255, 255, 0.1));\r\n }\r\n &:before {\r\n top: unset;\r\n bottom: 0px;\r\n }\r\n &.active,\r\n &:active,\r\n &:hover {\r\n span {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n tbody {\r\n tr {\r\n transition: 0.1s;\r\n position: relative;\r\n\r\n td {\r\n padding: 0 0.75rem;\r\n overflow: hidden;\r\n color: var(--color-text-primary, #131412);\r\n text-overflow: ellipsis;\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 height: 3rem;\r\n &:first-child {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .row-actions {\r\n opacity: 0;\r\n transition: opacity 0.2s ease-in-out;\r\n }\r\n\r\n /* &:hover {\r\n background: var(--color-bg-tertiary, #e7e7e7);\r\n } */\r\n &.main-group-header {\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n span {\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\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 margin-left: 0.5rem;\r\n }\r\n }\r\n\r\n &.sub-group-header {\r\n div {\r\n display: flex;\r\n align-items: center;\r\n }\r\n span {\r\n color: var(--color-text-quaternary, rgba(255, 255, 255, 0.25));\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 margin-left: 0.5rem;\r\n }\r\n\r\n .line {\r\n height: 0.0625rem;\r\n background: var(--color-border-secondary, rgba(255, 255, 255, 0.2));\r\n flex: 1;\r\n margin: 0 1rem;\r\n }\r\n }\r\n\r\n .action-buttons-wrapper {\r\n position: sticky;\r\n right: 1rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-primary, #141414);\r\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\r\n opacity: 0;\r\n padding: 0;\r\n div {\r\n display: flex;\r\n gap: 0.5rem;\r\n padding: 0.5rem 0.75rem;\r\n path {\r\n fill: var(--color-icon-primary, #fff);\r\n }\r\n }\r\n }\r\n\r\n &:hover {\r\n .action-buttons-wrapper {\r\n opacity: 1;\r\n }\r\n }\r\n &.checked {\r\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\r\n }\r\n }\r\n tr:hover .row-actions {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n .ant-skeleton-paragraph {\r\n li {\r\n background: var(--color-interaction-press-primary) !important;\r\n }\r\n }\r\n`;\r\n\r\nexport const DrodownContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--color-bg-quaternary, #fff);\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n box-shadow:\r\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\r\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\r\n button {\r\n min-width: 8.5rem;\r\n padding: 0.5rem 0.75rem;\r\n display: flex;\r\n gap: 0.75rem;\r\n align-items: center;\r\n color: var(--color-text-primary, #131412);\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 background-color: transparent;\r\n transition: 0.1s;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-primary, rgba(255, 255, 255, 0.75));\r\n }\r\n }\r\n &:hover {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n }\r\n }\r\n`;\r\n\r\nexport const PaginationWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\r\n padding: 0 1.5rem;\r\n margin-top: auto;\r\n position: sticky;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n background: var(--color-bg-primary, #141414);\r\n .ant-pagination-next,\r\n .ant-pagination-prev,\r\n .ant-pagination-jump-next {\r\n min-width: 1.5rem;\r\n height: 1.5rem;\r\n line-height: 1.5rem;\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 &.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 a {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\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 }\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-pagination-disabled {\r\n opacity: 40%;\r\n }\r\n\r\n .ant-select {\r\n height: 1.5rem;\r\n .ant-select-selector {\r\n border: none;\r\n background-color: transparent;\r\n }\r\n\r\n .ant-select-selection-item {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-style: normal;\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\n\r\n .page-size-select-header {\r\n padding: 0.5rem 0;\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-style: normal;\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 display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n cursor: pointer;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-secondary);\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 991px) {\r\n padding: 0 1rem;\r\n }\r\n`;\r\n\r\nexport const PageSizeSelectDropdownContent = styled.div`\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-secondary, #232323);\r\n box-shadow:\r\n 0px 4px 8px 0px rgba(20, 20, 20, 0.02),\r\n 0px 4px 16px 0px rgba(20, 20, 20, 0.04);\r\n display: flex;\r\n flex-direction: column;\r\n button {\r\n padding: 0.5rem 0.75rem;\r\n color: var(--color-text-primary, #fff);\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 min-width: 12rem;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n text-align: left;\r\n path {\r\n fill: var(--color-text-primary, #fff);\r\n }\r\n }\r\n`;\r\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';\r\nimport { useGridViewStore } from '../../GridViewStoreProvider';\r\n\r\nfunction TableRow({ item, columns, rowKey, onRowClick }: any) {\r\n const checkedValue = useGridViewStore(s => s.checkedValue);\r\n\r\n return (\r\n <tr\r\n key={item[rowKey]}\r\n onClick={onRowClick ? () => onRowClick(item) : undefined}\r\n className={`${checkedValue && checkedValue[item[rowKey]] ? 'checked' : ''}`}\r\n >\r\n {columns.map((col: any) => (\r\n <td key={`${item[rowKey]}-${col.dataIndex}`}>\r\n {col?.render ? col.render(item[col.dataIndex], item) : item[col.dataIndex]}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n}\r\n\r\nexport function TableBodyRows({ rows, columns, rowKey, onRowClick }: any) {\r\n return rows.map((item: any) => (\r\n <TableRow\r\n key={item[rowKey]}\r\n item={item}\r\n columns={columns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n ));\r\n}\r\n\r\nexport function SketelonRows({ rowLength, columnLength }: any) {\r\n return Array(rowLength)\r\n .fill(null)\r\n .map((_, rowIndex) => (\r\n <tr key={`skeleton-row-${rowIndex}`}>\r\n {Array(columnLength)\r\n .fill(null)\r\n .map((_col: any, colIndex: number) => (\r\n <td key={`${rowIndex}-${colIndex}`}>\r\n <Skeleton active title={false} paragraph={{ rows: 1, width: '100%' }} />\r\n </td>\r\n ))}\r\n </tr>\r\n ));\r\n}\r\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';\r\nimport { PageSizeSelectDropdownContent, PaginationWrapper } from './style';\r\nimport ChevronDown from '../../../../assets/icons/chevron-down.svg?react';\r\nimport CheckmarkIcon from '../../../../assets/icons/checkmark.svg?react';\r\nimport { useState } from 'react';\r\nimport { tGeneral } from '../../../../utils/exportTranslation';\r\n\r\nexport function TablePagination({\r\n pagination,\r\n onPerPageSelectChange,\r\n totalItemCount,\r\n onPaginationChange,\r\n}: any) {\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <PaginationWrapper>\r\n <Pagination\r\n current={pagination.current}\r\n pageSize={pagination.pageSize}\r\n total={totalItemCount}\r\n showSizeChanger={false}\r\n onChange={onPaginationChange}\r\n />\r\n\r\n <Dropdown\r\n placement={'bottomRight'}\r\n popupRender={() => (\r\n <PageSizeSelectDropdownContent>\r\n {(\r\n pagination?.items || [\r\n { label: `10 ${tGeneral('Items')}`, value: 10 },\r\n { label: `25 ${tGeneral('Items')}`, value: 25 },\r\n { label: `50 ${tGeneral('Items')}`, value: 50 },\r\n { label: `100 ${tGeneral('Items')}`, value: 100 },\r\n ]\r\n ).map((option: any) => (\r\n <button\r\n key={option.value}\r\n onClick={() => onPerPageSelectChange(option.value)}\r\n >\r\n {option.label}{' '}\r\n {option.value == pagination.pageSize && <CheckmarkIcon />}\r\n </button>\r\n ))}\r\n </PageSizeSelectDropdownContent>\r\n )}\r\n trigger={['click']}\r\n open={open}\r\n onOpenChange={setOpen}\r\n >\r\n <div className=\"page-size-select-header\">\r\n {pagination.pageSize} {tGeneral('ItemsPerPage')} <ChevronDown />\r\n </div>\r\n </Dropdown>\r\n </PaginationWrapper>\r\n );\r\n}\r\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';\r\nimport FilterLogo from '../../../../assets/icons/filter.svg?react';\r\nimport ArrowUp from '../../../../assets/icons/arrow-up.svg?react';\r\nimport ArrowDown from '../../../../assets/icons/arrow-down.svg?react';\r\nimport EyeHide from '../../../../assets/icons/eye-hide.svg?react';\r\nimport { Dropdown } from 'antd';\r\nimport { DrodownContent } from './style';\r\nimport { Column, FilterSelectTypes, SortDirections } from '../../types';\r\nimport { useGridViewStore } from '../../GridViewStoreProvider';\r\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\r\n\r\nexport function TableTh({ col }: any) {\r\n const [open, setOpen] = useState(false);\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const hideItems = useGridViewStore(s => s.hideItems);\r\n const setFilterItems = useGridViewStore(s => s.setFilterItems);\r\n const setSortItems = useGridViewStore(s => s.setSortItems);\r\n const setHideItems = useGridViewStore(s => s.setHideItems);\r\n\r\n function onSortSelectHandle(col: Column, direction: SortDirections) {\r\n setSortItems([\r\n {\r\n title: col.title,\r\n dataIndex: col.dataIndex.charAt(0).toUpperCase() + col.dataIndex.slice(1),\r\n direction: direction,\r\n },\r\n ]);\r\n }\r\n\r\n function onFilterSelectHandle(col: Column) {\r\n const removeCurrentItem = filterItems.filter(f => col.title != f.title);\r\n setFilterItems([\r\n ...removeCurrentItem,\r\n {\r\n ...col,\r\n selectType: FilterSelectTypes.VALUE,\r\n },\r\n ]);\r\n }\r\n\r\n function onHideSelectHandle(col: Column, isHide: boolean) {\r\n setHideItems({\r\n ...hideItems,\r\n [col.dataIndex]: isHide ? true : false,\r\n });\r\n }\r\n\r\n const closeDropdown = () => setOpen(false);\r\n\r\n const dropdownItems = [\r\n { icon: <FilterLogo />, text: tGeneral('Filter'), action: () => onFilterSelectHandle(col) },\r\n {\r\n icon: <ArrowUp />,\r\n text: tActions('Ascending'),\r\n action: () => onSortSelectHandle(col, SortDirections.ASC),\r\n },\r\n {\r\n icon: <ArrowDown />,\r\n text: tActions('Descending'),\r\n action: () => onSortSelectHandle(col, SortDirections.DESC),\r\n },\r\n {\r\n icon: <EyeHide />,\r\n text: tGeneral('HideInView'),\r\n action: () => onHideSelectHandle(col, true),\r\n },\r\n ];\r\n\r\n if (col.filterDropdown === false) {\r\n return <th></th>;\r\n }\r\n\r\n return (\r\n <Dropdown\r\n placement=\"bottomLeft\"\r\n popupRender={() => (\r\n <DrodownContent>\r\n {dropdownItems.map(({ icon, text, action }) => (\r\n <button\r\n key={text}\r\n onClick={() => {\r\n action();\r\n closeDropdown();\r\n }}\r\n >\r\n {icon}\r\n {text}\r\n </button>\r\n ))}\r\n </DrodownContent>\r\n )}\r\n trigger={['click']}\r\n open={open}\r\n onOpenChange={setOpen}\r\n getPopupContainer={triggerNode => triggerNode?.parentElement ?? document.body}\r\n >\r\n <th className={open ? 'active' : ''}>\r\n <span>{col.title}</span>\r\n </th>\r\n </Dropdown>\r\n );\r\n}\r\n","import { Button } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const NoDataWrapper = styled.div`\r\n display: flex;\r\n height: 80vh;\r\n padding: 24px var(--spacing-300, 24px);\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n text-align: center;\r\n gap: var(--spacing-400, 32px);\r\n`;\r\n\r\nexport const TextContainer = styled.div`\r\n display: flex;\r\n width: 864px;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 8px;\r\n`;\r\n\r\nexport const HeaderText = styled.p`\r\n color: var(--color-text-primary, #131412);\r\n text-align: center;\r\n\r\n /* body/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-medium, 18px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-medium, 20px); /* 111.111% */\r\n letter-spacing: var(--typo-body-spacing-medium, 0.15px);\r\n`;\r\n\r\nexport const InfoText = styled.p`\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n text-align: center;\r\n width: 400px;\r\n\r\n /* caption/medium-r */\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 @media (max-width: 410px) {\r\n font-size: 10px;\r\n width: 350px;\r\n }\r\n`;\r\nexport const HelpSpan = styled.span`\r\n color: var(--color-text-status-info, #17adc1);\r\n\r\n /* caption/medium-r */\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\nexport const NoDataButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-400, 32px);\r\n padding: 8px;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\r\n\r\n border: none;\r\n\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","import { NoDataWrapper, TextContainer, HeaderText, InfoText, HelpSpan } from './style';\r\n\r\nconst NoData = ({ title, description, button, helpSpan }: any) => {\r\n return (\r\n <NoDataWrapper>\r\n <TextContainer>\r\n <HeaderText>{title}</HeaderText>\r\n <InfoText>\r\n {description} {helpSpan && <HelpSpan>{helpSpan}</HelpSpan>}\r\n </InfoText>\r\n {button && button}\r\n </TextContainer>\r\n </NoDataWrapper>\r\n );\r\n};\r\n\r\nexport default NoData;\r\n","import { TableWrapper } from './style';\r\nimport { getGroupLength, groupBy } from './utils';\r\nimport { SketelonRows, TableBodyRows } from './TableBodyRows';\r\nimport GroupedTableBody from './GroupedTableBody';\r\nimport { TablePagination } from './TablePagination';\r\nimport { TableTh } from './TableTh';\r\nimport { useGridViewStore } from '../../GridViewStoreProvider';\r\nimport { useMemo } from 'react';\r\nimport { TableViewOptions } from '../../types';\r\nimport NoData from '../../../../components/no-data';\r\n\r\nconst Table = ({\r\n activeTableView,\r\n columns,\r\n rowKey,\r\n dataSource,\r\n loading,\r\n pagination,\r\n totalItemCount,\r\n onRowClick,\r\n noPagination,\r\n noDataProps,\r\n}: any) => {\r\n const filters = useGridViewStore(s => s.filters);\r\n const groupByArr = useGridViewStore(s => s.groupByArr);\r\n\r\n const setFilters = useGridViewStore(s => s.setFilters);\r\n\r\n const currentColumns = useMemo(() => {\r\n if (groupByArr.length > 0) {\r\n return columns.filter(\r\n (col: any) => !groupByArr.some((g: any) => g.dataIndex == col.dataIndex)\r\n );\r\n } else {\r\n return columns;\r\n }\r\n }, [columns, groupByArr]);\r\n\r\n const { isTableGroupped, isTableSubGroupped } = useMemo(\r\n () => ({\r\n isTableGroupped: !!groupByArr[0],\r\n isTableSubGroupped: !!groupByArr[1],\r\n }),\r\n [groupByArr]\r\n );\r\n const currentDataSource = useMemo(() => {\r\n if (groupByArr[0]) {\r\n const grouped = groupBy(groupByArr[0], dataSource);\r\n\r\n if (groupByArr[1]) {\r\n const subGrouped: any = {};\r\n Object.keys(grouped).forEach(key => {\r\n subGrouped[key] = groupBy(groupByArr[1], grouped[key]);\r\n });\r\n\r\n return subGrouped;\r\n }\r\n\r\n return grouped;\r\n }\r\n\r\n return dataSource;\r\n }, [dataSource, groupByArr]);\r\n\r\n function onPerPageSelectChange(newPageSize: number) {\r\n setFilters({\r\n ...filters,\r\n PageSize: newPageSize,\r\n Page: 1,\r\n });\r\n }\r\n\r\n function onPaginationChange(newPage: number) {\r\n setFilters({\r\n ...filters,\r\n Page: newPage,\r\n });\r\n }\r\n\r\n return (\r\n <TableWrapper>\r\n <table>\r\n {activeTableView != TableViewOptions.LIST && (\r\n <thead>\r\n <tr>\r\n {currentColumns.map((col: any) => (\r\n <TableTh key={col.dataIndex} col={col} />\r\n ))}\r\n <th></th>\r\n </tr>\r\n </thead>\r\n )}\r\n <tbody>\r\n {loading ? (\r\n <SketelonRows\r\n rowLength={pagination.pageSize}\r\n columnLength={currentColumns.length}\r\n />\r\n ) : currentDataSource?.length == 0 && noDataProps ? (\r\n <tr>\r\n <td colSpan={currentColumns.length}>\r\n <NoData {...noDataProps} />\r\n </td>\r\n </tr>\r\n ) : (\r\n <>\r\n {isTableGroupped ? (\r\n <GroupedTableBody\r\n dataSource={currentDataSource}\r\n columns={currentColumns}\r\n isSubGroupped={isTableSubGroupped}\r\n getGroupLength={getGroupLength}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n ) : (\r\n <TableBodyRows\r\n rows={currentDataSource}\r\n columns={currentColumns}\r\n rowKey={rowKey}\r\n onRowClick={onRowClick}\r\n />\r\n )}\r\n </>\r\n )}\r\n </tbody>\r\n </table>\r\n {pagination && !noPagination && (\r\n <TablePagination\r\n pagination={pagination}\r\n totalItemCount={totalItemCount}\r\n onPerPageSelectChange={onPerPageSelectChange}\r\n onPaginationChange={onPaginationChange}\r\n />\r\n )}\r\n </TableWrapper>\r\n );\r\n};\r\n\r\nexport default Table;\r\n","import styled from 'styled-components';\r\n\r\nexport const SettingSidebarWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n position: fixed;\r\n right: 0;\r\n top: 0;\r\n height: 100vh;\r\n background: var(--color-bg-primary, #fff);\r\n border-left: 1px solid var(--color-bg-secondary, #f5f5f5);\r\n max-width: 22.5rem;\r\n width: 100%;\r\n z-index: 3;\r\n header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 1.5rem;\r\n span {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 button {\r\n display: flex;\r\n align-items: center;\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-primary);\r\n }\r\n }\r\n }\r\n }\r\n\r\n .setting-sidebar-content {\r\n padding: 0 1.5rem;\r\n margin-top: 1.2rem;\r\n .table-view-list {\r\n display: grid;\r\n grid-template-columns: repeat(2, 1fr);\r\n li {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n padding: 0.75rem;\r\n border: 1px solid var(--color-bg-secondary, #f5f5f5);\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-quaternary, #fff);\r\n gap: 0.75rem;\r\n transition: 0.1s;\r\n cursor: pointer;\r\n span {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n transition: 0.1s;\r\n }\r\n svg {\r\n width: var(--size-250, 1.25rem);\r\n height: var(--size-250, 1.25rem);\r\n path {\r\n fill: var(--color-icon-secondary);\r\n transition: 0.1s;\r\n }\r\n }\r\n &.active,\r\n &:hover {\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-brand-special, #141414);\r\n span {\r\n color: var(--color-text-inverse-primary, #fff);\r\n }\r\n svg {\r\n path {\r\n fill: var(--color-icon-inverse);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .grouping-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2.5rem;\r\n margin-top: 2.5rem;\r\n li {\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);\r\n border: none;\r\n .ant-select-selection-placeholder {\r\n path {\r\n fill: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n }\r\n }\r\n }\r\n span {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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\n }\r\n\r\n .properties-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n margin-top: 2.5rem;\r\n span {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 ul {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0.25rem;\r\n li {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-primary, #131412);\r\n text-align: center;\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n padding: 0.25rem 0.75rem 0.25rem 0.4rem;\r\n border-radius: var(--border-radius-full, 62.4375rem);\r\n background-color: var(--color-bg-secondary);\r\n border: 1px solid var(--color-bg-secondary, rgba(20, 20, 20, 0.05));\r\n cursor: pointer;\r\n text-transform: capitalize;\r\n &::before {\r\n content: '';\r\n display: block;\r\n width: 0.875rem;\r\n height: 0.875rem;\r\n background-color: var(--color-icon-primary);\r\n border-radius: 100%;\r\n }\r\n &.hide {\r\n background-color: transparent;\r\n border: 1px dashed var(--color-border-primary, rgba(20, 20, 20, 0.05));\r\n color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\r\n &::before {\r\n width: 0.5rem;\r\n height: 0.5rem;\r\n margin: 0.25rem;\r\n background-color: var(--color-text-tertiary, rgba(19, 20, 18, 0.5));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n footer {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 0 1.5rem;\r\n margin-top: auto;\r\n padding-bottom: 1.5rem;\r\n button {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-primary, #131412);\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 padding: 0.5rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-primary);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media (max-width: 991px) {\r\n max-width: 100%;\r\n overflow: auto;\r\n header {\r\n position: sticky;\r\n top: 0;\r\n left: 0;\r\n background: var(--color-bg-primary, #fff);\r\n z-index: 9;\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledNoGrouping = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n`;\r\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';\r\nimport { Button } from 'antd';\r\n\r\nexport const ModalContentWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n padding-top: 1.5rem;\r\n h2 {\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 1.5rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\r\n margin-bottom: 0.25rem;\r\n padding: 0 1.5rem;\r\n }\r\n p {\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n margin-bottom: 2rem;\r\n padding: 0 1.5rem;\r\n }\r\n button {\r\n color: var(--color-text-inverse-primary, #131412);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-brand-special, #02e0ae);\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 1.25rem 1.5rem;\r\n path {\r\n fill: var(--color-icon-inverse);\r\n }\r\n }\r\n`;\r\n\r\nexport const VerificationWrapper = styled.div`\r\n margin-bottom: 2.5rem;\r\n padding: 0 1.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n .ant-otp {\r\n column-gap: 0.12rem;\r\n }\r\n .ant-otp-input-wrapper {\r\n input {\r\n width: 3rem;\r\n height: 4rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n background: var(--color-bg-secondary, #232323);\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 1.5rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\r\n &:focus {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae);\r\n }\r\n }\r\n &:nth-child(3) {\r\n margin-right: 0.38rem;\r\n }\r\n }\r\n\r\n &.verification-error {\r\n .ant-otp-input-wrapper {\r\n border: 1px solid var(--color-border-status-error, #fd7f60);\r\n }\r\n & > span {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-status-error, #fd6c49);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n }\r\n }\r\n`;\r\n\r\nexport const DidnotReceiveCodeSpan = styled.span`\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\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\r\nexport const OtpContentWrapper = styled(ModalContentWrapper)`\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-status-error, #fd7f60) !important;\r\n border: 2px solid var(--color-bg-secondary, #f5f5f5);\r\n padding-top: 0 !important;\r\n`;\r\n\r\nexport const BlockedOtpHeader = styled.div`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--spacing-050, 4px);\r\n padding: var(--spacing-400, 32px) var(--spacing-300, 24px) !important;\r\n`;\r\n\r\nexport const BlockedOtpTitle = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n color: var(--color-text-contrast-onlight-primary, #131412);\r\n\r\n /* subheading/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const OtpBlockedLabel = styled.div`\r\n color: var(--color-text-contrast-onlight-secondary, rgba(19, 20, 18, 0.75));\r\n\r\n /* body/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n padding-bottom: var(--spacing-400, 32px) !important;\r\n`;\r\n\r\nexport const OtpBlockedButton = styled(Button)`\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-brand-special, #02e0ae);\r\n display: flex;\r\n justify-content: start;\r\n color: var(--color-text-inverse-primary, #131412) !important;\r\n border: none !important;\r\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\r\n /* body/small */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n padding: var(--spacing-350, 30px) var(--spacing-300, 24px) !important;\r\n &:hover {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-brand-special, #02e0ae) !important;\r\n border: none !important;\r\n color: var(--color-text-inverse-primary, #131412) !important;\r\n border-top: 2px solid var(--color-bg-secondary, #f5f5f5) !important;\r\n }\r\n`;\r\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) {\r\n if (!input) return input;\r\n\r\n // Always lowercase the first character\r\n let result = input[0].toLowerCase();\r\n\r\n for (let i = 1; i < input.length; i++) {\r\n const prev = input[i - 1];\r\n const curr = input[i];\r\n const next = input[i + 1];\r\n\r\n // Check if current is uppercase\r\n if (/[A-Z]/.test(curr)) {\r\n // If surrounded by other uppercase chars, lowercase it\r\n if (/[A-Z]/.test(prev) && /[A-Z]/.test(next)) {\r\n result += curr.toLowerCase();\r\n } else if (/[A-Z]/.test(prev) && (!next || /[^A-Z]/.test(next))) {\r\n // If it's the *last* uppercase in a group, keep it uppercase\r\n result += curr;\r\n } else {\r\n result += curr;\r\n }\r\n } else {\r\n result += curr;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function parseServerErrors(errors: Record<string, string[]>) {\r\n return Object.entries(errors).map(([key, messages]) => {\r\n const name: any = key\r\n .replace(/\\[(\\d+)\\]/g, '.$1')\r\n .split('.')\r\n .map(part => {\r\n if (isNaN(part as any)) {\r\n return parseErrorMessageKey(part);\r\n }\r\n return Number(part);\r\n });\r\n\r\n return { name, errors: messages };\r\n });\r\n}\r\n","import { Button, Form } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const OtpWrapper = styled(Form.Item)`\r\n margin-bottom: 2.5rem;\r\n padding: 0 1.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n .ant-otp {\r\n column-gap: 0.12rem;\r\n }\r\n .ant-otp-input-wrapper {\r\n input {\r\n width: 3rem;\r\n height: 4rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n background: var(--color-bg-secondary, #232323);\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 1.5rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\r\n &:focus {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae);\r\n }\r\n }\r\n &:nth-child(3) {\r\n margin-right: 0.38rem;\r\n }\r\n }\r\n\r\n &.verification-error {\r\n .ant-otp-input-wrapper {\r\n border: 1px solid var(--color-border-status-error, #fd7f60);\r\n }\r\n & > span {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-status-error, #fd6c49);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n }\r\n }\r\n`;\r\nexport const ButtonsWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n border-top: 1px solid black;\r\n`;\r\nexport const ButtonWithArrow = styled.div`\r\n display: flex;\r\n justify-content: space-between !important;\r\n width: 100% !important;\r\n`;\r\n\r\nexport const ResendButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-800, 64px);\r\n padding: var(--spacing-200, 16px) var(--spacing-300, 24px);\r\n align-items: center;\r\n gap: var(--spacing-200, 16px);\r\n align-self: stretch;\r\n\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-quaternary, #2f2f2f);\r\n`;\r\nexport const BackupSpan = styled.span`\r\n color: var(--color-text-brand, #06c193);\r\n cursor: pointer;\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 cursor: pointer;\r\n`;\r\n\r\nexport const DidnotReceiveCodeSpan = styled.span`\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\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\r\nexport const BackupCodeInfoText = styled.span`\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));\r\n\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\nexport const VerificationWrapper = styled.div`\r\n margin-bottom: 2.5rem;\r\n padding: 0 1.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n\r\n /* ✅ OTP input styling */\r\n .ant-otp {\r\n column-gap: 0.12rem;\r\n }\r\n\r\n .ant-otp-input-wrapper {\r\n input {\r\n width: 3rem;\r\n height: 4rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n background: var(--color-bg-secondary, #232323);\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 1.5rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem);\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\r\n\r\n &:focus {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae);\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n &:nth-child(3) {\r\n margin-right: 0.38rem;\r\n }\r\n }\r\n\r\n /* ✅ Regular Ant Design Input styling */\r\n .ant-input {\r\n height: 3rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n background: var(--color-bg-secondary, #232323);\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: 1rem;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: 1.25rem;\r\n transition:\r\n border-color 0.2s ease,\r\n box-shadow 0.2s ease;\r\n\r\n &::placeholder {\r\n color: rgba(255, 255, 255, 0.4);\r\n }\r\n\r\n &:focus,\r\n &.ant-input-focused {\r\n border-color: var(--color-border-brand-special, #02e0ae);\r\n box-shadow: none;\r\n }\r\n\r\n &.ant-input-status-error,\r\n &.ant-input-status-error:focus {\r\n border-color: var(--color-border-status-error, #fd7f60) !important;\r\n box-shadow: none !important;\r\n }\r\n }\r\n\r\n /* ✅ Error wrapper for both OTP and Inputs */\r\n &.verification-error {\r\n .ant-otp-input-wrapper input,\r\n .ant-input {\r\n border-color: var(--color-border-status-error, #fd7f60);\r\n }\r\n\r\n & > span {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-status-error, #fd6c49);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n }\r\n }\r\n`;\r\n","import { Input } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const MFAPopupHeader = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n padding: 15px 15px 0 0;\r\n\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 28px);\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const VerificationWrapper = styled.div`\r\n margin-bottom: 2.5rem;\r\n padding: 0 1.5rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n .ant-otp {\r\n column-gap: 0.12rem;\r\n }\r\n .ant-otp-input-wrapper {\r\n input {\r\n width: 3rem;\r\n height: 4rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n border: 1px solid var(--color-bg-secondary, #232323);\r\n background: var(--color-bg-secondary, #232323);\r\n color: var(--color-text-primary, #fff);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 1.5rem);\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 1.75rem); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.03125rem);\r\n &:focus {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae);\r\n }\r\n }\r\n &:nth-child(3) {\r\n margin-right: 0.38rem;\r\n }\r\n }\r\n\r\n &.verification-error {\r\n .ant-otp-input-wrapper {\r\n border: 1px solid var(--color-border-status-error, #fd7f60);\r\n }\r\n & > span {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n color: var(--color-text-status-error, #fd6c49);\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 1rem);\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 1.25rem);\r\n letter-spacing: var(--typo-body-spacing-small, 0.00938rem);\r\n }\r\n }\r\n`;\r\n\r\nexport const PasswordInputWrapper = styled.div`\r\n padding: 1.5rem;\r\n`;\r\n\r\nexport const SpinWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1.5rem;\r\n`;\r\n\r\nexport const BackupCodeWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 24px;\r\n\r\n .ant-btn {\r\n background: var(--color-bg-brand-special, #02e0ae);\r\n color: var(--color-text-inverse-primary, #131412);\r\n &:hover {\r\n background: var(--color-bg-brand-special, #02e0ae) !important;\r\n color: var(--color-text-inverse-primary, #131412) !important;\r\n }\r\n }\r\n`;\r\n\r\nexport const PasswordInput = styled(Input.Password)`\r\n input[type='number'] {\r\n &::-webkit-outer-spin-button,\r\n &::-webkit-inner-spin-button {\r\n display: none;\r\n }\r\n }\r\n\r\n &.ant-input-status-error,\r\n &.ant-input-affix-wrapper-status-error {\r\n border: 1px solid var(--color-border-status-error) !important;\r\n\r\n .ant-input {\r\n background: transparent !important;\r\n }\r\n\r\n .ant-input-prefix {\r\n color: var(--color-text-status-error) !important;\r\n }\r\n .ant-input-suffix {\r\n color: var(--color-text-status-error) !important;\r\n }\r\n }\r\n\r\n &::placeholder,\r\n .ant-input::placeholder {\r\n color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5)) !important;\r\n }\r\n\r\n &.ant-input-outlined:hover {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n &.ant-input-outlined:focus {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n &.ant-input-affix-wrapper-focused {\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n }\r\n\r\n display: flex;\r\n height: 40px;\r\n padding: var(--spacing-025, 2px) var(--spacing-150, 12px);\r\n align-items: center;\r\n align-self: stretch;\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, #2f2f2f) !important;\r\n\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 &:hover,\r\n &:focus,\r\n &:focus-within,\r\n &:active {\r\n background: none;\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n box-shadow: none;\r\n }\r\n &:focus,\r\n &.ant-input:focus,\r\n &.ant-input-focused {\r\n border: 1px solid var(--color-border-brand-special, #02e0ae) !important;\r\n box-shadow: none !important;\r\n }\r\n\r\n &:hover,\r\n &:focus,\r\n &:focus-within,\r\n &:active,\r\n &.has-value {\r\n outline: none;\r\n span {\r\n transform: translateY(0%);\r\n top: 1rem;\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-small, 0.75rem);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-caption-lineHeight-small, 1rem);\r\n letter-spacing: var(--typo-caption-spacing-small, 0.00625rem);\r\n }\r\n }\r\n\r\n .ant-input-suffix {\r\n color: var(--color-text-primary, #131412) !important;\r\n\r\n svg path {\r\n fill: var(--color-text-primary, #131412) !important;\r\n }\r\n }\r\n`;\r\n","import {\r\n CancelModalButton,\r\n ContentContainer,\r\n CreateModalButton,\r\n GeneralInput,\r\n LabelText,\r\n} from '../modal-host/TablePopup.style';\r\n\r\nimport { useState } from 'react';\r\nimport { BackupCodeInfoText, ButtonsWrapper, VerificationWrapper } from './style';\r\nimport { parseServerErrors } from '../../utils/errors';\r\nimport ErrorSvg from '../../assets/icons/error.svg?react';\r\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\r\nimport { MFAPopupHeader } from '../popup-mfa/mfa-all-popups/style';\r\nimport { tActions, tAuthentication } from '../../utils/exportTranslation';\r\n\r\nconst EnterBackupCode = ({\r\n confirmationToken,\r\n backupCodeEndpoint,\r\n setBackupActivated,\r\n setVisible,\r\n id,\r\n setRefetchData,\r\n}: any) => {\r\n const [code, setCode] = useState();\r\n const [errorList, setErrorList] = useState<any[]>([]);\r\n async function handleSubmit() {\r\n try {\r\n const resp = await backupCodeEndpoint({ confirmationToken, code, id });\r\n\r\n if (resp?.data?.success) {\r\n setVisible(false);\r\n setRefetchData((prev: any) => !prev);\r\n }\r\n } catch (error: any) {\r\n const errorList = parseServerErrors(error?.response?.data?.errors);\r\n setErrorList(errorList);\r\n console.log(error);\r\n }\r\n }\r\n return (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('EnterBackupCode')}\r\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n\r\n <VerificationWrapper className={errorList.length > 0 ? 'verification-error' : ''}>\r\n <LabelText>{tAuthentication('BackupCode')}</LabelText>\r\n <GeneralInput\r\n value={code}\r\n onChange={(e: any) => setCode(e.target.value)}\r\n placeholder=\"xxxx-xxxx-xxxx\"\r\n />\r\n {errorList.map((error: any) => (\r\n <span key={error.name}>\r\n <ErrorSvg /> {error.errors[0]}\r\n </span>\r\n ))}\r\n <BackupCodeInfoText>{tAuthentication('BackupCodeSpan')}</BackupCodeInfoText>\r\n </VerificationWrapper>\r\n\r\n <ButtonsWrapper>\r\n <CancelModalButton\r\n onClick={() => {\r\n setBackupActivated(false);\r\n }}\r\n >\r\n {tActions('Back')}\r\n </CancelModalButton>\r\n\r\n <CreateModalButton onClick={handleSubmit}>\r\n <span className=\"arrow-styled\">\r\n {tActions('Continue')} <ArrowRightIcon />\r\n </span>\r\n </CreateModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\nexport default EnterBackupCode;\r\n","import styled from 'styled-components';\r\n\r\nexport const Overlay = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n`;\r\n\r\nexport const ModalContainer = styled.div`\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n background: var(--color-bg-quaternary, #2f2f2f);\r\n min-width: 300px;\r\n max-width: 500px;\r\n position: relative;\r\n animation: fadeIn 0.3s ease;\r\n`;\r\n","import { useEffect } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { ModalContainer, Overlay } from './style';\r\n\r\nconst modalRoot =\r\n document.getElementById('modal-root') ||\r\n (() => {\r\n const el = document.createElement('div');\r\n el.id = 'modal-root';\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\nfunction Modal({ isOpen, onClose, children }: any) {\r\n useEffect(() => {\r\n const onKeyDown = (e: any) => {\r\n if (e.key === 'Escape') onClose();\r\n };\r\n document.addEventListener('keydown', onKeyDown);\r\n return () => document.removeEventListener('keydown', onKeyDown);\r\n }, [onClose]);\r\n\r\n if (!isOpen) return null;\r\n\r\n return ReactDOM.createPortal(\r\n <Overlay onClick={onClose}>\r\n <ModalContainer onClick={e => e.stopPropagation()}>{children}</ModalContainer>\r\n </Overlay>,\r\n modalRoot\r\n );\r\n}\r\n\r\nexport default Modal;\r\n","import { Input } from 'antd';\r\nimport {\r\n BlockedOtpHeader,\r\n BlockedOtpTitle,\r\n DidnotReceiveCodeSpan,\r\n ModalContentWrapper,\r\n OtpBlockedButton,\r\n OtpBlockedLabel,\r\n OtpContentWrapper,\r\n VerificationWrapper,\r\n} from './style';\r\nimport ErrorSvg from '../../assets/icons/error.svg?react';\r\nimport { useState } from 'react';\r\nimport useUserStore from '../../stores/useUserStore';\r\nimport { parseServerErrors } from '../../utils/errors';\r\nimport EnterBackupCode from '../two-factor-popup/EnterBackupCodes';\r\nimport { BackupSpan } from '../two-factor-popup/style';\r\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\r\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\r\nimport Modal from '../generic-modal';\r\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\r\nimport { usePackageServices } from '../../utils/PackageServicesProvider';\r\n\r\nenum MfaType {\r\n None = 1,\r\n OTP = 2,\r\n TOTP = 3,\r\n BackupCode = 4,\r\n}\r\n\r\nconst ModalText: any = {\r\n [MfaType.None]: `Enable2FaFirst`,\r\n [MfaType.OTP]: `ToViewOtpContactInfoDesc`,\r\n [MfaType.TOTP]: `ToViewTotpContactInfoDesc`,\r\n [MfaType.BackupCode]: `ToViewBackupCodeContactInfoDesc`,\r\n};\r\n\r\nconst ContactInfoModal = ({\r\n isVisible,\r\n setVisible,\r\n code,\r\n mfaType,\r\n id,\r\n isBlocked,\r\n onBlockStateClose,\r\n}: any) => {\r\n const { confirmContactInfo, confirmContactInfoBackup } = usePackageServices();\r\n const { setUser } = useUserStore();\r\n const [optValue, setOPTValue] = useState('');\r\n const [errors, setErrors] = useState<any[]>([]);\r\n const [backupActivated, setBackupActivated] = useState(false);\r\n\r\n function handleOTPChange(text: string) {\r\n setOPTValue(text);\r\n }\r\n async function handleSubmitVerificationCode() {\r\n const _confirm = confirmContactInfo;\r\n if (!_confirm) return;\r\n try {\r\n setErrors([]);\r\n const resp = await _confirm(code, optValue, id);\r\n setUser(resp.data.value as any);\r\n onClose();\r\n } catch (error: any) {\r\n console.log(error);\r\n if (error.status === 400) {\r\n const response = error.response.data;\r\n const errorMessages = parseServerErrors(response.errors);\r\n setErrors(errorMessages);\r\n }\r\n }\r\n }\r\n\r\n async function handleSubmitBackupCode(params: any) {\r\n const _confirmBackup = confirmContactInfoBackup;\r\n if (!_confirmBackup) return;\r\n try {\r\n setErrors([]);\r\n const resp = await _confirmBackup(params);\r\n setUser(resp.data.value as any);\r\n } catch (error: any) {\r\n console.log(error);\r\n if (error.status === 400) {\r\n const response = error.response.data;\r\n const errorMessages = parseServerErrors(response.errors);\r\n setErrors(errorMessages);\r\n }\r\n }\r\n }\r\n\r\n function onClose() {\r\n setOPTValue('');\r\n setVisible(false);\r\n setErrors([]);\r\n }\r\n\r\n if (isBlocked) {\r\n return (\r\n <Modal isOpen={isBlocked} onClose={onBlockStateClose}>\r\n <OtpContentWrapper>\r\n <BlockedOtpHeader>\r\n <BlockedOtpTitle>\r\n <span>{tGeneral('ContactInformationBlocked')}</span>\r\n <span onClick={onBlockStateClose}>\r\n <CloseMarkIcon />\r\n </span>\r\n </BlockedOtpTitle>\r\n <OtpBlockedLabel>\r\n {tGeneral('ContactInformationBlockedDesc')}\r\n </OtpBlockedLabel>\r\n </BlockedOtpHeader>\r\n <OtpBlockedButton>\r\n {tGeneral('TryAgain')}\r\n <ArrowRightIcon />\r\n </OtpBlockedButton>\r\n </OtpContentWrapper>\r\n </Modal>\r\n );\r\n } else {\r\n return (\r\n <Modal isOpen={isVisible} onClose={onClose}>\r\n {!backupActivated ? (\r\n <ModalContentWrapper>\r\n <h2>{tAuthentication('EnterVerificationCode')}</h2>\r\n <p>{mfaType !== undefined ? tGeneral(ModalText[mfaType]) : ''}</p>\r\n {mfaType !== MfaType.None && (\r\n <>\r\n <VerificationWrapper\r\n className={errors.length > 0 ? 'verification-error' : ''}\r\n >\r\n <Input.OTP value={optValue} onChange={handleOTPChange} />\r\n <DidnotReceiveCodeSpan>\r\n {tAuthentication('DidnReceiveCode')}{' '}\r\n <BackupSpan onClick={() => setBackupActivated(true)}>\r\n {tAuthentication('EnterBackupCode')}\r\n </BackupSpan>\r\n </DidnotReceiveCodeSpan>\r\n {errors.map(error => (\r\n <span key={error.name}>\r\n <ErrorSvg />\r\n {error.errors[0]}\r\n </span>\r\n ))}\r\n </VerificationWrapper>\r\n <button\r\n onClick={handleSubmitVerificationCode}\r\n disabled={optValue.length !== 6}\r\n >\r\n {tActions('ShowContactInformation')}\r\n <ArrowRightIcon />\r\n </button>\r\n </>\r\n )}\r\n </ModalContentWrapper>\r\n ) : (\r\n <EnterBackupCode\r\n setBackupActivated={setBackupActivated}\r\n backupCodeEndpoint={handleSubmitBackupCode}\r\n confirmationToken={code}\r\n id={id}\r\n setVisible={setVisible}\r\n />\r\n )}\r\n </Modal>\r\n );\r\n }\r\n};\r\n\r\nexport default ContactInfoModal;\r\n","import { useState } from 'react';\r\nimport useUserStore from '../stores/useUserStore';\r\nimport { usePackageServices } from '../utils/PackageServicesProvider';\r\n\r\nexport const useContactInfoController = () => {\r\n const { enableContactInfo, disableContactInfo } = usePackageServices();\r\n const { setUser } = useUserStore();\r\n const [isContactInfoModalVisible, setIsContactInfoModalVisible] = useState(false);\r\n const [savedResp, setSavedResp] = useState<any>(null);\r\n const [isBlocked, setIsBlocked] = useState(false);\r\n\r\n const handleEnableContactInfo = async () => {\r\n if (!enableContactInfo) return;\r\n try {\r\n setIsBlocked(false);\r\n const resp = await enableContactInfo();\r\n setSavedResp({\r\n token: (resp.data?.value as any)?.token,\r\n id: (resp.data?.value as any)?.id,\r\n mfaType: (resp.data?.value as any)?.mfaType,\r\n });\r\n setIsContactInfoModalVisible(true);\r\n } catch (error: any) {\r\n const response = error.response?.data;\r\n const errorMessages: any = response?.errors;\r\n\r\n if (\r\n (errorMessages &&\r\n Array.isArray(errorMessages['']) &&\r\n errorMessages[''][0] === 'TooManyAttempts') ||\r\n errorMessages[''][0] === 'IsNotAllowed'\r\n ) {\r\n setIsBlocked(true);\r\n }\r\n }\r\n };\r\n\r\n async function handleDisableContactInfo() {\r\n if (!disableContactInfo) return;\r\n const resp = await disableContactInfo();\r\n setUser(resp.data.value as any);\r\n }\r\n\r\n const onBlockStateClose = () => {\r\n setIsBlocked(false);\r\n setIsContactInfoModalVisible(false);\r\n };\r\n\r\n return {\r\n isContactInfoModalVisible,\r\n setIsContactInfoModalVisible,\r\n isBlocked,\r\n setIsBlocked,\r\n onBlockStateClose,\r\n handleEnableContactInfo,\r\n handleDisableContactInfo,\r\n ContactInfoModalProps: {\r\n isVisible: isContactInfoModalVisible,\r\n setVisible: setIsContactInfoModalVisible,\r\n code: savedResp?.token,\r\n mfaType: savedResp?.mfaType,\r\n id: savedResp?.id,\r\n isBlocked: isBlocked,\r\n onBlockStateClose: onBlockStateClose,\r\n },\r\n };\r\n};\r\n","import { SettingSidebarWrapper, StyledNoGrouping } from './style';\r\nimport CloseSvg from '../../../../assets/icons/close.svg?react';\r\nimport CheckmarkFilledSvg from '../../../../assets/icons/checkmark-filled.svg?react';\r\nimport FilterSvg from '../../../../assets/icons/filter.svg?react';\r\nimport RefrechSvg from '../../../../assets/icons/arrow-refresh.svg?react';\r\nimport { Select } from 'antd';\r\nimport ContactInfoModal from '../../../../components/contact-info-modal';\r\nimport useUserStore from '../../../../stores/useUserStore';\r\nimport { Column, TableViewOptions } from '../../types';\r\nimport { useGridViewStore } from '../../GridViewStoreProvider';\r\nimport { useContactInfoController } from '../../../../hooks/useContactInfoController';\r\nimport { tActions, tGeneral } from '../../../../utils/exportTranslation';\r\n\r\nconst SettingSidebar = ({ close }: any) => {\r\n const { user } = useUserStore();\r\n const columns = useGridViewStore(s => s.columns);\r\n const groupByArr = useGridViewStore(s => s.groupByArr);\r\n const hideItems = useGridViewStore(s => s.hideItems);\r\n const activeTableView = useGridViewStore(s => s.activeTableView);\r\n const setActiveTableView = useGridViewStore(s => s.setActiveTableView);\r\n const setGroupByArr = useGridViewStore(s => s.setGroupByArr);\r\n const setHideItems = useGridViewStore(s => s.setHideItems);\r\n const resetStore = useGridViewStore(s => s.resetStore);\r\n const { handleEnableContactInfo, handleDisableContactInfo, ContactInfoModalProps } =\r\n useContactInfoController();\r\n function handleGroupChange(col: any) {\r\n const currentCol = columns.find((c: any) => c.dataIndex == col.value);\r\n setGroupByArr([currentCol]);\r\n }\r\n\r\n //DONT NEED NOW\r\n\r\n // function handleSubGroupChange(col: any) {\r\n // const currentCol = columns.find((c: any) => c.dataIndex == col.value);\r\n // setGroupByArr([groupByArr[0], currentCol]);\r\n // }\r\n\r\n function onHideSelectHandle(col: Column, isHide: boolean) {\r\n setHideItems({\r\n ...hideItems,\r\n [col.dataIndex]: isHide ? true : false,\r\n });\r\n }\r\n\r\n function formatDateDifference(date1: Date | string, date2: Date | string) {\r\n const d1 = new Date(date1);\r\n const d2 = new Date(date2);\r\n\r\n const diffMs = Math.abs(d2.getTime() - d1.getTime());\r\n\r\n const minutes = Math.floor(diffMs / (1000 * 60)) % 60;\r\n const hours = Math.floor(diffMs / (1000 * 60 * 60)) % 24;\r\n\r\n const parts = [];\r\n if (hours > 0) parts.push(`${hours}h`);\r\n if (minutes > 0) parts.push(`${minutes}m`);\r\n\r\n return parts.join(' ');\r\n }\r\n\r\n function onResetAllOptions() {\r\n resetStore();\r\n close();\r\n }\r\n\r\n return (\r\n <SettingSidebarWrapper>\r\n <header>\r\n <span>{tGeneral('ViewOptions')}</span>\r\n <button onClick={close}>\r\n <CloseSvg />\r\n </button>\r\n </header>\r\n\r\n <div className=\"setting-sidebar-content\">\r\n <ul className=\"table-view-list\">\r\n <li\r\n className={activeTableView == TableViewOptions.TABLE ? 'active' : ''}\r\n onClick={() => setActiveTableView(TableViewOptions.TABLE)}\r\n >\r\n <CheckmarkFilledSvg />\r\n <span>{tGeneral('Table')}</span>\r\n </li>\r\n <li\r\n className={activeTableView == TableViewOptions.LIST ? 'active' : ''}\r\n onClick={() => setActiveTableView(TableViewOptions.LIST)}\r\n >\r\n <FilterSvg />\r\n <span>{tGeneral('List')}</span>\r\n </li>\r\n </ul>\r\n\r\n <ul className=\"grouping-list\">\r\n <li>\r\n <span>{tGeneral('Grouping')}</span>\r\n <Select\r\n className={'teeest'}\r\n showSearch\r\n options={columns.map((col: any) => ({\r\n value: col.dataIndex,\r\n label: col.title,\r\n }))}\r\n labelInValue\r\n placeholder={\r\n <StyledNoGrouping>\r\n <FilterSvg />\r\n {tGeneral('NoGrouping')}\r\n </StyledNoGrouping>\r\n }\r\n value={groupByArr[0]?.dataIndex || null}\r\n onChange={handleGroupChange}\r\n />\r\n </li>\r\n {/* <li>\r\n\r\n\r\n DONT NEEED NOW\r\n\r\n\r\n <span>Sub grouping</span>\r\n <Select\r\n disabled={!groupByArr[0]?.dataIndex}\r\n showSearch\r\n options={columns\r\n .filter((col: any) => col.dataIndex != groupByArr[0]?.dataIndex)\r\n .map((col: any) => ({\r\n value: col.dataIndex,\r\n label: col.title,\r\n }))}\r\n labelInValue\r\n placeholder={\r\n <div>\r\n <FilterSvg />\r\n No grouping\r\n </div>\r\n }\r\n value={groupByArr[1]?.dataIndex || null}\r\n onChange={handleSubGroupChange}\r\n />\r\n </li> */}\r\n </ul>\r\n\r\n <div className=\"properties-list\">\r\n <span>{tGeneral('ShowProperties')}</span>\r\n <ul>\r\n {columns.map((col: any) => (\r\n <li\r\n key={col.dataIndex}\r\n className={hideItems[col.dataIndex] === true ? 'hide' : ''}\r\n onClick={() =>\r\n onHideSelectHandle(col, !(hideItems[col.dataIndex] === true))\r\n }\r\n >\r\n {col.title}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <footer>\r\n {user?.sensitiveDataExpiration &&\r\n new Date(user?.sensitiveDataExpiration) > new Date() ? (\r\n <button onClick={handleDisableContactInfo}>\r\n {tGeneral('HideContactInfo')} •{' '}\r\n {formatDateDifference(new Date(user?.sensitiveDataExpiration), new Date())}\r\n <CloseSvg />\r\n </button>\r\n ) : (\r\n <button onClick={handleEnableContactInfo}>\r\n {tActions('ShowContactInformation')} {}\r\n <CheckmarkFilledSvg />\r\n </button>\r\n )}\r\n\r\n <button onClick={onResetAllOptions}>\r\n {tActions('ResetAllOptions')}\r\n <RefrechSvg />\r\n </button>\r\n </footer>\r\n\r\n <ContactInfoModal {...ContactInfoModalProps} />\r\n </SettingSidebarWrapper>\r\n );\r\n};\r\n\r\nexport default SettingSidebar;\r\n","import { useEffect, useMemo, useRef, useState } from 'react';\r\nimport useGridViewSessionStorage from './hooks/useGridViewSessionStorage';\r\nimport { useElementHeight } from '../../hooks/useElementHeight';\r\nimport { useGridViewStore } from './GridViewStoreProvider';\r\nimport { GridViewPageTableWrapper, PageTopContentWrapper, PageWrapper } from './style';\r\nimport PageHeader from './components/page-header/PageHeader';\r\nimport PageFilter from './components/PageFilter';\r\nimport Table from './components/Table';\r\nimport useUserStore from '../../stores/useUserStore';\r\nimport { useFetch } from '../../hooks/useFetch';\r\nimport SettingSidebar from './components/setting-sidebar';\r\nimport type { Column, GridViewPageProps } from './types';\r\n\r\nconst GridViewPage = ({\r\n columns,\r\n getData,\r\n update,\r\n hasCreateBtn,\r\n GridPageTopLeftComponent,\r\n contentAfterPageHeader,\r\n onRowClick,\r\n checkedValue,\r\n rowKey,\r\n pagination,\r\n CustomFilters,\r\n initialFilterValues,\r\n tableAdditionalFields,\r\n createIsModal,\r\n editButton,\r\n noPagination,\r\n noDataProps,\r\n exportButton,\r\n hasSelect,\r\n selectProps,\r\n TableComponent,\r\n tableProps = {},\r\n noNeedSidebarResponsiveButton,\r\n loadedData = () => {},\r\n}: GridViewPageProps) => {\r\n const { user } = useUserStore();\r\n const filters = useGridViewStore(s => s.filters);\r\n const filterItems = useGridViewStore(s => s.filterItems);\r\n const sortItems = useGridViewStore(s => s.sortItems);\r\n const hideItems = useGridViewStore(s => s.hideItems);\r\n const activeTableView = useGridViewStore(s => s.activeTableView);\r\n\r\n const setColumns = useGridViewStore(s => s.setColumns);\r\n const setHasCreateBtn = useGridViewStore(s => s.setHasCreateBtn);\r\n const setHasSelect = useGridViewStore(s => s.setHasSelect);\r\n\r\n const setCheckedValue = useGridViewStore(s => s.setCheckedValue);\r\n\r\n const { response, loading } = useFetch<any>(\r\n () => getData({ ...filters, ...initialFilterValues }),\r\n [filters, user, update]\r\n );\r\n\r\n useGridViewSessionStorage();\r\n\r\n useEffect(() => {\r\n if (response?.data) {\r\n loadedData(response.data);\r\n }\r\n }, [response, loadedData]);\r\n\r\n const [isSettingPopupVisible, setisSettingPopupVisible] = useState(false);\r\n\r\n const pageTopContent: any = useRef(null);\r\n const topContentHeight = useElementHeight(pageTopContent);\r\n\r\n const currentColumns = useMemo(() => {\r\n const arr = columns.filter((c: Column) => hideItems[c.dataIndex] !== true);\r\n return arr;\r\n }, [columns, hideItems]);\r\n\r\n useEffect(() => {\r\n setHasCreateBtn(hasCreateBtn || false);\r\n setHasSelect(hasSelect || false);\r\n }, [hasSelect]);\r\n\r\n // here goes the logic for managing the NameMyreports state and then passing it through components.\r\n useEffect(() => {\r\n setColumns(columns);\r\n }, [columns]);\r\n\r\n useEffect(() => {\r\n setCheckedValue(checkedValue);\r\n }, [checkedValue]);\r\n\r\n return (\r\n <PageWrapper>\r\n <PageTopContentWrapper ref={pageTopContent}>\r\n <PageHeader\r\n noNeedSidebarResponsiveButton={noNeedSidebarResponsiveButton}\r\n hasSelect={hasSelect}\r\n selectProps={selectProps}\r\n exportButton={exportButton}\r\n setisSettingPopupVisible={setisSettingPopupVisible}\r\n CustomFilters={CustomFilters}\r\n tableAdditionalFields={tableAdditionalFields}\r\n createIsModal={createIsModal}\r\n GridPageTopLeftComponent={GridPageTopLeftComponent}\r\n />\r\n {contentAfterPageHeader}\r\n {(filterItems.length > 0 || sortItems.length > 0) && <PageFilter />}\r\n </PageTopContentWrapper>\r\n\r\n <GridViewPageTableWrapper height={`calc(100vh - ${`${topContentHeight}px`})`}>\r\n {TableComponent ? (\r\n <TableComponent\r\n dataSource={response?.data?.items || []}\r\n {...tableProps}\r\n rowKey={rowKey || 'id'}\r\n columns={[\r\n {\r\n title: '',\r\n dataIndex: '',\r\n },\r\n ...currentColumns,\r\n ]}\r\n loading={loading}\r\n pagination={{\r\n current: filters.Page,\r\n pageSize: filters.PageSize,\r\n items: pagination?.items,\r\n }}\r\n />\r\n ) : (\r\n <Table\r\n noPagination={noPagination}\r\n editButton={editButton}\r\n createIsModal={createIsModal}\r\n rowKey={rowKey || 'id'}\r\n columns={[\r\n {\r\n title: '',\r\n dataIndex: '',\r\n },\r\n ...currentColumns,\r\n ]}\r\n dataSource={response?.data?.items || []}\r\n loading={loading}\r\n pagination={{\r\n current: filters.Page,\r\n pageSize: filters.PageSize,\r\n items: pagination?.items,\r\n }}\r\n activeTableView={activeTableView}\r\n totalItemCount={response?.data?.totalItemCount || 0}\r\n onRowClick={onRowClick}\r\n noDataProps={noDataProps || null}\r\n />\r\n )}\r\n </GridViewPageTableWrapper>\r\n {isSettingPopupVisible && (\r\n <SettingSidebar close={() => setisSettingPopupVisible(false)} />\r\n )}\r\n </PageWrapper>\r\n );\r\n};\r\n\r\nexport default GridViewPage;\r\n","import GridViewPage from '../GridViewPage/GridViewPage';\r\nimport { GridViewStoreProvider } from './GridViewStoreProvider';\r\n\r\nconst GridViewPageWrapper = (props: any) => {\r\n return (\r\n <GridViewStoreProvider>\r\n <GridViewPage {...props} />\r\n </GridViewStoreProvider>\r\n );\r\n};\r\n\r\nexport default GridViewPageWrapper;\r\n","import React, { useEffect } from 'react';\r\nimport useModalStore from '../../stores/useModalStore';\r\nimport {\r\n CancelModalButton,\r\n CloseButton,\r\n ModalHostButtonWrapper,\r\n Popup,\r\n PopupFooterContainer,\r\n PopupHeader,\r\n} from './TablePopup.style';\r\nimport { CloseMarkIcon } from '../../styled-components/closeMark';\r\nimport { useLocation } from 'react-router';\r\n\r\nconst ModalHost: React.FC = () => {\r\n const isOpen = useModalStore(state => state.isOpen);\r\n const options = useModalStore(state => state.options);\r\n const close = useModalStore(state => state.close);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n close();\r\n }\r\n }, [location.pathname]);\r\n\r\n if (!options || !isOpen) return null;\r\n\r\n const {\r\n title,\r\n component: Component,\r\n componentProps,\r\n popupOptions,\r\n footerOptions,\r\n hideFooter,\r\n showCloseButton,\r\n onOk,\r\n onCancel,\r\n } = options;\r\n\r\n const handleCancel = () => {\r\n onCancel?.();\r\n };\r\n\r\n const handleOk = () => {\r\n onOk?.();\r\n };\r\n\r\n return (\r\n <Popup\r\n centered\r\n title={\r\n title || showCloseButton ? (\r\n <PopupHeader>\r\n <span>{title}</span>\r\n {showCloseButton && (\r\n <CloseButton onClick={close}>\r\n <CloseMarkIcon />\r\n </CloseButton>\r\n )}\r\n </PopupHeader>\r\n ) : undefined\r\n }\r\n {...popupOptions}\r\n >\r\n {Component && <Component {...componentProps} />}\r\n\r\n {!hideFooter && (\r\n <PopupFooterContainer>\r\n <CancelModalButton onClick={handleCancel}>\r\n {footerOptions?.cancelText}\r\n </CancelModalButton>\r\n\r\n <ModalHostButtonWrapper\r\n onClick={handleOk}\r\n role=\"button\"\r\n tabIndex={0}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter' || e.key === ' ') handleOk();\r\n }}\r\n >\r\n {footerOptions?.okText}\r\n </ModalHostButtonWrapper>\r\n </PopupFooterContainer>\r\n )}\r\n </Popup>\r\n );\r\n};\r\n\r\nexport default ModalHost;\r\n","import { ReactNode } from 'react';\r\nimport { Popup } from '../modal-host/TablePopup.style';\r\n\r\ninterface PopupMFAProps {\r\n displayAddRuleModal: boolean;\r\n onClose: () => void;\r\n title?: string;\r\n hideFooter?: boolean;\r\n children: ReactNode;\r\n}\r\n\r\nconst PopupMFA = ({\r\n displayAddRuleModal,\r\n onClose,\r\n title,\r\n hideFooter = false,\r\n children,\r\n}: PopupMFAProps) => {\r\n return (\r\n <Popup\r\n open={displayAddRuleModal}\r\n onCancel={onClose}\r\n closeIcon={false}\r\n title={title}\r\n footer={hideFooter ? null : undefined}\r\n destroyOnClose\r\n centered\r\n >\r\n {children}\r\n </Popup>\r\n );\r\n};\r\n\r\nexport default PopupMFA;\r\n","import { MFA_STEP } from '.';\r\nimport {\r\n CancelModalButton,\r\n ContentContainer,\r\n LabelText,\r\n PopupFooterContainer,\r\n} from '../../modal-host/TablePopup.style';\r\n\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { MFAPopupHeader } from './style';\r\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst SelectMFAMethod = ({\r\n onClose,\r\n setCurrentStep,\r\n setConfirmationToken,\r\n enableTwoFactorService,\r\n setRefetch,\r\n setIdOf2FA,\r\n}: any) => {\r\n async function getEmailToken() {\r\n const _enable = enableTwoFactorService;\r\n if (!_enable) return;\r\n try {\r\n const resp = await _enable();\r\n\r\n if (resp.data?.value?.isTwoFactorRequired) {\r\n setConfirmationToken(resp.data.value.token);\r\n setIdOf2FA(resp.data.value.id);\r\n setCurrentStep(MFA_STEP.VERIFY_EMAIL_CODE);\r\n } else if (resp?.data?.success && !resp?.data?.value) {\r\n //MEANS THAT it was activated before and it should automatically close\r\n setRefetch((prev: any) => !prev);\r\n onClose();\r\n } else {\r\n onClose();\r\n }\r\n } catch (error) {\r\n console.error('Failed to toggle 2FA:', error);\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('SetupTwoFactorAuthentication')}\r\n <LabelText>{tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n <ButtonsWrapper onClick={getEmailToken}>\r\n <PopupFooterContainer>\r\n <CancelModalButton>\r\n <span>{tGeneral('Email')}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </PopupFooterContainer>\r\n </ButtonsWrapper>\r\n <ButtonsWrapper onClick={() => setCurrentStep(MFA_STEP.SELECT_AUTHENTICATOR_APP)}>\r\n <PopupFooterContainer>\r\n <CancelModalButton>\r\n <span>{tAuthentication('AuthenticatorApp')}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </PopupFooterContainer>\r\n </ButtonsWrapper>\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SelectMFAMethod;\r\n","import { Input } from 'antd';\r\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\r\n\r\nimport { MFAPopupHeader, VerificationWrapper } from './style';\r\nimport { useState } from 'react';\r\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\r\nimport { MFA_STEP } from '.';\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst VerifyAuthenticatorCode = ({\r\n onClose,\r\n setCurrentStep,\r\n setBackupCodes,\r\n setRefetch,\r\n confirmTwoFactorService,\r\n}: any) => {\r\n const [optValue, setOPTValue] = useState('');\r\n const [errors, _setErrors] = useState<any[]>([]);\r\n\r\n function handleOTPChange(text: string) {\r\n setOPTValue(text);\r\n }\r\n\r\n async function handleContinue() {\r\n const _verify = confirmTwoFactorService;\r\n if (!_verify) return;\r\n try {\r\n const resp = await _verify(optValue);\r\n if (resp.data?.success) {\r\n setCurrentStep(MFA_STEP.BACKUP_CODES);\r\n setBackupCodes((resp.data.value as any).recoveryCodes);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n } finally {\r\n setRefetch((prev: any) => prev + 1);\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <MFAPopupHeader>\r\n {tAuthentication('EnterVerificationCode')}\r\n <LabelText>{tAuthentication('YouMaySeeVerificationCode')}</LabelText>\r\n </MFAPopupHeader>\r\n <VerificationWrapper>\r\n <Input.OTP value={optValue} onChange={handleOTPChange} />\r\n {errors.map(error => (\r\n <span key={error.name}>\r\n <ErrorSvg />\r\n {error.errors[0]}\r\n </span>\r\n ))}\r\n </VerificationWrapper>\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\r\n <CancelModalButton onClick={handleContinue}>\r\n <span>{tActions('Continue')}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\n\r\nexport default VerifyAuthenticatorCode;\r\n","import { MFA_STEP } from '.';\r\nimport {\r\n CancelModalButton,\r\n ContentContainer,\r\n LabelText,\r\n PopupFooterContainer,\r\n} from '../../modal-host/TablePopup.style';\r\n\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { MFAPopupHeader } from './style';\r\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst SelectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\r\n const authenticatorApps = [\r\n tAuthentication('Microsoft'),\r\n tAuthentication('Google'),\r\n tAuthentication('Other'),\r\n ];\r\n return (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('SetupTwoFactorAuthentication')}\r\n <LabelText> {tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n {authenticatorApps.map(app => (\r\n <ButtonsWrapper\r\n key={app}\r\n onClick={() => setCurrentStep(MFA_STEP.CONNECT_AUTHENTICATOR)}\r\n >\r\n <PopupFooterContainer>\r\n <CancelModalButton>\r\n <span>{app}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </PopupFooterContainer>\r\n </ButtonsWrapper>\r\n ))}\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SelectAuthenticatorApp;\r\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 {\r\n CancelModalButton,\r\n ContentContainer,\r\n GeneralInput,\r\n LabelText,\r\n PopupFooterContainer,\r\n} from '../../modal-host/TablePopup.style';\r\n\r\nimport {\r\n AuthenticatoQrInpuWrapper,\r\n AuthenticatorQrCopyWrapper,\r\n QrInputWrapper,\r\n QrModalButtonWrapper,\r\n QrWrapper,\r\n} from '../style';\r\nimport { CopyOutlined } from '@ant-design/icons';\r\nimport { useEffect, useState } from 'react';\r\nimport { usePackageServices } from '../../../utils/PackageServicesProvider';\r\nimport { MFA_STEP } from '.';\r\nimport { handleCopy } from '../../../utils/functions';\r\nimport { Spin } from 'antd';\r\nimport { MFAPopupHeader, SpinWrapper } from './style';\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\r\n\r\n// {\r\n// \"totpSecret\": \"WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====\",\r\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==\",\r\n// \"provisioningUri\": \"otpauth://totp/kezherashvilinika+1@gmail.com?secret=WT5UKCBPHGMSQWKN2K4ASYTM6SUX6S5CNAW4ISCL24D6YESSQCGA====&issuer=Affiliate system\"\r\n// }\r\n\r\nconst ConnectAuthenticatorApp = ({ onClose, setCurrentStep }: any) => {\r\n const { initiateMFA } = usePackageServices();\r\n const [data, setData] = useState<any>(null);\r\n\r\n async function init() {\r\n if (!initiateMFA) return;\r\n try {\r\n const resp = await initiateMFA();\r\n setData(resp.data.value);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n init();\r\n }, []);\r\n\r\n return (\r\n <div>\r\n {data ? (\r\n <>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('EnterAuthenticationCode')}\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n <QrWrapper>\r\n <img src={`data:image/png;base64,${data.qrCodeImage}`} />\r\n </QrWrapper>\r\n <br />\r\n <AuthenticatoQrInpuWrapper>\r\n <LabelText> {tAuthentication('CopyCodeManually')}</LabelText>\r\n <QrInputWrapper onClick={() => handleCopy(data.totpSecret)}>\r\n <GeneralInput value={data.totpSecret} disabled />\r\n <AuthenticatorQrCopyWrapper>\r\n <CopyOutlined />\r\n </AuthenticatorQrCopyWrapper>\r\n </QrInputWrapper>\r\n </AuthenticatoQrInpuWrapper>\r\n <PopupFooterContainer>\r\n <QrModalButtonWrapper>\r\n <CancelModalButton onClick={onClose}>\r\n {tActions('Cancel')}\r\n </CancelModalButton>\r\n <CancelModalButton\r\n onClick={() => setCurrentStep(MFA_STEP.VERIFY_AUTHENTICATOR_CODE)}\r\n >\r\n <span>{tActions('Continue')}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </QrModalButtonWrapper>\r\n </PopupFooterContainer>\r\n </>\r\n ) : (\r\n <SpinWrapper>\r\n <Spin />\r\n </SpinWrapper>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ConnectAuthenticatorApp;\r\n","import {\r\n CancelModalButton,\r\n ContentContainer,\r\n CreateModalButton,\r\n LabelText,\r\n} from '../../modal-host/TablePopup.style';\r\n\r\nimport { useState } from 'react';\r\nimport { MFAPopupHeader, PasswordInput, PasswordInputWrapper } from './style';\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication, tGeneral } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst DisableAuthenticator = ({ onClose, setRefetch, disableMFAService }: any) => {\r\n const [optValue, setOPTValue] = useState('');\r\n\r\n function handleOTPChange(e: any) {\r\n setOPTValue(e.target.value);\r\n }\r\n\r\n async function handleContinue() {\r\n if (!disableMFAService) return;\r\n try {\r\n await disableMFAService(optValue);\r\n onClose();\r\n } catch (err) {\r\n console.log(err, 'err');\r\n } finally {\r\n setRefetch((prev: number) => prev + 1);\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('DisableTwoFactor')}\r\n <LabelText>{tAuthentication('DisableTwoFactorDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n <PasswordInputWrapper>\r\n <LabelText>{tGeneral('Password')}</LabelText>\r\n <PasswordInput\r\n value={optValue}\r\n onChange={handleOTPChange}\r\n placeholder={tGeneral('EnterPassword')}\r\n />\r\n </PasswordInputWrapper>\r\n\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\r\n <CreateModalButton onClick={handleContinue}>\r\n <span>{tActions('Continue')}</span>\r\n <ArrowRightIcon />\r\n </CreateModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\n\r\nexport default DisableAuthenticator;\r\n","import { Input, Spin } from 'antd';\r\nimport { CancelModalButton, LabelText } from '../../modal-host/TablePopup.style';\r\n\r\nimport { MFAPopupHeader, SpinWrapper, VerificationWrapper } from './style';\r\nimport { useState } from 'react';\r\nimport ErrorSvg from '../../../assets/icons/error.svg?react';\r\nimport { ArrowRightIcon } from '../../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst VerifyEmailCode = ({\r\n onClose,\r\n confirmationToken,\r\n setRefetch,\r\n idOf2FA,\r\n confirmTwoFactorService,\r\n}: any) => {\r\n const [otpValue, setOtpValue] = useState('');\r\n const [errors, _setErrors] = useState<any[]>([]);\r\n\r\n function handleOTPChange(text: string) {\r\n setOtpValue(text);\r\n }\r\n\r\n async function handleContinue() {\r\n if (!confirmTwoFactorService) return;\r\n try {\r\n const resp: any = await confirmTwoFactorService({\r\n confirmationToken,\r\n code: otpValue,\r\n id: idOf2FA,\r\n });\r\n if (resp.data.success) {\r\n onClose();\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n } finally {\r\n setRefetch((prev: number) => prev + 1);\r\n }\r\n }\r\n\r\n return (\r\n <div>\r\n {confirmationToken ? (\r\n <>\r\n <MFAPopupHeader>\r\n <div>{tAuthentication('EnterVerificationCode')}</div>\r\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n <VerificationWrapper>\r\n <Input.OTP value={otpValue} onChange={handleOTPChange} />\r\n {errors.map(error => (\r\n <span key={error.name}>\r\n <ErrorSvg />\r\n {error.errors[0]}\r\n </span>\r\n ))}\r\n </VerificationWrapper>\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>\r\n {tActions('Cancel')}\r\n </CancelModalButton>\r\n <CancelModalButton\r\n onClick={handleContinue}\r\n disabled={otpValue?.length != 6}\r\n >\r\n <span>{tActions('Continue')}</span>\r\n <ArrowRightIcon />\r\n </CancelModalButton>\r\n </ButtonsWrapper>\r\n </>\r\n ) : (\r\n <SpinWrapper>\r\n <Spin />\r\n </SpinWrapper>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VerifyEmailCode;\r\n","import { CancelModalButton, ContentContainer, LabelText } from '../../modal-host/TablePopup.style';\r\nimport { BackupCodeWrapper, MFAPopupHeader } from './style';\r\nimport { Button } from 'antd';\r\nimport { DownloadOutlined } from '@ant-design/icons';\r\nimport { tActions, tAuthentication } from '../../../utils/exportTranslation';\r\nimport { ButtonsWrapper } from '../../two-factor-popup/style';\r\n\r\nconst BackupCodes = ({ onClose, backupCodes }: any) => {\r\n const handleDownload = () => {\r\n const content = backupCodes.join('\\n');\r\n const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });\r\n const url = URL.createObjectURL(blob);\r\n\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'backup-codes.txt';\r\n a.click();\r\n\r\n URL.revokeObjectURL(url);\r\n };\r\n\r\n return (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('EnterVerificationCode')}\r\n <LabelText>{tAuthentication('BackupCodesDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n <BackupCodeWrapper>\r\n <Button type=\"primary\" icon={<DownloadOutlined />} onClick={handleDownload}>\r\n {tAuthentication('DownloadBackupCodes')}\r\n </Button>\r\n </BackupCodeWrapper>\r\n <ButtonsWrapper>\r\n <CancelModalButton onClick={onClose}>{tActions('Cancel')}</CancelModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n );\r\n};\r\n\r\nexport default BackupCodes;\r\n","import React, { useMemo, useState } from 'react';\r\nimport SelectMFAMethod from './SelectMFAMethod';\r\nimport VerifyAuthenticatorCode from './VerifyAuthenticatorCode';\r\nimport SelectAuthenticatorApp from './SelectAuthenticatorApp';\r\nimport ConnectAuthenticatorApp from './ConnectAuthenticatorApp';\r\nimport DisableAuthenticator from './DisableAuthenticator';\r\nimport VerifyEmailCode from './VerifyEmailCode';\r\nimport BackupCodes from './BackupCodes';\r\nimport PopupMFA from '../PopupMFA';\r\n\r\nexport enum MFA_STEP {\r\n SELECT_MFA_OPTION,\r\n SELECT_AUTHENTICATOR_APP,\r\n CONNECT_AUTHENTICATOR,\r\n VERIFY_AUTHENTICATOR_CODE,\r\n VERIFY_EMAIL_CODE,\r\n DISABLE_AUTHENTICATOR,\r\n BACKUP_CODES,\r\n ENTER_BACKUP_CODE,\r\n}\r\n\r\nexport interface ConfirmTwoFactorParam {\r\n confirmationToken: string;\r\n code: string;\r\n id: number;\r\n}\r\n\r\ninterface ModalManagerProps {\r\n isOpen: boolean;\r\n setIsOpen: (open: boolean) => void;\r\n modal?: MFA_STEP;\r\n setRefetch?: React.Dispatch<React.SetStateAction<boolean>>;\r\n enableTwoFactorService?: () => Promise<any>;\r\n disableMFAService?: () => Promise<any>;\r\n confirmTwoFactorService?: (param: ConfirmTwoFactorParam) => Promise<any>;\r\n}\r\n\r\nconst ModalManager = ({\r\n isOpen,\r\n setIsOpen,\r\n modal = MFA_STEP.SELECT_MFA_OPTION,\r\n setRefetch,\r\n enableTwoFactorService,\r\n disableMFAService,\r\n confirmTwoFactorService,\r\n}: ModalManagerProps) => {\r\n const [currentStep, setCurrentStep] = useState(modal);\r\n const [confirmationToken, setConfirmationToken] = useState<string>('');\r\n const [idOf2FA, setIdOf2FA] = useState();\r\n const [backupCodes, setBackupCodes] = useState('');\r\n\r\n function onClose() {\r\n setIsOpen(false);\r\n }\r\n\r\n // map step -> component\r\n const StepComponent = useMemo(() => {\r\n switch (currentStep) {\r\n case MFA_STEP.SELECT_MFA_OPTION:\r\n return SelectMFAMethod;\r\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\r\n return SelectAuthenticatorApp;\r\n case MFA_STEP.CONNECT_AUTHENTICATOR:\r\n return ConnectAuthenticatorApp;\r\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\r\n return VerifyAuthenticatorCode;\r\n case MFA_STEP.VERIFY_EMAIL_CODE:\r\n return VerifyEmailCode;\r\n case MFA_STEP.DISABLE_AUTHENTICATOR:\r\n return DisableAuthenticator;\r\n case MFA_STEP.BACKUP_CODES:\r\n return BackupCodes;\r\n\r\n default:\r\n return SelectMFAMethod;\r\n }\r\n }, [currentStep]);\r\n\r\n // map props per step\r\n const stepProps = useMemo(() => {\r\n switch (currentStep) {\r\n case MFA_STEP.SELECT_MFA_OPTION:\r\n return {\r\n onClose,\r\n setCurrentStep,\r\n setConfirmationToken,\r\n setRefetch,\r\n setIdOf2FA,\r\n enableTwoFactorService,\r\n disableMFAService,\r\n };\r\n case MFA_STEP.SELECT_AUTHENTICATOR_APP:\r\n return { onClose, setCurrentStep };\r\n case MFA_STEP.CONNECT_AUTHENTICATOR:\r\n return { onClose, setCurrentStep };\r\n case MFA_STEP.VERIFY_AUTHENTICATOR_CODE:\r\n return {\r\n onClose,\r\n setCurrentStep,\r\n setBackupCodes,\r\n setRefetch,\r\n confirmTwoFactorService,\r\n };\r\n case MFA_STEP.VERIFY_EMAIL_CODE:\r\n return {\r\n onClose,\r\n setCurrentStep,\r\n confirmationToken,\r\n setRefetch,\r\n idOf2FA,\r\n confirmTwoFactorService,\r\n };\r\n case MFA_STEP.DISABLE_AUTHENTICATOR:\r\n return { onClose, setRefetch, disableMFAService };\r\n case MFA_STEP.BACKUP_CODES:\r\n return { onClose, backupCodes };\r\n case MFA_STEP.ENTER_BACKUP_CODE:\r\n return { onClose, confirmationToken, setRefetch, idOf2FA };\r\n default:\r\n return { onClose };\r\n }\r\n }, [currentStep, confirmationToken, backupCodes]);\r\n\r\n return (\r\n <PopupMFA displayAddRuleModal={isOpen} onClose={onClose} hideFooter>\r\n <StepComponent {...stepProps} />\r\n </PopupMFA>\r\n );\r\n};\r\n\r\nexport default ModalManager;\r\n","import styled from 'styled-components';\r\nimport ArrowLeft from '../../assets/icons/arrow-left.svg?react';\r\n\r\nexport const PageBreadcrumbWrapper = styled.div`\r\n height: var(--size-800, 4rem);\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 0 1.5rem;\r\n\r\n button {\r\n border: none;\r\n outline: none;\r\n transition: 0.1s;\r\n }\r\n\r\n .icon {\r\n border-radius: 50%;\r\n width: 2rem;\r\n height: 2rem;\r\n padding: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: var(--color-bg-opaque-primary, rgba(20, 20, 20, 0.05));\r\n\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n }\r\n\r\n path {\r\n fill: var(--color-icon-primary, #131412);\r\n }\r\n }\r\n\r\n .page-starter {\r\n display: flex;\r\n gap: 0.12rem;\r\n }\r\n`;\r\n\r\nexport const BackButton = styled.div`\r\n cursor: pointer;\r\n`;\r\n\r\nexport const StyledArrowLeft = styled(ArrowLeft)`\r\n width: 10.943px !important;\r\n height: 8.552px !important;\r\n\r\n path {\r\n fill: var(--color-icon-primary, #131412) !important;\r\n }\r\n`;\r\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';\r\nimport { StyledBreadcrumb } from '../../styled-components/breadcrumb';\r\nimport type { PageBreadcrumbProps } from './types';\r\nimport { useNavigate } from 'react-router';\r\n\r\nconst PageBreadcrumb = ({\r\n breadcrumbItems,\r\n logo,\r\n button,\r\n className,\r\n backButton = <StyledArrowLeft />,\r\n}: PageBreadcrumbProps) => {\r\n const navigate = useNavigate();\r\n return (\r\n <PageBreadcrumbWrapper className={className || ''}>\r\n <div className=\"page-starter\">\r\n {logo ? (\r\n <div className=\"icon\">{logo}</div>\r\n ) : (\r\n <BackButton className=\"icon\" onClick={() => navigate(-1)}>\r\n {backButton}\r\n </BackButton>\r\n )}\r\n <StyledBreadcrumb items={breadcrumbItems} />\r\n </div>\r\n <div>{button && button}</div>\r\n </PageBreadcrumbWrapper>\r\n );\r\n};\r\n\r\nexport default PageBreadcrumb;\r\n","export enum MfaType {\r\n None = 1,\r\n OTP = 2,\r\n TOTP = 3,\r\n BackupCode = 4,\r\n}\r\nexport const ModalText: any = {\r\n [MfaType.None]: '',\r\n [MfaType.OTP]: 'OtpDesc',\r\n [MfaType.TOTP]: 'TotpDesc',\r\n [MfaType.BackupCode]: 'TotpDesc',\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\r\nimport {\r\n CancelModalButton,\r\n ContentContainer,\r\n LabelText,\r\n PopupFooterContainer,\r\n} from '../modal-host/TablePopup.style';\r\nimport { MFAPopupHeader } from '../popup-mfa/mfa-all-popups/style';\r\nimport { ButtonsWrapper, ButtonWithArrow } from './style';\r\nimport { MfaType } from './constants';\r\n\r\nconst SelectOtherMethod = ({\r\n onCancel,\r\n getMFAOptions,\r\n onSelectMethod,\r\n}: {\r\n onCancel: () => void;\r\n getMFAOptions: () => Promise<{ data: { success: boolean; value: { availableMfaTypes: number[] } } }>;\r\n onSelectMethod: (type: MfaType) => void;\r\n}) => {\r\n const mfaTypeLabels: Record<MfaType, string> = {\r\n [MfaType.None]: tGeneral('None'),\r\n [MfaType.OTP]: tGeneral('Email'),\r\n [MfaType.TOTP]: tAuthentication('AuthenticatorApp'),\r\n [MfaType.BackupCode]: tAuthentication('BackupCode'),\r\n };\r\n\r\n const [availableOptions, setAvailableOptions] = useState<number[]>([]);\r\n useEffect(() => {\r\n getOptions();\r\n }, []);\r\n\r\n async function getOptions() {\r\n try {\r\n const resp = await getMFAOptions();\r\n if (resp.data.success) {\r\n setAvailableOptions(resp.data.value.availableMfaTypes);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('ChooseTwoFactorMethod')}\r\n <LabelText>{tAuthentication('SetupTwoFactorAuthenticationDesc')}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n {availableOptions.map(type => (\r\n <ButtonsWrapper key={type}>\r\n <PopupFooterContainer>\r\n <CancelModalButton onClick={() => onSelectMethod(type as MfaType)}>\r\n <ButtonWithArrow>\r\n <span>{mfaTypeLabels[type as MfaType]}</span>\r\n <ArrowRightIcon />\r\n </ButtonWithArrow>\r\n </CancelModalButton>\r\n </PopupFooterContainer>\r\n </ButtonsWrapper>\r\n ))}\r\n <ButtonsWrapper>\r\n <ButtonWithArrow onClick={onCancel}>\r\n <CancelModalButton>{tActions('Cancel')}</CancelModalButton>\r\n </ButtonWithArrow>\r\n </ButtonsWrapper>\r\n </>\r\n );\r\n};\r\n\r\nexport default SelectOtherMethod;\r\n","import { Input, Spin } from 'antd';\r\nimport { useEffect, useState } from 'react';\r\nimport {\r\n CancelModalButton,\r\n ContentContainer,\r\n CreateModalButton,\r\n GeneralInput,\r\n LabelText,\r\n Popup,\r\n} from '../modal-host/TablePopup.style';\r\nimport { BackupSpan, ButtonsWrapper, ButtonWithArrow, VerificationWrapper } from './style';\r\nimport { MFAPopupHeader, SpinWrapper } from '../popup-mfa/mfa-all-popups/style';\r\nimport { MfaType, ModalText } from './constants';\r\nimport useModalStore from '../../stores/useModalStore';\r\nimport ErrorSvg from '../../assets/icons/error.svg?react';\r\nimport { parseServerErrors } from '../../utils/errors';\r\nimport { ArrowRightIcon } from '../../styled-components/rightArrow';\r\nimport { tActions, tAuthentication, tGeneral } from '../../utils/exportTranslation';\r\nimport SelectOtherMethod from './SelectOtherMethod';\r\n\r\ntype TwoFactorPopupPropType = {\r\n confirmTwoFactor: any;\r\n confirmationToken: string;\r\n getMFAOptions: () => Promise<{ data: { success: boolean; value: { availableMfaTypes: number[] } } }>;\r\n updatedResponse?: any;\r\n setVisible: (visible: boolean) => void;\r\n visible: boolean;\r\n resendOTP: any;\r\n setRefetchData?: any;\r\n mfaType?: MfaType;\r\n backupCodeEndpoint?: any;\r\n id: any;\r\n sentMessage?: string;\r\n};\r\n\r\nconst TwoFactorPopup = ({\r\n confirmTwoFactor,\r\n confirmationToken,\r\n updatedResponse,\r\n getMFAOptions,\r\n resendOTP,\r\n mfaType = MfaType.None,\r\n id,\r\n setRefetchData,\r\n setVisible,\r\n backupCodeEndpoint,\r\n visible,\r\n sentMessage,\r\n}: TwoFactorPopupPropType) => {\r\n const [otpValue, setOtpValue] = useState('');\r\n const [resendDisabled, setResendDisabled] = useState(true);\r\n const [timeLeft, setTimeLeft] = useState(60);\r\n const [showSelectOtherMethod, setShowSelectOtherMethod] = useState(false);\r\n const [selectedMfaType, setSelectedMfaType] = useState<MfaType>(mfaType);\r\n const [errors, setErrors] = useState<{ name: string; errors: string[] }[]>([]);\r\n const [step, setStep] = useState<'form' | 'sent'>('form');\r\n const { close } = useModalStore();\r\n\r\n function handleSelectMethod(type: MfaType) {\r\n setSelectedMfaType(type);\r\n console.log(type, 'type');\r\n setShowSelectOtherMethod(false);\r\n }\r\n\r\n async function onSave() {\r\n if (!otpValue) return;\r\n try {\r\n const endpoint =\r\n selectedMfaType === MfaType.BackupCode ? backupCodeEndpoint : confirmTwoFactor;\r\n const resp = await endpoint({\r\n confirmationToken,\r\n code: otpValue,\r\n id,\r\n mfaType: selectedMfaType,\r\n });\r\n if (resp?.data?.success) {\r\n setRefetchData?.((prev: boolean) => !prev);\r\n if (sentMessage) {\r\n setStep('sent');\r\n } else {\r\n setVisible(false);\r\n close();\r\n }\r\n }\r\n } catch (error: any) {\r\n setErrors(parseServerErrors(error?.response?.data?.errors));\r\n }\r\n }\r\n\r\n async function handleResendOTP() {\r\n try {\r\n const resp = await resendOTP(confirmationToken, id);\r\n if (resp.data.success) {\r\n updatedResponse(resp);\r\n setResendDisabled(true);\r\n setTimeLeft(60);\r\n }\r\n } catch (err) {\r\n console.log('Error in OTP resend', err);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!resendDisabled) return;\r\n\r\n const interval = setInterval(() => {\r\n setTimeLeft(prev => {\r\n if (prev <= 1) {\r\n clearInterval(interval);\r\n setResendDisabled(false);\r\n return 0;\r\n }\r\n return prev - 1;\r\n });\r\n }, 1000);\r\n\r\n return () => clearInterval(interval);\r\n }, [resendDisabled]);\r\n\r\n return (\r\n <Popup open={visible} onCancel={() => setVisible(false)} footer={null}>\r\n {step === 'sent' ? (\r\n <div>\r\n <VerificationWrapper>\r\n <span>{sentMessage}</span>\r\n </VerificationWrapper>\r\n <ButtonsWrapper>\r\n <CreateModalButton\r\n onClick={() => {\r\n setVisible(false);\r\n close();\r\n }}\r\n >\r\n <ButtonWithArrow>\r\n <span>{tActions('Done')}</span>\r\n <ArrowRightIcon />\r\n </ButtonWithArrow>\r\n </CreateModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n ) : confirmationToken ? (\r\n !showSelectOtherMethod ? (\r\n <div>\r\n <ContentContainer>\r\n <MFAPopupHeader>\r\n {tAuthentication('EnterVerificationCode')}\r\n <LabelText>{tAuthentication(ModalText[selectedMfaType])}</LabelText>\r\n </MFAPopupHeader>\r\n </ContentContainer>\r\n <VerificationWrapper\r\n className={errors.length > 0 ? 'verification-error' : ''}\r\n >\r\n {selectedMfaType === MfaType.BackupCode ? (\r\n <GeneralInput\r\n value={otpValue}\r\n onChange={(e: any) => setOtpValue(e.target.value)}\r\n placeholder=\"xxxx-xxxx-xxxx\"\r\n />\r\n ) : (\r\n <Input.OTP value={otpValue} onChange={setOtpValue} />\r\n )}\r\n {errors.map(error => (\r\n <span key={error.name}>\r\n <ErrorSvg />\r\n {error.errors[0]}\r\n </span>\r\n ))}\r\n <span>\r\n Having trouble?\r\n <BackupSpan onClick={() => setShowSelectOtherMethod(true)}>\r\n Try other method\r\n </BackupSpan>\r\n </span>\r\n </VerificationWrapper>\r\n\r\n <ButtonsWrapper>\r\n {selectedMfaType === MfaType.OTP && (\r\n <CancelModalButton\r\n disabled={resendDisabled}\r\n onClick={handleResendOTP}\r\n >\r\n {resendDisabled\r\n ? `${tAuthentication('ResendAvailable')} ${timeLeft} ${tGeneral('Second')}`\r\n : tAuthentication('Resend')}\r\n </CancelModalButton>\r\n )}\r\n\r\n <CreateModalButton\r\n onClick={onSave}\r\n disabled={\r\n otpValue.length !== 6 &&\r\n selectedMfaType !== MfaType.TOTP &&\r\n selectedMfaType !== MfaType.BackupCode\r\n }\r\n >\r\n <ButtonWithArrow>\r\n <span>{tActions('Continue')}</span>\r\n <ArrowRightIcon />\r\n </ButtonWithArrow>\r\n </CreateModalButton>\r\n </ButtonsWrapper>\r\n </div>\r\n ) : (\r\n <SelectOtherMethod\r\n onCancel={() => setVisible(false)}\r\n getMFAOptions={getMFAOptions}\r\n onSelectMethod={handleSelectMethod}\r\n />\r\n )\r\n ) : (\r\n <SpinWrapper>\r\n <Spin />\r\n </SpinWrapper>\r\n )}\r\n </Popup>\r\n );\r\n};\r\n\r\nexport default TwoFactorPopup;\r\n","import styled from 'styled-components';\r\n\r\nexport const ChartWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n","import { useEffect } from 'react';\r\nimport * as echarts from 'echarts';\r\nimport { ChartWrapper } from './style';\r\n\r\nconst Chart = ({ option }: any) => {\r\n useEffect(() => {\r\n const chartDom = document.getElementById('my-chart');\r\n const chartInstance = echarts.init(chartDom);\r\n\r\n chartInstance.setOption(option);\r\n\r\n const resizeHandler = () => chartInstance.resize();\r\n window.addEventListener('resize', resizeHandler, { passive: true, capture: true });\r\n\r\n return () => {\r\n window.removeEventListener('resize', resizeHandler);\r\n chartInstance.dispose();\r\n };\r\n }, [option]);\r\n\r\n return <ChartWrapper id=\"my-chart\" />;\r\n};\r\n\r\nexport default Chart;\r\n","import { Spin } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\ninterface SpinnerProps {\r\n backgroundcolor: any;\r\n}\r\n\r\nexport const SpinnerWrapper = styled.div<SpinnerProps>`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100vh;\r\n background-color: ${(props: any) => props.backgroundcolor};\r\n`;\r\n\r\nexport const StyledSpin = styled(Spin)<SpinnerProps>`\r\n .ant-spin-dot-item {\r\n background-color: ${(props: any) => props.backgroundcolor};\r\n }\r\n`;\r\n","import { StyledSpin } from './style';\r\n\r\nconst Spinner = ({ backgroundcolor }: any) => {\r\n return (\r\n <div>\r\n <StyledSpin size=\"large\" backgroundcolor={backgroundcolor} />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Spinner;\r\n","import styled, { keyframes } from 'styled-components';\r\n\r\ninterface SkeletonContentLine {\r\n width?: string;\r\n}\r\n\r\ninterface SkeletonSubtitleProps {\r\n width?: string;\r\n height?: string;\r\n marginbottom?: string;\r\n}\r\n\r\nexport const Wrapper = styled.div`\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: var(--color-overlay-primary, rgba(20, 20, 20, 0.8));\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 99;\r\n div {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.25rem;\r\n }\r\n\r\n h2 {\r\n font-family: var(--text-font-family-base, Geist);\r\n color: #fff;\r\n text-align: center;\r\n font-weight: var(--text-weight-medium, 500);\r\n font-size: 1.5rem;\r\n }\r\n\r\n p {\r\n font-family: var(--text-font-family-base, Geist);\r\n color: rgba(255, 255, 255, 0.75);\r\n text-align: center;\r\n font-style: normal;\r\n font-weight: 400;\r\n font-size: 1.125rem;\r\n max-width: 25rem;\r\n }\r\n`;\r\n\r\nconst shimmer = keyframes`\r\n 0% {\r\n opacity: 90%;\r\n }\r\n 50% {\r\n opacity: 100%;\r\n }\r\n 100% {\r\n opacity: 90%;\r\n }\r\n`;\r\n\r\nexport const SkeletonBase = styled.div`\r\n background: #282828; /* Dark base color */\r\n border-radius: 4px;\r\n background-size: 1000px 100%;\r\n animation: ${shimmer} 1.5s infinite linear;\r\n background: var(--color-interaction-press-primary, rgba(20, 20, 20, 0.1));\r\n`;\r\n\r\nexport const SkeletonHeader = styled(SkeletonBase)`\r\n width: 70%; /* Mimics the main title area */\r\n height: 20px;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nexport const SkeletonSubtitle = styled(SkeletonBase)<SkeletonSubtitleProps>`\r\n width: ${(props: any) => props.width};\r\n height: ${(props: any) => props.height};\r\n margin-bottom: ${(props: any) => props.marginbottom};\r\n`;\r\n\r\nexport const SkeletonBox = styled(SkeletonBase)`\r\n flex-grow: 1;\r\n height: 130px;\r\n margin: 0 1px;\r\n background: var(--color-bg-secondary, #f5f5f5);\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n animation: unset;\r\n`;\r\n\r\nexport const SkeletonRow = styled.div`\r\n display: flex;\r\n margin-bottom: 2px;\r\n justify-content: space-between;\r\n margin-top: auto;\r\n ${SkeletonBox}:first-child {\r\n margin-left: 0;\r\n }\r\n ${SkeletonBox}:last-child {\r\n margin-right: 0;\r\n }\r\n`;\r\n\r\nexport const Container = styled.div`\r\n padding: 20px;\r\n overflow-y: hidden;\r\n height: 100vh;\r\n position: relative;\r\n background: var(--color-bg-primary, #fff);\r\n`;\r\n\r\nexport const SkeletonChipRow = styled.div`\r\n display: flex;\r\n width: fit-content;\r\n gap: 2rem;\r\n background: var(--color-bg-secondary, #232323);\r\n padding: 0.5rem;\r\n margin-top: 3rem;\r\n margin-bottom: 1.5rem;\r\n`;\r\n\r\nexport const SkeletonChip = styled(SkeletonBase)`\r\n width: 4rem;\r\n height: 1rem;\r\n border-radius: 5px;\r\n`;\r\n\r\nexport const SkeletonContentLine = styled(SkeletonBase)<SkeletonContentLine>`\r\n width: ${(props: any) => props.width || '100%'};\r\n height: 20px;\r\n margin-bottom: 8px;\r\n`;\r\n\r\nexport const BigBox = styled.div`\r\n border-radius: 2px;\r\n background: var(--color-bg-secondary, #232323);\r\n height: 40rem;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 1rem;\r\n margin-bottom: 2px;\r\n`;\r\n","import { tComingSoon } from '../../utils/exportTranslation';\r\nimport {\r\n BigBox,\r\n Container,\r\n SkeletonBox,\r\n SkeletonChip,\r\n SkeletonChipRow,\r\n SkeletonContentLine,\r\n SkeletonHeader,\r\n SkeletonRow,\r\n SkeletonSubtitle,\r\n Wrapper,\r\n} from './style';\r\n\r\nconst SkeletonCardContent = () => (\r\n <>\r\n <SkeletonContentLine width={'80%'} />\r\n\r\n <SkeletonContentLine width={'60%'} />\r\n </>\r\n);\r\n\r\nconst ComingSoon = () => {\r\n return (\r\n <Container>\r\n <Wrapper>\r\n <div>\r\n <h2>{tComingSoon('ComingSoon')}</h2>\r\n\r\n <p>{tComingSoon('ComingSoonDesc')}</p>\r\n </div>\r\n </Wrapper>\r\n\r\n <SkeletonHeader />\r\n\r\n <SkeletonSubtitle />\r\n\r\n <SkeletonChipRow>\r\n {[...Array(7)].map((_, i) => (\r\n <SkeletonChip key={i} />\r\n ))}\r\n </SkeletonChipRow>\r\n\r\n <SkeletonRow>\r\n {[...Array(5)].map((_, i) => (\r\n <SkeletonBox key={i}>\r\n <SkeletonCardContent />\r\n </SkeletonBox>\r\n ))}\r\n </SkeletonRow>\r\n\r\n <BigBox>\r\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'10px'} />\r\n\r\n <SkeletonSubtitle width={'20%'} height={'18px'} marginbottom={'20px'} />\r\n\r\n <SkeletonRow>\r\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\r\n\r\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\r\n\r\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10'} />\r\n\r\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\r\n\r\n <SkeletonSubtitle width={'120%'} height={'18px'} marginbottom={'10'} />\r\n\r\n <SkeletonSubtitle width={'12%'} height={'18px'} marginbottom={'10px'} />\r\n </SkeletonRow>\r\n </BigBox>\r\n\r\n <SkeletonRow>\r\n {[...Array(5)].map((_, i) => (\r\n <SkeletonBox key={i}>\r\n <SkeletonCardContent />\r\n </SkeletonBox>\r\n ))}\r\n </SkeletonRow>\r\n </Container>\r\n );\r\n};\r\nexport default ComingSoon;\r\n","import { Table } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const CustomTable = 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 border-start-start-radius: 0px !important;\r\n }\r\n\r\n .ant-table-tbody > tr:hover > td {\r\n background: inherit !important;\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-table-tbody > tr {\r\n background: var(--color-bg-secondary);\r\n color: var(--color-text-primary, #131412);\r\n }\r\n &:where(.css-dev-only-do-not-override-vrrzze).ant-table-wrapper\r\n .ant-table-tbody\r\n .ant-table-row\r\n > .ant-table-cell-row-hover {\r\n background-color: transparent !important;\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 // this disables the right column seperator on headers\r\n .ant-table-thead > tr > th::before {\r\n display: none !important;\r\n }\r\n\r\n .ant-table-tbody > tr > 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 }\r\n\r\n .ant-table-expanded-row > .ant-table-cell {\r\n padding: 24px;\r\n border-bottom: 1px solid var(--color-border-primary, #f5f5f5);\r\n }\r\n\r\n .arrow-svg {\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-icon-primary, #fff);\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n\r\n .active-svg-closemark {\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-status-error);\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n\r\n .active-svg-checkmark {\r\n svg {\r\n width: 1rem;\r\n height: 1rem;\r\n path {\r\n fill: var(--color-text-status-success);\r\n transition: 0.1s;\r\n }\r\n }\r\n }\r\n`;\r\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';\r\nimport ChevronDown from '../../assets/icons/chevron-down.svg?react';\r\nimport ChevronUp from '../../assets/icons/chevron-up.svg?react';\r\nimport { useEffect, useState } from 'react';\r\nimport type { ColumnsType, TablePaginationConfig } from 'antd/es/table';\r\nimport { Empty } from 'antd';\r\nimport { tNoData } from '../../utils/exportTranslation';\r\n\r\ninterface ExpandableTableProps<T = Record<string, unknown>> {\r\n rowKey: string | number | any;\r\n CustomExpandableRow: React.ComponentType<Record<string, unknown>>;\r\n // Support both GridView's 'columns' and standalone 'dataTableColumns'\r\n columns?: ColumnsType<T>;\r\n dataTableColumns?: ColumnsType<T>;\r\n dataSource: any;\r\n expandableRowProps?: Record<string, unknown>;\r\n expandedRows?: string[];\r\n setExpandedRow?: (rows: string[]) => void;\r\n loading?: boolean;\r\n pagination?: TablePaginationConfig | false;\r\n}\r\n\r\nconst ExpandableTable = ({\r\n rowKey,\r\n CustomExpandableRow,\r\n columns,\r\n dataTableColumns,\r\n dataSource,\r\n expandableRowProps,\r\n expandedRows,\r\n setExpandedRow,\r\n loading,\r\n pagination,\r\n}: ExpandableTableProps) => {\r\n const [expandedRowKeys, setExpandedRowKeys] = useState<any>([]);\r\n\r\n // Support both prop names for compatibility\r\n const tableColumns = columns || dataTableColumns;\r\n useEffect(() => {\r\n if (expandedRows && expandedRows.length > 0) {\r\n setExpandedRowKeys((prev: any) => [...expandedRows, ...prev]);\r\n }\r\n }, [expandedRows]);\r\n\r\n function handleExpandedRowsChange(arr: any) {\r\n setExpandedRowKeys(arr);\r\n setExpandedRow && setExpandedRow([]);\r\n }\r\n\r\n return (\r\n <CustomTable\r\n rowKey={rowKey || 'id'}\r\n pagination={pagination}\r\n scroll={{ x: 1500 }}\r\n locale={{\r\n emptyText: <Empty description={tNoData('NoData')} />,\r\n }}\r\n loading={loading}\r\n columns={tableColumns as ColumnsType<unknown>}\r\n expandedRowKeys={expandedRowKeys}\r\n onExpandedRowsChange={handleExpandedRowsChange}\r\n expandable={{\r\n expandedRowRender: record => (\r\n <CustomExpandableRow {...expandableRowProps} record={record} />\r\n ),\r\n expandIcon: ({ expanded }) => (\r\n <>\r\n {expanded ? (\r\n <span className=\"arrow-svg\">\r\n <ChevronUp />\r\n </span>\r\n ) : (\r\n <span className=\"arrow-svg\">\r\n <ChevronDown />\r\n </span>\r\n )}\r\n </>\r\n ),\r\n expandRowByClick: true,\r\n }}\r\n dataSource={dataSource}\r\n />\r\n );\r\n};\r\n\r\nexport default ExpandableTable;\r\n","import { Tabs } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledDateRangeFilterTabs = styled(Tabs)`\r\n display: flex;\r\n gap: var(--spacing-025, 2px);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 .ant-tabs-tab {\r\n margin: 0 !important;\r\n border-radius: 0 !important;\r\n border: none !important;\r\n .ant-tabs-tab-btn {\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-style: normal;\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\r\n border-radius: var(--border-radius-025, 2px);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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\r\n transition: color 0.2s;\r\n\r\n &:hover,\r\n &:focus {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n }\r\n\r\n &.ant-tabs-tab-active {\r\n background: var(--color-bg-inverse-primary, #141414) !important;\r\n\r\n .ant-tabs-tab-btn {\r\n color: var(--color-text-inverse-primary, #131412) !important;\r\n\r\n &:hover,\r\n &:focus {\r\n color: var(--color-text-inverse-primary, #131412) !important;\r\n }\r\n }\r\n }\r\n @media (max-width: 1080px) {\r\n display: none !important;\r\n }\r\n }\r\n .ant-tabs-nav {\r\n margin: 0;\r\n\r\n &::before {\r\n display: none;\r\n }\r\n }\r\n\r\n .ant-tabs-ink-bar {\r\n display: none;\r\n }\r\n\r\n .ant-tabs-nav-list {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-secondary);\r\n }\r\n\r\n .ant-tabs-nav-more {\r\n display: none !important;\r\n }\r\n\r\n .ant-tabs-nav-add {\r\n background-color: #f0f0f0;\r\n border: none !important;\r\n path {\r\n fill: var(--color-icon-primary, #fff);\r\n }\r\n }\r\n`;\r\n\r\nexport const TabBarExtraContentIconWrapper = styled.div`\r\n display: flex;\r\n height: var(--size-400, 32px);\r\n padding: 0 var(--spacing-100, 8px);\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\r\n backdrop-filter: blur(calc(var(--blur-size-200, 16px) / 2));\r\n cursor: pointer;\r\n\r\n &.space {\r\n display: flex;\r\n gap: 5px;\r\n }\r\n`;\r\n\r\nexport const TabsCustomDateFilterWrapper = styled.div`\r\n position: relative;\r\n @media (min-width: 1080px) {\r\n .tab-select {\r\n display: none;\r\n }\r\n }\r\n`;\r\nexport const CustomDateFilterWrapper = styled.div`\r\n position: absolute;\r\n left: 20px;\r\n top: 10px;\r\n z-index: 1000;\r\n`;\r\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';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport HttpApi from 'i18next-http-backend';\r\n\r\ni18n.use(HttpApi)\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: 'en',\r\n supportedLngs: ['en', 'ka'],\r\n debug: false,\r\n backend: {\r\n loadPath: '/locales/langs/{{lng}}.json',\r\n },\r\n detection: {\r\n order: ['localStorage'],\r\n lookupLocalStorage: 'Language',\r\n caches: ['localStorage'],\r\n },\r\n interpolation: { escapeValue: false },\r\n });\r\nexport default i18n;\r\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';\r\nimport { StyledRangePicker } from '../../../modules/GridViewPage/style';\r\nimport { DateHelper } from '../../../utils/DateHelper';\r\nimport dayjs from 'dayjs';\r\nimport { tMonths, tWeekDays } from '../../../utils/exportTranslation';\r\n\r\nconst CustomDateRangePicker = ({ setDateFilter, setShowRange, setDates }: any) => {\r\n const disabledDate = (current: any) => {\r\n return current && current > dayjs().endOf('day');\r\n };\r\n\r\n const handleRangeChange = (values: any) => {\r\n if (values && values[0] && values[1]) {\r\n const startDate = DateHelper.toISODateString(values[0].toDate());\r\n const endDate = DateHelper.toISODateString(values[1].toDate());\r\n\r\n setDates([startDate, endDate]);\r\n setDateFilter((prev: any) => ({\r\n ...prev,\r\n startDate,\r\n endDate,\r\n }));\r\n\r\n setShowRange(false);\r\n }\r\n };\r\n\r\n const headerLocale = {\r\n lang: {\r\n locale: i18n.language,\r\n shortMonths: [\r\n tMonths('0'),\r\n tMonths('1'),\r\n tMonths('2'),\r\n tMonths('3'),\r\n tMonths('4'),\r\n tMonths('5'),\r\n tMonths('6'),\r\n tMonths('7'),\r\n tMonths('8'),\r\n tMonths('9'),\r\n tMonths('10'),\r\n tMonths('11'),\r\n ],\r\n shortWeekDays: [\r\n tWeekDays('Sun'),\r\n tWeekDays('Mon'),\r\n tWeekDays('Tue'),\r\n tWeekDays('Wed'),\r\n tWeekDays('Thu'),\r\n tWeekDays('Fri'),\r\n tWeekDays('Sat'),\r\n ],\r\n },\r\n };\r\n\r\n return (\r\n <StyledRangePicker\r\n dropdownClassName=\"date-picker-column-style\"\r\n locale={headerLocale as any}\r\n open={true}\r\n allowClear\r\n format=\"MMM D, YYYY\"\r\n placeholder={['From', 'To']}\r\n getPopupContainer={triggerNode =>\r\n triggerNode?.parentElement?.parentElement ?? document.body\r\n }\r\n onOpenChange={open => {\r\n if (!open) {\r\n setShowRange(false);\r\n }\r\n }}\r\n onChange={e => handleRangeChange(e)}\r\n disabledDate={disabledDate}\r\n />\r\n );\r\n};\r\n\r\nexport default CustomDateRangePicker;\r\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';\r\nimport {\r\n CustomDateFilterWrapper,\r\n StyledDateRangeFilterTabs,\r\n TabsCustomDateFilterWrapper,\r\n} from './style';\r\nimport { DateHelper } from '../../utils/DateHelper';\r\nimport CustomDateRangePicker from './date-picker';\r\nimport { tDate, tGeneral } from '../../utils/exportTranslation';\r\nimport { StyledSelect } from '../../styled-components';\r\n\r\ninterface TabItem {\r\n key: string;\r\n label: string;\r\n startDate: string;\r\n endDate: string;\r\n}\r\n\r\ninterface DateRangeFilterTabsProps {\r\n setDateFilters: React.Dispatch<React.SetStateAction<any>>;\r\n hasAllFilter?: boolean;\r\n}\r\n\r\nconst DateRangeFilterTabs = ({\r\n setDateFilters,\r\n hasAllFilter = false,\r\n}: DateRangeFilterTabsProps) => {\r\n const [dates, setDates] = useState([]);\r\n\r\n const TabItems: TabItem[] = [\r\n { key: 'week', label: tDate('7D'), ...DateHelper.getCommonDateRange('week') },\r\n { key: 'month', label: tDate('30D'), ...DateHelper.getCommonDateRange('month') },\r\n { key: 'threeMonth', label: tDate('3M'), ...DateHelper.getCommonDateRange('threeMonth') },\r\n { key: 'sixMonth', label: tDate('6M'), ...DateHelper.getCommonDateRange('sixMonth') },\r\n {\r\n key: 'twelveMonth',\r\n label: tDate('12M'),\r\n ...DateHelper.getCommonDateRange('twelveMonth'),\r\n },\r\n { key: 'year', label: tDate('YTD'), ...DateHelper.getCommonDateRange('year') },\r\n {\r\n key: 'custom',\r\n label:\r\n dates.length === 2 && dates[0] !== ''\r\n ? `${tGeneral('Custom')}: ${dates[0]} / ${dates[1]}`\r\n : tGeneral('Custom'),\r\n ...DateHelper.getCommonDateRange('custom'),\r\n },\r\n ];\r\n\r\n const [showRange, setShowRange] = useState<boolean>();\r\n\r\n const tabItems = useMemo(() => {\r\n if (hasAllFilter) {\r\n return [\r\n { key: 'all', label: tGeneral('All'), ...DateHelper.getCommonDateRange('all') },\r\n ...TabItems,\r\n ];\r\n } else {\r\n return TabItems;\r\n }\r\n }, [hasAllFilter, dates]);\r\n\r\n function handleTabClick(tab: any) {\r\n if (tab === 'custom') {\r\n setShowRange(true);\r\n } else {\r\n setShowRange(false);\r\n const foundTab = tabItems.find(each => each.key === tab);\r\n if (foundTab) {\r\n setDateFilters((prev: any) => ({\r\n ...prev,\r\n startDate: foundTab.startDate,\r\n endDate: foundTab.endDate,\r\n }));\r\n }\r\n }\r\n return tab;\r\n }\r\n return (\r\n <TabsCustomDateFilterWrapper id=\"tabs-container\">\r\n <StyledDateRangeFilterTabs\r\n type=\"editable-card\"\r\n items={tabItems}\r\n onTabClick={handleTabClick}\r\n activeKey={showRange ? 'custom' : undefined}\r\n removeIcon={true}\r\n hideAdd={true}\r\n />\r\n\r\n {showRange && (\r\n <CustomDateFilterWrapper>\r\n <CustomDateRangePicker\r\n setDates={setDates}\r\n setDateFilter={setDateFilters}\r\n setShowRange={setShowRange}\r\n getPopupContainer={() => document.getElementById('tabs-container')!}\r\n />\r\n </CustomDateFilterWrapper>\r\n )}\r\n <StyledSelect\r\n className=\"tab-select\"\r\n $width=\"200px\"\r\n placeholder={tGeneral('Choose')}\r\n getPopupContainer={(triggerNode: any) => triggerNode.parentElement}\r\n onChange={handleTabClick}\r\n options={tabItems.map(item => ({\r\n value: item.key,\r\n label: item.label,\r\n }))}\r\n />\r\n </TabsCustomDateFilterWrapper>\r\n );\r\n};\r\n\r\nexport default DateRangeFilterTabs;\r\n","import styled from 'styled-components';\r\n\r\nexport const StyledDropdownContainer = styled.div`\r\n .ant-dropdown-menu {\r\n border-radius: 2px !important;\r\n background: var(--color-bg-quaternary, #2f2f2f) !important;\r\n width: 150px !important;\r\n padding: 0 !important;\r\n }\r\n\r\n .ant-dropdown-menu-item {\r\n padding: 0 !important; /* რომ შიდა კონტენტი გაიწელოს */\r\n\r\n &:hover {\r\n background-color: rgba(255, 255, 255, 0.05) !important;\r\n }\r\n }\r\n\r\n .ant-dropdown-menu-title-content {\r\n color: var(--color-text-primary, #fff) !important;\r\n font-family: Geist;\r\n font-size: var(--typo-caption-size-medium, 14px);\r\n font-weight: 400;\r\n line-height: var(--typo-caption-lineHeight-medium, 18px);\r\n letter-spacing: var(--typo-caption-spacing-medium, 0.1px);\r\n padding: 8px 12px; /* აქ დაარეგულირე შიდა დაშორება */\r\n display: block;\r\n }\r\n`;\r\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';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledDropdown = styled(Dropdown)`\r\n background: var(--color-bg-secondary, #f0ededff) !important;\r\n font-size: 14px;\r\n font-weight: 500;\r\n\r\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\r\n padding: 10px 14px !important;\r\n border-radius: 8px !important;\r\n background: #000 !important;\r\n\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: var(--color-text-primary, #000000ff) !important;\r\n }\r\n`;\r\nexport const StyledButton = styled.div`\r\n background-color: red;\r\n padding: 5px;\r\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\r\n color: var(--color-text-primary, #fff);\r\n cursor: pointer;\r\n`;\r\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\r\nimport { ExportCsvFunction, ExportXlsxFunction } from '../../utils/export-reports';\r\nimport { tGeneral } from '../../utils/exportTranslation';\r\nimport { StyledButton, StyledDropdown } from './style';\r\n\r\ntype ExcelExportProps = {\r\n exportFileName: string;\r\n filters: any;\r\n service: any;\r\n};\r\n\r\nconst ExcelExport = ({ exportFileName, filters, service }: ExcelExportProps) => {\r\n const onExportClick = async (type: any) => {\r\n try {\r\n const { PageSize, Page, ...filtersWithoutPageAndPageSize }: any = filters;\r\n\r\n const resp = await service(filtersWithoutPageAndPageSize, type);\r\n\r\n const blob = resp.data;\r\n\r\n if (type === 'xlsx') {\r\n ExportXlsxFunction(blob, `${exportFileName}.${type}`);\r\n } else {\r\n ExportCsvFunction(blob, `${exportFileName}`);\r\n }\r\n } catch (error) {\r\n console.error('Export failed:', error);\r\n }\r\n };\r\n\r\n const items: any = [\r\n {\r\n key: '1',\r\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\r\n onClick: () => onExportClick('xlsx'),\r\n },\r\n {\r\n key: '2',\r\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\r\n onClick: () => onExportClick('csv'),\r\n },\r\n ];\r\n return (\r\n <StyledDropdown\r\n menu={{\r\n items,\r\n className: 'dropdown-menu',\r\n }}\r\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\r\n placement=\"bottomLeft\"\r\n >\r\n <StyledButton>{tGeneral('Export')}</StyledButton>\r\n </StyledDropdown>\r\n );\r\n};\r\n\r\nexport default ExcelExport;\r\n","export const exportSelectedToCSV = (\r\n tableData: any[],\r\n checked: { [key: number]: boolean },\r\n fileName: any\r\n) => {\r\n const selectedRows = tableData.filter(row => checked[row.id]);\r\n\r\n const headers = Object.keys(selectedRows[0]);\r\n\r\n const rows = selectedRows.map(row => {\r\n return headers.map(key => {\r\n const value = row[key];\r\n\r\n if (value === null || value === undefined) return '';\r\n if (typeof value === 'object') {\r\n const flat = Object.values(value).find(v => typeof v !== 'object');\r\n return flat ?? '';\r\n }\r\n return value;\r\n });\r\n });\r\n\r\n const csvArray = [headers, ...rows]\r\n .map(row =>\r\n row.map((cell: any) => `\"${(cell || '').toString().replace(/\"/g, '\"\"')}\"`).join(',')\r\n )\r\n .join('\\r\\n');\r\n\r\n const BOM = '\\uFEFF';\r\n const blob = new Blob([BOM + csvArray], { type: 'text/csv;charset=utf-8;' });\r\n\r\n const link = document.createElement('a');\r\n const url = URL.createObjectURL(blob);\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n};\r\n","import * as XLSX from 'xlsx';\r\n\r\nexport const exportSelectedToXLSX = (\r\n tableData: any[],\r\n checked: { [key: number]: boolean },\r\n fileName: any\r\n) => {\r\n const selectedRows = tableData.filter(row => checked[row.id]);\r\n\r\n const simplifiedData = selectedRows.map(row => {\r\n const result: any = {};\r\n Object.entries(row).forEach(([key, value]) => {\r\n if (value === null || value === undefined) {\r\n result[key] = '';\r\n } else if (typeof value === 'object') {\r\n const flatValue = Object.values(value).find(v => typeof v !== 'object');\r\n result[key] = flatValue ?? '';\r\n } else {\r\n result[key] = value;\r\n }\r\n });\r\n return result;\r\n });\r\n\r\n const worksheet = XLSX.utils.json_to_sheet(simplifiedData);\r\n const workbook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Data');\r\n\r\n const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });\r\n const url = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n};\r\n","import { Dropdown } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const StyledDropdown = styled(Dropdown)`\r\n background: var(--color-bg-secondary, #f0ededff) !important;\r\n font-size: 14px;\r\n font-weight: 500;\r\n\r\n .menu .ant-dropdown-menu-item .ant-dropdown-trigger {\r\n padding: 10px 14px !important;\r\n border-radius: 8px !important;\r\n background: #000 !important;\r\n\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: var(--color-text-primary, #000000ff) !important;\r\n }\r\n`;\r\nexport const StyledButton = styled.div`\r\n background-color: red;\r\n padding: 5px;\r\n background: var(--color-bg-opaque-primary, rgba(255, 255, 255, 0.05));\r\n color: var(--color-text-primary, #fff);\r\n cursor: pointer;\r\n`;\r\n","import { StyledDropdownContainer } from '../../styled-components/styledDropdownContainer';\r\nimport { exportSelectedToCSV } from '../../utils/exportCsv';\r\nimport { tGeneral } from '../../utils/exportTranslation';\r\nimport { exportSelectedToXLSX } from '../../utils/exportXLSX';\r\nimport { StyledButton, StyledDropdown } from './style';\r\n\r\ntype ExcelExportProps = {\r\n tableData: any[];\r\n checked: { [key: number]: boolean };\r\n fileName: any;\r\n};\r\n\r\nconst ExcelExportSelected = ({ tableData, checked, fileName }: ExcelExportProps) => {\r\n const onExportClick = async (type: any) => {\r\n try {\r\n if (type === 'xlsx') {\r\n exportSelectedToXLSX(tableData, checked, fileName + '.xlsx');\r\n } else {\r\n exportSelectedToCSV(tableData, checked, fileName + '.csv');\r\n }\r\n } catch (error) {\r\n console.error('Export failed:', error);\r\n }\r\n };\r\n\r\n const items: any = [\r\n {\r\n key: '1',\r\n label: `${tGeneral('ExportAs')} ${tGeneral('Xlsx')}`,\r\n onClick: () => onExportClick('xlsx'),\r\n },\r\n {\r\n key: '2',\r\n label: `${tGeneral('ExportAs')} ${tGeneral('Csv')}`,\r\n onClick: () => onExportClick('csv'),\r\n },\r\n ];\r\n return (\r\n <StyledDropdown\r\n menu={{\r\n items,\r\n className: 'dropdown-menu',\r\n }}\r\n popupRender={menu => <StyledDropdownContainer>{menu}</StyledDropdownContainer>}\r\n placement=\"bottomLeft\"\r\n >\r\n <StyledButton>{tGeneral('Export')}</StyledButton>\r\n </StyledDropdown>\r\n );\r\n};\r\n\r\nexport default ExcelExportSelected;\r\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';\r\nimport { notification } from 'antd';\r\nimport { StyledUploadFile } from './style';\r\n\r\nexport interface UploadFileProps {\r\n value?: any[];\r\n onChange: (fileList: any[]) => void;\r\n children?: React.ReactNode;\r\n inputDesign?: boolean;\r\n addFilesService: (formData: FormData) => Promise<any>;\r\n maxCount?: number;\r\n showUploadList?: boolean;\r\n [key: string]: any;\r\n}\r\n\r\nconst UploadFiles: React.FC<UploadFileProps> = ({\r\n value = [],\r\n onChange,\r\n children,\r\n inputDesign,\r\n addFilesService,\r\n ...props\r\n}) => {\r\n const handleUpload = async (options: any) => {\r\n const { file } = options;\r\n const previewUrl = URL.createObjectURL(file);\r\n const tempFile = { name: file.name, uid: file.uid, status: 'uploading', url: previewUrl };\r\n\r\n const newFileList = [...value, tempFile];\r\n onChange(newFileList); // Ensure only fileList is passed\r\n\r\n try {\r\n const formData = new FormData();\r\n formData.append('files', file);\r\n const response = await addFilesService(formData);\r\n\r\n if (response?.data?.success) {\r\n const uploadedFile = response?.data?.value[0];\r\n onChange(\r\n newFileList.map(item =>\r\n item.uid === file.uid ? { ...item, status: 'done', ...uploadedFile } : item\r\n )\r\n );\r\n } else {\r\n onChange(newFileList.filter(item => item.uid !== file.uid));\r\n notification.error({\r\n className: 'bottom-right-notification',\r\n placement: 'bottomRight',\r\n message: 'Error',\r\n description: 'Upload failed',\r\n });\r\n }\r\n } catch (error) {\r\n onChange(newFileList.filter(item => item.uid !== file.uid));\r\n notification.error({\r\n className: 'bottom-right-notification',\r\n placement: 'bottomRight',\r\n message: 'Error',\r\n description: 'Upload failed',\r\n });\r\n }\r\n };\r\n\r\n const handleRemove = (file: any) => {\r\n onChange(value.filter((item: any) => item.uid !== file.uid));\r\n };\r\n\r\n return (\r\n <StyledUploadFile\r\n className={inputDesign ? 'input-design' : 'default-design'}\r\n multiple={props.maxCount !== undefined && props.maxCount > 1}\r\n customRequest={handleUpload}\r\n showUploadList={!!props.showUploadList}\r\n fileList={value}\r\n onRemove={handleRemove}\r\n maxCount={props.maxCount}\r\n {...props}\r\n >\r\n {value.length < (props.maxCount || 15) && children}\r\n </StyledUploadFile>\r\n );\r\n};\r\n\r\nexport default UploadFiles;\r\n","import { Tabs } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const TabComponent = styled(Tabs)`\r\n display: flex;\r\n gap: var(--spacing-025, 2px);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 padding: 1.5rem;\r\n\r\n @media (max-width: 1024px) {\r\n .ant-tabs-nav-list {\r\n /* display: none; */\r\n }\r\n \r\n .ant-tabs-extra-content {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .ant-tabs-tab {\r\n height: 32px;\r\n padding: 8px 4px;\r\n margin: 0 !important;\r\n padding: var(--spacing-050, 0.25rem) var(--spacing-150, 0.75rem);\r\n\r\n .ant-tabs-tab-btn {\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-caption-size-medium, 0.875rem);\r\n font-style: normal;\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\r\n border-radius: var(--border-radius-025, 2px);\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\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 transition: color 0.2s;\r\n\r\n &:hover,\r\n &:focus {\r\n color: var(--color-text-secondary, rgba(19, 20, 18, 0.75));\r\n }\r\n }\r\n\r\n &.ant-tabs-tab-active {\r\n background: var(--color-bg-brand-special, #02e0ae);\r\n\r\n .ant-tabs-tab-btn {\r\n color: var(--color-text-inverse-primary, #131412);\r\n\r\n &:hover,\r\n &:focus {\r\n color: var(--color-text-inverse-primary, #131412);\r\n }\r\n }\r\n }\r\n }\r\n .ant-tabs-nav {\r\n margin: 0;\r\n border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));\r\n\r\n @media (max-width: 1024px) {\r\n border-bottom: none;\r\n }\r\n\r\n &::before {\r\n display: none;\r\n }\r\n }\r\n\r\n .ant-tabs-ink-bar {\r\n display: none;\r\n }\r\n\r\n .ant-tabs-nav-list {\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-secondary);\r\n }\r\n\r\n .ant-tabs-nav-more {\r\n display: none !important;\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const TabExtraContent = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n`;\r\n\r\nexport const ExtraContentWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100% !important;\r\n\r\n @media (max-width: 450px) {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n }\r\n\r\n .partner-tab-select {\r\n width: 150px;\r\n @media (max-width: 450px) {\r\n width: 100%;\r\n }\r\n }\r\n`;\r\n\r\nexport const TabSelectWrapper = styled.div`\r\n display: none;\r\n @media (max-width: 1024px) {\r\n display: block;\r\n }\r\n align-items: start !important;\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const DashboardResponsiveButtonWrapper = styled.div`\r\n display: none;\r\n\r\n @media (max-width: 991px) {\r\n display: block;\r\n margin-left: 0.9rem;\r\n }\r\n`;\r\n","import { useState } from 'react';\r\nimport { DashboardResponsiveButtonWrapper } from './style';\r\nimport Sidebar from '../../layouts/base-admin-layout/sidebar';\r\nimport SidebarIcon from '../../assets/icons/color.svg?react';\r\n\r\nconst ResponsiveSidebarButton = () => {\r\n const [isSidebarVisible, setIsSidebarVisible] = useState(false);\r\n return (\r\n <DashboardResponsiveButtonWrapper>\r\n <button className=\"icon sidebar\" onClick={() => setIsSidebarVisible(true)}>\r\n <SidebarIcon />\r\n </button>\r\n {isSidebarVisible && <Sidebar />}\r\n </DashboardResponsiveButtonWrapper>\r\n );\r\n};\r\n\r\nexport default ResponsiveSidebarButton;\r\n","import { useLocation, useNavigate, useParams } from 'react-router';\r\nimport { useMemo, useState, ReactNode } from 'react';\r\nimport { TabComponent } from '../../styled-components/tabs';\r\nimport useUserStore from '../../stores/useUserStore';\r\nimport {\r\n ExtraContentWrapper,\r\n TabExtraContent,\r\n TabSelectWrapper,\r\n} from './GenericTabComponent.style';\r\nimport { StyledSelect } from '../../styled-components';\r\nimport PageBreadcrumb from '../page-breadcrumb';\r\nimport type { BreadcrumbItem } from '../page-breadcrumb/types';\r\nimport ResponsiveSidebarButton from '../responsive-sidebar-button';\r\n\r\nexport type { BreadcrumbItem };\r\n\r\nexport interface TabItem {\r\n key: string;\r\n label: string;\r\n permission?: number[];\r\n featureFlag?: number;\r\n}\r\n\r\ninterface GenericTabsPageProps {\r\n basePath: string;\r\n tabItems: TabItem[];\r\n contentMap: Record<string, ReactNode>;\r\n defaultTabKey?: string;\r\n logo?: ReactNode;\r\n breadcrumbItems?: BreadcrumbItem[];\r\n needsBreadcrumb?: boolean;\r\n customTabFilter?: (items: TabItem[]) => TabItem[];\r\n}\r\n\r\nconst GenericTabsPage = ({\r\n basePath,\r\n tabItems,\r\n contentMap,\r\n defaultTabKey = 'overview',\r\n logo,\r\n breadcrumbItems,\r\n needsBreadcrumb,\r\n customTabFilter,\r\n}: GenericTabsPageProps) => {\r\n const { hasPermission } = useUserStore();\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n\r\n const activeKey = useMemo(() => {\r\n const pathParts = location.pathname.split('/');\r\n return pathParts[pathParts.length - 1] || defaultTabKey;\r\n }, [location.pathname, defaultTabKey]);\r\n const [extraTabItem, setExtraTabItem] = useState<ReactNode>(null);\r\n const [secondExtraTab, setSecondExtraTab] = useState<ReactNode>(null);\r\n\r\n const onTabChange = (key: string) => {\r\n navigate(`${basePath}/${id}/${key}`);\r\n };\r\n\r\n const getFilteredTabs = () => {\r\n if (customTabFilter) {\r\n return customTabFilter(tabItems);\r\n }\r\n\r\n return tabItems.filter(item => {\r\n return item.permission?.some((perm: any) => hasPermission(perm));\r\n });\r\n };\r\n\r\n const renderContent = () => {\r\n const content = contentMap[activeKey] || contentMap[defaultTabKey];\r\n\r\n if (!content) return null;\r\n\r\n if (typeof content === 'object' && content !== null && 'type' in content) {\r\n return {\r\n ...content,\r\n props: {\r\n ...content.props,\r\n setExtraTabItem,\r\n setSecondExtraTab,\r\n },\r\n };\r\n }\r\n\r\n return content;\r\n };\r\n\r\n return (\r\n <>\r\n <ResponsiveSidebarButton />\r\n {needsBreadcrumb && <PageBreadcrumb logo={logo} breadcrumbItems={breadcrumbItems} />}\r\n\r\n <TabComponent\r\n activeKey={activeKey}\r\n onChange={onTabChange}\r\n tabBarExtraContent={{\r\n right: (\r\n <ExtraContentWrapper>\r\n <TabSelectWrapper>\r\n <StyledSelect\r\n className=\"partner-tab-select\"\r\n placeholder={'Modules'}\r\n onChange={(e: any) => onTabChange(e)}\r\n value={activeKey}\r\n options={tabItems\r\n .filter((item: any) => item?.label !== 'Details')\r\n .map((item: any) => ({\r\n value: item.key,\r\n label: item.label,\r\n }))}\r\n />\r\n </TabSelectWrapper>\r\n <TabExtraContent>\r\n {secondExtraTab}\r\n {extraTabItem}\r\n </TabExtraContent>\r\n </ExtraContentWrapper>\r\n ),\r\n }}\r\n items={getFilteredTabs()}\r\n />\r\n\r\n <div>{renderContent()}</div>\r\n </>\r\n );\r\n};\r\n\r\nexport default GenericTabsPage;\r\n","import { Button } from 'antd';\r\nimport styled from 'styled-components';\r\n\r\nexport const Wrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 100vh;\r\n background: var(--color-bg-primary, #ffffff);\r\n`;\r\n\r\nexport const Card = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n padding: 3rem 2.5rem;\r\n border-radius: var(--border-radius-025, 0.125rem);\r\n max-width: 28rem;\r\n width: 100%;\r\n text-align: center;\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 4rem;\r\n height: 4rem;\r\n border-radius: 50%;\r\n background: #02e0ae;\r\n\r\n svg {\r\n width: 2rem;\r\n height: 2rem;\r\n color: var(--color-text-inverse-primary, #131412);\r\n }\r\n`;\r\n\r\nexport const Title = styled.h2`\r\n color: var(--color-text-primary, #fff);\r\n text-align: center;\r\n\r\n /* subheading/medium */\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-subheading-size-medium, 24px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-medium, 500);\r\n line-height: var(--typo-subheading-lineHeight-medium, 28px); /* 116.667% */\r\n letter-spacing: var(--typo-subheading-spacing-medium, -0.5px);\r\n`;\r\n\r\nexport const Description = styled.p`\r\n color: var(--color-text-secondary, rgba(255, 255, 255, 0.75));\r\n text-align: center;\r\n\r\n font-family: var(--text-font-family-base, Geist);\r\n font-size: var(--typo-body-size-small, 16px);\r\n font-style: normal;\r\n font-weight: var(--text-weight-regular, 400);\r\n line-height: var(--typo-body-lineHeight-small, 20px); /* 125% */\r\n letter-spacing: var(--typo-body-spacing-small, 0.15px);\r\n`;\r\n\r\nexport const BackButton = styled(Button)`\r\n display: flex;\r\n height: var(--size-500, 40px);\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: var(--border-radius-025, 2px);\r\n background: var(--color-bg-brand-special, #02e0ae);\r\n\r\n color: var(--color-text-inverse-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","import { useNavigate } from 'react-router';\r\nimport { BackButton, Card, Description, IconWrapper, Title, Wrapper } from './style';\r\nimport { tGeneral } from '../../utils/exportTranslation';\r\n\r\nconst SuccessPage = () => {\r\n const navigate = useNavigate();\r\n\r\n return (\r\n <Wrapper>\r\n <Card>\r\n <IconWrapper>\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5}>\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\r\n </svg>\r\n </IconWrapper>\r\n <Title>{tGeneral('Success')}</Title>\r\n <Description>{tGeneral('YourActionHasBeenCompletedSuccessfully')}</Description>\r\n <BackButton onClick={() => navigate(-1)}>{tGeneral('GoBack')}</BackButton>\r\n </Card>\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default SuccessPage;\r\n","import { Form } from 'antd';\r\nimport { useEffect, useState } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { parseServerErrors } from '../utils/errors';\r\n\r\nconst useFormController = ({\r\n id,\r\n refetchFormItems,\r\n redirectPrevPage,\r\n updateItem,\r\n addItem,\r\n getItemById,\r\n onSetFormValues,\r\n}: any) => {\r\n //maybe add in formcontroller the 2FA extra requests.\r\n const navigate = useNavigate();\r\n const [form] = Form.useForm();\r\n\r\n const [isAddingForm, setIsAddingForm] = useState(id == 'new');\r\n const [item, setItem] = useState<any>(null);\r\n\r\n const handleSave = async (values: any) => {\r\n const currentPath = window.location.pathname;\r\n const parentPath = currentPath.substring(0, currentPath.lastIndexOf('/'));\r\n try {\r\n if (item) {\r\n let resp;\r\n if (id) {\r\n resp = await updateItem({ ...values, id });\r\n } else {\r\n resp = await updateItem(values);\r\n }\r\n\r\n if (redirectPrevPage !== false && resp.data.success === true) {\r\n navigate(parentPath);\r\n }\r\n return resp;\r\n } else {\r\n const resp = await addItem(values);\r\n if (redirectPrevPage !== false && resp.data.success === true) {\r\n navigate(parentPath);\r\n }\r\n //return for 2fa\r\n return resp;\r\n }\r\n } catch (error: any) {\r\n if (error.status === 400) {\r\n const response = error.response.data;\r\n const errors = parseServerErrors(response.errors);\r\n\r\n form.setFields(errors);\r\n }\r\n }\r\n };\r\n\r\n const getItem = async (id: number) => {\r\n try {\r\n const response = await getItemById(id);\r\n const data = onSetFormValues ? onSetFormValues(response.data) : response.data;\r\n setItem(data);\r\n form.setFieldsValue(data);\r\n } catch (err) {\r\n console.log(err, 'Error in Form Controller.');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setIsAddingForm(id == 'new');\r\n if (id != 'new') {\r\n getItem(Number(id));\r\n } else {\r\n form.resetFields();\r\n }\r\n }, [id, refetchFormItems]);\r\n\r\n return {\r\n form,\r\n item,\r\n getItemById,\r\n isAddingForm,\r\n handleSave,\r\n };\r\n};\r\n\r\nexport default useFormController;\r\n","import { Form } from 'antd';\r\nimport { useEffect, useState } from 'react';\r\nimport { parseServerErrors } from '../utils/errors';\r\n\r\nconst useFormController = ({ id, formItem, updateItem, addItem, getItemById }: any) => {\r\n const [form] = Form.useForm();\r\n\r\n const [item, setItem] = useState<any>(null);\r\n\r\n const handleSave = async (values: any) => {\r\n try {\r\n let resp: any;\r\n if (id) {\r\n resp = await updateItem({ ...values });\r\n } else {\r\n resp = await addItem(values);\r\n }\r\n\r\n return resp;\r\n } catch (error: any) {\r\n if (error.status === 400) {\r\n const response = error.response.data;\r\n const errors = parseServerErrors(response.errors);\r\n\r\n form.setFields(errors);\r\n }\r\n throw error;\r\n }\r\n };\r\n\r\n const getItem = async (id: number) => {\r\n try {\r\n const response = await getItemById(id);\r\n const data = response.data;\r\n setItem(data);\r\n form.setFieldsValue(data);\r\n } catch (err) {\r\n console.log(err, 'Error in Form Controller.');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n try {\r\n if (!formItem) return;\r\n setItem(formItem);\r\n form.setFieldsValue(formItem);\r\n } catch (err) {\r\n console.log(err, 'Error in Form Controller.');\r\n }\r\n }, [formItem]);\r\n\r\n useEffect(() => {\r\n if (!id) return;\r\n getItem(Number(id));\r\n }, [id]);\r\n\r\n return {\r\n form,\r\n item,\r\n handleSave,\r\n };\r\n};\r\n\r\nexport default useFormController;\r\n","import { useState } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport useUserStore from '../stores/useUserStore';\r\n\r\ninterface TwoFactorState {\r\n visible: boolean;\r\n token: string;\r\n id?: number;\r\n mfaType?: number;\r\n}\r\n\r\nexport const useTwoFactor = () => {\r\n const navigate = useNavigate();\r\n const { setUser } = useUserStore();\r\n\r\n const [twoFactor, setTwoFactor] = useState<TwoFactorState>({\r\n visible: false,\r\n token: '',\r\n });\r\n\r\n const finalizeLogin = (userData: any) => {\r\n setUser(userData);\r\n setTwoFactor({ visible: false, token: '' });\r\n navigate('/');\r\n };\r\n\r\n const handleTwoFactorResponse: any = (resp: any, isLogin?: boolean) => {\r\n const { success, value } = resp.data;\r\n\r\n if (!success) {\r\n throw new Error('Authentication failed');\r\n }\r\n\r\n if (value.isTwoFactorRequired) {\r\n setTwoFactor({\r\n visible: true,\r\n token: value.token,\r\n id: value.id,\r\n mfaType: value.mfaType,\r\n });\r\n return;\r\n }\r\n\r\n if (isLogin) {\r\n finalizeLogin(value);\r\n }\r\n };\r\n\r\n return {\r\n handleTwoFactorResponse: handleTwoFactorResponse,\r\n finalizeLogin,\r\n twoFactor,\r\n setTwoFactor,\r\n };\r\n};\r\n","import { useContext, useEffect } from 'react';\r\nimport { UNSAFE_NavigationContext, useLocation } from 'react-router';\r\nimport { Modal } from 'antd';\r\n\r\nexport function useNavigationGuard(shouldBlock: any) {\r\n const { navigator } = useContext(UNSAFE_NavigationContext);\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (!shouldBlock) return;\r\n\r\n const originalPush = navigator.push;\r\n const originalReplace = navigator.replace;\r\n\r\n const confirmAndNavigate =\r\n (method: any) =>\r\n (...args: any) => {\r\n Modal.confirm({\r\n title: 'UnsavedChanges',\r\n\r\n content: 'UnsavedMoveDesc',\r\n okText: 'Leave',\r\n className: 'custom-confirm-modal',\r\n cancelText: 'Save',\r\n okButtonProps: {\r\n className: 'ok-text-btn',\r\n },\r\n cancelButtonProps: {\r\n className: 'no-hover-cancel-btn', // in global css at this point for this..\r\n },\r\n onOk: () => {\r\n method(...args);\r\n },\r\n onCancel: () => {},\r\n });\r\n };\r\n\r\n navigator.push = confirmAndNavigate(originalPush);\r\n navigator.replace = confirmAndNavigate(originalReplace);\r\n\r\n return () => {\r\n navigator.push = originalPush;\r\n navigator.replace = originalReplace;\r\n };\r\n }, [shouldBlock, navigator, location]);\r\n\r\n useEffect(() => {\r\n const handleBeforeUnload = (e: any) => {\r\n if (!shouldBlock) return;\r\n e.preventDefault();\r\n e.returnValue = '';\r\n };\r\n\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n return () => {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n };\r\n }, [shouldBlock]);\r\n}\r\n","import { useEffect } from 'react';\r\n\r\nexport function useAutofillStartDetection(callback: Function) {\r\n useEffect(() => {\r\n const handleAnimationStart = (e: AnimationEvent) => {\r\n if (e.animationName === 'onAutoFillStart') {\r\n callback(e);\r\n }\r\n };\r\n\r\n document.addEventListener('animationstart', handleAnimationStart, true);\r\n return () => {\r\n document.removeEventListener('animationstart', handleAnimationStart, true);\r\n };\r\n }, []);\r\n}\r\n","export const Currencies: any = {\r\n '8': 'ALL',\r\n '12': 'DZD',\r\n '32': 'ARS',\r\n '36': 'AUD',\r\n '44': 'BSD',\r\n '48': 'BHD',\r\n '50': 'BDT',\r\n '51': 'AMD',\r\n '52': 'BBD',\r\n '60': 'BMD',\r\n '64': 'BTN',\r\n '68': 'BOB',\r\n '72': 'BWP',\r\n '84': 'BZD',\r\n '90': 'SBD',\r\n '96': 'BND',\r\n '104': 'MMK',\r\n '108': 'BIF',\r\n '116': 'KHR',\r\n '124': 'CAD',\r\n '132': 'CVE',\r\n '136': 'KYD',\r\n '144': 'LKR',\r\n '152': 'CLP',\r\n '156': 'CNY',\r\n '170': 'COP',\r\n '174': 'KMF',\r\n '188': 'CRC',\r\n '191': 'HRK',\r\n '192': 'CUP',\r\n '203': 'CZK',\r\n '208': 'DKK',\r\n '214': 'DOP',\r\n '230': 'ETB',\r\n '232': 'ERN',\r\n '238': 'FKP',\r\n '242': 'FJD',\r\n '262': 'DJF',\r\n '270': 'GMD',\r\n '292': 'GIP',\r\n '320': 'GTQ',\r\n '324': 'GNF',\r\n '328': 'GYD',\r\n '332': 'HTG',\r\n '340': 'HNL',\r\n '344': 'HKD',\r\n '348': 'HUF',\r\n '352': 'ISK',\r\n '356': 'INR',\r\n '360': 'IDR',\r\n '364': 'IRR',\r\n '368': 'IQD',\r\n '376': 'ILS',\r\n '388': 'JMD',\r\n '392': 'JPY',\r\n '398': 'KZT',\r\n '400': 'JOD',\r\n '404': 'KES',\r\n '408': 'KPW',\r\n '410': 'KRW',\r\n '414': 'KWD',\r\n '417': 'KGS',\r\n '418': 'LAK',\r\n '422': 'LBP',\r\n '426': 'LSL',\r\n '430': 'LRD',\r\n '434': 'LYD',\r\n '446': 'MOP',\r\n '454': 'MWK',\r\n '458': 'MYR',\r\n '462': 'MVR',\r\n '478': 'MRO',\r\n '480': 'MUR',\r\n '484': 'MXN',\r\n '496': 'MNT',\r\n '498': 'MDL',\r\n '504': 'MAD',\r\n '512': 'OMR',\r\n '516': 'NAD',\r\n '524': 'NPR',\r\n '532': 'ANG',\r\n '533': 'AWG',\r\n '548': 'VUV',\r\n '554': 'NZD',\r\n '558': 'NIO',\r\n '566': 'NGN',\r\n '578': 'NOK',\r\n '586': 'PKR',\r\n '590': 'PAB',\r\n '598': 'PGK',\r\n '600': 'PYG',\r\n '604': 'PEN',\r\n '608': 'PHP',\r\n '634': 'QAR',\r\n '643': 'RUB',\r\n '646': 'RWF',\r\n '654': 'SHP',\r\n '678': 'STD',\r\n '682': 'SAR',\r\n '690': 'SCR',\r\n '694': 'SLL',\r\n '702': 'SGD',\r\n '704': 'VND',\r\n '706': 'SOS',\r\n '710': 'ZAR',\r\n '728': 'SSP',\r\n '748': 'SZL',\r\n '752': 'SEK',\r\n '756': 'CHF',\r\n '760': 'SYP',\r\n '764': 'THB',\r\n '776': 'TOP',\r\n '780': 'TTD',\r\n '784': 'AED',\r\n '788': 'TND',\r\n '800': 'UGX',\r\n '807': 'MKD',\r\n '818': 'EGP',\r\n '826': 'GBP',\r\n '834': 'TZS',\r\n '840': 'USD',\r\n '858': 'UYU',\r\n '860': 'UZS',\r\n '882': 'WST',\r\n '886': 'YER',\r\n '901': 'TWD',\r\n '931': 'CUC',\r\n '932': 'ZWL',\r\n '934': 'TMT',\r\n '936': 'GHS',\r\n '937': 'VEF',\r\n '938': 'SDG',\r\n '940': 'UYI',\r\n '941': 'RSD',\r\n '943': 'MZN',\r\n '944': 'AZN',\r\n '946': 'RON',\r\n '947': 'CHE',\r\n '948': 'CHW',\r\n '949': 'TRY',\r\n '950': 'XAF',\r\n '951': 'XCD',\r\n '952': 'XOF',\r\n '953': 'XPF',\r\n '955': 'XBA',\r\n '956': 'XBB',\r\n '957': 'XBC',\r\n '958': 'XBD',\r\n '959': 'XAU',\r\n '960': 'XDR',\r\n '961': 'XAG',\r\n '962': 'XPT',\r\n '963': 'XTS',\r\n '964': 'XPD',\r\n '965': 'XUA',\r\n '967': 'ZMW',\r\n '968': 'SRD',\r\n '969': 'MGA',\r\n '970': 'COU',\r\n '971': 'AFN',\r\n '972': 'TJS',\r\n '973': 'AOA',\r\n '974': 'BYR',\r\n '975': 'BGN',\r\n '976': 'CDF',\r\n '977': 'BAM',\r\n '978': 'EUR',\r\n '979': 'MXV',\r\n '980': 'UAH',\r\n '981': 'GEL',\r\n '984': 'BOV',\r\n '985': 'PLN',\r\n '986': 'BRL',\r\n '990': 'CLF',\r\n '994': 'XSU',\r\n '997': 'USN',\r\n '998': 'USS',\r\n '999': 'XXX',\r\n};\r\n","export function formatDate(dateStr: any, options?: { withTime?: boolean }): string {\r\n if (!dateStr) return '';\r\n\r\n const date = new Date(dateStr);\r\n if (isNaN(date.getTime())) return '';\r\n\r\n const day = date.getDate();\r\n const monthIndex = date.getMonth();\r\n const year = date.getFullYear();\r\n\r\n const month = monthIndex;\r\n\r\n const formattedDate = `${day} ${month}, ${year}`;\r\n\r\n if (options?.withTime) {\r\n const hours = date.getHours().toString().padStart(2, '0');\r\n const minutes = date.getMinutes().toString().padStart(2, '0');\r\n return `${formattedDate} ${hours}:${minutes}`;\r\n }\r\n\r\n return formattedDate;\r\n}\r\n\r\nexport function numberFormatterWithComma(number: number, local = 'en-US'): any {\r\n if (number < 1) {\r\n return 0;\r\n } else if (!number) {\r\n return '';\r\n }\r\n\r\n return number.toLocaleString(local);\r\n}\r\n","// Backend sends PascalCase. Converts to camelCase, handling:\r\n// - Standard PascalCase: 'SubAffiliateRevShare' → 'subAffiliateRevShare'\r\n// - All-caps acronyms: 'CPA' → 'cpa'\r\n// - Leading acronyms: 'FTDAmountTiers' → 'ftdAmountTiers'\r\nconst toCamelCase = (str: string) =>\r\n str.replace(/^[A-Z]+/, match => {\r\n if (match.length === str.length) return match.toLowerCase();\r\n if (match.length > 1) return match.slice(0, -1).toLowerCase() + match.slice(-1);\r\n return match.toLowerCase();\r\n });\r\n\r\nexport type ParsedCommissionError = {\r\n brandIndex: number;\r\n message: string;\r\n generalType?: string;\r\n specificType?: string;\r\n itemIndex?: number;\r\n field?: string;\r\n};\r\n\r\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].SubAffiliate.SubAffiliateRevShare[0].Commission\"\r\nconst FIELD_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\[(\\d+)\\]\\.(\\w+)$/;\r\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers\"\r\nconst SPECIFIC_TYPE_ERROR_REGEX = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)$/;\r\n\r\n//this looks like this in bacckend VALIDATION DTO \"Commissions[1].CPA.FTDAmountTiers.Count\"\r\nconst SPECIFIC_TYPE_ERROR_REGEX_COUNT = /^Commissions\\[(\\d+)\\]\\.(\\w+)\\.(\\w+)\\.(\\w+)$/;\r\n//this looks like this in bacckend VALIDATION DTO. \"Commissions[1]\"\r\nconst BRAND_ERROR_REGEX = /^Commissions\\[(\\d+)\\]$/;\r\n\r\nexport function parseCommissionErrors(error: any): ParsedCommissionError | null {\r\n const { errors: errorList } = error.response.data;\r\n\r\n const key = Object.keys(errorList)[0];\r\n const message = errorList[key][0];\r\n\r\n const fieldMatch = key.match(FIELD_ERROR_REGEX);\r\n if (fieldMatch) {\r\n const [, brandIndexStr, generalTypePascal, specificTypePascal, itemIndexStr, fieldPascal] =\r\n fieldMatch;\r\n return {\r\n brandIndex: Number(brandIndexStr),\r\n generalType: toCamelCase(generalTypePascal),\r\n specificType: toCamelCase(specificTypePascal),\r\n itemIndex: Number(itemIndexStr),\r\n field: toCamelCase(fieldPascal),\r\n message,\r\n };\r\n }\r\n\r\n const specificTypeMatch =\r\n key.match(SPECIFIC_TYPE_ERROR_REGEX) || key.match(SPECIFIC_TYPE_ERROR_REGEX_COUNT);\r\n if (specificTypeMatch) {\r\n const [, brandIndexStr, generalTypePascal, specificTypePascal] = specificTypeMatch;\r\n return {\r\n brandIndex: Number(brandIndexStr),\r\n generalType: toCamelCase(generalTypePascal),\r\n specificType: toCamelCase(specificTypePascal),\r\n message,\r\n };\r\n }\r\n\r\n const brandMatch = key.match(BRAND_ERROR_REGEX);\r\n if (brandMatch) {\r\n return {\r\n brandIndex: Number(brandMatch[1]),\r\n message,\r\n };\r\n }\r\n\r\n console.warn(\r\n 'parseCommissionErrors: unrecognized key format from the validations on commissions',\r\n key\r\n );\r\n return null;\r\n}\r\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","saveMyFilter","updateMyFilter","bumpConfigsVersion","handleDeleteConfiguration","err","deleteConfiguration","handleSaveConfiguration","savedName","name","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","ButtonWithArrow","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","SelectOtherMethod","getMFAOptions","onSelectMethod","mfaTypeLabels","availableOptions","setAvailableOptions","getOptions","TwoFactorPopup","confirmTwoFactor","updatedResponse","resendOTP","visible","sentMessage","resendDisabled","setResendDisabled","timeLeft","setTimeLeft","showSelectOtherMethod","setShowSelectOtherMethod","selectedMfaType","setSelectedMfaType","step","setStep","handleSelectMethod","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","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","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","Currencies","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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AAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,KAAO;AAAA,EACP,K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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,142,144]}