@erpsquad/common 1.8.105 → 1.8.107

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.
Files changed (255) hide show
  1. package/dist/_virtual/index/index.esm10.js +3 -3
  2. package/dist/_virtual/index/index.esm2.js +3 -3
  3. package/dist/_virtual/index/index.esm3.js +3 -3
  4. package/dist/_virtual/index/index.esm4.js +3 -3
  5. package/dist/_virtual/index/index.esm5.js +3 -3
  6. package/dist/_virtual/index/index.esm6.js +3 -3
  7. package/dist/_virtual/index/index.esm7.js +3 -3
  8. package/dist/_virtual/index/index.esm8.js +3 -3
  9. package/dist/_virtual/index/index.esm9.js +3 -3
  10. package/dist/_virtual/index/index10.js +1 -1
  11. package/dist/_virtual/index/index2.js +1 -1
  12. package/dist/_virtual/index/index3.js +1 -1
  13. package/dist/_virtual/index/index4.js +1 -1
  14. package/dist/_virtual/index/index5.js +1 -1
  15. package/dist/_virtual/index/index6.js +1 -1
  16. package/dist/_virtual/index/index7.js +1 -1
  17. package/dist/_virtual/index/index8.js +1 -1
  18. package/dist/_virtual/index/index9.js +1 -1
  19. package/dist/components/accordion/accordion.d.ts +1 -1
  20. package/dist/components/action-bar/action-bar.d.ts +1 -1
  21. package/dist/components/checkbox/checkbox.d.ts +1 -1
  22. package/dist/components/date-picker/date-picker.d.ts +1 -1
  23. package/dist/components/footer/footer.d.ts +1 -1
  24. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  25. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  26. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  27. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  28. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  29. package/dist/components/form-control/form-parser/form-section/index.esm.js +4 -5
  30. package/dist/components/form-control/form-parser/form-section/index.esm.js.map +1 -1
  31. package/dist/components/form-control/form-parser/form-section/index.js +22 -22
  32. package/dist/components/form-control/form-parser/form-section/index.js.map +1 -1
  33. package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
  34. package/dist/components/icons/action-arrow.d.ts +3 -3
  35. package/dist/components/icons/add-circle.d.ts +3 -3
  36. package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
  37. package/dist/components/icons/arrow-circle-down.d.ts +3 -3
  38. package/dist/components/icons/arrow-down-three.d.ts +3 -3
  39. package/dist/components/icons/arrow-down-two.d.ts +3 -3
  40. package/dist/components/icons/arrow-down.d.ts +3 -3
  41. package/dist/components/icons/arrow-up-down.d.ts +3 -3
  42. package/dist/components/icons/arrow-up-two.d.ts +3 -3
  43. package/dist/components/icons/assignments.d.ts +3 -3
  44. package/dist/components/icons/blank-circle.d.ts +3 -3
  45. package/dist/components/icons/block-filled.d.ts +3 -3
  46. package/dist/components/icons/calendar-add.d.ts +3 -3
  47. package/dist/components/icons/calendar.d.ts +3 -3
  48. package/dist/components/icons/checkbox-square.d.ts +3 -3
  49. package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
  50. package/dist/components/icons/clock.d.ts +3 -3
  51. package/dist/components/icons/close.d.ts +3 -3
  52. package/dist/components/icons/coin-outline.d.ts +3 -3
  53. package/dist/components/icons/copy.d.ts +3 -3
  54. package/dist/components/icons/coupon.d.ts +3 -3
  55. package/dist/components/icons/cross-hire.d.ts +3 -3
  56. package/dist/components/icons/custom-styled-icon.d.ts +3 -3
  57. package/dist/components/icons/dashboard.d.ts +3 -3
  58. package/dist/components/icons/document-download.d.ts +3 -3
  59. package/dist/components/icons/document.d.ts +3 -3
  60. package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
  61. package/dist/components/icons/dollar-circle.d.ts +3 -3
  62. package/dist/components/icons/edit.d.ts +3 -3
  63. package/dist/components/icons/email.d.ts +3 -3
  64. package/dist/components/icons/export.d.ts +3 -3
  65. package/dist/components/icons/eye-off.d.ts +3 -3
  66. package/dist/components/icons/eye-plus-circle.d.ts +3 -3
  67. package/dist/components/icons/eye.d.ts +3 -3
  68. package/dist/components/icons/filled-circle.d.ts +3 -3
  69. package/dist/components/icons/filter-remove.d.ts +3 -3
  70. package/dist/components/icons/filter.d.ts +3 -3
  71. package/dist/components/icons/folder-save.d.ts +3 -3
  72. package/dist/components/icons/grid.d.ts +3 -3
  73. package/dist/components/icons/hashtag.d.ts +3 -3
  74. package/dist/components/icons/image.d.ts +3 -3
  75. package/dist/components/icons/import.d.ts +3 -3
  76. package/dist/components/icons/info-circle.d.ts +3 -3
  77. package/dist/components/icons/info.d.ts +3 -3
  78. package/dist/components/icons/link-horizontal.d.ts +3 -3
  79. package/dist/components/icons/link.d.ts +3 -3
  80. package/dist/components/icons/location.d.ts +3 -3
  81. package/dist/components/icons/lowest-lead-time.d.ts +3 -3
  82. package/dist/components/icons/lowest-min-qty.d.ts +3 -3
  83. package/dist/components/icons/lowest-price.d.ts +3 -3
  84. package/dist/components/icons/more.d.ts +3 -3
  85. package/dist/components/icons/notification.d.ts +3 -3
  86. package/dist/components/icons/paper-clip.d.ts +3 -3
  87. package/dist/components/icons/paragraph.d.ts +3 -3
  88. package/dist/components/icons/payment-request.d.ts +3 -3
  89. package/dist/components/icons/phone.d.ts +3 -3
  90. package/dist/components/icons/printer.d.ts +3 -3
  91. package/dist/components/icons/process-calendar.d.ts +3 -3
  92. package/dist/components/icons/promotion.d.ts +3 -3
  93. package/dist/components/icons/radio-button.d.ts +3 -3
  94. package/dist/components/icons/receipt-filled.d.ts +3 -3
  95. package/dist/components/icons/receipt-outline.d.ts +3 -3
  96. package/dist/components/icons/receipt.d.ts +3 -3
  97. package/dist/components/icons/refresh-icon.d.ts +3 -3
  98. package/dist/components/icons/replace.d.ts +3 -3
  99. package/dist/components/icons/save.d.ts +3 -3
  100. package/dist/components/icons/search-status.d.ts +3 -3
  101. package/dist/components/icons/search.d.ts +3 -3
  102. package/dist/components/icons/settings-fallback.d.ts +3 -3
  103. package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
  104. package/dist/components/icons/stacked-layer.d.ts +3 -3
  105. package/dist/components/icons/start-filled.d.ts +3 -3
  106. package/dist/components/icons/three-dot-icon.d.ts +3 -3
  107. package/dist/components/icons/tick-circle-filled.d.ts +3 -3
  108. package/dist/components/icons/tick-circle.d.ts +3 -3
  109. package/dist/components/icons/tick-octagon.d.ts +3 -3
  110. package/dist/components/icons/tick.d.ts +3 -3
  111. package/dist/components/icons/toggle-switch.d.ts +3 -3
  112. package/dist/components/icons/trash.d.ts +3 -3
  113. package/dist/components/icons/wave.d.ts +3 -3
  114. package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
  115. package/dist/components/icons/work-centre.d.ts +3 -3
  116. package/dist/components/listing/listing/index.esm.js +0 -1
  117. package/dist/components/listing/listing/index.esm.js.map +1 -1
  118. package/dist/components/listing/listing/index.js +1 -1
  119. package/dist/components/listing/listing/index.js.map +1 -1
  120. package/dist/components/location-select.d.ts +1 -1
  121. package/dist/components/material-editable-table/material-editable-table/index.esm.js +23 -17
  122. package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
  123. package/dist/components/material-editable-table/material-editable-table/index.js +2 -2
  124. package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
  125. package/dist/components/material-editable-table/material-editable-table.d.ts +2 -1
  126. package/dist/components/material-table/material-table.d.ts +1 -1
  127. package/dist/components/phone-input/phone-input.d.ts +1 -1
  128. package/dist/components/radio/radio.d.ts +1 -1
  129. package/dist/components/select/select.d.ts +1 -1
  130. package/dist/components/switches/android-12-switch.d.ts +1 -3
  131. package/dist/components/text-field/text-field.d.ts +1 -1
  132. package/dist/components/time-picker/time-picker.d.ts +1 -1
  133. package/dist/components/upload-media/upload-media.d.ts +1 -1
  134. package/dist/hooks/apiHelper/index.esm.js.map +1 -1
  135. package/dist/hooks/apiHelper/index.js.map +1 -1
  136. package/dist/hooks/useApi/index.esm.js +0 -1
  137. package/dist/hooks/useApi/index.esm.js.map +1 -1
  138. package/dist/hooks/useApi/index.js.map +1 -1
  139. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
  140. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  141. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js.map +1 -1
  142. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  143. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  144. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  145. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  146. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  147. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  148. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  149. package/dist/src/components/accordion/accordion.d.ts +1 -1
  150. package/dist/src/components/action-bar/action-bar.d.ts +1 -1
  151. package/dist/src/components/checkbox/checkbox.d.ts +1 -1
  152. package/dist/src/components/date-picker/date-picker.d.ts +1 -1
  153. package/dist/src/components/footer/footer.d.ts +1 -1
  154. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  155. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  156. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  157. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  158. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  159. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
  160. package/dist/src/components/icons/action-arrow.d.ts +3 -3
  161. package/dist/src/components/icons/add-circle.d.ts +3 -3
  162. package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
  163. package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
  164. package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
  165. package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
  166. package/dist/src/components/icons/arrow-down.d.ts +3 -3
  167. package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
  168. package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
  169. package/dist/src/components/icons/assignments.d.ts +3 -3
  170. package/dist/src/components/icons/blank-circle.d.ts +3 -3
  171. package/dist/src/components/icons/block-filled.d.ts +3 -3
  172. package/dist/src/components/icons/calendar-add.d.ts +3 -3
  173. package/dist/src/components/icons/calendar.d.ts +3 -3
  174. package/dist/src/components/icons/checkbox-square.d.ts +3 -3
  175. package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
  176. package/dist/src/components/icons/clock.d.ts +3 -3
  177. package/dist/src/components/icons/close.d.ts +3 -3
  178. package/dist/src/components/icons/coin-outline.d.ts +3 -3
  179. package/dist/src/components/icons/copy.d.ts +3 -3
  180. package/dist/src/components/icons/coupon.d.ts +3 -3
  181. package/dist/src/components/icons/cross-hire.d.ts +3 -3
  182. package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
  183. package/dist/src/components/icons/dashboard.d.ts +3 -3
  184. package/dist/src/components/icons/document-download.d.ts +3 -3
  185. package/dist/src/components/icons/document.d.ts +3 -3
  186. package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
  187. package/dist/src/components/icons/dollar-circle.d.ts +3 -3
  188. package/dist/src/components/icons/edit.d.ts +3 -3
  189. package/dist/src/components/icons/email.d.ts +3 -3
  190. package/dist/src/components/icons/export.d.ts +3 -3
  191. package/dist/src/components/icons/eye-off.d.ts +3 -3
  192. package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
  193. package/dist/src/components/icons/eye.d.ts +3 -3
  194. package/dist/src/components/icons/filled-circle.d.ts +3 -3
  195. package/dist/src/components/icons/filter-remove.d.ts +3 -3
  196. package/dist/src/components/icons/filter.d.ts +3 -3
  197. package/dist/src/components/icons/folder-save.d.ts +3 -3
  198. package/dist/src/components/icons/grid.d.ts +3 -3
  199. package/dist/src/components/icons/hashtag.d.ts +3 -3
  200. package/dist/src/components/icons/image.d.ts +3 -3
  201. package/dist/src/components/icons/import.d.ts +3 -3
  202. package/dist/src/components/icons/info-circle.d.ts +3 -3
  203. package/dist/src/components/icons/info.d.ts +3 -3
  204. package/dist/src/components/icons/link-horizontal.d.ts +3 -3
  205. package/dist/src/components/icons/link.d.ts +3 -3
  206. package/dist/src/components/icons/location.d.ts +3 -3
  207. package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
  208. package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
  209. package/dist/src/components/icons/lowest-price.d.ts +3 -3
  210. package/dist/src/components/icons/more.d.ts +3 -3
  211. package/dist/src/components/icons/notification.d.ts +3 -3
  212. package/dist/src/components/icons/paper-clip.d.ts +3 -3
  213. package/dist/src/components/icons/paragraph.d.ts +3 -3
  214. package/dist/src/components/icons/payment-request.d.ts +3 -3
  215. package/dist/src/components/icons/phone.d.ts +3 -3
  216. package/dist/src/components/icons/printer.d.ts +3 -3
  217. package/dist/src/components/icons/process-calendar.d.ts +3 -3
  218. package/dist/src/components/icons/promotion.d.ts +3 -3
  219. package/dist/src/components/icons/radio-button.d.ts +3 -3
  220. package/dist/src/components/icons/receipt-filled.d.ts +3 -3
  221. package/dist/src/components/icons/receipt-outline.d.ts +3 -3
  222. package/dist/src/components/icons/receipt.d.ts +3 -3
  223. package/dist/src/components/icons/refresh-icon.d.ts +3 -3
  224. package/dist/src/components/icons/replace.d.ts +3 -3
  225. package/dist/src/components/icons/save.d.ts +3 -3
  226. package/dist/src/components/icons/search-status.d.ts +3 -3
  227. package/dist/src/components/icons/search.d.ts +3 -3
  228. package/dist/src/components/icons/settings-fallback.d.ts +3 -3
  229. package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
  230. package/dist/src/components/icons/stacked-layer.d.ts +3 -3
  231. package/dist/src/components/icons/start-filled.d.ts +3 -3
  232. package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
  233. package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
  234. package/dist/src/components/icons/tick-circle.d.ts +3 -3
  235. package/dist/src/components/icons/tick-octagon.d.ts +3 -3
  236. package/dist/src/components/icons/tick.d.ts +3 -3
  237. package/dist/src/components/icons/toggle-switch.d.ts +3 -3
  238. package/dist/src/components/icons/trash.d.ts +3 -3
  239. package/dist/src/components/icons/wave.d.ts +3 -3
  240. package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
  241. package/dist/src/components/icons/work-centre.d.ts +3 -3
  242. package/dist/src/components/location-select.d.ts +1 -1
  243. package/dist/src/components/material-editable-table/material-editable-table.d.ts +2 -1
  244. package/dist/src/components/material-table/material-table.d.ts +1 -1
  245. package/dist/src/components/phone-input/phone-input.d.ts +1 -1
  246. package/dist/src/components/radio/radio.d.ts +1 -1
  247. package/dist/src/components/select/select.d.ts +1 -1
  248. package/dist/src/components/switches/android-12-switch.d.ts +1 -3
  249. package/dist/src/components/text-field/text-field.d.ts +1 -1
  250. package/dist/src/components/time-picker/time-picker.d.ts +1 -1
  251. package/dist/src/components/upload-media/upload-media.d.ts +1 -1
  252. package/dist/src/utils/common-utility.d.ts +1 -1
  253. package/dist/style.css +74 -74
  254. package/dist/utils/common-utility.d.ts +1 -1
  255. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("react-i18next"),n=,/* empty css */o=;/* empty css */;/* empty css */var a=require("react-redux"),l=,/* empty css */s=,/* empty css */r=,/* empty css */d=,/* empty css */c=,/* empty css */u=,/* empty css */m=,/* empty css */g=,/* empty css */p=,/* empty css */v=,/* empty css */x=,/* empty css */h=;/* empty css */exports.default=({title:b,tableColumns:j,columnOrder:f=["mrt-row-select"],rowActionMenu:w,destructiveActionMenu:D,handleAddButton:q,searchText:M,handleSearch:A,disabledViews:C=["Kanban","Calendar","Gantt"],fields:_,selectedIds:T=[],pageName:k,importModuleName:S,showAddButton:$=!0,actionButtons:P,paginationResource:B,enablePages:F=!1,GridComponent:N,onSelectRow:R,onColumnOrdering:y,onColumnVisibility:z,onSortingChange:I,fallbackIcon:L,className:O="",onDeleteConfirm:E,deleteTitle:V,deleteDescription:G,fetchApi:U,resetState:H,setPaginationModel:K,deleteApi:J,storeName:Q,isUseFields:W,customeFilter:X,customFields:Y,isLoading:Z})=>{var ee,ie;const{t:te}=t.useTranslation(),ne=a.useDispatch(),{activePage:oe,updatePageInfo:ae}=s.usePages(),{paginationModel:le,rows:se,isLoading:re}=r.useAppSelector(e=>null==e?void 0:e[Q]),{pageNo:de,limit:ce,totalCount:ue}=le,me=oe.page_size||ce,ge=me*(de-1),[pe,ve]=i.useState({selectedRows:T,itemToDelete:null,isDeleting:!1}),xe=Math.ceil(ue/me),he=i.useMemo(()=>se,[se]),be=e=>{ve(i=>({...i,itemToDelete:e}))},je=i.useMemo(()=>{if(D)return D.map(e=>({...e,handleAction:e.label.toLowerCase().includes("delete")?be:e.handleAction}))},[D]),fe=e=>{oe.page_size!=(null==e?void 0:e.limit)&&ae({page_size:e.limit}),ne(K(e))},we=i.useCallback(()=>{ne(H())},[ne,H]),De=d.default((null==j?void 0:j.length)?j:oe,{skip:ge,limit:me},U,X,[],!0,Y);return i.useEffect(()=>{De()},[De]),i.useEffect(()=>we,[we]),/* @__PURE__ */e.jsxs("section",{className:`listing-component ${O}`,children:[
2
- /* @__PURE__ */e.jsx(c.ActionBar,{title:b,data:(null==oe?void 0:oe.views)||[],setData:e=>ae({views:e}),active:oe.active_view,setActive:e=>ae({active_view:e}),handleAddButton:q,searchText:M||oe.search||"",handleSearch:e=>{ae({search:e}),fe({pageNo:1}),null==A||A(e)},disabledViews:C,fields:_,isUseFields:W,selectedIds:pe.selectedRows,pageName:k,importModuleName:S,button:$,actionBtn:P}),"ssdssds",
2
+ /* @__PURE__ */e.jsx(c.ActionBar,{title:b,data:(null==oe?void 0:oe.views)||[],setData:e=>ae({views:e}),active:oe.active_view,setActive:e=>ae({active_view:e}),handleAddButton:q,searchText:M||oe.search||"",handleSearch:e=>{ae({search:e}),fe({pageNo:1}),null==A||A(e)},disabledViews:C,fields:_,isUseFields:W,selectedIds:pe.selectedRows,pageName:k,importModuleName:S,button:$,actionBtn:P}),
3
3
  /* @__PURE__ */e.jsxs(e.Fragment,{children:[(null==oe?void 0:oe.active_view)===u.default.TABLE&&/* @__PURE__ */e.jsx(m.MaterialTable,{rows:he||[],columns:j,paginationModel:le,totalPages:xe,columnOrder:[...f,...oe.column_order],states:{isLoading:Z||re},onSortingChange:I?e=>{ae({sort:e}),I(e)}:void 0,enableColumnDragging:!1,enableEditing:!1,rowActionMenu:w,destructiveActionMenu:je,isResetRow:!1,onSelectRow:e=>{const i=e.map(e=>e.original.id);ve(e=>({...e,selectedRows:i})),null==R||R(e)},handleColumnOrdering:y?e=>{const i=e.slice(1);ae({column_order:i}),y(i)}:void 0,onColumnVisibility:z?e=>{ae({visible_columns:e}),z(e)}:void 0}),(null==oe?void 0:oe.active_view)===u.default.GRID&&N&&/* @__PURE__ */e.jsx(N,{data:he,rowActionMenu:w,destructiveActionMenu:je}),!(null==oe?void 0:oe.active_view)&&!re&&/* @__PURE__ */e.jsx(g.Fallback,{heading:b,icon:L||/* @__PURE__ */e.jsx("img",{src:o.images.shippmentFallback,alt:"fallback"}),children:$&&q&&/* @__PURE__ */e.jsx(p.Button,{variant:"contained",startIcon:/* @__PURE__ */e.jsx(n.default,{}),onClick:q,children:`${te("common.add")} ${te("common.new")}`})}),
4
4
  /* @__PURE__ */e.jsx(v.Footer,{total:xe,paginationModel:{...le,limit:oe.page_size},handlePaginationModel:e=>{oe.page_size!==(null==e?void 0:e.limit)&&ae({page_size:e.limit}),fe(e)},resource:B,enablePages:F}),
5
5
  /* @__PURE__ */e.jsx(x.ConfirmPopUp,{open:Boolean(pe.itemToDelete),onClose:()=>{ve(e=>({...e,itemToDelete:null}))},onConfirm:async()=>{if(pe.itemToDelete){ve(e=>({...e,isDeleting:!0}));try{E?await E(pe.itemToDelete):await(async e=>{const i=await ne(J(String(e.id)));h.apiHelper(i,()=>{l.enqueueSnackbar(` ${b}: ${null==e?void 0:e.id} ${te("common.msg.deleted")}`),De()})})(pe.itemToDelete),ve(e=>({...e,itemToDelete:null,isDeleting:!1}))}catch(e){ve(e=>({...e,isDeleting:!1}))}}},loading:pe.isDeleting,title:V||`${te("common.delete")} ${b}`,description:G?G(pe.itemToDelete):`${te("common.deleteMsg")} ${b}: ${(null==(ee=pe.itemToDelete)?void 0:ee.id)||(null==(ie=pe.itemToDelete)?void 0:ie.name)||""} ?`})]})]})};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n ssdssds\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n < MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["title","tableColumns","columnOrder","rowActionMenu","destructiveActionMenu","handleAddButton","searchText","handleSearch","disabledViews","fields","selectedIds","pageName","importModuleName","showAddButton","actionButtons","paginationResource","enablePages","GridComponent","onSelectRow","onColumnOrdering","onColumnVisibility","onSortingChange","fallbackIcon","className","onDeleteConfirm","deleteTitle","deleteDescription","fetchApi","resetState","setPaginationModel","deleteApi","storeName","isUseFields","customeFilter","customFields","isLoading","loadinState","t","useTranslation","dispatch","useDispatch","activePage","updatePageInfo","usePages","paginationModel","rows","useAppSelector","store","pageNo","limit","pLimit","totalCount","page_size","skip","listingState","setListingState","useState","selectedRows","itemToDelete","isDeleting","total","Math","ceil","tableRows","useMemo","handleDeleteClick","item","prev","enhancedDestructiveActions","map","action","handleAction","label","toLowerCase","includes","handlePaginationModel","model","cleanUp","useCallback","getData","useDataFetcher","length","useEffect","jsxs","children","jsx","ActionBar","data","views","setData","active","active_view","setActive","tab","search","button","actionBtn","Fragment","viewTypes","TABLE","MaterialTable","columns","totalPages","column_order","states","sort","enableColumnDragging","enableEditing","isResetRow","selectedRowIds","row","original","id","handleColumnOrdering","colOrder","newOrder","slice","visible_columns","GRID","Fallback","heading","icon","src","logo","shippmentFallback","alt","Button","variant","startIcon","AddIcon","onClick","Footer","resource","ConfirmPopUp","open","Boolean","onClose","onConfirm","async","requestToDelete","response","String","apiHelper","enqueueSnackbar","deleteRecord","error","loading","description","_a","_b","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/listing/listing.tsx"],"sourcesContent":["import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { MaterialTable, ActionBar, Fallback, Footer, Button, ConfirmPopUp } from '../../components';\nimport { viewTypes } from '../../constants';\n\nimport { IListingComponentProps, IListingState } from './types'\nimport logo from '../../assets/images';\n\nimport './listing.scss';\nimport { useDataFetcher, apiHelper } from '../../hooks';\nimport { useDispatch } from 'react-redux';\nimport { usePages } from '../../hooks';\nimport { useAppSelector } from '../../redux';\nimport { enqueueSnackbar } from 'notistack';\n\nconst ListingComponent: React.FC<IListingComponentProps> = ({\n title,\n tableColumns,\n columnOrder = ['mrt-row-select'],\n rowActionMenu,\n destructiveActionMenu,\n handleAddButton,\n searchText,\n handleSearch,\n disabledViews = ['Kanban', 'Calendar', 'Gantt'],\n fields,\n selectedIds = [],\n pageName,\n importModuleName,\n showAddButton = true,\n actionButtons,\n paginationResource,\n enablePages = false,\n GridComponent,\n onSelectRow,\n onColumnOrdering,\n onColumnVisibility,\n onSortingChange,\n fallbackIcon,\n className = '',\n onDeleteConfirm,\n deleteTitle,\n deleteDescription,\n fetchApi,\n resetState,\n setPaginationModel,\n deleteApi,\n storeName,\n isUseFields,\n customeFilter,\n customFields,\n isLoading: loadinState\n}) => {\n const { t } = useTranslation();\n\n //dispatch\n const dispatch = useDispatch()\n\n //Page Context\n const { activePage, updatePageInfo } = usePages();\n //Store \n const {\n paginationModel,\n rows,\n isLoading,\n } = useAppSelector((store) => store?.[storeName]);\n console.log(\"🚀 ~ ListingComponent ~ rows:\", rows)\n\n\n const { pageNo, limit: pLimit, totalCount } = paginationModel;\n const limit = activePage.page_size || pLimit;\n const skip = limit * (pageNo - 1);\n\n\n // Local state\n const [listingState, setListingState] = useState<IListingState>({\n selectedRows: selectedIds,\n itemToDelete: null,\n isDeleting: false\n });\n\n // Calculate pagination values\n const total = Math.ceil(totalCount / limit);\n\n // Memoized table data\n const tableRows = useMemo(() => rows, [rows]);\n\n // Handle row selection\n const handleRowSelection = (selectedRows: any[]) => {\n const selectedRowIds = selectedRows.map((row) => row.original.id);\n setListingState(prev => ({ ...prev, selectedRows: selectedRowIds }));\n onSelectRow?.(selectedRows);\n };\n\n // Handle pagination changes\n const handlePaginationChange = (model: any) => {\n if (activePage.page_size !== model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n handlePaginationModel(model);\n };\n\n // Handle search\n const handleSearchChange = (search: string) => {\n updatePageInfo({ search });\n handlePaginationModel({ pageNo: 1 });\n handleSearch?.(search);\n };\n\n // Handle delete confirmation\n const handleDeleteClick = (item: any) => {\n setListingState(prev => ({ ...prev, itemToDelete: item }));\n };\n\n const handleDeleteConfirm = async () => {\n if (!listingState.itemToDelete) return;\n\n setListingState(prev => ({ ...prev, isDeleting: true }));\n\n try {\n onDeleteConfirm ? await onDeleteConfirm(listingState.itemToDelete) : await deleteRecord(listingState.itemToDelete);\n setListingState(prev => ({ ...prev, itemToDelete: null, isDeleting: false }));\n } catch (error) {\n setListingState(prev => ({ ...prev, isDeleting: false }));\n }\n };\n\n const handleDeleteCancel = () => {\n setListingState(prev => ({ ...prev, itemToDelete: null }));\n };\n\n // Enhance destructive actions to include delete confirmation\n const enhancedDestructiveActions = useMemo(() => {\n if (!destructiveActionMenu) return undefined;\n\n return destructiveActionMenu.map(action => ({\n ...action,\n handleAction: action.label.toLowerCase().includes('delete')\n ? handleDeleteClick\n : action.handleAction\n }));\n }, [destructiveActionMenu]);\n\n //Handle pagination model\n const handlePaginationModel = (model: IPaginationModel) => {\n if (activePage.page_size != model?.limit) {\n updatePageInfo({ page_size: model.limit });\n }\n dispatch(setPaginationModel(model));\n }\n\n //Delete\n const deleteRecord = async (requestToDelete: any) => {\n const response: any = await dispatch(deleteApi(String(requestToDelete.id)));\n apiHelper(response, () => {\n enqueueSnackbar(\n ` ${title}: ${requestToDelete?.id} ${t('common.msg.deleted')}`,\n )\n getData()\n })\n };\n\n\n\n\n //clean up\n const cleanUp = useCallback(() => {\n dispatch(resetState())\n }, [dispatch, resetState]);\n\n // Data fetching\n const getData = useDataFetcher(\n tableColumns?.length ? tableColumns : activePage,\n { skip, limit },\n fetchApi,\n customeFilter,\n [],\n true,\n customFields\n\n )\n\n useEffect(() => {\n getData()\n }, [getData])\n\n useEffect(() => {\n return cleanUp;\n }, [cleanUp]);\n\n\n return (\n <section className={`listing-component ${className}`}>\n <ActionBar\n title={title}\n data={activePage?.views || []}\n setData={(views) => updatePageInfo({ views })}\n active={activePage.active_view}\n setActive={(tab) => updatePageInfo({ active_view: tab })}\n handleAddButton={handleAddButton}\n searchText={searchText || activePage.search || ''}\n handleSearch={handleSearchChange}\n disabledViews={disabledViews}\n fields={fields}\n isUseFields={isUseFields}\n selectedIds={listingState.selectedRows}\n pageName={pageName}\n importModuleName={importModuleName}\n button={showAddButton}\n actionBtn={actionButtons}\n />\n\n\n <>\n {activePage?.active_view === viewTypes.TABLE && (\n <MaterialTable\n rows={tableRows || []}\n columns={tableColumns}\n paginationModel={paginationModel}\n totalPages={total}\n columnOrder={[...columnOrder, ...activePage.column_order]}\n states={{ isLoading: loadinState || isLoading }}\n onSortingChange={onSortingChange ? (sort) => {\n updatePageInfo({ sort });\n onSortingChange(sort);\n } : undefined}\n enableColumnDragging={false}\n enableEditing={false}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n isResetRow={false}\n onSelectRow={handleRowSelection}\n handleColumnOrdering={onColumnOrdering ? (colOrder) => {\n const newOrder = colOrder.slice(1);\n updatePageInfo({ column_order: newOrder });\n onColumnOrdering(newOrder);\n } : undefined}\n onColumnVisibility={onColumnVisibility ? (columns) => {\n updatePageInfo({ visible_columns: columns });\n onColumnVisibility(columns);\n } : undefined}\n />\n )}\n\n {activePage?.active_view === viewTypes.GRID && GridComponent && (\n <GridComponent\n data={tableRows}\n rowActionMenu={rowActionMenu}\n destructiveActionMenu={enhancedDestructiveActions}\n />\n )}\n\n {!activePage?.active_view && !isLoading && (\n <Fallback\n heading={title}\n icon={fallbackIcon || <img src={logo.shippmentFallback} alt=\"fallback\" />}\n >\n {showAddButton && handleAddButton && (\n <Button\n variant='contained'\n startIcon={<AddIcon />}\n onClick={handleAddButton}\n >\n {`${t('common.add')} ${t('common.new')}`}\n </Button>\n )}\n </Fallback>\n )}\n\n <Footer\n total={total}\n paginationModel={{\n ...paginationModel,\n limit: activePage.page_size\n }}\n handlePaginationModel={handlePaginationChange}\n resource={paginationResource}\n enablePages={enablePages}\n />\n\n <ConfirmPopUp\n open={Boolean(listingState.itemToDelete)}\n onClose={handleDeleteCancel}\n onConfirm={handleDeleteConfirm}\n loading={listingState.isDeleting}\n title={deleteTitle || `${t('common.delete')} ${title}`}\n description={\n deleteDescription\n ? deleteDescription(listingState.itemToDelete)\n : `${t('common.deleteMsg')} ${title}: ${listingState.itemToDelete?.id || listingState.itemToDelete?.name || ''} ?`\n }\n />\n </>\n </section>\n );\n};\n\nexport default ListingComponent;\n"],"names":["title","tableColumns","columnOrder","rowActionMenu","destructiveActionMenu","handleAddButton","searchText","handleSearch","disabledViews","fields","selectedIds","pageName","importModuleName","showAddButton","actionButtons","paginationResource","enablePages","GridComponent","onSelectRow","onColumnOrdering","onColumnVisibility","onSortingChange","fallbackIcon","className","onDeleteConfirm","deleteTitle","deleteDescription","fetchApi","resetState","setPaginationModel","deleteApi","storeName","isUseFields","customeFilter","customFields","isLoading","loadinState","t","useTranslation","dispatch","useDispatch","activePage","updatePageInfo","usePages","paginationModel","rows","useAppSelector","store","pageNo","limit","pLimit","totalCount","page_size","skip","listingState","setListingState","useState","selectedRows","itemToDelete","isDeleting","total","Math","ceil","tableRows","useMemo","handleDeleteClick","item","prev","enhancedDestructiveActions","map","action","handleAction","label","toLowerCase","includes","handlePaginationModel","model","cleanUp","useCallback","getData","useDataFetcher","length","useEffect","jsxs","children","jsx","ActionBar","data","views","setData","active","active_view","setActive","tab","search","button","actionBtn","Fragment","viewTypes","TABLE","MaterialTable","columns","totalPages","column_order","states","sort","enableColumnDragging","enableEditing","isResetRow","selectedRowIds","row","original","id","handleColumnOrdering","colOrder","newOrder","slice","visible_columns","GRID","Fallback","heading","icon","src","logo","shippmentFallback","alt","Button","variant","startIcon","AddIcon","onClick","Footer","resource","ConfirmPopUp","open","Boolean","onClose","onConfirm","async","requestToDelete","response","String","apiHelper","enqueueSnackbar","deleteRecord","error","loading","description","_a","_b","name"],"mappings":"26BAiB2D,EACvDA,QACAC,eACAC,cAAc,CAAC,kBACfC,gBACAC,wBACAC,kBACAC,aACAC,eACAC,gBAAgB,CAAC,SAAU,WAAY,SACvCC,SACAC,cAAc,GACdC,WACAC,mBACAC,iBAAgB,EAChBC,gBACAC,qBACAC,eAAc,EACdC,gBACAC,cACAC,mBACAC,qBACAC,kBACAC,eACAC,YAAY,GACZC,kBACAC,cACAC,oBACAC,WACAC,aACAC,qBACAC,YACAC,YACAC,cACAC,gBACAC,eACAC,UAAWC,gBAEX,MAAMC,EAAEA,IAAMC,mBAGRC,GAAWC,EAAAA,eAGXC,WAAEA,GAAAC,eAAYA,IAAmBC,cAEjCC,gBACFA,GAAAC,KACAA,GAAAV,UACAA,IACAW,EAAAA,eAAgBC,SAAUA,WAAQhB,KAIhCiB,OAAEA,GAAQC,MAAOC,GAAAC,WAAQA,IAAeP,GACxCK,GAAQR,GAAWW,WAAaF,GAChCG,GAAOJ,IAASD,GAAS,IAIxBM,GAAcC,IAAmBC,WAAwB,CAC5DC,aAAc/C,EACdgD,aAAc,KACdC,YAAY,IAIVC,GAAQC,KAAKC,KAAKX,GAAaF,IAG/Bc,GAAYC,EAAAA,QAAQ,IAAMnB,GAAM,CAACA,KAyBjCoB,GAAqBC,IACvBX,WAA8BY,EAAMT,aAAcQ,MAqBhDE,GAA6BJ,EAAAA,QAAQ,KACvC,GAAK5D,EAEL,OAAOA,EAAsBiE,IAAIC,IAAA,IAC1BA,EACHC,aAAcD,EAAOE,MAAMC,cAAcC,SAAS,UAC5CT,GACAK,EAAOC,iBAElB,CAACnE,IAGEuE,GAAyBC,IACvBnC,GAAWW,YAAa,MAAAwB,OAAA,EAAAA,EAAO3B,QAC/BP,GAAe,CAAEU,UAAWwB,EAAM3B,QAEtCV,GAASV,EAAmB+C,KAkB1BC,GAAUC,EAAAA,YAAY,KACxBvC,GAASX,MACV,CAACW,GAAUX,IAGRmD,GAAUC,EAAAA,SACZ,MAAA/E,OAAA,EAAAA,EAAcgF,QAAShF,EAAewC,GACtC,CAAEY,QAAMJ,UACRtB,EACAM,EACA,IACA,EACAC,GAaJ,OATAgD,EAAAA,UAAU,KACNH,MACD,CAACA,KAEJG,EAAAA,UAAU,IACCL,GACR,CAACA,oBAIAM,EAAAA,KAAC,UAAA,CAAQ5D,UAAW,qBAAqBA,IACrC6D,SAAA;eAAAC,EAAAA,IAACC,EAAAA,UAAA,CACGtF,QACAuF,MAAM,MAAA9C,QAAA,EAAAA,GAAY+C,QAAS,GAC3BC,QAAUD,GAAU9C,GAAe,CAAE8C,UACrCE,OAAQjD,GAAWkD,YACnBC,UAAYC,GAAQnD,GAAe,CAAEiD,YAAaE,IAClDxF,kBACAC,WAAYA,GAAcmC,GAAWqD,QAAU,GAC/CvF,aAlGgBuF,IACxBpD,GAAe,CAAEoD,WACjBnB,GAAsB,CAAE3B,OAAQ,IAChC,MAAAzC,GAAAA,EAAeuF,IAgGPtF,gBACAC,SACAuB,cACAtB,YAAa4C,GAAaG,aAC1B9C,WACAC,mBACAmF,OAAQlF,EACRmF,UAAWlF;eAIfqE,OAAAc,EAAAA,SAAA,CACKb,SAAA,EAAA,MAAA3C,QAAA,EAAAA,GAAYkD,eAAgBO,UAAUC,sBACnCd,EAAAA,IAACe,EAAAA,cAAA,CACGvD,KAAMkB,IAAa,GACnBsC,QAASpG,EACT2C,mBACA0D,WAAY1C,GACZ1D,YAAa,IAAIA,KAAgBuC,GAAW8D,cAC5CC,OAAQ,CAAErE,UAAWC,GAAeD,IACpCd,gBAAiBA,EAAmBoF,IAChC/D,GAAe,CAAE+D,SACjBpF,EAAgBoF,SAChB,EACJC,sBAAsB,EACtBC,eAAe,EACfxG,gBACAC,sBAAuBgE,GACvBwC,YAAY,EACZ1F,YA/IQuC,IACxB,MAAMoD,EAAiBpD,EAAaY,IAAKyC,GAAQA,EAAIC,SAASC,IAC9DzD,WAA8BY,EAAMV,aAAcoD,KAClD,MAAA3F,GAAAA,EAAcuC,IA6IEwD,qBAAsB9F,EAAoB+F,IACtC,MAAMC,EAAWD,EAASE,MAAM,GAChC1E,GAAe,CAAE6D,aAAcY,IAC/BhG,EAAiBgG,SACjB,EACJ/F,mBAAoBA,EAAsBiF,IACtC3D,GAAe,CAAE2E,gBAAiBhB,IAClCjF,EAAmBiF,SACnB,WAIX5D,aAAYkD,eAAgBO,EAAAA,QAAUoB,MAAQrG,kBAC3CoE,EAAAA,IAACpE,EAAA,CACGsE,KAAMxB,GACN5D,gBACAC,sBAAuBgE,OAI7B,MAAA3B,QAAA,EAAAA,GAAYkD,eAAgBxD,mBAC1BkD,EAAAA,IAACkC,EAAAA,SAAA,CACGC,QAASxH,EACTyH,KAAMnG,kBAAgB+D,EAAAA,IAAC,MAAA,CAAIqC,IAAKC,EAAAA,OAAKC,kBAAmBC,IAAI,aAE3DzC,YAAiB/E,kBACdgF,EAAAA,IAACyC,EAAAA,OAAA,CACGC,QAAQ,YACRC,+BAAYC,EAAAA,QAAA,IACZC,QAAS7H,EAER+E,YAAG/C,GAAE,iBAAiBA,GAAE;eAMzCgD,EAAAA,IAAC8C,EAAAA,OAAA,CACGvE,SACAhB,gBAAiB,IACVA,GACHK,MAAOR,GAAWW,WAEtBuB,sBApLgBC,IACxBnC,GAAWW,aAAc,MAAAwB,OAAA,EAAAA,EAAO3B,QAChCP,GAAe,CAAEU,UAAWwB,EAAM3B,QAEtC0B,GAAsBC,IAiLVwD,SAAUrH,EACVC;eAGJqE,EAAAA,IAACgD,EAAAA,aAAA,CACGC,KAAMC,QAAQjF,GAAaI,cAC3B8E,QA3JW,KACvBjF,WAA8BY,EAAMT,aAAc,SA2JtC+E,UAzKYC,UACxB,GAAKpF,GAAaI,aAAlB,CAEAH,WAA8BY,EAAMR,YAAY,KAEhD,IACInC,QAAwBA,EAAgB8B,GAAaI,mBAgCxCgF,OAAOC,IACxB,MAAMC,QAAsBrG,GAAST,EAAU+G,OAAOF,EAAgB3B,MACtE8B,EAAAA,UAAUF,EAAU,KAChBG,EAAAA,gBACI,IAAI/I,MAAU,MAAA2I,OAAA,EAAAA,EAAiB3B,MAAM3E,GAAE,yBAE3C0C,QAtC2EiE,CAAa1F,GAAaI,cACrGH,GAAgBY,QAAcA,EAAMT,aAAc,KAAMC,YAAY,IACxE,OAASsF,GACL1F,WAA8BY,EAAMR,YAAY,IACpD,CATgC,GAyKpBuF,QAAS5F,GAAaK,WACtB3D,MAAOyB,GAAe,GAAGY,GAAE,oBAAoBrC,IAC/CmJ,YACIzH,EACMA,EAAkB4B,GAAaI,cAC/B,GAAGrB,GAAE,uBAAuBrC,OAAU,OAAAoJ,MAAa1F,mBAAb,EAAA0F,GAA2BpC,MAAM,OAAAqC,GAAA/F,GAAaI,mBAAb,EAAA2F,GAA2BC,OAAQ"}
@@ -15,5 +15,5 @@ export interface LocationSearchSelectProps<T extends FieldValues = FieldValues>
15
15
  export interface LocationFilterType {
16
16
  [key: string]: string[] | string | number;
17
17
  }
18
- export declare const LocationSearchSelect: import('react').NamedExoticComponent<LocationSearchSelectProps<FieldValues>>;
18
+ export declare const LocationSearchSelect: import('react').MemoExoticComponent<(<T extends FieldValues = FieldValues>({ selectedCompany, control: propControl, setValue: propSetValue, fieldArrayName, locationFieldName, label, placeholder, resetValue, filterKey, filterField, ...dynamicSearchSelectProps }: LocationSearchSelectProps<T>) => JSX.Element)>;
19
19
  export default LocationSearchSelect;
@@ -679,22 +679,6 @@ const MaterialEditableTable = React__default.memo(({
679
679
  return {
680
680
  onClick: () => {
681
681
  setSelectedRow(row2.id);
682
- console.log("Row clicked:", row2.id, "editingRowId:", editingRowId, "isCurrentlyEditing:", isCurrentlyEditing, "disableNextEdit:", disableNextEdit);
683
- if (editingRowId && editingRowId !== row2.id) {
684
- table2.setEditingRow(null);
685
- setTimeout(() => {
686
- table2.setEditingRow(row2);
687
- setDisableNextEdit(true);
688
- }, 100);
689
- return;
690
- }
691
- if (!disableNextEdit && !isCurrentlyEditing && !editingRowId) {
692
- console.log("Setting row as editable:", row2.id);
693
- table2.setEditingRow(row2);
694
- setDisableNextEdit(true);
695
- } else {
696
- console.log("Cannot edit row - conditions not met");
697
- }
698
682
  },
699
683
  onKeyDown: (e) => {
700
684
  if (isCurrentlyEditing) {
@@ -816,7 +800,7 @@ const MaterialEditableTable = React__default.memo(({
816
800
  zIndex: 600
817
801
  }
818
802
  },
819
- muiTableBodyCellProps: () => ({
803
+ muiTableBodyCellProps: ({ cell, column, table: table2, row: row2 }) => ({
820
804
  sx: {
821
805
  lineHeight: "140%",
822
806
  letterSpacing: "-0.26px",
@@ -830,6 +814,28 @@ const MaterialEditableTable = React__default.memo(({
830
814
  // Removes hover effect globally
831
815
  },
832
816
  whiteSpace: "pre-wrap"
817
+ },
818
+ onClick: (e) => {
819
+ var _a, _b, _c, _d;
820
+ const columnDef = column.columnDef;
821
+ const isOnClickEditable = columnDef.isOnClickEditable !== false;
822
+ if (!isOnClickEditable) {
823
+ return;
824
+ }
825
+ const editingRowId = ((_b = (_a = table2.getState()) == null ? void 0 : _a.editingRow) == null ? void 0 : _b.id) || ((_d = (_c = table2.getState()) == null ? void 0 : _c.creatingRow) == null ? void 0 : _d.id) || null;
826
+ const isCurrentlyEditing = editingRowId === row2.id;
827
+ if (editingRowId && editingRowId !== row2.id) {
828
+ table2.setEditingRow(null);
829
+ setTimeout(() => {
830
+ table2.setEditingRow(row2);
831
+ setDisableNextEdit(true);
832
+ }, 100);
833
+ return;
834
+ }
835
+ if (!disableNextEdit && !isCurrentlyEditing && !editingRowId) {
836
+ table2.setEditingRow(row2);
837
+ setDisableNextEdit(true);
838
+ }
833
839
  }
834
840
  // onClick: () => {
835
841
  // table.setEditingCell(cell); //set editing cell
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.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":["React","yup","_a","validations","validation","columns","row","table","isCreatingRow","isEditingRow","Add","rows","ChevronLeftIcon","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.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":["React","yup","_a","validations","validation","columns","row","table","isCreatingRow","isEditingRow","Add","rows","ChevronLeftIcon","ChevronRightIcon"],"mappings":"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"}