@erpsquad/common 1.8.107 → 1.8.108
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.
- package/dist/_virtual/index/index.esm10.js +2 -4
- package/dist/_virtual/index/index.esm10.js.map +1 -1
- package/dist/_virtual/index/index.esm11.js +4 -2
- package/dist/_virtual/index/index.esm11.js.map +1 -1
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/action-bar/action-bar.d.ts +1 -1
- package/dist/components/checkbox/checkbox.d.ts +1 -1
- package/dist/components/date-picker/date-picker.d.ts +1 -1
- package/dist/components/footer/footer.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/components/form-control/form-parser/form-section/index.esm.js +5 -4
- package/dist/components/form-control/form-parser/form-section/index.esm.js.map +1 -1
- package/dist/components/form-control/form-parser/form-section/index.js +22 -22
- package/dist/components/form-control/form-parser/form-section/index.js.map +1 -1
- package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/components/icons/action-arrow.d.ts +3 -3
- package/dist/components/icons/add-circle.d.ts +3 -3
- package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/components/icons/arrow-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/components/icons/assignments.d.ts +3 -3
- package/dist/components/icons/blank-circle.d.ts +3 -3
- package/dist/components/icons/block-filled.d.ts +3 -3
- package/dist/components/icons/calendar-add.d.ts +3 -3
- package/dist/components/icons/calendar.d.ts +3 -3
- package/dist/components/icons/checkbox-square.d.ts +3 -3
- package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/components/icons/clock.d.ts +3 -3
- package/dist/components/icons/close.d.ts +3 -3
- package/dist/components/icons/coin-outline.d.ts +3 -3
- package/dist/components/icons/copy.d.ts +3 -3
- package/dist/components/icons/coupon.d.ts +3 -3
- package/dist/components/icons/cross-hire.d.ts +3 -3
- package/dist/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/components/icons/dashboard.d.ts +3 -3
- package/dist/components/icons/document-download.d.ts +3 -3
- package/dist/components/icons/document.d.ts +3 -3
- package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/components/icons/dollar-circle.d.ts +3 -3
- package/dist/components/icons/edit.d.ts +3 -3
- package/dist/components/icons/email.d.ts +3 -3
- package/dist/components/icons/export.d.ts +3 -3
- package/dist/components/icons/eye-off.d.ts +3 -3
- package/dist/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/components/icons/eye.d.ts +3 -3
- package/dist/components/icons/filled-circle.d.ts +3 -3
- package/dist/components/icons/filter-remove.d.ts +3 -3
- package/dist/components/icons/filter.d.ts +3 -3
- package/dist/components/icons/folder-save.d.ts +3 -3
- package/dist/components/icons/grid.d.ts +3 -3
- package/dist/components/icons/hashtag.d.ts +3 -3
- package/dist/components/icons/image.d.ts +3 -3
- package/dist/components/icons/import.d.ts +3 -3
- package/dist/components/icons/info-circle.d.ts +3 -3
- package/dist/components/icons/info.d.ts +3 -3
- package/dist/components/icons/link-horizontal.d.ts +3 -3
- package/dist/components/icons/link.d.ts +3 -3
- package/dist/components/icons/location.d.ts +3 -3
- package/dist/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/components/icons/lowest-price.d.ts +3 -3
- package/dist/components/icons/more.d.ts +3 -3
- package/dist/components/icons/notification.d.ts +3 -3
- package/dist/components/icons/paper-clip.d.ts +3 -3
- package/dist/components/icons/paragraph.d.ts +3 -3
- package/dist/components/icons/payment-request.d.ts +3 -3
- package/dist/components/icons/phone.d.ts +3 -3
- package/dist/components/icons/printer.d.ts +3 -3
- package/dist/components/icons/process-calendar.d.ts +3 -3
- package/dist/components/icons/promotion.d.ts +3 -3
- package/dist/components/icons/radio-button.d.ts +3 -3
- package/dist/components/icons/receipt-filled.d.ts +3 -3
- package/dist/components/icons/receipt-outline.d.ts +3 -3
- package/dist/components/icons/receipt.d.ts +3 -3
- package/dist/components/icons/refresh-icon.d.ts +3 -3
- package/dist/components/icons/replace.d.ts +3 -3
- package/dist/components/icons/save.d.ts +3 -3
- package/dist/components/icons/search-status.d.ts +3 -3
- package/dist/components/icons/search.d.ts +3 -3
- package/dist/components/icons/settings-fallback.d.ts +3 -3
- package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/components/icons/stacked-layer.d.ts +3 -3
- package/dist/components/icons/start-filled.d.ts +3 -3
- package/dist/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/components/icons/tick-circle.d.ts +3 -3
- package/dist/components/icons/tick-octagon.d.ts +3 -3
- package/dist/components/icons/tick.d.ts +3 -3
- package/dist/components/icons/toggle-switch.d.ts +3 -3
- package/dist/components/icons/trash.d.ts +3 -3
- package/dist/components/icons/wave.d.ts +3 -3
- package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/components/icons/work-centre.d.ts +3 -3
- package/dist/components/location-select.d.ts +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +17 -23
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js +2 -2
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table.d.ts +1 -2
- package/dist/components/material-table/material-table.d.ts +1 -1
- package/dist/components/phone-input/phone-input.d.ts +1 -1
- package/dist/components/providers/ERPUIProvider/index.esm.js +4 -2
- package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
- package/dist/components/providers/ERPUIProvider/index.js +1 -1
- package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
- package/dist/components/providers/ERPUIProvider.d.ts +2 -0
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/switches/android-12-switch.d.ts +3 -1
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/time-picker/time-picker.d.ts +1 -1
- package/dist/components/upload-media/upload-media.d.ts +1 -1
- package/dist/contexts/page-context/index.esm.js +5 -5
- package/dist/contexts/page-context/index.esm.js.map +1 -1
- package/dist/contexts/page-context/index.js +1 -1
- package/dist/contexts/page-context/index.js.map +1 -1
- package/dist/contexts/page-context.d.ts +2 -0
- package/dist/hooks/apiHelper/index.esm.js.map +1 -1
- package/dist/hooks/apiHelper/index.js.map +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/src/components/accordion/accordion.d.ts +1 -1
- package/dist/src/components/action-bar/action-bar.d.ts +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/date-picker/date-picker.d.ts +1 -1
- package/dist/src/components/footer/footer.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/src/components/icons/action-arrow.d.ts +3 -3
- package/dist/src/components/icons/add-circle.d.ts +3 -3
- package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/src/components/icons/arrow-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/src/components/icons/assignments.d.ts +3 -3
- package/dist/src/components/icons/blank-circle.d.ts +3 -3
- package/dist/src/components/icons/block-filled.d.ts +3 -3
- package/dist/src/components/icons/calendar-add.d.ts +3 -3
- package/dist/src/components/icons/calendar.d.ts +3 -3
- package/dist/src/components/icons/checkbox-square.d.ts +3 -3
- package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/src/components/icons/clock.d.ts +3 -3
- package/dist/src/components/icons/close.d.ts +3 -3
- package/dist/src/components/icons/coin-outline.d.ts +3 -3
- package/dist/src/components/icons/copy.d.ts +3 -3
- package/dist/src/components/icons/coupon.d.ts +3 -3
- package/dist/src/components/icons/cross-hire.d.ts +3 -3
- package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/src/components/icons/dashboard.d.ts +3 -3
- package/dist/src/components/icons/document-download.d.ts +3 -3
- package/dist/src/components/icons/document.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle.d.ts +3 -3
- package/dist/src/components/icons/edit.d.ts +3 -3
- package/dist/src/components/icons/email.d.ts +3 -3
- package/dist/src/components/icons/export.d.ts +3 -3
- package/dist/src/components/icons/eye-off.d.ts +3 -3
- package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/src/components/icons/eye.d.ts +3 -3
- package/dist/src/components/icons/filled-circle.d.ts +3 -3
- package/dist/src/components/icons/filter-remove.d.ts +3 -3
- package/dist/src/components/icons/filter.d.ts +3 -3
- package/dist/src/components/icons/folder-save.d.ts +3 -3
- package/dist/src/components/icons/grid.d.ts +3 -3
- package/dist/src/components/icons/hashtag.d.ts +3 -3
- package/dist/src/components/icons/image.d.ts +3 -3
- package/dist/src/components/icons/import.d.ts +3 -3
- package/dist/src/components/icons/info-circle.d.ts +3 -3
- package/dist/src/components/icons/info.d.ts +3 -3
- package/dist/src/components/icons/link-horizontal.d.ts +3 -3
- package/dist/src/components/icons/link.d.ts +3 -3
- package/dist/src/components/icons/location.d.ts +3 -3
- package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/src/components/icons/lowest-price.d.ts +3 -3
- package/dist/src/components/icons/more.d.ts +3 -3
- package/dist/src/components/icons/notification.d.ts +3 -3
- package/dist/src/components/icons/paper-clip.d.ts +3 -3
- package/dist/src/components/icons/paragraph.d.ts +3 -3
- package/dist/src/components/icons/payment-request.d.ts +3 -3
- package/dist/src/components/icons/phone.d.ts +3 -3
- package/dist/src/components/icons/printer.d.ts +3 -3
- package/dist/src/components/icons/process-calendar.d.ts +3 -3
- package/dist/src/components/icons/promotion.d.ts +3 -3
- package/dist/src/components/icons/radio-button.d.ts +3 -3
- package/dist/src/components/icons/receipt-filled.d.ts +3 -3
- package/dist/src/components/icons/receipt-outline.d.ts +3 -3
- package/dist/src/components/icons/receipt.d.ts +3 -3
- package/dist/src/components/icons/refresh-icon.d.ts +3 -3
- package/dist/src/components/icons/replace.d.ts +3 -3
- package/dist/src/components/icons/save.d.ts +3 -3
- package/dist/src/components/icons/search-status.d.ts +3 -3
- package/dist/src/components/icons/search.d.ts +3 -3
- package/dist/src/components/icons/settings-fallback.d.ts +3 -3
- package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/src/components/icons/stacked-layer.d.ts +3 -3
- package/dist/src/components/icons/start-filled.d.ts +3 -3
- package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/tick-circle.d.ts +3 -3
- package/dist/src/components/icons/tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/tick.d.ts +3 -3
- package/dist/src/components/icons/toggle-switch.d.ts +3 -3
- package/dist/src/components/icons/trash.d.ts +3 -3
- package/dist/src/components/icons/wave.d.ts +3 -3
- package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/work-centre.d.ts +3 -3
- package/dist/src/components/location-select.d.ts +1 -1
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -2
- package/dist/src/components/material-table/material-table.d.ts +1 -1
- package/dist/src/components/phone-input/phone-input.d.ts +1 -1
- package/dist/src/components/providers/ERPUIProvider.d.ts +2 -0
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/select/select.d.ts +1 -1
- package/dist/src/components/switches/android-12-switch.d.ts +3 -1
- package/dist/src/components/text-field/text-field.d.ts +1 -1
- package/dist/src/components/time-picker/time-picker.d.ts +1 -1
- package/dist/src/components/upload-media/upload-media.d.ts +1 -1
- package/dist/src/contexts/page-context.d.ts +2 -0
- package/dist/src/utils/common-utility.d.ts +1 -1
- package/dist/style.css +75 -75
- package/dist/utils/common-utility.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/material-editable-table/material-editable-table.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport React, { cloneElement, useCallback, useEffect, useState } from 'react';\nimport {\n\tMRT_ColumnDef,\n\tMRT_ColumnSizingInfoState,\n\tMRT_ColumnSizingState,\n\tMRT_Header,\n\tMRT_Row,\n\tMRT_RowData,\n\tMRT_RowSelectionState,\n\tMRT_SortingState,\n\tMRT_TableInstance,\n\tMRT_TableState,\n\tMaterialReactTable,\n\tMaterialReactTableProps,\n\tuseMaterialReactTable,\n\t// Cell\n} from 'material-react-table';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport {\n\tBox,\n\tstyled,\n\tMenuItem,\n\tIconButton,\n\tListItemIcon,\n\tListItemText,\n\tSvgIconProps,\n\tDivider\n} from '@mui/material';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport Menu from '../menu/menu';\nimport Typography from '../typography/typography';\nimport SearchBar from '../search-bar/search-bar';\nimport images from '../../assets/images';\n// import DeleteIcon from \"@mui/icons-material/Delete\";\n// import UpdateIcon from \"@mui/icons-material/Update\";\n// import PlayIcon from \"@mui/icons-material/PlayArrow\";\n\nimport './material-editable-table.scss';\nimport {\n\tArrowUpDown,\n\tCheckBoxIcon,\n\tClose,\n\tRecgtangleIcon,\n\tTrash,\n\tSave\n} from '../icons';\n// import {\n// \tArrowDropDown /* , SaveOutlined */,\n// \tArrowDropUp\n// } from '@mui/icons-material';\nimport InlineEditFields from './components/inline-edit-fields';\nimport Tooltip from '../tooltip/Tooltip';\nimport Button from '../button/button';\nimport Add from '@mui/icons-material/Add';\nimport dayjs from 'dayjs';\nimport * as yup from 'yup';\nimport ConfirmPopUp from '../confirm-modal/confirm-modal';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\nimport { usePages } from '../../hooks/use-pages';\nimport { useNavigate } from 'react-router-dom';\n// import { PathnameAccounting } from 'accounting/src/pathname.accounting';\n// import { PathnameInventory } from 'inventory/src/pathname.inventory';\n// import { PathnameManufacturing } from 'manufacturing/src/pathname.manufacturing';\n// import { PathnamePurchase } from 'procurement/src/pathname.procurement';\n// import { PathnameCrm } from 'crm/src/pathname.crm';\n// import { PathnameUsers } from '../../constants/pathnames/pathname.user';\n// import { PathnameRental } from '../../../../rental/src/pathname.rental';\n// import { PathnameDocument } from 'document/src/pathname.document';\nimport { PathnameDocument } from '../../constants/pathnames/pathname.document';\nimport { PathnameAccounting } from '../../constants/pathnames/pathname.accounting';\nimport { PathnameInventory } from '../../constants/pathnames/pathname.inventory';\nimport { PathnameManufacturing } from '../../constants/pathnames/pathname.manufacturing';\nimport { PathnamePurchase } from '../../constants/pathnames/pathname.procurement';\nimport { PathnameCrm } from '../../constants/pathnames/pathname.crm';\nimport { PathnameUsers } from '../../constants/pathnames/pathname.user';\nimport { PathnameRental } from '../../constants/pathnames/pathname.rental';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\n\ntype ExtraEditVariants =\n\t| 'file'\n\t| 'image'\n\t| 'date'\n\t| 'number'\n\t| 'time'\n\t| 'date_time'\n\t| 'phone'\n\t| 'checkbox';\n\ntype DisableFunction = (row: any, virtualRow?: any) => boolean;\n\nexport type TypeBooleanLabels = { 1: string; 0: string; true: string; false: string }\n\nexport interface MaterialEditableTableColumnProps\n\textends Omit<MRT_ColumnDef<MRT_RowData>, 'editVariant'> {\n\tvisible?: boolean;\n\ttype?: string;\n\tshowDefaultCurrency?: boolean,\n\tvalueGet?: string;\n\tcustom_class?: string;\n\ttypeArrayAccessorKey?: string; //when type is an array of object\n\ttypeBooleanLabels?: TypeBooleanLabels; //when type is an boolean\n\teditVariant?: MRT_ColumnDef<MRT_RowData>['editVariant'] | ExtraEditVariants;\n\teditProperties?: {\n\t\tfield_name?: string;\n\t\tvalueKey?: string;\n\t\tplaceholder?: string;\n\t\tdateFormat?: string;\n\t\tvalidations?: any[];\n\t\tis_multiple?: boolean;\n\t\tis_multiline?: boolean;\n\t\tdisable?: boolean | DisableFunction;\n\t};\n\tredirectionPathWithId?: string;\n\tidField?: string;\n\tisOnClickEditable?: boolean; // Controls whether clicking this column triggers row edit mode (default: true)\n}\n\n\n\nexport interface MaterialEditableTableColumnHeaderProps {\n\tcolumn: MRT_ColumnDef<any, any>;\n\theader: MRT_Header<any>;\n\ttable: MRT_TableInstance<any>;\n}\n\ntype rowSelectionCallback = (row: MRT_Row) => boolean\n\ninterface MaterialEditableTablePropsType {\n\tenablePagination?: boolean;\n\trows: any;\n\ttotalPages: number;\n\tcolumns: any;\n\tpaginationModel: IPaginationModel;\n\tcolumnOrder?: string[];\n\tupdateData?: any;\n\thandleColumnOrdering?: (colOrder: any) => void;\n\tenableEditing?: boolean;\n\tenableColumnDragging?: boolean;\n\trowActionMenu?: any;\n\tdestructiveActionMenu?: any;\n\tgetRowId?: any;\n\tstates?: Partial<MRT_TableState<any>>;\n\tonSortingChange?: any;\n\tdisableDefaultActionColumn?: boolean;\n\tenableRowSelection?: boolean | rowSelectionCallback;\n\tdefaultActionColumnItems?: React.ReactElement[];\n\tenableBottomToolbar?: boolean;\n\tSetSelectedRowId?: any;\n\tisResetRow?: boolean;\n\tonCreateRow?: (data: any) => Promise<unknown>;\n\tonEditRow?: (data: any) => Promise<unknown>;\n\tonDeleteRow?: (data: any) => Promise<unknown>;\n\teditDisplayMode?: MaterialReactTableProps<any>['editDisplayMode'];\n\tenableRowCreate?: boolean;\n\tonChangeRowField?: (e: any, type: string, row: any) => void;\n\tonSelectRow?: (rows: any, prevSelected?: any) => any;\n\tenableColumnResizing?: boolean;\n\tselectedRowIds?: any[];\n\tonColumnVisibility?: (columns: MaterialTableColumnProps[]) => void\n\tgetSelectedData: any;\n\tenableAddCustomField?: boolean;\n\tdisabledDefaultActionColumnIcon?: boolean\n\tenableRowDragging?: boolean\n\thandleColumnResizing?: (sizes: MRT_ColumnSizingState) => void,\n\tcolumnSizes?: MRT_ColumnSizingState,\n}\n\nconst TableWrapper = styled(Box)(({ theme: { palette } }) => ({\n\t'.MuiTableCell-root': {\n\t\tborder: '1px solid #efefef',\n\t\tborderBottom: 0,\n\t\tborderLeft: 0,\n\t\tpadding: '0.19rem 0.5rem',\n\t\tlineHeight: '19px',\n\t\tfontSize: '14px',\n\t\tminHeight: 40,\n\t\t// '&:first-child': {\n\t\t// \tborderLeft: '1px solid #efefef'\n\t\t// },\n\t\t// '&:last-child': {\n\t\t// \tborderBottom: '1px solid #efefef'\n\t\t// }\n\n\t},\n\t'.MuiTableCell-head': {\n\t\tbackgroundColor: palette.theme?.secondary[100]\n\t},\n\t'.MuiTableContainer-root': {\n\t\tmaxHeight: 'clamp(350px, 100vh - 200px, 9999px) !important',\n\t},\n\n\t'.MuiPaper-root': {\n\t\tboxShadow: 'none',\n\n\t},\n\t'.MuiPaginationItem-root': {\n\t\t'&.Mui-selected': {\n\t\t\tbackgroundColor: palette?.theme?.primary[700],\n\t\t\tcolor: 'white'\n\t\t}\n\t},\n\t'.MuiTableRow-root': {\n\t\t'&.Mui-selected': {\n\t\t\tbackgroundColor: `${palette?.theme?.primary[100]} !important`,\n\t\t\tcolor: 'white'\n\t\t}\n\t},\n\t'.MuiCheckbox-indeterminate': {\n\t\tcolor: `${palette?.theme?.primary[700]} !important`,\n\t\t\"& svg\": {\n\t\t\theight: `20px !important`,\n\t\t\twidth: `20px !important`,\n\t\t}\n\t}\n}));\n\nconst MaterialEditableTable = React.memo(({\n\tenablePagination = false,\n\trows,\n\tcolumns,\n\ttotalPages,\n\tpaginationModel,\n\tcolumnOrder,\n\tupdateData,\n\thandleColumnOrdering,\n\tenableEditing,\n\tenableColumnDragging,\n\tstates,\n\trowActionMenu,\n\tdestructiveActionMenu,\n\tdisableDefaultActionColumn,\n\tenableRowSelection,\n\tdefaultActionColumnItems = [],\n\tenableBottomToolbar,\n\tSetSelectedRowId,\n\tisResetRow,\n\tonCreateRow,\n\tonEditRow,\n\tonDeleteRow,\n\teditDisplayMode,\n\tenableRowCreate,\n\tonChangeRowField,\n\tonSelectRow,\n\tenableColumnResizing = true,\n\tselectedRowIds = [],\n\tonColumnVisibility,\n\tonSortingChange,\n\tgetSelectedData,\n\tdisabledDefaultActionColumnIcon = false,\n\tenableAddCustomField = true,\n\tenableRowDragging = false,\n\thandleColumnResizing = () => { },\n\tcolumnSizes = {},\n\t// eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n\t// getRowId,\n\t// onDelete,\n\t// onUpdate,\n\t...rest\n}: MaterialTablePropsType) => {\n\tconst { t } = useTranslation();\n\tconst { formData = null, updatePageInfo, activePage: aPage } = usePages()\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\tconst { pageNo } = paginationModel;\n\tconst [row, setRow] = useState({});\n\tconst [tableColumns, setTableColumns] = useState(columns);\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\tconst [popUpShow, setPopupShow] = useState<boolean>(false);\n\tconst [rowAnchorEl, setRowAnchorEl] = useState<null | HTMLElement>(null);\n\tconst visibleColumns = tableColumns.filter((column: any) => column.visible);\n\tconst hiddenColumns = tableColumns.filter((column: any) => !column.visible);\n\tconst [filteredOptions, setFilteredOptions] = useState(hiddenColumns);\n\tconst [selectedRow, setSelectedRow] = useState<number | null>(null);\n\tconst [validationErrors, setValidationErrors] = useState<any>({});\n\tconst [validationSchema, setValidationSchema] = useState<any>([]);\n\tconst [isCreatingRow, setIsCreatingRow] = useState<boolean>(false);\n\tconst [isEditingRow, setIsEditingRow] = useState<boolean>(false);\n\tconst [isDeletingRow, setIsDeletingRow] = useState<boolean>(false);\n\tconst [rowToDelete, setRowToDelete] = useState<any>(null);\n\tconst [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\tconst [isChecked, setIsChecked] = useState(false)\n\tconst [sorting, setSorting] = useState<MRT_SortingState>([]);\n\tconst [disableNextEdit, setDisableNextEdit] = useState(false);\n\tconst [columnSizing, setColumnSizing] = useState<MRT_ColumnSizingState>(activePage.column_sizes);\n\tconst [columnSizingInfo, setColumnSizingInfo] = useState<MRT_ColumnSizingInfoState>({\n\t\tcolumnSizingStart: [],\n\t\tdeltaOffset: null,\n\t\tdeltaPercentage: null,\n\t\tisResizingColumn: false,\n\t\tstartOffset: null,\n\t\tstartSize: null\n\t});\n\tconst [clickStartTime, setClickStartTime] = useState<number>(0);\n\n\tconst navigate = useNavigate();\n\tconst currentModule = location.pathname.split('/')[2]\n\n\tlet redirectionPath = ''\n\tswitch (currentModule) {\n\t\tcase 'accounting':\n\t\t\tredirectionPath = PathnameAccounting.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'inventory':\n\t\t\tredirectionPath = PathnameInventory.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'manufacturing':\n\n\t\t\tredirectionPath = PathnameManufacturing.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'procurement':\n\t\t\tredirectionPath = PathnamePurchase.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'crm':\n\t\t\tredirectionPath = PathnameCrm.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\tredirectionPath = PathnameUsers.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'rental':\n\t\t\tredirectionPath = PathnameRental.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'drive':\n\t\t\tredirectionPath = PathnameDocument.ADD_CUSTOM_FIELDS\n\t\t\tbreak;\n\t}\n\tconst path = `/dashboard/${currentModule}${redirectionPath}`\n\tconst getValidationType = (column: any) => {\n\t\tswitch (column.editVariant) {\n\t\t\tcase 'select':\n\t\t\t\treturn column?.editProperties?.is_multiple ? yup.array() : yup.string();\n\n\t\t\tcase 'number':\n\t\t\t\treturn yup.number().nullable().transform((value, originalValue) => (originalValue === \"\" ? null : value));\n\n\t\t\tcase 'url':\n\t\t\t\treturn yup\n\t\t\t\t\t.string()\n\t\t\t\t\t.matches(\n\t\t\t\t\t\t/^(https?:\\/\\/)?((([a-zA-Z0-9_-]+\\.)+[a-zA-Z]{2,})|localhost)(:\\d{2,5})?(\\/[a-zA-Z0-9#_-]+\\/?)*(\\?[a-zA-Z0-9&=_-]+)?(#\\S+)?$/,\n\t\t\t\t\t\t{ excludeEmptyString: true, message: 'Please enter valid URL.' }\n\t\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn yup.string()\n\t\t}\n\t};\n\n\tconst validationReducer = (\n\t\tvalidations: any,\n\t\tvalidation: any,\n\t\tcolumn: any\n\t) => {\n\t\tlet vld = validations\n\t\tswitch (validation.type) {\n\t\t\tcase 'required':\n\t\t\t\tvld = validation.value\n\t\t\t\t\t? validations.required(validation.msg_en).typeError(validation.msg_en)\n\t\t\t\t\t: column?.editProperties?.is_multiple\n\t\t\t\t\t\t? validations.min(1, validation.msg_en)\n\t\t\t\t\t\t: validations;\n\t\t\t\tbreak\n\t\t\tcase 'min':\n\t\t\t\tvld = validations.min(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'email':\n\t\t\t\tvld = validations.email(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'max':\n\t\t\t\tvld = validations.max(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'positive':\n\t\t\t\tvld = validation.value === true ? validations.test('is-positive-number', 'Value must be a positive number', (value) => !value || value >= 0) : validations;\n\t\t\t\tbreak\n\t\t\tcase 'when':\n\t\t\t\treturn validations.when(validation.relation, {\n\t\t\t\t\tis: (val: any) => val === validation.values,\n\t\t\t\t\tthen: () =>\n\t\t\t\t\t\tvalidation?.thenValidations?.reduce(\n\t\t\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\t\t\tvalidationReducer(validations, validation, column),\n\t\t\t\t\t\t\tvalidations\n\t\t\t\t\t\t) || validations,\n\t\t\t\t\totherwise: () =>\n\t\t\t\t\t\tvalidation?.otherWiseValidations?.reduce(\n\t\t\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\t\t\tvalidationReducer(validations, validation, column),\n\t\t\t\t\t\t\tvalidations\n\t\t\t\t\t\t) || validations\n\t\t\t\t});\n\t\t\t// Add more cases for other validation types as needed\n\t\t\tdefault:\n\t\t\t\tvld = validations;\n\t\t\t\tbreak\n\t\t}\n\n\t\tif (validation.type == 'required' && validation.value && (!column?.editVariant || column?.editVariant == 'text')) {\n\t\t\tvld = validations.test('no-blank-spaces', 'Blank space is not allowed', (value) => {\n\t\t\t\treturn value && value.trim()?.length > 0;\n\t\t\t})\n\t\t}\n\n\t\treturn vld\n\n\t};\n\n\n\tconst generateValidationSchema = (columns: any[]) => {\n\t\tconst schema: any = {};\n\t\tcolumns.forEach((clm) => {\n\t\t\tif (clm?.editProperties?.validations?.length) {\n\t\t\t\tconst fieldValidations = clm?.editProperties?.validations.reduce(\n\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\tvalidationReducer(validations, validation, clm),\n\t\t\t\t\tgetValidationType(clm)\n\t\t\t\t);\n\t\t\t\tschema[clm.accessorKey] = fieldValidations;\n\t\t\t}\n\t\t});\n\t\treturn schema;\n\t};\n\n\tuseEffect(() => {\n\t\tsetTableColumns(columns);\n\n\t\tconst schema: any = generateValidationSchema(columns);\n\t\tsetValidationSchema(yup.object().shape(schema));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [columns]);\n\n\tuseEffect(() => {\n\t\tif (!columnSizingInfo?.isResizingColumn) {\n\t\t\tupdatePageInfo({ column_sizes: { ...activePage.column_sizes, ...columnSizing } })\n\t\t\thandleColumnResizing?.(columnSizing)\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [columnSizingInfo?.isResizingColumn, columnSizing])\n\n\tconst handleHeaderClick = (event: any) => {\n\t\tsetAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleHeaderClose = () => {\n\t\tsetAnchorEl(null);\n\t};\n\n\tconst handleVisibleColumn = (column: any) => {\n\t\tconst updatedColumns = tableColumns.map((col: any) => ({\n\t\t\t...col,\n\t\t\tvisible: col.accessorKey === column.accessorKey ? false : col.visible\n\t\t}));\n\t\tsetTableColumns(updatedColumns);\n\t\tonColumnVisibility?.(JSON.parse(JSON.stringify(updatedColumns)))\n\t\tsetFilteredOptions([...filteredOptions, column]);\n\t\tsetAnchorEl(null);\n\t};\n\n\tconst handleAddButtonClick = () => {\n\t\tsetPopupShow(true);\n\t};\n\n\tconst handleBackButtonClick = () => {\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleAddColumn = (column: any) => {\n\t\tconst updatedColumns = tableColumns.map((col: any) => ({\n\t\t\t...col,\n\t\t\tvisible: col.accessorKey === column.accessorKey ? true : col.visible\n\t\t}));\n\t\tonColumnVisibility?.(JSON.parse(JSON.stringify(updatedColumns)))\n\t\tsetTableColumns(updatedColumns);\n\n\t\tconst updatedFilteredOptions = filteredOptions.filter(\n\t\t\t(option: any) => option.accessorKey !== column.accessorKey\n\t\t);\n\t\tsetFilteredOptions(updatedFilteredOptions);\n\t\tsetAnchorEl(null);\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleSearchEvent = (searchQuery: string) => {\n\t\tconst filteredColumns = hiddenColumns.filter((option: any) =>\n\t\t\toption.header.toLowerCase().includes(searchQuery.toLowerCase())\n\t\t);\n\t\tsetFilteredOptions(filteredColumns);\n\t};\n\n\tconst handleCustomAddColumn = () => {\n\t\tnavigate(path, { state: formData })\n\t\tsetAnchorEl(null);\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleRowClick = (rowId: number) => {\n\t\tsetSelectedRow(rowId); // Update selected row ID when a row is clicked\n\t};\n\n\t// const handleDeleteClick = (event: any, data: any) => {\n\t// onDelete?.(data.id);\n\t// };\n\t// const handleUpdateClick = (event: any, data: any) => {\n\t// onUpdate?.(data.id);\n\t// };\n\n\tconst handleActionsClick = (event: any, data: any) => {\n\t\tsetRow(data);\n\t\tsetRowAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleActionsClose = () => {\n\t\tsetRowAnchorEl(null);\n\t};\n\n\tconst formtValues = useCallback((values: any, cells: any[]) => {\n\t\tconst v: any = {};\n\t\tObject.keys(values).forEach((vl) => {\n\t\t\tconst val = values[vl];\n\t\t\tconst cell = cells.find((c) => c.accessorKey == vl);\n\n\t\t\tif (val) {\n\t\t\t\tif (val instanceof File) {\n\t\t\t\t\tv[vl] = val.name;\n\t\t\t\t} else if (cell && cell?.editVariant == 'date') {\n\t\t\t\t\tv[vl] = dayjs(val).format(cell?.dateFormat || 'DD-MM-YYYY');\n\t\t\t\t} else if (cell && cell?.editVariant == 'select' && typeof val === 'object' && val !== null) {\n\t\t\t\t\t// For select fields, extract the display name from the object\n\t\t\t\t\t// Try multiple possible display properties in order of preference\n\t\t\t\t\tv[vl] = val.name || val.label || val.display_name || val.title || val.value || val.id || val;\n\t\t\t\t} else if (cell && cell?.editVariant == 'select' && typeof val === 'string') {\n\t\t\t\t\t// For select fields that are already strings, keep them as is\n\t\t\t\t\tv[vl] = val;\n\t\t\t\t} else {\n\t\t\t\t\tv[vl] = val;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv[vl] = val;\n\t\t\t}\n\t\t});\n\n\t\treturn v;\n\t}, []); // No dependencies needed as this function doesn't rely on external values\n\n\tconst handleRowDelete = async () => {\n\t\tsetIsDeletingRow(true);\n\t\tif (rowToDelete) {\n\t\t\tawait onDeleteRow?.(rowToDelete);\n\t\t\tsetRowToDelete(null);\n\t\t}\n\t\tsetIsDeletingRow(false);\n\t};\n\n\tconst checkRequired = useCallback((editProperties: any) => {\n\t\treturn editProperties?.validations?.some((validation: any) => validation.type === 'required')\n\t}, [])\n\tuseEffect(() => {\n\t\tconst selectedRows = {};\n\t\t// Build the selectedRows object\n\t\tif (!isChecked && selectedRowIds.length) {\n\t\t\trows.forEach((row) => {\n\t\t\t\tif (selectedRowIds.includes(row.id)) {\n\t\t\t\t\tselectedRows[row.id] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetRowSelection(selectedRows);\n\t\t\tsetIsChecked(true)\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [rows, selectedRowIds]); // Dependency only on rows and selectedRowIds\n\n\tuseEffect(() => {\n\t\tif (onSortingChange instanceof Function) {\n\t\t\tconst sortingArray = Array.isArray(sorting) ? sorting : [];\n\t\t\tonSortingChange(sortingArray[0] || null)\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [sorting])\n\n\n\tconst resetRowSelection = () => {\n\t\tsetRowSelection({});\n\t\tsetDisableNextEdit(false)\n\t}\n\tconst getTextWidth = (text: string) => {\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tconst ctx = canvas.getContext(\"2d\");\n\t\tif (!ctx) return 50;\n\t\treturn ctx.measureText(text).width + 5; // padding\n\t}\n\n\tconst handleSaveRow = useCallback(async (row: any, values: any, tableInstance: any) => {\n\t\tconsole.log('handleSaveRow', onEditRow);\n\t\ttry {\n\t\t\tawait validationSchema.validate(values, {\n\t\t\t\tabortEarly: false\n\t\t\t});\n\t\t\tsetValidationErrors({});\n\t\t\tsetIsEditingRow(true);\n\t\t\tsetDisableNextEdit(false)\n\t\t\tconst cells = row.getAllCells().map((c: any) => c.column.columnDef);\n\t\t\trow._valuesCache = formtValues(values, cells);\n\n\t\t\tconst data = { row, values, table: tableInstance };\n\n\t\t\tif (onEditRow) {\n\t\t\t\tawait onEditRow(data, 'edit');\n\t\t\t}\n\t\t\tsetIsEditingRow(false);\n\t\t\ttableInstance.setEditingRow(null);\n\t\t} catch (err) {\n\t\t\tconsole.log(\"handleSaveRow error\", err);\n\t\t\tsetIsEditingRow(false);\n\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\tconst errors: Record<string, string> = {};\n\n\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\terrors[error.path] = error.message;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsetValidationErrors(errors);\n\t\t\t} else if (err instanceof Error) {\n\t\t\t\tenqueueSnackbar(err.message, { variant: 'error' })\n\t\t\t} else {\n\t\t\t\tenqueueSnackbar('Something went wrong', { variant: 'error' })\n\t\t\t}\n\t\t}\n\t}, [validationSchema, onEditRow, formtValues]);\n\n\tconst table = useMaterialReactTable({\n\t\t// options:{\n\t\t// \ttableLayout: \"auto\", // 👈 important\n\t\t// \tpadding: \"dense\",\n\t\t// },\n\t\t// columns: visibleColumns,\n\t\tdefaultColumn: {\n\t\t\tminSize: 0, // 👈 remove default min width\n\t\t\tsize: undefined, // 👈 optional, default size\n\t\t},\n\t\tcolumns: [\n\t\t\t...visibleColumns.map((c: any) => {\n\t\t\t\tconst headerWidth = getTextWidth(c.header || '');\n\t\t\t\tconst maxCellWidth = Math.max(\n\t\t\t\t\t...rows.map(row => getTextWidth(String(row[c.accessorKey] ?? '')))\n\t\t\t\t);\n\t\t\t\tconst finalWidth = Math.max(headerWidth, maxCellWidth);\n\t\t\t\treturn {\n\t\t\t\t\t...c,\n\t\t\t\t\t...(editDisplayMode === 'row'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tEdit: ({ cell, row, table, column }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<InlineEditFields\n\t\t\t\t\t\t\t\t\t\tcell={cell}\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tcol={c}\n\t\t\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\t\t\t\t\tcallback={(s) => console.log('Save', s)}\n\t\t\t\t\t\t\t\t\t\terrors={validationErrors}\n\t\t\t\t\t\t\t\t\t\tvalidationSchema={validationSchema}\n\t\t\t\t\t\t\t\t\t\tsetValidationErrors={setValidationErrors}\n\t\t\t\t\t\t\t\t\t\tonChangeRowField={onChangeRowField}\n\t\t\t\t\t\t\t\t\t\tgetSelectedData={(name, row) => getSelectedData?.(name, row)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t\tHeader: (\n\t\t\t\t\t\t<Box display='flex' alignItems='center'>\n\t\t\t\t\t\t\t{c.header}\n\t\t\t\t\t\t\t{c?.required || checkRequired(c?.editProperties) && (\n\t\t\t\t\t\t\t\t<Typography type='s5' color='theme.error.600'>\n\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t),\n\t\t\t\t\tenableColumnDragging: c.id !== 'actions',\n\t\t\t\t\t// cellStyle: { ...c.cellStyle, width: finalWidth },\n\t\t\t\t\t// headerStyle: { ...c.headerStyle, width: finalWidth },\n\t\t\t\t\t// size: finalWidth\n\t\t\t\t\tsize: undefined,\n\t\t\t\t\t// minSize: 40,\n\t\t\t\t\tmaxSize: 800,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...(!disableDefaultActionColumn\n\t\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'actions',\n\t\t\t\t\t\tenableEditing: false,\n\t\t\t\t\t\tsize: defaultActionColumnItems?.length > 1 ? 80 : 50,\n\t\t\t\t\t\theader: (\n\t\t\t\t\t\t\t<IconButton size=\"small\" sx={{ p: 0.5, '&:hover': { backgroundColor: 'transparent' } }} onClick={handleHeaderClick}>\n\t\t\t\t\t\t\t\t<img src={images.common.arrowIcon} alt='Arrow Icon' />\n\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tenableColumnDragging: false,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tmuiTableHeadCellProps: {\n\t\t\t\t\t\t\tclassName: 'pinned-column'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmuiTableBodyCellProps: {\n\t\t\t\t\t\t\tclassName: 'pinned-column',\n\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\twhiteSpace: 'pre-wrap'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCell: (props) =>\n\t\t\t\t\t\t\tdefaultActionColumnItems?.length ? (\n\t\t\t\t\t\t\t\tdefaultActionColumnItems.map((item) => {\n\t\t\t\t\t\t\t\t\tconst updatedProps = {\n\t\t\t\t\t\t\t\t\t\t...item.props,\n\t\t\t\t\t\t\t\t\t\tonClick: () => item.props.onClick(props)\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn cloneElement(item, updatedProps);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : !disabledDefaultActionColumnIcon && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tonClick={(e) => handleActionsClick(e, props.row.original)} disabled={!rowActionMenu?.length && !destructiveActionMenu?.length}>\n\t\t\t\t\t\t\t\t\t<img src={images.more} alt='More Icon' />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t\t: [])\n\t\t],\n\t\tdata: rows,\n\t\tmuiTablePaperProps: {\n\t\t\tsx: {\n\t\t\t\ttableLayout: 'auto', // lets columns shrink to fit content\n\t\t\t},\n\t\t},\n\t\tcolumnResizeMode: 'onChange',\n\t\tonEditingRowSave: async (data) => {\n\t\t\tawait handleSaveRow(data.row, data.values, data.table);\n\t\t},\n\t\tonCreatingRowSave: async (data) => {\n\t\t\ttry {\n\t\t\t\tawait validationSchema.validate(data.values, {\n\t\t\t\t\tabortEarly: false\n\t\t\t\t});\n\t\t\t\tsetValidationErrors({});\n\t\t\t\tsetIsCreatingRow(true);\n\t\t\t\tsetDisableNextEdit(false)\n\t\t\t\tconst cells = data.row.getAllCells().map((c) => c.column.columnDef);\n\n\t\t\t\tdata.row._valuesCache = formtValues(data.values, cells);\n\n\t\t\t\tif (onCreateRow) {\n\t\t\t\t\tawait onCreateRow(data);\n\t\t\t\t}\n\t\t\t\tsetIsCreatingRow(false);\n\t\t\t\tdata.table.setCreatingRow(null);\n\t\t\t} catch (err) {\n\t\t\t\tsetIsCreatingRow(false);\n\t\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\t\tconst errors: Record<string, string> = {};\n\n\t\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\t\terrors[error.path] = error.message;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tsetValidationErrors(errors);\n\t\t\t\t} else if (err instanceof Error) {\n\t\t\t\t\tenqueueSnackbar(err.message, { variant: 'error' })\n\t\t\t\t} else {\n\t\t\t\t\tenqueueSnackbar('Something went wrong', { variant: 'error' })\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonCreatingRowCancel: () => resetRowSelection(),\n\t\tonEditingRowCancel: () => {\n\t\t\tconsole.log('onEditingRowCancel called');\n\t\t\tsetDisableNextEdit(false);\n\t\t},\n\t\tonSortingChange: states?.sorting ? onSortingChange : setSorting,\n\n\t\tdisplayColumnDefOptions: {\n\t\t\t'mrt-row-actions': {\n\t\t\t\t// size: onDeleteRow ? 80 : 50,\n\n\t\t\t\tHeader: (\n\t\t\t\t\t<IconButton onClick={handleHeaderClick} size='small'>\n\t\t\t\t\t\t<img src={images.common.arrowIcon} alt='Arrow Icon' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t),\n\t\t\t\tmuiTableBodyCellProps: ({ row, table }) => {\n\t\t\t\t\tconst isCreatingRow = table.getState().creatingRow?.id === row.id;\n\t\t\t\t\tconst isEditingRow = table.getState().editingRow?.id === row.id;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'& .MuiBox-root': {\n\t\t\t\t\t\t\t\tgap: 0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbackgroundColor: '#fff',\n\t\t\t\t\t\t\twhiteSpace: 'pre-wrap',\n\t\t\t\t\t\t\t// Hide save button only when editing existing row (not in create mode or non-editable mode)\n\t\t\t\t\t\t\t...(isEditingRow && !isCreatingRow && {\n\t\t\t\t\t\t\t\t'& .MuiBox-root > .MuiIconButton-root:first-of-type': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// Also hide any save icon buttons by aria-label or title\n\t\t\t\t\t\t\t\t'& button[aria-label*=\"Save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'& button[title*=\"Save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// Hide save icon by class or data attributes\n\t\t\t\t\t\t\t\t'& .MuiIconButton-root[class*=\"save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'& .MuiIconButton-root[data-testid*=\"save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonKeyUp: (e) => console.log(e)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t},\n\t\t\t'mrt-row-expand': {\n\t\t\t\tsize: 70, // Set the size of the expand-collapse arrow column here\n\t\t\t},\n\t\t\t'mrt-row-select': {\n\t\t\t\tsize: 50, // Set the width of the checkbox column here\n\t\t\t},\n\t\t},\n\t\trenderRowActions: ({ row, table }) => (\n\t\t\t<>\n\t\t\t\t{rest?.enableExpanding ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{row?.parentId && (\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0 }}>\n\t\t\t\t\t\t\t\t{onDeleteRow && (\n\t\t\t\t\t\t\t\t\t<Tooltip title='Delete'>\n\t\t\t\t\t\t\t\t\t\t<IconButton disabled={disableNextEdit} onClick={() => setRowToDelete(row)} size='small'>\n\t\t\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0 }}>\n\t\t\t\t\t\t{onDeleteRow && (\n\t\t\t\t\t\t\t<Tooltip title='Delete'>\n\t\t\t\t\t\t\t\t<IconButton disabled={disableNextEdit} onClick={() => setRowToDelete(row)}>\n\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</>\n\t\t),\n\n\t\t...(Boolean(enableRowCreate) && {\n\t\t\trenderBottomToolbarCustomActions: ({ table }) => (\n\t\t\t\t<Button\n\t\t\t\t\tvariant='outlined'\n\t\t\t\t\tstartIcon={<Add />}\n\t\t\t\t\tclassName='add-row-btn'\n\t\t\t\t\tdisabled={disableNextEdit}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\ttable.setCreatingRow(true); //simplest way to open the create row modal with no default values\n\t\t\t\t\t\tsetDisableNextEdit(true)\n\t\t\t\t\t}}>\n\t\t\t\t\t{t('common.add')}\n\t\t\t\t</Button>\n\t\t\t)\n\t\t}),\n\t\tonRowSelectionChange: setRowSelection,\n\t\tenableColumnOrdering: true,\n\t\tenableRowSelection: enableRowSelection ?? true,\n\t\tenableEditing: enableEditing instanceof Function ? enableEditing() : enableEditing ?? true,\n\t\teditDisplayMode: editDisplayMode ?? 'row',\n\t\tcreateDisplayMode: 'row',\n\t\tenableColumnResizing: enableColumnResizing,\n\t\tenableRowDragging: enableRowDragging,\n\t\tenableTopToolbar: false,\n\t\tenableColumnActions: false,\n\t\tenableSorting: true,\n\t\tenableGrouping: true,\n\t\tenableBottomToolbar: enableBottomToolbar ?? false,\n\t\tenableColumnDragging: enableColumnDragging ?? true,\n\t\tenableStickyHeader: true,\n\t\tenableSortingRemoval: false,\n\t\t// column ordering\n\t\tstate: {\n\t\t\t// columnOrder: (!columnOrder || columnOrder.length <= 1) \n\t\t\t// ? [...internalColumnOrder] \n\t\t\t// : [...columnOrder],\n\t\t\tcolumnOrder: columnOrder,\n\t\t\tcolumnPinning: { left: ['actions', 'mrt-row-actions'] },\n\t\t\tisSaving: isCreatingRow || isEditingRow,\n\t\t\tshowProgressBars: false,\n\t\t\trowSelection,\n\t\t\t...states,\n\t\t\tsorting: Array.isArray(states?.sorting) ? states?.sorting :\n\t\t\t\tArray.isArray(sorting) ? sorting : [],\n\t\t\tcolumnSizing\n\n\t\t},\n\t\tgetRowId: (row) => row?.id,\n\t\t// table.getState().editingRow\n\t\tmuiTableBodyRowProps: ({ row, table }) => {\n\t\t\tconst editingRowId =\n\t\t\t\ttable.getState()?.editingRow?.id ||\n\t\t\t\ttable.getState()?.creatingRow?.id ||\n\t\t\t\tnull;\n\t\t\tconst isErrorRow = Boolean(row?.original?.has_error)\n\t\t\tconst isCurrentlyEditing = editingRowId === row.id;\n\n\t\t\treturn {\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetSelectedRow(row.id);\n\t\t\t\t\t// Edit triggering is now handled at cell level in muiTableBodyCellProps\n\t\t\t\t\t// to support isOnClickEditable column prop\n\t\t\t\t},\n\t\t\t\tonKeyDown: (e) => {\n\t\t\t\t\t// Handle keyboard events for editing\n\t\t\t\t\tif (isCurrentlyEditing) {\n\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t// Save on Enter\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\t\t} else if (e.key === 'Escape') {\n\t\t\t\t\t\t\t// Cancel on Escape\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tconsole.log('Escape pressed, canceling edit for row:', row.id);\n\t\t\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\t\t\t// Immediately reset disableNextEdit to allow re-editing\n\t\t\t\t\t\t\tsetDisableNextEdit(false);\n\t\t\t\t\t\t\thandleSaveRow(row, row._valuesCache || row.original, table);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsx: {\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t// backgroundColor: !editingRowId\n\t\t\t\t\t// \t? (selectedRow === row.id\n\t\t\t\t\t// \t\t? '#e8e8e8'\n\t\t\t\t\t// \t\t: (isErrorRow ? 'theme.error.100' : 'inherit'))\n\t\t\t\t\t// \t: 'inherit',\n\t\t\t\t\tbackgroundColor: !editingRowId\n\t\t\t\t\t\t? (isErrorRow ? 'theme.error.100' : 'inherit')\n\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tbackgroundColor: editingRowId ? 'transparent' : (isErrorRow ? 'theme.error.200' : '#e8e8e8') // Removes hover effect globally\n\t\t\t\t\t},\n\t\t\t\t\t'&:hover td:after': {\n\t\t\t\t\t\tbackgroundColor: 'transparent' // Removes the grey background applied via :after\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tonColumnOrderChange: (colOrder: any) => {\n\t\t\tif (handleColumnOrdering) handleColumnOrdering(colOrder);\n\t\t},\n\t\tonColumnSizingChange: setColumnSizing,\n\t\tonColumnSizingInfoChange: setColumnSizingInfo,\n\n\t\trenderEmptyRowsFallback: () => (\n\t\t\t<Box className='no-data'>\n\t\t\t\t<img src={images.common.tableNoData} />\n\t\t\t\t<Typography type='s3' weight='medium' color='theme.secondary.1000'>\n\t\t\t\t\t{/* sx={{ textAlign: 'center', pb: 4.75, pt: 4.75 }}> */}\n\t\t\t\t\t{t('common.noData')}\n\t\t\t\t</Typography>\n\t\t\t</Box>\n\t\t),\n\n\t\t// pagination\n\t\tenablePagination: enablePagination,\n\t\tpaginationDisplayMode: 'pages',\n\t\tmuiPaginationProps: {\n\t\t\tshape: 'rounded',\n\t\t\tpage: pageNo, // current page number\n\t\t\tcount: totalPages, // total pages\n\t\t\tshowRowsPerPage: false, // Hide rows per page options\n\t\t\tboundaryCount: 3\n\t\t},\n\n\t\tmuiEditTextFieldProps: ({ row, column }) => ({\n\t\t\tInputProps: {\n\t\t\t\tdisableUnderline: true\n\t\t\t},\n\t\t\tonBlur: (e) => {\n\t\t\t\tupdateData(e.target.value, column, row.id);\n\t\t\t},\n\t\t\t// onChange: (e) => {\n\t\t\t// \tupdateData(e.target.value, column, row.id);\n\t\t\t// },\n\t\t\tvariant: 'outlined',\n\t\t\tsx: ({ palette }) => ({\n\t\t\t\t'& .MuiOutlinedInput-root': {\n\t\t\t\t\t'& fieldset': {\n\t\t\t\t\t\tborderColor: `${palette.theme?.primary[700]} !important`\n\t\t\t\t\t\t// backgroundColor: palette.theme?.primary[700]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}),\n\n\t\t/* Table loader style */\n\t\tmuiCircularProgressProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: '#289B64'\n\t\t\t}\n\t\t},\n\n\t\t// Table header cell default styles\n\t\tmuiTableHeadCellProps: {\n\t\t\tsx: {\n\t\t\t\tlineHeight: '140%',\n\t\t\t\tletterSpacing: '-0.28px',\n\t\t\t\tfontWeight: '500',\n\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t'& .Mui-TableHeadCell-Content': {\n\t\t\t\t\theight: '100%'\n\t\t\t\t},\n\t\t\t\t'& .Mui-TableHeadCell-Content-Labels': {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\tjustifyContent: 'space-between'\n\t\t\t\t},\n\t\t\t\t'&.pinned-column': {\n\t\t\t\t\tbackgroundColor: '#fff'\n\t\t\t\t},\n\t\t\t\t'& .Mui-TableHeadCell-ResizeHandle-Wrapper': {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tright: '-5px',\n\t\t\t\t\topacity: 0\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t// Table body cell default styles\n\t\tmuiTableBodyProps: {\n\t\t\tsx: {\n\t\t\t\tzIndex: 500\n\t\t\t}\n\t\t},\n\t\tmuiTableHeadProps: {\n\t\t\tsx: {\n\t\t\t\tzIndex: 600\n\t\t\t}\n\t\t},\n\t\tmuiTableBodyCellProps: ({ cell, column, table, row }) => ({\n\t\t\tsx: {\n\t\t\t\tlineHeight: '140%',\n\t\t\t\tletterSpacing: '-0.26px',\n\t\t\t\tfontWeight: '400',\n\t\t\t\tfontSize: '0.8125rem',\n\t\t\t\t'&.pinned-column': {\n\t\t\t\t\tbackgroundColor: '#fff'\n\t\t\t\t},\n\t\t\t\t'&:hover': {\n\t\t\t\t\tbackgroundColor: 'transparent' // Removes hover effect globally\n\t\t\t\t},\n\t\t\t\twhiteSpace: 'pre-wrap'\n\t\t\t},\n\t\t\tonClick: (e: React.MouseEvent) => {\n\t\t\t\tconst columnDef = column.columnDef as MaterialEditableTableColumnProps;\n\t\t\t\tconst isOnClickEditable = columnDef.isOnClickEditable !== false; // Default to true\n\t\t\t\t\n\t\t\t\tif (!isOnClickEditable) {\n\t\t\t\t\treturn; // Don't trigger edit mode for this column\n\t\t\t\t}\n\n\t\t\t\tconst editingRowId = table.getState()?.editingRow?.id || table.getState()?.creatingRow?.id || null;\n\t\t\t\tconst isCurrentlyEditing = editingRowId === row.id;\n\n\t\t\t\t// If there's a row currently being edited and it's not this row, save it first then edit this row\n\t\t\t\tif (editingRowId && editingRowId !== row.id) {\n\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\ttable.setEditingRow(row);\n\t\t\t\t\t\tsetDisableNextEdit(true);\n\t\t\t\t\t}, 100);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Set the row as editable when clicked if not already editing and no other row is being edited\n\t\t\t\tif (!disableNextEdit && !isCurrentlyEditing && !editingRowId) {\n\t\t\t\t\ttable.setEditingRow(row);\n\t\t\t\t\tsetDisableNextEdit(true);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// onClick: () => {\n\t\t\t// \ttable.setEditingCell(cell); //set editing cell\n\t\t\t// \tqueueMicrotask(() => {\n\t\t\t// \t\tconst textField = table.refs.editInputRefs.current[column.id];\n\t\t\t// \t\tif (textField) {\n\t\t\t// \t\t\ttextField.focus();\n\t\t\t// \t\t\ttextField.select?.();\n\t\t\t// \t\t}\n\t\t\t// \t});\n\t\t\t// }\n\t\t\t// onKeyDown: (event) => {\n\t\t\t// \tif (event.key === 'Tab') {\n\t\t\t// \t\ttry {\n\t\t\t// \t\t\t\t// if (column.columnDef.editVariant === 'select') {\n\t\t\t// \t\t\t\t// \ttable.refs.editInputRefs.current[column.id]?.node?.blur();\n\t\t\t// \t\t\t\t// } else {\n\t\t\t// \t\t\t\t// \ttable.refs.editInputRefs.current[column.id].blur();\n\t\t\t// \t\t\t\t// }\n\n\t\t\t// \t\t\tconst rowIdx = row.index;\n\t\t\t// \t\t\tconst colIdx = columns.findIndex(\n\t\t\t// \t\t\t\t(col) => col.accessorKey === column.id\n\t\t\t// \t\t\t);\n\t\t\t// \t\t\tconst newColIdx = colIdx + 1;\n\t\t\t// \t\t\tconst clm = columns[newColIdx];\n\t\t\t// \t\t\tconst nextCell = row\n\t\t\t// \t\t\t\t.getAllCells()\n\t\t\t// \t\t\t\t.find((cl) => (cl.id = `${rowIdx}_${clm.accessorKey}`));\n\n\t\t\t// \t\t\tif (nextCell) {\n\t\t\t// \t\t\t\t// updateData(event.target.value, column, row.id);\n\t\t\t// \t\t\t\ttable.setEditingCell(nextCell);\n\t\t\t// \t\t\t\tqueueMicrotask(() => {\n\t\t\t// \t\t\t\t\tconst textField = table.refs.editInputRefs.current[column.id];\n\t\t\t// \t\t\t\t\tif (textField) {\n\t\t\t// \t\t\t\t\t\ttextField.focus();\n\t\t\t// \t\t\t\t\t\ttextField.select?.();\n\t\t\t// \t\t\t\t\t}\n\t\t\t// \t\t\t\t});\n\t\t\t// \t\t\t}\n\t\t\t// \t\t} catch (error) {\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// },\n\t\t\t// onBlur: () => {\n\t\t\t// \ttable.setEditingCell(null);\n\t\t\t// }\n\t\t}),\n\n\t\t// Checkbox styling\n\t\tmuiSelectCheckboxProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: 'theme.secondary.300',\n\t\t\t\t'&.Mui-checked': {\n\t\t\t\t\tcolor: 'theme.primary.600',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tcolor: 'theme.primary.500'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\tcolor: 'theme.secondary.200'\n\t\t\t\t}\n\t\t\t},\n\t\t\ticon: <RecgtangleIcon sx={{ width: 20, height: 20 }} />,\n\t\t\tcheckedIcon: <CheckBoxIcon sx={{ width: 20, height: 20 }} />\n\t\t},\n\t\tmuiSelectAllCheckboxProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: 'theme.secondary.300',\n\t\t\t\t'&.Mui-checked': {\n\t\t\t\t\tcolor: 'theme.primary.600',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tcolor: 'theme.primary.500'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\tcolor: 'theme.secondary.600'\n\t\t\t\t}\n\t\t\t},\n\t\t\ticon: <RecgtangleIcon sx={{ width: 20, height: 20 }} />,\n\t\t\tcheckedIcon: <CheckBoxIcon sx={{ width: 20, height: 20 }} />\n\t\t},\n\t\tmuiBottomToolbarProps: {\n\t\t\tsx: {\n\t\t\t\tboxShadow: 'none',\n\t\t\t\t'& .MuiBox-root': {\n\t\t\t\t\tpaddingLeft: 0\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tlayoutMode: 'grid',\n\t\ticons: {\n\t\t\tDragHandleIcon: () => <RecgtangleIcon fontSize='medium' />,\n\t\t\tSortIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tArrowDownwardIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tArrowUpwardIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tExpandMoreIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tExpandLessIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tSyncAltIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tCancelIcon: (props: SvgIconProps) => (\n\t\t\t\t<Close fontSize='small' {...props} color='theme.secondary.1000' />\n\t\t\t)\n\t\t},\n\n\t\t...rest\n\t});\n\n\tuseEffect(() => {\n\t\tif (enableRowSelection) {\n\t\t\tif (table?.getSelectedRowModel()?.rows) {\n\t\t\t\tSetSelectedRowId?.(table?.getSelectedRowModel()?.rows);\n\t\t\t}\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [enableRowSelection]);\n\n\tuseEffect(() => {\n\t\tif (onSelectRow) {\n\t\t\tif (rest?.enableExpanding) {\n\t\t\t\tconst selectedRowModels: any[] = [];\n\t\t\t\tconst selection = table.getState().rowSelection; // e.g., { 0.0: true }\n\t\t\t\tconst traverseRows = (rows, parentKey = '') => {\n\t\t\t\t\trows.forEach((row: any, index: number) => {\n\t\t\t\t\t\tconst rowKey = parentKey ? `${parentKey}.${index}` : `${row.id}`;\n\t\t\t\t\t\tif (selection[rowKey]) {\n\t\t\t\t\t\t\tselectedRowModels.push(row);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check for sub-rows and traverse further\n\t\t\t\t\t\tif (row.subRows?.length) {\n\t\t\t\t\t\t\ttraverseRows(row.subRows, rowKey);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\ttraverseRows(table.getRowModel().rows);\n\t\t\t\tonSelectRow(selectedRowModels, rowSelection);\n\t\t\t} else {\n\t\t\t\tonSelectRow(table.getSelectedRowModel().rows, rowSelection);\n\t\t\t}\n\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [rowSelection, table]);\n\n\t// useEffect(() => {\n\t// \tconst relativeContainer = document.getElementsByClassName(\n\t// \t\t'MuiTableContainer-root'\n\t// \t)[0];\n\t// \tconst fixedElement = document.getElementsByClassName('no-data')[0];\n\t// \trelativeContainer.addEventListener('scroll', () => {\n\t// \t\tconst scrollLeft = relativeContainer.scrollLeft;\n\t// \t\tfixedElement.style.left = `${scrollLeft + 100}px`;\n\t// \t});\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tif (isResetRow) {\n\t\t\ttable?.resetRowSelection();\n\t\t}\n\t}, [isResetRow, table]);\n\n\t// Handle clicks outside the table to save and exit edit mode - ADVANCED EVENT DELEGATION\n\tuseEffect(() => {\n\t\tif (!table) return;\n\n\t\tlet dropdownOpenTimer: NodeJS.Timeout;\n\t\tlet saveTimer: NodeJS.Timeout;\n\t\tlet lastDropdownClick = 0;\n\t\tlet isDropdownInteraction = false;\n\n\t\t// Track dropdown interactions with precise timing\n\t\tconst handleMouseDown = (e: MouseEvent) => {\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tconst isDropdownElement = target.closest(\n\t\t\t\t'.MuiSelect-root, .MuiMenuItem-root, .MuiPopover-root, .MuiList-root, ' +\n\t\t\t\t'.MuiMenu-list, .MuiModal-root, .MuiBackdrop-root, .MuiButtonBase-root, ' +\n\t\t\t\t'.MuiFormControl-root, .MuiInputBase-root, .MuiTextField-root, ' +\n\t\t\t\t'.MuiOutlinedInput-root, .MuiFilledInput-root, .MuiAutocomplete-popper, ' +\n\t\t\t\t'.MuiPickersPopper-root, [role=\"option\"], [role=\"listbox\"], [role=\"combobox\"]'\n\t\t\t);\n\n\t\t\tif (isDropdownElement) {\n\t\t\t\tisDropdownInteraction = true;\n\t\t\t\tlastDropdownClick = Date.now();\n\t\t\t\t// Clear any pending save when dropdown interaction starts\n\t\t\t\tif (saveTimer) {\n\t\t\t\t\tclearTimeout(saveTimer);\n\t\t\t\t}\n\t\t\t\t// Set a timer to reset dropdown interaction flag\n\t\t\t\tif (dropdownOpenTimer) {\n\t\t\t\t\tclearTimeout(dropdownOpenTimer);\n\t\t\t\t}\n\t\t\t\tdropdownOpenTimer = setTimeout(() => {\n\t\t\t\t\tisDropdownInteraction = false;\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t};\n\n\t\t// Handle clicks with sophisticated logic\n\t\tconst handleClick = (e: MouseEvent) => {\n\t\t\tconst editingRow = table.getState()?.editingRow;\n\t\t\tif (!editingRow) return;\n\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tconst now = Date.now();\n\n\t\t\t// Don't process if we recently had a dropdown interaction\n\t\t\tif (isDropdownInteraction || (now - lastDropdownClick) < 300) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if click is inside table\n\t\t\tconst isInsideTable = target.closest('.MuiTableContainer-root, .MuiPaper-root, .MRT_Table');\n\n\t\t\t// Only save if clicking outside table and no recent dropdown interaction\n\t\t\tif (!isInsideTable) {\n\t\t\t\t// Clear any existing save timer\n\t\t\t\tif (saveTimer) {\n\t\t\t\t\tclearTimeout(saveTimer);\n\t\t\t\t}\n\n\t\t\t\t// Schedule save with additional delay for safety\n\t\t\t\tsaveTimer = setTimeout(() => {\n\t\t\t\t\tconst currentEditingRow = table.getState()?.editingRow;\n\t\t\t\t\tif (currentEditingRow && !isDropdownInteraction) {\n\t\t\t\t\t\thandleSaveRow(currentEditingRow, currentEditingRow._valuesCache || currentEditingRow.original, table);\n\t\t\t\t\t}\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t};\n\n\t\t// Use both mousedown and click for comprehensive tracking\n\t\tdocument.addEventListener('mousedown', handleMouseDown, true);\n\t\tdocument.addEventListener('click', handleClick, true);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleMouseDown, true);\n\t\t\tdocument.removeEventListener('click', handleClick, true);\n\t\t\tif (dropdownOpenTimer) {\n\t\t\t\tclearTimeout(dropdownOpenTimer);\n\t\t\t}\n\t\t\tif (saveTimer) {\n\t\t\t\tclearTimeout(saveTimer);\n\t\t\t}\n\t\t};\n\t}, [table, handleSaveRow]);\n\treturn (\n\t\t<TableWrapper className='MRT-TableWrapper custom-table'>\n\t\t\t<MaterialReactTable table={table} />\n\n\t\t\t<Menu\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\topen={Boolean(anchorEl)}\n\t\t\t\tonClose={handleHeaderClose}\n\t\t\t\tclassName='add-role-drp'>\n\t\t\t\t{popUpShow ? (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={handleBackButtonClick}\n\t\t\t\t\t\t\tclassName='role-drp-list add-column-title'>\n\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t<ChevronLeftIcon />\n\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t{t('common.addColumn_label')}\n\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<div className='searchbar-box-list'>\n\t\t\t\t\t\t\t<SearchBar\n\t\t\t\t\t\t\t\tplaceholder={'Search User'}\n\t\t\t\t\t\t\t\thandleSearch={(e) => handleSearchEvent(e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className='all-attribute-title'>\n\t\t\t\t\t\t\t<Typography variant='body2' color='text.secondary'>\n\t\t\t\t\t\t\t\t{t('common.allAttributes_label')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{filteredOptions.map((column: any) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={column.accessorKey}\n\t\t\t\t\t\t\t\tonClick={() => handleAddColumn(column)}>\n\t\t\t\t\t\t\t\t<Typography color='theme.secondary.1000' type='s3'>\n\t\t\t\t\t\t\t\t\t{column.header}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tenableAddCustomField && <MenuItem onClick={handleCustomAddColumn} className='role-drp-list'>\n\t\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.addIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t\t{t('common.addCustomField_label')}\n\t\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{visibleColumns.map((column: any) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={column.accessorKey}\n\t\t\t\t\t\t\t\tonClick={() => handleVisibleColumn(column)}\n\t\t\t\t\t\t\t\tclassName='role-drp-list'>\n\t\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.dotsIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t\t<ListItemText className='title'>{column.header}</ListItemText>\n\t\t\t\t\t\t\t\t<ListItemIcon className='eye-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.eyeIcon} alt='Eye Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<MenuItem onClick={handleAddButtonClick} className='role-drp-list'>\n\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t<img src={images.common.addIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t{t('common.addColumn_label')}\n\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\t\tvariant='body2'\n\t\t\t\t\t\t\t\tcolor='text.secondary'\n\t\t\t\t\t\t\t\tclassName='eye-icon'>\n\t\t\t\t\t\t\t\t<ChevronRightIcon sx={{ fontSize: '1.25rem !important' }} />\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Menu>\n\n\t\t\t<Menu\n\t\t\t\tanchorEl={rowAnchorEl}\n\t\t\t\topen={Boolean(rowAnchorEl)}\n\t\t\t\tonClose={handleActionsClose}>\n\t\t\t\t{rowActionMenu?.map((option: any) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(option.label === 'Move' &&\n\t\t\t\t\t\t\t(row?.is_directory === true || row?.is_directory === 1)) ||\n\t\t\t\t\t\t(option.label === 'Download' &&\n\t\t\t\t\t\t\t(row?.is_directory === true ||\n\t\t\t\t\t\t\t\trow?.is_directory === 1 ||\n\t\t\t\t\t\t\t\trow?.drive?.is_directory === true ||\n\t\t\t\t\t\t\t\trow?.drive?.is_directory === 1))\n\t\t\t\t\t) {\n\t\t\t\t\t\t// return null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\t\tawait option.handleAction(row);\n\t\t\t\t\t\t\t\tsetRowAnchorEl(null);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\ttypeof option.disabled === 'function'\n\t\t\t\t\t\t\t\t\t? option.disabled(row)\n\t\t\t\t\t\t\t\t\t: Boolean(option.disabled)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsx={{ alignItems: 'center', gap: 0.5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option?.icon}\n\t\t\t\t\t\t\t<Typography type='s4' color='inherit'>\n\t\t\t\t\t\t\t\t{typeof option.label === 'function' ? option.label(row) : option.label}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{destructiveActionMenu?.length > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<div className='dropdown-inner--DestructiveHeader'>\n\t\t\t\t\t\t\t{destructiveActionMenu?.map((option: any) => (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\toption.handleAction(row);\n\t\t\t\t\t\t\t\t\t\tsetRowAnchorEl(null);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tclassName='dropdown-inner--DestructiveActions'\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\ttypeof option.disabled === 'function'\n\t\t\t\t\t\t\t\t\t\t\t? option.disabled(row)\n\t\t\t\t\t\t\t\t\t\t\t: Boolean(option.disabled)\n\t\t\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\t\t<Typography type='s4' color='inherit'>\n\t\t\t\t\t\t\t\t\t\t{typeof option.label === 'function' ? option.label(row) : option.label}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t</Menu>\n\t\t\t<ConfirmPopUp\n\t\t\t\topen={Boolean(rowToDelete)}\n\t\t\t\tonClose={() => setRowToDelete(null)}\n\t\t\t\tonConfirm={() => handleRowDelete()}\n\t\t\t\ttitle='Delete Item'\n\t\t\t\tdescription={`Are you sure you want to delete entry ?`}\n\t\t\t\tloading={isDeletingRow}\n\t\t\t/>\n\t\t</TableWrapper>\n\t);\n});\n\nexport { MaterialEditableTable };\nexport default MaterialEditableTable;"],"names":["TableWrapper","styled","Box","theme","palette","border","borderBottom","borderLeft","padding","lineHeight","fontSize","minHeight","backgroundColor","_a","secondary","maxHeight","boxShadow","_b","primary","color","_c","_d","height","width","MaterialEditableTable","React","memo","enablePagination","rows","columns","totalPages","paginationModel","columnOrder","updateData","handleColumnOrdering","enableEditing","enableColumnDragging","states","rowActionMenu","destructiveActionMenu","disableDefaultActionColumn","enableRowSelection","defaultActionColumnItems","enableBottomToolbar","SetSelectedRowId","isResetRow","onCreateRow","onEditRow","onDeleteRow","editDisplayMode","enableRowCreate","onChangeRowField","onSelectRow","enableColumnResizing","selectedRowIds","onColumnVisibility","onSortingChange","getSelectedData","disabledDefaultActionColumnIcon","enableAddCustomField","enableRowDragging","handleColumnResizing","columnSizes","rest","t","useTranslation","formData","updatePageInfo","activePage","aPage","usePages","useDeepMemo","pageNo","row","setRow","useState","tableColumns","setTableColumns","anchorEl","setAnchorEl","popUpShow","setPopupShow","rowAnchorEl","setRowAnchorEl","visibleColumns","filter","column","visible","hiddenColumns","filteredOptions","setFilteredOptions","selectedRow","setSelectedRow","validationErrors","setValidationErrors","validationSchema","setValidationSchema","isCreatingRow","setIsCreatingRow","isEditingRow","setIsEditingRow","isDeletingRow","setIsDeletingRow","rowToDelete","setRowToDelete","rowSelection","setRowSelection","isChecked","setIsChecked","sorting","setSorting","disableNextEdit","setDisableNextEdit","columnSizing","setColumnSizing","column_sizes","columnSizingInfo","setColumnSizingInfo","columnSizingStart","deltaOffset","deltaPercentage","isResizingColumn","startOffset","startSize","navigate","useNavigate","currentModule","location","pathname","split","redirectionPath","PathnameAccounting","CUSTOM_FORM","PathnameInventory","PathnameManufacturing","PathnamePurchase","PathnameCrm","PathnameUsers","PathnameRental","PathnameDocument","ADD_CUSTOM_FIELDS","path","validationReducer","validations","validation","vld","type","value","required","msg_en","typeError","editProperties","is_multiple","min","email","max","test","when","relation","is","val","values","then","thenValidations","reduce","otherwise","otherWiseValidations","editVariant","trim","length","useEffect","schema","forEach","clm","fieldValidations","yup","array","string","number","nullable","transform","originalValue","matches","excludeEmptyString","message","getValidationType","accessorKey","generateValidationSchema","object","shape","handleHeaderClick","event","currentTarget","formtValues","useCallback","cells","v","Object","keys","vl","cell","find","c","File","name","dayjs","format","dateFormat","label","display_name","title","id","checkRequired","some","selectedRows","includes","Function","sortingArray","Array","isArray","getTextWidth","text","ctx","document","createElement","getContext","measureText","handleSaveRow","async","tableInstance","validate","abortEarly","getAllCells","map","columnDef","_valuesCache","data","table","setEditingRow","err","ValidationError","errors","inner","error","Error","enqueueSnackbar","variant","useMaterialReactTable","defaultColumn","minSize","size","header","Math","String","Edit","jsx","InlineEditFields","col","callback","s","Header","jsxs","display","alignItems","children","Typography","maxSize","IconButton","sx","p","onClick","src","images","common","arrowIcon","alt","muiTableHeadCellProps","className","muiTableBodyCellProps","whiteSpace","Cell","props","item","updatedProps","cloneElement","e","handleActionsClick","original","disabled","more","muiTablePaperProps","tableLayout","columnResizeMode","onEditingRowSave","onCreatingRowSave","setCreatingRow","onCreatingRowCancel","onEditingRowCancel","displayColumnDefOptions","getState","creatingRow","gap","editingRow","onKeyUp","renderRowActions","Fragment","enableExpanding","parentId","Tooltip","Trash","Boolean","renderBottomToolbarCustomActions","Button","startIcon","Add","onRowSelectionChange","enableColumnOrdering","createDisplayMode","enableTopToolbar","enableColumnActions","enableSorting","enableGrouping","enableStickyHeader","enableSortingRemoval","state","columnPinning","left","isSaving","showProgressBars","getRowId","muiTableBodyRowProps","editingRowId","isErrorRow","has_error","isCurrentlyEditing","onKeyDown","key","preventDefault","cursor","onColumnOrderChange","colOrder","onColumnSizingChange","onColumnSizingInfoChange","renderEmptyRowsFallback","tableNoData","weight","paginationDisplayMode","muiPaginationProps","page","count","showRowsPerPage","boundaryCount","muiEditTextFieldProps","InputProps","disableUnderline","onBlur","target","borderColor","muiCircularProgressProps","letterSpacing","fontWeight","justifyContent","margin","right","opacity","muiTableBodyProps","zIndex","muiTableHeadProps","isOnClickEditable","setTimeout","muiSelectCheckboxProps","icon","RecgtangleIcon","checkedIcon","CheckBoxIcon","muiSelectAllCheckboxProps","muiBottomToolbarProps","paddingLeft","layoutMode","icons","DragHandleIcon","SortIcon","ArrowUpDown","ArrowDownwardIcon","ArrowUpwardIcon","ExpandMoreIcon","ExpandLessIcon","SyncAltIcon","CancelIcon","Close","getSelectedRowModel","selectedRowModels","selection","traverseRows","parentKey","index","rowKey","push","subRows","getRowModel","resetRowSelection","dropdownOpenTimer","saveTimer","lastDropdownClick","isDropdownInteraction","handleMouseDown","closest","Date","now","clearTimeout","handleClick","currentEditingRow","addEventListener","removeEventListener","MaterialReactTable","Menu","open","onClose","MenuItem","ListItemIcon","ChevronLeftIcon","ListItemText","Divider","flexItem","mt","mb","SearchBar","placeholder","handleSearch","searchQuery","filteredColumns","option","toLowerCase","handleSearchEvent","updatedColumns","JSON","parse","stringify","updatedFilteredOptions","handleAddColumn","addIcon","handleVisibleColumn","dotsIcon","eyeIcon","ChevronRightIcon","handleAction","ConfirmPopUp","onConfirm","handleRowDelete","description","loading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/material-editable-table/material-editable-table.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport React, { cloneElement, useCallback, useEffect, useState } from 'react';\nimport {\n\tMRT_ColumnDef,\n\tMRT_ColumnSizingInfoState,\n\tMRT_ColumnSizingState,\n\tMRT_Header,\n\tMRT_Row,\n\tMRT_RowData,\n\tMRT_RowSelectionState,\n\tMRT_SortingState,\n\tMRT_TableInstance,\n\tMRT_TableState,\n\tMaterialReactTable,\n\tMaterialReactTableProps,\n\tuseMaterialReactTable,\n\t// Cell\n} from 'material-react-table';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport {\n\tBox,\n\tstyled,\n\tMenuItem,\n\tIconButton,\n\tListItemIcon,\n\tListItemText,\n\tSvgIconProps,\n\tDivider\n} from '@mui/material';\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport Menu from '../menu/menu';\nimport Typography from '../typography/typography';\nimport SearchBar from '../search-bar/search-bar';\nimport images from '../../assets/images';\n// import DeleteIcon from \"@mui/icons-material/Delete\";\n// import UpdateIcon from \"@mui/icons-material/Update\";\n// import PlayIcon from \"@mui/icons-material/PlayArrow\";\n\nimport './material-editable-table.scss';\nimport {\n\tArrowUpDown,\n\tCheckBoxIcon,\n\tClose,\n\tRecgtangleIcon,\n\tTrash,\n\tSave\n} from '../icons';\n// import {\n// \tArrowDropDown /* , SaveOutlined */,\n// \tArrowDropUp\n// } from '@mui/icons-material';\nimport InlineEditFields from './components/inline-edit-fields';\nimport Tooltip from '../tooltip/Tooltip';\nimport Button from '../button/button';\nimport Add from '@mui/icons-material/Add';\nimport dayjs from 'dayjs';\nimport * as yup from 'yup';\nimport ConfirmPopUp from '../confirm-modal/confirm-modal';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\nimport { usePages } from '../../hooks/use-pages';\nimport { useNavigate } from 'react-router-dom';\n// import { PathnameAccounting } from 'accounting/src/pathname.accounting';\n// import { PathnameInventory } from 'inventory/src/pathname.inventory';\n// import { PathnameManufacturing } from 'manufacturing/src/pathname.manufacturing';\n// import { PathnamePurchase } from 'procurement/src/pathname.procurement';\n// import { PathnameCrm } from 'crm/src/pathname.crm';\n// import { PathnameUsers } from '../../constants/pathnames/pathname.user';\n// import { PathnameRental } from '../../../../rental/src/pathname.rental';\n// import { PathnameDocument } from 'document/src/pathname.document';\nimport { PathnameDocument } from '../../constants/pathnames/pathname.document';\nimport { PathnameAccounting } from '../../constants/pathnames/pathname.accounting';\nimport { PathnameInventory } from '../../constants/pathnames/pathname.inventory';\nimport { PathnameManufacturing } from '../../constants/pathnames/pathname.manufacturing';\nimport { PathnamePurchase } from '../../constants/pathnames/pathname.procurement';\nimport { PathnameCrm } from '../../constants/pathnames/pathname.crm';\nimport { PathnameUsers } from '../../constants/pathnames/pathname.user';\nimport { PathnameRental } from '../../constants/pathnames/pathname.rental';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\n\ntype ExtraEditVariants =\n\t| 'file'\n\t| 'image'\n\t| 'date'\n\t| 'number'\n\t| 'time'\n\t| 'date_time'\n\t| 'phone'\n\t| 'checkbox';\n\ntype DisableFunction = (row: any, virtualRow?: any) => boolean;\n\nexport type TypeBooleanLabels = { 1: string; 0: string; true: string; false: string }\n\nexport interface MaterialEditableTableColumnProps\n\textends Omit<MRT_ColumnDef<MRT_RowData>, 'editVariant'> {\n\tvisible?: boolean;\n\ttype?: string;\n\tshowDefaultCurrency?: boolean,\n\tvalueGet?: string;\n\tcustom_class?: string;\n\ttypeArrayAccessorKey?: string; //when type is an array of object\n\ttypeBooleanLabels?: TypeBooleanLabels; //when type is an boolean\n\teditVariant?: MRT_ColumnDef<MRT_RowData>['editVariant'] | ExtraEditVariants;\n\teditProperties?: {\n\t\tfield_name?: string;\n\t\tvalueKey?: string;\n\t\tplaceholder?: string;\n\t\tdateFormat?: string;\n\t\tvalidations?: any[];\n\t\tis_multiple?: boolean;\n\t\tis_multiline?: boolean;\n\t\tdisable?: boolean | DisableFunction;\n\t};\n\tredirectionPathWithId?: string;\n\n\tidField?: string;\n}\n\n\n\nexport interface MaterialEditableTableColumnHeaderProps {\n\tcolumn: MRT_ColumnDef<any, any>;\n\theader: MRT_Header<any>;\n\ttable: MRT_TableInstance<any>;\n}\n\ntype rowSelectionCallback = (row: MRT_Row) => boolean\n\ninterface MaterialEditableTablePropsType {\n\tenablePagination?: boolean;\n\trows: any;\n\ttotalPages: number;\n\tcolumns: any;\n\tpaginationModel: IPaginationModel;\n\tcolumnOrder?: string[];\n\tupdateData?: any;\n\thandleColumnOrdering?: (colOrder: any) => void;\n\tenableEditing?: boolean;\n\tenableColumnDragging?: boolean;\n\trowActionMenu?: any;\n\tdestructiveActionMenu?: any;\n\tgetRowId?: any;\n\tstates?: Partial<MRT_TableState<any>>;\n\tonSortingChange?: any;\n\tdisableDefaultActionColumn?: boolean;\n\tenableRowSelection?: boolean | rowSelectionCallback;\n\tdefaultActionColumnItems?: React.ReactElement[];\n\tenableBottomToolbar?: boolean;\n\tSetSelectedRowId?: any;\n\tisResetRow?: boolean;\n\tonCreateRow?: (data: any) => Promise<unknown>;\n\tonEditRow?: (data: any) => Promise<unknown>;\n\tonDeleteRow?: (data: any) => Promise<unknown>;\n\teditDisplayMode?: MaterialReactTableProps<any>['editDisplayMode'];\n\tenableRowCreate?: boolean;\n\tonChangeRowField?: (e: any, type: string, row: any) => void;\n\tonSelectRow?: (rows: any, prevSelected?: any) => any;\n\tenableColumnResizing?: boolean;\n\tselectedRowIds?: any[];\n\tonColumnVisibility?: (columns: MaterialTableColumnProps[]) => void\n\tgetSelectedData: any;\n\tenableAddCustomField?: boolean;\n\tdisabledDefaultActionColumnIcon?: boolean\n\tenableRowDragging?: boolean\n\thandleColumnResizing?: (sizes: MRT_ColumnSizingState) => void,\n\tcolumnSizes?: MRT_ColumnSizingState,\n}\n\nconst TableWrapper = styled(Box)(({ theme: { palette } }) => ({\n\t'.MuiTableCell-root': {\n\t\tborder: '1px solid #efefef',\n\t\tborderBottom: 0,\n\t\tborderLeft: 0,\n\t\tpadding: '0.19rem 0.5rem',\n\t\tlineHeight: '19px',\n\t\tfontSize: '14px',\n\t\tminHeight: 40,\n\t\t// '&:first-child': {\n\t\t// \tborderLeft: '1px solid #efefef'\n\t\t// },\n\t\t// '&:last-child': {\n\t\t// \tborderBottom: '1px solid #efefef'\n\t\t// }\n\n\t},\n\t'.MuiTableCell-head': {\n\t\tbackgroundColor: palette.theme?.secondary[100]\n\t},\n\t'.MuiTableContainer-root': {\n\t\tmaxHeight: 'clamp(350px, 100vh - 200px, 9999px) !important',\n\t},\n\n\t'.MuiPaper-root': {\n\t\tboxShadow: 'none',\n\n\t},\n\t'.MuiPaginationItem-root': {\n\t\t'&.Mui-selected': {\n\t\t\tbackgroundColor: palette?.theme?.primary[700],\n\t\t\tcolor: 'white'\n\t\t}\n\t},\n\t'.MuiTableRow-root': {\n\t\t'&.Mui-selected': {\n\t\t\tbackgroundColor: `${palette?.theme?.primary[100]} !important`,\n\t\t\tcolor: 'white'\n\t\t}\n\t},\n\t'.MuiCheckbox-indeterminate': {\n\t\tcolor: `${palette?.theme?.primary[700]} !important`,\n\t\t\"& svg\": {\n\t\t\theight: `20px !important`,\n\t\t\twidth: `20px !important`,\n\t\t}\n\t}\n}));\n\nconst MaterialEditableTable = React.memo(({\n\tenablePagination = false,\n\trows,\n\tcolumns,\n\ttotalPages,\n\tpaginationModel,\n\tcolumnOrder,\n\tupdateData,\n\thandleColumnOrdering,\n\tenableEditing,\n\tenableColumnDragging,\n\tstates,\n\trowActionMenu,\n\tdestructiveActionMenu,\n\tdisableDefaultActionColumn,\n\tenableRowSelection,\n\tdefaultActionColumnItems = [],\n\tenableBottomToolbar,\n\tSetSelectedRowId,\n\tisResetRow,\n\tonCreateRow,\n\tonEditRow,\n\tonDeleteRow,\n\teditDisplayMode,\n\tenableRowCreate,\n\tonChangeRowField,\n\tonSelectRow,\n\tenableColumnResizing = true,\n\tselectedRowIds = [],\n\tonColumnVisibility,\n\tonSortingChange,\n\tgetSelectedData,\n\tdisabledDefaultActionColumnIcon = false,\n\tenableAddCustomField = true,\n\tenableRowDragging = false,\n\thandleColumnResizing = () => { },\n\tcolumnSizes = {},\n\t// eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars\n\t// getRowId,\n\t// onDelete,\n\t// onUpdate,\n\t...rest\n}: MaterialTablePropsType) => {\n\tconst { t } = useTranslation();\n\tconst { formData = null, updatePageInfo, activePage: aPage } = usePages()\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\tconst { pageNo } = paginationModel;\n\tconst [row, setRow] = useState({});\n\tconst [tableColumns, setTableColumns] = useState(columns);\n\tconst [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\tconst [popUpShow, setPopupShow] = useState<boolean>(false);\n\tconst [rowAnchorEl, setRowAnchorEl] = useState<null | HTMLElement>(null);\n\tconst visibleColumns = tableColumns.filter((column: any) => column.visible);\n\tconst hiddenColumns = tableColumns.filter((column: any) => !column.visible);\n\tconst [filteredOptions, setFilteredOptions] = useState(hiddenColumns);\n\tconst [selectedRow, setSelectedRow] = useState<number | null>(null);\n\tconst [validationErrors, setValidationErrors] = useState<any>({});\n\tconst [validationSchema, setValidationSchema] = useState<any>([]);\n\tconst [isCreatingRow, setIsCreatingRow] = useState<boolean>(false);\n\tconst [isEditingRow, setIsEditingRow] = useState<boolean>(false);\n\tconst [isDeletingRow, setIsDeletingRow] = useState<boolean>(false);\n\tconst [rowToDelete, setRowToDelete] = useState<any>(null);\n\tconst [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\tconst [isChecked, setIsChecked] = useState(false)\n\tconst [sorting, setSorting] = useState<MRT_SortingState>([]);\n\tconst [disableNextEdit, setDisableNextEdit] = useState(false);\n\tconst [columnSizing, setColumnSizing] = useState<MRT_ColumnSizingState>(activePage.column_sizes);\n\tconst [columnSizingInfo, setColumnSizingInfo] = useState<MRT_ColumnSizingInfoState>({\n\t\tcolumnSizingStart: [],\n\t\tdeltaOffset: null,\n\t\tdeltaPercentage: null,\n\t\tisResizingColumn: false,\n\t\tstartOffset: null,\n\t\tstartSize: null\n\t});\n\tconst [clickStartTime, setClickStartTime] = useState<number>(0);\n\n\tconst navigate = useNavigate();\n\tconst currentModule = location.pathname.split('/')[2]\n\n\tlet redirectionPath = ''\n\tswitch (currentModule) {\n\t\tcase 'accounting':\n\t\t\tredirectionPath = PathnameAccounting.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'inventory':\n\t\t\tredirectionPath = PathnameInventory.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'manufacturing':\n\n\t\t\tredirectionPath = PathnameManufacturing.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'procurement':\n\t\t\tredirectionPath = PathnamePurchase.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'crm':\n\t\t\tredirectionPath = PathnameCrm.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\tredirectionPath = PathnameUsers.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'rental':\n\t\t\tredirectionPath = PathnameRental.CUSTOM_FORM\n\t\t\tbreak;\n\t\tcase 'drive':\n\t\t\tredirectionPath = PathnameDocument.ADD_CUSTOM_FIELDS\n\t\t\tbreak;\n\t}\n\tconst path = `/dashboard/${currentModule}${redirectionPath}`\n\tconst getValidationType = (column: any) => {\n\t\tswitch (column.editVariant) {\n\t\t\tcase 'select':\n\t\t\t\treturn column?.editProperties?.is_multiple ? yup.array() : yup.string();\n\n\t\t\tcase 'number':\n\t\t\t\treturn yup.number().nullable().transform((value, originalValue) => (originalValue === \"\" ? null : value));\n\n\t\t\tcase 'url':\n\t\t\t\treturn yup\n\t\t\t\t\t.string()\n\t\t\t\t\t.matches(\n\t\t\t\t\t\t/^(https?:\\/\\/)?((([a-zA-Z0-9_-]+\\.)+[a-zA-Z]{2,})|localhost)(:\\d{2,5})?(\\/[a-zA-Z0-9#_-]+\\/?)*(\\?[a-zA-Z0-9&=_-]+)?(#\\S+)?$/,\n\t\t\t\t\t\t{ excludeEmptyString: true, message: 'Please enter valid URL.' }\n\t\t\t\t\t);\n\n\t\t\tdefault:\n\t\t\t\treturn yup.string()\n\t\t}\n\t};\n\n\tconst validationReducer = (\n\t\tvalidations: any,\n\t\tvalidation: any,\n\t\tcolumn: any\n\t) => {\n\t\tlet vld = validations\n\t\tswitch (validation.type) {\n\t\t\tcase 'required':\n\t\t\t\tvld = validation.value\n\t\t\t\t\t? validations.required(validation.msg_en).typeError(validation.msg_en)\n\t\t\t\t\t: column?.editProperties?.is_multiple\n\t\t\t\t\t\t? validations.min(1, validation.msg_en)\n\t\t\t\t\t\t: validations;\n\t\t\t\tbreak\n\t\t\tcase 'min':\n\t\t\t\tvld = validations.min(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'email':\n\t\t\t\tvld = validations.email(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'max':\n\t\t\t\tvld = validations.max(validation.value, validation.msg_en);\n\t\t\t\tbreak\n\t\t\tcase 'positive':\n\t\t\t\tvld = validation.value === true ? validations.test('is-positive-number', 'Value must be a positive number', (value) => !value || value >= 0) : validations;\n\t\t\t\tbreak\n\t\t\tcase 'when':\n\t\t\t\treturn validations.when(validation.relation, {\n\t\t\t\t\tis: (val: any) => val === validation.values,\n\t\t\t\t\tthen: () =>\n\t\t\t\t\t\tvalidation?.thenValidations?.reduce(\n\t\t\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\t\t\tvalidationReducer(validations, validation, column),\n\t\t\t\t\t\t\tvalidations\n\t\t\t\t\t\t) || validations,\n\t\t\t\t\totherwise: () =>\n\t\t\t\t\t\tvalidation?.otherWiseValidations?.reduce(\n\t\t\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\t\t\tvalidationReducer(validations, validation, column),\n\t\t\t\t\t\t\tvalidations\n\t\t\t\t\t\t) || validations\n\t\t\t\t});\n\t\t\t// Add more cases for other validation types as needed\n\t\t\tdefault:\n\t\t\t\tvld = validations;\n\t\t\t\tbreak\n\t\t}\n\n\t\tif (validation.type == 'required' && validation.value && (!column?.editVariant || column?.editVariant == 'text')) {\n\t\t\tvld = validations.test('no-blank-spaces', 'Blank space is not allowed', (value) => {\n\t\t\t\treturn value && value.trim()?.length > 0;\n\t\t\t})\n\t\t}\n\n\t\treturn vld\n\n\t};\n\n\n\tconst generateValidationSchema = (columns: any[]) => {\n\t\tconst schema: any = {};\n\t\tcolumns.forEach((clm) => {\n\t\t\tif (clm?.editProperties?.validations?.length) {\n\t\t\t\tconst fieldValidations = clm?.editProperties?.validations.reduce(\n\t\t\t\t\t(validations: any, validation: any) =>\n\t\t\t\t\t\tvalidationReducer(validations, validation, clm),\n\t\t\t\t\tgetValidationType(clm)\n\t\t\t\t);\n\t\t\t\tschema[clm.accessorKey] = fieldValidations;\n\t\t\t}\n\t\t});\n\t\treturn schema;\n\t};\n\n\tuseEffect(() => {\n\t\tsetTableColumns(columns);\n\n\t\tconst schema: any = generateValidationSchema(columns);\n\t\tsetValidationSchema(yup.object().shape(schema));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [columns]);\n\n\tuseEffect(() => {\n\t\tif (!columnSizingInfo?.isResizingColumn) {\n\t\t\tupdatePageInfo({ column_sizes: { ...activePage.column_sizes, ...columnSizing } })\n\t\t\thandleColumnResizing?.(columnSizing)\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [columnSizingInfo?.isResizingColumn, columnSizing])\n\n\tconst handleHeaderClick = (event: any) => {\n\t\tsetAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleHeaderClose = () => {\n\t\tsetAnchorEl(null);\n\t};\n\n\tconst handleVisibleColumn = (column: any) => {\n\t\tconst updatedColumns = tableColumns.map((col: any) => ({\n\t\t\t...col,\n\t\t\tvisible: col.accessorKey === column.accessorKey ? false : col.visible\n\t\t}));\n\t\tsetTableColumns(updatedColumns);\n\t\tonColumnVisibility?.(JSON.parse(JSON.stringify(updatedColumns)))\n\t\tsetFilteredOptions([...filteredOptions, column]);\n\t\tsetAnchorEl(null);\n\t};\n\n\tconst handleAddButtonClick = () => {\n\t\tsetPopupShow(true);\n\t};\n\n\tconst handleBackButtonClick = () => {\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleAddColumn = (column: any) => {\n\t\tconst updatedColumns = tableColumns.map((col: any) => ({\n\t\t\t...col,\n\t\t\tvisible: col.accessorKey === column.accessorKey ? true : col.visible\n\t\t}));\n\t\tonColumnVisibility?.(JSON.parse(JSON.stringify(updatedColumns)))\n\t\tsetTableColumns(updatedColumns);\n\n\t\tconst updatedFilteredOptions = filteredOptions.filter(\n\t\t\t(option: any) => option.accessorKey !== column.accessorKey\n\t\t);\n\t\tsetFilteredOptions(updatedFilteredOptions);\n\t\tsetAnchorEl(null);\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleSearchEvent = (searchQuery: string) => {\n\t\tconst filteredColumns = hiddenColumns.filter((option: any) =>\n\t\t\toption.header.toLowerCase().includes(searchQuery.toLowerCase())\n\t\t);\n\t\tsetFilteredOptions(filteredColumns);\n\t};\n\n\tconst handleCustomAddColumn = () => {\n\t\tnavigate(path, { state: formData })\n\t\tsetAnchorEl(null);\n\t\tsetPopupShow(false);\n\t};\n\n\tconst handleRowClick = (rowId: number) => {\n\t\tsetSelectedRow(rowId); // Update selected row ID when a row is clicked\n\t};\n\n\t// const handleDeleteClick = (event: any, data: any) => {\n\t// onDelete?.(data.id);\n\t// };\n\t// const handleUpdateClick = (event: any, data: any) => {\n\t// onUpdate?.(data.id);\n\t// };\n\n\tconst handleActionsClick = (event: any, data: any) => {\n\t\tsetRow(data);\n\t\tsetRowAnchorEl(event.currentTarget);\n\t};\n\n\tconst handleActionsClose = () => {\n\t\tsetRowAnchorEl(null);\n\t};\n\n\tconst formtValues = useCallback((values: any, cells: any[]) => {\n\t\tconst v: any = {};\n\t\tObject.keys(values).forEach((vl) => {\n\t\t\tconst val = values[vl];\n\t\t\tconst cell = cells.find((c) => c.accessorKey == vl);\n\n\t\t\tif (val) {\n\t\t\t\tif (val instanceof File) {\n\t\t\t\t\tv[vl] = val.name;\n\t\t\t\t} else if (cell && cell?.editVariant == 'date') {\n\t\t\t\t\tv[vl] = dayjs(val).format(cell?.dateFormat || 'DD-MM-YYYY');\n\t\t\t\t} else if (cell && cell?.editVariant == 'select' && typeof val === 'object' && val !== null) {\n\t\t\t\t\t// For select fields, extract the display name from the object\n\t\t\t\t\t// Try multiple possible display properties in order of preference\n\t\t\t\t\tv[vl] = val.name || val.label || val.display_name || val.title || val.value || val.id || val;\n\t\t\t\t} else if (cell && cell?.editVariant == 'select' && typeof val === 'string') {\n\t\t\t\t\t// For select fields that are already strings, keep them as is\n\t\t\t\t\tv[vl] = val;\n\t\t\t\t} else {\n\t\t\t\t\tv[vl] = val;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv[vl] = val;\n\t\t\t}\n\t\t});\n\n\t\treturn v;\n\t}, []); // No dependencies needed as this function doesn't rely on external values\n\n\tconst handleRowDelete = async () => {\n\t\tsetIsDeletingRow(true);\n\t\tif (rowToDelete) {\n\t\t\tawait onDeleteRow?.(rowToDelete);\n\t\t\tsetRowToDelete(null);\n\t\t}\n\t\tsetIsDeletingRow(false);\n\t};\n\n\tconst checkRequired = useCallback((editProperties: any) => {\n\t\treturn editProperties?.validations?.some((validation: any) => validation.type === 'required')\n\t}, [])\n\tuseEffect(() => {\n\t\tconst selectedRows = {};\n\t\t// Build the selectedRows object\n\t\tif (!isChecked && selectedRowIds.length) {\n\t\t\trows.forEach((row) => {\n\t\t\t\tif (selectedRowIds.includes(row.id)) {\n\t\t\t\t\tselectedRows[row.id] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetRowSelection(selectedRows);\n\t\t\tsetIsChecked(true)\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [rows, selectedRowIds]); // Dependency only on rows and selectedRowIds\n\n\tuseEffect(() => {\n\t\tif (onSortingChange instanceof Function) {\n\t\t\tconst sortingArray = Array.isArray(sorting) ? sorting : [];\n\t\t\tonSortingChange(sortingArray[0] || null)\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [sorting])\n\n\n\tconst resetRowSelection = () => {\n\t\tsetRowSelection({});\n\t\tsetDisableNextEdit(false)\n\t}\n\tconst getTextWidth = (text: string) => {\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tconst ctx = canvas.getContext(\"2d\");\n\t\tif (!ctx) return 50;\n\t\treturn ctx.measureText(text).width + 5; // padding\n\t}\n\n\tconst handleSaveRow = useCallback(async (row: any, values: any, tableInstance: any) => {\n\t\tconsole.log('handleSaveRow', onEditRow);\n\t\ttry {\n\t\t\tawait validationSchema.validate(values, {\n\t\t\t\tabortEarly: false\n\t\t\t});\n\t\t\tsetValidationErrors({});\n\t\t\tsetIsEditingRow(true);\n\t\t\tsetDisableNextEdit(false)\n\t\t\tconst cells = row.getAllCells().map((c: any) => c.column.columnDef);\n\t\t\trow._valuesCache = formtValues(values, cells);\n\n\t\t\tconst data = { row, values, table: tableInstance };\n\n\t\t\tif (onEditRow) {\n\t\t\t\tawait onEditRow(data, 'edit');\n\t\t\t}\n\t\t\tsetIsEditingRow(false);\n\t\t\ttableInstance.setEditingRow(null);\n\t\t} catch (err) {\n\t\t\tconsole.log(\"handleSaveRow error\", err);\n\t\t\tsetIsEditingRow(false);\n\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\tconst errors: Record<string, string> = {};\n\n\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\terrors[error.path] = error.message;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsetValidationErrors(errors);\n\t\t\t} else if (err instanceof Error) {\n\t\t\t\tenqueueSnackbar(err.message, { variant: 'error' })\n\t\t\t} else {\n\t\t\t\tenqueueSnackbar('Something went wrong', { variant: 'error' })\n\t\t\t}\n\t\t}\n\t}, [validationSchema, onEditRow, formtValues]);\n\n\tconst table = useMaterialReactTable({\n\t\t// options:{\n\t\t// \ttableLayout: \"auto\", // 👈 important\n\t\t// \tpadding: \"dense\",\n\t\t// },\n\t\t// columns: visibleColumns,\n\t\tdefaultColumn: {\n\t\t\tminSize: 0, // 👈 remove default min width\n\t\t\tsize: undefined, // 👈 optional, default size\n\t\t},\n\t\tcolumns: [\n\t\t\t...visibleColumns.map((c: any) => {\n\t\t\t\tconst headerWidth = getTextWidth(c.header || '');\n\t\t\t\tconst maxCellWidth = Math.max(\n\t\t\t\t\t...rows.map(row => getTextWidth(String(row[c.accessorKey] ?? '')))\n\t\t\t\t);\n\t\t\t\tconst finalWidth = Math.max(headerWidth, maxCellWidth);\n\t\t\t\treturn {\n\t\t\t\t\t...c,\n\t\t\t\t\t...(editDisplayMode === 'row'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\tEdit: ({ cell, row, table, column }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<InlineEditFields\n\t\t\t\t\t\t\t\t\t\tcell={cell}\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tcol={c}\n\t\t\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\t\t\ttable={table}\n\t\t\t\t\t\t\t\t\t\tcallback={(s) => console.log('Save', s)}\n\t\t\t\t\t\t\t\t\t\terrors={validationErrors}\n\t\t\t\t\t\t\t\t\t\tvalidationSchema={validationSchema}\n\t\t\t\t\t\t\t\t\t\tsetValidationErrors={setValidationErrors}\n\t\t\t\t\t\t\t\t\t\tonChangeRowField={onChangeRowField}\n\t\t\t\t\t\t\t\t\t\tgetSelectedData={(name, row) => getSelectedData?.(name, row)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t\t: {}),\n\t\t\t\t\tHeader: (\n\t\t\t\t\t\t<Box display='flex' alignItems='center'>\n\t\t\t\t\t\t\t{c.header}\n\t\t\t\t\t\t\t{c?.required || checkRequired(c?.editProperties) && (\n\t\t\t\t\t\t\t\t<Typography type='s5' color='theme.error.600'>\n\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t),\n\t\t\t\t\tenableColumnDragging: c.id !== 'actions',\n\t\t\t\t\t// cellStyle: { ...c.cellStyle, width: finalWidth },\n\t\t\t\t\t// headerStyle: { ...c.headerStyle, width: finalWidth },\n\t\t\t\t\t// size: finalWidth\n\t\t\t\t\tsize: undefined,\n\t\t\t\t\t// minSize: 40,\n\t\t\t\t\tmaxSize: 800,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...(!disableDefaultActionColumn\n\t\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'actions',\n\t\t\t\t\t\tenableEditing: false,\n\t\t\t\t\t\tsize: defaultActionColumnItems?.length > 1 ? 80 : 50,\n\t\t\t\t\t\theader: (\n\t\t\t\t\t\t\t<IconButton size=\"small\" sx={{ p: 0.5, '&:hover': { backgroundColor: 'transparent' } }} onClick={handleHeaderClick}>\n\t\t\t\t\t\t\t\t<img src={images.common.arrowIcon} alt='Arrow Icon' />\n\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tenableColumnDragging: false,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tmuiTableHeadCellProps: {\n\t\t\t\t\t\t\tclassName: 'pinned-column'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmuiTableBodyCellProps: {\n\t\t\t\t\t\t\tclassName: 'pinned-column',\n\t\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t\twhiteSpace: 'pre-wrap'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCell: (props) =>\n\t\t\t\t\t\t\tdefaultActionColumnItems?.length ? (\n\t\t\t\t\t\t\t\tdefaultActionColumnItems.map((item) => {\n\t\t\t\t\t\t\t\t\tconst updatedProps = {\n\t\t\t\t\t\t\t\t\t\t...item.props,\n\t\t\t\t\t\t\t\t\t\tonClick: () => item.props.onClick(props)\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\treturn cloneElement(item, updatedProps);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : !disabledDefaultActionColumnIcon && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tonClick={(e) => handleActionsClick(e, props.row.original)} disabled={!rowActionMenu?.length && !destructiveActionMenu?.length}>\n\t\t\t\t\t\t\t\t\t<img src={images.more} alt='More Icon' />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t\t: [])\n\t\t],\n\t\tdata: rows,\n\t\tmuiTablePaperProps: {\n\t\t\tsx: {\n\t\t\t\ttableLayout: 'auto', // lets columns shrink to fit content\n\t\t\t},\n\t\t},\n\t\tcolumnResizeMode: 'onChange',\n\t\tonEditingRowSave: async (data) => {\n\t\t\tawait handleSaveRow(data.row, data.values, data.table);\n\t\t},\n\t\tonCreatingRowSave: async (data) => {\n\t\t\ttry {\n\t\t\t\tawait validationSchema.validate(data.values, {\n\t\t\t\t\tabortEarly: false\n\t\t\t\t});\n\t\t\t\tsetValidationErrors({});\n\t\t\t\tsetIsCreatingRow(true);\n\t\t\t\tsetDisableNextEdit(false)\n\t\t\t\tconst cells = data.row.getAllCells().map((c) => c.column.columnDef);\n\n\t\t\t\tdata.row._valuesCache = formtValues(data.values, cells);\n\n\t\t\t\tif (onCreateRow) {\n\t\t\t\t\tawait onCreateRow(data);\n\t\t\t\t}\n\t\t\t\tsetIsCreatingRow(false);\n\t\t\t\tdata.table.setCreatingRow(null);\n\t\t\t} catch (err) {\n\t\t\t\tsetIsCreatingRow(false);\n\t\t\t\tif (err instanceof yup.ValidationError) {\n\t\t\t\t\tconst errors: Record<string, string> = {};\n\n\t\t\t\t\terr.inner.forEach((error) => {\n\t\t\t\t\t\tif (error.path) {\n\t\t\t\t\t\t\terrors[error.path] = error.message;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tsetValidationErrors(errors);\n\t\t\t\t} else if (err instanceof Error) {\n\t\t\t\t\tenqueueSnackbar(err.message, { variant: 'error' })\n\t\t\t\t} else {\n\t\t\t\t\tenqueueSnackbar('Something went wrong', { variant: 'error' })\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonCreatingRowCancel: () => resetRowSelection(),\n\t\tonEditingRowCancel: () => {\n\t\t\tconsole.log('onEditingRowCancel called');\n\t\t\tsetDisableNextEdit(false);\n\t\t},\n\t\tonSortingChange: states?.sorting ? onSortingChange : setSorting,\n\n\t\tdisplayColumnDefOptions: {\n\t\t\t'mrt-row-actions': {\n\t\t\t\t// size: onDeleteRow ? 80 : 50,\n\n\t\t\t\tHeader: (\n\t\t\t\t\t<IconButton onClick={handleHeaderClick} size='small'>\n\t\t\t\t\t\t<img src={images.common.arrowIcon} alt='Arrow Icon' />\n\t\t\t\t\t</IconButton>\n\t\t\t\t),\n\t\t\t\tmuiTableBodyCellProps: ({ row, table }) => {\n\t\t\t\t\tconst isCreatingRow = table.getState().creatingRow?.id === row.id;\n\t\t\t\t\tconst isEditingRow = table.getState().editingRow?.id === row.id;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tsx: {\n\t\t\t\t\t\t\t'& .MuiBox-root': {\n\t\t\t\t\t\t\t\tgap: 0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbackgroundColor: '#fff',\n\t\t\t\t\t\t\twhiteSpace: 'pre-wrap',\n\t\t\t\t\t\t\t// Hide save button only when editing existing row (not in create mode or non-editable mode)\n\t\t\t\t\t\t\t...(isEditingRow && !isCreatingRow && {\n\t\t\t\t\t\t\t\t'& .MuiBox-root > .MuiIconButton-root:first-of-type': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// Also hide any save icon buttons by aria-label or title\n\t\t\t\t\t\t\t\t'& button[aria-label*=\"Save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'& button[title*=\"Save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t// Hide save icon by class or data attributes\n\t\t\t\t\t\t\t\t'& .MuiIconButton-root[class*=\"save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'& .MuiIconButton-root[data-testid*=\"save\"]': {\n\t\t\t\t\t\t\t\t\tdisplay: 'none !important'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonKeyUp: (e) => console.log(e)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t},\n\t\t\t'mrt-row-expand': {\n\t\t\t\tsize: 70, // Set the size of the expand-collapse arrow column here\n\t\t\t},\n\t\t\t'mrt-row-select': {\n\t\t\t\tsize: 50, // Set the width of the checkbox column here\n\t\t\t},\n\t\t},\n\t\trenderRowActions: ({ row, table }) => (\n\t\t\t<>\n\t\t\t\t{rest?.enableExpanding ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{row?.parentId && (\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0 }}>\n\t\t\t\t\t\t\t\t{onDeleteRow && (\n\t\t\t\t\t\t\t\t\t<Tooltip title='Delete'>\n\t\t\t\t\t\t\t\t\t\t<IconButton disabled={disableNextEdit} onClick={() => setRowToDelete(row)} size='small'>\n\t\t\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0 }}>\n\t\t\t\t\t\t{onDeleteRow && (\n\t\t\t\t\t\t\t<Tooltip title='Delete'>\n\t\t\t\t\t\t\t\t<IconButton disabled={disableNextEdit} onClick={() => setRowToDelete(row)}>\n\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</>\n\t\t),\n\n\t\t...(Boolean(enableRowCreate) && {\n\t\t\trenderBottomToolbarCustomActions: ({ table }) => (\n\t\t\t\t<Button\n\t\t\t\t\tvariant='outlined'\n\t\t\t\t\tstartIcon={<Add />}\n\t\t\t\t\tclassName='add-row-btn'\n\t\t\t\t\tdisabled={disableNextEdit}\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\ttable.setCreatingRow(true); //simplest way to open the create row modal with no default values\n\t\t\t\t\t\tsetDisableNextEdit(true)\n\t\t\t\t\t}}>\n\t\t\t\t\t{t('common.add')}\n\t\t\t\t</Button>\n\t\t\t)\n\t\t}),\n\t\tonRowSelectionChange: setRowSelection,\n\t\tenableColumnOrdering: true,\n\t\tenableRowSelection: enableRowSelection ?? true,\n\t\tenableEditing: enableEditing instanceof Function ? enableEditing() : enableEditing ?? true,\n\t\teditDisplayMode: editDisplayMode ?? 'row',\n\t\tcreateDisplayMode: 'row',\n\t\tenableColumnResizing: enableColumnResizing,\n\t\tenableRowDragging: enableRowDragging,\n\t\tenableTopToolbar: false,\n\t\tenableColumnActions: false,\n\t\tenableSorting: true,\n\t\tenableGrouping: true,\n\t\tenableBottomToolbar: enableBottomToolbar ?? false,\n\t\tenableColumnDragging: enableColumnDragging ?? true,\n\t\tenableStickyHeader: true,\n\t\tenableSortingRemoval: false,\n\t\t// column ordering\n\t\tstate: {\n\t\t\t// columnOrder: (!columnOrder || columnOrder.length <= 1) \n\t\t\t// ? [...internalColumnOrder] \n\t\t\t// : [...columnOrder],\n\t\t\tcolumnOrder: columnOrder,\n\t\t\tcolumnPinning: { left: ['actions', 'mrt-row-actions'] },\n\t\t\tisSaving: isCreatingRow || isEditingRow,\n\t\t\tshowProgressBars: false,\n\t\t\trowSelection,\n\t\t\t...states,\n\t\t\tsorting: Array.isArray(states?.sorting) ? states?.sorting :\n\t\t\t\tArray.isArray(sorting) ? sorting : [],\n\t\t\tcolumnSizing\n\n\t\t},\n\t\tgetRowId: (row) => row?.id,\n\t\t// table.getState().editingRow\n\t\tmuiTableBodyRowProps: ({ row, table }) => {\n\t\t\tconst editingRowId =\n\t\t\t\ttable.getState()?.editingRow?.id ||\n\t\t\t\ttable.getState()?.creatingRow?.id ||\n\t\t\t\tnull;\n\t\t\tconst isErrorRow = Boolean(row?.original?.has_error)\n\t\t\tconst isCurrentlyEditing = editingRowId === row.id;\n\n\t\t\treturn {\n\t\t\t\tonClick: () => {\n\t\t\t\t\tsetSelectedRow(row.id);\n\t\t\t\t\tconsole.log('Row clicked:', row.id, 'editingRowId:', editingRowId, 'isCurrentlyEditing:', isCurrentlyEditing, 'disableNextEdit:', disableNextEdit);\n\n\t\t\t\t\t// If there's a row currently being edited and it's not this row, save it first then edit this row\n\t\t\t\t\tif (editingRowId && editingRowId !== row.id) {\n\t\t\t\t\t\t// Exit edit mode on the current row (this triggers onEditingRowSave)\n\t\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\t\t// Use setTimeout to let the save complete before editing the new row\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\ttable.setEditingRow(row);\n\t\t\t\t\t\t\tsetDisableNextEdit(true);\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// Set the row as editable when clicked if not already editing and no other row is being edited\n\t\t\t\t\tif (!disableNextEdit && !isCurrentlyEditing && !editingRowId) {\n\t\t\t\t\t\tconsole.log('Setting row as editable:', row.id);\n\t\t\t\t\t\ttable.setEditingRow(row);\n\t\t\t\t\t\tsetDisableNextEdit(true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log('Cannot edit row - conditions not met');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonKeyDown: (e) => {\n\t\t\t\t\t// Handle keyboard events for editing\n\t\t\t\t\tif (isCurrentlyEditing) {\n\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t// Save on Enter\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\t\t} else if (e.key === 'Escape') {\n\t\t\t\t\t\t\t// Cancel on Escape\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tconsole.log('Escape pressed, canceling edit for row:', row.id);\n\t\t\t\t\t\t\ttable.setEditingRow(null);\n\t\t\t\t\t\t\t// Immediately reset disableNextEdit to allow re-editing\n\t\t\t\t\t\t\tsetDisableNextEdit(false);\n\t\t\t\t\t\t\thandleSaveRow(row, row._valuesCache || row.original, table);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsx: {\n\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t// backgroundColor: !editingRowId\n\t\t\t\t\t// \t? (selectedRow === row.id\n\t\t\t\t\t// \t\t? '#e8e8e8'\n\t\t\t\t\t// \t\t: (isErrorRow ? 'theme.error.100' : 'inherit'))\n\t\t\t\t\t// \t: 'inherit',\n\t\t\t\t\tbackgroundColor: !editingRowId\n\t\t\t\t\t\t? (isErrorRow ? 'theme.error.100' : 'inherit')\n\t\t\t\t\t\t: 'inherit',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tbackgroundColor: editingRowId ? 'transparent' : (isErrorRow ? 'theme.error.200' : '#e8e8e8') // Removes hover effect globally\n\t\t\t\t\t},\n\t\t\t\t\t'&:hover td:after': {\n\t\t\t\t\t\tbackgroundColor: 'transparent' // Removes the grey background applied via :after\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tonColumnOrderChange: (colOrder: any) => {\n\t\t\tif (handleColumnOrdering) handleColumnOrdering(colOrder);\n\t\t},\n\t\tonColumnSizingChange: setColumnSizing,\n\t\tonColumnSizingInfoChange: setColumnSizingInfo,\n\n\t\trenderEmptyRowsFallback: () => (\n\t\t\t<Box className='no-data'>\n\t\t\t\t<img src={images.common.tableNoData} />\n\t\t\t\t<Typography type='s3' weight='medium' color='theme.secondary.1000'>\n\t\t\t\t\t{/* sx={{ textAlign: 'center', pb: 4.75, pt: 4.75 }}> */}\n\t\t\t\t\t{t('common.noData')}\n\t\t\t\t</Typography>\n\t\t\t</Box>\n\t\t),\n\n\t\t// pagination\n\t\tenablePagination: enablePagination,\n\t\tpaginationDisplayMode: 'pages',\n\t\tmuiPaginationProps: {\n\t\t\tshape: 'rounded',\n\t\t\tpage: pageNo, // current page number\n\t\t\tcount: totalPages, // total pages\n\t\t\tshowRowsPerPage: false, // Hide rows per page options\n\t\t\tboundaryCount: 3\n\t\t},\n\n\t\tmuiEditTextFieldProps: ({ row, column }) => ({\n\t\t\tInputProps: {\n\t\t\t\tdisableUnderline: true\n\t\t\t},\n\t\t\tonBlur: (e) => {\n\t\t\t\tupdateData(e.target.value, column, row.id);\n\t\t\t},\n\t\t\t// onChange: (e) => {\n\t\t\t// \tupdateData(e.target.value, column, row.id);\n\t\t\t// },\n\t\t\tvariant: 'outlined',\n\t\t\tsx: ({ palette }) => ({\n\t\t\t\t'& .MuiOutlinedInput-root': {\n\t\t\t\t\t'& fieldset': {\n\t\t\t\t\t\tborderColor: `${palette.theme?.primary[700]} !important`\n\t\t\t\t\t\t// backgroundColor: palette.theme?.primary[700]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}),\n\n\t\t/* Table loader style */\n\t\tmuiCircularProgressProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: '#289B64'\n\t\t\t}\n\t\t},\n\n\t\t// Table header cell default styles\n\t\tmuiTableHeadCellProps: {\n\t\t\tsx: {\n\t\t\t\tlineHeight: '140%',\n\t\t\t\tletterSpacing: '-0.28px',\n\t\t\t\tfontWeight: '500',\n\t\t\t\tfontSize: '0.875rem',\n\t\t\t\t'& .Mui-TableHeadCell-Content': {\n\t\t\t\t\theight: '100%'\n\t\t\t\t},\n\t\t\t\t'& .Mui-TableHeadCell-Content-Labels': {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\tjustifyContent: 'space-between'\n\t\t\t\t},\n\t\t\t\t'&.pinned-column': {\n\t\t\t\t\tbackgroundColor: '#fff'\n\t\t\t\t},\n\t\t\t\t'& .Mui-TableHeadCell-ResizeHandle-Wrapper': {\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tright: '-5px',\n\t\t\t\t\topacity: 0\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\n\t\t// Table body cell default styles\n\t\tmuiTableBodyProps: {\n\t\t\tsx: {\n\t\t\t\tzIndex: 500\n\t\t\t}\n\t\t},\n\t\tmuiTableHeadProps: {\n\t\t\tsx: {\n\t\t\t\tzIndex: 600\n\t\t\t}\n\t\t},\n\t\tmuiTableBodyCellProps: (/* { cell, column, table , row } */) => ({\n\t\t\tsx: {\n\t\t\t\tlineHeight: '140%',\n\t\t\t\tletterSpacing: '-0.26px',\n\t\t\t\tfontWeight: '400',\n\t\t\t\tfontSize: '0.8125rem',\n\t\t\t\t'&.pinned-column': {\n\t\t\t\t\tbackgroundColor: '#fff'\n\t\t\t\t},\n\t\t\t\t'&:hover': {\n\t\t\t\t\tbackgroundColor: 'transparent' // Removes hover effect globally\n\t\t\t\t},\n\t\t\t\twhiteSpace: 'pre-wrap'\n\t\t\t}\n\t\t\t// onClick: () => {\n\t\t\t// \ttable.setEditingCell(cell); //set editing cell\n\t\t\t// \tqueueMicrotask(() => {\n\t\t\t// \t\tconst textField = table.refs.editInputRefs.current[column.id];\n\t\t\t// \t\tif (textField) {\n\t\t\t// \t\t\ttextField.focus();\n\t\t\t// \t\t\ttextField.select?.();\n\t\t\t// \t\t}\n\t\t\t// \t});\n\t\t\t// }\n\t\t\t// onKeyDown: (event) => {\n\t\t\t// \tif (event.key === 'Tab') {\n\t\t\t// \t\ttry {\n\t\t\t// \t\t\t\t// if (column.columnDef.editVariant === 'select') {\n\t\t\t// \t\t\t\t// \ttable.refs.editInputRefs.current[column.id]?.node?.blur();\n\t\t\t// \t\t\t\t// } else {\n\t\t\t// \t\t\t\t// \ttable.refs.editInputRefs.current[column.id].blur();\n\t\t\t// \t\t\t\t// }\n\n\t\t\t// \t\t\tconst rowIdx = row.index;\n\t\t\t// \t\t\tconst colIdx = columns.findIndex(\n\t\t\t// \t\t\t\t(col) => col.accessorKey === column.id\n\t\t\t// \t\t\t);\n\t\t\t// \t\t\tconst newColIdx = colIdx + 1;\n\t\t\t// \t\t\tconst clm = columns[newColIdx];\n\t\t\t// \t\t\tconst nextCell = row\n\t\t\t// \t\t\t\t.getAllCells()\n\t\t\t// \t\t\t\t.find((cl) => (cl.id = `${rowIdx}_${clm.accessorKey}`));\n\n\t\t\t// \t\t\tif (nextCell) {\n\t\t\t// \t\t\t\t// updateData(event.target.value, column, row.id);\n\t\t\t// \t\t\t\ttable.setEditingCell(nextCell);\n\t\t\t// \t\t\t\tqueueMicrotask(() => {\n\t\t\t// \t\t\t\t\tconst textField = table.refs.editInputRefs.current[column.id];\n\t\t\t// \t\t\t\t\tif (textField) {\n\t\t\t// \t\t\t\t\t\ttextField.focus();\n\t\t\t// \t\t\t\t\t\ttextField.select?.();\n\t\t\t// \t\t\t\t\t}\n\t\t\t// \t\t\t\t});\n\t\t\t// \t\t\t}\n\t\t\t// \t\t} catch (error) {\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// },\n\t\t\t// onBlur: () => {\n\t\t\t// \ttable.setEditingCell(null);\n\t\t\t// }\n\t\t}),\n\n\t\t// Checkbox styling\n\t\tmuiSelectCheckboxProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: 'theme.secondary.300',\n\t\t\t\t'&.Mui-checked': {\n\t\t\t\t\tcolor: 'theme.primary.600',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tcolor: 'theme.primary.500'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\tcolor: 'theme.secondary.200'\n\t\t\t\t}\n\t\t\t},\n\t\t\ticon: <RecgtangleIcon sx={{ width: 20, height: 20 }} />,\n\t\t\tcheckedIcon: <CheckBoxIcon sx={{ width: 20, height: 20 }} />\n\t\t},\n\t\tmuiSelectAllCheckboxProps: {\n\t\t\tsx: {\n\t\t\t\tcolor: 'theme.secondary.300',\n\t\t\t\t'&.Mui-checked': {\n\t\t\t\t\tcolor: 'theme.primary.600',\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tcolor: 'theme.primary.500'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t'&.Mui-disabled': {\n\t\t\t\t\tcolor: 'theme.secondary.600'\n\t\t\t\t}\n\t\t\t},\n\t\t\ticon: <RecgtangleIcon sx={{ width: 20, height: 20 }} />,\n\t\t\tcheckedIcon: <CheckBoxIcon sx={{ width: 20, height: 20 }} />\n\t\t},\n\t\tmuiBottomToolbarProps: {\n\t\t\tsx: {\n\t\t\t\tboxShadow: 'none',\n\t\t\t\t'& .MuiBox-root': {\n\t\t\t\t\tpaddingLeft: 0\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tlayoutMode: 'grid',\n\t\ticons: {\n\t\t\tDragHandleIcon: () => <RecgtangleIcon fontSize='medium' />,\n\t\t\tSortIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tArrowDownwardIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tArrowUpwardIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tExpandMoreIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tExpandLessIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tSyncAltIcon: () => <ArrowUpDown fontSize='medium' />,\n\t\t\tCancelIcon: (props: SvgIconProps) => (\n\t\t\t\t<Close fontSize='small' {...props} color='theme.secondary.1000' />\n\t\t\t)\n\t\t},\n\n\t\t...rest\n\t});\n\n\tuseEffect(() => {\n\t\tif (enableRowSelection) {\n\t\t\tif (table?.getSelectedRowModel()?.rows) {\n\t\t\t\tSetSelectedRowId?.(table?.getSelectedRowModel()?.rows);\n\t\t\t}\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [enableRowSelection]);\n\n\tuseEffect(() => {\n\t\tif (onSelectRow) {\n\t\t\tif (rest?.enableExpanding) {\n\t\t\t\tconst selectedRowModels: any[] = [];\n\t\t\t\tconst selection = table.getState().rowSelection; // e.g., { 0.0: true }\n\t\t\t\tconst traverseRows = (rows, parentKey = '') => {\n\t\t\t\t\trows.forEach((row: any, index: number) => {\n\t\t\t\t\t\tconst rowKey = parentKey ? `${parentKey}.${index}` : `${row.id}`;\n\t\t\t\t\t\tif (selection[rowKey]) {\n\t\t\t\t\t\t\tselectedRowModels.push(row);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check for sub-rows and traverse further\n\t\t\t\t\t\tif (row.subRows?.length) {\n\t\t\t\t\t\t\ttraverseRows(row.subRows, rowKey);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\ttraverseRows(table.getRowModel().rows);\n\t\t\t\tonSelectRow(selectedRowModels, rowSelection);\n\t\t\t} else {\n\t\t\t\tonSelectRow(table.getSelectedRowModel().rows, rowSelection);\n\t\t\t}\n\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [rowSelection, table]);\n\n\t// useEffect(() => {\n\t// \tconst relativeContainer = document.getElementsByClassName(\n\t// \t\t'MuiTableContainer-root'\n\t// \t)[0];\n\t// \tconst fixedElement = document.getElementsByClassName('no-data')[0];\n\t// \trelativeContainer.addEventListener('scroll', () => {\n\t// \t\tconst scrollLeft = relativeContainer.scrollLeft;\n\t// \t\tfixedElement.style.left = `${scrollLeft + 100}px`;\n\t// \t});\n\t// }, []);\n\n\tuseEffect(() => {\n\t\tif (isResetRow) {\n\t\t\ttable?.resetRowSelection();\n\t\t}\n\t}, [isResetRow, table]);\n\n\t// Handle clicks outside the table to save and exit edit mode - ADVANCED EVENT DELEGATION\n\tuseEffect(() => {\n\t\tif (!table) return;\n\n\t\tlet dropdownOpenTimer: NodeJS.Timeout;\n\t\tlet saveTimer: NodeJS.Timeout;\n\t\tlet lastDropdownClick = 0;\n\t\tlet isDropdownInteraction = false;\n\n\t\t// Track dropdown interactions with precise timing\n\t\tconst handleMouseDown = (e: MouseEvent) => {\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tconst isDropdownElement = target.closest(\n\t\t\t\t'.MuiSelect-root, .MuiMenuItem-root, .MuiPopover-root, .MuiList-root, ' +\n\t\t\t\t'.MuiMenu-list, .MuiModal-root, .MuiBackdrop-root, .MuiButtonBase-root, ' +\n\t\t\t\t'.MuiFormControl-root, .MuiInputBase-root, .MuiTextField-root, ' +\n\t\t\t\t'.MuiOutlinedInput-root, .MuiFilledInput-root, .MuiAutocomplete-popper, ' +\n\t\t\t\t'.MuiPickersPopper-root, [role=\"option\"], [role=\"listbox\"], [role=\"combobox\"]'\n\t\t\t);\n\n\t\t\tif (isDropdownElement) {\n\t\t\t\tisDropdownInteraction = true;\n\t\t\t\tlastDropdownClick = Date.now();\n\t\t\t\t// Clear any pending save when dropdown interaction starts\n\t\t\t\tif (saveTimer) {\n\t\t\t\t\tclearTimeout(saveTimer);\n\t\t\t\t}\n\t\t\t\t// Set a timer to reset dropdown interaction flag\n\t\t\t\tif (dropdownOpenTimer) {\n\t\t\t\t\tclearTimeout(dropdownOpenTimer);\n\t\t\t\t}\n\t\t\t\tdropdownOpenTimer = setTimeout(() => {\n\t\t\t\t\tisDropdownInteraction = false;\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t};\n\n\t\t// Handle clicks with sophisticated logic\n\t\tconst handleClick = (e: MouseEvent) => {\n\t\t\tconst editingRow = table.getState()?.editingRow;\n\t\t\tif (!editingRow) return;\n\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tconst now = Date.now();\n\n\t\t\t// Don't process if we recently had a dropdown interaction\n\t\t\tif (isDropdownInteraction || (now - lastDropdownClick) < 300) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if click is inside table\n\t\t\tconst isInsideTable = target.closest('.MuiTableContainer-root, .MuiPaper-root, .MRT_Table');\n\n\t\t\t// Only save if clicking outside table and no recent dropdown interaction\n\t\t\tif (!isInsideTable) {\n\t\t\t\t// Clear any existing save timer\n\t\t\t\tif (saveTimer) {\n\t\t\t\t\tclearTimeout(saveTimer);\n\t\t\t\t}\n\n\t\t\t\t// Schedule save with additional delay for safety\n\t\t\t\tsaveTimer = setTimeout(() => {\n\t\t\t\t\tconst currentEditingRow = table.getState()?.editingRow;\n\t\t\t\t\tif (currentEditingRow && !isDropdownInteraction) {\n\t\t\t\t\t\thandleSaveRow(currentEditingRow, currentEditingRow._valuesCache || currentEditingRow.original, table);\n\t\t\t\t\t}\n\t\t\t\t}, 200);\n\t\t\t}\n\t\t};\n\n\t\t// Use both mousedown and click for comprehensive tracking\n\t\tdocument.addEventListener('mousedown', handleMouseDown, true);\n\t\tdocument.addEventListener('click', handleClick, true);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleMouseDown, true);\n\t\t\tdocument.removeEventListener('click', handleClick, true);\n\t\t\tif (dropdownOpenTimer) {\n\t\t\t\tclearTimeout(dropdownOpenTimer);\n\t\t\t}\n\t\t\tif (saveTimer) {\n\t\t\t\tclearTimeout(saveTimer);\n\t\t\t}\n\t\t};\n\t}, [table, handleSaveRow]);\n\treturn (\n\t\t<TableWrapper className='MRT-TableWrapper custom-table'>\n\t\t\t<MaterialReactTable table={table} />\n\n\t\t\t<Menu\n\t\t\t\tanchorEl={anchorEl}\n\t\t\t\topen={Boolean(anchorEl)}\n\t\t\t\tonClose={handleHeaderClose}\n\t\t\t\tclassName='add-role-drp'>\n\t\t\t\t{popUpShow ? (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={handleBackButtonClick}\n\t\t\t\t\t\t\tclassName='role-drp-list add-column-title'>\n\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t<ChevronLeftIcon />\n\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t{t('common.addColumn_label')}\n\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<div className='searchbar-box-list'>\n\t\t\t\t\t\t\t<SearchBar\n\t\t\t\t\t\t\t\tplaceholder={'Search User'}\n\t\t\t\t\t\t\t\thandleSearch={(e) => handleSearchEvent(e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className='all-attribute-title'>\n\t\t\t\t\t\t\t<Typography variant='body2' color='text.secondary'>\n\t\t\t\t\t\t\t\t{t('common.allAttributes_label')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{filteredOptions.map((column: any) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={column.accessorKey}\n\t\t\t\t\t\t\t\tonClick={() => handleAddColumn(column)}>\n\t\t\t\t\t\t\t\t<Typography color='theme.secondary.1000' type='s3'>\n\t\t\t\t\t\t\t\t\t{column.header}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tenableAddCustomField && <MenuItem onClick={handleCustomAddColumn} className='role-drp-list'>\n\t\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.addIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t\t{t('common.addCustomField_label')}\n\t\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{visibleColumns.map((column: any) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={column.accessorKey}\n\t\t\t\t\t\t\t\tonClick={() => handleVisibleColumn(column)}\n\t\t\t\t\t\t\t\tclassName='role-drp-list'>\n\t\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.dotsIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t\t<ListItemText className='title'>{column.header}</ListItemText>\n\t\t\t\t\t\t\t\t<ListItemIcon className='eye-icon'>\n\t\t\t\t\t\t\t\t\t<img src={images.common.eyeIcon} alt='Eye Icon' />\n\t\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<MenuItem onClick={handleAddButtonClick} className='role-drp-list'>\n\t\t\t\t\t\t\t<ListItemIcon className='add-icon'>\n\t\t\t\t\t\t\t\t<img src={images.common.addIcon} alt='Add Icon' />\n\t\t\t\t\t\t\t</ListItemIcon>\n\t\t\t\t\t\t\t<ListItemText className='title'>\n\t\t\t\t\t\t\t\t{t('common.addColumn_label')}\n\t\t\t\t\t\t\t</ListItemText>\n\t\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\t\tvariant='body2'\n\t\t\t\t\t\t\t\tcolor='text.secondary'\n\t\t\t\t\t\t\t\tclassName='eye-icon'>\n\t\t\t\t\t\t\t\t<ChevronRightIcon sx={{ fontSize: '1.25rem !important' }} />\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Menu>\n\n\t\t\t<Menu\n\t\t\t\tanchorEl={rowAnchorEl}\n\t\t\t\topen={Boolean(rowAnchorEl)}\n\t\t\t\tonClose={handleActionsClose}>\n\t\t\t\t{rowActionMenu?.map((option: any) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(option.label === 'Move' &&\n\t\t\t\t\t\t\t(row?.is_directory === true || row?.is_directory === 1)) ||\n\t\t\t\t\t\t(option.label === 'Download' &&\n\t\t\t\t\t\t\t(row?.is_directory === true ||\n\t\t\t\t\t\t\t\trow?.is_directory === 1 ||\n\t\t\t\t\t\t\t\trow?.drive?.is_directory === true ||\n\t\t\t\t\t\t\t\trow?.drive?.is_directory === 1))\n\t\t\t\t\t) {\n\t\t\t\t\t\t// return null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\t\tawait option.handleAction(row);\n\t\t\t\t\t\t\t\tsetRowAnchorEl(null);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\ttypeof option.disabled === 'function'\n\t\t\t\t\t\t\t\t\t? option.disabled(row)\n\t\t\t\t\t\t\t\t\t: Boolean(option.disabled)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsx={{ alignItems: 'center', gap: 0.5 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option?.icon}\n\t\t\t\t\t\t\t<Typography type='s4' color='inherit'>\n\t\t\t\t\t\t\t\t{typeof option.label === 'function' ? option.label(row) : option.label}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{destructiveActionMenu?.length > 0 &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n\t\t\t\t\t\t<div className='dropdown-inner--DestructiveHeader'>\n\t\t\t\t\t\t\t{destructiveActionMenu?.map((option: any) => (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\toption.handleAction(row);\n\t\t\t\t\t\t\t\t\t\tsetRowAnchorEl(null);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tclassName='dropdown-inner--DestructiveActions'\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\ttypeof option.disabled === 'function'\n\t\t\t\t\t\t\t\t\t\t\t? option.disabled(row)\n\t\t\t\t\t\t\t\t\t\t\t: Boolean(option.disabled)\n\t\t\t\t\t\t\t\t\t}>\n\t\t\t\t\t\t\t\t\t<Typography type='s4' color='inherit'>\n\t\t\t\t\t\t\t\t\t\t{typeof option.label === 'function' ? option.label(row) : option.label}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t</Menu>\n\t\t\t<ConfirmPopUp\n\t\t\t\topen={Boolean(rowToDelete)}\n\t\t\t\tonClose={() => setRowToDelete(null)}\n\t\t\t\tonConfirm={() => handleRowDelete()}\n\t\t\t\ttitle='Delete Item'\n\t\t\t\tdescription={`Are you sure you want to delete entry ?`}\n\t\t\t\tloading={isDeletingRow}\n\t\t\t/>\n\t\t</TableWrapper>\n\t);\n});\n\nexport { MaterialEditableTable };\nexport default MaterialEditableTable;"],"names":["TableWrapper","styled","Box","theme","palette","border","borderBottom","borderLeft","padding","lineHeight","fontSize","minHeight","backgroundColor","_a","secondary","maxHeight","boxShadow","_b","primary","color","_c","_d","height","width","MaterialEditableTable","React","memo","enablePagination","rows","columns","totalPages","paginationModel","columnOrder","updateData","handleColumnOrdering","enableEditing","enableColumnDragging","states","rowActionMenu","destructiveActionMenu","disableDefaultActionColumn","enableRowSelection","defaultActionColumnItems","enableBottomToolbar","SetSelectedRowId","isResetRow","onCreateRow","onEditRow","onDeleteRow","editDisplayMode","enableRowCreate","onChangeRowField","onSelectRow","enableColumnResizing","selectedRowIds","onColumnVisibility","onSortingChange","getSelectedData","disabledDefaultActionColumnIcon","enableAddCustomField","enableRowDragging","handleColumnResizing","columnSizes","rest","t","useTranslation","formData","updatePageInfo","activePage","aPage","usePages","useDeepMemo","pageNo","row","setRow","useState","tableColumns","setTableColumns","anchorEl","setAnchorEl","popUpShow","setPopupShow","rowAnchorEl","setRowAnchorEl","visibleColumns","filter","column","visible","hiddenColumns","filteredOptions","setFilteredOptions","selectedRow","setSelectedRow","validationErrors","setValidationErrors","validationSchema","setValidationSchema","isCreatingRow","setIsCreatingRow","isEditingRow","setIsEditingRow","isDeletingRow","setIsDeletingRow","rowToDelete","setRowToDelete","rowSelection","setRowSelection","isChecked","setIsChecked","sorting","setSorting","disableNextEdit","setDisableNextEdit","columnSizing","setColumnSizing","column_sizes","columnSizingInfo","setColumnSizingInfo","columnSizingStart","deltaOffset","deltaPercentage","isResizingColumn","startOffset","startSize","navigate","useNavigate","currentModule","location","pathname","split","redirectionPath","PathnameAccounting","CUSTOM_FORM","PathnameInventory","PathnameManufacturing","PathnamePurchase","PathnameCrm","PathnameUsers","PathnameRental","PathnameDocument","ADD_CUSTOM_FIELDS","path","validationReducer","validations","validation","vld","type","value","required","msg_en","typeError","editProperties","is_multiple","min","email","max","test","when","relation","is","val","values","then","thenValidations","reduce","otherwise","otherWiseValidations","editVariant","trim","length","useEffect","schema","forEach","clm","fieldValidations","yup","array","string","number","nullable","transform","originalValue","matches","excludeEmptyString","message","getValidationType","accessorKey","generateValidationSchema","object","shape","handleHeaderClick","event","currentTarget","formtValues","useCallback","cells","v","Object","keys","vl","cell","find","c","File","name","dayjs","format","dateFormat","label","display_name","title","id","checkRequired","some","selectedRows","includes","Function","sortingArray","Array","isArray","getTextWidth","text","ctx","document","createElement","getContext","measureText","handleSaveRow","async","tableInstance","validate","abortEarly","getAllCells","map","columnDef","_valuesCache","data","table","setEditingRow","err","ValidationError","errors","inner","error","Error","enqueueSnackbar","variant","useMaterialReactTable","defaultColumn","minSize","size","header","Math","String","Edit","jsx","InlineEditFields","col","callback","s","Header","jsxs","display","alignItems","children","Typography","maxSize","IconButton","sx","p","onClick","src","images","common","arrowIcon","alt","muiTableHeadCellProps","className","muiTableBodyCellProps","whiteSpace","Cell","props","item","updatedProps","cloneElement","e","handleActionsClick","original","disabled","more","muiTablePaperProps","tableLayout","columnResizeMode","onEditingRowSave","onCreatingRowSave","setCreatingRow","onCreatingRowCancel","onEditingRowCancel","displayColumnDefOptions","getState","creatingRow","gap","editingRow","onKeyUp","renderRowActions","Fragment","enableExpanding","parentId","Tooltip","Trash","Boolean","renderBottomToolbarCustomActions","Button","startIcon","Add","onRowSelectionChange","enableColumnOrdering","createDisplayMode","enableTopToolbar","enableColumnActions","enableSorting","enableGrouping","enableStickyHeader","enableSortingRemoval","state","columnPinning","left","isSaving","showProgressBars","getRowId","muiTableBodyRowProps","editingRowId","isErrorRow","has_error","isCurrentlyEditing","setTimeout","onKeyDown","key","preventDefault","cursor","onColumnOrderChange","colOrder","onColumnSizingChange","onColumnSizingInfoChange","renderEmptyRowsFallback","tableNoData","weight","paginationDisplayMode","muiPaginationProps","page","count","showRowsPerPage","boundaryCount","muiEditTextFieldProps","InputProps","disableUnderline","onBlur","target","borderColor","muiCircularProgressProps","letterSpacing","fontWeight","justifyContent","margin","right","opacity","muiTableBodyProps","zIndex","muiTableHeadProps","muiSelectCheckboxProps","icon","RecgtangleIcon","checkedIcon","CheckBoxIcon","muiSelectAllCheckboxProps","muiBottomToolbarProps","paddingLeft","layoutMode","icons","DragHandleIcon","SortIcon","ArrowUpDown","ArrowDownwardIcon","ArrowUpwardIcon","ExpandMoreIcon","ExpandLessIcon","SyncAltIcon","CancelIcon","Close","getSelectedRowModel","selectedRowModels","selection","traverseRows","parentKey","index","rowKey","push","subRows","getRowModel","resetRowSelection","dropdownOpenTimer","saveTimer","lastDropdownClick","isDropdownInteraction","handleMouseDown","closest","Date","now","clearTimeout","handleClick","currentEditingRow","addEventListener","removeEventListener","MaterialReactTable","Menu","open","onClose","MenuItem","ListItemIcon","ChevronLeftIcon","ListItemText","Divider","flexItem","mt","mb","SearchBar","placeholder","handleSearch","searchQuery","filteredColumns","option","toLowerCase","handleSearchEvent","updatedColumns","JSON","parse","stringify","updatedFilteredOptions","handleAddColumn","addIcon","handleVisibleColumn","dotsIcon","eyeIcon","ChevronRightIcon","handleAction","ConfirmPopUp","onConfirm","handleRowDelete","description","loading"],"mappings":"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"}
|
|
@@ -30,13 +30,12 @@ export interface MaterialEditableTableColumnProps extends Omit<MRT_ColumnDef<MRT
|
|
|
30
30
|
};
|
|
31
31
|
redirectionPathWithId?: string;
|
|
32
32
|
idField?: string;
|
|
33
|
-
isOnClickEditable?: boolean;
|
|
34
33
|
}
|
|
35
34
|
export interface MaterialEditableTableColumnHeaderProps {
|
|
36
35
|
column: MRT_ColumnDef<any, any>;
|
|
37
36
|
header: MRT_Header<any>;
|
|
38
37
|
table: MRT_TableInstance<any>;
|
|
39
38
|
}
|
|
40
|
-
declare const MaterialEditableTable: React.
|
|
39
|
+
declare const MaterialEditableTable: React.NamedExoticComponent<MaterialTablePropsType>;
|
|
41
40
|
export { MaterialEditableTable };
|
|
42
41
|
export default MaterialEditableTable;
|
|
@@ -77,5 +77,5 @@ interface MaterialTablePropsType {
|
|
|
77
77
|
handleColumnResizing?: (sizes: MRT_ColumnSizingState) => void;
|
|
78
78
|
columnSizes?: MRT_ColumnSizingState;
|
|
79
79
|
}
|
|
80
|
-
export declare const MaterialTable: React.
|
|
80
|
+
export declare const MaterialTable: React.NamedExoticComponent<MaterialTablePropsType>;
|
|
81
81
|
export default MaterialTable;
|
|
@@ -15,6 +15,6 @@ interface IPhoneInput {
|
|
|
15
15
|
helperText?: string;
|
|
16
16
|
isInlineEditing?: boolean;
|
|
17
17
|
}
|
|
18
|
-
declare const PhoneInput: import('react').
|
|
18
|
+
declare const PhoneInput: import('react').NamedExoticComponent<IPhoneInput>;
|
|
19
19
|
export { PhoneInput };
|
|
20
20
|
export default PhoneInput;
|
|
@@ -46,7 +46,9 @@ const ERPUIProvider = ({
|
|
|
46
46
|
autoHideDuration: 5e3
|
|
47
47
|
},
|
|
48
48
|
// API configuration
|
|
49
|
-
apiConfig: providedApiConfig
|
|
49
|
+
apiConfig: providedApiConfig,
|
|
50
|
+
routeToColumnsMap,
|
|
51
|
+
routeToResourceMap
|
|
50
52
|
}) => {
|
|
51
53
|
const isInitialized = React__default.useRef(false);
|
|
52
54
|
if (providedApiConfig && !isInitialized.current) {
|
|
@@ -86,7 +88,7 @@ const ERPUIProvider = ({
|
|
|
86
88
|
content = /* @__PURE__ */ jsx(SnackbarProvider, { ...snackbarConfig, children: content });
|
|
87
89
|
}
|
|
88
90
|
if (enablePages) {
|
|
89
|
-
content = /* @__PURE__ */ jsx(PageProvider, { children: content });
|
|
91
|
+
content = /* @__PURE__ */ jsx(PageProvider, { routeToColumnsMap, routeToResourceMap, children: content });
|
|
90
92
|
}
|
|
91
93
|
if (enablePermissions) {
|
|
92
94
|
content = /* @__PURE__ */ jsx(PermissionsProvider, { children: content });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n}) => {\n\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n if (enablePages) {\n content = (\n <PageProvider>\n {content}\n </PageProvider>\n );\n }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;"],"names":["React","ReduxProvider"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAM,eAAe,cAAiC;AAAA,EACpD,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,CAAC;AAEM,MAAM,WAAW,MAAM,WAAW,YAAY;
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/providers/ERPUIProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode, Suspense } from 'react';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { ThemeProvider } from '@mui/material/styles';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport { SnackbarProvider } from 'notistack';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createLibraryStore, ApiClientConfig } from '../../redux';\nimport { createLightTheme, createDarkTheme, Color } from '../../theme';\nimport { AuthProvider } from '../../contexts/AuthContext';\nimport { LanguageProvider } from '../../contexts/languageContext';\nimport { PageProvider } from '../../contexts/page-context';\nimport { PermissionsProvider } from '../../contexts/permission-context';\nimport MUIThemeWrapper from '../../theme/themeWrapper';\nimport Loader from '../loader';\nimport useAppTranslations from '../../hooks/use-translations';\nimport '../../utils/i18n';\nimport { initializeApiConfig, ApiConfig } from '../../utils/api-config';\nimport { initializeApiBaseUrls } from '../../utils/api';\n\n// Context for library configuration\ninterface ERPUIContextValue {\n useRedux: boolean;\n apiClient?: ApiClientConfig;\n theme?: any;\n themeMode: 'light' | 'dark';\n direction: 'ltr' | 'rtl';\n primaryColor?: Color;\n}\n\nconst ERPUIContext = createContext<ERPUIContextValue>({\n useRedux: false,\n themeMode: 'light',\n direction: 'ltr',\n});\n\nexport const useERPUI = () => useContext(ERPUIContext);\n\n// Provider props interface\ninterface ERPUIProviderProps {\n children: ReactNode;\n\n // Redux configuration\n useRedux?: boolean;\n reduxStore?: any;\n apiClient?: ApiClientConfig;\n additionalReducers?: Record<string, any>;\n\n // Theme configuration\n theme?: any;\n themeMode?: 'light' | 'dark';\n primaryColor?: Color;\n direction?: 'ltr' | 'rtl';\n\n // Context providers configuration\n enableAuth?: boolean;\n enableLanguage?: boolean;\n enablePages?: boolean;\n enablePermissions?: boolean;\n enableRouter?: boolean;\n enableSnackbar?: boolean;\n\n // Other configuration\n enableCssBaseline?: boolean;\n snackbarConfig?: {\n maxSnack?: number;\n anchorOrigin?: {\n vertical: 'top' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n autoHideDuration?: number;\n };\n\n // API configuration\n apiConfig?: ApiConfig;\n\n // Route maps\n routeToColumnsMap?: Record<string, any>;\n routeToResourceMap?: Record<string, any>;\n}\n\nexport const ERPUIProvider: React.FC<ERPUIProviderProps> = ({\n children,\n\n // Redux props\n useRedux = false,\n reduxStore,\n apiClient,\n additionalReducers = {},\n\n // Theme props\n theme: customTheme,\n themeMode = 'light',\n primaryColor,\n direction = 'ltr',\n\n // Context providers configuration\n enableAuth = true,\n enableLanguage = true,\n enablePages = true,\n enablePermissions = true,\n enableRouter = false, // Default false since consuming app usually provides router\n enableSnackbar = true,\n\n // Other props\n enableCssBaseline = true,\n snackbarConfig = {\n maxSnack: 3,\n anchorOrigin: { vertical: 'top', horizontal: 'right' },\n autoHideDuration: 5000,\n },\n\n // API configuration\n apiConfig: providedApiConfig,\n routeToColumnsMap,\n routeToResourceMap\n}) => {\n\n // Initialize API configuration synchronously before first render\n // This prevents \"API configuration not initialized\" errors when components\n // try to use the API during initial render\n const isInitialized = React.useRef(false);\n\n if (providedApiConfig && !isInitialized.current) {\n try {\n initializeApiConfig(providedApiConfig);\n initializeApiBaseUrls();\n isInitialized.current = true;\n } catch (error) {\n console.error('Failed to initialize API configuration:', error);\n }\n }\n // const { isLoading } = useAppTranslations();\n // if (isLoading) {\n // return <Loader />;\n // }\n // Create or use provided Redux store\n const store = React.useMemo(() => {\n if (!useRedux) return null;\n\n if (reduxStore) {\n return reduxStore;\n }\n\n return createLibraryStore(additionalReducers, apiClient);\n }, [useRedux, reduxStore, additionalReducers, apiClient]);\n\n // Create theme\n const theme = React.useMemo(() => {\n if (customTheme) {\n return customTheme;\n }\n\n const themeCreator = themeMode === 'dark' ? createDarkTheme : createLightTheme;\n const { theme: generatedTheme } = themeCreator(primaryColor, direction);\n return generatedTheme;\n }, [customTheme, themeMode, primaryColor, direction]);\n\n // Context value\n const contextValue: ERPUIContextValue = {\n useRedux,\n apiClient,\n theme,\n themeMode,\n direction,\n primaryColor,\n };\n\n // Build provider tree from inside out\n let content = (\n <ERPUIContext.Provider value={contextValue}>\n {/* <ThemeProvider theme={theme}>\n {enableCssBaseline && <CssBaseline />} */}\n {/* <Suspense fallback={<Loader />}> */}\n <MUIThemeWrapper theme={theme} enableCssBaseline={enableCssBaseline}>\n {children}\n </MUIThemeWrapper>\n {/* </Suspense> */}\n {/* </ThemeProvider> */}\n </ERPUIContext.Provider>\n );\n\n // Wrap with snackbar provider if enabled\n if (enableSnackbar) {\n content = (\n <SnackbarProvider {...snackbarConfig}>\n {content}\n </SnackbarProvider>\n );\n }\n\n // Wrap with page provider if enabled\n if (enablePages) {\n content = (\n <PageProvider routeToColumnsMap={routeToColumnsMap} routeToResourceMap={routeToResourceMap}>\n {content}\n </PageProvider>\n );\n }\n\n // Wrap with permissions provider if enabled\n if (enablePermissions) {\n content = (\n <PermissionsProvider>\n {content}\n </PermissionsProvider>\n );\n }\n\n // Wrap with language provider if enabled\n if (enableLanguage) {\n content = (\n <LanguageProvider>\n {content}\n </LanguageProvider>\n );\n }\n\n // Wrap with auth provider if enabled\n if (enableAuth) {\n content = (\n <AuthProvider>\n {content}\n </AuthProvider>\n );\n }\n\n // Wrap with router if enabled\n if (enableRouter) {\n content = (\n <BrowserRouter>\n {content}\n </BrowserRouter>\n );\n }\n\n // Wrap with Redux provider if enabled\n if (useRedux && store) {\n content = (\n <ReduxProvider store={store}>\n {content}\n </ReduxProvider>\n );\n }\n\n return content;\n};\n\nexport default ERPUIProvider;"],"names":["React","ReduxProvider"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAM,eAAe,cAAiC;AAAA,EACpD,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,CAAC;AAEM,MAAM,WAAW,MAAM,WAAW,YAAY;AA6C9C,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA;AAAA,EAGA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,qBAAqB,CAAA;AAAA;AAAA,EAGrB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA;AAAA,EAGZ,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,eAAe;AAAA;AAAA,EACf,iBAAiB;AAAA;AAAA,EAGjB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,cAAc,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,IAC7C,kBAAkB;AAAA,EAAA;AAAA;AAAA,EAIpB,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AAKJ,QAAM,gBAAgBA,eAAM,OAAO,KAAK;AAExC,MAAI,qBAAqB,CAAC,cAAc,SAAS;AAC/C,QAAI;AACF,0BAAoB,iBAAiB;AACrC,4BAAA;AACA,oBAAc,UAAU;AAAA,IAC1B,SAAS,OAAO;AACd,cAAQ,MAAM,2CAA2C,KAAK;AAAA,IAChE;AAAA,EACF;AAMA,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,CAAC,SAAU,QAAO;AAEtB,QAAI,YAAY;AACd,aAAO;AAAA,IACT;AAEA,WAAO,mBAAmB,oBAAoB,SAAS;AAAA,EACzD,GAAG,CAAC,UAAU,YAAY,oBAAoB,SAAS,CAAC;AAGxD,QAAM,QAAQA,eAAM,QAAQ,MAAM;AAChC,QAAI,aAAa;AACf,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,cAAc,SAAS,kBAAkB;AAC9D,UAAM,EAAE,OAAO,eAAA,IAAmB,aAAa,cAAc,SAAS;AACtE,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,WAAW,cAAc,SAAS,CAAC;AAGpD,QAAM,eAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAIF,MAAI,UACF,oBAAC,aAAa,UAAb,EAAsB,OAAO,cAI5B,UAAA,oBAAC,iBAAA,EAAgB,OAAc,mBAC5B,SAAA,CACH,GAGF;AAIF,MAAI,gBAAgB;AAClB,cACE,oBAAC,kBAAA,EAAkB,GAAG,gBACnB,UAAA,SACH;AAAA,EAEJ;AAGA,MAAI,aAAa;AACf,cACE,oBAAC,cAAA,EAAa,mBAAsC,oBACjD,UAAA,SACH;AAAA,EAEJ;AAGA,MAAI,mBAAmB;AACrB,cACE,oBAAC,uBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,gBAAgB;AAClB,cACE,oBAAC,oBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY;AACd,cACE,oBAAC,gBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,cAAc;AAChB,cACE,oBAAC,iBACE,UAAA,QAAA,CACH;AAAA,EAEJ;AAGA,MAAI,YAAY,OAAO;AACrB,cACE,oBAACC,UAAA,EAAc,OACZ,UAAA,SACH;AAAA,EAEJ;AAEA,SAAO;AACT;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("react-redux"),i=require("../../../node_modules/notistack/notistack.esm/index.js"),n=require("react-router-dom"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("react-redux"),i=require("../../../node_modules/notistack/notistack.esm/index.js"),n=require("react-router-dom"),o=require("../../../contexts/AuthContext/index.js"),s=require("../../../contexts/languageContext/index.js"),a=require("../../../contexts/page-context/index.js"),u=require("../../../contexts/permission-context/index.js"),d=require("../../../theme/themeWrapper/index.js"),l=require("../../../utils/api-config/index.js"),c=require("../../../utils/api/index.js"),x=require("../../../redux/store/index.js"),h=require("../../../theme/theme-impl/index.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=/* @__PURE__ */m(r);const j=r.createContext({useRedux:!1,themeMode:"light",direction:"ltr"}),g=({children:r,useRedux:m=!1,reduxStore:g,apiClient:f,additionalReducers:C={},theme:P,themeMode:b="light",primaryColor:q,direction:v="ltr",enableAuth:R=!0,enableLanguage:M=!0,enablePages:k=!0,enablePermissions:y=!0,enableRouter:T=!1,enableSnackbar:A=!0,enableCssBaseline:S=!0,snackbarConfig:B={maxSnack:3,anchorOrigin:{vertical:"top",horizontal:"right"},autoHideDuration:5e3},apiConfig:L,routeToColumnsMap:z,routeToResourceMap:U})=>{const _=p.default.useRef(!1);if(L&&!_.current)try{l.initializeApiConfig(L),c.initializeApiBaseUrls(),_.current=!0}catch(w){}const D=p.default.useMemo(()=>m?g||x.createLibraryStore(C,f):null,[m,g,C,f]),E=p.default.useMemo(()=>{if(P)return P;const e="dark"===b?h.createDarkTheme:h.createLightTheme,{theme:r}=e(q,v);return r},[P,b,q,v]),I={useRedux:m,apiClient:f,theme:E,themeMode:b,direction:v,primaryColor:q};let O=/* @__PURE__ */e.jsx(j.Provider,{value:I,children:/* @__PURE__ */e.jsx(d.default,{theme:E,enableCssBaseline:S,children:r})});return A&&(O=/* @__PURE__ */e.jsx(i.SnackbarProvider,{...B,children:O})),k&&(O=/* @__PURE__ */e.jsx(a.PageProvider,{routeToColumnsMap:z,routeToResourceMap:U,children:O})),y&&(O=/* @__PURE__ */e.jsx(u.PermissionsProvider,{children:O})),M&&(O=/* @__PURE__ */e.jsx(s.LanguageProvider,{children:O})),R&&(O=/* @__PURE__ */e.jsx(o.AuthProvider,{children:O})),T&&(O=/* @__PURE__ */e.jsx(n.BrowserRouter,{children:O})),m&&D&&(O=/* @__PURE__ */e.jsx(t.Provider,{store:D,children:O})),O};exports.ERPUIProvider=g,exports.default=g,exports.useERPUI=()=>r.useContext(j);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|