{"version":3,"file":"static/chunks/99970-e2f74a4aab45a09e.js","mappings":"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","sources":["webpack://_N_E/./src/hooks/bonus/useImageGrid/index.tsx","webpack://_N_E/./src/components/Bonus/UserBonus/Card/Icon/index.tsx","webpack://_N_E/./src/enums/bonusTypeId.ts","webpack://_N_E/./src/components/Bonus/UserBonus/Card/helper.ts","webpack://_N_E/./src/constants/user-bonus/index.ts","webpack://_N_E/./src/enums/language.ts","webpack://_N_E/./src/services/I18n/index.ts","webpack://_N_E/./src/hooks/useLanguageDictionary/index.ts","webpack://_N_E/./src/hooks/useParsedBonusEvents.ts","webpack://_N_E/../../node_modules/@mui/material/Table/TableContext.js","webpack://_N_E/../../node_modules/@mui/material/Table/Tablelvl2Context.js","webpack://_N_E/../../node_modules/@mui/material/TableCell/tableCellClasses.js","webpack://_N_E/../../node_modules/@mui/material/TableCell/TableCell.js","webpack://_N_E/../../packages/common/src/components/PaginationComponent/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/PaginationComponent/helper.ts","webpack://_N_E/../../packages/common/src/components/PaginationComponent/index.tsx","webpack://_N_E/../../packages/common/src/components/TableWithPagination/index.tsx","webpack://_N_E/./src/components/Bonus/UserBonus/Card/Icon/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PaginationComponent/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PaginationComponent/styles.module.scss","webpack://_N_E/../../packages/common/src/components/TableWithPagination/styles.module.scss"],"sourcesContent":["import { BonusEvent } from '@/models/bonusEvent';\nimport { useMemo } from 'react';\n\nexport function useImageGrid(events: BonusEvent[]) {\n const imagesToDisplay: BonusEvent[] = useMemo(() => {\n const images: BonusEvent[] = events?.slice(0, 6) || [];\n const imageCount: number = images.length;\n\n if (imageCount === 0) {\n return [];\n }\n\n const imagesForGrid = [];\n for (let i = 0; i < 6; i++) {\n imagesForGrid.push(images[i % imageCount]);\n }\n\n return imagesForGrid;\n }, [events]);\n\n return { images: imagesToDisplay };\n}\n","import { UserBonusCardIconProps } from './props';\nimport styles from './styles.module.scss';\nimport { useMemo } from 'react';\nimport { useImageGrid } from '@/hooks/bonus/useImageGrid';\nimport { Image, ToolTip } from '@starsoft/common/components';\n\nexport default function UserBonusCardIcon({\n events,\n isLoading,\n}: UserBonusCardIconProps) {\n const { images } = useImageGrid(events);\n\n const Images: JSX.Element[] = useMemo(\n () =>\n images?.map((event, index) => (\n <ToolTip\n key={`icon-image-${event?.name}-${index}`}\n titleComponent={event?.name}\n visible\n >\n <div className={`${styles[`image-${index}`]}`}>\n <Image\n width={100}\n height={100}\n className={styles.row__image}\n src={`${process.env.NEXT_PUBLIC_S3_BUCKET_BASE_URL}${`/${event?.image?.includes('sportsbook.png') ? '/bonus-types/sportbook-small.png' : `games/150x150${event?.image}`}`}`}\n secondarySkeleton\n />\n </div>\n </ToolTip>\n )),\n [images],\n );\n\n const Skeletons: JSX.Element[] = useMemo(\n () =>\n Array.from({ length: 9 }).map((_, idx) => (\n <div\n className={`${styles.row__image__skeleton} image-${idx}`}\n key={`icon-skeleton-${idx}`}\n />\n )),\n [],\n );\n\n if (!isLoading && Images?.length === 0) {\n return null;\n }\n\n return <div className={styles.row}>{isLoading ? Skeletons : Images}</div>;\n}\n","export namespace BonusTypeId {\n export const Bet = 1n;\n export const Spin = 2n;\n export const Ticket = 3n;\n}\n\nexport type BonusTypeType = (typeof BonusTypeId)[keyof typeof BonusTypeId];\n","import { BonusTypeId, BonusTypeType } from '@/enums/bonusTypeId';\n\nexport function getBonusTypeColor(id: BonusTypeType) {\n switch (id?.toString()) {\n case BonusTypeId.Bet?.toString():\n return '#3FED87';\n case BonusTypeId.Ticket?.toString():\n return '#FFE72F';\n case BonusTypeId.Spin?.toString():\n return '#ED1F26';\n }\n}\n","import { BonusStatusId } from '@/enums/bonusStatusId';\n\nexport const activeUserBonusStatus = [\n BonusStatusId.Activated?.toString(),\n // BonusStatusId.Issued,\n // BonusStatusId.Supplied,\n];\n\nexport const expiredUserBonusStatus = [\n BonusStatusId.Cancelled?.toString(),\n BonusStatusId.Invalidated?.toString(),\n BonusStatusId.Expired?.toString(),\n];\n\nexport const inactiveUserBonusStatus = [\n BonusStatusId.Coupon?.toString(),\n BonusStatusId.Spin?.toString(),\n BonusStatusId.Ticket?.toString(),\n];\n\nexport const filterActivesOnlyUserBonus = [\n ...inactiveUserBonusStatus,\n BonusStatusId.Activated?.toString(),\n // BonusStatusId.Issued,\n // BonusStatusId.Supplied,\n];\n","export enum Language {\n Chinese = 'zh',\n Russian = 'ru',\n Portuguese = 'pt',\n French = 'fr',\n Spanish = 'es',\n English = 'en',\n Dutch = 'de',\n Indonesian = 'id',\n Italian = 'it',\n}\n","import { LanguageDictionary } from '@/models/languageDictionary';\nimport { I18nParams } from './props';\nimport { Language } from '@/enums/language';\n\nexport class I18n {\n public readonly dictionary: LanguageDictionary;\n public readonly language: Language;\n\n constructor(dictionary: LanguageDictionary, language: Language) {\n this.dictionary = dictionary;\n this.language = language;\n }\n\n public t(params?: I18nParams) {\n let value: string = this.dictionary?.[this.language];\n\n if (params) {\n for (const param in params) {\n const regexParam = new RegExp(`{{${param}}}`, 'g');\n value = value?.replace?.(regexParam, String(params[param]));\n }\n }\n\n return value;\n }\n}\n","import { Language } from '@/enums/language';\nimport { LanguageDictionary } from '@/models/languageDictionary';\nimport { I18n } from '@/services/I18n';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useMemo } from 'react';\n\nexport function useLanguageDictionary(dictionary: LanguageDictionary) {\n const { lang } = useTranslation();\n const language: Language = useMemo(\n () => (lang?.substring(0, 2) as Language) ?? Language.English,\n [lang],\n );\n const i18n: I18n = useMemo(\n () => new I18n(dictionary, language as Language),\n [language, dictionary],\n );\n\n return i18n;\n}\n","import { BonusEvent } from '@/models/bonusEvent';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useMemo } from 'react';\n\nexport function useParsedBonusEvents(events: BonusEvent[]): string {\n const { t } = useTranslation('common');\n\n return useMemo(() => {\n const parsedEvents: string = events\n ?.map(event =>\n event?.name?.includes('Sports') ? t('tab_sportsbook') : event?.name,\n )\n ?.join(', ');\n\n if (parsedEvents?.length > 1) {\n return `${parsedEvents} ${t('and_others')}`;\n }\n\n return parsedEvents;\n }, [events, t]);\n}\n","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst TableContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\nexport default TableContext;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\nexport default Tablelvl2Context;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { darken, alpha, lighten } from '@mui/system/colorManipulator';\nimport capitalize from '../utils/capitalize';\nimport TableContext from '../Table/TableContext';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport tableCellClasses, { getTableCellUtilityClass } from './tableCellClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n align,\n padding,\n size,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', variant, stickyHeader && 'stickyHeader', align !== 'inherit' && `align${capitalize(align)}`, padding !== 'normal' && `padding${capitalize(padding)}`, `size${capitalize(size)}`]\n };\n return composeClasses(slots, getTableCellUtilityClass, classes);\n};\nconst TableCellRoot = styled('td', {\n name: 'MuiTableCell',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.padding !== 'normal' && styles[`padding${capitalize(ownerState.padding)}`], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.stickyHeader && styles.stickyHeader];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body2, {\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: theme.vars ? `1px solid ${theme.vars.palette.TableCell.border}` : `1px solid\n ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,\n textAlign: 'left',\n padding: 16\n}, ownerState.variant === 'head' && {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n}, ownerState.variant === 'body' && {\n color: (theme.vars || theme).palette.text.primary\n}, ownerState.variant === 'footer' && {\n color: (theme.vars || theme).palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n}, ownerState.size === 'small' && {\n padding: '6px 16px',\n [`&.${tableCellClasses.paddingCheckbox}`]: {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '& > *': {\n padding: 0\n }\n }\n}, ownerState.padding === 'checkbox' && {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px'\n}, ownerState.padding === 'none' && {\n padding: 0\n}, ownerState.align === 'left' && {\n textAlign: 'left'\n}, ownerState.align === 'center' && {\n textAlign: 'center'\n}, ownerState.align === 'right' && {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n}, ownerState.align === 'justify' && {\n textAlign: 'justify'\n}, ownerState.stickyHeader && {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n backgroundColor: (theme.vars || theme).palette.background.default\n}));\n\n/**\n * The component renders a `<th>` element when the parent context is a header\n * or otherwise a `<td>` element.\n */\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n let scope = scopeProp;\n // scope is not a valid attribute for <td/> elements.\n // source: https://html.spec.whatwg.org/multipage/tables.html#the-td-element\n if (component === 'td') {\n scope = undefined;\n } else if (!scope && isHeadCell) {\n scope = 'col';\n }\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n const ownerState = _extends({}, props, {\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n return /*#__PURE__*/_jsx(TableCellRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────â”\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body', 'footer', 'head']), PropTypes.string])\n} : void 0;\nexport default TableCell;","import styles from '../styles.module.scss';\nimport { PaginationComponentSkeletonProps } from './props';\nimport skeleton from './styles.module.scss';\n\nexport default function PaginationComponentSkeleton({\n secondaryStyles,\n}: PaginationComponentSkeletonProps) {\n return (\n <div className={styles.container}>\n <div className={styles.container__content}>\n {Array.from({ length: 4 }).map((_, index) => (\n <div\n className={\n secondaryStyles ? skeleton['icon--secondary'] : skeleton.icon\n }\n key={`pagination-icon-skeleton-${index}`}\n />\n ))}\n </div>\n </div>\n );\n}\n","/**\n * Generates an array of page numbers for pagination navigation.\n * Handles different scenarios based on current page position and total pages.\n * Includes logic for showing ellipsis (...) when pages are skipped.\n *\n * @param currentPage - The currently active page number\n * @param lastPage - The total number of pages\n * @param maxLength - Maximum number of pagination items to show\n * @returns Array of page numbers with NaN representing ellipsis\n *\n * @example\n * // With few pages (shows all)\n * getPaginationItems(2, 5, 7) // returns [1, 2, 3, 4, 5]\n *\n * // With many pages (shows ellipsis)\n * getPaginationItems(5, 20, 7) // returns [1, NaN, 4, 5, 6, NaN, 20]\n */\nexport function getPaginationItems(\n currentPage: number,\n lastPage: number,\n maxLength: number,\n) {\n const res: Array<number> = [];\n\n // If total pages is less than max items, show all pages\n if (lastPage <= maxLength) {\n for (let i = 1; i <= lastPage; i++) {\n res.push(i);\n }\n } else {\n const firstPage = 1;\n const confirmedPagesCount = 3; // Always show first, current, last\n const deductedMaxLength = maxLength - confirmedPagesCount;\n const sideLength = deductedMaxLength / 2;\n\n // Handle when current page is near start or end\n if (\n currentPage - firstPage < sideLength ||\n lastPage - currentPage < sideLength\n ) {\n for (let j = 1; j <= sideLength + firstPage; j++) {\n res.push(j);\n }\n res.push(NaN); // Add ellipsis\n\n for (let k = lastPage - sideLength; k <= lastPage; k++) {\n res.push(k);\n }\n }\n // Handle when current page is in middle with enough space on both sides\n else if (\n currentPage - firstPage >= deductedMaxLength &&\n lastPage - currentPage >= deductedMaxLength\n ) {\n const deductedSideLength = sideLength - 1;\n\n res.push(1);\n res.push(NaN); // Add ellipsis\n\n for (\n let l = currentPage - deductedSideLength;\n l <= currentPage + deductedSideLength;\n l++\n ) {\n res.push(l);\n }\n\n res.push(NaN); // Add ellipsis\n res.push(lastPage);\n }\n // Handle when current page is closer to either end\n else {\n const isNearFirstPage = currentPage - firstPage < lastPage - currentPage;\n let remainingLength = maxLength;\n\n if (isNearFirstPage) {\n // Show more numbers at start\n for (let m = 1; m <= currentPage + 1; m++) {\n res.push(m);\n remainingLength -= 1;\n }\n\n res.push(NaN); // Add ellipsis\n remainingLength -= 1;\n\n for (let n = lastPage - (remainingLength - 1); n <= lastPage; n++) {\n res.push(n);\n }\n } else {\n // Show more numbers at end\n for (let o = lastPage; o >= currentPage - 1; o--) {\n res.unshift(o);\n remainingLength -= 1;\n }\n\n res.unshift(NaN); // Add ellipsis\n remainingLength -= 1;\n\n for (let p = remainingLength; p >= 1; p--) {\n res.unshift(p);\n }\n }\n }\n }\n\n return res;\n}\n","import PaginationComponentSkeleton from './Skeleton';\nimport { getPaginationItems } from './helper';\nimport { NewPaginationProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * PaginationComponent\n * A component that renders a pagination control with page numbers and navigation buttons.\n * Handles loading states, page navigation, and supports different styling variants.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.currentPage - The currently active page number\n * @param {number} props.lastPage - The total number of pages\n * @param {number} props.maxLength - Maximum number of pagination items to show\n * @param {(page: number) => void} props.setCurrentPage - Callback to set the current page\n * @param {boolean} props.hasNextPage - Whether there is a next page available\n * @param {boolean} props.hasPreviousPage - Whether there is a previous page available\n * @param {boolean} props.loading - Whether the pagination is in loading state\n * @param {() => void} props.fetchNextPage - Callback to fetch the next page\n * @param {() => void} props.fetchPreviousPage - Callback to fetch the previous page\n * @param {boolean} props.secondaryStyles - Whether to use secondary styling variant\n * @returns {JSX.Element} The rendered pagination control\n *\n * @example\n * // Basic usage\n * <PaginationComponent\n * currentPage={1}\n * lastPage={10}\n * maxLength={7}\n * setCurrentPage={(page) => setPage(page)}\n * hasNextPage={true}\n * hasPreviousPage={false}\n * loading={false}\n * fetchNextPage={() => fetchNext()}\n * fetchPreviousPage={() => fetchPrev()}\n * secondaryStyles={false}\n * />\n */\nexport function PaginationComponent({\n currentPage,\n lastPage,\n maxLength,\n setCurrentPage,\n hasNextPage,\n hasPreviousPage,\n loading,\n fetchNextPage,\n fetchPreviousPage,\n secondaryStyles,\n}: NewPaginationProps): JSX.Element {\n const pageNums = getPaginationItems(currentPage, lastPage, maxLength);\n\n if (loading) {\n return <PaginationComponentSkeleton secondaryStyles={secondaryStyles} />;\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.container__content}>\n <button\n className={`${styles.container__content__page} ${secondaryStyles ? styles['container__content__page--secondary'] : ''}`}\n disabled={!hasPreviousPage}\n onClick={fetchPreviousPage}\n >\n <i className=\"fas fa-chevron-left\" />\n </button>\n {pageNums.map((item: number, index) =>\n !isNaN(item) ? (\n <button\n className={`${styles.container__content__page} ${secondaryStyles ? styles['container__content__page--secondary'] : ''} ${item == currentPage ? styles['container__content__page--active'] : ''}`}\n key={`pagination-icon-skeleton-${item}+${index}`}\n onClick={() => setCurrentPage(item)}\n >\n {item}\n </button>\n ) : (\n '...'\n ),\n )}\n <button\n className={`${styles.container__content__page} ${secondaryStyles ? styles['container__content__page--secondary'] : ''}`}\n disabled={!hasNextPage}\n onClick={fetchNextPage}\n >\n <i className=\"fas fa-chevron-right\" />\n </button>\n </div>\n </div>\n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport { TableWithPaginationProps } from './props';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '../ErrorCard';\nimport { PaginationComponent } from '../PaginationComponent';\nimport { TableGrid } from '@starsoft/common/components';\n\n/**\n * TableWithPagination Component\n * Renders a table with pagination controls, handling loading states, errors, and data display.\n * Combines TableGrid for data display and PaginationComponent for navigation.\n *\n * @component\n * @template T - Type extending FieldValues for row data structure\n * @param {Object} props - Component props\n * @param {Array} props.columns - Column definitions for the table\n * @param {Object} props.data - Data object containing rows and pagination metadata\n * @param {Error} props.error - Error object if request failed\n * @param {Function} props.fetchNextPage - Callback to fetch next page\n * @param {Function} props.fetchPreviousPage - Callback to fetch previous page\n * @param {boolean} props.isLoading - Loading state indicator\n * @param {number} props.page - Current page number\n * @param {Function} props.refetch - Callback to retry failed request\n * @param {boolean} props.isSecondaryStyles - Whether to use secondary styling\n * @param {Function} props.setCurrentPage - Callback to set current page number\n * @returns {JSX.Element} The rendered table with pagination\n *\n * @example\n * interface UserData extends FieldValues {\n * id: number;\n * name: string;\n * email: string;\n * }\n *\n * const columns = [\n * { field: 'name', headerName: 'Name' },\n * { field: 'email', headerName: 'Email' }\n * ];\n *\n * const data = {\n * data: [\n * { id: 1, name: 'John', email: 'john@example.com' },\n * { id: 2, name: 'Jane', email: 'jane@example.com' }\n * ],\n * metadata: {\n * hasNextPage: true,\n * hasPreviousPage: false,\n * pageCount: 5\n * }\n * };\n *\n * <TableWithPagination<UserData>\n * columns={columns}\n * data={data}\n * error={null}\n * fetchNextPage={() => {}}\n * fetchPreviousPage={() => {}}\n * isLoading={false}\n * page={1}\n * refetch={() => {}}\n * isSecondaryStyles={false}\n * setCurrentPage={(page: number) => {}}\n * />\n */\nexport function TableWithPagination<T extends FieldValues>({\n columns,\n data,\n error,\n fetchNextPage,\n fetchPreviousPage,\n isLoading,\n page,\n refetch,\n isSecondaryStyles,\n setCurrentPage,\n ...props\n}: TableWithPaginationProps<T>) {\n if (error) {\n return <ErrorCard error={error} refetch={refetch} />;\n }\n\n return (\n <div className={styles.container}>\n <TableGrid\n rows={data?.data ?? []}\n columns={columns}\n isLoading={isLoading}\n isSecondaryStyles={isSecondaryStyles}\n {...props}\n />\n\n <PaginationComponent\n currentPage={page}\n hasPreviousPage={data?.metadata?.hasPreviousPage ?? false}\n hasNextPage={data?.metadata?.hasNextPage ?? false}\n loading={isLoading}\n lastPage={data?.metadata?.pageCount ?? 0}\n setCurrentPage={setCurrentPage}\n fetchNextPage={fetchNextPage}\n fetchPreviousPage={fetchPreviousPage}\n maxLength={7}\n secondaryStyles\n />\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row__image__skeleton\":\"styles_row__image__skeleton__kTb3b\",\"skeleton-animation\":\"styles_skeleton-animation__18kcs\",\"row\":\"styles_row__1actn\",\"row__image\":\"styles_row__image__vH_9K\",\"image-0\":\"styles_image-0__wO6qG\",\"image-1\":\"styles_image-1__qWshN\",\"image-2\":\"styles_image-2__quF7q\",\"image-3\":\"styles_image-3___Yhft\",\"image-4\":\"styles_image-4__lD7CA\",\"image-5\":\"styles_image-5__vB6C2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon--secondary\":\"styles_icon--secondary__TwWXM\",\"icon\":\"styles_icon__SlF_7\",\"skeleton-animation\":\"styles_skeleton-animation__XEzCB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__lgFyZ\",\"container__content\":\"styles_container__content__S_L13\",\"container__content__page\":\"styles_container__content__page__Si2_T\",\"container__content__page--secondary\":\"styles_container__content__page--secondary__nGMlX\",\"container__content__page--active\":\"styles_container__content__page--active__6M_rz\",\"skeleton-animation\":\"styles_skeleton-animation__vC7aa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__7HDjY\",\"skeleton-animation\":\"styles_skeleton-animation__xZcKc\"};"],"names":["UserBonusCardIcon","param","events","isLoading","images","useMemo","slice","imageCount","length","imagesForGrid","i","push","Images","map","event","index","jsx_runtime","jsx","ToolTip","titleComponent","name","visible","div","className","concat","styles","Image","width","height","src","process","image","includes","secondarySkeleton","Skeletons","Array","from","_","idx","BonusTypeId","getBonusTypeColor","id","toString","Bet","Ticket","Spin","BonusStatusId","activeUserBonusStatus","Activated","expiredUserBonusStatus","Cancelled","Invalidated","Expired","inactiveUserBonusStatus","Coupon","filterActivesOnlyUserBonus","Language","I18n","t","params","_this_dictionary","value","dictionary","language","regexParam","replace","String","constructor","useLanguageDictionary","lang","useTranslation","substring","English","useParsedBonusEvents","parsedEvents","join","TableContext","React","Tablelvl2Context","getTableCellUtilityClass","slot","generateUtilityClass","tableCellClasses","generateUtilityClasses","_excluded","useUtilityClasses","ownerState","classes","variant","align","padding","size","stickyHeader","slots","root","capitalize","composeClasses","TableCellRoot","styled","overridesResolver","props","theme","_extends","typography","body2","display","verticalAlign","borderBottom","vars","palette","TableCell","border","mode","lighten","alpha","divider","darken","textAlign","color","text","primary","lineHeight","pxToRem","fontWeight","fontWeightMedium","secondary","fontSize","paddingCheckbox","flexDirection","position","top","zIndex","backgroundColor","background","default","TableCell_TableCell","inProps","ref","component","useDefaultProps","componentProp","paddingProp","scope","scopeProp","sizeProp","sortDirection","variantProp","other","_objectWithoutPropertiesLoose","table","tablelvl2","isHeadCell","undefined","ariaSort","_jsx","as","clsx","PaginationComponentSkeleton","secondaryStyles","skeleton","PaginationComponent","currentPage","lastPage","maxLength","setCurrentPage","hasNextPage","hasPreviousPage","loading","fetchNextPage","fetchPreviousPage","pageNums","getPaginationItems","res","deductedMaxLength","sideLength","j","NaN","k","deductedSideLength","l","remainingLength","m","n","o","unshift","p","jsxs","button","disabled","onClick","item","TableWithPagination","data","columns","error","page","refetch","isSecondaryStyles","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","ErrorCard","TableGrid","rows","metadata","pageCount","module","exports"],"sourceRoot":""}