impact-ui 3.7.25 → 4.0.0-alpha.10

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 (465) hide show
  1. package/MIGRATION_GUIDE.md +328 -0
  2. package/README.md +154 -15
  3. package/bin/migrate-image-paths.cjs +127 -0
  4. package/bin/migrate.js +293 -0
  5. package/codemods/component-map.js +153 -0
  6. package/codemods/image-paths-transform.js +69 -0
  7. package/codemods/transform.js +136 -0
  8. package/dist/components/Accordion/index.js +2 -1
  9. package/dist/components/AccordionModern/index.js +2 -1
  10. package/dist/components/Alert/index.js +2 -1
  11. package/dist/components/Avatar/index.js +2 -1
  12. package/dist/components/Badge/filled/filledIconLabelBadges/index.js +2 -1
  13. package/dist/components/Badge/filled/filledOnlyIconBadges/index.js +2 -1
  14. package/dist/components/Badge/filled/filledOnlyLabelBadges/index.js +2 -1
  15. package/dist/components/Badge/index.js +3 -2
  16. package/dist/components/Badge/stroke/strokeIconLabelBadges/index.js +2 -1
  17. package/dist/components/Badge/stroke/strokeOnlyIconBadges/index.js +2 -1
  18. package/dist/components/Badge/stroke/strokeOnlyLabelBadges/index.js +2 -1
  19. package/dist/components/Badge/subtle/subtleIOnlyIconBadges/index.js +2 -1
  20. package/dist/components/Badge/subtle/subtleIconLabelBadges/index.js +2 -1
  21. package/dist/components/Badge/subtle/subtleOnlyLabelBadges/index.js +2 -1
  22. package/dist/components/BottomSheet/index.js +2 -1
  23. package/dist/components/Breadcrumbs/index.js +2 -1
  24. package/dist/components/Button/index.js +2 -1
  25. package/dist/components/ButtonGroup/index.js +2 -1
  26. package/dist/components/Card/index.js +2 -1
  27. package/dist/components/Chart/index.js +2 -1
  28. package/dist/components/Chatbot/index.js +2 -1
  29. package/dist/components/Checkbox/index.js +2 -1
  30. package/dist/components/Chips/index.js +2 -1
  31. package/dist/components/CreateItemFlow/index.js +2 -1
  32. package/dist/components/DatePicker/datePickerDropdown.js +2 -1
  33. package/dist/components/DatePicker/index.js +3 -2
  34. package/dist/components/DateRangePicker/dateRangePickerDropdown.js +2 -1
  35. package/dist/components/DateRangePicker/index.js +3 -2
  36. package/dist/components/DynamicLayout/index.js +2 -1
  37. package/dist/components/EmptyState/EmptyStateImage.d.ts.map +1 -1
  38. package/dist/components/EmptyState/EmptyStateImage.js +3 -2
  39. package/dist/components/EmptyState/index.js +2 -1
  40. package/dist/components/FileUpload/index.js +2 -1
  41. package/dist/components/FilterPanel/index.js +2 -1
  42. package/dist/components/FiltersStrip/index.js +2 -1
  43. package/dist/components/Header/index.js +2 -1
  44. package/dist/components/HomePage/index.js +2 -1
  45. package/dist/components/Input/index.js +2 -1
  46. package/dist/components/Loader/index.js +2 -1
  47. package/dist/components/Menu/IconMenuItem.js +2 -1
  48. package/dist/components/Menu/MenuHeaderInfo.js +2 -1
  49. package/dist/components/Menu/NestedMenuItem.js +2 -1
  50. package/dist/components/Menu/index.js +2 -1
  51. package/dist/components/Menu/nestedMenuItemsFromObject.js +2 -1
  52. package/dist/components/Modal/index.js +2 -1
  53. package/dist/components/Notification/NotificationBody/NotificationList/NotificationList.js +2 -1
  54. package/dist/components/Notification/index.js +2 -1
  55. package/dist/components/Panel/index.js +2 -1
  56. package/dist/components/Popover/index.js +2 -1
  57. package/dist/components/ProgressBar/index.js +2 -1
  58. package/dist/components/Prompt/index.js +2 -1
  59. package/dist/components/RadioButtonGroup/index.js +2 -1
  60. package/dist/components/Select/index.js +2 -1
  61. package/dist/components/Sidebar/index.js +2 -1
  62. package/dist/components/Slider/index.js +2 -1
  63. package/dist/components/Stepper/index.js +2 -1
  64. package/dist/components/Switch/index.js +2 -1
  65. package/dist/components/Table/TableImpl.js +4 -3
  66. package/dist/components/TableChat/EmptyContainer.js +2 -1
  67. package/dist/components/TableChat/TableChatSidePanel.js +2 -1
  68. package/dist/components/TableChat/components/ChatMessageSkeleton/ChatFooterSkeleton.js +2 -1
  69. package/dist/components/TableChat/components/ChatMessageSkeleton/ChatHeaderSkeleton.js +2 -1
  70. package/dist/components/TableChat/components/ChatMessageSkeleton/ChatMessageListSkeleton.js +2 -1
  71. package/dist/components/TableChat/components/ChatMessageSkeleton/ChatSkeleton.js +2 -1
  72. package/dist/components/TableChat/components/TableChatLeftSection/AddChatContainer/AddChatContainer.js +2 -1
  73. package/dist/components/TableChat/components/TableChatLeftSection/TableChatChannelHeader.js +2 -1
  74. package/dist/components/TableChat/components/TableChatRightSection/AvatarGroup/AvatarGroup.js +2 -1
  75. package/dist/components/TableChat/components/TableChatRightSection/ChatDefaultMessageType/ChatDefaultMessageType.js +2 -1
  76. package/dist/components/TableChat/components/TableChatRightSection/ChatDeleteMessageType/ChatDeletedMessageType.js +2 -1
  77. package/dist/components/TableChat/components/TableChatRightSection/ChatHeader/ChatHeader.js +2 -1
  78. package/dist/components/TableChat/components/TableChatRightSection/ChatInput/ChatInput.js +2 -1
  79. package/dist/components/TableChat/components/TableChatRightSection/ChatMessageAvatar/ChatMessageAvatar.js +2 -1
  80. package/dist/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.js +2 -1
  81. package/dist/components/TableChat/components/TableChatRightSection/ChatNotificationSettings/ChatNotificationSettings.js +2 -1
  82. package/dist/components/TableChat/components/TableChatRightSection/DateSeparator/DateSeparator.js +2 -1
  83. package/dist/components/TableChat/components/TableChatRightSection/PinedChatPanel/PinedChatPanel.js +2 -1
  84. package/dist/components/TableChat/components/TableChatRightSection/TableChatRightSection.js +2 -1
  85. package/dist/components/TableChat/components/TextEditor/EditorToolbar.js +2 -1
  86. package/dist/components/TableChat/components/TextEditor/Mention.js +2 -1
  87. package/dist/components/TableChat/components/TextEditor/MentionList.js +2 -1
  88. package/dist/components/Tabs/index.js +2 -1
  89. package/dist/components/Tag/index.js +2 -1
  90. package/dist/components/TagGroup/index.js +2 -1
  91. package/dist/components/TextArea/index.js +2 -1
  92. package/dist/components/Toast/index.js +2 -1
  93. package/dist/components/Tooltip/index.js +2 -1
  94. package/dist/components/common/HelperText/index.js +2 -1
  95. package/dist/components/index.d.ts +0 -1
  96. package/dist/components/index.d.ts.map +1 -1
  97. package/dist/components/index.js +0 -1
  98. package/dist/mcp-component-registry.json +1 -1
  99. package/dist/styles/entry.d.ts +2 -0
  100. package/dist/styles/entry.d.ts.map +1 -0
  101. package/dist/styles/entry.js +1 -0
  102. package/dist/styles/style.css +1 -1
  103. package/eslint-plugin/index.js +91 -0
  104. package/eslint-plugin/rules/no-barrel-import.js +224 -0
  105. package/package.json +153 -89
  106. package/dist/0db32db10ae1525f.svg +0 -9
  107. package/dist/2bc76319b1fa572e.svg +0 -9
  108. package/dist/39d49e4daed1a992.svg +0 -9
  109. package/dist/44beedf64dc29d19.svg +0 -9
  110. package/dist/49a4f914058314f1.svg +0 -9
  111. package/dist/6fc8a59d621a04a1.svg +0 -13
  112. package/dist/78f845dcfc981491.svg +0 -9
  113. package/dist/b31c0c2a19c1c19a.svg +0 -9
  114. package/dist/index.js +0 -308
  115. package/dist/index.js.map +0 -1
  116. package/src/components/Accordion/Accordion.styles.scss +0 -118
  117. package/src/components/Accordion/index.js +0 -104
  118. package/src/components/AccordionModern/AccordionModern.styles.scss +0 -121
  119. package/src/components/AccordionModern/SortableAccordionComp.js +0 -156
  120. package/src/components/AccordionModern/index.js +0 -103
  121. package/src/components/Alert/Alert.styles.scss +0 -131
  122. package/src/components/Alert/index.js +0 -71
  123. package/src/components/Avatar/Avatar.styles.scss +0 -25
  124. package/src/components/Avatar/index.js +0 -58
  125. package/src/components/Badge/Badges.style.scss +0 -55
  126. package/src/components/Badge/filled/filledIconLabelBadges/filledIconLabelBadges.styles.scss +0 -32
  127. package/src/components/Badge/filled/filledIconLabelBadges/index.js +0 -38
  128. package/src/components/Badge/filled/filledOnlyIconBadges/filledOnlyIconBadges.styles.scss +0 -26
  129. package/src/components/Badge/filled/filledOnlyIconBadges/index.js +0 -31
  130. package/src/components/Badge/filled/filledOnlyLabelBadges/filledOnlyLabelBadges.styles.scss +0 -66
  131. package/src/components/Badge/filled/filledOnlyLabelBadges/index.js +0 -31
  132. package/src/components/Badge/filled/index.js +0 -30
  133. package/src/components/Badge/index.js +0 -53
  134. package/src/components/Badge/stroke/index.js +0 -43
  135. package/src/components/Badge/stroke/strokeIconLabelBadges/index.js +0 -38
  136. package/src/components/Badge/stroke/strokeIconLabelBadges/strokeIconLabelBadges.styles.scss +0 -33
  137. package/src/components/Badge/stroke/strokeOnlyIconBadges/index.js +0 -31
  138. package/src/components/Badge/stroke/strokeOnlyIconBadges/strokeOnlyIconBadges.styles.scss +0 -27
  139. package/src/components/Badge/stroke/strokeOnlyLabelBadges/index.js +0 -31
  140. package/src/components/Badge/stroke/strokeOnlyLabelBadges/strokeOnlyLabelBadges.styles.scss +0 -89
  141. package/src/components/Badge/styles.css +0 -52
  142. package/src/components/Badge/subtle/index.js +0 -41
  143. package/src/components/Badge/subtle/subtleIOnlyIconBadges/index.js +0 -31
  144. package/src/components/Badge/subtle/subtleIOnlyIconBadges/subtleIOnlyIconBadges.scss +0 -26
  145. package/src/components/Badge/subtle/subtleIconLabelBadges/index.js +0 -38
  146. package/src/components/Badge/subtle/subtleIconLabelBadges/subtleIconLabelBadges.scss +0 -56
  147. package/src/components/Badge/subtle/subtleOnlyLabelBadges/index.js +0 -31
  148. package/src/components/Badge/subtle/subtleOnlyLabelBadges/subtleOnlyLabelBadges.scss +0 -70
  149. package/src/components/BottomSheet/BottomSheet.styles.scss +0 -46
  150. package/src/components/BottomSheet/index.js +0 -60
  151. package/src/components/Breadcrumbs/Breadcrumbs.styles.scss +0 -65
  152. package/src/components/Breadcrumbs/index.js +0 -121
  153. package/src/components/Button/Button.styles.scss +0 -345
  154. package/src/components/Button/index.js +0 -171
  155. package/src/components/ButtonGroup/ButtonGroup.styles.scss +0 -125
  156. package/src/components/ButtonGroup/index.js +0 -84
  157. package/src/components/Card/Card.styles.scss +0 -33
  158. package/src/components/Card/index.js +0 -21
  159. package/src/components/Chart/Chart.style.scss +0 -142
  160. package/src/components/Chart/index.js +0 -752
  161. package/src/components/ChatBot/bookMarkPanel.js +0 -74
  162. package/src/components/ChatBot/chatBot.style.scss +0 -1295
  163. package/src/components/ChatBot/chatBotFooter.js +0 -14
  164. package/src/components/ChatBot/chatBotLandingScreen.js +0 -26
  165. package/src/components/ChatBot/chatInput.js +0 -206
  166. package/src/components/ChatBot/chatbotModuleMenu.js +0 -278
  167. package/src/components/ChatBot/constant.js +0 -32
  168. package/src/components/ChatBot/conversationScreen.js +0 -281
  169. package/src/components/ChatBot/customScreen.js +0 -69
  170. package/src/components/ChatBot/historyPanel.js +0 -579
  171. package/src/components/ChatBot/index.js +0 -473
  172. package/src/components/ChatBot/newChatComponent.js +0 -105
  173. package/src/components/ChatBot/utils.js +0 -27
  174. package/src/components/Checkbox/Checkbox.styles.scss +0 -232
  175. package/src/components/Checkbox/dashed/index.js +0 -34
  176. package/src/components/Checkbox/default/index.js +0 -70
  177. package/src/components/Checkbox/index.js +0 -50
  178. package/src/components/Checkbox/withDropDown/index.js +0 -96
  179. package/src/components/Checkbox/withoutFormLabel/index.js +0 -46
  180. package/src/components/Chips/Chip.style.scss +0 -134
  181. package/src/components/Chips/index.js +0 -34
  182. package/src/components/CreateItemFlow/CreateItemFlow.styles.scss +0 -37
  183. package/src/components/CreateItemFlow/index.js +0 -145
  184. package/src/components/DatePicker/DatePicker.styles.scss +0 -519
  185. package/src/components/DatePicker/datePickerDropdown.js +0 -282
  186. package/src/components/DatePicker/datePickerFooter.js +0 -76
  187. package/src/components/DatePicker/datePickerInput.js +0 -333
  188. package/src/components/DatePicker/index.js +0 -288
  189. package/src/components/DatePicker/showMonthYearSelect.js +0 -119
  190. package/src/components/DateRangePicker/DateRangePicker.styles.scss +0 -635
  191. package/src/components/DateRangePicker/dateRangePickerCustom.js +0 -22
  192. package/src/components/DateRangePicker/dateRangePickerDropdown.js +0 -320
  193. package/src/components/DateRangePicker/dateRangePickerFooter.js +0 -50
  194. package/src/components/DateRangePicker/dateRangePickerInput.js +0 -544
  195. package/src/components/DateRangePicker/index.js +0 -393
  196. package/src/components/DateRangePicker/showMonthYearSelect.js +0 -103
  197. package/src/components/DateRangePicker/utils.js +0 -71
  198. package/src/components/DynamicLayout/DynamicLayout.styles.scss +0 -153
  199. package/src/components/DynamicLayout/index.js +0 -73
  200. package/src/components/EmptyState/EmptyState.styles.scss +0 -88
  201. package/src/components/EmptyState/EmptyStateImageComponent.jsx +0 -36
  202. package/src/components/EmptyState/index.js +0 -54
  203. package/src/components/FileUpload/FileUpload.styles.scss +0 -449
  204. package/src/components/FileUpload/index.js +0 -641
  205. package/src/components/FilterPanel/FilterPanel.styles.scss +0 -241
  206. package/src/components/FilterPanel/FilterPanelHeader.js +0 -15
  207. package/src/components/FilterPanel/PanelFooter.js +0 -65
  208. package/src/components/FilterPanel/PanelSidebar.js +0 -85
  209. package/src/components/FilterPanel/index.js +0 -147
  210. package/src/components/FiltersStrip/FiltersStrip.styles.scss +0 -343
  211. package/src/components/FiltersStrip/Slider/FilterSlider.styles.scss +0 -85
  212. package/src/components/FiltersStrip/Slider/Portal.js +0 -59
  213. package/src/components/FiltersStrip/Slider/index.js +0 -233
  214. package/src/components/FiltersStrip/appliedFilter.js +0 -180
  215. package/src/components/FiltersStrip/filterDropDown.js +0 -96
  216. package/src/components/FiltersStrip/index.js +0 -127
  217. package/src/components/FiltersStrip/mockData.js +0 -227
  218. package/src/components/Header/Header.styles.scss +0 -223
  219. package/src/components/Header/index.js +0 -156
  220. package/src/components/HomePage/HomePage.styles.scss +0 -1638
  221. package/src/components/HomePage/constant.js +0 -331
  222. package/src/components/HomePage/index.js +0 -675
  223. package/src/components/Input/Input.styles.scss +0 -318
  224. package/src/components/Input/helperText.js +0 -19
  225. package/src/components/Input/index.js +0 -60
  226. package/src/components/Input/inputWithIcon.js +0 -134
  227. package/src/components/Input/vanilaInput.js +0 -68
  228. package/src/components/Loader/Loader.styles.scss +0 -90
  229. package/src/components/Loader/index.js +0 -69
  230. package/src/components/Menu/IconMenuItem.js +0 -100
  231. package/src/components/Menu/Menu.styles.scss +0 -190
  232. package/src/components/Menu/MenuHeader.jsx +0 -84
  233. package/src/components/Menu/MenuHeaderInfo.jsx +0 -319
  234. package/src/components/Menu/MenuHeaderInfo.styles.scss +0 -123
  235. package/src/components/Menu/NestedMenuItem.js +0 -189
  236. package/src/components/Menu/index.js +0 -254
  237. package/src/components/Menu/nestedMenuItemsFromObject.js +0 -100
  238. package/src/components/Modal/Modal.styles.scss +0 -129
  239. package/src/components/Modal/index.js +0 -141
  240. package/src/components/MonthPicker/MonthPicker.styles.scss +0 -255
  241. package/src/components/MonthPicker/constant.js +0 -1
  242. package/src/components/MonthPicker/index.js +0 -373
  243. package/src/components/MonthRangePicker/MonthRangePicker.styles.scss +0 -383
  244. package/src/components/MonthRangePicker/constant.js +0 -1
  245. package/src/components/MonthRangePicker/index.js +0 -574
  246. package/src/components/Notification/Notification.styles.scss +0 -594
  247. package/src/components/Notification/NotificationBody/NotificationInfoList/chipsLists.js +0 -144
  248. package/src/components/Notification/NotificationBody/NotificationInfoList/index.js +0 -128
  249. package/src/components/Notification/NotificationBody/NotificationInfoList/notificationList.js +0 -165
  250. package/src/components/Notification/NotificationBody/NotificationPanels/chipsLists.js +0 -85
  251. package/src/components/Notification/NotificationBody/NotificationPanels/index.js +0 -259
  252. package/src/components/Notification/NotificationBody/NotificationPanels/notificationList.js +0 -637
  253. package/src/components/Notification/NotificationBody/index.js +0 -117
  254. package/src/components/Notification/index.js +0 -128
  255. package/src/components/Notification/mockData.js +0 -389
  256. package/src/components/Notification/notificationFooter.js +0 -31
  257. package/src/components/Notification/notificationHeader.js +0 -28
  258. package/src/components/Panel/Panel.styles.scss +0 -71
  259. package/src/components/Panel/index.js +0 -144
  260. package/src/components/Popover/Popover.styles.scss +0 -52
  261. package/src/components/Popover/index.js +0 -71
  262. package/src/components/Portal/index.js +0 -31
  263. package/src/components/ProgressBar/ProgressBar.styles.scss +0 -62
  264. package/src/components/ProgressBar/index.js +0 -40
  265. package/src/components/Prompt/Prompt.styles.scss +0 -107
  266. package/src/components/Prompt/index.js +0 -107
  267. package/src/components/RadioButtonGroup/RadioButtonGroup.styles.scss +0 -136
  268. package/src/components/RadioButtonGroup/index.js +0 -107
  269. package/src/components/Select/SearchFilter.js +0 -72
  270. package/src/components/Select/Select.styles.scss +0 -748
  271. package/src/components/Select/customGroupHeading.js +0 -24
  272. package/src/components/Select/dropdown.js +0 -65
  273. package/src/components/Select/hooks/index.js +0 -2
  274. package/src/components/Select/hooks/useClickOutside.js +0 -61
  275. package/src/components/Select/hooks/useMenuPosition.js +0 -288
  276. package/src/components/Select/index.js +0 -1307
  277. package/src/components/Select/menuList.js +0 -119
  278. package/src/components/Select/optionList.js +0 -215
  279. package/src/components/Select/selected-option-tags.js +0 -99
  280. package/src/components/Select/utils.js +0 -232
  281. package/src/components/Sidebar/Menus/childMenu.js +0 -88
  282. package/src/components/Sidebar/Menus/index.js +0 -130
  283. package/src/components/Sidebar/Menus/parentMenu.js +0 -173
  284. package/src/components/Sidebar/Sidebar.styles.scss +0 -411
  285. package/src/components/Sidebar/actions.js +0 -31
  286. package/src/components/Sidebar/index.js +0 -84
  287. package/src/components/Sidebar/mock.js +0 -202
  288. package/src/components/Slider/Sliders.styles.scss +0 -260
  289. package/src/components/Slider/index.js +0 -314
  290. package/src/components/Stepper/Stepper.styles.scss +0 -355
  291. package/src/components/Stepper/index.js +0 -101
  292. package/src/components/Switch/Switch.styles.scss +0 -96
  293. package/src/components/Switch/index.js +0 -59
  294. package/src/components/Table/AdvanceSearchModalItem.js +0 -392
  295. package/src/components/Table/AdvanceSortModal.js +0 -332
  296. package/src/components/Table/AgGridHeader.js +0 -1009
  297. package/src/components/Table/CommentsPortal.js +0 -428
  298. package/src/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModal.js +0 -323
  299. package/src/components/Table/NewAdvanceSearchModal/NewAdvanceSearchModalItem.js +0 -476
  300. package/src/components/Table/NoComments.js +0 -295
  301. package/src/components/Table/Table.styles.scss +0 -3859
  302. package/src/components/Table/actionBar.js +0 -43
  303. package/src/components/Table/advanceSearchModal.js +0 -797
  304. package/src/components/Table/commentPanel.js +0 -421
  305. package/src/components/Table/filterUtils.js +0 -850
  306. package/src/components/Table/index.js +0 -2175
  307. package/src/components/Table/mockData.js +0 -1344
  308. package/src/components/Table/tableFunctions.js +0 -1676
  309. package/src/components/Table/tableHeader.js +0 -476
  310. package/src/components/Table/tableIcons.js +0 -61
  311. package/src/components/Table/tableMoreOptions.js +0 -293
  312. package/src/components/Table/tablePagination.js +0 -63
  313. package/src/components/Table/tableSettings.js +0 -287
  314. package/src/components/Table/withCommentIcon.js +0 -107
  315. package/src/components/TableChat/EmptyContainer.jsx +0 -13
  316. package/src/components/TableChat/README.md +0 -588
  317. package/src/components/TableChat/TableChatSidePanel.jsx +0 -832
  318. package/src/components/TableChat/TableChatSidePanel.styles.scss +0 -57
  319. package/src/components/TableChat/components/ChatMessageSkeleton/ChatFooterSkeleton.jsx +0 -43
  320. package/src/components/TableChat/components/ChatMessageSkeleton/ChatHeaderSkeleton.jsx +0 -55
  321. package/src/components/TableChat/components/ChatMessageSkeleton/ChatMessageListSkeleton.jsx +0 -94
  322. package/src/components/TableChat/components/ChatMessageSkeleton/ChatSkeleton.jsx +0 -22
  323. package/src/components/TableChat/components/ChatMessageSkeleton/ChatSkeleton.scss +0 -179
  324. package/src/components/TableChat/components/SkeletonList.jsx +0 -12
  325. package/src/components/TableChat/components/TableChatLeftSection/AddChatContainer/AddChatContainer.jsx +0 -171
  326. package/src/components/TableChat/components/TableChatLeftSection/AddChatContainer/AddChatContainer.styles.scss +0 -37
  327. package/src/components/TableChat/components/TableChatLeftSection/ChannelCheckbox/ChannelCheckbox.jsx +0 -28
  328. package/src/components/TableChat/components/TableChatLeftSection/ChatChannelItem.jsx +0 -116
  329. package/src/components/TableChat/components/TableChatLeftSection/ChatChannelList.jsx +0 -89
  330. package/src/components/TableChat/components/TableChatLeftSection/ChatHeaderButton/ChatHeaderButton.jsx +0 -27
  331. package/src/components/TableChat/components/TableChatLeftSection/ChatHeaderNavigation.jsx +0 -191
  332. package/src/components/TableChat/components/TableChatLeftSection/ChatIconButton/ChatIconButton.jsx +0 -23
  333. package/src/components/TableChat/components/TableChatLeftSection/TableChatChannelHeader.jsx +0 -117
  334. package/src/components/TableChat/components/TableChatLeftSection/TableChatChannelHeader.styles.scss +0 -469
  335. package/src/components/TableChat/components/TableChatLeftSection/UnreadBadge/UnreadBadge.jsx +0 -16
  336. package/src/components/TableChat/components/TableChatRightSection/AvatarGroup/AvatarGroup.jsx +0 -119
  337. package/src/components/TableChat/components/TableChatRightSection/AvatarGroup/AvatarGroup.styles.scss +0 -87
  338. package/src/components/TableChat/components/TableChatRightSection/ChatDefaultMessageType/ChatDefaultMessageType.jsx +0 -216
  339. package/src/components/TableChat/components/TableChatRightSection/ChatDefaultMessageType/ChatDefaultMessageType.styles.scss +0 -291
  340. package/src/components/TableChat/components/TableChatRightSection/ChatDeleteMessageType/ChatDeletedMessageType.jsx +0 -19
  341. package/src/components/TableChat/components/TableChatRightSection/ChatDeleteMessageType/DeletedMessage.styles.scss +0 -55
  342. package/src/components/TableChat/components/TableChatRightSection/ChatEditedMessageType/ChatEditedMessageType.jsx +0 -61
  343. package/src/components/TableChat/components/TableChatRightSection/ChatEditedMessageType/ChatEditedMessageType.styles.scss +0 -13
  344. package/src/components/TableChat/components/TableChatRightSection/ChatHeader/ChatHeader.jsx +0 -432
  345. package/src/components/TableChat/components/TableChatRightSection/ChatHeader/ChatHeaderAction.jsx +0 -365
  346. package/src/components/TableChat/components/TableChatRightSection/ChatHeader/ChatHeaderInfo.jsx +0 -42
  347. package/src/components/TableChat/components/TableChatRightSection/ChatHeader/chatHeader.styles.scss +0 -323
  348. package/src/components/TableChat/components/TableChatRightSection/ChatInput/ChatInput.jsx +0 -793
  349. package/src/components/TableChat/components/TableChatRightSection/ChatInput/ChatInput.styles.scss +0 -394
  350. package/src/components/TableChat/components/TableChatRightSection/ChatMessageActions/ChatMessageActions.jsx +0 -61
  351. package/src/components/TableChat/components/TableChatRightSection/ChatMessageActions/ChatMessageActions.styles.scss +0 -28
  352. package/src/components/TableChat/components/TableChatRightSection/ChatMessageAvatar/ChatMessageAvatar.jsx +0 -11
  353. package/src/components/TableChat/components/TableChatRightSection/ChatMessageAvatar/ChatMessageAvatar.styles.scss +0 -3
  354. package/src/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.jsx +0 -220
  355. package/src/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.styles.scss +0 -128
  356. package/src/components/TableChat/components/TableChatRightSection/ChatNotificationSettings/ChatNotificationSettings.jsx +0 -246
  357. package/src/components/TableChat/components/TableChatRightSection/ChatNotificationSettings/ChatNotificationSettings.styles.scss +0 -210
  358. package/src/components/TableChat/components/TableChatRightSection/DateSeparator/DateSeparator.jsx +0 -52
  359. package/src/components/TableChat/components/TableChatRightSection/DateSeparator/DateSeparator.styles.scss +0 -34
  360. package/src/components/TableChat/components/TableChatRightSection/EmojiPicker/EmojiPicker.jsx +0 -31
  361. package/src/components/TableChat/components/TableChatRightSection/FileUploader/FileUploader.jsx +0 -170
  362. package/src/components/TableChat/components/TableChatRightSection/ImageUploader/ImageUploader.jsx +0 -165
  363. package/src/components/TableChat/components/TableChatRightSection/PinedChatPanel/PinedChat.styles.scss +0 -587
  364. package/src/components/TableChat/components/TableChatRightSection/PinedChatPanel/PinedChatPanel.jsx +0 -244
  365. package/src/components/TableChat/components/TableChatRightSection/ReplyBadge/ReplyBadge.jsx +0 -29
  366. package/src/components/TableChat/components/TableChatRightSection/ReplyBadge/ReplyBadge.styles.scss +0 -47
  367. package/src/components/TableChat/components/TableChatRightSection/TableChatRightSection.jsx +0 -1340
  368. package/src/components/TableChat/components/TableChatRightSection/TableChatRightSection.styles.scss +0 -147
  369. package/src/components/TableChat/components/TextEditor/EditorToolbar.jsx +0 -209
  370. package/src/components/TableChat/components/TextEditor/EditorToolbar.styles.scss +0 -61
  371. package/src/components/TableChat/components/TextEditor/Mention.jsx +0 -234
  372. package/src/components/TableChat/components/TextEditor/MentionList.jsx +0 -118
  373. package/src/components/TableChat/components/TextEditor/MentionList.scss +0 -146
  374. package/src/components/TableChat/components/TextEditor/styles.scss +0 -278
  375. package/src/components/TableChat/components/TextEditor/suggestion.js +0 -124
  376. package/src/components/TableChat/components/chatConfig.js +0 -64
  377. package/src/components/TableChat/hooks/useInfiniteScroll.js +0 -256
  378. package/src/components/TableOld/AgGridHeader.js +0 -545
  379. package/src/components/TableOld/Table.styles.scss +0 -2192
  380. package/src/components/TableOld/actionBar.js +0 -43
  381. package/src/components/TableOld/index.js +0 -598
  382. package/src/components/TableOld/mockData.js +0 -1344
  383. package/src/components/TableOld/tableFunctions.js +0 -1734
  384. package/src/components/TableOld/tableHeader.js +0 -251
  385. package/src/components/TableOld/tableIcons.js +0 -61
  386. package/src/components/TableOld/tablePagination.js +0 -64
  387. package/src/components/TableOld/tableSettings.js +0 -166
  388. package/src/components/Tabs/Tabs.styles.scss +0 -120
  389. package/src/components/Tabs/index.js +0 -91
  390. package/src/components/Tabs/tabPanel.js +0 -38
  391. package/src/components/Tag/Tags.styles.scss +0 -71
  392. package/src/components/Tag/filled.js +0 -48
  393. package/src/components/Tag/index.js +0 -54
  394. package/src/components/Tag/solid.js +0 -47
  395. package/src/components/Tag/stroke.js +0 -47
  396. package/src/components/Tag/utils.js +0 -12
  397. package/src/components/TagGroup/TagGroup.styles.scss +0 -7
  398. package/src/components/TagGroup/index.js +0 -6
  399. package/src/components/TextArea/TextArea.styles.scss +0 -158
  400. package/src/components/TextArea/index.js +0 -121
  401. package/src/components/Toast/Toast.styles.scss +0 -66
  402. package/src/components/Toast/index.js +0 -35
  403. package/src/components/Tooltip/Tooltips.styles.scss +0 -111
  404. package/src/components/Tooltip/index.js +0 -68
  405. package/src/components/common/HelperText/HelperText.styles.scss +0 -18
  406. package/src/components/common/HelperText/index.js +0 -44
  407. package/src/components/common/MentionEditor/MentionEditor.styles.scss +0 -301
  408. package/src/components/common/MentionEditor/MentionList/MentionList.styles.scss +0 -146
  409. package/src/components/common/MentionEditor/MentionList/index.js +0 -130
  410. package/src/components/common/MentionEditor/index.js +0 -246
  411. package/src/components/common/MentionEditor/suggestion.js +0 -124
  412. package/src/components/index.js +0 -53
  413. package/src/stories/Accordion.stories.js +0 -151
  414. package/src/stories/AccordionModern.stories.js +0 -263
  415. package/src/stories/Alert.stories.js +0 -103
  416. package/src/stories/Avatar.stories.js +0 -79
  417. package/src/stories/Badge.stories.js +0 -112
  418. package/src/stories/BottomSheet.stories.js +0 -224
  419. package/src/stories/Breadcrumbs.stories.js +0 -143
  420. package/src/stories/Button.stories.js +0 -190
  421. package/src/stories/ButtonGroup.stories.js +0 -123
  422. package/src/stories/Card.stories.js +0 -73
  423. package/src/stories/Changelog.mdx +0 -1006
  424. package/src/stories/Chart.stories.js +0 -2017
  425. package/src/stories/ChatBot.stories.js +0 -668
  426. package/src/stories/Checkbox.stories.js +0 -209
  427. package/src/stories/Chips.stories.js +0 -106
  428. package/src/stories/CreateItemFlow.stories.js +0 -255
  429. package/src/stories/DatePicker.stories.js +0 -311
  430. package/src/stories/DateRangePicker.stories.js +0 -364
  431. package/src/stories/EmptyState.stories.js +0 -110
  432. package/src/stories/FileUpload.stories.js +0 -169
  433. package/src/stories/FilterPanel.stories.js +0 -309
  434. package/src/stories/FiltersStrip.stories.js +0 -244
  435. package/src/stories/GettingStarted.mdx +0 -153
  436. package/src/stories/Header.stories.js +0 -185
  437. package/src/stories/HomePage.stories.js +0 -201
  438. package/src/stories/Input.stories.js +0 -165
  439. package/src/stories/Loader.stories.js +0 -33
  440. package/src/stories/Menu.stories.js +0 -309
  441. package/src/stories/Modal.stories.js +0 -185
  442. package/src/stories/MonthPicker.stories.js +0 -313
  443. package/src/stories/MonthRangePicker.stories.js +0 -255
  444. package/src/stories/Notification.stories.js +0 -500
  445. package/src/stories/Panel.stories.js +0 -179
  446. package/src/stories/Popover.stories.js +0 -125
  447. package/src/stories/ProgressBar.stories.js +0 -93
  448. package/src/stories/Prompt.stories.js +0 -120
  449. package/src/stories/RadioButtonGroup.stories.js +0 -83
  450. package/src/stories/Select.stories.js +0 -753
  451. package/src/stories/Sidebar.stories.js +0 -177
  452. package/src/stories/Slider.stories.js +0 -226
  453. package/src/stories/Stepper.stories.js +0 -158
  454. package/src/stories/Switch.stories.js +0 -72
  455. package/src/stories/Table.stories.js +0 -4323
  456. package/src/stories/TableChat.mdx +0 -992
  457. package/src/stories/TableChat.stories.js +0 -1712
  458. package/src/stories/TableOld.stories.js +0 -954
  459. package/src/stories/Tabs.stories.js +0 -253
  460. package/src/stories/Tag.stories.js +0 -92
  461. package/src/stories/TagGroup.stories.js +0 -39
  462. package/src/stories/TextArea.stories.js +0 -148
  463. package/src/stories/Toast.stories.js +0 -113
  464. package/src/stories/Tooltip.stories.js +0 -86
  465. package/src/stories/storybookLinks.mdx +0 -20
@@ -1,1009 +0,0 @@
1
- import React, {
2
- useRef,
3
- useState,
4
- useEffect,
5
- useCallback,
6
- Fragment,
7
- } from "react";
8
- import SearchIcon from "@mui/icons-material/Search";
9
- import { Input } from "../Input";
10
- import { Select } from "../Select";
11
- import CloseIcon from "@mui/icons-material/Close";
12
- import TuneIcon from "@mui/icons-material/Tune";
13
- import { debounce } from "../../utils/debounce";
14
- import TableSortIcon from "../../assets/tableSortIcon.svg";
15
- import TableSortAscIcon from "../../assets/Up.svg";
16
- import TableSortDescIcon from "../../assets/Down.svg";
17
- import { Badge } from "@mui/material";
18
- import { Tooltip } from "../Tooltip";
19
- import { DatePicker } from "../DatePicker";
20
- import { DateRangePicker } from "../DateRangePicker";
21
- import moment from "moment";
22
- import {
23
- parseInlineSearchValue,
24
- buildFilterModelEntry,
25
- syncFiltersWithModal,
26
- } from "../Table/filterUtils";
27
- function AgGridHeader({
28
- children,
29
- sortModel,
30
- handleInlineSearch,
31
- handleClearSearchInline,
32
- handleCloseInputField,
33
- debounceTime,
34
- initialFilters,
35
- enableHeaderTextWrap = true,
36
- ...rest
37
- }) {
38
- // Guard against undefined rest.column or rest.api
39
- if (!rest?.column || !rest?.api) {
40
- return null;
41
- }
42
-
43
- // Helper function to get label from dropdown options for boolean dropdowns
44
- const getLabelFromDropdownValue = (value, columnDef) => {
45
- if (
46
- !columnDef?.isThirdOptionDropdownIsBoolean ||
47
- !columnDef?.thirdOptionDropdownOptions ||
48
- !Array.isArray(columnDef.thirdOptionDropdownOptions)
49
- ) {
50
- return value;
51
- }
52
-
53
- // Find the option that matches the value
54
- const option = columnDef.thirdOptionDropdownOptions.find((opt) => {
55
- // Handle both object { label, value } and string formats
56
- const optValue = typeof opt === "object" ? opt.value : opt;
57
- const filterValue = String(value || "").toLowerCase();
58
- const optValueStr = String(optValue || "").toLowerCase();
59
-
60
- // Match exact value or common variations
61
- return (
62
- optValueStr === filterValue ||
63
- optValueStr === filterValue.replace(/\s+/g, "")
64
- );
65
- });
66
-
67
- // Return the label if found, otherwise return the original value
68
- if (option) {
69
- return typeof option === "object" ? option.label : option;
70
- }
71
-
72
- return value;
73
- };
74
-
75
- // Helper function to get option object from value
76
- // When reading from filter model, convert value like "true" back to option object { label: "Active", value: "true" }
77
- const getOptionFromDropdownValue = (value, columnDef) => {
78
- // Check if column has dropdown options
79
- if (
80
- !columnDef?.thirdOptionDropdownOptions ||
81
- !Array.isArray(columnDef.thirdOptionDropdownOptions) ||
82
- !value
83
- ) {
84
- return value;
85
- }
86
-
87
- const valueStr = String(value || "")
88
- .toLowerCase()
89
- .trim();
90
- if (!valueStr) {
91
- return value;
92
- }
93
-
94
- // Find the option that matches the value
95
- const option = columnDef.thirdOptionDropdownOptions.find((opt) => {
96
- const optValue = typeof opt === "object" ? opt.value : opt;
97
- const optValueStr = String(optValue || "")
98
- .toLowerCase()
99
- .trim();
100
- return optValueStr === valueStr;
101
- });
102
-
103
- // Return the full option object if found, otherwise return the original value
104
- if (option) {
105
- return typeof option === "object"
106
- ? option
107
- : { label: option, value: option };
108
- }
109
-
110
- return value;
111
- };
112
-
113
- // Helper function to get value from dropdown label (reverse lookup)
114
- // When user types a label like "Active", convert it to the corresponding value like "true"
115
- const getValueFromDropdownLabel = (inputText, columnDef) => {
116
- // Check if column has dropdown options
117
- if (!columnDef?.thirdOptionDropdownOptions || !inputText) {
118
- return inputText;
119
- }
120
-
121
- const inputTextLower = String(inputText || "")
122
- .toLowerCase()
123
- .trim();
124
- if (!inputTextLower) {
125
- return inputText;
126
- }
127
-
128
- // First, try exact match (case-insensitive)
129
- let option = columnDef.thirdOptionDropdownOptions.find((opt) => {
130
- const optLabel = typeof opt === "object" ? opt.label : opt;
131
- const optLabelStr = String(optLabel || "")
132
- .toLowerCase()
133
- .trim();
134
- return optLabelStr === inputTextLower;
135
- });
136
-
137
- // If no exact match, try partial match (for typing)
138
- if (!option) {
139
- option = columnDef.thirdOptionDropdownOptions.find((opt) => {
140
- const optLabel = typeof opt === "object" ? opt.label : opt;
141
- const optLabelStr = String(optLabel || "")
142
- .toLowerCase()
143
- .trim();
144
- // Match if label starts with input or input starts with label
145
- return (
146
- optLabelStr.startsWith(inputTextLower) ||
147
- inputTextLower.startsWith(optLabelStr)
148
- );
149
- });
150
- }
151
-
152
- // Return the value if found, otherwise return the original input text
153
- if (option) {
154
- return typeof option === "object" ? option.value : option;
155
- }
156
-
157
- return inputText;
158
- };
159
- const menuRef = useRef();
160
- const inputRef = useRef();
161
- const textRef = useRef();
162
- const [showInputField, setShowInputField] = useState(false);
163
- const [isTextTruncated, setIsTextTruncated] = useState(false);
164
- const [searchText, setSearchText] = useState("");
165
- const [menuVisible, setMenuvisible] = useState(false);
166
- const [columnWidth, setColumnWidth] = useState({});
167
- const [currentSort, setCurrentSort] = useState(
168
- rest?.column?.getSort?.() ?? null
169
- );
170
- const [hasActiveSearch, setHasActiveSearch] = useState(false);
171
- const [selectedDate, setSelectedDate] = useState(null);
172
- const [showDatePicker, setShowDatePicker] = useState(false);
173
- const [isInputFocused, setIsInputFocused] = useState(false);
174
- const originalSuppressHeaderKeyboardEventRef = useRef(
175
- rest?.column?.colDef?.suppressHeaderKeyboardEvent
176
- );
177
- const filterModel = rest.api.getFilterModel();
178
- const isFilterAppliedChanged = filterModel[rest.column?.colId];
179
- const [isOverflowText, setIsOverflowText] = useState(false);
180
- const headerTextRef = useRef(null);
181
- const containerRef = useRef(null);
182
- const [containerHeight, setContainerHeight] = useState(0);
183
- const onFilterChanged = useCallback(() => {
184
- const newFilterModel = rest?.api?.getFilterModel();
185
-
186
- const columnId = rest?.column?.field || rest?.column?.colId;
187
- const columnFilter = newFilterModel?.[columnId];
188
- let filterValue = "";
189
-
190
- if (columnFilter) {
191
- if (rest?.column?.colDef?.filter === "agDateColumnFilter") {
192
- const dateFrom = columnFilter?.dateFrom;
193
- const dateTo = columnFilter?.dateTo;
194
-
195
- // Handle date range
196
- if (dateFrom && dateTo) {
197
- setStartDate(moment(dateFrom));
198
- setEndDate(moment(dateTo));
199
- // Handle both Date objects and strings
200
- const dateFromStr =
201
- dateFrom instanceof Date
202
- ? moment(dateFrom).format("YYYY-MM-DD")
203
- : typeof dateFrom === "string"
204
- ? dateFrom.split(" ")[0]
205
- : dateFrom;
206
- const dateToStr =
207
- dateTo instanceof Date
208
- ? moment(dateTo).format("YYYY-MM-DD")
209
- : typeof dateTo === "string"
210
- ? dateTo.split(" ")[0]
211
- : dateTo;
212
- filterValue = `${dateFromStr} - ${dateToStr}`;
213
- }
214
- // Handle single date
215
- else if (dateFrom) {
216
- filterValue = moment(dateFrom);
217
- setSelectedDate(filterValue);
218
- // Handle both Date objects and strings
219
- if (dateFrom instanceof Date) {
220
- filterValue = moment(dateFrom).format("YYYY-MM-DD");
221
- } else if (typeof dateFrom === "string") {
222
- filterValue = dateFrom.split(" ")[0];
223
- } else {
224
- filterValue = dateFrom;
225
- }
226
- }
227
- } else {
228
- filterValue = columnFilter?.filter;
229
-
230
- // If thirdOptionAsDropdown is true, set the selected dropdown option
231
- if (rest?.column?.colDef?.thirdOptionAsDropdown && filterValue) {
232
- const dropdownOptions =
233
- rest?.column?.colDef?.thirdOptionDropdownOptions;
234
- const option = Array.isArray(dropdownOptions)
235
- ? dropdownOptions.find((opt) => {
236
- const optValue = typeof opt === "object" ? opt.value : opt;
237
- return String(optValue) === String(filterValue);
238
- })
239
- : null;
240
- if (option) {
241
- setSelectedDropdownOption(
242
- typeof option === "object"
243
- ? option
244
- : { label: option, value: option }
245
- );
246
- }
247
- } else {
248
- // For boolean dropdowns, show the label instead of the raw value
249
- const displayValue = getLabelFromDropdownValue(
250
- filterValue,
251
- rest?.column?.colDef
252
- );
253
- setSearchText(displayValue);
254
- }
255
- }
256
- // Check for advanced filter model
257
- const gridModel = rest?.api?.getModel?.();
258
- const advancedFilterModel = gridModel?.advancedFilterModel;
259
- if (
260
- advancedFilterModel &&
261
- rest?.column?.colId &&
262
- advancedFilterModel[rest.column.colId]
263
- ) {
264
- // Advanced filter exists for this column
265
- }
266
- }
267
-
268
- // ✅ Reset if filter removed
269
- if (!filterValue) {
270
- setSearchText("");
271
- setSelectedDropdownOption(null);
272
- setSelectedDate(null);
273
- setStartDate(null);
274
- setEndDate(null);
275
- setHasActiveSearch(false);
276
- } else {
277
- // If thirdOptionAsDropdown is true, the dropdown option is already set above
278
- if (!rest?.column?.colDef?.thirdOptionAsDropdown) {
279
- // For boolean dropdowns, show the label instead of the raw value
280
- const displayValue = getLabelFromDropdownValue(
281
- filterValue,
282
- rest?.column?.colDef
283
- );
284
- setSearchText(displayValue);
285
- }
286
- setHasActiveSearch(true);
287
- }
288
- }, [
289
- rest?.api,
290
- rest?.column?.colId,
291
- rest?.column?.field,
292
- rest?.column?.colDef?.thirdOptionDropdownOptions,
293
- ]);
294
-
295
- // Initialize dropdown options when thirdOptionAsDropdown is true
296
- useEffect(() => {
297
- if (rest?.column?.colDef?.thirdOptionAsDropdown) {
298
- const options = rest?.column?.colDef?.thirdOptionDropdownOptions || [];
299
- setCurrentDropdownOptions(options);
300
- }
301
- }, [
302
- rest?.column?.colDef?.thirdOptionAsDropdown,
303
- rest?.column?.colDef?.thirdOptionDropdownOptions,
304
- ]);
305
-
306
- const [startDate, setStartDate] = useState(null);
307
- const [endDate, setEndDate] = useState(null);
308
- // State for dropdown selection when thirdOptionAsDropdown is true
309
- const [isDropdownOpen, setIsDropdownOpen] = useState(false);
310
- const [selectedDropdownOption, setSelectedDropdownOption] = useState(null);
311
- const [currentDropdownOptions, setCurrentDropdownOptions] = useState([]);
312
-
313
- useEffect(() => {
314
- // Load initial filter state when grid loads
315
- const filterModel = rest.api.getFilterModel();
316
- if (filterModel[rest.column?.colId]) {
317
- const columnFilter =
318
- filterModel[rest?.column?.field || rest?.column?.colId];
319
- let filterValue;
320
- // Handle different filter types
321
- if (rest?.column?.colDef?.filter === "agDateColumnFilter") {
322
- const dateFrom = columnFilter?.dateFrom;
323
- const dateTo = columnFilter?.dateTo;
324
-
325
- // Handle date range
326
- if (dateFrom && dateTo) {
327
- setStartDate(moment(dateFrom));
328
- setEndDate(moment(dateTo));
329
- filterValue = `${dateFrom} - ${dateTo}`;
330
- }
331
- // Handle single date
332
- else if (dateFrom) {
333
- filterValue = moment(dateFrom);
334
- setSelectedDate(filterValue);
335
- }
336
- } else {
337
- // For other columns, use filter
338
- filterValue = columnFilter?.filter;
339
-
340
- // If thirdOptionAsDropdown is true, set the selected dropdown option
341
- if (rest?.column?.colDef?.thirdOptionAsDropdown && filterValue) {
342
- const options =
343
- rest?.column?.colDef?.thirdOptionDropdownOptions || [];
344
- const option = options.find((opt) => {
345
- const optValue = typeof opt === "object" ? opt.value : opt;
346
- return String(optValue) === String(filterValue);
347
- });
348
- if (option) {
349
- setSelectedDropdownOption(
350
- typeof option === "object"
351
- ? option
352
- : { label: option, value: option }
353
- );
354
- }
355
- } else {
356
- // For boolean dropdowns, show the label instead of the raw value
357
- const displayValue = getLabelFromDropdownValue(
358
- filterValue,
359
- rest?.column?.colDef
360
- );
361
- setSearchText(displayValue);
362
- }
363
- }
364
- setHasActiveSearch(!!filterValue);
365
- } else {
366
- setSearchText("");
367
- setSelectedDropdownOption(null);
368
- setSelectedDate(null);
369
- setStartDate(null);
370
- setEndDate(null);
371
- setHasActiveSearch(false);
372
- }
373
- rest.api.addEventListener("filterChanged", onFilterChanged);
374
- return () => {
375
- rest.api.removeEventListener("filterChanged", onFilterChanged);
376
- };
377
- }, [isFilterAppliedChanged, onFilterChanged, currentDropdownOptions]);
378
-
379
- const handleSearchChange = (value) => {
380
- // Handle custom inline search callback
381
- if (handleInlineSearch) {
382
- handleInlineSearch?.(value);
383
- rest?.onFilterChanged?.(rest);
384
- return;
385
- }
386
-
387
- setTimeout(() => {
388
- try {
389
- // Step 1: Parse the search value based on column type
390
- const { inputValue, filterType } = parseSearchValue(value);
391
-
392
- // Step 2: Apply filter to AG Grid
393
- applyFilterToGrid(inputValue, filterType);
394
-
395
- // Step 3: Sync with advance search modal
396
- syncFiltersWithModal(
397
- rest.api,
398
- rest.column.colId,
399
- inputValue,
400
- rest?.column?.colDef,
401
- rest?.colDefs,
402
- rest?.setValue,
403
- rest?.setInitialFilters,
404
- getOptionFromDropdownValue
405
- );
406
-
407
- // Step 4: Trigger filter change callbacks
408
- rest?.api?.onFilterChanged?.();
409
- rest?.onFilterChanged?.(rest);
410
- } catch (error) {
411
- console.warn("Error during filter operation:", error);
412
- }
413
- }, 0);
414
- };
415
-
416
- // Helper: Parse search value (handles dropdowns and regular columns)
417
- const parseSearchValue = (value) => {
418
- if (rest?.column?.colDef?.thirdOptionAsDropdown) {
419
- // Dropdown column: value is already the option value
420
- // Use "equals" for boolean columns, "contains" for others
421
- const isBoolean = rest?.column?.colDef?.dataType === "boolean";
422
- return {
423
- inputValue: value,
424
- filterType: isBoolean ? "equals" : "contains",
425
- };
426
- } else {
427
- // Regular column: use utility function
428
- const parsed = parseInlineSearchValue(
429
- value,
430
- rest?.column?.colDef,
431
- rest.api,
432
- rest.column.colId
433
- );
434
- return {
435
- inputValue: parsed.parsedValue,
436
- filterType: parsed.filterType,
437
- };
438
- }
439
- };
440
-
441
- // Helper: Apply filter to AG Grid
442
- const applyFilterToGrid = (inputValue, filterType) => {
443
- const currentFilterModel = rest?.sortModel || rest.api.getFilterModel();
444
- const filterEntry = buildFilterModelEntry(
445
- inputValue,
446
- filterType,
447
- rest?.column?.colDef
448
- );
449
-
450
- // If filterEntry is undefined (invalid/empty value), remove the filter
451
- if (filterEntry === undefined) {
452
- delete currentFilterModel[rest.column.colId];
453
- } else {
454
- currentFilterModel[rest.column.colId] = filterEntry;
455
- }
456
-
457
- rest.api.setFilterModel(currentFilterModel);
458
- // Handle empty state overlay after filters are applied
459
- setTimeout(() => {
460
- if (rest?.api) {
461
- const displayedRowCount = rest.api.getDisplayedRowCount();
462
- if (displayedRowCount === 0) {
463
- rest.api.showNoRowsOverlay();
464
- } else {
465
- rest.api.hideOverlay();
466
- }
467
- }
468
- }, 100);
469
- };
470
-
471
- const debouncedHandleSearchChange = useCallback(
472
- debounce((value) => {
473
- handleSearchChange(value);
474
- }, debounceTime),
475
- []
476
- );
477
-
478
- const handleSearch = (e) => {
479
- e.stopPropagation();
480
- if (rest?.column?.colDef?.filter === "agDateColumnFilter") {
481
- setShowDatePicker((prev) => !prev);
482
- } else if (rest?.column?.colDef?.thirdOptionAsDropdown) {
483
- // For dropdown columns, show the input field which will render the dropdown
484
- setShowInputField((prev) => !prev);
485
- // Open the dropdown when the search icon is clicked
486
- if (!showInputField) {
487
- setTimeout(() => {
488
- setIsDropdownOpen(true);
489
- }, 0);
490
- }
491
- } else {
492
- setShowInputField((prev) => !prev);
493
- }
494
- setColumnWidth((prev) => ({
495
- ...prev,
496
- [rest?.column?.colId]: rest?.column?.actualWidth,
497
- }));
498
- };
499
- const onCloseIconClick = (colId) => {
500
- setSearchText("");
501
- setSelectedDropdownOption(null);
502
- setSelectedDate(null);
503
- setStartDate(null);
504
- setEndDate(null);
505
- setHasActiveSearch(false);
506
- rest.api.destroyFilter(colId);
507
-
508
- // Remove from modal filters too
509
- const currentFilters = rest?.getValues?.()?.filters || [];
510
- const updatedFilters = currentFilters.filter(
511
- (f) => f?.column?.value !== colId
512
- );
513
- rest?.setValue?.("filters", updatedFilters);
514
- rest?.setInitialFilters?.(updatedFilters);
515
-
516
- if (rest.onFilterChanged) {
517
- rest.onFilterChanged(rest);
518
- }
519
- };
520
-
521
- const handleClickOutside = (event) => {
522
- setMenuvisible(false);
523
- };
524
-
525
- useEffect(() => {
526
- document.addEventListener("click", handleClickOutside);
527
-
528
- return () => {
529
- document.removeEventListener("click", handleClickOutside);
530
- };
531
- }, [menuVisible]);
532
-
533
- const onHeaderClick = () => {
534
- if (rest.applySort) {
535
- rest.applySort(rest.column.colId);
536
- return;
537
- }
538
- if (rest?.column?.colDef?.sortable) {
539
- const currentSortModel = rest.api.getColumnState();
540
- const currentSort = currentSortModel.find(
541
- (model) => model.colId === rest.column.colId
542
- );
543
- const newSort =
544
- currentSort?.sort === null
545
- ? "asc"
546
- : currentSort?.sort === "asc"
547
- ? "desc"
548
- : null;
549
- rest.api.applyColumnState({
550
- state: [{ colId: rest.column.colId, sort: newSort }],
551
- defaultState: { sort: null },
552
- });
553
- }
554
- };
555
-
556
- useEffect(() => {
557
- const onSortChanged = () =>
558
- setCurrentSort(rest?.column?.getSort?.() ?? null);
559
- rest?.api?.addEventListener("sortChanged", onSortChanged);
560
- return () => rest?.api?.removeEventListener("sortChanged", onSortChanged);
561
- }, [rest.api, rest.column]);
562
-
563
- const onColumnMoved = (params) => {
564
- if (params?.column?.colId && (showInputField || showDatePicker)) {
565
- setColumnWidth((prev) => ({
566
- ...prev,
567
- [params.column.colId]: params.column.actualWidth,
568
- }));
569
- // Store width in column state for cell renderers to access
570
- rest.api.applyColumnState({
571
- state: [
572
- {
573
- colId: params.column.colId,
574
- width: params.column.actualWidth,
575
- },
576
- ],
577
- defaultState: { width: null },
578
- });
579
- }
580
- };
581
-
582
- useEffect(() => {
583
- if (rest) {
584
- rest?.api?.addEventListener("columnResized", onColumnMoved);
585
- }
586
- return () => {
587
- rest?.api?.removeEventListener("columnResized", onColumnMoved);
588
- };
589
- }, [rest]);
590
-
591
- useEffect(() => {
592
- const colDef = rest?.column?.colDef;
593
- if (!colDef) return;
594
-
595
- if (isInputFocused) {
596
- if (originalSuppressHeaderKeyboardEventRef.current === undefined) {
597
- originalSuppressHeaderKeyboardEventRef.current =
598
- colDef.suppressHeaderKeyboardEvent;
599
- }
600
- colDef.suppressHeaderKeyboardEvent = () => true;
601
- } else {
602
- colDef.suppressHeaderKeyboardEvent =
603
- originalSuppressHeaderKeyboardEventRef.current;
604
- }
605
-
606
- return () => {
607
- if (colDef) {
608
- colDef.suppressHeaderKeyboardEvent =
609
- originalSuppressHeaderKeyboardEventRef.current;
610
- }
611
- };
612
- }, [isInputFocused, rest?.column?.colId]);
613
-
614
- useEffect(() => {
615
- if (containerRef.current) {
616
- setContainerHeight(containerRef.current?.clientHeight);
617
- }
618
- }, []);
619
-
620
- return (
621
- <div
622
- className={`custom-ag-header-container ${
623
- rest?.column?.colDef?.checkboxSelection ? "checkbox-selection" : ""
624
- } ${(rest?.column?.colDef?.customHeaderIcons || !rest?.column?.colDef?.suppressMenu || rest?.column?.colDef?.isSearchable) ? "with-icons" : ""}`}
625
- onClick={() => rest.onClick()}
626
- ref={containerRef}
627
- >
628
- {showDatePicker ? (
629
- <div
630
- className={`ia-search-input-field ${
631
- (columnWidth[rest?.column?.colId] ?? rest?.column?.actualWidth) <
632
- 200
633
- ? "ia-search-input-narrow"
634
- : ""
635
- }`}
636
- >
637
- {rest?.column?.colDef?.thirdOptionAsDateRangePicker ? (
638
- <DateRangePicker
639
- startDate={startDate}
640
- endDate={endDate}
641
- setStartDate={setStartDate}
642
- setEndDate={setEndDate}
643
- handleDatesChange={(start, end) => {
644
- setStartDate(start);
645
- setEndDate(end);
646
- }}
647
- withPortal
648
- fullWidth
649
- isAgGridCellRenderer
650
- displayFormat={
651
- rest?.column?.colDef?.displayFormat || "MM-DD-YYYY"
652
- }
653
- minDate={new Date("2000-01-01")}
654
- maxDate={new Date("2100-12-31")}
655
- onResetClick={() => {
656
- setStartDate(null);
657
- setEndDate(null);
658
- handleSearchChange(null);
659
- setShowDatePicker(false);
660
- }}
661
- onPrimaryButtonClick={() => {
662
- if (startDate && endDate) {
663
- handleSearchChange({ startDate, endDate });
664
- }
665
- setShowDatePicker(false);
666
- }}
667
- onSecondaryButtonClick={() => {
668
- setShowDatePicker(false);
669
- }}
670
- customIcon={
671
- rest?.column?.colDef?.advanceSearchEnabled && (
672
- <TuneIcon
673
- className="ia-search-input-field-custom-icon"
674
- onClick={(e) => {
675
- e.stopPropagation();
676
- if (rest.onAdvanceSearchClick) {
677
- rest.onAdvanceSearchClick(rest.column);
678
- return;
679
- }
680
- rest.toggleAdvanceSearch(
681
- rest?.column?.colDef
682
- ?.toShowDuplicateColumnInAdvanceSearch
683
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
684
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
685
- : rest.column.colId
686
- : rest.column.colId
687
- );
688
- }}
689
- />
690
- )
691
- }
692
- />
693
- ) : (
694
- <DatePicker
695
- selectedDate={selectedDate}
696
- setSelectedDate={setSelectedDate}
697
- placeholder="Select Date"
698
- withPortal
699
- fullWidth
700
- isAgGridCellRenderer
701
- displayFormat={
702
- rest?.column?.colDef?.displayFormat || "MM-DD-YYYY"
703
- }
704
- showMonthYearSelect
705
- minDate={new Date("2000-01-01")}
706
- maxDate={new Date("2100-12-31")}
707
- onTertiaryButtonClick={() => {
708
- setSelectedDate(null);
709
- handleSearchChange(null);
710
- setShowDatePicker(false);
711
- }}
712
- onPrimaryButtonClick={() => {
713
- handleSearchChange(selectedDate);
714
- setShowDatePicker(false);
715
- }}
716
- onSecondaryButtonClick={() => {
717
- setShowDatePicker(false);
718
- }}
719
- customIcon={
720
- rest?.column?.colDef?.advanceSearchEnabled && (
721
- <TuneIcon
722
- className="ia-search-input-field-custom-icon"
723
- onClick={() => {
724
- if (rest.onAdvanceSearchClick) {
725
- rest.onAdvanceSearchClick(rest.column);
726
- return;
727
- }
728
- rest.toggleAdvanceSearch(
729
- rest?.column?.colDef
730
- ?.toShowDuplicateColumnInAdvanceSearch
731
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
732
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
733
- : rest.column.colId
734
- : rest.column.colId
735
- );
736
- }}
737
- />
738
- )
739
- }
740
- />
741
- )}
742
- <CloseIcon
743
- className="ia-search-input-field-close-icon"
744
- onClick={() => {
745
- handleCloseInputField?.();
746
- setShowDatePicker(false);
747
- }}
748
- style={{ cursor: "pointer" }}
749
- />
750
- </div>
751
- ) : showInputField ? (
752
- <div
753
- className={`ia-search-input-field ${
754
- (columnWidth[rest?.column?.colId] ?? rest?.column?.actualWidth) <
755
- 200
756
- ? "ia-search-input-narrow"
757
- : ""
758
- }`}
759
- >
760
- {rest?.column?.colDef?.thirdOptionAsDropdown &&
761
- !rest?.column?.colDef?.toShowDuplicateColumnInAdvanceSearch ? (
762
- <div
763
- id="ia-select-option-dropdown-container"
764
- style={{
765
- position: "relative",
766
- width: selectedDropdownOption ? "66%" : "100%",
767
- }}
768
- >
769
- <Select
770
- placeholder="Select option"
771
- initialOptions={currentDropdownOptions}
772
- isOpen={isDropdownOpen}
773
- setIsOpen={setIsDropdownOpen}
774
- currentOptions={currentDropdownOptions}
775
- setCurrentOptions={setCurrentDropdownOptions}
776
- selectedOptions={selectedDropdownOption || null}
777
- setSelectedOptions={(option) => {
778
- setSelectedDropdownOption(option);
779
- if (option) {
780
- const value =
781
- typeof option === "object" ? option.value : option;
782
- setHasActiveSearch(true);
783
- handleSearchChange(value);
784
- } else {
785
- setHasActiveSearch(false);
786
- handleSearchChange(null);
787
- }
788
- }}
789
- isClearable={true}
790
- onClearAll={() => {
791
- setSelectedDropdownOption(null);
792
- setHasActiveSearch(false);
793
- handleSearchChange(null);
794
- }}
795
- withPortal
796
- // minWidth="136px"
797
- minWidth="100%"
798
- />
799
- {rest?.column?.colDef?.advanceSearchEnabled && (
800
- <TuneIcon
801
- className="ia-search-input-field-custom-icon"
802
- id="toggle-advance-search-icon"
803
- style={{
804
- position: "absolute",
805
- right: selectedDropdownOption ? "44px" : "28px",
806
- top: "50%",
807
- transform: "translateY(-50%)",
808
- cursor: "pointer",
809
- zIndex: 1,
810
- pointerEvents: "auto",
811
- }}
812
- onClick={(e) => {
813
- e.stopPropagation();
814
- if (rest.onAdvanceSearchClick) {
815
- rest.onAdvanceSearchClick(rest.column);
816
- return;
817
- }
818
- rest?.toggleAdvanceSearch(
819
- rest?.column?.colDef?.toShowDuplicateColumnInAdvanceSearch
820
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
821
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
822
- : rest.column.colId
823
- : rest.column.colId
824
- );
825
- }}
826
- />
827
- )}
828
- </div>
829
- ) : (
830
- <Input
831
- ref={inputRef}
832
- rightIcon={
833
- <Fragment>
834
- {searchText?.toString()?.length > 0 &&
835
- (columnWidth[rest?.column?.colId] ??
836
- rest?.column?.actualWidth) >= 200 && (
837
- <CloseIcon
838
- onClick={() => {
839
- if (handleClearSearchInline) {
840
- handleClearSearchInline(rest);
841
- }
842
- onCloseIconClick(rest.column.colId);
843
- }}
844
- />
845
- )}
846
- {rest?.column?.colDef?.advanceSearchEnabled && (
847
- <TuneIcon
848
- onClick={() => {
849
- if (rest.onAdvanceSearchClick) {
850
- rest.onAdvanceSearchClick(rest.column);
851
- return;
852
- }
853
- rest.toggleAdvanceSearch(
854
- rest?.column?.colDef
855
- ?.toShowDuplicateColumnInAdvanceSearch
856
- ? rest?.column?.colDef?.columnFieldsInAdvanceSearch
857
- ? rest?.column?.colDef
858
- ?.columnFieldsInAdvanceSearch
859
- : rest.column.colId
860
- : rest.column.colId,
861
- searchText
862
- );
863
- }}
864
- />
865
- )}
866
- </Fragment>
867
- }
868
- value={searchText}
869
- placeholder="Search"
870
- onChange={(e) => {
871
- setSearchText(e.target.value);
872
- setHasActiveSearch(!!e.target.value);
873
- debouncedHandleSearchChange(e.target.value);
874
- }}
875
- isDisabled={
876
- rest?.column?.colDef?.toShowDuplicateColumnInAdvanceSearch
877
- }
878
- iconClickOnDisabled={
879
- rest?.column?.colDef?.toShowDuplicateColumnInAdvanceSearch
880
- }
881
- />
882
- )}
883
- <CloseIcon
884
- className="ia-search-input-field-close-icon"
885
- onClick={() => {
886
- handleCloseInputField?.();
887
- setShowInputField(false);
888
- setSelectedDropdownOption(null);
889
- }}
890
- style={{ cursor: "pointer" }}
891
- />
892
- </div>
893
- ) : (
894
- // Original simple structure when enableHeaderTextWrap is false
895
- <React.Fragment>
896
- <div
897
- className={`ag-header-cell-text ${
898
- rest?.column?.colDef?.sortable ? "sortable" : ""
899
- } ${enableHeaderTextWrap ? "header-wrap-enabled" : ""}`}
900
- >
901
- {rest?.column?.colDef?.field === "Selection" ||
902
- rest?.column?.colDef?.checkboxSelection ? (
903
- children
904
- ) : (
905
- <div
906
- className="header-text-content"
907
- ref={headerTextRef}
908
- onMouseEnter={() => {
909
- setIsOverflowText(
910
- headerTextRef.current?.scrollWidth >
911
- headerTextRef.current?.clientWidth ||
912
- headerTextRef?.current?.scrollHeight >
913
- headerTextRef?.current?.clientHeight + 1
914
- );
915
- }}
916
- style={{ WebkitLineClamp: containerHeight > 40 ? 4 : 2 }}
917
- >
918
- <Tooltip
919
- variant="tertiary"
920
- title={
921
- isOverflowText && children !== "Selection" ? children : ""
922
- }
923
- orientation="top"
924
- >
925
- {children}
926
- </Tooltip>
927
- </div>
928
- )}
929
- {rest?.column?.colDef?.sortable && (
930
- <img
931
- src={
932
- currentSort === "asc"
933
- ? TableSortAscIcon
934
- : currentSort === "desc"
935
- ? TableSortDescIcon
936
- : TableSortIcon
937
- }
938
- alt="TableSortIcon"
939
- className="ia-table-sort-icon"
940
- onClick={onHeaderClick}
941
- />
942
- )}
943
- </div>
944
- <div
945
- className={`ia-icon-div ${
946
- hasActiveSearch ? "has-active-search" : ""
947
- } ${menuVisible ? "menu-visible" : ""}`}
948
- >
949
- {rest?.column?.colDef?.customHeaderIcons &&
950
- rest?.column?.colDef?.customHeaderIcons.map((icon) => {
951
- return icon;
952
- })}
953
- {rest?.column?.colDef?.isSearchable &&
954
- (hasActiveSearch || !showInputField) && (
955
- <Badge variant="dot" invisible={!hasActiveSearch}>
956
- <SearchIcon
957
- fontSize="small"
958
- onClick={
959
- rest.onColumnSearchClick
960
- ? () => {
961
- rest.onColumnSearchClick(rest);
962
- setShowInputField(true);
963
- if (
964
- rest?.column?.colDef?.filter ===
965
- "agDateColumnFilter"
966
- ) {
967
- setShowDatePicker(true);
968
- } else if (
969
- rest?.column?.colDef?.thirdOptionAsDropdown
970
- ) {
971
- // Open the dropdown when the search icon is clicked
972
- setTimeout(() => {
973
- setIsDropdownOpen(true);
974
- }, 0);
975
- }
976
- }
977
- : handleSearch
978
- }
979
- style={{
980
- color: "#60697D",
981
- cursor: "pointer",
982
- backgroundColor: hasActiveSearch && "#ECEEFD",
983
- display:
984
- menuVisible && !hasActiveSearch ? "none" : "block",
985
- }}
986
- />
987
- </Badge>
988
- )}
989
- {!rest?.column?.colDef?.suppressMenu && (
990
- <div className="custom-ag-header-icons">
991
- <button
992
- ref={menuRef}
993
- className={`custom-ag-menu-icon-button`}
994
- onClick={(e) => {
995
- e.stopPropagation();
996
- rest.showColumnMenu(menuRef.current);
997
- setMenuvisible(true);
998
- }}
999
- />
1000
- </div>
1001
- )}
1002
- </div>
1003
- </React.Fragment>
1004
- )}
1005
- </div>
1006
- );
1007
- }
1008
-
1009
- export default AgGridHeader;