@erpsquad/common 1.8.47 → 1.8.48

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 (637) hide show
  1. package/dist/_virtual/index/index.esm.js +2 -4
  2. package/dist/_virtual/index/index.esm.js.map +1 -1
  3. package/dist/_virtual/index/index.esm10.js +3 -3
  4. package/dist/_virtual/index/index.esm11.js +3 -3
  5. package/dist/_virtual/index/index.esm2.js +2 -2
  6. package/dist/_virtual/index/index.esm3.js +4 -2
  7. package/dist/_virtual/index/index.esm3.js.map +1 -1
  8. package/dist/_virtual/index/index.esm4.js +1 -1
  9. package/dist/_virtual/index/index.esm5.js +3 -3
  10. package/dist/_virtual/index/index.esm6.js +3 -3
  11. package/dist/_virtual/index/index.esm7.js +3 -3
  12. package/dist/_virtual/index/index.esm8.js +3 -3
  13. package/dist/_virtual/index/index.esm9.js +3 -3
  14. package/dist/_virtual/index/index.js +1 -1
  15. package/dist/_virtual/index/index10.js +1 -1
  16. package/dist/_virtual/index/index11.js +1 -1
  17. package/dist/_virtual/index/index3.js +1 -1
  18. package/dist/_virtual/index/index4.js +1 -1
  19. package/dist/_virtual/index/index5.js +1 -1
  20. package/dist/_virtual/index/index6.js +1 -1
  21. package/dist/_virtual/index/index7.js +1 -1
  22. package/dist/_virtual/index/index8.js +1 -1
  23. package/dist/_virtual/index/index9.js +1 -1
  24. package/dist/components/activity-tag/activity-tag/index.esm.js +154 -0
  25. package/dist/components/activity-tag/activity-tag/index.esm.js.map +1 -0
  26. package/dist/components/activity-tag/activity-tag/index.js +15 -0
  27. package/dist/components/activity-tag/activity-tag/index.js.map +1 -0
  28. package/dist/components/activityLog/activity-log/index.esm.js +104 -0
  29. package/dist/components/activityLog/activity-log/index.esm.js.map +1 -0
  30. package/dist/components/activityLog/activity-log/index.js +14 -0
  31. package/dist/components/activityLog/activity-log/index.js.map +1 -0
  32. package/dist/components/charts/bar-chart/bar-chart/index.esm.js +86 -0
  33. package/dist/components/charts/bar-chart/bar-chart/index.esm.js.map +1 -0
  34. package/dist/components/charts/bar-chart/bar-chart/index.js +2 -0
  35. package/dist/components/charts/bar-chart/bar-chart/index.js.map +1 -0
  36. package/dist/components/charts/barChart/barChart/index.esm.js +148 -0
  37. package/dist/components/charts/barChart/barChart/index.esm.js.map +1 -0
  38. package/dist/components/charts/barChart/barChart/index.js +2 -0
  39. package/dist/components/charts/barChart/barChart/index.js.map +1 -0
  40. package/dist/components/charts/donut-chart/donut-chart/index.esm.js +86 -0
  41. package/dist/components/charts/donut-chart/donut-chart/index.esm.js.map +1 -0
  42. package/dist/components/charts/donut-chart/donut-chart/index.js +6 -0
  43. package/dist/components/charts/donut-chart/donut-chart/index.js.map +1 -0
  44. package/dist/components/charts/donut-chart/donut-chart.d.ts +1 -2
  45. package/dist/components/charts/donutChart/DonutChart/index.esm.js +97 -0
  46. package/dist/components/charts/donutChart/DonutChart/index.esm.js.map +1 -0
  47. package/dist/components/charts/donutChart/DonutChart/index.js +5 -0
  48. package/dist/components/charts/donutChart/DonutChart/index.js.map +1 -0
  49. package/dist/components/charts/index.d.ts +8 -0
  50. package/dist/components/confirm-modal/confirm-modal/index.esm.js.map +1 -1
  51. package/dist/components/confirm-modal/confirm-modal/index.js.map +1 -1
  52. package/dist/components/confirm-modal/confirm-modal.d.ts +1 -2
  53. package/dist/components/confirm-modal/index.d.ts +1 -0
  54. package/dist/components/editor/custom-editor/index.esm.js +96 -67
  55. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  56. package/dist/components/editor/custom-editor/index.js +3 -3
  57. package/dist/components/editor/custom-editor/index.js.map +1 -1
  58. package/dist/components/editor/custom-editor.d.ts +12 -8
  59. package/dist/components/footer/footer/index.esm.js +1 -1
  60. package/dist/components/footer/footer/index.js +2 -2
  61. package/dist/components/footer/footer/index.js.map +1 -1
  62. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  63. package/dist/components/form-control/form-parser/form-parser/index.js +4 -4
  64. package/dist/components/form-control/form-parser/form-parser/index.js.map +1 -1
  65. package/dist/components/grid/grid-card/grid-card/index.esm.js +4 -2
  66. package/dist/components/grid/grid-card/grid-card/index.esm.js.map +1 -1
  67. package/dist/components/grid/grid-card/grid-card/index.js +10 -11
  68. package/dist/components/grid/grid-card/grid-card/index.js.map +1 -1
  69. package/dist/components/grid/grid-card/grid-card.d.ts +10 -1
  70. package/dist/components/header/redux/reducer/index.esm.js +1 -6
  71. package/dist/components/header/redux/reducer/index.esm.js.map +1 -1
  72. package/dist/components/header/redux/reducer/index.js +1 -1
  73. package/dist/components/header/redux/reducer/index.js.map +1 -1
  74. package/dist/components/index.d.ts +293 -106
  75. package/dist/components/index.esm.js +447 -254
  76. package/dist/components/index.esm.js.map +1 -1
  77. package/dist/components/index.js +1 -1
  78. package/dist/components/inventory-reports-title-bar/component/reportFilter.d.ts +3 -2
  79. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  80. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  81. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js.map +1 -1
  82. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js +0 -2
  83. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js.map +1 -1
  84. package/dist/components/inventory-reports-title-bar/redux/reducer/index.js +1 -1
  85. package/dist/components/inventory-reports-title-bar/redux/reducer/index.js.map +1 -1
  86. package/dist/components/list/list/index.esm.js +3 -2
  87. package/dist/components/list/list/index.esm.js.map +1 -1
  88. package/dist/components/list/list/index.js +2 -2
  89. package/dist/components/list/list/index.js.map +1 -1
  90. package/dist/components/list/list.d.ts +2 -1
  91. package/dist/components/listing/listing/index.esm.js +1 -1
  92. package/dist/components/listing/listing/index.js +1 -1
  93. package/dist/components/listing/listing/index.js.map +1 -1
  94. package/dist/components/module-button/module-button/index.esm.js +3 -2
  95. package/dist/components/module-button/module-button/index.esm.js.map +1 -1
  96. package/dist/components/module-button/module-button/index.js +4 -4
  97. package/dist/components/module-button/module-button/index.js.map +1 -1
  98. package/dist/components/module-button/module-button.d.ts +10 -1
  99. package/dist/components/mulitline/multiline/index.esm.js +3 -2
  100. package/dist/components/mulitline/multiline/index.esm.js.map +1 -1
  101. package/dist/components/mulitline/multiline/index.js +9 -9
  102. package/dist/components/mulitline/multiline/index.js.map +1 -1
  103. package/dist/components/mulitline/multiline.d.ts +2 -2
  104. package/dist/components/page-navigator/page-navigator/index.esm.js +4 -3
  105. package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
  106. package/dist/components/page-navigator/page-navigator/index.js +5 -5
  107. package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
  108. package/dist/components/page-navigator/page-navigator.d.ts +3 -3
  109. package/dist/components/parties-modal/parties-modal/index.esm.js +4 -3
  110. package/dist/components/parties-modal/parties-modal/index.esm.js.map +1 -1
  111. package/dist/components/parties-modal/parties-modal/index.js +13 -13
  112. package/dist/components/parties-modal/parties-modal/index.js.map +1 -1
  113. package/dist/components/parties-modal/parties-modal.d.ts +3 -3
  114. package/dist/components/reports-title-bar/redux/reducer/index.esm.js +0 -2
  115. package/dist/components/reports-title-bar/redux/reducer/index.esm.js.map +1 -1
  116. package/dist/components/reports-title-bar/redux/reducer/index.js +1 -1
  117. package/dist/components/reports-title-bar/redux/reducer/index.js.map +1 -1
  118. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  119. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  120. package/dist/components/reports-title-bar/reports-title-bar/index.js.map +1 -1
  121. package/dist/components/rfq-response/item-response-details/index.esm.js +40 -48
  122. package/dist/components/rfq-response/item-response-details/index.esm.js.map +1 -1
  123. package/dist/components/rfq-response/item-response-details/index.js +4 -4
  124. package/dist/components/rfq-response/item-response-details/index.js.map +1 -1
  125. package/dist/components/rfq-response/item-response-details.d.ts +2 -1
  126. package/dist/components/schedule-report/utils/common/index.esm.js +1 -1
  127. package/dist/components/share-modal/redux/reducer/index.esm.js +0 -2
  128. package/dist/components/share-modal/redux/reducer/index.esm.js.map +1 -1
  129. package/dist/components/share-modal/redux/reducer/index.js +1 -1
  130. package/dist/components/share-modal/redux/reducer/index.js.map +1 -1
  131. package/dist/components/tab-bar-ui/tab-bar-ui/index.esm.js +4 -10
  132. package/dist/components/tab-bar-ui/tab-bar-ui/index.esm.js.map +1 -1
  133. package/dist/components/tab-bar-ui/tab-bar-ui/index.js +3 -3
  134. package/dist/components/tab-bar-ui/tab-bar-ui/index.js.map +1 -1
  135. package/dist/components/tab-bar-ui/tab-bar-ui.d.ts +3 -3
  136. package/dist/components/tabs/tabs/index.esm.js +3 -2
  137. package/dist/components/tabs/tabs/index.esm.js.map +1 -1
  138. package/dist/components/tabs/tabs/index.js +3 -3
  139. package/dist/components/tabs/tabs/index.js.map +1 -1
  140. package/dist/components/tabs/tabs.d.ts +2 -2
  141. package/dist/hooks/index.esm.js +4 -4
  142. package/dist/hooks/index.js +1 -1
  143. package/dist/hooks/use-translations/index.esm.js +4 -3
  144. package/dist/hooks/use-translations/index.esm.js.map +1 -1
  145. package/dist/hooks/use-translations/index.js +1 -1
  146. package/dist/hooks/use-translations/index.js.map +1 -1
  147. package/dist/hooks/use-translations.d.ts +2 -1
  148. package/dist/hooks/useCheckSkuAndName/index.esm.js +5 -4
  149. package/dist/hooks/useCheckSkuAndName/index.esm.js.map +1 -1
  150. package/dist/hooks/useCheckSkuAndName/index.js +1 -1
  151. package/dist/hooks/useCheckSkuAndName/index.js.map +1 -1
  152. package/dist/hooks/useCheckSkuAndName.d.ts +4 -2
  153. package/dist/index.esm.js +525 -315
  154. package/dist/index.esm.js.map +1 -1
  155. package/dist/index.js +1 -1
  156. package/dist/layout/fullScreen/fullScreen/index.esm.js +5 -3
  157. package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
  158. package/dist/layout/fullScreen/fullScreen/index.js +3 -3
  159. package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
  160. package/dist/layout/fullScreen/fullScreen.d.ts +5 -1
  161. package/dist/layout/index.esm.js +4 -4
  162. package/dist/layout/index.js +1 -1
  163. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js +72 -50
  164. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
  165. package/dist/layout/sidebarScreen/sidebarScreen/index.js +4 -4
  166. package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
  167. package/dist/layout/sidebarScreen/sidebarScreen.d.ts +3 -3
  168. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  169. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  170. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
  171. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  172. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js.map +1 -1
  173. package/dist/node_modules/@mui/lab/Timeline/Timeline/index.esm.js +95 -0
  174. package/dist/node_modules/@mui/lab/Timeline/Timeline/index.esm.js.map +1 -0
  175. package/dist/node_modules/@mui/lab/Timeline/Timeline/index.js +3 -0
  176. package/dist/node_modules/@mui/lab/Timeline/Timeline/index.js.map +1 -0
  177. package/dist/node_modules/@mui/lab/Timeline/TimelineContext/index.esm.js +10 -0
  178. package/dist/node_modules/@mui/lab/Timeline/TimelineContext/index.esm.js.map +1 -0
  179. package/dist/node_modules/@mui/lab/Timeline/TimelineContext/index.js +2 -0
  180. package/dist/node_modules/@mui/lab/Timeline/TimelineContext/index.js.map +1 -0
  181. package/dist/node_modules/@mui/lab/Timeline/timelineClasses/index.esm.js +10 -0
  182. package/dist/node_modules/@mui/lab/Timeline/timelineClasses/index.esm.js.map +1 -0
  183. package/dist/node_modules/@mui/lab/Timeline/timelineClasses/index.js +2 -0
  184. package/dist/node_modules/@mui/lab/Timeline/timelineClasses/index.js.map +1 -0
  185. package/dist/node_modules/@mui/lab/TimelineConnector/TimelineConnector/index.esm.js +76 -0
  186. package/dist/node_modules/@mui/lab/TimelineConnector/TimelineConnector/index.esm.js.map +1 -0
  187. package/dist/node_modules/@mui/lab/TimelineConnector/TimelineConnector/index.js +3 -0
  188. package/dist/node_modules/@mui/lab/TimelineConnector/TimelineConnector/index.js.map +1 -0
  189. package/dist/node_modules/@mui/lab/TimelineConnector/timelineConnectorClasses/index.esm.js +10 -0
  190. package/dist/node_modules/@mui/lab/TimelineConnector/timelineConnectorClasses/index.esm.js.map +1 -0
  191. package/dist/node_modules/@mui/lab/TimelineConnector/timelineConnectorClasses/index.js +2 -0
  192. package/dist/node_modules/@mui/lab/TimelineConnector/timelineConnectorClasses/index.js.map +1 -0
  193. package/dist/node_modules/@mui/lab/TimelineContent/TimelineContent/index.esm.js +91 -0
  194. package/dist/node_modules/@mui/lab/TimelineContent/TimelineContent/index.esm.js.map +1 -0
  195. package/dist/node_modules/@mui/lab/TimelineContent/TimelineContent/index.js +3 -0
  196. package/dist/node_modules/@mui/lab/TimelineContent/TimelineContent/index.js.map +1 -0
  197. package/dist/node_modules/@mui/lab/TimelineContent/timelineContentClasses/index.esm.js +11 -0
  198. package/dist/node_modules/@mui/lab/TimelineContent/timelineContentClasses/index.esm.js.map +1 -0
  199. package/dist/node_modules/@mui/lab/TimelineContent/timelineContentClasses/index.js +2 -0
  200. package/dist/node_modules/@mui/lab/TimelineContent/timelineContentClasses/index.js.map +1 -0
  201. package/dist/node_modules/@mui/lab/TimelineDot/TimelineDot/index.esm.js +118 -0
  202. package/dist/node_modules/@mui/lab/TimelineDot/TimelineDot/index.esm.js.map +1 -0
  203. package/dist/node_modules/@mui/lab/TimelineDot/TimelineDot/index.js +3 -0
  204. package/dist/node_modules/@mui/lab/TimelineDot/TimelineDot/index.js.map +1 -0
  205. package/dist/node_modules/@mui/lab/TimelineDot/timelineDotClasses/index.esm.js +10 -0
  206. package/dist/node_modules/@mui/lab/TimelineDot/timelineDotClasses/index.esm.js.map +1 -0
  207. package/dist/node_modules/@mui/lab/TimelineDot/timelineDotClasses/index.js +2 -0
  208. package/dist/node_modules/@mui/lab/TimelineDot/timelineDotClasses/index.js.map +1 -0
  209. package/dist/node_modules/@mui/lab/TimelineItem/TimelineItem/index.esm.js +128 -0
  210. package/dist/node_modules/@mui/lab/TimelineItem/TimelineItem/index.esm.js.map +1 -0
  211. package/dist/node_modules/@mui/lab/TimelineItem/TimelineItem/index.js +3 -0
  212. package/dist/node_modules/@mui/lab/TimelineItem/TimelineItem/index.js.map +1 -0
  213. package/dist/node_modules/@mui/lab/TimelineItem/timelineItemClasses/index.esm.js +10 -0
  214. package/dist/node_modules/@mui/lab/TimelineItem/timelineItemClasses/index.esm.js.map +1 -0
  215. package/dist/node_modules/@mui/lab/TimelineItem/timelineItemClasses/index.js +2 -0
  216. package/dist/node_modules/@mui/lab/TimelineItem/timelineItemClasses/index.js.map +1 -0
  217. package/dist/node_modules/@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses/index.esm.js +6 -0
  218. package/dist/node_modules/@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses/index.esm.js.map +1 -0
  219. package/dist/node_modules/@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses/index.js +2 -0
  220. package/dist/node_modules/@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses/index.js.map +1 -0
  221. package/dist/node_modules/@mui/lab/TimelineSeparator/TimelineSeparator/index.esm.js +73 -0
  222. package/dist/node_modules/@mui/lab/TimelineSeparator/TimelineSeparator/index.esm.js.map +1 -0
  223. package/dist/node_modules/@mui/lab/TimelineSeparator/TimelineSeparator/index.js +3 -0
  224. package/dist/node_modules/@mui/lab/TimelineSeparator/TimelineSeparator/index.js.map +1 -0
  225. package/dist/node_modules/@mui/lab/TimelineSeparator/timelineSeparatorClasses/index.esm.js +10 -0
  226. package/dist/node_modules/@mui/lab/TimelineSeparator/timelineSeparatorClasses/index.esm.js.map +1 -0
  227. package/dist/node_modules/@mui/lab/TimelineSeparator/timelineSeparatorClasses/index.js +2 -0
  228. package/dist/node_modules/@mui/lab/TimelineSeparator/timelineSeparatorClasses/index.js.map +1 -0
  229. package/dist/node_modules/@mui/lab/internal/convertTimelinePositionToClass/index.esm.js +8 -0
  230. package/dist/node_modules/@mui/lab/internal/convertTimelinePositionToClass/index.esm.js.map +1 -0
  231. package/dist/node_modules/@mui/lab/internal/convertTimelinePositionToClass/index.js +2 -0
  232. package/dist/node_modules/@mui/lab/internal/convertTimelinePositionToClass/index.js.map +1 -0
  233. package/dist/node_modules/@mui/material/AccordionActions/AccordionActions/index.esm.js +95 -0
  234. package/dist/node_modules/@mui/material/AccordionActions/AccordionActions/index.esm.js.map +1 -0
  235. package/dist/node_modules/@mui/material/AccordionActions/AccordionActions/index.js +3 -0
  236. package/dist/node_modules/@mui/material/AccordionActions/AccordionActions/index.js.map +1 -0
  237. package/dist/node_modules/@mui/material/AccordionActions/accordionActionsClasses/index.esm.js +10 -0
  238. package/dist/node_modules/@mui/material/AccordionActions/accordionActionsClasses/index.esm.js.map +1 -0
  239. package/dist/node_modules/@mui/material/AccordionActions/accordionActionsClasses/index.js +2 -0
  240. package/dist/node_modules/@mui/material/AccordionActions/accordionActionsClasses/index.js.map +1 -0
  241. package/dist/node_modules/@mui/material/Avatar/avatarClasses/index.esm.js +3 -2
  242. package/dist/node_modules/@mui/material/Avatar/avatarClasses/index.esm.js.map +1 -1
  243. package/dist/node_modules/@mui/material/Avatar/avatarClasses/index.js +1 -1
  244. package/dist/node_modules/@mui/material/Avatar/avatarClasses/index.js.map +1 -1
  245. package/dist/node_modules/@mui/material/AvatarGroup/AvatarGroup/index.esm.js +201 -0
  246. package/dist/node_modules/@mui/material/AvatarGroup/AvatarGroup/index.esm.js.map +1 -0
  247. package/dist/node_modules/@mui/material/AvatarGroup/AvatarGroup/index.js +3 -0
  248. package/dist/node_modules/@mui/material/AvatarGroup/AvatarGroup/index.js.map +1 -0
  249. package/dist/node_modules/@mui/material/AvatarGroup/avatarGroupClasses/index.esm.js +11 -0
  250. package/dist/node_modules/@mui/material/AvatarGroup/avatarGroupClasses/index.esm.js.map +1 -0
  251. package/dist/node_modules/@mui/material/AvatarGroup/avatarGroupClasses/index.js +2 -0
  252. package/dist/node_modules/@mui/material/AvatarGroup/avatarGroupClasses/index.js.map +1 -0
  253. package/dist/node_modules/@mui/material/BottomNavigation/BottomNavigation/index.esm.js +125 -0
  254. package/dist/node_modules/@mui/material/BottomNavigation/BottomNavigation/index.esm.js.map +1 -0
  255. package/dist/node_modules/@mui/material/BottomNavigation/BottomNavigation/index.js +4 -0
  256. package/dist/node_modules/@mui/material/BottomNavigation/BottomNavigation/index.js.map +1 -0
  257. package/dist/node_modules/@mui/material/BottomNavigation/bottomNavigationClasses/index.esm.js +10 -0
  258. package/dist/node_modules/@mui/material/BottomNavigation/bottomNavigationClasses/index.esm.js.map +1 -0
  259. package/dist/node_modules/@mui/material/BottomNavigation/bottomNavigationClasses/index.js +2 -0
  260. package/dist/node_modules/@mui/material/BottomNavigation/bottomNavigationClasses/index.js.map +1 -0
  261. package/dist/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction/index.esm.js +170 -0
  262. package/dist/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction/index.esm.js.map +1 -0
  263. package/dist/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction/index.js +3 -0
  264. package/dist/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction/index.js.map +1 -0
  265. package/dist/node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses/index.esm.js +11 -0
  266. package/dist/node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses/index.esm.js.map +1 -0
  267. package/dist/node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses/index.js +2 -0
  268. package/dist/node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses/index.js.map +1 -0
  269. package/dist/node_modules/@mui/material/CardActionArea/CardActionArea/index.esm.js +120 -0
  270. package/dist/node_modules/@mui/material/CardActionArea/CardActionArea/index.esm.js.map +1 -0
  271. package/dist/node_modules/@mui/material/CardActionArea/CardActionArea/index.js +3 -0
  272. package/dist/node_modules/@mui/material/CardActionArea/CardActionArea/index.js.map +1 -0
  273. package/dist/node_modules/@mui/material/CardActionArea/cardActionAreaClasses/index.esm.js +11 -0
  274. package/dist/node_modules/@mui/material/CardActionArea/cardActionAreaClasses/index.esm.js.map +1 -0
  275. package/dist/node_modules/@mui/material/CardActionArea/cardActionAreaClasses/index.js +2 -0
  276. package/dist/node_modules/@mui/material/CardActionArea/cardActionAreaClasses/index.js.map +1 -0
  277. package/dist/node_modules/@mui/material/CardActions/CardActions/index.esm.js +92 -0
  278. package/dist/node_modules/@mui/material/CardActions/CardActions/index.esm.js.map +1 -0
  279. package/dist/node_modules/@mui/material/CardActions/CardActions/index.js +3 -0
  280. package/dist/node_modules/@mui/material/CardActions/CardActions/index.js.map +1 -0
  281. package/dist/node_modules/@mui/material/CardActions/cardActionsClasses/index.esm.js +10 -0
  282. package/dist/node_modules/@mui/material/CardActions/cardActionsClasses/index.esm.js.map +1 -0
  283. package/dist/node_modules/@mui/material/CardActions/cardActionsClasses/index.js +2 -0
  284. package/dist/node_modules/@mui/material/CardActions/cardActionsClasses/index.js.map +1 -0
  285. package/dist/node_modules/@mui/material/CardHeader/CardHeader/index.esm.js +196 -0
  286. package/dist/node_modules/@mui/material/CardHeader/CardHeader/index.esm.js.map +1 -0
  287. package/dist/node_modules/@mui/material/CardHeader/CardHeader/index.js +2 -0
  288. package/dist/node_modules/@mui/material/CardHeader/CardHeader/index.js.map +1 -0
  289. package/dist/node_modules/@mui/material/CardHeader/cardHeaderClasses/index.esm.js +11 -0
  290. package/dist/node_modules/@mui/material/CardHeader/cardHeaderClasses/index.esm.js.map +1 -0
  291. package/dist/node_modules/@mui/material/CardHeader/cardHeaderClasses/index.js +2 -0
  292. package/dist/node_modules/@mui/material/CardHeader/cardHeaderClasses/index.js.map +1 -0
  293. package/dist/node_modules/@mui/material/DialogContentText/DialogContentText/index.esm.js +76 -0
  294. package/dist/node_modules/@mui/material/DialogContentText/DialogContentText/index.esm.js.map +1 -0
  295. package/dist/node_modules/@mui/material/DialogContentText/DialogContentText/index.js +3 -0
  296. package/dist/node_modules/@mui/material/DialogContentText/DialogContentText/index.js.map +1 -0
  297. package/dist/node_modules/@mui/material/DialogContentText/dialogContentTextClasses/index.esm.js +10 -0
  298. package/dist/node_modules/@mui/material/DialogContentText/dialogContentTextClasses/index.esm.js.map +1 -0
  299. package/dist/node_modules/@mui/material/DialogContentText/dialogContentTextClasses/index.js +2 -0
  300. package/dist/node_modules/@mui/material/DialogContentText/dialogContentTextClasses/index.js.map +1 -0
  301. package/dist/node_modules/@mui/material/Fab/Fab/index.esm.js +231 -0
  302. package/dist/node_modules/@mui/material/Fab/Fab/index.esm.js.map +1 -0
  303. package/dist/node_modules/@mui/material/Fab/Fab/index.js +3 -0
  304. package/dist/node_modules/@mui/material/Fab/Fab/index.js.map +1 -0
  305. package/dist/node_modules/@mui/material/Fab/fabClasses/index.esm.js +11 -0
  306. package/dist/node_modules/@mui/material/Fab/fabClasses/index.esm.js.map +1 -0
  307. package/dist/node_modules/@mui/material/Fab/fabClasses/index.js +2 -0
  308. package/dist/node_modules/@mui/material/Fab/fabClasses/index.js.map +1 -0
  309. package/dist/node_modules/@mui/material/Hidden/Hidden/index.esm.js +135 -0
  310. package/dist/node_modules/@mui/material/Hidden/Hidden/index.esm.js.map +1 -0
  311. package/dist/node_modules/@mui/material/Hidden/Hidden/index.js +2 -0
  312. package/dist/node_modules/@mui/material/Hidden/Hidden/index.js.map +1 -0
  313. package/dist/node_modules/@mui/material/Hidden/HiddenCss/index.esm.js +176 -0
  314. package/dist/node_modules/@mui/material/Hidden/HiddenCss/index.esm.js.map +1 -0
  315. package/dist/node_modules/@mui/material/Hidden/HiddenCss/index.js +3 -0
  316. package/dist/node_modules/@mui/material/Hidden/HiddenCss/index.js.map +1 -0
  317. package/dist/node_modules/@mui/material/Hidden/HiddenJs/index.esm.js +119 -0
  318. package/dist/node_modules/@mui/material/Hidden/HiddenJs/index.esm.js.map +1 -0
  319. package/dist/node_modules/@mui/material/Hidden/HiddenJs/index.js +2 -0
  320. package/dist/node_modules/@mui/material/Hidden/HiddenJs/index.js.map +1 -0
  321. package/dist/node_modules/@mui/material/Hidden/hiddenCssClasses/index.esm.js +10 -0
  322. package/dist/node_modules/@mui/material/Hidden/hiddenCssClasses/index.esm.js.map +1 -0
  323. package/dist/node_modules/@mui/material/Hidden/hiddenCssClasses/index.js +2 -0
  324. package/dist/node_modules/@mui/material/Hidden/hiddenCssClasses/index.js.map +1 -0
  325. package/dist/node_modules/@mui/material/Hidden/withWidth/index.esm.js +92 -0
  326. package/dist/node_modules/@mui/material/Hidden/withWidth/index.esm.js.map +1 -0
  327. package/dist/node_modules/@mui/material/Hidden/withWidth/index.js +2 -0
  328. package/dist/node_modules/@mui/material/Hidden/withWidth/index.js.map +1 -0
  329. package/dist/node_modules/@mui/material/ImageList/ImageList/index.esm.js +156 -0
  330. package/dist/node_modules/@mui/material/ImageList/ImageList/index.esm.js.map +1 -0
  331. package/dist/node_modules/@mui/material/ImageList/ImageList/index.js +3 -0
  332. package/dist/node_modules/@mui/material/ImageList/ImageList/index.js.map +1 -0
  333. package/dist/node_modules/@mui/material/ImageList/ImageListContext/index.esm.js +10 -0
  334. package/dist/node_modules/@mui/material/ImageList/ImageListContext/index.esm.js.map +1 -0
  335. package/dist/node_modules/@mui/material/ImageList/ImageListContext/index.js +2 -0
  336. package/dist/node_modules/@mui/material/ImageList/ImageListContext/index.js.map +1 -0
  337. package/dist/node_modules/@mui/material/ImageList/imageListClasses/index.esm.js +10 -0
  338. package/dist/node_modules/@mui/material/ImageList/imageListClasses/index.esm.js.map +1 -0
  339. package/dist/node_modules/@mui/material/ImageList/imageListClasses/index.js +2 -0
  340. package/dist/node_modules/@mui/material/ImageList/imageListClasses/index.js.map +1 -0
  341. package/dist/node_modules/@mui/material/ImageListItem/ImageListItem/index.esm.js +173 -0
  342. package/dist/node_modules/@mui/material/ImageListItem/ImageListItem/index.esm.js.map +1 -0
  343. package/dist/node_modules/@mui/material/ImageListItem/ImageListItem/index.js +3 -0
  344. package/dist/node_modules/@mui/material/ImageListItem/ImageListItem/index.js.map +1 -0
  345. package/dist/node_modules/@mui/material/ImageListItem/imageListItemClasses/index.esm.js +11 -0
  346. package/dist/node_modules/@mui/material/ImageListItem/imageListItemClasses/index.esm.js.map +1 -0
  347. package/dist/node_modules/@mui/material/ImageListItem/imageListItemClasses/index.js +2 -0
  348. package/dist/node_modules/@mui/material/ImageListItem/imageListItemClasses/index.js.map +1 -0
  349. package/dist/node_modules/@mui/material/ImageListItemBar/ImageListItemBar/index.esm.js +222 -0
  350. package/dist/node_modules/@mui/material/ImageListItemBar/ImageListItemBar/index.esm.js.map +1 -0
  351. package/dist/node_modules/@mui/material/ImageListItemBar/ImageListItemBar/index.js +3 -0
  352. package/dist/node_modules/@mui/material/ImageListItemBar/ImageListItemBar/index.js.map +1 -0
  353. package/dist/node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses/index.esm.js +10 -0
  354. package/dist/node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses/index.esm.js.map +1 -0
  355. package/dist/node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses/index.js +2 -0
  356. package/dist/node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses/index.js.map +1 -0
  357. package/dist/node_modules/@mui/material/MobileStepper/MobileStepper/index.esm.js +216 -0
  358. package/dist/node_modules/@mui/material/MobileStepper/MobileStepper/index.esm.js.map +1 -0
  359. package/dist/node_modules/@mui/material/MobileStepper/MobileStepper/index.js +3 -0
  360. package/dist/node_modules/@mui/material/MobileStepper/MobileStepper/index.js.map +1 -0
  361. package/dist/node_modules/@mui/material/MobileStepper/mobileStepperClasses/index.esm.js +10 -0
  362. package/dist/node_modules/@mui/material/MobileStepper/mobileStepperClasses/index.esm.js.map +1 -0
  363. package/dist/node_modules/@mui/material/MobileStepper/mobileStepperClasses/index.js +2 -0
  364. package/dist/node_modules/@mui/material/MobileStepper/mobileStepperClasses/index.js.map +1 -0
  365. package/dist/node_modules/@mui/material/NativeSelect/NativeSelect/index.esm.js +126 -0
  366. package/dist/node_modules/@mui/material/NativeSelect/NativeSelect/index.esm.js.map +1 -0
  367. package/dist/node_modules/@mui/material/NativeSelect/NativeSelect/index.js +3 -0
  368. package/dist/node_modules/@mui/material/NativeSelect/NativeSelect/index.js.map +1 -0
  369. package/dist/node_modules/@mui/material/NativeSelect/nativeSelectClasses/index.esm.js +1 -1
  370. package/dist/node_modules/@mui/material/NativeSelect/nativeSelectClasses/index.js +1 -1
  371. package/dist/node_modules/@mui/material/NativeSelect/nativeSelectClasses/index.js.map +1 -1
  372. package/dist/node_modules/@mui/material/NoSsr/NoSsr/index.esm.js +55 -0
  373. package/dist/node_modules/@mui/material/NoSsr/NoSsr/index.esm.js.map +1 -0
  374. package/dist/node_modules/@mui/material/NoSsr/NoSsr/index.js +2 -0
  375. package/dist/node_modules/@mui/material/NoSsr/NoSsr/index.js.map +1 -0
  376. package/dist/node_modules/@mui/material/OutlinedInput/outlinedInputClasses/index.esm.js +1 -1
  377. package/dist/node_modules/@mui/material/OutlinedInput/outlinedInputClasses/index.js +1 -1
  378. package/dist/node_modules/@mui/material/Popover/Popover/index.esm.js +1 -1
  379. package/dist/node_modules/@mui/material/Popover/Popover/index.js +1 -1
  380. package/dist/node_modules/@mui/material/Rating/Rating/index.esm.js +638 -0
  381. package/dist/node_modules/@mui/material/Rating/Rating/index.esm.js.map +1 -0
  382. package/dist/node_modules/@mui/material/Rating/Rating/index.js +7 -0
  383. package/dist/node_modules/@mui/material/Rating/Rating/index.js.map +1 -0
  384. package/dist/node_modules/@mui/material/Rating/ratingClasses/index.esm.js +11 -0
  385. package/dist/node_modules/@mui/material/Rating/ratingClasses/index.esm.js.map +1 -0
  386. package/dist/node_modules/@mui/material/Rating/ratingClasses/index.js +2 -0
  387. package/dist/node_modules/@mui/material/Rating/ratingClasses/index.js.map +1 -0
  388. package/dist/node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline/index.esm.js +105 -0
  389. package/dist/node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline/index.esm.js.map +1 -0
  390. package/dist/node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline/index.js +3 -0
  391. package/dist/node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline/index.js.map +1 -0
  392. package/dist/node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses/index.esm.js +10 -0
  393. package/dist/node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses/index.esm.js.map +1 -0
  394. package/dist/node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses/index.js +2 -0
  395. package/dist/node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses/index.js.map +1 -0
  396. package/dist/node_modules/@mui/material/Snackbar/Snackbar/index.esm.js +1 -1
  397. package/dist/node_modules/@mui/material/Snackbar/Snackbar/index.js +1 -1
  398. package/dist/node_modules/@mui/material/SpeedDial/SpeedDial/index.esm.js +453 -0
  399. package/dist/node_modules/@mui/material/SpeedDial/SpeedDial/index.esm.js.map +1 -0
  400. package/dist/node_modules/@mui/material/SpeedDial/SpeedDial/index.js +4 -0
  401. package/dist/node_modules/@mui/material/SpeedDial/SpeedDial/index.js.map +1 -0
  402. package/dist/node_modules/@mui/material/SpeedDial/speedDialClasses/index.esm.js +11 -0
  403. package/dist/node_modules/@mui/material/SpeedDial/speedDialClasses/index.esm.js.map +1 -0
  404. package/dist/node_modules/@mui/material/SpeedDial/speedDialClasses/index.js +2 -0
  405. package/dist/node_modules/@mui/material/SpeedDial/speedDialClasses/index.js.map +1 -0
  406. package/dist/node_modules/@mui/material/SpeedDialAction/SpeedDialAction/index.esm.js +245 -0
  407. package/dist/node_modules/@mui/material/SpeedDialAction/SpeedDialAction/index.esm.js.map +1 -0
  408. package/dist/node_modules/@mui/material/SpeedDialAction/SpeedDialAction/index.js +2 -0
  409. package/dist/node_modules/@mui/material/SpeedDialAction/SpeedDialAction/index.js.map +1 -0
  410. package/dist/node_modules/@mui/material/SpeedDialAction/speedDialActionClasses/index.esm.js +11 -0
  411. package/dist/node_modules/@mui/material/SpeedDialAction/speedDialActionClasses/index.esm.js.map +1 -0
  412. package/dist/node_modules/@mui/material/SpeedDialAction/speedDialActionClasses/index.js +2 -0
  413. package/dist/node_modules/@mui/material/SpeedDialAction/speedDialActionClasses/index.js.map +1 -0
  414. package/dist/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon/index.esm.js +137 -0
  415. package/dist/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon/index.esm.js.map +1 -0
  416. package/dist/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon/index.js +4 -0
  417. package/dist/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon/index.js.map +1 -0
  418. package/dist/node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses/index.esm.js +11 -0
  419. package/dist/node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses/index.esm.js.map +1 -0
  420. package/dist/node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses/index.js +2 -0
  421. package/dist/node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses/index.js.map +1 -0
  422. package/dist/node_modules/@mui/material/Step/Step/index.esm.js +169 -0
  423. package/dist/node_modules/@mui/material/Step/Step/index.esm.js.map +1 -0
  424. package/dist/node_modules/@mui/material/Step/Step/index.js +3 -0
  425. package/dist/node_modules/@mui/material/Step/Step/index.js.map +1 -0
  426. package/dist/node_modules/@mui/material/Step/StepContext/index.esm.js +10 -0
  427. package/dist/node_modules/@mui/material/Step/StepContext/index.esm.js.map +1 -0
  428. package/dist/node_modules/@mui/material/Step/StepContext/index.js +2 -0
  429. package/dist/node_modules/@mui/material/Step/StepContext/index.js.map +1 -0
  430. package/dist/node_modules/@mui/material/Step/stepClasses/index.esm.js +10 -0
  431. package/dist/node_modules/@mui/material/Step/stepClasses/index.esm.js.map +1 -0
  432. package/dist/node_modules/@mui/material/Step/stepClasses/index.js +2 -0
  433. package/dist/node_modules/@mui/material/Step/stepClasses/index.js.map +1 -0
  434. package/dist/node_modules/@mui/material/StepButton/StepButton/index.esm.js +132 -0
  435. package/dist/node_modules/@mui/material/StepButton/StepButton/index.esm.js.map +1 -0
  436. package/dist/node_modules/@mui/material/StepButton/StepButton/index.js +3 -0
  437. package/dist/node_modules/@mui/material/StepButton/StepButton/index.js.map +1 -0
  438. package/dist/node_modules/@mui/material/StepButton/stepButtonClasses/index.esm.js +11 -0
  439. package/dist/node_modules/@mui/material/StepButton/stepButtonClasses/index.esm.js.map +1 -0
  440. package/dist/node_modules/@mui/material/StepButton/stepButtonClasses/index.js +2 -0
  441. package/dist/node_modules/@mui/material/StepButton/stepButtonClasses/index.js.map +1 -0
  442. package/dist/node_modules/@mui/material/StepConnector/StepConnector/index.esm.js +136 -0
  443. package/dist/node_modules/@mui/material/StepConnector/StepConnector/index.esm.js.map +1 -0
  444. package/dist/node_modules/@mui/material/StepConnector/StepConnector/index.js +3 -0
  445. package/dist/node_modules/@mui/material/StepConnector/StepConnector/index.js.map +1 -0
  446. package/dist/node_modules/@mui/material/StepConnector/stepConnectorClasses/index.esm.js +10 -0
  447. package/dist/node_modules/@mui/material/StepConnector/stepConnectorClasses/index.esm.js.map +1 -0
  448. package/dist/node_modules/@mui/material/StepConnector/stepConnectorClasses/index.js +2 -0
  449. package/dist/node_modules/@mui/material/StepConnector/stepConnectorClasses/index.js.map +1 -0
  450. package/dist/node_modules/@mui/material/StepContent/StepContent/index.esm.js +152 -0
  451. package/dist/node_modules/@mui/material/StepContent/StepContent/index.esm.js.map +1 -0
  452. package/dist/node_modules/@mui/material/StepContent/StepContent/index.js +2 -0
  453. package/dist/node_modules/@mui/material/StepContent/StepContent/index.js.map +1 -0
  454. package/dist/node_modules/@mui/material/StepContent/stepContentClasses/index.esm.js +10 -0
  455. package/dist/node_modules/@mui/material/StepContent/stepContentClasses/index.esm.js.map +1 -0
  456. package/dist/node_modules/@mui/material/StepContent/stepContentClasses/index.js +2 -0
  457. package/dist/node_modules/@mui/material/StepContent/stepContentClasses/index.js.map +1 -0
  458. package/dist/node_modules/@mui/material/StepIcon/StepIcon/index.esm.js +161 -0
  459. package/dist/node_modules/@mui/material/StepIcon/StepIcon/index.esm.js.map +1 -0
  460. package/dist/node_modules/@mui/material/StepIcon/StepIcon/index.js +2 -0
  461. package/dist/node_modules/@mui/material/StepIcon/StepIcon/index.js.map +1 -0
  462. package/dist/node_modules/@mui/material/StepIcon/stepIconClasses/index.esm.js +11 -0
  463. package/dist/node_modules/@mui/material/StepIcon/stepIconClasses/index.esm.js.map +1 -0
  464. package/dist/node_modules/@mui/material/StepIcon/stepIconClasses/index.js +2 -0
  465. package/dist/node_modules/@mui/material/StepIcon/stepIconClasses/index.js.map +1 -0
  466. package/dist/node_modules/@mui/material/StepLabel/StepLabel/index.esm.js +239 -0
  467. package/dist/node_modules/@mui/material/StepLabel/StepLabel/index.esm.js.map +1 -0
  468. package/dist/node_modules/@mui/material/StepLabel/StepLabel/index.js +3 -0
  469. package/dist/node_modules/@mui/material/StepLabel/StepLabel/index.js.map +1 -0
  470. package/dist/node_modules/@mui/material/StepLabel/stepLabelClasses/index.esm.js +11 -0
  471. package/dist/node_modules/@mui/material/StepLabel/stepLabelClasses/index.esm.js.map +1 -0
  472. package/dist/node_modules/@mui/material/StepLabel/stepLabelClasses/index.js +2 -0
  473. package/dist/node_modules/@mui/material/StepLabel/stepLabelClasses/index.js.map +1 -0
  474. package/dist/node_modules/@mui/material/Stepper/Stepper/index.esm.js +155 -0
  475. package/dist/node_modules/@mui/material/Stepper/Stepper/index.esm.js.map +1 -0
  476. package/dist/node_modules/@mui/material/Stepper/Stepper/index.js +3 -0
  477. package/dist/node_modules/@mui/material/Stepper/Stepper/index.js.map +1 -0
  478. package/dist/node_modules/@mui/material/Stepper/StepperContext/index.esm.js +10 -0
  479. package/dist/node_modules/@mui/material/Stepper/StepperContext/index.esm.js.map +1 -0
  480. package/dist/node_modules/@mui/material/Stepper/StepperContext/index.js +2 -0
  481. package/dist/node_modules/@mui/material/Stepper/StepperContext/index.js.map +1 -0
  482. package/dist/node_modules/@mui/material/Stepper/stepperClasses/index.esm.js +10 -0
  483. package/dist/node_modules/@mui/material/Stepper/stepperClasses/index.esm.js.map +1 -0
  484. package/dist/node_modules/@mui/material/Stepper/stepperClasses/index.js +2 -0
  485. package/dist/node_modules/@mui/material/Stepper/stepperClasses/index.js.map +1 -0
  486. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeArea/index.esm.js +82 -0
  487. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeArea/index.esm.js.map +1 -0
  488. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeArea/index.js +3 -0
  489. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeArea/index.js.map +1 -0
  490. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer/index.esm.js +538 -0
  491. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer/index.esm.js.map +1 -0
  492. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer/index.js +2 -0
  493. package/dist/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer/index.js.map +1 -0
  494. package/dist/node_modules/@mui/material/TablePagination/TablePagination/index.esm.js +443 -0
  495. package/dist/node_modules/@mui/material/TablePagination/TablePagination/index.esm.js.map +1 -0
  496. package/dist/node_modules/@mui/material/TablePagination/TablePagination/index.js +3 -0
  497. package/dist/node_modules/@mui/material/TablePagination/TablePagination/index.js.map +1 -0
  498. package/dist/node_modules/@mui/material/TablePagination/TablePaginationActions/index.esm.js +179 -0
  499. package/dist/node_modules/@mui/material/TablePagination/TablePaginationActions/index.esm.js.map +1 -0
  500. package/dist/node_modules/@mui/material/TablePagination/TablePaginationActions/index.js +3 -0
  501. package/dist/node_modules/@mui/material/TablePagination/TablePaginationActions/index.js.map +1 -0
  502. package/dist/node_modules/@mui/material/TablePagination/tablePaginationClasses/index.esm.js +11 -0
  503. package/dist/node_modules/@mui/material/TablePagination/tablePaginationClasses/index.esm.js.map +1 -0
  504. package/dist/node_modules/@mui/material/TablePagination/tablePaginationClasses/index.js +2 -0
  505. package/dist/node_modules/@mui/material/TablePagination/tablePaginationClasses/index.js.map +1 -0
  506. package/dist/node_modules/@mui/material/Tabs/Tabs/index.esm.js +1 -1
  507. package/dist/node_modules/@mui/material/Tabs/Tabs/index.js +1 -1
  508. package/dist/node_modules/@mui/material/Zoom/Zoom/index.esm.js +196 -0
  509. package/dist/node_modules/@mui/material/Zoom/Zoom/index.esm.js.map +1 -0
  510. package/dist/node_modules/@mui/material/Zoom/Zoom/index.js +3 -0
  511. package/dist/node_modules/@mui/material/Zoom/Zoom/index.js.map +1 -0
  512. package/dist/node_modules/@mui/material/internal/svg-icons/Add/index.esm.js +9 -0
  513. package/dist/node_modules/@mui/material/internal/svg-icons/Add/index.esm.js.map +1 -0
  514. package/dist/node_modules/@mui/material/internal/svg-icons/Add/index.js +2 -0
  515. package/dist/node_modules/@mui/material/internal/svg-icons/Add/index.js.map +1 -0
  516. package/dist/node_modules/@mui/material/internal/svg-icons/CheckCircle/index.esm.js +9 -0
  517. package/dist/node_modules/@mui/material/internal/svg-icons/CheckCircle/index.esm.js.map +1 -0
  518. package/dist/node_modules/@mui/material/internal/svg-icons/CheckCircle/index.js +2 -0
  519. package/dist/node_modules/@mui/material/internal/svg-icons/CheckCircle/index.js.map +1 -0
  520. package/dist/node_modules/@mui/material/internal/svg-icons/Star/index.esm.js +9 -0
  521. package/dist/node_modules/@mui/material/internal/svg-icons/Star/index.esm.js.map +1 -0
  522. package/dist/node_modules/@mui/material/internal/svg-icons/Star/index.js +2 -0
  523. package/dist/node_modules/@mui/material/internal/svg-icons/Star/index.js.map +1 -0
  524. package/dist/node_modules/@mui/material/internal/svg-icons/StarBorder/index.esm.js +9 -0
  525. package/dist/node_modules/@mui/material/internal/svg-icons/StarBorder/index.esm.js.map +1 -0
  526. package/dist/node_modules/@mui/material/internal/svg-icons/StarBorder/index.js +2 -0
  527. package/dist/node_modules/@mui/material/internal/svg-icons/StarBorder/index.js.map +1 -0
  528. package/dist/node_modules/@mui/material/internal/svg-icons/Warning/index.esm.js +9 -0
  529. package/dist/node_modules/@mui/material/internal/svg-icons/Warning/index.esm.js.map +1 -0
  530. package/dist/node_modules/@mui/material/internal/svg-icons/Warning/index.js +2 -0
  531. package/dist/node_modules/@mui/material/internal/svg-icons/Warning/index.js.map +1 -0
  532. package/dist/node_modules/@mui/material/useScrollTrigger/useScrollTrigger/index.esm.js +51 -0
  533. package/dist/node_modules/@mui/material/useScrollTrigger/useScrollTrigger/index.esm.js.map +1 -0
  534. package/dist/node_modules/@mui/material/useScrollTrigger/useScrollTrigger/index.js +2 -0
  535. package/dist/node_modules/@mui/material/useScrollTrigger/useScrollTrigger/index.js.map +1 -0
  536. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  537. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  538. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  539. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  540. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  541. package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
  542. package/dist/node_modules/@mui/system/esm/Stack/createStack/index.esm.js +1 -1
  543. package/dist/node_modules/@mui/system/esm/Stack/createStack/index.js +2 -2
  544. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  545. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  546. package/dist/node_modules/d3-axis/src/axis/index.esm.js +5 -1
  547. package/dist/node_modules/d3-axis/src/axis/index.esm.js.map +1 -1
  548. package/dist/node_modules/d3-axis/src/axis/index.js +1 -1
  549. package/dist/node_modules/d3-axis/src/axis/index.js.map +1 -1
  550. package/dist/node_modules/d3-shape/src/arc/index.esm.js +134 -0
  551. package/dist/node_modules/d3-shape/src/arc/index.esm.js.map +1 -0
  552. package/dist/node_modules/d3-shape/src/arc/index.js +2 -0
  553. package/dist/node_modules/d3-shape/src/arc/index.js.map +1 -0
  554. package/dist/node_modules/d3-shape/src/descending/index.esm.js +7 -0
  555. package/dist/node_modules/d3-shape/src/descending/index.esm.js.map +1 -0
  556. package/dist/node_modules/d3-shape/src/descending/index.js +2 -0
  557. package/dist/node_modules/d3-shape/src/descending/index.js.map +1 -0
  558. package/dist/node_modules/d3-shape/src/identity/index.esm.js +7 -0
  559. package/dist/node_modules/d3-shape/src/identity/index.esm.js.map +1 -0
  560. package/dist/node_modules/d3-shape/src/identity/index.js +2 -0
  561. package/dist/node_modules/d3-shape/src/identity/index.js.map +1 -0
  562. package/dist/node_modules/d3-shape/src/math/index.esm.js +33 -0
  563. package/dist/node_modules/d3-shape/src/math/index.esm.js.map +1 -0
  564. package/dist/node_modules/d3-shape/src/math/index.js +2 -0
  565. package/dist/node_modules/d3-shape/src/math/index.js.map +1 -0
  566. package/dist/node_modules/d3-shape/src/pie/index.esm.js +56 -0
  567. package/dist/node_modules/d3-shape/src/pie/index.esm.js.map +1 -0
  568. package/dist/node_modules/d3-shape/src/pie/index.js +2 -0
  569. package/dist/node_modules/d3-shape/src/pie/index.js.map +1 -0
  570. package/dist/node_modules/prop-types/index/index.esm.js +1 -1
  571. package/dist/node_modules/prop-types/index/index.js +1 -1
  572. package/dist/node_modules/prop-types/index/index.js.map +1 -1
  573. package/dist/redux/hooks/index.esm.js +1 -1
  574. package/dist/src/components/charts/donut-chart/donut-chart.d.ts +1 -2
  575. package/dist/src/components/charts/index.d.ts +8 -0
  576. package/dist/src/components/confirm-modal/confirm-modal.d.ts +1 -2
  577. package/dist/src/components/confirm-modal/index.d.ts +1 -0
  578. package/dist/src/components/editor/custom-editor.d.ts +12 -8
  579. package/dist/src/components/grid/grid-card/grid-card.d.ts +10 -1
  580. package/dist/src/components/index.d.ts +228 -101
  581. package/dist/src/components/inventory-reports-title-bar/component/reportFilter.d.ts +3 -2
  582. package/dist/src/components/list/list.d.ts +2 -1
  583. package/dist/src/components/module-button/module-button.d.ts +10 -1
  584. package/dist/src/components/mulitline/multiline.d.ts +2 -2
  585. package/dist/src/components/page-navigator/page-navigator.d.ts +3 -3
  586. package/dist/src/components/parties-modal/parties-modal.d.ts +3 -3
  587. package/dist/src/components/rfq-response/item-response-details.d.ts +2 -1
  588. package/dist/src/components/tab-bar-ui/tab-bar-ui.d.ts +3 -3
  589. package/dist/src/components/tabs/tabs.d.ts +2 -2
  590. package/dist/src/hooks/use-translations.d.ts +2 -1
  591. package/dist/src/hooks/useCheckSkuAndName.d.ts +4 -2
  592. package/dist/src/layout/fullScreen/fullScreen.d.ts +5 -1
  593. package/dist/src/layout/sidebarScreen/sidebarScreen.d.ts +3 -3
  594. package/dist/src/views/afterAuth/dashboard/dashboard.d.ts +2 -1
  595. package/dist/src/views/form-builder/element-edit-forms/column-width.d.ts +5 -3
  596. package/dist/style.css +74 -68
  597. package/dist/utils/common/index.esm.js +1 -1
  598. package/dist/views/afterAuth/dashboard/dashboard/index.esm.js +5 -4
  599. package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
  600. package/dist/views/afterAuth/dashboard/dashboard/index.js +3 -3
  601. package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
  602. package/dist/views/afterAuth/dashboard/dashboard.d.ts +2 -1
  603. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  604. package/dist/views/form-builder/custom-form/index.js +5 -5
  605. package/dist/views/form-builder/custom-form/index.js.map +1 -1
  606. package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js +4 -3
  607. package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
  608. package/dist/views/form-builder/element-edit-forms/column-width/index.js +3 -3
  609. package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
  610. package/dist/views/form-builder/element-edit-forms/column-width.d.ts +5 -3
  611. package/dist/views/index.esm.js +56 -56
  612. package/dist/views/index.js +1 -1
  613. package/package.json +1 -1
  614. package/dist/components/examples/FlexibleReduxExample/index.esm.js +0 -154
  615. package/dist/components/examples/FlexibleReduxExample/index.esm.js.map +0 -1
  616. package/dist/components/examples/FlexibleReduxExample/index.js +0 -19
  617. package/dist/components/examples/FlexibleReduxExample/index.js.map +0 -1
  618. package/dist/components/footer/index.esm.js +0 -71
  619. package/dist/components/footer/index.esm.js.map +0 -1
  620. package/dist/components/footer/index.js +0 -7
  621. package/dist/components/footer/index.js.map +0 -1
  622. package/dist/components/header/header-enhanced/index.esm.js +0 -405
  623. package/dist/components/header/header-enhanced/index.esm.js.map +0 -1
  624. package/dist/components/header/header-enhanced/index.js +0 -33
  625. package/dist/components/header/header-enhanced/index.js.map +0 -1
  626. package/dist/components/header copy/index.esm.js +0 -131
  627. package/dist/components/header copy/index.esm.js.map +0 -1
  628. package/dist/components/header copy/index.js +0 -11
  629. package/dist/components/header copy/index.js.map +0 -1
  630. package/dist/components/inventory-reports-title-bar/component/reportFilter/index.esm.js +0 -400
  631. package/dist/components/inventory-reports-title-bar/component/reportFilter/index.esm.js.map +0 -1
  632. package/dist/components/inventory-reports-title-bar/component/reportFilter/index.js +0 -41
  633. package/dist/components/inventory-reports-title-bar/component/reportFilter/index.js.map +0 -1
  634. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +0 -288
  635. package/dist/components/share-modal/share-modal-enhanced/index.esm.js.map +0 -1
  636. package/dist/components/share-modal/share-modal-enhanced/index.js +0 -24
  637. package/dist/components/share-modal/share-modal-enhanced/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/form-builder/custom-form.tsx"],"sourcesContent":["// React imports\r\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\r\n\r\n// React Router imports\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\n\r\n// React Hook Form imports\r\nimport { useForm, useFieldArray } from \"react-hook-form\";\r\n\r\n// Material UI imports\r\nimport { Box, FormControlLabel, Grid, RadioGroup } from \"@mui/material\";\r\nimport { Add } from \"@mui/icons-material\";\r\n\r\n// Third-party imports\r\nimport { DndProvider } from \"react-dnd\";\r\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\r\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { enqueueSnackbar } from \"notistack\";\r\n\r\n// ERP Common imports\r\nimport DynamicSectionHOC from \"@/components/form-control/form-builder/form-builder-element/section\";\r\nimport Button from \"@/components/form-control/form-builder/form-builder-element/button\";\r\nimport TabBar from \"@/components/tabs/tabs\";\r\nimport images from \"@/assets/images\";\r\nimport { Pathname } from \"@/constants\";\r\nimport FormHeader from \"@/components/form-header/form-header\";\r\nimport Typography from \"@/components/typography/typography\";\r\nimport formBuilderConversion from \"@/utils/form-builder-conversion\";\r\nimport { useAppDispatch, useAppSelector } from \"@/redux/hooks\";\r\nimport { formatLabel } from \"@/utils/format-text\";\r\nimport Toast from \"@/components/toast/toast\";\r\nimport Radio from \"@/components/radio/radio\";\r\nimport { SECTION_TYPES } from \"@/utils/constant\";\r\nimport ErpLoader from \"@/components/loaders/erp-loader\";\r\nimport { getErrorMessage } from \"@/utils/common\";\r\nimport FormParser from \"@/components/form-control/form-parser/form-parser\";\r\nimport { Eye, EyeOff } from \"@/components/icons\";\r\n\r\n// Redux actions\r\nimport {\r\n patchFormDataById,\r\n getFormDataById,\r\n getFieldsByFormId,\r\n} from \"../form-builder/redux/actionCreator\";\r\n\r\n// Local imports\r\nimport {\r\n IProperty,\r\n ISectionProperty,\r\n ISelectProperty,\r\n element,\r\n} from \"./field_properties\";\r\nimport TextEditForm from \"./element-edit-forms/text\";\r\nimport SelectEditForm from \"./element-edit-forms/select\";\r\nimport SectionEditForm from \"./element-edit-forms/section\";\r\nimport CheckboxEditForm from \"./element-edit-forms/checkbox\";\r\nimport TableEditForm from \"./element-edit-forms/table-form\";\r\nimport FormFields from \"./form-fields\";\r\nimport { generateModulePath, useFormDataEffect } from \"./utils/common\";\r\nimport \"./custom-form.scss\";\r\n\r\nexport interface IElementJson extends IProperty {\r\n type: string;\r\n}\r\n\r\nconst FIELD_TYPES = {\r\n TEXT: 'text',\r\n NUMBER: 'number',\r\n EMAIL: 'email',\r\n PHONE: 'phone',\r\n SELECT: 'select',\r\n DATE: 'date',\r\n TIME: 'time',\r\n URL: 'url',\r\n CURRENCY: 'currency',\r\n FILE: 'file',\r\n GEO_LOCATION: 'geoLocation',\r\n IMAGE: 'image',\r\n SECTION: 'section',\r\n INFO: 'info',\r\n RELATION: 'relation',\r\n CHECKBOX: 'checkbox',\r\n TOGGLE_BUTTON: 'toggleButton',\r\n TAGS_INPUT: 'tagsInput'\r\n} as const;\r\n\r\nconst DEFAULT_GRID_COLUMNS = 12;\r\nconst DEFAULT_COLUMN_WIDTH = 2;\r\nconst DEFAULT_TAB_TITLE = 'data';\r\n\r\nconst isValidNumber = (value: any): boolean => !isNaN(Number(value)) && isFinite(Number(value));\r\nconst deepClone = (obj: T): T => JSON.parse(JSON.stringify(obj));\r\nconst generateUniqueId = (separator = ''): { uniqueStringId: string } => {\r\n return { uniqueStringId: `${Date.now()}${separator}${Math.random().toString(36).substr(2, 9)}` };\r\n};\r\n\r\n\r\nexport function CustomForm() {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const rowData = location.state ?? [];\r\n\r\n const formBuilder = useAppSelector((state) => state.formBuilder);\r\n\r\n const { control } = useForm({\r\n reValidateMode: \"onBlur\",\r\n });\r\n\r\n const {\r\n fields: members,\r\n append,\r\n remove,\r\n update,\r\n move,\r\n insert,\r\n } = useFieldArray({\r\n control,\r\n name: \"members\",\r\n });\r\n\r\n const {\r\n fields: section,\r\n append: appendSection,\r\n remove: removeSection,\r\n update: updateSection,\r\n } = useFieldArray({\r\n control,\r\n name: \"section\",\r\n });\r\n\r\n const [selectedHoc, setSelectedHoc] = useState(\"\");\r\n const [activeSection, setActiveSection] = useState<number>();\r\n const [activeMember, setActiveMember] = useState<number>();\r\n\r\n const [formJSON, setFormJSON] = useState<object[]>([]);\r\n const [elementJSON, setElementJSON] = useState<any>(null);\r\n const [positionEditedElement, setPositionEditedElement] = useState<\r\n number | undefined\r\n >();\r\n\r\n const [sectionFormJSON, setSectionFormJSON] = useState<object[]>([]);\r\n const [sectionJSON, setSectionJSON] = useState<any>({});\r\n const [sectionPositionEditedElement, setSectionPositionEditedElement] =\r\n useState<number | undefined>();\r\n const [removeSectionActionPerformed, setRemoveSectionActionPerformed] =\r\n useState(false);\r\n const [removeSectionMembersPerformed, setRemoveSectionMembersPerformed] =\r\n useState(false);\r\n const [removeSectionPosition, setRemoveSectionPosition] = useState<\r\n number | undefined\r\n >();\r\n const [initialLoading, setInitialLoading] = useState(true);\r\n const [tabsData, setTabsData] = useState<any[]>([]);\r\n const [activeTabValue, setActiveTabValue] = useState<number | undefined>(0);\r\n\r\n const [elementSwap, setElementSwap] = useState(false);\r\n const [modifyAccordion, setModifyAccordion] = useState(false);\r\n const [toast, setToast] = useState<IToast | null>(null);\r\n const [previewFieldsData, setPreviewFields] = useState<any>(null);\r\n const [_, setFormParserMethods] = useState<any>();\r\n\r\n let elementPerColumn: any;\r\n\r\n const currentModule = location.pathname.split('/')[2]\r\n\r\n const path = generateModulePath(currentModule)\r\n\r\n useFormDataEffect(\r\n formBuilder,\r\n tabsData,\r\n activeTabValue,\r\n {\r\n removeSection,\r\n remove,\r\n setTabsData,\r\n append,\r\n appendSection\r\n }\r\n );\r\n\r\n const pickPropertyEditForm = useCallback((type: string): React.ReactElement => {\r\n try {\r\n if (!type || typeof type !== 'string') {\r\n console.warn('Invalid field type provided to pickPropertyEditForm');\r\n return <div className=\"text-gray-500 p-4\">Select a field to edit</div>;\r\n }\r\n\r\n const normalizedType = type.toLowerCase().trim();\r\n\r\n // Define form type groups for better maintainability\r\n const formGroups = {\r\n text: [\r\n 'text', 'number', 'email', 'phone', 'date', 'time',\r\n 'url', 'currency', 'file', 'geolocation', 'image',\r\n 'relation', 'info', 'tagsinput'\r\n ],\r\n select: ['select'],\r\n section: ['section'],\r\n checkbox: ['checkbox', 'togglebutton', 'radiobutton'],\r\n table: ['table']\r\n };\r\n\r\n // Common props for reusability\r\n const commonTextProps = {\r\n element: elementJSON,\r\n handlePropertyValueUpdate,\r\n handleWidthChange,\r\n handleColumnSelect,\r\n fields: formBuilder?.fields || []\r\n };\r\n\r\n const commonSelectProps = {\r\n element: elementJSON,\r\n handlePropertyValueUpdate,\r\n handleSelectOptionValueUpdate,\r\n handleWidthChange,\r\n handleColumnSelect\r\n };\r\n\r\n // Determine form type and render appropriate component\r\n if (formGroups.text.includes(normalizedType)) {\r\n return (\r\n <TextEditForm\r\n {...commonTextProps}\r\n key={`text-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.select.includes(normalizedType)) {\r\n return (\r\n <SelectEditForm\r\n {...commonSelectProps}\r\n key={`select-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.section.includes(normalizedType)) {\r\n return (\r\n <SectionEditForm\r\n element={sectionJSON}\r\n handlePropertyValueUpdate={handleSectionPropertyValueUpdate}\r\n key={`section-form-${sectionJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.checkbox.includes(normalizedType)) {\r\n return (\r\n <CheckboxEditForm\r\n {...commonSelectProps}\r\n key={`checkbox-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.table.includes(normalizedType)) {\r\n return (\r\n <TableEditForm\r\n element={elementJSON}\r\n handlePropertyValueUpdate={handlePropertyValueUpdate}\r\n handleColumnsUpdate={handleColumnsUpdate}\r\n fields={formBuilder?.fields || []}\r\n key={`table-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n // Default fallback with helpful message\r\n console.warn(`Unknown field type: ${type}`);\r\n return (\r\n <div className=\"text-gray-500 p-4 border border-gray-200 rounded\">\r\n <p className=\"font-medium\">Unknown Field Type</p>\r\n <p className=\"text-sm mt-1\">\r\n Field type \"{type}\" is not supported. Please select a valid field to edit.\r\n </p>\r\n </div>\r\n );\r\n\r\n } catch (error) {\r\n console.error('Error in pickPropertyEditForm:', error);\r\n return (\r\n <div className=\"text-red-500 p-4 border border-red-200 rounded bg-red-50\">\r\n <p className=\"font-medium\">Error Loading Form</p>\r\n <p className=\"text-sm mt-1\">\r\n There was an error loading the property edit form. Please try again.\r\n </p>\r\n </div>\r\n );\r\n }\r\n }, [elementJSON, sectionJSON, formBuilder]);\r\n\r\n const addNewSection = useCallback((): void => {\r\n try {\r\n if (!element?.section) {\r\n console.error('Element section template is not available');\r\n return;\r\n }\r\n\r\n const { uniqueStringId: id } = generateUniqueId('-');\r\n const newSection: ISectionProperty = {\r\n ...deepClone(element.section),\r\n id: id,\r\n };\r\n\r\n // Update switcher forms with new ID if they exist\r\n if (newSection.switcher_forms) {\r\n newSection.switcher_forms = newSection.switcher_forms.map(form => ({\r\n ...form,\r\n id: generateUniqueId('-').uniqueStringId\r\n }));\r\n }\r\n\r\n const newSectionIndex = section.length;\r\n\r\n appendSection(newSection);\r\n setActiveSection(newSectionIndex);\r\n setSelectedHoc('section');\r\n\r\n const sectionData: ISectionProperty = {\r\n field_type: newSection.field_type,\r\n section_type: newSection.section_type,\r\n switcher_forms: newSection.switcher_forms,\r\n form_switcher_label: newSection.form_switcher_label,\r\n form_switcher_name: newSection.form_switcher_name,\r\n label: newSection.label,\r\n is_accordion: newSection.is_accordion,\r\n id: newSection.id ?? newSectionIndex,\r\n };\r\n\r\n setSectionJSON(sectionData);\r\n setSectionPositionEditedElement(newSectionIndex);\r\n pickPropertyEditForm(newSection.field_type);\r\n } catch (error) {\r\n console.error('Error adding new section:', error);\r\n }\r\n }, [element, section, appendSection, setActiveSection, setSelectedHoc, setSectionJSON, setSectionPositionEditedElement, pickPropertyEditForm]);\r\n\r\n /**\r\n * Enhanced handleAddTab with better validation and error handling\r\n */\r\n const handleAddTab = useCallback((): void => {\r\n try {\r\n const formWithMembers = deepClone(sectionFormJSON);\r\n\r\n // Populate sections with their members\r\n formWithMembers.forEach((section: ISectionProperty, sectionIndex: number) => {\r\n section.members = members.filter(\r\n (member: IProperty) => member?.section_order === sectionIndex\r\n );\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const shouldRemoveTab = !tabsData?.length && hasSystemMembers;\r\n\r\n const newTab: TabData = {\r\n tab_order: tabsData.length + 1,\r\n title: DEFAULT_TAB_TITLE,\r\n remove_tab: shouldRemoveTab,\r\n data: tabsData?.length ? [] : formWithMembers\r\n };\r\n\r\n setTabsData(prevTabs => [...prevTabs, newTab]);\r\n } catch (error) {\r\n console.error('Error adding new tab:', error);\r\n }\r\n }, [sectionFormJSON, members, tabsData, setTabsData]);\r\n\r\n const handleEditTabTitle = useCallback((tabId: number, newTitle: string): void => {\r\n try {\r\n if (!isValidNumber(tabId) || !newTitle?.trim()) {\r\n console.error('Invalid tab ID or title provided');\r\n return;\r\n }\r\n\r\n setTabsData(prevTabs =>\r\n prevTabs.map((tab: TabData) =>\r\n tab.tab_order === tabId ? { ...tab, title: newTitle.trim() } : tab\r\n )\r\n );\r\n } catch (error) {\r\n console.error('Error editing tab title:', error);\r\n }\r\n }, [setTabsData]);\r\n\r\n const handleRemoveTab = useCallback((id: number): void => {\r\n try {\r\n if (!isValidNumber(id)) {\r\n console.error('Invalid tab ID provided');\r\n return;\r\n }\r\n\r\n const filteredTabs = tabsData.filter((tab: TabData) => tab.tab_order !== id);\r\n\r\n // Reorder remaining tabs\r\n const reorderedTabs = filteredTabs.map((tab: TabData) => ({\r\n ...tab,\r\n tab_order: tab.tab_order > id ? tab.tab_order - 1 : tab.tab_order,\r\n }));\r\n\r\n setTabsData(reorderedTabs);\r\n if (activeTabValue == id) {\r\n setActiveTabValue(reorderedTabs?.length - 1)\r\n }\r\n\r\n if (reorderedTabs.length > 0) {\r\n const activeTab = reorderedTabs.find(\r\n (tab: TabData) => tab.tab_order === (activeTabValue ?? 0) + 1\r\n );\r\n\r\n if (activeTab?.data) {\r\n const sections = activeTab.data.map(\r\n ({ field_type, label, is_accordion, id, remove_section }) => ({\r\n field_type,\r\n label,\r\n is_accordion,\r\n id,\r\n remove_section,\r\n })\r\n );\r\n\r\n const membersList = activeTab.data.flatMap((section: ISectionProperty) =>\r\n section.members?.map((member: IProperty) => ({ ...member })) || []\r\n );\r\n\r\n // Clear current data and add new data\r\n remove();\r\n removeSection();\r\n membersList.forEach(member => append(member));\r\n sections.forEach(section => appendSection(section));\r\n }\r\n } else {\r\n // Clear all data if no tabs remain\r\n remove();\r\n removeSection();\r\n }\r\n } catch (error) {\r\n console.error('Error removing tab:', error);\r\n }\r\n }, [tabsData, activeTabValue, setTabsData, remove, removeSection, append, appendSection]);\r\n\r\n const handleElementSelection = useCallback((e: React.MouseEvent<HTMLElement>): void => {\r\n try {\r\n const target = e.target as HTMLElement;\r\n const elementPositionIndex = target.dataset.position;\r\n\r\n if (!elementPositionIndex || !isValidNumber(elementPositionIndex)) {\r\n console.error('Invalid element position index');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(elementPositionIndex);\r\n\r\n if (positionIndex < 0 || positionIndex >= formJSON.length) {\r\n console.error('Element position index out of bounds');\r\n return;\r\n }\r\n\r\n setActiveMember(positionIndex);\r\n\r\n const elementDetails = deepClone(formJSON[positionIndex]);\r\n setPositionEditedElement(positionIndex);\r\n setElementJSON(elementDetails);\r\n setSelectedHoc('element');\r\n } catch (error) {\r\n console.error('Error selecting element:', error);\r\n }\r\n }, [formJSON, setActiveMember, setPositionEditedElement, setElementJSON, setSelectedHoc]);\r\n\r\n const handleSectionSelection = useCallback((e: React.MouseEvent<HTMLElement>): void => {\r\n try {\r\n const target = e.target as HTMLElement;\r\n const sectionPositionIndex = target.dataset.position;\r\n\r\n if (!sectionPositionIndex || !isValidNumber(sectionPositionIndex)) {\r\n console.error('Invalid section position index');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(sectionPositionIndex);\r\n\r\n if (positionIndex < 0 || positionIndex >= sectionFormJSON.length) {\r\n console.error('Section position index out of bounds');\r\n return;\r\n }\r\n\r\n setActiveSection(positionIndex);\r\n\r\n const sectionDetails = deepClone(sectionFormJSON[positionIndex]);\r\n setSectionPositionEditedElement(positionIndex);\r\n setSectionJSON(sectionDetails);\r\n setSelectedHoc('section');\r\n } catch (error) {\r\n console.error('Error selecting section:', error);\r\n }\r\n }, [sectionFormJSON, setActiveSection, setSectionPositionEditedElement, setSectionJSON, setSelectedHoc]);\r\n\r\n const handleAddMember = useCallback((\r\n e: React.SyntheticEvent<HTMLElement>,\r\n otherProperties?: Record<string, any>\r\n ): void => {\r\n try {\r\n const target = e.currentTarget as HTMLElement;\r\n const sectionPositionIndex = target?.dataset?.position;\r\n\r\n if (sectionPositionIndex === undefined || !isValidNumber(sectionPositionIndex)) {\r\n console.error('Invalid section position index for adding member');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(sectionPositionIndex);\r\n\r\n if (positionIndex < 0) {\r\n console.error('Section position index cannot be negative');\r\n return;\r\n }\r\n\r\n if (!element?.text) {\r\n console.error('Element text template is not available');\r\n return;\r\n }\r\n\r\n const newMember: IProperty = {\r\n ...deepClone(element.text),\r\n ...otherProperties,\r\n section_order: positionIndex,\r\n type: 'custom',\r\n is_new: true,\r\n custom_width: Math.floor(DEFAULT_GRID_COLUMNS / DEFAULT_COLUMN_WIDTH),\r\n is_fullwidth: false,\r\n is_system_field: Boolean(otherProperties?.is_system_field),\r\n id: generateUniqueId().uniqueStringId,\r\n };\r\n\r\n setActiveSection(positionIndex);\r\n append(newMember);\r\n\r\n const elementPositionIndex = members.length;\r\n setActiveMember(elementPositionIndex);\r\n setSelectedHoc('element');\r\n setPositionEditedElement(elementPositionIndex);\r\n setElementJSON(newMember);\r\n pickPropertyEditForm(newMember.field_type);\r\n } catch (error) {\r\n console.error('Error adding new member:', error);\r\n }\r\n }, [element, members, setActiveSection, append, setActiveMember, setSelectedHoc, setPositionEditedElement, setElementJSON, pickPropertyEditForm]);\r\n\r\n\r\n const handleSectionPropertyValueUpdate = useCallback((\r\n e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>,\r\n overrideValue?: any\r\n ): void => {\r\n try {\r\n const { name, type, checked, value } = e.target;\r\n\r\n if (!name) {\r\n console.error('Property name is required for update');\r\n return;\r\n }\r\n\r\n const updatedValue = overrideValue !== undefined ? overrideValue : (type === 'checkbox' ? checked : value);\r\n\r\n // Only update if value actually changed\r\n if (sectionJSON[name] !== updatedValue) {\r\n setSectionJSON(prev => ({ ...prev, [name]: updatedValue }));\r\n }\r\n } catch (error) {\r\n console.error('Error updating section property:', error);\r\n }\r\n }, [sectionJSON, setSectionJSON]);\r\n\r\n const handleWidthChange = useCallback((newCustomWidth: number): void => {\r\n try {\r\n if (!isValidNumber(newCustomWidth) || newCustomWidth < 1 || newCustomWidth > DEFAULT_GRID_COLUMNS) {\r\n console.error('Invalid width value provided');\r\n return;\r\n }\r\n\r\n setElementJSON(prevData => ({\r\n ...prevData,\r\n custom_width: newCustomWidth,\r\n }));\r\n } catch (error) {\r\n console.error('Error updating width:', error);\r\n }\r\n }, [setElementJSON]);\r\n\r\n const handleColumnSelect = useCallback((e: React.ChangeEvent<HTMLSelectElement>): void => {\r\n try {\r\n const columnValue = Number(e.target.value);\r\n\r\n if (!isValidNumber(columnValue) || columnValue <= 0) {\r\n console.error('Invalid column value provided');\r\n return;\r\n }\r\n\r\n const elementPerColumn = Math.floor(DEFAULT_GRID_COLUMNS / columnValue);\r\n\r\n if (elementPerColumn <= 0) {\r\n console.error('Calculated element per column is invalid');\r\n return;\r\n }\r\n\r\n // Batch update all members\r\n members.forEach((field: IProperty, index: number) => {\r\n update(index, { ...field, custom_width: elementPerColumn });\r\n });\r\n } catch (error) {\r\n console.error('Error updating column selection:', error);\r\n }\r\n }, [members, update]);\r\n\r\n const handlePropertyValueUpdate = useCallback((\r\n e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>,\r\n numberValue?: number,\r\n val?: string,\r\n fieldType?: keyof typeof FIELD_TYPES\r\n ): void => {\r\n try {\r\n const getValue = (): any => {\r\n if (fieldType) return fieldType;\r\n if (val !== undefined) return val;\r\n if (numberValue !== undefined) return numberValue;\r\n return e?.target?.value;\r\n };\r\n\r\n const value = getValue();\r\n const elementJSONCopy = deepClone(elementJSON);\r\n\r\n if (e?.target?.name) {\r\n elementJSONCopy[e.target.name] = e.target.type === 'checkbox' ? e.target.checked : value;\r\n }\r\n // Only update if there's an actual change\r\n if (fieldType) {\r\n const { uniqueStringId: uniqueId } = generateUniqueId();\r\n const copyOfUpdatedElement: IProperty = {\r\n ...element[fieldType],\r\n section_form_id: elementJSONCopy?.section_form_id,\r\n is_form_switcher_section: elementJSONCopy?.is_form_switcher_section,\r\n section_order: elementJSONCopy.section_order,\r\n id: uniqueId,\r\n type: 'custom',\r\n is_system_field: Boolean(elementJSONCopy?.is_system_field),\r\n is_new: true,\r\n column_width: elementJSONCopy?.column_width || 6,\r\n custom_width: elementJSONCopy?.custom_width || 6\r\n };\r\n setElementJSON(copyOfUpdatedElement);\r\n } else if (JSON.stringify(elementJSON) !== JSON.stringify(elementJSONCopy)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy });\r\n }\r\n } catch (error) {\r\n console.error('Error updating property value:', error);\r\n }\r\n }, [elementJSON, element, setElementJSON]);\r\n\r\n const handleSelectOptionValueUpdate = useCallback((options: any[]): void => {\r\n try {\r\n if (!Array.isArray(options)) {\r\n console.error('Options must be an array');\r\n return;\r\n }\r\n\r\n const elementJSONCopy = deepClone(elementJSON);\r\n elementJSONCopy.options = [...options];\r\n const { uniqueStringId: uniqueId } = generateUniqueId('-');\r\n\r\n if (JSON.stringify(elementJSON.options) !== JSON.stringify(options)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy, id: uniqueId });\r\n }\r\n } catch (error) {\r\n console.error('Error updating select options:', error);\r\n }\r\n }, [elementJSON, setElementJSON]);\r\n\r\n const handleColumnsUpdate = useCallback((columns: MRT_ColumnDef<MRT_RowData>[]): void => {\r\n try {\r\n if (!Array.isArray(columns)) {\r\n console.error('Columns must be an array');\r\n return;\r\n }\r\n\r\n const elementJSONCopy = deepClone(elementJSON);\r\n elementJSONCopy.table_columns = [...columns];\r\n const { uniqueStringId: uniqueId } = generateUniqueId('-');\r\n\r\n if (JSON.stringify(elementJSON.table_columns) !== JSON.stringify(columns)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy, id: uniqueId });\r\n }\r\n } catch (error) {\r\n console.error('Error updating table columns:', error);\r\n }\r\n }, [elementJSON, setElementJSON]);\r\n\r\n const handleRemoveSection = useCallback((sectionIndex: number): void => {\r\n try {\r\n if (!isValidNumber(sectionIndex) || sectionIndex < 0 || sectionIndex >= section.length) {\r\n console.error('Invalid section index for removal');\r\n return;\r\n }\r\n\r\n setRemoveSectionPosition(sectionIndex);\r\n removeSection(sectionIndex);\r\n\r\n // Remove associated members in reverse order to maintain indices\r\n const membersToRemove: number[] = [];\r\n members.forEach((member: IProperty, index: number) => {\r\n if (member?.section_order === sectionIndex) {\r\n membersToRemove.push(index);\r\n }\r\n });\r\n\r\n // Remove members in reverse order to maintain correct indices\r\n membersToRemove.reverse().forEach(memberIndex => {\r\n remove(memberIndex);\r\n });\r\n\r\n setRemoveSectionActionPerformed(true);\r\n } catch (error) {\r\n console.error('Error removing section:', error);\r\n }\r\n }, [section, members, setRemoveSectionPosition, removeSection, remove, setRemoveSectionActionPerformed]);\r\n\r\n const handleMakeAccordion = useCallback((sectionIndex: number): void => {\r\n try {\r\n if (!isValidNumber(sectionIndex) || sectionIndex < 0 || sectionIndex >= section.length) {\r\n console.error('Invalid section index for accordion conversion');\r\n return;\r\n }\r\n\r\n setModifyAccordion(true);\r\n setSectionPositionEditedElement(sectionIndex);\r\n setActiveSection(sectionIndex);\r\n\r\n const copyOfSection: ISectionProperty = {\r\n ...deepClone(section[sectionIndex]),\r\n is_accordion: true\r\n };\r\n\r\n updateSection(sectionIndex, copyOfSection);\r\n setSelectedHoc('section');\r\n setSectionJSON(copyOfSection);\r\n pickPropertyEditForm(copyOfSection.field_type);\r\n } catch (error) {\r\n console.error('Error making section accordion:', error);\r\n }\r\n }, [section, setModifyAccordion, setSectionPositionEditedElement, setActiveSection, updateSection, setSelectedHoc, setSectionJSON, pickPropertyEditForm]);\r\n\r\n const handleTabData = useCallback((): void => {\r\n try {\r\n const formWithMembers = deepClone(sectionFormJSON);\r\n\r\n formWithMembers.forEach((section: ISectionProperty, sectionIndex: number) => {\r\n section.members = members.filter(\r\n (member: IProperty) => member?.section_order === sectionIndex\r\n );\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const activeTabIndex = Number(activeTabValue);\r\n if (isValidNumber(activeTabIndex) && activeTabIndex >= 0 && activeTabIndex < tabsData.length) {\r\n const updatedTabsData = [...tabsData];\r\n updatedTabsData[activeTabIndex] = {\r\n ...updatedTabsData[activeTabIndex],\r\n data: formWithMembers,\r\n remove_tab: hasSystemMembers,\r\n };\r\n setTabsData(updatedTabsData)\r\n remove();\r\n removeSection();\r\n setActiveMember(undefined);\r\n setSelectedHoc(\"\");\r\n setActiveSection(undefined);\r\n }\r\n } catch (error) {\r\n console.error('Error updating tab data:', error);\r\n }\r\n }, [sectionFormJSON, members, activeTabValue, tabsData, setTabsData]);\r\n\r\n // const handlePreview = () => {\r\n // const formWithMembers = JSON.parse(JSON.stringify(sectionFormJSON));\r\n\r\n // formWithMembers.forEach(\r\n // (section: ISectionProperty, sectionIndex: number) => {\r\n // section.members = members.filter(\r\n // (member: any) => member?.section_order === sectionIndex,\r\n // ) as (IProperty | ISelectProperty)[];\r\n // },\r\n // );\r\n // const state = tabsData?.length\r\n // ? { tab: tabsData }\r\n // : { section: formWithMembers };\r\n\r\n // const FormBuilderConversion = state && formBuilderConversion(state);\r\n\r\n // setPreviewFields(FormBuilderConversion);\r\n // };\r\n\r\n // Option 1: Using useMemo to memoize the expensive computation\r\n const formWithMembers = useMemo(() => {\r\n if (!sectionFormJSON || !members) return null;\r\n\r\n return sectionFormJSON.map((section: ISectionProperty, sectionIndex: number) => ({\r\n ...section,\r\n members: members.filter(\r\n (member: any) => member?.section_order === sectionIndex,\r\n ) as (IProperty | ISelectProperty)[]\r\n }));\r\n }, [sectionFormJSON, members]);\r\n\r\n const previewState = useMemo(() => {\r\n if (!formWithMembers) return null;\r\n\r\n return tabsData?.length\r\n ? { tab: tabsData }\r\n : { section: formWithMembers };\r\n }, [tabsData, formWithMembers]);\r\n\r\n const previewFields = useMemo(() => {\r\n if (!previewState) return null;\r\n return formBuilderConversion(previewState);\r\n }, [previewState]);\r\n\r\n\r\n // Option 2: Optimized handlePreview function using useCallback\r\n const showPreview = useCallback(() => {\r\n if (previewFields) {\r\n setPreviewFields(previewFields);\r\n }\r\n }, [previewFields, setPreviewFields]);\r\n const hidePreview = useCallback(() => {\r\n setPreviewFields(null);\r\n }, []);\r\n\r\n // Enhanced handleFormUpdate with proper error handling and validation\r\n const handleFormUpdate = useCallback(async (): void => {\r\n try {\r\n\r\n\r\n\r\n // Early validation checks\r\n if (!sectionFormJSON || !Array.isArray(sectionFormJSON)) {\r\n console.warn('Invalid sectionFormJSON provided');\r\n return;\r\n }\r\n\r\n if (!members || !Array.isArray(members)) {\r\n console.warn('Invalid members array provided');\r\n return;\r\n }\r\n\r\n if (!rowData?._id) {\r\n console.warn('Missing rowData._id for form update');\r\n return;\r\n }\r\n\r\n // Deep clone with proper error handling\r\n let formWithMembers: IEnhancedSectionProperty[];\r\n\r\n try {\r\n formWithMembers = structuredClone(sectionFormJSON);\r\n } catch (cloneError) {\r\n // Fallback to JSON method if structuredClone is not available\r\n formWithMembers = JSON.parse(JSON.stringify(sectionFormJSON));\r\n }\r\n\r\n // Enhanced member filtering with better type safety and validation\r\n formWithMembers.forEach((section: IEnhancedSectionProperty, sectionIndex: number) => {\r\n // Validate section object\r\n if (!section || typeof section !== 'object') {\r\n console.warn(`Invalid section at index ${sectionIndex}`);\r\n return;\r\n }\r\n\r\n // Filter members with proper type checking and validation\r\n section.members = members.filter((member: IMember) => {\r\n // Validate member object and section_order\r\n return (\r\n member &&\r\n typeof member === 'object' &&\r\n typeof member.section_order === 'number' &&\r\n member.section_order === sectionIndex\r\n );\r\n }) as (IProperty | ISelectProperty)[];\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const activeTabIndex = Number(activeTabValue);\r\n let updatedTabsData = [...tabsData];\r\n if (isValidNumber(activeTabIndex) && activeTabIndex >= 0 && activeTabIndex < tabsData.length) {\r\n updatedTabsData = [...tabsData];\r\n updatedTabsData[activeTabIndex] = {\r\n ...updatedTabsData[activeTabIndex],\r\n data: formWithMembers,\r\n remove_tab: hasSystemMembers,\r\n };\r\n\r\n setTabsData(updatedTabsData)\r\n }\r\n\r\n // Build state object with proper validation\r\n const state: IFormState = updatedTabsData?.length > 0\r\n ? { tab: updatedTabsData }\r\n : { section: formWithMembers };\r\n\r\n // Validate formBuilderConversion function exists\r\n if (typeof formBuilderConversion !== 'function') {\r\n console.error('formBuilderConversion is not a function');\r\n return;\r\n }\r\n\r\n // Execute conversion with error handling\r\n let formBuilderConversionResult: any;\r\n try {\r\n formBuilderConversionResult = formBuilderConversion(state);\r\n } catch (conversionError) {\r\n console.error('Error during form builder conversion:', conversionError);\r\n return;\r\n }\r\n\r\n // Validate conversion result\r\n if (!formBuilderConversionResult) {\r\n console.warn('Form builder conversion returned empty result');\r\n return;\r\n }\r\n\r\n // Validate elementPerColumn\r\n // if (typeof elementPerColumn !== 'number' || elementPerColumn <= 0) {\r\n\r\n // console.warn('Invalid elementPerColumn value');\r\n // return;\r\n // }\r\n\r\n // Prepare payload with validation\r\n const updatePayload: IFormUpdatePayload = {\r\n gridCol: elementPerColumn || 2,\r\n fields: formBuilderConversionResult\r\n };\r\n\r\n // Dispatch update action\r\n const updateRes = await dispatch(\r\n patchFormDataById({\r\n id: rowData._id,\r\n data: updatePayload\r\n })\r\n );\r\n if (updateRes.meta.requestStatus === 'rejected') {\r\n\r\n const m = getErrorMessage(updateRes?.error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n } else {\r\n enqueueSnackbar(\"Form updated successfully\", { variant: 'success' });\r\n navigate(path);\r\n }\r\n\r\n } catch (error) {\r\n const m = error?.message || 'Something went wrong while updating the form';\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }, [\r\n sectionFormJSON,\r\n members,\r\n tabsData,\r\n rowData?._id,\r\n elementPerColumn,\r\n dispatch,\r\n formBuilderConversion\r\n ]);\r\n\r\n const handleDuplicateElement = (index: number) => {\r\n const copyOfMember: any = { ...members[index], type: \"custom\" };\r\n copyOfMember && insert(index + 1, copyOfMember);\r\n setActiveMember(index + 1);\r\n setSelectedHoc(\"element\");\r\n setPositionEditedElement(index + 1);\r\n setElementJSON(copyOfMember);\r\n pickPropertyEditForm(copyOfMember.field_type);\r\n };\r\n\r\n const breadCrumbPath = [\r\n {\r\n link: path,\r\n label: \"Forms\",\r\n },\r\n {\r\n link: \"\",\r\n label: formatLabel(rowData?.name),\r\n },\r\n {\r\n link: \"\",\r\n label: \"Edit Form\",\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n if (removeSectionActionPerformed) {\r\n members.forEach((member: any, index: number) => {\r\n if (\r\n removeSectionPosition !== undefined &&\r\n Boolean(removeSectionPosition?.toString) &&\r\n member.section_order > removeSectionPosition\r\n ) {\r\n update(index, { ...member, section_order: member.section_order - 1 });\r\n }\r\n });\r\n setRemoveSectionActionPerformed(false);\r\n setRemoveSectionMembersPerformed(true);\r\n setRemoveSectionPosition(undefined);\r\n setSelectedHoc(\"\");\r\n }\r\n\r\n // eslint-disable-next-line\r\n }, [removeSectionActionPerformed]);\r\n\r\n useEffect(() => {\r\n formBuilder.isSuccess && navigate(path);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [formBuilder.isSuccess]);\r\n\r\n useEffect(() => {\r\n if (formBuilder.isError) {\r\n setToast({\r\n type: 'alert',\r\n message: formBuilder.error\r\n });\r\n }\r\n }, [formBuilder.error, formBuilder.isError]);\r\n\r\n useEffect(() => {\r\n if (\r\n typeof positionEditedElement !== \"number\" ||\r\n typeof positionEditedElement !== \"string\"\r\n ) {\r\n const index = Number(positionEditedElement);\r\n if (formJSON[index]) {\r\n const copyOfUpdatedFormJson = JSON.parse(\r\n JSON.stringify(formJSON[index]),\r\n );\r\n update(index, { ...copyOfUpdatedFormJson });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [formJSON]);\r\n\r\n useEffect(() => {\r\n const updatedFormJSON = formJSON.map((obj: any, index: number) => {\r\n if (index === Number(positionEditedElement)) {\r\n return { ...elementJSON };\r\n } else {\r\n return { ...obj };\r\n }\r\n });\r\n setFormJSON(updatedFormJSON);\r\n\r\n // eslint-disable-next-line\r\n }, [elementJSON]);\r\n\r\n useEffect(() => {\r\n if (members.length !== formJSON.length) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n }\r\n if (\r\n Boolean(elementSwap) &&\r\n JSON.stringify(members) !== JSON.stringify(formJSON)\r\n ) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n setElementSwap(false);\r\n const newMember: any =\r\n positionEditedElement && members[positionEditedElement];\r\n newMember && setSelectedHoc(\"element\");\r\n newMember && setElementJSON(newMember);\r\n newMember && pickPropertyEditForm(newMember.field_type);\r\n }\r\n if (\r\n removeSectionMembersPerformed &&\r\n JSON.stringify(members) !== JSON.stringify(formJSON)\r\n ) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n setRemoveSectionMembersPerformed(false);\r\n }\r\n // eslint-disable-next-line\r\n }, [members, elementSwap]);\r\n\r\n useEffect(() => {\r\n if (\r\n typeof sectionPositionEditedElement !== \"number\" ||\r\n typeof sectionPositionEditedElement !== \"string\"\r\n ) {\r\n const index = Number(sectionPositionEditedElement);\r\n if (sectionFormJSON[index]) {\r\n const copyOfUpdatedFormJson = JSON.parse(\r\n JSON.stringify(sectionFormJSON[index]),\r\n );\r\n updateSection(index, { ...copyOfUpdatedFormJson });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [sectionFormJSON]);\r\n\r\n useEffect(() => {\r\n const updatedFormJSON = sectionFormJSON.map((obj: any, index: number) => {\r\n if (index === Number(sectionPositionEditedElement)) {\r\n return { ...obj, ...sectionJSON };\r\n } else {\r\n return { ...obj };\r\n }\r\n });\r\n setSectionFormJSON(updatedFormJSON);\r\n // eslint-disable-next-line\r\n }, [sectionJSON]);\r\n\r\n useEffect(() => {\r\n if (section.length !== sectionFormJSON.length) {\r\n setSectionFormJSON(JSON.parse(JSON.stringify(section)));\r\n }\r\n if (\r\n JSON.stringify(sectionFormJSON) !== JSON.stringify(section) &&\r\n modifyAccordion\r\n ) {\r\n setSectionFormJSON(JSON.parse(JSON.stringify(section)));\r\n setModifyAccordion(false);\r\n }\r\n // eslint-disable-next-line\r\n }, [section]);\r\n\r\n useEffect(() => {\r\n () => setInitialLoading(true);\r\n }, [])\r\n\r\n const handleFormData = useCallback(async () => {\r\n setInitialLoading(true)\r\n try {\r\n if (rowData?._id) {\r\n setTabsData([])\r\n await dispatch(getFormDataById(rowData?._id));\r\n await dispatch(getFieldsByFormId({ id: rowData?._id }));\r\n\r\n }\r\n } finally {\r\n setInitialLoading(false);\r\n }\r\n\r\n }, [rowData?._id])\r\n\r\n useEffect(() => {\r\n handleFormData();\r\n }, [handleFormData]);\r\n\r\n type SelectedHoc = \"element\" | \"section\" | null;\r\n\r\n // Constants\r\n const DEFAULT_FIELD_TYPE = \"text\";\r\n const HOC_TYPES = {\r\n ELEMENT: \"element\",\r\n SECTION: \"section\"\r\n } as const;\r\n\r\n // Helper function to check if object has meaningful content\r\n const hasValidContent = (obj: Record<string, any>): boolean => {\r\n return obj && Object.keys(obj).length > 0;\r\n };\r\n\r\n const EmptyStateMessage = () => (\r\n <Typography type=\"s5\" color={\"theme.secondary.800\"} className=\"formSection--Text\">Select a field to edit its properties.</Typography>\r\n )\r\n\r\n // Helper function to get field type with fallback\r\n const getFieldTypeWithFallback = (\r\n json: ElementJSON | SectionJSON | null | undefined,\r\n fallback: string = DEFAULT_FIELD_TYPE\r\n ): string => {\r\n return json?.field_type || fallback;\r\n };\r\n\r\n const memoizedForm = useMemo(() => {\r\n // Early return for empty state\r\n if (!selectedHoc) {\r\n\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n // Handle element selection\r\n if (selectedHoc === HOC_TYPES.ELEMENT) {\r\n if (!hasValidContent(members)) {\r\n console.warn('Element selected but no members data available');\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n const fieldType = getFieldTypeWithFallback(elementJSON);\r\n return pickPropertyEditForm(fieldType);\r\n }\r\n\r\n // Handle section selection\r\n if (selectedHoc === HOC_TYPES.SECTION) {\r\n if (!hasValidContent(section)) {\r\n console.warn('Section selected but no section data available');\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n const fieldType = getFieldTypeWithFallback(sectionJSON);\r\n return pickPropertyEditForm(fieldType);\r\n }\r\n\r\n // Fallback for unknown selection type\r\n console.warn(`Unknown selectedHoc type: ${selectedHoc}`);\r\n return <EmptyStateMessage />;\r\n }, [\r\n // Core dependencies\r\n selectedHoc,\r\n\r\n // Data dependencies\r\n Object.keys(members).length,\r\n Object.keys(section).length,\r\n\r\n // JSON dependencies with deep comparison consideration\r\n elementJSON?.field_type,\r\n elementJSON?.field_properties,\r\n sectionJSON?.field_type,\r\n sectionJSON?.field_properties,\r\n\r\n // Function dependency\r\n pickPropertyEditForm\r\n ]);\r\n\r\n return (\r\n // <FullScreenLayout className=\"formSection--Layout\">\r\n <Box position='relative'>\r\n {initialLoading ? <ErpLoader /> :\r\n <DndProvider backend={HTML5Backend}>\r\n <FormHeader breadCrumbPath={breadCrumbPath}>\r\n <div className=\"formSection--Buttons\">\r\n <Button\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n text=\"Preview\"\r\n onClick={() => { !previewFieldsData ? showPreview() : hidePreview() }}\r\n disable={!members?.length}\r\n startIcon={previewFieldsData ? <EyeOff /> : <Eye />}\r\n />\r\n <Button\r\n variant=\"contained\"\r\n type=\"submit\"\r\n text=\"Update\"\r\n onClick={handleFormUpdate}\r\n disable={previewFieldsData}\r\n />\r\n </div>\r\n </FormHeader>\r\n {!previewFieldsData ?\r\n <Grid className=\"formSection--Grid\" container>\r\n <Grid\r\n item\r\n xs={9}\r\n component=\"form\"\r\n sx={{\r\n position: \"relative\",\r\n background: \"#F5F6F5\",\r\n padding: \"0.75rem\",\r\n }}\r\n >\r\n <Grid className=\"formSection--GridContainer\">\r\n <Box className=\"formSection--Tab\">\r\n {tabsData && (\r\n <TabBar\r\n tabs={tabsData}\r\n onEditTabTitle={handleEditTabTitle}\r\n activeValue={activeTabValue}\r\n setActiveValue={setActiveTabValue}\r\n handleTabChange={() => {\r\n handleTabData()\r\n }}\r\n handleRemoveTab={handleRemoveTab}\r\n containerProps={{ mb: 0 }}\r\n />\r\n )}\r\n <Button\r\n variant=\"outlined\"\r\n text=\"Add Tab\"\r\n onClick={handleAddTab}\r\n style={{ color: \"#292D32\", margin: \"0.5rem\" }}\r\n />\r\n </Box>\r\n <div className=\"formSection--Form\">\r\n {section?.map((item: any, i: number) => {\r\n const sectionMembers = members.filter(\r\n (member: any) => member.section_order === i,\r\n );\r\n const isFormSwitcher = item.section_type === SECTION_TYPES.FORM_SWITCH_SECTION\r\n const switchForms = item?.switcher_forms?.map((form: any) => ({\r\n ...form,\r\n formMembers: members.filter(\r\n (member: any) => member.section_form_id === form.id,\r\n )\r\n }))\r\n\r\n return (\r\n <DynamicSectionHOC\r\n index={i}\r\n label={t(item.label)}\r\n onClick={handleSectionSelection}\r\n position={i}\r\n fieldArrayName=\"section\"\r\n isFormSwitcher={isFormSwitcher}\r\n activeIndex={activeSection === i}\r\n removeSection={() => handleRemoveSection(i)}\r\n handleAccordion={() => handleMakeAccordion(i)}\r\n handleAddButton={(e) => handleAddMember(e)}\r\n remove_section={item.remove_section}\r\n >\r\n {isFormSwitcher ? (\r\n <div style={{ width: '100%' }} >\r\n <Typography type=\"s5\" style={{ fontWeight: 500 }} color={\"theme.secondary.800\"}>\r\n {item.form_switcher_label}\r\n </Typography>\r\n <RadioGroup\r\n aria-labelledby=\"theme-radio-buttons-group-label\"\r\n name={item.form_switcher_name || item.form_switcher_label}\r\n >\r\n\r\n {switchForms?.map(({ name, id, formMembers }: { name: string, id: number, formMembers: any }) => (\r\n <>\r\n <div>\r\n <FormControlLabel\r\n key={id}\r\n value={name}\r\n control={<Radio />}\r\n label={t(name)}\r\n disabled\r\n />\r\n </div>\r\n\r\n <Grid container sx={{ mb: 3 }}>\r\n <FormFields\r\n sectionMembers={formMembers || []}\r\n members={members}\r\n activeMember={activeMember}\r\n control={control}\r\n t={t}\r\n element={element}\r\n images={images}\r\n elementJSON={elementJSON}\r\n remove={remove}\r\n move={move}\r\n handleElementSelection={handleElementSelection}\r\n setElementSwap={setElementSwap}\r\n handleDuplicateElement={handleDuplicateElement}\r\n setSelectedHoc={setSelectedHoc}\r\n setActiveMember={setActiveMember}\r\n />\r\n </Grid>\r\n <Button\r\n text=\"Add\"\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n data-position={i}\r\n onClick={(e) => handleAddMember(e, {\r\n section_form_id: id,\r\n is_form_switcher_section: true\r\n })}\r\n startIcon={<Add />}\r\n />\r\n </>\r\n ))}\r\n </RadioGroup>\r\n </div>\r\n ) : null}\r\n {!isFormSwitcher &&\r\n <FormFields\r\n sectionMembers={sectionMembers || []}\r\n members={members}\r\n activeMember={activeMember}\r\n control={control}\r\n t={t}\r\n element={element}\r\n images={images}\r\n elementJSON={elementJSON}\r\n remove={remove}\r\n move={move}\r\n handleElementSelection={handleElementSelection}\r\n setElementSwap={setElementSwap}\r\n handleDuplicateElement={handleDuplicateElement}\r\n setSelectedHoc={setSelectedHoc}\r\n setActiveMember={setActiveMember}\r\n />\r\n }\r\n </DynamicSectionHOC>\r\n );\r\n })}\r\n <div className=\"formSection--Section\">\r\n <Button\r\n text=\"Add a section\"\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n onClick={addNewSection}\r\n startIcon={<Add />}\r\n />\r\n </div>\r\n </div>\r\n </Grid>\r\n\r\n </Grid>\r\n <Grid\r\n item\r\n xs={3}\r\n className={\r\n Boolean(selectedHoc) && (members?.length || section.length)\r\n ? \"formSection--RightGrid\"\r\n : \"formSection--RightGrid formSection--Text\"\r\n }\r\n >\r\n {memoizedForm}\r\n </Grid>\r\n </Grid>\r\n :\r\n <FormParser\r\n data={previewFieldsData || []}\r\n handleFormSubmit={(data) => console.log(\"Preview Data\", data)}\r\n className='form-container'\r\n fieldArrayName='form-builder-preview'\r\n getFormMethods={(methods: any) =>\r\n setFormParserMethods({ ...methods })\r\n }\r\n />\r\n }\r\n <Toast\r\n open={Boolean(toast)}\r\n type={toast?.type}\r\n message={toast?.message}\r\n handleClose={() => setToast(null)}\r\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\r\n />\r\n </DndProvider>}\r\n </Box>\r\n // </FullScreenLayout>\r\n );\r\n}\r\n\r\nexport default CustomForm;\r\n"],"names":["isValidNumber","value","isNaN","Number","isFinite","deepClone","obj","JSON","parse","stringify","generateUniqueId","separator","uniqueStringId","Date","now","Math","random","toString","substr","CustomForm","t","useTranslation","dispatch","useAppDispatch","navigate","useNavigate","location","useLocation","rowData","state","formBuilder","useAppSelector","control","useForm","reValidateMode","fields","members","append","remove","update","move","insert","useFieldArray","name","section","appendSection","removeSection","updateSection","selectedHoc","setSelectedHoc","useState","activeSection","setActiveSection","activeMember","setActiveMember","formJSON","setFormJSON","elementJSON","setElementJSON","positionEditedElement","setPositionEditedElement","sectionFormJSON","setSectionFormJSON","sectionJSON","setSectionJSON","sectionPositionEditedElement","setSectionPositionEditedElement","removeSectionActionPerformed","setRemoveSectionActionPerformed","removeSectionMembersPerformed","setRemoveSectionMembersPerformed","removeSectionPosition","setRemoveSectionPosition","initialLoading","setInitialLoading","tabsData","setTabsData","activeTabValue","setActiveTabValue","elementSwap","setElementSwap","modifyAccordion","setModifyAccordion","toast","setToast","previewFieldsData","setPreviewFields","_","setFormParserMethods","currentModule","pathname","split","path","generateModulePath","useFormDataEffect","pickPropertyEditForm","useCallback","type","jsx","className","children","normalizedType","toLowerCase","trim","formGroups","text","select","checkbox","table","commonTextProps","element","handlePropertyValueUpdate","handleWidthChange","handleColumnSelect","commonSelectProps","handleSelectOptionValueUpdate","includes","createElement","TextEditForm","key","id","SelectEditForm","SectionEditForm","handleSectionPropertyValueUpdate","CheckboxEditForm","TableEditForm","handleColumnsUpdate","jsxs","error","addNewSection","newSection","switcher_forms","map","form","newSectionIndex","length","sectionData","field_type","section_type","form_switcher_label","form_switcher_name","label","is_accordion","handleAddTab","formWithMembers","forEach","sectionIndex","filter","member","section_order","hasSystemMembers","some","Boolean","is_system_field","shouldRemoveTab","newTab","tab_order","title","remove_tab","data","prevTabs","handleEditTabTitle","tabId","newTitle","tab","handleRemoveTab","reorderedTabs","activeTab","find","sections","remove_section","membersList","flatMap","handleElementSelection","e","elementPositionIndex","target","dataset","position","positionIndex","elementDetails","handleSectionSelection","sectionPositionIndex","sectionDetails","handleAddMember","otherProperties","currentTarget","_a","newMember","is_new","custom_width","floor","DEFAULT_GRID_COLUMNS","is_fullwidth","overrideValue","checked","updatedValue","prev","newCustomWidth","prevData","columnValue","elementPerColumn","field","index","numberValue","val","fieldType","getValue","elementJSONCopy","uniqueId","copyOfUpdatedElement","section_form_id","is_form_switcher_section","column_width","options","Array","isArray","columns","table_columns","handleRemoveSection","membersToRemove","push","reverse","memberIndex","handleMakeAccordion","copyOfSection","handleTabData","activeTabIndex","updatedTabsData","useMemo","previewState","previewFields","formBuilderConversion","showPreview","hidePreview","handleFormUpdate","async","_id","structuredClone","cloneError","formBuilderConversionResult","conversionError","updatePayload","gridCol","updateRes","patchFormDataById","meta","requestStatus","m","getErrorMessage","message","enqueueSnackbar","variant","handleDuplicateElement","copyOfMember","breadCrumbPath","link","formatLabel","useEffect","isSuccess","isError","copyOfUpdatedFormJson","updatedFormJSON","handleFormData","getFormDataById","getFieldsByFormId","hasValidContent","Object","keys","EmptyStateMessage","Typography","color","getFieldTypeWithFallback","json","fallback","memoizedForm","field_properties","Box","ErpLoader","DndProvider","backend","HTML5Backend","FormHeader","Button","onClick","disable","startIcon","EyeOff","Eye","FormParser","handleFormSubmit","fieldArrayName","getFormMethods","methods","Grid","container","item","xs","component","sx","background","padding","TabBar","tabs","onEditTabTitle","activeValue","setActiveValue","handleTabChange","containerProps","mb","style","margin","i","sectionMembers","isFormSwitcher","SECTION_TYPES","FORM_SWITCH_SECTION","switchForms","formMembers","DynamicSectionHOC","activeIndex","handleAccordion","handleAddButton","width","fontWeight","RadioGroup","Fragment","FormControlLabel","Radio","disabled","FormFields","images","Add","Toast","open","handleClose","anchorOrigin","horizontal","vertical"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/form-builder/custom-form.tsx"],"sourcesContent":["// React imports\r\nimport { useState, useEffect, useMemo, useCallback } from \"react\";\r\n\r\n// React Router imports\r\nimport { useLocation, useNavigate } from \"react-router-dom\";\r\n\r\n// React Hook Form imports\r\nimport { useForm, useFieldArray } from \"react-hook-form\";\r\n\r\n// Material UI imports\r\nimport { Box, FormControlLabel, Grid, RadioGroup } from \"@mui/material\";\r\nimport { Add } from \"@mui/icons-material\";\r\n\r\n// Third-party imports\r\nimport { DndProvider } from \"react-dnd\";\r\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\r\nimport { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { enqueueSnackbar } from \"notistack\";\r\n\r\n// ERP Common imports\r\nimport DynamicSectionHOC from \"@/components/form-control/form-builder/form-builder-element/section\";\r\nimport Button from \"@/components/form-control/form-builder/form-builder-element/button\";\r\nimport TabBar from \"@/components/tabs/tabs\";\r\nimport images from \"@/assets/images\";\r\nimport { Pathname } from \"@/constants\";\r\nimport FormHeader from \"@/components/form-header/form-header\";\r\nimport Typography from \"@/components/typography/typography\";\r\nimport formBuilderConversion from \"@/utils/form-builder-conversion\";\r\nimport { useAppDispatch, useAppSelector } from \"@/redux/hooks\";\r\nimport { formatLabel } from \"@/utils/format-text\";\r\nimport Toast from \"@/components/toast/toast\";\r\nimport Radio from \"@/components/radio/radio\";\r\nimport { SECTION_TYPES } from \"@/utils/constant\";\r\nimport ErpLoader from \"@/components/loaders/erp-loader\";\r\nimport { getErrorMessage } from \"@/utils/common\";\r\nimport FormParser from \"@/components/form-control/form-parser/form-parser\";\r\nimport { Eye, EyeOff } from \"@/components/icons\";\r\n\r\n// Redux actions\r\nimport {\r\n patchFormDataById,\r\n getFormDataById,\r\n getFieldsByFormId,\r\n} from \"../form-builder/redux/actionCreator\";\r\n\r\n// Local imports\r\nimport {\r\n IProperty,\r\n ISectionProperty,\r\n ISelectProperty,\r\n element,\r\n} from \"./field_properties\";\r\nimport TextEditForm from \"./element-edit-forms/text\";\r\nimport SelectEditForm from \"./element-edit-forms/select\";\r\nimport SectionEditForm from \"./element-edit-forms/section\";\r\nimport CheckboxEditForm from \"./element-edit-forms/checkbox\";\r\nimport TableEditForm from \"./element-edit-forms/table-form\";\r\nimport FormFields from \"./form-fields\";\r\nimport { generateModulePath, useFormDataEffect } from \"./utils/common\";\r\nimport \"./custom-form.scss\";\r\n\r\nexport interface IElementJson extends IProperty {\r\n type: string;\r\n}\r\n\r\nconst FIELD_TYPES = {\r\n TEXT: 'text',\r\n NUMBER: 'number',\r\n EMAIL: 'email',\r\n PHONE: 'phone',\r\n SELECT: 'select',\r\n DATE: 'date',\r\n TIME: 'time',\r\n URL: 'url',\r\n CURRENCY: 'currency',\r\n FILE: 'file',\r\n GEO_LOCATION: 'geoLocation',\r\n IMAGE: 'image',\r\n SECTION: 'section',\r\n INFO: 'info',\r\n RELATION: 'relation',\r\n CHECKBOX: 'checkbox',\r\n TOGGLE_BUTTON: 'toggleButton',\r\n TAGS_INPUT: 'tagsInput'\r\n} as const;\r\n\r\nconst DEFAULT_GRID_COLUMNS = 12;\r\nconst DEFAULT_COLUMN_WIDTH = 2;\r\nconst DEFAULT_TAB_TITLE = 'data';\r\n\r\nconst isValidNumber = (value: any): boolean => !isNaN(Number(value)) && isFinite(Number(value));\r\nconst deepClone = (obj: T): T => JSON.parse(JSON.stringify(obj));\r\nconst generateUniqueId = (separator = ''): { uniqueStringId: string } => {\r\n return { uniqueStringId: `${Date.now()}${separator}${Math.random().toString(36).substr(2, 9)}` };\r\n};\r\n\r\n\r\nexport function CustomForm() {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const rowData = location.state ?? [];\r\n\r\n const formBuilder = useAppSelector((state) => state.formBuilder);\r\n\r\n const { control } = useForm({\r\n reValidateMode: \"onBlur\",\r\n });\r\n\r\n const {\r\n fields: members,\r\n append,\r\n remove,\r\n update,\r\n move,\r\n insert,\r\n } = useFieldArray({\r\n control,\r\n name: \"members\",\r\n });\r\n\r\n const {\r\n fields: section,\r\n append: appendSection,\r\n remove: removeSection,\r\n update: updateSection,\r\n } = useFieldArray({\r\n control,\r\n name: \"section\",\r\n });\r\n\r\n const [selectedHoc, setSelectedHoc] = useState(\"\");\r\n const [activeSection, setActiveSection] = useState<number>();\r\n const [activeMember, setActiveMember] = useState<number>();\r\n\r\n const [formJSON, setFormJSON] = useState<object[]>([]);\r\n const [elementJSON, setElementJSON] = useState<any>(null);\r\n const [positionEditedElement, setPositionEditedElement] = useState<\r\n number | undefined\r\n >();\r\n\r\n const [sectionFormJSON, setSectionFormJSON] = useState<object[]>([]);\r\n const [sectionJSON, setSectionJSON] = useState<any>({});\r\n const [sectionPositionEditedElement, setSectionPositionEditedElement] =\r\n useState<number | undefined>();\r\n const [removeSectionActionPerformed, setRemoveSectionActionPerformed] =\r\n useState(false);\r\n const [removeSectionMembersPerformed, setRemoveSectionMembersPerformed] =\r\n useState(false);\r\n const [removeSectionPosition, setRemoveSectionPosition] = useState<\r\n number | undefined\r\n >();\r\n const [initialLoading, setInitialLoading] = useState(true);\r\n const [tabsData, setTabsData] = useState<any[]>([]);\r\n const [activeTabValue, setActiveTabValue] = useState<number | undefined>(0);\r\n\r\n const [elementSwap, setElementSwap] = useState(false);\r\n const [modifyAccordion, setModifyAccordion] = useState(false);\r\n const [toast, setToast] = useState<IToast | null>(null);\r\n const [previewFieldsData, setPreviewFields] = useState<any>(null);\r\n const [_, setFormParserMethods] = useState<any>();\r\n\r\n let elementPerColumn: any;\r\n\r\n const currentModule = location.pathname.split('/')[2]\r\n\r\n const path = generateModulePath(currentModule)\r\n\r\n useFormDataEffect(\r\n formBuilder,\r\n tabsData,\r\n activeTabValue,\r\n {\r\n removeSection,\r\n remove,\r\n setTabsData,\r\n append,\r\n appendSection\r\n }\r\n );\r\n\r\n const pickPropertyEditForm = useCallback((type: string): React.ReactElement => {\r\n try {\r\n if (!type || typeof type !== 'string') {\r\n console.warn('Invalid field type provided to pickPropertyEditForm');\r\n return <div className=\"text-gray-500 p-4\">Select a field to edit</div>;\r\n }\r\n\r\n const normalizedType = type.toLowerCase().trim();\r\n\r\n // Define form type groups for better maintainability\r\n const formGroups = {\r\n text: [\r\n 'text', 'number', 'email', 'phone', 'date', 'time',\r\n 'url', 'currency', 'file', 'geolocation', 'image',\r\n 'relation', 'info', 'tagsinput'\r\n ],\r\n select: ['select'],\r\n section: ['section'],\r\n checkbox: ['checkbox', 'togglebutton', 'radiobutton'],\r\n table: ['table']\r\n };\r\n\r\n // Common props for reusability\r\n const commonTextProps = {\r\n element: elementJSON,\r\n handlePropertyValueUpdate,\r\n handleWidthChange,\r\n handleColumnSelect,\r\n fields: formBuilder?.fields || []\r\n };\r\n\r\n const commonSelectProps = {\r\n element: elementJSON,\r\n handlePropertyValueUpdate,\r\n handleSelectOptionValueUpdate,\r\n handleWidthChange,\r\n handleColumnSelect\r\n };\r\n\r\n // Determine form type and render appropriate component\r\n if (formGroups.text.includes(normalizedType)) {\r\n return (\r\n <TextEditForm\r\n {...commonTextProps}\r\n key={`text-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.select.includes(normalizedType)) {\r\n return (\r\n <SelectEditForm\r\n {...commonSelectProps}\r\n key={`select-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.section.includes(normalizedType)) {\r\n return (\r\n <SectionEditForm\r\n element={sectionJSON}\r\n handlePropertyValueUpdate={handleSectionPropertyValueUpdate}\r\n key={`section-form-${sectionJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.checkbox.includes(normalizedType)) {\r\n return (\r\n <CheckboxEditForm\r\n {...commonSelectProps}\r\n key={`checkbox-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n if (formGroups.table.includes(normalizedType)) {\r\n return (\r\n <TableEditForm\r\n element={elementJSON}\r\n handlePropertyValueUpdate={handlePropertyValueUpdate}\r\n handleColumnsUpdate={handleColumnsUpdate}\r\n fields={formBuilder?.fields || []}\r\n key={`table-form-${elementJSON?.id || 'default'}`}\r\n />\r\n );\r\n }\r\n\r\n // Default fallback with helpful message\r\n console.warn(`Unknown field type: ${type}`);\r\n return (\r\n <div className=\"text-gray-500 p-4 border border-gray-200 rounded\">\r\n <p className=\"font-medium\">Unknown Field Type</p>\r\n <p className=\"text-sm mt-1\">\r\n Field type \"{type}\" is not supported. Please select a valid field to edit.\r\n </p>\r\n </div>\r\n );\r\n\r\n } catch (error) {\r\n console.error('Error in pickPropertyEditForm:', error);\r\n return (\r\n <div className=\"text-red-500 p-4 border border-red-200 rounded bg-red-50\">\r\n <p className=\"font-medium\">Error Loading Form</p>\r\n <p className=\"text-sm mt-1\">\r\n There was an error loading the property edit form. Please try again.\r\n </p>\r\n </div>\r\n );\r\n }\r\n }, [elementJSON, sectionJSON, formBuilder]);\r\n\r\n const addNewSection = useCallback((): void => {\r\n try {\r\n if (!element?.section) {\r\n console.error('Element section template is not available');\r\n return;\r\n }\r\n\r\n const { uniqueStringId: id } = generateUniqueId('-');\r\n const newSection: ISectionProperty = {\r\n ...deepClone(element.section),\r\n id: id,\r\n };\r\n\r\n // Update switcher forms with new ID if they exist\r\n if (newSection.switcher_forms) {\r\n newSection.switcher_forms = newSection.switcher_forms.map(form => ({\r\n ...form,\r\n id: generateUniqueId('-').uniqueStringId\r\n }));\r\n }\r\n\r\n const newSectionIndex = section.length;\r\n\r\n appendSection(newSection);\r\n setActiveSection(newSectionIndex);\r\n setSelectedHoc('section');\r\n\r\n const sectionData: ISectionProperty = {\r\n field_type: newSection.field_type,\r\n section_type: newSection.section_type,\r\n switcher_forms: newSection.switcher_forms,\r\n form_switcher_label: newSection.form_switcher_label,\r\n form_switcher_name: newSection.form_switcher_name,\r\n label: newSection.label,\r\n is_accordion: newSection.is_accordion,\r\n id: newSection.id ?? newSectionIndex,\r\n };\r\n\r\n setSectionJSON(sectionData);\r\n setSectionPositionEditedElement(newSectionIndex);\r\n pickPropertyEditForm(newSection.field_type);\r\n } catch (error) {\r\n console.error('Error adding new section:', error);\r\n }\r\n }, [element, section, appendSection, setActiveSection, setSelectedHoc, setSectionJSON, setSectionPositionEditedElement, pickPropertyEditForm]);\r\n\r\n /**\r\n * Enhanced handleAddTab with better validation and error handling\r\n */\r\n const handleAddTab = useCallback((): void => {\r\n try {\r\n const formWithMembers = deepClone(sectionFormJSON);\r\n\r\n // Populate sections with their members\r\n formWithMembers.forEach((section: ISectionProperty, sectionIndex: number) => {\r\n section.members = members.filter(\r\n (member: IProperty) => member?.section_order === sectionIndex\r\n );\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const shouldRemoveTab = !tabsData?.length && hasSystemMembers;\r\n\r\n const newTab: TabData = {\r\n tab_order: tabsData.length + 1,\r\n title: DEFAULT_TAB_TITLE,\r\n remove_tab: shouldRemoveTab,\r\n data: tabsData?.length ? [] : formWithMembers\r\n };\r\n\r\n setTabsData(prevTabs => [...prevTabs, newTab]);\r\n } catch (error) {\r\n console.error('Error adding new tab:', error);\r\n }\r\n }, [sectionFormJSON, members, tabsData, setTabsData]);\r\n\r\n const handleEditTabTitle = useCallback((tabId: number, newTitle: string): void => {\r\n try {\r\n if (!isValidNumber(tabId) || !newTitle?.trim()) {\r\n console.error('Invalid tab ID or title provided');\r\n return;\r\n }\r\n\r\n setTabsData(prevTabs =>\r\n prevTabs.map((tab: TabData) =>\r\n tab.tab_order === tabId ? { ...tab, title: newTitle.trim() } : tab\r\n )\r\n );\r\n } catch (error) {\r\n console.error('Error editing tab title:', error);\r\n }\r\n }, [setTabsData]);\r\n\r\n const handleRemoveTab = useCallback((id: number): void => {\r\n try {\r\n if (!isValidNumber(id)) {\r\n console.error('Invalid tab ID provided');\r\n return;\r\n }\r\n\r\n const filteredTabs = tabsData.filter((tab: TabData) => tab.tab_order !== id);\r\n\r\n // Reorder remaining tabs\r\n const reorderedTabs = filteredTabs.map((tab: TabData) => ({\r\n ...tab,\r\n tab_order: tab.tab_order > id ? tab.tab_order - 1 : tab.tab_order,\r\n }));\r\n\r\n setTabsData(reorderedTabs);\r\n if (activeTabValue == id) {\r\n setActiveTabValue(reorderedTabs?.length - 1)\r\n }\r\n\r\n if (reorderedTabs.length > 0) {\r\n const activeTab = reorderedTabs.find(\r\n (tab: TabData) => tab.tab_order === (activeTabValue ?? 0) + 1\r\n );\r\n\r\n if (activeTab?.data) {\r\n const sections = activeTab.data.map(\r\n ({ field_type, label, is_accordion, id, remove_section }) => ({\r\n field_type,\r\n label,\r\n is_accordion,\r\n id,\r\n remove_section,\r\n })\r\n );\r\n\r\n const membersList = activeTab.data.flatMap((section: ISectionProperty) =>\r\n section.members?.map((member: IProperty) => ({ ...member })) || []\r\n );\r\n\r\n // Clear current data and add new data\r\n remove();\r\n removeSection();\r\n membersList.forEach(member => append(member));\r\n sections.forEach(section => appendSection(section));\r\n }\r\n } else {\r\n // Clear all data if no tabs remain\r\n remove();\r\n removeSection();\r\n }\r\n } catch (error) {\r\n console.error('Error removing tab:', error);\r\n }\r\n }, [tabsData, activeTabValue, setTabsData, remove, removeSection, append, appendSection]);\r\n\r\n const handleElementSelection = useCallback((e: React.MouseEvent<HTMLElement>): void => {\r\n try {\r\n const target = e.target as HTMLElement;\r\n const elementPositionIndex = target.dataset.position;\r\n\r\n if (!elementPositionIndex || !isValidNumber(elementPositionIndex)) {\r\n console.error('Invalid element position index');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(elementPositionIndex);\r\n\r\n if (positionIndex < 0 || positionIndex >= formJSON.length) {\r\n console.error('Element position index out of bounds');\r\n return;\r\n }\r\n\r\n setActiveMember(positionIndex);\r\n\r\n const elementDetails = deepClone(formJSON[positionIndex]);\r\n setPositionEditedElement(positionIndex);\r\n setElementJSON(elementDetails);\r\n setSelectedHoc('element');\r\n } catch (error) {\r\n console.error('Error selecting element:', error);\r\n }\r\n }, [formJSON, setActiveMember, setPositionEditedElement, setElementJSON, setSelectedHoc]);\r\n\r\n const handleSectionSelection = useCallback((e: React.MouseEvent<HTMLElement>): void => {\r\n try {\r\n const target = e.target as HTMLElement;\r\n const sectionPositionIndex = target.dataset.position;\r\n\r\n if (!sectionPositionIndex || !isValidNumber(sectionPositionIndex)) {\r\n console.error('Invalid section position index');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(sectionPositionIndex);\r\n\r\n if (positionIndex < 0 || positionIndex >= sectionFormJSON.length) {\r\n console.error('Section position index out of bounds');\r\n return;\r\n }\r\n\r\n setActiveSection(positionIndex);\r\n\r\n const sectionDetails = deepClone(sectionFormJSON[positionIndex]);\r\n setSectionPositionEditedElement(positionIndex);\r\n setSectionJSON(sectionDetails);\r\n setSelectedHoc('section');\r\n } catch (error) {\r\n console.error('Error selecting section:', error);\r\n }\r\n }, [sectionFormJSON, setActiveSection, setSectionPositionEditedElement, setSectionJSON, setSelectedHoc]);\r\n\r\n const handleAddMember = useCallback((\r\n e: React.SyntheticEvent<HTMLElement>,\r\n otherProperties?: Record<string, any>\r\n ): void => {\r\n try {\r\n const target = e.currentTarget as HTMLElement;\r\n const sectionPositionIndex = target?.dataset?.position;\r\n\r\n if (sectionPositionIndex === undefined || !isValidNumber(sectionPositionIndex)) {\r\n console.error('Invalid section position index for adding member');\r\n return;\r\n }\r\n\r\n const positionIndex = Number(sectionPositionIndex);\r\n\r\n if (positionIndex < 0) {\r\n console.error('Section position index cannot be negative');\r\n return;\r\n }\r\n\r\n if (!element?.text) {\r\n console.error('Element text template is not available');\r\n return;\r\n }\r\n\r\n const newMember: IProperty = {\r\n ...deepClone(element.text),\r\n ...otherProperties,\r\n section_order: positionIndex,\r\n type: 'custom',\r\n is_new: true,\r\n custom_width: Math.floor(DEFAULT_GRID_COLUMNS / DEFAULT_COLUMN_WIDTH),\r\n is_fullwidth: false,\r\n is_system_field: Boolean(otherProperties?.is_system_field),\r\n id: generateUniqueId().uniqueStringId,\r\n };\r\n\r\n setActiveSection(positionIndex);\r\n append(newMember);\r\n\r\n const elementPositionIndex = members.length;\r\n setActiveMember(elementPositionIndex);\r\n setSelectedHoc('element');\r\n setPositionEditedElement(elementPositionIndex);\r\n setElementJSON(newMember);\r\n pickPropertyEditForm(newMember.field_type);\r\n } catch (error) {\r\n console.error('Error adding new member:', error);\r\n }\r\n }, [element, members, setActiveSection, append, setActiveMember, setSelectedHoc, setPositionEditedElement, setElementJSON, pickPropertyEditForm]);\r\n\r\n\r\n const handleSectionPropertyValueUpdate = useCallback((\r\n e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>,\r\n overrideValue?: any\r\n ): void => {\r\n try {\r\n const { name, type, checked, value } = e.target;\r\n\r\n if (!name) {\r\n console.error('Property name is required for update');\r\n return;\r\n }\r\n\r\n const updatedValue = overrideValue !== undefined ? overrideValue : (type === 'checkbox' ? checked : value);\r\n\r\n // Only update if value actually changed\r\n if (sectionJSON[name] !== updatedValue) {\r\n setSectionJSON(prev => ({ ...prev, [name]: updatedValue }));\r\n }\r\n } catch (error) {\r\n console.error('Error updating section property:', error);\r\n }\r\n }, [sectionJSON, setSectionJSON]);\r\n\r\n const handleWidthChange = useCallback((newCustomWidth: number): void => {\r\n try {\r\n if (!isValidNumber(newCustomWidth) || newCustomWidth < 1 || newCustomWidth > DEFAULT_GRID_COLUMNS) {\r\n console.error('Invalid width value provided');\r\n return;\r\n }\r\n\r\n setElementJSON(prevData => ({\r\n ...prevData,\r\n custom_width: newCustomWidth,\r\n }));\r\n } catch (error) {\r\n console.error('Error updating width:', error);\r\n }\r\n }, [setElementJSON]);\r\n\r\n const handleColumnSelect = useCallback((e: React.ChangeEvent<HTMLSelectElement>): void => {\r\n try {\r\n const columnValue = Number(e.target.value);\r\n\r\n if (!isValidNumber(columnValue) || columnValue <= 0) {\r\n console.error('Invalid column value provided');\r\n return;\r\n }\r\n\r\n const elementPerColumn = Math.floor(DEFAULT_GRID_COLUMNS / columnValue);\r\n\r\n if (elementPerColumn <= 0) {\r\n console.error('Calculated element per column is invalid');\r\n return;\r\n }\r\n\r\n // Batch update all members\r\n members.forEach((field: IProperty, index: number) => {\r\n update(index, { ...field, custom_width: elementPerColumn });\r\n });\r\n } catch (error) {\r\n console.error('Error updating column selection:', error);\r\n }\r\n }, [members, update]);\r\n\r\n const handlePropertyValueUpdate = useCallback((\r\n e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>,\r\n numberValue?: number,\r\n val?: string,\r\n fieldType?: keyof typeof FIELD_TYPES\r\n ): void => {\r\n try {\r\n const getValue = (): any => {\r\n if (fieldType) return fieldType;\r\n if (val !== undefined) return val;\r\n if (numberValue !== undefined) return numberValue;\r\n return e?.target?.value;\r\n };\r\n\r\n const value = getValue();\r\n const elementJSONCopy = deepClone(elementJSON);\r\n\r\n if (e?.target?.name) {\r\n elementJSONCopy[e.target.name] = e.target.type === 'checkbox' ? e.target.checked : value;\r\n }\r\n // Only update if there's an actual change\r\n if (fieldType) {\r\n const { uniqueStringId: uniqueId } = generateUniqueId();\r\n const copyOfUpdatedElement: IProperty = {\r\n ...element[fieldType],\r\n section_form_id: elementJSONCopy?.section_form_id,\r\n is_form_switcher_section: elementJSONCopy?.is_form_switcher_section,\r\n section_order: elementJSONCopy.section_order,\r\n id: uniqueId,\r\n type: 'custom',\r\n is_system_field: Boolean(elementJSONCopy?.is_system_field),\r\n is_new: true,\r\n column_width: elementJSONCopy?.column_width || 6,\r\n custom_width: elementJSONCopy?.custom_width || 6\r\n };\r\n setElementJSON(copyOfUpdatedElement);\r\n } else if (JSON.stringify(elementJSON) !== JSON.stringify(elementJSONCopy)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy });\r\n }\r\n } catch (error) {\r\n console.error('Error updating property value:', error);\r\n }\r\n }, [elementJSON, element, setElementJSON]);\r\n\r\n const handleSelectOptionValueUpdate = useCallback((options: any[]): void => {\r\n try {\r\n if (!Array.isArray(options)) {\r\n console.error('Options must be an array');\r\n return;\r\n }\r\n\r\n const elementJSONCopy = deepClone(elementJSON);\r\n elementJSONCopy.options = [...options];\r\n const { uniqueStringId: uniqueId } = generateUniqueId('-');\r\n\r\n if (JSON.stringify(elementJSON.options) !== JSON.stringify(options)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy, id: uniqueId });\r\n }\r\n } catch (error) {\r\n console.error('Error updating select options:', error);\r\n }\r\n }, [elementJSON, setElementJSON]);\r\n\r\n const handleColumnsUpdate = useCallback((columns: MRT_ColumnDef<MRT_RowData>[]): void => {\r\n try {\r\n if (!Array.isArray(columns)) {\r\n console.error('Columns must be an array');\r\n return;\r\n }\r\n\r\n const elementJSONCopy = deepClone(elementJSON);\r\n elementJSONCopy.table_columns = [...columns];\r\n const { uniqueStringId: uniqueId } = generateUniqueId('-');\r\n\r\n if (JSON.stringify(elementJSON.table_columns) !== JSON.stringify(columns)) {\r\n setElementJSON({ ...elementJSON, ...elementJSONCopy, id: uniqueId });\r\n }\r\n } catch (error) {\r\n console.error('Error updating table columns:', error);\r\n }\r\n }, [elementJSON, setElementJSON]);\r\n\r\n const handleRemoveSection = useCallback((sectionIndex: number): void => {\r\n try {\r\n if (!isValidNumber(sectionIndex) || sectionIndex < 0 || sectionIndex >= section.length) {\r\n console.error('Invalid section index for removal');\r\n return;\r\n }\r\n\r\n setRemoveSectionPosition(sectionIndex);\r\n removeSection(sectionIndex);\r\n\r\n // Remove associated members in reverse order to maintain indices\r\n const membersToRemove: number[] = [];\r\n members.forEach((member: IProperty, index: number) => {\r\n if (member?.section_order === sectionIndex) {\r\n membersToRemove.push(index);\r\n }\r\n });\r\n\r\n // Remove members in reverse order to maintain correct indices\r\n membersToRemove.reverse().forEach(memberIndex => {\r\n remove(memberIndex);\r\n });\r\n\r\n setRemoveSectionActionPerformed(true);\r\n } catch (error) {\r\n console.error('Error removing section:', error);\r\n }\r\n }, [section, members, setRemoveSectionPosition, removeSection, remove, setRemoveSectionActionPerformed]);\r\n\r\n const handleMakeAccordion = useCallback((sectionIndex: number): void => {\r\n try {\r\n if (!isValidNumber(sectionIndex) || sectionIndex < 0 || sectionIndex >= section.length) {\r\n console.error('Invalid section index for accordion conversion');\r\n return;\r\n }\r\n\r\n setModifyAccordion(true);\r\n setSectionPositionEditedElement(sectionIndex);\r\n setActiveSection(sectionIndex);\r\n\r\n const copyOfSection: ISectionProperty = {\r\n ...deepClone(section[sectionIndex]),\r\n is_accordion: true\r\n };\r\n\r\n updateSection(sectionIndex, copyOfSection);\r\n setSelectedHoc('section');\r\n setSectionJSON(copyOfSection);\r\n pickPropertyEditForm(copyOfSection.field_type);\r\n } catch (error) {\r\n console.error('Error making section accordion:', error);\r\n }\r\n }, [section, setModifyAccordion, setSectionPositionEditedElement, setActiveSection, updateSection, setSelectedHoc, setSectionJSON, pickPropertyEditForm]);\r\n\r\n const handleTabData = useCallback((): void => {\r\n try {\r\n const formWithMembers = deepClone(sectionFormJSON);\r\n\r\n formWithMembers.forEach((section: ISectionProperty, sectionIndex: number) => {\r\n section.members = members.filter(\r\n (member: IProperty) => member?.section_order === sectionIndex\r\n );\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const activeTabIndex = Number(activeTabValue);\r\n if (isValidNumber(activeTabIndex) && activeTabIndex >= 0 && activeTabIndex < tabsData.length) {\r\n const updatedTabsData = [...tabsData];\r\n updatedTabsData[activeTabIndex] = {\r\n ...updatedTabsData[activeTabIndex],\r\n data: formWithMembers,\r\n remove_tab: hasSystemMembers,\r\n };\r\n setTabsData(updatedTabsData)\r\n remove();\r\n removeSection();\r\n setActiveMember(undefined);\r\n setSelectedHoc(\"\");\r\n setActiveSection(undefined);\r\n }\r\n } catch (error) {\r\n console.error('Error updating tab data:', error);\r\n }\r\n }, [sectionFormJSON, members, activeTabValue, tabsData, setTabsData]);\r\n\r\n // const handlePreview = () => {\r\n // const formWithMembers = JSON.parse(JSON.stringify(sectionFormJSON));\r\n\r\n // formWithMembers.forEach(\r\n // (section: ISectionProperty, sectionIndex: number) => {\r\n // section.members = members.filter(\r\n // (member: any) => member?.section_order === sectionIndex,\r\n // ) as (IProperty | ISelectProperty)[];\r\n // },\r\n // );\r\n // const state = tabsData?.length\r\n // ? { tab: tabsData }\r\n // : { section: formWithMembers };\r\n\r\n // const FormBuilderConversion = state && formBuilderConversion(state);\r\n\r\n // setPreviewFields(FormBuilderConversion);\r\n // };\r\n\r\n // Option 1: Using useMemo to memoize the expensive computation\r\n const formWithMembers = useMemo(() => {\r\n if (!sectionFormJSON || !members) return null;\r\n\r\n return sectionFormJSON.map((section: ISectionProperty, sectionIndex: number) => ({\r\n ...section,\r\n members: members.filter(\r\n (member: any) => member?.section_order === sectionIndex,\r\n ) as (IProperty | ISelectProperty)[]\r\n }));\r\n }, [sectionFormJSON, members]);\r\n\r\n const previewState = useMemo(() => {\r\n if (!formWithMembers) return null;\r\n\r\n return tabsData?.length\r\n ? { tab: tabsData }\r\n : { section: formWithMembers };\r\n }, [tabsData, formWithMembers]);\r\n\r\n const previewFields = useMemo(() => {\r\n if (!previewState) return null;\r\n return formBuilderConversion(previewState);\r\n }, [previewState]);\r\n\r\n\r\n // Option 2: Optimized handlePreview function using useCallback\r\n const showPreview = useCallback(() => {\r\n if (previewFields) {\r\n setPreviewFields(previewFields);\r\n }\r\n }, [previewFields, setPreviewFields]);\r\n const hidePreview = useCallback(() => {\r\n setPreviewFields(null);\r\n }, []);\r\n\r\n // Enhanced handleFormUpdate with proper error handling and validation\r\n const handleFormUpdate = useCallback(async (): void => {\r\n try {\r\n\r\n\r\n\r\n // Early validation checks\r\n if (!sectionFormJSON || !Array.isArray(sectionFormJSON)) {\r\n console.warn('Invalid sectionFormJSON provided');\r\n return;\r\n }\r\n\r\n if (!members || !Array.isArray(members)) {\r\n console.warn('Invalid members array provided');\r\n return;\r\n }\r\n\r\n if (!rowData?._id) {\r\n console.warn('Missing rowData._id for form update');\r\n return;\r\n }\r\n\r\n // Deep clone with proper error handling\r\n let formWithMembers: IEnhancedSectionProperty[];\r\n\r\n try {\r\n formWithMembers = structuredClone(sectionFormJSON);\r\n } catch (cloneError) {\r\n // Fallback to JSON method if structuredClone is not available\r\n formWithMembers = JSON.parse(JSON.stringify(sectionFormJSON));\r\n }\r\n\r\n // Enhanced member filtering with better type safety and validation\r\n formWithMembers.forEach((section: IEnhancedSectionProperty, sectionIndex: number) => {\r\n // Validate section object\r\n if (!section || typeof section !== 'object') {\r\n console.warn(`Invalid section at index ${sectionIndex}`);\r\n return;\r\n }\r\n\r\n // Filter members with proper type checking and validation\r\n section.members = members.filter((member: IMember) => {\r\n // Validate member object and section_order\r\n return (\r\n member &&\r\n typeof member === 'object' &&\r\n typeof member.section_order === 'number' &&\r\n member.section_order === sectionIndex\r\n );\r\n }) as (IProperty | ISelectProperty)[];\r\n });\r\n\r\n const hasSystemMembers = formWithMembers.some((section: ISectionProperty) =>\r\n section.members?.some((member: IProperty) => Boolean(member?.is_system_field))\r\n );\r\n\r\n const activeTabIndex = Number(activeTabValue);\r\n let updatedTabsData = [...tabsData];\r\n if (isValidNumber(activeTabIndex) && activeTabIndex >= 0 && activeTabIndex < tabsData.length) {\r\n updatedTabsData = [...tabsData];\r\n updatedTabsData[activeTabIndex] = {\r\n ...updatedTabsData[activeTabIndex],\r\n data: formWithMembers,\r\n remove_tab: hasSystemMembers,\r\n };\r\n\r\n setTabsData(updatedTabsData)\r\n }\r\n\r\n // Build state object with proper validation\r\n const state: IFormState = updatedTabsData?.length > 0\r\n ? { tab: updatedTabsData }\r\n : { section: formWithMembers };\r\n\r\n // Validate formBuilderConversion function exists\r\n if (typeof formBuilderConversion !== 'function') {\r\n console.error('formBuilderConversion is not a function');\r\n return;\r\n }\r\n\r\n // Execute conversion with error handling\r\n let formBuilderConversionResult: any;\r\n try {\r\n formBuilderConversionResult = formBuilderConversion(state);\r\n } catch (conversionError) {\r\n console.error('Error during form builder conversion:', conversionError);\r\n return;\r\n }\r\n\r\n // Validate conversion result\r\n if (!formBuilderConversionResult) {\r\n console.warn('Form builder conversion returned empty result');\r\n return;\r\n }\r\n\r\n // Validate elementPerColumn\r\n // if (typeof elementPerColumn !== 'number' || elementPerColumn <= 0) {\r\n\r\n // console.warn('Invalid elementPerColumn value');\r\n // return;\r\n // }\r\n\r\n // Prepare payload with validation\r\n const updatePayload: IFormUpdatePayload = {\r\n gridCol: elementPerColumn || 2,\r\n fields: formBuilderConversionResult\r\n };\r\n\r\n // Dispatch update action\r\n const updateRes = await dispatch(\r\n patchFormDataById({\r\n id: rowData._id,\r\n data: updatePayload\r\n })\r\n );\r\n if (updateRes.meta.requestStatus === 'rejected') {\r\n\r\n const m = getErrorMessage(updateRes?.error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n } else {\r\n enqueueSnackbar(\"Form updated successfully\", { variant: 'success' });\r\n navigate(path);\r\n }\r\n\r\n } catch (error) {\r\n const m = error?.message || 'Something went wrong while updating the form';\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }, [\r\n sectionFormJSON,\r\n members,\r\n tabsData,\r\n rowData?._id,\r\n elementPerColumn,\r\n dispatch,\r\n formBuilderConversion\r\n ]);\r\n\r\n const handleDuplicateElement = (index: number) => {\r\n const copyOfMember: any = { ...members[index], type: \"custom\" };\r\n copyOfMember && insert(index + 1, copyOfMember);\r\n setActiveMember(index + 1);\r\n setSelectedHoc(\"element\");\r\n setPositionEditedElement(index + 1);\r\n setElementJSON(copyOfMember);\r\n pickPropertyEditForm(copyOfMember.field_type);\r\n };\r\n\r\n const breadCrumbPath = [\r\n {\r\n link: path,\r\n label: \"Forms\",\r\n },\r\n {\r\n link: \"\",\r\n label: formatLabel(rowData?.name),\r\n },\r\n {\r\n link: \"\",\r\n label: \"Edit Form\",\r\n },\r\n ];\r\n\r\n\r\n useEffect(() => {\r\n if (removeSectionActionPerformed) {\r\n members.forEach((member: any, index: number) => {\r\n if (\r\n removeSectionPosition !== undefined &&\r\n Boolean(removeSectionPosition?.toString) &&\r\n member.section_order > removeSectionPosition\r\n ) {\r\n update(index, { ...member, section_order: member.section_order - 1 });\r\n }\r\n });\r\n setRemoveSectionActionPerformed(false);\r\n setRemoveSectionMembersPerformed(true);\r\n setRemoveSectionPosition(undefined);\r\n setSelectedHoc(\"\");\r\n }\r\n\r\n // eslint-disable-next-line\r\n }, [removeSectionActionPerformed]);\r\n\r\n useEffect(() => {\r\n formBuilder.isSuccess && navigate(path);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [formBuilder.isSuccess]);\r\n\r\n useEffect(() => {\r\n if (formBuilder.isError) {\r\n setToast({\r\n type: 'alert',\r\n message: formBuilder.error\r\n });\r\n }\r\n }, [formBuilder.error, formBuilder.isError]);\r\n\r\n useEffect(() => {\r\n if (\r\n typeof positionEditedElement !== \"number\" ||\r\n typeof positionEditedElement !== \"string\"\r\n ) {\r\n const index = Number(positionEditedElement);\r\n if (formJSON[index]) {\r\n const copyOfUpdatedFormJson = JSON.parse(\r\n JSON.stringify(formJSON[index]),\r\n );\r\n update(index, { ...copyOfUpdatedFormJson });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [formJSON]);\r\n\r\n useEffect(() => {\r\n const updatedFormJSON = formJSON.map((obj: any, index: number) => {\r\n if (index === Number(positionEditedElement)) {\r\n return { ...elementJSON };\r\n } else {\r\n return { ...obj };\r\n }\r\n });\r\n setFormJSON(updatedFormJSON);\r\n\r\n // eslint-disable-next-line\r\n }, [elementJSON]);\r\n\r\n useEffect(() => {\r\n if (members.length !== formJSON.length) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n }\r\n if (\r\n Boolean(elementSwap) &&\r\n JSON.stringify(members) !== JSON.stringify(formJSON)\r\n ) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n setElementSwap(false);\r\n const newMember: any =\r\n positionEditedElement && members[positionEditedElement];\r\n newMember && setSelectedHoc(\"element\");\r\n newMember && setElementJSON(newMember);\r\n newMember && pickPropertyEditForm(newMember.field_type);\r\n }\r\n if (\r\n removeSectionMembersPerformed &&\r\n JSON.stringify(members) !== JSON.stringify(formJSON)\r\n ) {\r\n setFormJSON(JSON.parse(JSON.stringify(members)));\r\n setRemoveSectionMembersPerformed(false);\r\n }\r\n // eslint-disable-next-line\r\n }, [members, elementSwap]);\r\n\r\n useEffect(() => {\r\n if (\r\n typeof sectionPositionEditedElement !== \"number\" ||\r\n typeof sectionPositionEditedElement !== \"string\"\r\n ) {\r\n const index = Number(sectionPositionEditedElement);\r\n if (sectionFormJSON[index]) {\r\n const copyOfUpdatedFormJson = JSON.parse(\r\n JSON.stringify(sectionFormJSON[index]),\r\n );\r\n updateSection(index, { ...copyOfUpdatedFormJson });\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [sectionFormJSON]);\r\n\r\n useEffect(() => {\r\n const updatedFormJSON = sectionFormJSON.map((obj: any, index: number) => {\r\n if (index === Number(sectionPositionEditedElement)) {\r\n return { ...obj, ...sectionJSON };\r\n } else {\r\n return { ...obj };\r\n }\r\n });\r\n setSectionFormJSON(updatedFormJSON);\r\n // eslint-disable-next-line\r\n }, [sectionJSON]);\r\n\r\n useEffect(() => {\r\n if (section.length !== sectionFormJSON.length) {\r\n setSectionFormJSON(JSON.parse(JSON.stringify(section)));\r\n }\r\n if (\r\n JSON.stringify(sectionFormJSON) !== JSON.stringify(section) &&\r\n modifyAccordion\r\n ) {\r\n setSectionFormJSON(JSON.parse(JSON.stringify(section)));\r\n setModifyAccordion(false);\r\n }\r\n // eslint-disable-next-line\r\n }, [section]);\r\n\r\n useEffect(() => {\r\n () => setInitialLoading(true);\r\n }, [])\r\n\r\n const handleFormData = useCallback(async () => {\r\n setInitialLoading(true)\r\n try {\r\n if (rowData?._id) {\r\n setTabsData([])\r\n await dispatch(getFormDataById(rowData?._id));\r\n await dispatch(getFieldsByFormId({ id: rowData?._id }));\r\n\r\n }\r\n } finally {\r\n setInitialLoading(false);\r\n }\r\n\r\n }, [rowData?._id])\r\n\r\n useEffect(() => {\r\n handleFormData();\r\n }, [handleFormData]);\r\n\r\n type SelectedHoc = \"element\" | \"section\" | null;\r\n\r\n // Constants\r\n const DEFAULT_FIELD_TYPE = \"text\";\r\n const HOC_TYPES = {\r\n ELEMENT: \"element\",\r\n SECTION: \"section\"\r\n } as const;\r\n\r\n // Helper function to check if object has meaningful content\r\n const hasValidContent = (obj: Record<string, any>): boolean => {\r\n return obj && Object.keys(obj).length > 0;\r\n };\r\n\r\n const EmptyStateMessage = () => (\r\n <Typography type=\"s5\" color={\"theme.secondary.800\"} className=\"formSection--Text\">Select a field to edit its properties.</Typography>\r\n )\r\n\r\n // Helper function to get field type with fallback\r\n const getFieldTypeWithFallback = (\r\n json: ElementJSON | SectionJSON | null | undefined,\r\n fallback: string = DEFAULT_FIELD_TYPE\r\n ): string => {\r\n return json?.field_type || fallback;\r\n };\r\n\r\n const memoizedForm = useMemo(() => {\r\n // Early return for empty state\r\n if (!selectedHoc) {\r\n\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n // Handle element selection\r\n if (selectedHoc === HOC_TYPES.ELEMENT) {\r\n if (!hasValidContent(members)) {\r\n console.warn('Element selected but no members data available');\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n const fieldType = getFieldTypeWithFallback(elementJSON);\r\n return pickPropertyEditForm(fieldType);\r\n }\r\n\r\n // Handle section selection\r\n if (selectedHoc === HOC_TYPES.SECTION) {\r\n if (!hasValidContent(section)) {\r\n console.warn('Section selected but no section data available');\r\n return <EmptyStateMessage />;\r\n }\r\n\r\n const fieldType = getFieldTypeWithFallback(sectionJSON);\r\n return pickPropertyEditForm(fieldType);\r\n }\r\n\r\n // Fallback for unknown selection type\r\n console.warn(`Unknown selectedHoc type: ${selectedHoc}`);\r\n return <EmptyStateMessage />;\r\n }, [\r\n // Core dependencies\r\n selectedHoc,\r\n\r\n // Data dependencies\r\n Object.keys(members).length,\r\n Object.keys(section).length,\r\n\r\n // JSON dependencies with deep comparison consideration\r\n elementJSON?.field_type,\r\n elementJSON?.field_properties,\r\n sectionJSON?.field_type,\r\n sectionJSON?.field_properties,\r\n\r\n // Function dependency\r\n pickPropertyEditForm\r\n ]);\r\n\r\n return (\r\n // <FullScreenLayout className=\"formSection--Layout\">\r\n <Box position='relative'>\r\n {initialLoading ? <ErpLoader /> :\r\n <DndProvider backend={HTML5Backend}>\r\n <FormHeader breadCrumbPath={breadCrumbPath}>\r\n <div className=\"formSection--Buttons\">\r\n <Button\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n text=\"Preview\"\r\n onClick={() => { !previewFieldsData ? showPreview() : hidePreview() }}\r\n disable={!members?.length}\r\n startIcon={previewFieldsData ? <EyeOff /> : <Eye />}\r\n />\r\n <Button\r\n variant=\"contained\"\r\n type=\"submit\"\r\n text=\"Update\"\r\n onClick={handleFormUpdate}\r\n disable={previewFieldsData}\r\n />\r\n </div>\r\n </FormHeader>\r\n {!previewFieldsData ?\r\n <Grid className=\"formSection--Grid\" container>\r\n <Grid\r\n item\r\n xs={9}\r\n component=\"form\"\r\n sx={{\r\n position: \"relative\",\r\n background: \"#F5F6F5\",\r\n padding: \"0.75rem\",\r\n }}\r\n >\r\n <Grid className=\"formSection--GridContainer\">\r\n <Box className=\"formSection--Tab\">\r\n {tabsData && (\r\n <TabBar\r\n tabs={tabsData}\r\n onEditTabTitle={handleEditTabTitle}\r\n activeValue={activeTabValue}\r\n setActiveValue={setActiveTabValue}\r\n handleTabChange={() => {\r\n handleTabData()\r\n }}\r\n handleRemoveTab={handleRemoveTab}\r\n containerProps={{ mb: 0 }}\r\n />\r\n )}\r\n <Button\r\n variant=\"outlined\"\r\n text=\"Add Tab\"\r\n onClick={handleAddTab}\r\n style={{ color: \"#292D32\", margin: \"0.5rem\" }}\r\n />\r\n </Box>\r\n <div className=\"formSection--Form\">\r\n {section?.map((item: any, i: number) => {\r\n const sectionMembers = members.filter(\r\n (member: any) => member.section_order === i,\r\n );\r\n const isFormSwitcher = item.section_type === SECTION_TYPES.FORM_SWITCH_SECTION\r\n const switchForms = item?.switcher_forms?.map((form: any) => ({\r\n ...form,\r\n formMembers: members.filter(\r\n (member: any) => member.section_form_id === form.id,\r\n )\r\n }))\r\n\r\n return (\r\n <DynamicSectionHOC\r\n index={i}\r\n label={t(item.label)}\r\n onClick={handleSectionSelection}\r\n position={i}\r\n fieldArrayName=\"section\"\r\n isFormSwitcher={isFormSwitcher}\r\n activeIndex={activeSection === i}\r\n removeSection={() => handleRemoveSection(i)}\r\n handleAccordion={() => handleMakeAccordion(i)}\r\n handleAddButton={(e) => handleAddMember(e)}\r\n remove_section={item.remove_section}\r\n >\r\n {isFormSwitcher ? (\r\n <div style={{ width: '100%' }} >\r\n <Typography type=\"s5\" style={{ fontWeight: 500 }} color={\"theme.secondary.800\"}>\r\n {item.form_switcher_label}\r\n </Typography>\r\n <RadioGroup\r\n aria-labelledby=\"theme-radio-buttons-group-label\"\r\n name={item.form_switcher_name || item.form_switcher_label}\r\n >\r\n\r\n {switchForms?.map(({ name, id, formMembers }: { name: string, id: number, formMembers: any }) => (\r\n <>\r\n <div>\r\n <FormControlLabel\r\n key={id}\r\n value={name}\r\n control={<Radio />}\r\n label={t(name)}\r\n disabled\r\n />\r\n </div>\r\n\r\n <Grid container sx={{ mb: 3 }}>\r\n <FormFields\r\n sectionMembers={formMembers || []}\r\n members={members}\r\n activeMember={activeMember}\r\n control={control}\r\n t={t}\r\n element={element}\r\n images={images}\r\n elementJSON={elementJSON}\r\n remove={remove}\r\n move={move}\r\n handleElementSelection={handleElementSelection}\r\n setElementSwap={setElementSwap}\r\n handleDuplicateElement={handleDuplicateElement}\r\n setSelectedHoc={setSelectedHoc}\r\n setActiveMember={setActiveMember}\r\n />\r\n </Grid>\r\n <Button\r\n text=\"Add\"\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n data-position={i}\r\n onClick={(e) => handleAddMember(e, {\r\n section_form_id: id,\r\n is_form_switcher_section: true\r\n })}\r\n startIcon={<Add />}\r\n />\r\n </>\r\n ))}\r\n </RadioGroup>\r\n </div>\r\n ) : null}\r\n {!isFormSwitcher &&\r\n <FormFields\r\n sectionMembers={sectionMembers || []}\r\n members={members}\r\n activeMember={activeMember}\r\n control={control}\r\n t={t}\r\n element={element}\r\n images={images}\r\n elementJSON={elementJSON}\r\n remove={remove}\r\n move={move}\r\n handleElementSelection={handleElementSelection}\r\n setElementSwap={setElementSwap}\r\n handleDuplicateElement={handleDuplicateElement}\r\n setSelectedHoc={setSelectedHoc}\r\n setActiveMember={setActiveMember}\r\n />\r\n }\r\n </DynamicSectionHOC>\r\n );\r\n })}\r\n <div className=\"formSection--Section\">\r\n <Button\r\n text=\"Add a section\"\r\n variant=\"outlined\"\r\n className=\"formSection--PreviewButton\"\r\n onClick={addNewSection}\r\n startIcon={<Add />}\r\n />\r\n </div>\r\n </div>\r\n </Grid>\r\n\r\n </Grid>\r\n <Grid\r\n item\r\n xs={3}\r\n className={\r\n Boolean(selectedHoc) && (members?.length || section.length)\r\n ? \"formSection--RightGrid\"\r\n : \"formSection--RightGrid formSection--Text\"\r\n }\r\n >\r\n {memoizedForm}\r\n </Grid>\r\n </Grid>\r\n :\r\n <FormParser\r\n data={previewFieldsData || []}\r\n handleFormSubmit={(data) => console.log(\"Preview Data\", data)}\r\n className='form-container'\r\n fieldArrayName='form-builder-preview'\r\n getFormMethods={(methods: any) =>\r\n setFormParserMethods({ ...methods })\r\n }\r\n />\r\n }\r\n <Toast\r\n open={Boolean(toast)}\r\n type={toast?.type}\r\n message={toast?.message}\r\n handleClose={() => setToast(null)}\r\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\r\n />\r\n </DndProvider>}\r\n </Box>\r\n // </FullScreenLayout>\r\n );\r\n}\r\n\r\nexport default CustomForm;\r\n"],"names":["isValidNumber","value","isNaN","Number","isFinite","deepClone","obj","JSON","parse","stringify","generateUniqueId","separator","uniqueStringId","Date","now","Math","random","toString","substr","CustomForm","t","useTranslation","dispatch","useAppDispatch","navigate","useNavigate","location","useLocation","rowData","state","formBuilder","useAppSelector","control","useForm","reValidateMode","fields","members","append","remove","update","move","insert","useFieldArray","name","section","appendSection","removeSection","updateSection","selectedHoc","setSelectedHoc","useState","activeSection","setActiveSection","activeMember","setActiveMember","formJSON","setFormJSON","elementJSON","setElementJSON","positionEditedElement","setPositionEditedElement","sectionFormJSON","setSectionFormJSON","sectionJSON","setSectionJSON","sectionPositionEditedElement","setSectionPositionEditedElement","removeSectionActionPerformed","setRemoveSectionActionPerformed","removeSectionMembersPerformed","setRemoveSectionMembersPerformed","removeSectionPosition","setRemoveSectionPosition","initialLoading","setInitialLoading","tabsData","setTabsData","activeTabValue","setActiveTabValue","elementSwap","setElementSwap","modifyAccordion","setModifyAccordion","toast","setToast","previewFieldsData","setPreviewFields","_","setFormParserMethods","currentModule","pathname","split","path","generateModulePath","useFormDataEffect","pickPropertyEditForm","useCallback","type","jsx","className","children","normalizedType","toLowerCase","trim","formGroups","text","select","checkbox","table","commonTextProps","element","handlePropertyValueUpdate","handleWidthChange","handleColumnSelect","commonSelectProps","handleSelectOptionValueUpdate","includes","createElement","TextEditForm","key","id","SelectEditForm","SectionEditForm","handleSectionPropertyValueUpdate","CheckboxEditForm","TableEditForm","handleColumnsUpdate","jsxs","error","addNewSection","newSection","switcher_forms","map","form","newSectionIndex","length","sectionData","field_type","section_type","form_switcher_label","form_switcher_name","label","is_accordion","handleAddTab","formWithMembers","forEach","sectionIndex","filter","member","section_order","hasSystemMembers","some","Boolean","is_system_field","shouldRemoveTab","newTab","tab_order","title","remove_tab","data","prevTabs","handleEditTabTitle","tabId","newTitle","tab","handleRemoveTab","reorderedTabs","activeTab","find","sections","remove_section","membersList","flatMap","handleElementSelection","e","elementPositionIndex","target","dataset","position","positionIndex","elementDetails","handleSectionSelection","sectionPositionIndex","sectionDetails","handleAddMember","otherProperties","currentTarget","_a","newMember","is_new","custom_width","floor","DEFAULT_GRID_COLUMNS","is_fullwidth","overrideValue","checked","updatedValue","prev","newCustomWidth","prevData","columnValue","elementPerColumn","field","index","numberValue","val","fieldType","getValue","elementJSONCopy","uniqueId","copyOfUpdatedElement","section_form_id","is_form_switcher_section","column_width","options","Array","isArray","columns","table_columns","handleRemoveSection","membersToRemove","push","reverse","memberIndex","handleMakeAccordion","copyOfSection","handleTabData","activeTabIndex","updatedTabsData","useMemo","previewState","previewFields","formBuilderConversion","showPreview","hidePreview","handleFormUpdate","async","_id","structuredClone","cloneError","formBuilderConversionResult","conversionError","updatePayload","gridCol","updateRes","patchFormDataById","meta","requestStatus","m","getErrorMessage","message","enqueueSnackbar","variant","handleDuplicateElement","copyOfMember","breadCrumbPath","link","formatLabel","useEffect","isSuccess","isError","copyOfUpdatedFormJson","updatedFormJSON","handleFormData","getFormDataById","getFieldsByFormId","hasValidContent","Object","keys","EmptyStateMessage","Typography","color","getFieldTypeWithFallback","json","fallback","memoizedForm","field_properties","Box","ErpLoader","DndProvider","backend","HTML5Backend","FormHeader","Button","onClick","disable","startIcon","EyeOff","Eye","FormParser","handleFormSubmit","fieldArrayName","getFormMethods","methods","Grid","container","item","xs","component","sx","background","padding","TabBar","tabs","onEditTabTitle","activeValue","setActiveValue","handleTabChange","containerProps","mb","style","margin","i","sectionMembers","isFormSwitcher","SECTION_TYPES","FORM_SWITCH_SECTION","switchForms","formMembers","DynamicSectionHOC","activeIndex","handleAccordion","handleAddButton","width","fontWeight","RadioGroup","Fragment","FormControlLabel","Radio","disabled","FormFields","images","Add","Toast","open","handleClose","anchorOrigin","horizontal","vertical"],"mappings":"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"}
@@ -6,7 +6,7 @@ import InputAdornment from "../../../../node_modules/@mui/material/InputAdornmen
6
6
  import IconButton from "../../../../node_modules/@mui/material/IconButton/IconButton/index.esm.js";
7
7
  import Add from "../../../../node_modules/@mui/icons-material/esm/Add/index.esm.js";
8
8
  import Remove from "../../../../node_modules/@mui/icons-material/esm/Remove/index.esm.js";
9
- function ColumnWidth({ onChange }) {
9
+ const ColumnWidth = ({ onChange }) => {
10
10
  const [value, setValue] = useState(6);
11
11
  const handleIncrement = () => {
12
12
  setValue((prev) => prev + 1);
@@ -15,7 +15,7 @@ function ColumnWidth({ onChange }) {
15
15
  setValue((prev) => Math.max(0, prev - 1));
16
16
  };
17
17
  const handleInputChange = (event) => {
18
- const newValue = parseInt(event.target.value) || 0;
18
+ const newValue = Number.parseInt(event.target.value) || 0;
19
19
  setValue(Math.max(0, newValue));
20
20
  };
21
21
  useEffect(() => {
@@ -85,8 +85,9 @@ function ColumnWidth({ onChange }) {
85
85
  value
86
86
  ] })
87
87
  ] });
88
- }
88
+ };
89
89
  export {
90
+ ColumnWidth,
90
91
  ColumnWidth as default
91
92
  };
92
93
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/element-edit-forms/column-width.tsx"],"sourcesContent":["// React imports\r\nimport React, { useEffect, useState } from 'react';\r\n\r\n// Material UI imports\r\nimport { Box, IconButton, TextField, InputAdornment } from '@mui/material';\r\nimport { Add, Remove } from '@mui/icons-material';\r\n\r\nexport default function ColumnWidth({onChange}) {\r\n const [value, setValue] = useState(6);\r\n\r\n const handleIncrement = () => {\r\n setValue(prev => prev + 1);\r\n };\r\n\r\n const handleDecrement = () => {\r\n setValue(prev => Math.max(0, prev - 1)); // Prevent negative values\r\n };\r\n\r\n const handleInputChange = (event) => {\r\n const newValue = parseInt(event.target.value) || 0;\r\n setValue(Math.max(0, newValue));\r\n };\r\n\r\n useEffect(() => {\r\n onChange(value);\r\n }, [value]);\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 2, p: 4 }}>\r\n <TextField\r\n value={value}\r\n onChange={handleInputChange}\r\n name='custom_width'\r\n size=\"small\"\r\n sx={{\r\n width: '120px',\r\n '& .MuiOutlinedInput-root': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n '& input': {\r\n textAlign: 'center',\r\n padding: '8px 4px',\r\n }\r\n }\r\n }}\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <IconButton\r\n onClick={handleDecrement}\r\n size=\"small\"\r\n sx={{\r\n marginLeft: '-4px',\r\n borderRadius: '4px 0 0 4px',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Remove fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n onClick={handleIncrement}\r\n size=\"small\"\r\n sx={{\r\n marginRight: '-4px',\r\n borderRadius: '0 4px 4px 0',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Add fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n min: 0,\r\n }}\r\n />\r\n \r\n <Box sx={{ ml: 2, color: 'text.secondary' }}>\r\n Current value: {value}\r\n </Box>\r\n </Box>\r\n );\r\n}"],"names":[],"mappings":";;;;;;;;AAOA,SAAwB,YAAY,EAAC,YAAW;AAC9C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,CAAC;AAEpC,QAAM,kBAAkB,MAAM;AAC5B,aAAS,CAAA,SAAQ,OAAO,CAAC;AAAA,EAC3B;AAEA,QAAM,kBAAkB,MAAM;AAC5B,aAAS,UAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC;AAAA,EACxC;AAEA,QAAM,oBAAoB,CAAC,UAAU;AACnC,UAAM,WAAW,SAAS,MAAM,OAAO,KAAK,KAAK;AACjD,aAAS,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,EAChC;AAEA,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,GAAG,GAAG,EAAA,GAC3D,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,UAAU;AAAA,QACV,MAAK;AAAA,QACL,MAAK;AAAA,QACL,IAAI;AAAA,UACF,OAAO;AAAA,UACP,4BAA4B;AAAA,YAC1B,aAAa;AAAA,YACb,cAAc;AAAA,YACd,WAAW;AAAA,cACT,WAAW;AAAA,cACX,SAAS;AAAA,YAAA;AAAA,UACX;AAAA,QACF;AAAA,QAEF,YAAY;AAAA,UACV,gBACE,oBAAC,gBAAA,EAAe,UAAS,SACvB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,MAAK;AAAA,cACL,IAAI;AAAA,gBACF,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,QAAQ;AAAA,gBACR,WAAW;AAAA,kBACT,iBAAiB;AAAA,gBAAA;AAAA,cACnB;AAAA,cAGF,UAAA,oBAAC,QAAA,EAAO,UAAS,QAAA,CAAQ;AAAA,YAAA;AAAA,UAAA,GAE7B;AAAA,UAEF,cACE,oBAAC,gBAAA,EAAe,UAAS,OACvB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,MAAK;AAAA,cACL,IAAI;AAAA,gBACF,aAAa;AAAA,gBACb,cAAc;AAAA,gBACd,QAAQ;AAAA,gBACR,WAAW;AAAA,kBACT,iBAAiB;AAAA,gBAAA;AAAA,cACnB;AAAA,cAGF,UAAA,oBAAC,KAAA,EAAI,UAAS,QAAA,CAAQ;AAAA,YAAA;AAAA,UAAA,EACxB,CACF;AAAA,QAAA;AAAA,QAGJ,YAAY;AAAA,UACV,MAAM;AAAA,UACN,KAAK;AAAA,QAAA;AAAA,MACP;AAAA,IAAA;AAAA,IAGF,qBAAC,OAAI,IAAI,EAAE,IAAI,GAAG,OAAO,oBAAoB,UAAA;AAAA,MAAA;AAAA,MAC3B;AAAA,IAAA,EAAA,CAClB;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/element-edit-forms/column-width.tsx"],"sourcesContent":["// React imports\r\nimport React, { useEffect, useState } from 'react';\r\n\r\n// Material UI imports\r\nimport { Box, IconButton, TextField, InputAdornment } from '@mui/material';\r\nimport { Add, Remove } from '@mui/icons-material';\r\n\r\nexport interface IColumnWidthProps {\r\n onChange: (value: number) => void;\r\n}\r\n\r\nexport const ColumnWidth = ({onChange}: IColumnWidthProps) => {\r\n const [value, setValue] = useState(6);\r\n\r\n const handleIncrement = () => {\r\n setValue(prev => prev + 1);\r\n };\r\n\r\n const handleDecrement = () => {\r\n setValue(prev => Math.max(0, prev - 1)); // Prevent negative values\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = Number.parseInt(event.target.value) || 0;\r\n setValue(Math.max(0, newValue));\r\n };\r\n\r\n useEffect(() => {\r\n onChange(value);\r\n }, [value]);\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 2, p: 4 }}>\r\n <TextField\r\n value={value}\r\n onChange={handleInputChange}\r\n name='custom_width'\r\n size=\"small\"\r\n sx={{\r\n width: '120px',\r\n '& .MuiOutlinedInput-root': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n '& input': {\r\n textAlign: 'center',\r\n padding: '8px 4px',\r\n }\r\n }\r\n }}\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <IconButton\r\n onClick={handleDecrement}\r\n size=\"small\"\r\n sx={{\r\n marginLeft: '-4px',\r\n borderRadius: '4px 0 0 4px',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Remove fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n onClick={handleIncrement}\r\n size=\"small\"\r\n sx={{\r\n marginRight: '-4px',\r\n borderRadius: '0 4px 4px 0',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Add fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n min: 0,\r\n }}\r\n />\r\n \r\n <Box sx={{ ml: 2, color: 'text.secondary' }}>\r\n Current value: {value}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default ColumnWidth;"],"names":[],"mappings":";;;;;;;;AAWO,MAAM,cAAc,CAAC,EAAC,eAAiC;AAC5D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,CAAC;AAEpC,QAAM,kBAAkB,MAAM;AAC5B,aAAS,CAAA,SAAQ,OAAO,CAAC;AAAA,EAC3B;AAEA,QAAM,kBAAkB,MAAM;AAC5B,aAAS,UAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC;AAAA,EACxC;AAEA,QAAM,oBAAoB,CAAC,UAA+C;AACxE,UAAM,WAAW,OAAO,SAAS,MAAM,OAAO,KAAK,KAAK;AACxD,aAAS,KAAK,IAAI,GAAG,QAAQ,CAAC;AAAA,EAChC;AAEA,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,GAAG,GAAG,EAAA,GAC3D,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,UAAU;AAAA,QACV,MAAK;AAAA,QACL,MAAK;AAAA,QACL,IAAI;AAAA,UACF,OAAO;AAAA,UACP,4BAA4B;AAAA,YAC1B,aAAa;AAAA,YACb,cAAc;AAAA,YACd,WAAW;AAAA,cACT,WAAW;AAAA,cACX,SAAS;AAAA,YAAA;AAAA,UACX;AAAA,QACF;AAAA,QAEF,YAAY;AAAA,UACV,gBACE,oBAAC,gBAAA,EAAe,UAAS,SACvB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,MAAK;AAAA,cACL,IAAI;AAAA,gBACF,YAAY;AAAA,gBACZ,cAAc;AAAA,gBACd,QAAQ;AAAA,gBACR,WAAW;AAAA,kBACT,iBAAiB;AAAA,gBAAA;AAAA,cACnB;AAAA,cAGF,UAAA,oBAAC,QAAA,EAAO,UAAS,QAAA,CAAQ;AAAA,YAAA;AAAA,UAAA,GAE7B;AAAA,UAEF,cACE,oBAAC,gBAAA,EAAe,UAAS,OACvB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,MAAK;AAAA,cACL,IAAI;AAAA,gBACF,aAAa;AAAA,gBACb,cAAc;AAAA,gBACd,QAAQ;AAAA,gBACR,WAAW;AAAA,kBACT,iBAAiB;AAAA,gBAAA;AAAA,cACnB;AAAA,cAGF,UAAA,oBAAC,KAAA,EAAI,UAAS,QAAA,CAAQ;AAAA,YAAA;AAAA,UAAA,EACxB,CACF;AAAA,QAAA;AAAA,QAGJ,YAAY;AAAA,UACV,MAAM;AAAA,UACN,KAAK;AAAA,QAAA;AAAA,MACP;AAAA,IAAA;AAAA,IAGF,qBAAC,OAAI,IAAI,EAAE,IAAI,GAAG,OAAO,oBAAoB,UAAA;AAAA,MAAA;AAAA,MAC3B;AAAA,IAAA,EAAA,CAClB;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),n=require("react"),t=require("../../../../node_modules/@mui/material/Box/Box/index.js"),r=require("../../../../node_modules/@mui/material/TextField/TextField/index.js"),i=require("../../../../node_modules/@mui/material/InputAdornment/InputAdornment/index.js"),d=require("../../../../node_modules/@mui/material/IconButton/IconButton/index.js"),o=require("../../../../node_modules/@mui/icons-material/esm/Add/index.js"),s=require("../../../../node_modules/@mui/icons-material/esm/Remove/index.js");exports.default=function({onChange:a}){const[u,l]=n.useState(6);return n.useEffect(()=>{a(u)},[u]),/* @__PURE__ */e.jsxs(t.default,{sx:{display:"flex",alignItems:"center",gap:2,p:4},children:[
2
- /* @__PURE__ */e.jsx(r.default,{value:u,onChange:e=>{const n=parseInt(e.target.value)||0;l(Math.max(0,n))},name:"custom_width",size:"small",sx:{width:"120px","& .MuiOutlinedInput-root":{paddingLeft:0,paddingRight:0,"& input":{textAlign:"center",padding:"8px 4px"}}},InputProps:{startAdornment:/* @__PURE__ */e.jsx(i.default,{position:"start",children:/* @__PURE__ */e.jsx(d.default,{onClick:()=>{l(e=>Math.max(0,e-1))},size:"small",sx:{marginLeft:"-4px",borderRadius:"4px 0 0 4px",border:"none","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}},children:/* @__PURE__ */e.jsx(s.default,{fontSize:"small"})})}),endAdornment:/* @__PURE__ */e.jsx(i.default,{position:"end",children:/* @__PURE__ */e.jsx(d.default,{onClick:()=>{l(e=>e+1)},size:"small",sx:{marginRight:"-4px",borderRadius:"0 4px 4px 0",border:"none","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}},children:/* @__PURE__ */e.jsx(o.default,{fontSize:"small"})})})},inputProps:{type:"number",min:0}}),
3
- /* @__PURE__ */e.jsxs(t.default,{sx:{ml:2,color:"text.secondary"},children:["Current value: ",u]})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("../../../../node_modules/@mui/material/Box/Box/index.js"),r=require("../../../../node_modules/@mui/material/TextField/TextField/index.js"),i=require("../../../../node_modules/@mui/material/InputAdornment/InputAdornment/index.js"),d=require("../../../../node_modules/@mui/material/IconButton/IconButton/index.js"),o=require("../../../../node_modules/@mui/icons-material/esm/Add/index.js"),s=require("../../../../node_modules/@mui/icons-material/esm/Remove/index.js");const a=({onChange:a})=>{const[u,l]=t.useState(6);return t.useEffect(()=>{a(u)},[u]),/* @__PURE__ */e.jsxs(n.default,{sx:{display:"flex",alignItems:"center",gap:2,p:4},children:[
2
+ /* @__PURE__ */e.jsx(r.default,{value:u,onChange:e=>{const t=Number.parseInt(e.target.value)||0;l(Math.max(0,t))},name:"custom_width",size:"small",sx:{width:"120px","& .MuiOutlinedInput-root":{paddingLeft:0,paddingRight:0,"& input":{textAlign:"center",padding:"8px 4px"}}},InputProps:{startAdornment:/* @__PURE__ */e.jsx(i.default,{position:"start",children:/* @__PURE__ */e.jsx(d.default,{onClick:()=>{l(e=>Math.max(0,e-1))},size:"small",sx:{marginLeft:"-4px",borderRadius:"4px 0 0 4px",border:"none","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}},children:/* @__PURE__ */e.jsx(s.default,{fontSize:"small"})})}),endAdornment:/* @__PURE__ */e.jsx(i.default,{position:"end",children:/* @__PURE__ */e.jsx(d.default,{onClick:()=>{l(e=>e+1)},size:"small",sx:{marginRight:"-4px",borderRadius:"0 4px 4px 0",border:"none","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)"}},children:/* @__PURE__ */e.jsx(o.default,{fontSize:"small"})})})},inputProps:{type:"number",min:0}}),
3
+ /* @__PURE__ */e.jsxs(n.default,{sx:{ml:2,color:"text.secondary"},children:["Current value: ",u]})]})};exports.ColumnWidth=a,exports.default=a;
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/element-edit-forms/column-width.tsx"],"sourcesContent":["// React imports\r\nimport React, { useEffect, useState } from 'react';\r\n\r\n// Material UI imports\r\nimport { Box, IconButton, TextField, InputAdornment } from '@mui/material';\r\nimport { Add, Remove } from '@mui/icons-material';\r\n\r\nexport default function ColumnWidth({onChange}) {\r\n const [value, setValue] = useState(6);\r\n\r\n const handleIncrement = () => {\r\n setValue(prev => prev + 1);\r\n };\r\n\r\n const handleDecrement = () => {\r\n setValue(prev => Math.max(0, prev - 1)); // Prevent negative values\r\n };\r\n\r\n const handleInputChange = (event) => {\r\n const newValue = parseInt(event.target.value) || 0;\r\n setValue(Math.max(0, newValue));\r\n };\r\n\r\n useEffect(() => {\r\n onChange(value);\r\n }, [value]);\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 2, p: 4 }}>\r\n <TextField\r\n value={value}\r\n onChange={handleInputChange}\r\n name='custom_width'\r\n size=\"small\"\r\n sx={{\r\n width: '120px',\r\n '& .MuiOutlinedInput-root': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n '& input': {\r\n textAlign: 'center',\r\n padding: '8px 4px',\r\n }\r\n }\r\n }}\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <IconButton\r\n onClick={handleDecrement}\r\n size=\"small\"\r\n sx={{\r\n marginLeft: '-4px',\r\n borderRadius: '4px 0 0 4px',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Remove fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n onClick={handleIncrement}\r\n size=\"small\"\r\n sx={{\r\n marginRight: '-4px',\r\n borderRadius: '0 4px 4px 0',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Add fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n min: 0,\r\n }}\r\n />\r\n \r\n <Box sx={{ ml: 2, color: 'text.secondary' }}>\r\n Current value: {value}\r\n </Box>\r\n </Box>\r\n );\r\n}"],"names":["onChange","value","setValue","useState","useEffect","jsxs","Box","sx","display","alignItems","gap","p","children","jsx","TextField","event","newValue","parseInt","target","Math","max","name","size","width","paddingLeft","paddingRight","textAlign","padding","InputProps","startAdornment","InputAdornment","position","IconButton","onClick","prev","marginLeft","borderRadius","border","backgroundColor","Remove","fontSize","endAdornment","marginRight","Add","inputProps","type","min","ml","color"],"mappings":"umBAOA,UAAoCA,SAACA,IACnC,MAAOC,EAAOC,GAAYC,EAAAA,SAAS,GAmBnC,OAJAC,EAAAA,UAAU,KACRJ,EAASC,IACR,CAACA,qBAGFI,KAACC,EAAAA,QAAA,CAAIC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUC,IAAK,EAAGC,EAAG,GAC3DC,SAAA;eAAAC,EAAAA,IAACC,EAAAA,QAAA,CACCb,QACAD,SAbqBe,IACzB,MAAMC,EAAWC,SAASF,EAAMG,OAAOjB,QAAU,EACjDC,EAASiB,KAAKC,IAAI,EAAGJ,KAYjBK,KAAK,eACLC,KAAK,QACLf,GAAI,CACFgB,MAAO,QACP,2BAA4B,CAC1BC,YAAa,EACbC,aAAc,EACd,UAAW,CACTC,UAAW,SACXC,QAAS,aAIfC,WAAY,CACVC,gCACEhB,IAACiB,EAAAA,QAAA,CAAeC,SAAS,QACvBnB,wBAAAC,EAAAA,IAACmB,EAAAA,QAAA,CACCC,QAnCU,KACtB/B,KAAiBiB,KAAKC,IAAI,EAAGc,EAAO,KAmCxBZ,KAAK,QACLf,GAAI,CACF4B,WAAY,OACZC,aAAc,cACdC,OAAQ,OACR,UAAW,CACTC,gBAAiB,wBAIrB1B,0BAAAC,IAAC0B,EAAAA,QAAA,CAAOC,SAAS,cAIvBC,8BACE5B,IAACiB,EAAAA,QAAA,CAAeC,SAAS,MACvBnB,wBAAAC,EAAAA,IAACmB,EAAAA,QAAA,CACCC,QAzDU,KACtB/B,EAASgC,GAAQA,EAAO,IAyDZZ,KAAK,QACLf,GAAI,CACFmC,YAAa,OACbN,aAAc,cACdC,OAAQ,OACR,UAAW,CACTC,gBAAiB,wBAIrB1B,0BAAAC,IAAC8B,EAAAA,QAAA,CAAIH,SAAS,eAKtBI,WAAY,CACVC,KAAM,SACNC,IAAK;eAITzC,OAACC,EAAAA,SAAIC,GAAI,CAAEwC,GAAI,EAAGC,MAAO,kBAAoBpC,SAAA,CAAA,kBAC3BX,OAIxB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/element-edit-forms/column-width.tsx"],"sourcesContent":["// React imports\r\nimport React, { useEffect, useState } from 'react';\r\n\r\n// Material UI imports\r\nimport { Box, IconButton, TextField, InputAdornment } from '@mui/material';\r\nimport { Add, Remove } from '@mui/icons-material';\r\n\r\nexport interface IColumnWidthProps {\r\n onChange: (value: number) => void;\r\n}\r\n\r\nexport const ColumnWidth = ({onChange}: IColumnWidthProps) => {\r\n const [value, setValue] = useState(6);\r\n\r\n const handleIncrement = () => {\r\n setValue(prev => prev + 1);\r\n };\r\n\r\n const handleDecrement = () => {\r\n setValue(prev => Math.max(0, prev - 1)); // Prevent negative values\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = Number.parseInt(event.target.value) || 0;\r\n setValue(Math.max(0, newValue));\r\n };\r\n\r\n useEffect(() => {\r\n onChange(value);\r\n }, [value]);\r\n\r\n return (\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 2, p: 4 }}>\r\n <TextField\r\n value={value}\r\n onChange={handleInputChange}\r\n name='custom_width'\r\n size=\"small\"\r\n sx={{\r\n width: '120px',\r\n '& .MuiOutlinedInput-root': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n '& input': {\r\n textAlign: 'center',\r\n padding: '8px 4px',\r\n }\r\n }\r\n }}\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <IconButton\r\n onClick={handleDecrement}\r\n size=\"small\"\r\n sx={{\r\n marginLeft: '-4px',\r\n borderRadius: '4px 0 0 4px',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Remove fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n onClick={handleIncrement}\r\n size=\"small\"\r\n sx={{\r\n marginRight: '-4px',\r\n borderRadius: '0 4px 4px 0',\r\n border: 'none',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\r\n }\r\n }}\r\n >\r\n <Add fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n inputProps={{\r\n type: 'number',\r\n min: 0,\r\n }}\r\n />\r\n \r\n <Box sx={{ ml: 2, color: 'text.secondary' }}>\r\n Current value: {value}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default ColumnWidth;"],"names":["ColumnWidth","onChange","value","setValue","useState","useEffect","jsxs","Box","sx","display","alignItems","gap","p","children","jsx","TextField","event","newValue","Number","parseInt","target","Math","max","name","size","width","paddingLeft","paddingRight","textAlign","padding","InputProps","startAdornment","InputAdornment","position","IconButton","onClick","prev","marginLeft","borderRadius","border","backgroundColor","Remove","fontSize","endAdornment","marginRight","Add","inputProps","type","min","ml","color"],"mappings":"ulBAWO,MAAMA,EAAc,EAAEC,eAC3B,MAAOC,EAAOC,GAAYC,EAAAA,SAAS,GAmBnC,OAJAC,EAAAA,UAAU,KACRJ,EAASC,IACR,CAACA,qBAGFI,KAACC,EAAAA,QAAA,CAAIC,GAAI,CAAEC,QAAS,OAAQC,WAAY,SAAUC,IAAK,EAAGC,EAAG,GAC3DC,SAAA;eAAAC,EAAAA,IAACC,EAAAA,QAAA,CACCb,QACAD,SAbqBe,IACzB,MAAMC,EAAWC,OAAOC,SAASH,EAAMI,OAAOlB,QAAU,EACxDC,EAASkB,KAAKC,IAAI,EAAGL,KAYjBM,KAAK,eACLC,KAAK,QACLhB,GAAI,CACFiB,MAAO,QACP,2BAA4B,CAC1BC,YAAa,EACbC,aAAc,EACd,UAAW,CACTC,UAAW,SACXC,QAAS,aAIfC,WAAY,CACVC,gCACEjB,IAACkB,EAAAA,QAAA,CAAeC,SAAS,QACvBpB,wBAAAC,EAAAA,IAACoB,EAAAA,QAAA,CACCC,QAnCU,KACtBhC,KAAiBkB,KAAKC,IAAI,EAAGc,EAAO,KAmCxBZ,KAAK,QACLhB,GAAI,CACF6B,WAAY,OACZC,aAAc,cACdC,OAAQ,OACR,UAAW,CACTC,gBAAiB,wBAIrB3B,0BAAAC,IAAC2B,EAAAA,QAAA,CAAOC,SAAS,cAIvBC,8BACE7B,IAACkB,EAAAA,QAAA,CAAeC,SAAS,MACvBpB,wBAAAC,EAAAA,IAACoB,EAAAA,QAAA,CACCC,QAzDU,KACtBhC,EAASiC,GAAQA,EAAO,IAyDZZ,KAAK,QACLhB,GAAI,CACFoC,YAAa,OACbN,aAAc,cACdC,OAAQ,OACR,UAAW,CACTC,gBAAiB,wBAIrB3B,0BAAAC,IAAC+B,EAAAA,QAAA,CAAIH,SAAS,eAKtBI,WAAY,CACVC,KAAM,SACNC,IAAK;eAIT1C,OAACC,EAAAA,SAAIC,GAAI,CAAEyC,GAAI,EAAGC,MAAO,kBAAoBrC,SAAA,CAAA,kBAC3BX"}
@@ -1,3 +1,5 @@
1
- export default function ColumnWidth({ onChange }: {
2
- onChange: any;
3
- }): import("react/jsx-runtime").JSX.Element;
1
+ export interface IColumnWidthProps {
2
+ onChange: (value: number) => void;
3
+ }
4
+ export declare const ColumnWidth: ({ onChange }: IColumnWidthProps) => import("react/jsx-runtime").JSX.Element;
5
+ export default ColumnWidth;