@zydon/common 2.9.6 → 2.9.8

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 (769) hide show
  1. package/README.md +1 -0
  2. package/dist/Ai-HRRBCJSS.js +2 -0
  3. package/dist/Ai-HRRBCJSS.js.map +1 -0
  4. package/dist/AiChatBubbleIcon-CACZGYSH.js +2 -0
  5. package/dist/AiChatBubbleIcon-CACZGYSH.js.map +1 -0
  6. package/dist/AmazonPayIcon-ESKLYXQZ.js +2 -0
  7. package/dist/AmazonPayIcon-ESKLYXQZ.js.map +1 -0
  8. package/dist/AmericanExpressBadge-JPJAPW3B.js +2 -0
  9. package/dist/AmericanExpressBadge-JPJAPW3B.js.map +1 -0
  10. package/dist/AmericanExpressIcon-YBRR647B.js +2 -0
  11. package/dist/AmericanExpressIcon-YBRR647B.js.map +1 -0
  12. package/dist/Analytics02StrokeRounded-3VDFFHG7.js +2 -0
  13. package/dist/Analytics02StrokeRounded-3VDFFHG7.js.map +1 -0
  14. package/dist/ApplePayBadge-K4322NW2.js +2 -0
  15. package/dist/ApplePayBadge-K4322NW2.js.map +1 -0
  16. package/dist/ApplePayIcon-BRMDGVNO.js +2 -0
  17. package/dist/ApplePayIcon-BRMDGVNO.js.map +1 -0
  18. package/dist/ArrowDownWard-OAIJ5GFX.js +2 -0
  19. package/dist/ArrowDownWard-OAIJ5GFX.js.map +1 -0
  20. package/dist/ArrowGoBackIcon-RQAGWSBC.js +2 -0
  21. package/dist/ArrowGoBackIcon-RQAGWSBC.js.map +1 -0
  22. package/dist/ArrowGoFowardIcon-YCO6AWFM.js +2 -0
  23. package/dist/ArrowGoFowardIcon-YCO6AWFM.js.map +1 -0
  24. package/dist/ArrowiOSDownwardFillIcon-QCG3657O.js +2 -0
  25. package/dist/ArrowiOSDownwardFillIcon-QCG3657O.js.map +1 -0
  26. package/dist/ArtificialIntelligence08-QNUOVBLK.js +2 -0
  27. package/dist/ArtificialIntelligence08-QNUOVBLK.js.map +1 -0
  28. package/dist/ArtificialIntelligence08SolidRound-3MTVNRQB.js +2 -0
  29. package/dist/ArtificialIntelligence08SolidRound-3MTVNRQB.js.map +1 -0
  30. package/dist/ArtificialIntelligenceicon-FXDOFHDT.js +2 -0
  31. package/dist/ArtificialIntelligenceicon-FXDOFHDT.js.map +1 -0
  32. package/dist/Audio-WIIMGOFF.js +2 -0
  33. package/dist/Audio-WIIMGOFF.js.map +1 -0
  34. package/dist/BNBBadge-LUCCEXY3.js +2 -0
  35. package/dist/BNBBadge-LUCCEXY3.js.map +1 -0
  36. package/dist/BannerIcon-JXGMNBNZ.js +2 -0
  37. package/dist/BannerIcon-JXGMNBNZ.js.map +1 -0
  38. package/dist/BellDuotone-LNSNM4RG.js +2 -0
  39. package/dist/BellDuotone-LNSNM4RG.js.map +1 -0
  40. package/dist/BoletoBadge-KBXYSNUX.js +2 -0
  41. package/dist/BoletoBadge-KBXYSNUX.js.map +1 -0
  42. package/dist/BrandingIcon-5WHENYBN.js +2 -0
  43. package/dist/BrandingIcon-5WHENYBN.js.map +1 -0
  44. package/dist/CVCIcon-2WG6A6TR.js +2 -0
  45. package/dist/CVCIcon-2WG6A6TR.js.map +1 -0
  46. package/dist/CalculatorMoneyIcon-2L3SDBGK.js +2 -0
  47. package/dist/CalculatorMoneyIcon-2L3SDBGK.js.map +1 -0
  48. package/dist/CalendarClockIcon-QBEKKTAY.js +2 -0
  49. package/dist/CalendarClockIcon-QBEKKTAY.js.map +1 -0
  50. package/dist/CancelCircleSolidIcon-QLATPMES.js +2 -0
  51. package/dist/CancelCircleSolidIcon-QLATPMES.js.map +1 -0
  52. package/dist/CardsIcon-R7Z3RJZ3.js +2 -0
  53. package/dist/CardsIcon-R7Z3RJZ3.js.map +1 -0
  54. package/dist/CartCheck-IQTJA6TL.js +2 -0
  55. package/dist/CartCheck-IQTJA6TL.js.map +1 -0
  56. package/dist/Chart-BG54VMQ3.js +2 -0
  57. package/dist/Chart-BG54VMQ3.js.map +1 -0
  58. package/dist/CheckSuccessFileIcon-DOP7W7WP.js +2 -0
  59. package/dist/CheckSuccessFileIcon-DOP7W7WP.js.map +1 -0
  60. package/dist/CheckmarkCircleIcon-UPJ64LCA.js +2 -0
  61. package/dist/CheckmarkCircleIcon-UPJ64LCA.js.map +1 -0
  62. package/dist/CheckmarkCircleRoundedIcon-ZSP2JY73.js +2 -0
  63. package/dist/CheckmarkCircleRoundedIcon-ZSP2JY73.js.map +1 -0
  64. package/dist/CieloBadge-BOGXJRG5.js +2 -0
  65. package/dist/CieloBadge-BOGXJRG5.js.map +1 -0
  66. package/dist/CirculeIcon-TX3PYHT2.js +2 -0
  67. package/dist/CirculeIcon-TX3PYHT2.js.map +1 -0
  68. package/dist/CirrusIcon-SFVZTQLR.js +2 -0
  69. package/dist/CirrusIcon-SFVZTQLR.js.map +1 -0
  70. package/dist/DecimalIcon-T67IAYRX.js +2 -0
  71. package/dist/DecimalIcon-T67IAYRX.js.map +1 -0
  72. package/dist/DecimalIncreaseIcon-JDNIQET7.js +2 -0
  73. package/dist/DecimalIncreaseIcon-JDNIQET7.js.map +1 -0
  74. package/dist/DinersClubIcon-SJQ37PMB.js +2 -0
  75. package/dist/DinersClubIcon-SJQ37PMB.js.map +1 -0
  76. package/dist/DiscoverIcon-NYAHQC6O.js +2 -0
  77. package/dist/DiscoverIcon-NYAHQC6O.js.map +1 -0
  78. package/dist/Doc-TEOHKZH7.js +2 -0
  79. package/dist/Doc-TEOHKZH7.js.map +1 -0
  80. package/dist/Document-3YST3EZP.js +2 -0
  81. package/dist/Document-3YST3EZP.js.map +1 -0
  82. package/dist/DotIcon-OBYWESHI.js +2 -0
  83. package/dist/DotIcon-OBYWESHI.js.map +1 -0
  84. package/dist/DoubleChatBubbleIcon-6HERGTPB.js +2 -0
  85. package/dist/DoubleChatBubbleIcon-6HERGTPB.js.map +1 -0
  86. package/dist/DragAndDrop-A43BXSQU.js +2 -0
  87. package/dist/DragAndDrop-A43BXSQU.js.map +1 -0
  88. package/dist/DropdownIcon-GFXXDNWB.js +2 -0
  89. package/dist/DropdownIcon-GFXXDNWB.js.map +1 -0
  90. package/dist/EloBadge-6AKGKZEK.js +2 -0
  91. package/dist/EloBadge-6AKGKZEK.js.map +1 -0
  92. package/dist/EloIcon-UTEC5BSJ.js +2 -0
  93. package/dist/EloIcon-UTEC5BSJ.js.map +1 -0
  94. package/dist/ErrorBellIcon-TUS3Q4UE.js +2 -0
  95. package/dist/ErrorBellIcon-TUS3Q4UE.js.map +1 -0
  96. package/dist/Excel-S6W6DDHP.js +2 -0
  97. package/dist/Excel-S6W6DDHP.js.map +1 -0
  98. package/dist/FavouriteIcon-FE3K2S6D.js +2 -0
  99. package/dist/FavouriteIcon-FE3K2S6D.js.map +1 -0
  100. package/dist/FavouriteRoundedIcon-HAOEQ5QL.js +2 -0
  101. package/dist/FavouriteRoundedIcon-HAOEQ5QL.js.map +1 -0
  102. package/dist/File-EIHAPUR2.js +2 -0
  103. package/dist/File-EIHAPUR2.js.map +1 -0
  104. package/dist/FileCheckDuotone-W5CWO2XU.js +2 -0
  105. package/dist/FileCheckDuotone-W5CWO2XU.js.map +1 -0
  106. package/dist/FileCorruptedDuotone-MPVVWVXH.js +2 -0
  107. package/dist/FileCorruptedDuotone-MPVVWVXH.js.map +1 -0
  108. package/dist/FilterListIcon-3FGGJL63.js +2 -0
  109. package/dist/FilterListIcon-3FGGJL63.js.map +1 -0
  110. package/dist/FilterPersonalization-WRVUTOMS.js +2 -0
  111. package/dist/FilterPersonalization-WRVUTOMS.js.map +1 -0
  112. package/dist/FlashRoundedIcon-CTI5NE2Q.js +2 -0
  113. package/dist/FlashRoundedIcon-CTI5NE2Q.js.map +1 -0
  114. package/dist/Folder-BJE54IAC.js +2 -0
  115. package/dist/Folder-BJE54IAC.js.map +1 -0
  116. package/dist/GithubIcon-Y6UXGZAN.js +2 -0
  117. package/dist/GithubIcon-Y6UXGZAN.js.map +1 -0
  118. package/dist/GithubStrokedIcon-U5Y7RKWB.js +2 -0
  119. package/dist/GithubStrokedIcon-U5Y7RKWB.js.map +1 -0
  120. package/dist/GooglePayIcon-WSVU5UQ7.js +2 -0
  121. package/dist/GooglePayIcon-WSVU5UQ7.js.map +1 -0
  122. package/dist/HexagonWarning-PG757W73.js +2 -0
  123. package/dist/HexagonWarning-PG757W73.js.map +1 -0
  124. package/dist/HiperIcon-Q5XF5HIT.js +2 -0
  125. package/dist/HiperIcon-Q5XF5HIT.js.map +1 -0
  126. package/dist/HipercardIcon-NIIGEQDE.js +2 -0
  127. package/dist/HipercardIcon-NIIGEQDE.js.map +1 -0
  128. package/dist/HorizontalLinesIcon-JFFFCIMN.js +2 -0
  129. package/dist/HorizontalLinesIcon-JFFFCIMN.js.map +1 -0
  130. package/dist/HorizontalListIcon-VYTATWOB.js +2 -0
  131. package/dist/HorizontalListIcon-VYTATWOB.js.map +1 -0
  132. package/dist/HtmlIcon-SX2CMSLK.js +2 -0
  133. package/dist/HtmlIcon-SX2CMSLK.js.map +1 -0
  134. package/dist/Img-CYUIID5D.js +2 -0
  135. package/dist/Img-CYUIID5D.js.map +1 -0
  136. package/dist/InfoIcon-Z3XET4MH.js +2 -0
  137. package/dist/InfoIcon-Z3XET4MH.js.map +1 -0
  138. package/dist/InformationsIcon-SQEJKVPA.js +2 -0
  139. package/dist/InformationsIcon-SQEJKVPA.js.map +1 -0
  140. package/dist/IntegerNumberIcon-MTTBRM6U.js +2 -0
  141. package/dist/IntegerNumberIcon-MTTBRM6U.js.map +1 -0
  142. package/dist/Invoice01Icon-OC6PMY4O.js +2 -0
  143. package/dist/Invoice01Icon-OC6PMY4O.js.map +1 -0
  144. package/dist/Invoice03Icon-B4M4AFH6.js +2 -0
  145. package/dist/Invoice03Icon-B4M4AFH6.js.map +1 -0
  146. package/dist/JCBIcon-ATF2XSYG.js +2 -0
  147. package/dist/JCBIcon-ATF2XSYG.js.map +1 -0
  148. package/dist/Js-7JJD4LND.js +2 -0
  149. package/dist/Js-7JJD4LND.js.map +1 -0
  150. package/dist/KeyAccessIcon-6VUHFADF.js +2 -0
  151. package/dist/KeyAccessIcon-6VUHFADF.js.map +1 -0
  152. package/dist/ListDuotone-N574ZFMO.js +2 -0
  153. package/dist/ListDuotone-N574ZFMO.js.map +1 -0
  154. package/dist/ListSquareIcon-DFKXPOAP.js +2 -0
  155. package/dist/ListSquareIcon-DFKXPOAP.js.map +1 -0
  156. package/dist/LowPriorityIcon-7XQ7E52G.js +2 -0
  157. package/dist/LowPriorityIcon-7XQ7E52G.js.map +1 -0
  158. package/dist/MaestroIcon-3Z6PCJQK.js +2 -0
  159. package/dist/MaestroIcon-3Z6PCJQK.js.map +1 -0
  160. package/dist/ManagerIcon-JNQC4CRV.js +2 -0
  161. package/dist/ManagerIcon-JNQC4CRV.js.map +1 -0
  162. package/dist/MastercardBadge-NIXYRVEF.js +2 -0
  163. package/dist/MastercardBadge-NIXYRVEF.js.map +1 -0
  164. package/dist/MastercardIcon-2UOY62G2.js +2 -0
  165. package/dist/MastercardIcon-2UOY62G2.js.map +1 -0
  166. package/dist/MediaAudioFilesIcon-I2NV4SPL.js +2 -0
  167. package/dist/MediaAudioFilesIcon-I2NV4SPL.js.map +1 -0
  168. package/dist/MediaDocFilesIcon-ZD7INJFK.js +2 -0
  169. package/dist/MediaDocFilesIcon-ZD7INJFK.js.map +1 -0
  170. package/dist/MediaGenericFilesIcon-CRRDQR3R.js +2 -0
  171. package/dist/MediaGenericFilesIcon-CRRDQR3R.js.map +1 -0
  172. package/dist/MediaImageFilesIcon-V6QERF7A.js +2 -0
  173. package/dist/MediaImageFilesIcon-V6QERF7A.js.map +1 -0
  174. package/dist/MediaPDFFilesIcon-KZX435I4.js +2 -0
  175. package/dist/MediaPDFFilesIcon-KZX435I4.js.map +1 -0
  176. package/dist/MediaPPSXFilesIcon-WLMCDNMC.js +2 -0
  177. package/dist/MediaPPSXFilesIcon-WLMCDNMC.js.map +1 -0
  178. package/dist/MediaSheetFilesIcon-EMM5UJAH.js +2 -0
  179. package/dist/MediaSheetFilesIcon-EMM5UJAH.js.map +1 -0
  180. package/dist/MediaTxtFilesIcon-ZVV7COTG.js +2 -0
  181. package/dist/MediaTxtFilesIcon-ZVV7COTG.js.map +1 -0
  182. package/dist/MediaVideoFilesIcon-IPFV4MTP.js +2 -0
  183. package/dist/MediaVideoFilesIcon-IPFV4MTP.js.map +1 -0
  184. package/dist/MediaZipFilesIcon-HZHTWXYX.js +2 -0
  185. package/dist/MediaZipFilesIcon-HZHTWXYX.js.map +1 -0
  186. package/dist/MercadoPagoIcon-M7J7N2I2.js +2 -0
  187. package/dist/MercadoPagoIcon-M7J7N2I2.js.map +1 -0
  188. package/dist/MiniBannerIcon-APEKOIEK.js +2 -0
  189. package/dist/MiniBannerIcon-APEKOIEK.js.map +1 -0
  190. package/dist/MoneyIcon-SZAJJUTN.js +2 -0
  191. package/dist/MoneyIcon-SZAJJUTN.js.map +1 -0
  192. package/dist/MoreGrid-TJ25UUM4.js +2 -0
  193. package/dist/MoreGrid-TJ25UUM4.js.map +1 -0
  194. package/dist/MoreIcon-3CHGTRN4.js +2 -0
  195. package/dist/MoreIcon-3CHGTRN4.js.map +1 -0
  196. package/dist/NumberOneOutlinedIcon-352KD4CW.js +2 -0
  197. package/dist/NumberOneOutlinedIcon-352KD4CW.js.map +1 -0
  198. package/dist/OpenedBoxIcon-WYZUBMY3.js +2 -0
  199. package/dist/OpenedBoxIcon-WYZUBMY3.js.map +1 -0
  200. package/dist/OrdenatingIcon-XVNXQIBA.js +2 -0
  201. package/dist/OrdenatingIcon-XVNXQIBA.js.map +1 -0
  202. package/dist/OrdersIcon-ZX47YHXN.js +2 -0
  203. package/dist/OrdersIcon-ZX47YHXN.js.map +1 -0
  204. package/dist/PauseSolidIcon-5VO5KMVS.js +2 -0
  205. package/dist/PauseSolidIcon-5VO5KMVS.js.map +1 -0
  206. package/dist/PayPalIcon-6U2IPMIR.js +2 -0
  207. package/dist/PayPalIcon-6U2IPMIR.js.map +1 -0
  208. package/dist/Pdf-3MIKBHWC.js +2 -0
  209. package/dist/Pdf-3MIKBHWC.js.map +1 -0
  210. package/dist/Pdf-O532QILP.js +2 -0
  211. package/dist/Pdf-O532QILP.js.map +1 -0
  212. package/dist/PencilEditAiIcon-DKO3PHLZ.js +2 -0
  213. package/dist/PencilEditAiIcon-DKO3PHLZ.js.map +1 -0
  214. package/dist/PencilIcon-AJ42SH5O.js +2 -0
  215. package/dist/PencilIcon-AJ42SH5O.js.map +1 -0
  216. package/dist/PermanentJobIcon-WKICOFHL.js +2 -0
  217. package/dist/PermanentJobIcon-WKICOFHL.js.map +1 -0
  218. package/dist/PersonChatBubbleIcon-K6VX75XA.js +2 -0
  219. package/dist/PersonChatBubbleIcon-K6VX75XA.js.map +1 -0
  220. package/dist/PixBadge-KU5XDGOF.js +2 -0
  221. package/dist/PixBadge-KU5XDGOF.js.map +1 -0
  222. package/dist/PixIcon-WQ7XHTCY.js +2 -0
  223. package/dist/PixIcon-WQ7XHTCY.js.map +1 -0
  224. package/dist/PlaySolidIcon-EKAVZ5W4.js +2 -0
  225. package/dist/PlaySolidIcon-EKAVZ5W4.js.map +1 -0
  226. package/dist/PowerPoint-FFF5LH3W.js +2 -0
  227. package/dist/PowerPoint-FFF5LH3W.js.map +1 -0
  228. package/dist/ProductBoxIcon-5V3V6NF3.js +2 -0
  229. package/dist/ProductBoxIcon-5V3V6NF3.js.map +1 -0
  230. package/dist/ProductSearchBoxIcon-KCCT725M.js +2 -0
  231. package/dist/ProductSearchBoxIcon-KCCT725M.js.map +1 -0
  232. package/dist/ProductsIcon-JO2KNTSS.js +2 -0
  233. package/dist/ProductsIcon-JO2KNTSS.js.map +1 -0
  234. package/dist/Pts-67NTPGDS.js +2 -0
  235. package/dist/Pts-67NTPGDS.js.map +1 -0
  236. package/dist/RadioButtonCheckedIcon-EWTWPQFW.js +2 -0
  237. package/dist/RadioButtonCheckedIcon-EWTWPQFW.js.map +1 -0
  238. package/dist/ReverseIcon-OFJ4LNQH.js +2 -0
  239. package/dist/ReverseIcon-OFJ4LNQH.js.map +1 -0
  240. package/dist/RocketIcon-L534C4EJ.js +2 -0
  241. package/dist/RocketIcon-L534C4EJ.js.map +1 -0
  242. package/dist/RowInsertIcon-G45YHGLO.js +2 -0
  243. package/dist/RowInsertIcon-G45YHGLO.js.map +1 -0
  244. package/dist/SamsungPayBadge-2VAXUKJ2.js +2 -0
  245. package/dist/SamsungPayBadge-2VAXUKJ2.js.map +1 -0
  246. package/dist/SaveDiskIcon-5JXIKO3M.js +2 -0
  247. package/dist/SaveDiskIcon-5JXIKO3M.js.map +1 -0
  248. package/dist/SettingsError02Icon-QZIG4WXQ.js +2 -0
  249. package/dist/SettingsError02Icon-QZIG4WXQ.js.map +1 -0
  250. package/dist/ShoppingCartIcon-TBGUTNED.js +2 -0
  251. package/dist/ShoppingCartIcon-TBGUTNED.js.map +1 -0
  252. package/dist/SizeBoxIcon-DBXZR3VE.js +2 -0
  253. package/dist/SizeBoxIcon-DBXZR3VE.js.map +1 -0
  254. package/dist/SortByTimeDuotone-MTS7VKYE.js +2 -0
  255. package/dist/SortByTimeDuotone-MTS7VKYE.js.map +1 -0
  256. package/dist/Star02Icon-FNFBLGJF.js +2 -0
  257. package/dist/Star02Icon-FNFBLGJF.js.map +1 -0
  258. package/dist/TapeMeasureIcon-HDAVEKIQ.js +2 -0
  259. package/dist/TapeMeasureIcon-HDAVEKIQ.js.map +1 -0
  260. package/dist/ThumbsDownRoundedIcon-7THAELTG.js +2 -0
  261. package/dist/ThumbsDownRoundedIcon-7THAELTG.js.map +1 -0
  262. package/dist/ThumbsUpRoundedIcon-XGYWY3JR.js +2 -0
  263. package/dist/ThumbsUpRoundedIcon-XGYWY3JR.js.map +1 -0
  264. package/dist/TicketBarCodeIcon-6YBNKJAO.js +2 -0
  265. package/dist/TicketBarCodeIcon-6YBNKJAO.js.map +1 -0
  266. package/dist/TimeListIcon-4ZWXGWEI.js +2 -0
  267. package/dist/TimeListIcon-4ZWXGWEI.js.map +1 -0
  268. package/dist/TornListIcon-TEIS2FAB.js +2 -0
  269. package/dist/TornListIcon-TEIS2FAB.js.map +1 -0
  270. package/dist/Txt-WC5UCDET.js +2 -0
  271. package/dist/Txt-WC5UCDET.js.map +1 -0
  272. package/dist/UnionPayIcon-Z7IYZ4Y2.js +2 -0
  273. package/dist/UnionPayIcon-Z7IYZ4Y2.js.map +1 -0
  274. package/dist/UserDeniedAccessIcon-ZWVL6R4A.js +2 -0
  275. package/dist/UserDeniedAccessIcon-ZWVL6R4A.js.map +1 -0
  276. package/dist/UserGrantedAccessIcon-B3NLERNI.js +2 -0
  277. package/dist/UserGrantedAccessIcon-B3NLERNI.js.map +1 -0
  278. package/dist/VerifiedIcon-V47B7YEF.js +2 -0
  279. package/dist/VerifiedIcon-V47B7YEF.js.map +1 -0
  280. package/dist/Video-OHLCKWI4.js +2 -0
  281. package/dist/Video-OHLCKWI4.js.map +1 -0
  282. package/dist/ViewColumnIcon-643QS4QM.js +2 -0
  283. package/dist/ViewColumnIcon-643QS4QM.js.map +1 -0
  284. package/dist/VisaBadge-I4DM7OIR.js +2 -0
  285. package/dist/VisaBadge-I4DM7OIR.js.map +1 -0
  286. package/dist/VisaIcon-2MBUERWN.js +2 -0
  287. package/dist/VisaIcon-2MBUERWN.js.map +1 -0
  288. package/dist/Wallet03SolidRounded-OJOGIKTN.js +2 -0
  289. package/dist/Wallet03SolidRounded-OJOGIKTN.js.map +1 -0
  290. package/dist/WarehouseIcon-VHFQRYGZ.js +2 -0
  291. package/dist/WarehouseIcon-VHFQRYGZ.js.map +1 -0
  292. package/dist/WarningTriangleSolidIcon-MOCG2TDP.js +2 -0
  293. package/dist/WarningTriangleSolidIcon-MOCG2TDP.js.map +1 -0
  294. package/dist/WaveFileIcon-NVDMI5CT.js +2 -0
  295. package/dist/WaveFileIcon-NVDMI5CT.js.map +1 -0
  296. package/dist/WhatsappButtonIcon-YFJJN4Y3.js +2 -0
  297. package/dist/WhatsappButtonIcon-YFJJN4Y3.js.map +1 -0
  298. package/dist/WithdrawIcon-7EJAE26Q.js +2 -0
  299. package/dist/WithdrawIcon-7EJAE26Q.js.map +1 -0
  300. package/dist/Word-WP62OZHI.js +2 -0
  301. package/dist/Word-WP62OZHI.js.map +1 -0
  302. package/dist/Zip-DMOUO6UD.js +2 -0
  303. package/dist/Zip-DMOUO6UD.js.map +1 -0
  304. package/dist/ZoeAiIcon-T2NCFUE3.js +2 -0
  305. package/dist/ZoeAiIcon-T2NCFUE3.js.map +1 -0
  306. package/dist/ZydonIcon-G777IXYM.js +2 -0
  307. package/dist/ZydonIcon-G777IXYM.js.map +1 -0
  308. package/dist/ZydonPayIcon-CLINWXF5.js +2 -0
  309. package/dist/ZydonPayIcon-CLINWXF5.js.map +1 -0
  310. package/dist/brazil-TQ5YVZEI.js +2 -0
  311. package/dist/brazil-TQ5YVZEI.js.map +1 -0
  312. package/dist/chunk-23HPXWBG.js +6 -0
  313. package/dist/chunk-23HPXWBG.js.map +1 -0
  314. package/dist/chunk-2A3JEAR2.js +6 -0
  315. package/dist/chunk-2A3JEAR2.js.map +1 -0
  316. package/dist/chunk-2E3WI5RW.js +6 -0
  317. package/dist/chunk-2E3WI5RW.js.map +1 -0
  318. package/dist/chunk-2I3FMGM3.js +6 -0
  319. package/dist/chunk-2I3FMGM3.js.map +1 -0
  320. package/dist/chunk-2OSAD34A.js +6 -0
  321. package/dist/chunk-2OSAD34A.js.map +1 -0
  322. package/dist/chunk-2TEGEJGR.js +6 -0
  323. package/dist/chunk-2TEGEJGR.js.map +1 -0
  324. package/dist/chunk-2ZGXYB4B.js +6 -0
  325. package/dist/chunk-2ZGXYB4B.js.map +1 -0
  326. package/dist/chunk-34CI5VGF.js +6 -0
  327. package/dist/chunk-34CI5VGF.js.map +1 -0
  328. package/dist/chunk-35FR4FOA.js +6 -0
  329. package/dist/chunk-35FR4FOA.js.map +1 -0
  330. package/dist/chunk-36LUOVQV.js +6 -0
  331. package/dist/chunk-36LUOVQV.js.map +1 -0
  332. package/dist/chunk-3E2CZNAB.js +6 -0
  333. package/dist/chunk-3E2CZNAB.js.map +1 -0
  334. package/dist/chunk-3EFT6YSD.js +6 -0
  335. package/dist/chunk-3EFT6YSD.js.map +1 -0
  336. package/dist/chunk-3GJ5AP7R.js +6 -0
  337. package/dist/chunk-3GJ5AP7R.js.map +1 -0
  338. package/dist/chunk-3JN2ENSO.js +6 -0
  339. package/dist/chunk-3JN2ENSO.js.map +1 -0
  340. package/dist/chunk-3O6DQK2Y.js +6 -0
  341. package/dist/chunk-3O6DQK2Y.js.map +1 -0
  342. package/dist/chunk-3PF55BQ7.js +6 -0
  343. package/dist/chunk-3PF55BQ7.js.map +1 -0
  344. package/dist/chunk-3SPYJ5KY.js +6 -0
  345. package/dist/chunk-3SPYJ5KY.js.map +1 -0
  346. package/dist/chunk-3TBO3DSP.js +6 -0
  347. package/dist/chunk-3TBO3DSP.js.map +1 -0
  348. package/dist/chunk-3TJSB74Q.js +6 -0
  349. package/dist/chunk-3TJSB74Q.js.map +1 -0
  350. package/dist/{chunk-LIGOKFZE.js → chunk-3VT6LTJ7.js} +2 -2
  351. package/dist/chunk-3VYKHXMB.js +6 -0
  352. package/dist/chunk-3VYKHXMB.js.map +1 -0
  353. package/dist/{chunk-XW2GMFOW.js → chunk-437QYAEM.js} +2 -2
  354. package/dist/chunk-467QIKOJ.js +6 -0
  355. package/dist/chunk-467QIKOJ.js.map +1 -0
  356. package/dist/chunk-47GVGG4B.js +6 -0
  357. package/dist/chunk-47GVGG4B.js.map +1 -0
  358. package/dist/chunk-4B4SAKN4.js +6 -0
  359. package/dist/chunk-4B4SAKN4.js.map +1 -0
  360. package/dist/chunk-4HT344UK.js +6 -0
  361. package/dist/chunk-4HT344UK.js.map +1 -0
  362. package/dist/chunk-4PK45LZ6.js +6 -0
  363. package/dist/chunk-4PK45LZ6.js.map +1 -0
  364. package/dist/chunk-4XW2XJLH.js +6 -0
  365. package/dist/chunk-4XW2XJLH.js.map +1 -0
  366. package/dist/chunk-4XYO73JX.js +6 -0
  367. package/dist/chunk-4XYO73JX.js.map +1 -0
  368. package/dist/chunk-5GLDXPBY.js +6 -0
  369. package/dist/chunk-5GLDXPBY.js.map +1 -0
  370. package/dist/chunk-5NGWT3M5.js +6 -0
  371. package/dist/chunk-5NGWT3M5.js.map +1 -0
  372. package/dist/chunk-5P366VJV.js +6 -0
  373. package/dist/chunk-5P366VJV.js.map +1 -0
  374. package/dist/chunk-62MXETHC.js +6 -0
  375. package/dist/chunk-62MXETHC.js.map +1 -0
  376. package/dist/chunk-66NGYJR5.js +6 -0
  377. package/dist/chunk-66NGYJR5.js.map +1 -0
  378. package/dist/chunk-6HGX6PF6.js +6 -0
  379. package/dist/chunk-6HGX6PF6.js.map +1 -0
  380. package/dist/chunk-6MIB3Y74.js +6 -0
  381. package/dist/chunk-6MIB3Y74.js.map +1 -0
  382. package/dist/chunk-6Q272Q44.js +6 -0
  383. package/dist/chunk-6Q272Q44.js.map +1 -0
  384. package/dist/chunk-6VHOHMT5.js +6 -0
  385. package/dist/chunk-6VHOHMT5.js.map +1 -0
  386. package/dist/chunk-6VNI2SDX.js +6 -0
  387. package/dist/chunk-6VNI2SDX.js.map +1 -0
  388. package/dist/chunk-6YJXV77R.js +6 -0
  389. package/dist/chunk-6YJXV77R.js.map +1 -0
  390. package/dist/chunk-77GXDO2J.js +6 -0
  391. package/dist/chunk-77GXDO2J.js.map +1 -0
  392. package/dist/chunk-7ITH2BHN.js +6 -0
  393. package/dist/chunk-7ITH2BHN.js.map +1 -0
  394. package/dist/chunk-7JCS6XUD.js +6 -0
  395. package/dist/chunk-7JCS6XUD.js.map +1 -0
  396. package/dist/{chunk-ILC7LDUW.js → chunk-7MUFLAMK.js} +2 -2
  397. package/dist/chunk-7NSBILAB.js +6 -0
  398. package/dist/chunk-7NSBILAB.js.map +1 -0
  399. package/dist/chunk-ABGWQJMQ.js +6 -0
  400. package/dist/chunk-ABGWQJMQ.js.map +1 -0
  401. package/dist/{chunk-NPUDS6VV.js → chunk-AFPC4CCM.js} +2 -2
  402. package/dist/chunk-AGR54T2W.js +6 -0
  403. package/dist/chunk-AGR54T2W.js.map +1 -0
  404. package/dist/chunk-AOYZX4RD.js +6 -0
  405. package/dist/chunk-AOYZX4RD.js.map +1 -0
  406. package/dist/chunk-AXS455TH.js +6 -0
  407. package/dist/chunk-AXS455TH.js.map +1 -0
  408. package/dist/chunk-B5AEISFL.js +6 -0
  409. package/dist/chunk-B5AEISFL.js.map +1 -0
  410. package/dist/chunk-BHGV4CYW.js +6 -0
  411. package/dist/chunk-BHGV4CYW.js.map +1 -0
  412. package/dist/chunk-BTVUQ4XU.js +6 -0
  413. package/dist/chunk-BTVUQ4XU.js.map +1 -0
  414. package/dist/chunk-BXJEICPS.js +6 -0
  415. package/dist/chunk-BXJEICPS.js.map +1 -0
  416. package/dist/chunk-CA3ERMCD.js +6 -0
  417. package/dist/chunk-CA3ERMCD.js.map +1 -0
  418. package/dist/{chunk-GY75LKGU.js → chunk-CAB6KNWY.js} +5 -5
  419. package/dist/chunk-CG5OVPIM.js +6 -0
  420. package/dist/chunk-CG5OVPIM.js.map +1 -0
  421. package/dist/{chunk-JQFGMAHA.js → chunk-CQBXYALD.js} +3 -3
  422. package/dist/chunk-CRWHTBBL.js +6 -0
  423. package/dist/chunk-CRWHTBBL.js.map +1 -0
  424. package/dist/chunk-DMC7LQ4N.js +6 -0
  425. package/dist/chunk-DMC7LQ4N.js.map +1 -0
  426. package/dist/chunk-DSQHDHEJ.js +6 -0
  427. package/dist/chunk-DSQHDHEJ.js.map +1 -0
  428. package/dist/chunk-DTZ47O5J.js +6 -0
  429. package/dist/chunk-DTZ47O5J.js.map +1 -0
  430. package/dist/chunk-DVN7YBAX.js +6 -0
  431. package/dist/chunk-DVN7YBAX.js.map +1 -0
  432. package/dist/chunk-E2XW3ALY.js +6 -0
  433. package/dist/chunk-E2XW3ALY.js.map +1 -0
  434. package/dist/chunk-EAYBPL7I.js +6 -0
  435. package/dist/chunk-EAYBPL7I.js.map +1 -0
  436. package/dist/chunk-EDZ6ZOEL.js +6 -0
  437. package/dist/chunk-EDZ6ZOEL.js.map +1 -0
  438. package/dist/chunk-EKZYDHUV.js +6 -0
  439. package/dist/chunk-EKZYDHUV.js.map +1 -0
  440. package/dist/chunk-EVCYTUOO.js +6 -0
  441. package/dist/chunk-EVCYTUOO.js.map +1 -0
  442. package/dist/chunk-FGIQXYQH.js +6 -0
  443. package/dist/chunk-FGIQXYQH.js.map +1 -0
  444. package/dist/chunk-FIUVFX7R.js +6 -0
  445. package/dist/chunk-FIUVFX7R.js.map +1 -0
  446. package/dist/chunk-FJYFLKYT.js +6 -0
  447. package/dist/chunk-FJYFLKYT.js.map +1 -0
  448. package/dist/chunk-FUVYZQLW.js +6 -0
  449. package/dist/chunk-FUVYZQLW.js.map +1 -0
  450. package/dist/chunk-FZEGQP3E.js +6 -0
  451. package/dist/chunk-FZEGQP3E.js.map +1 -0
  452. package/dist/{chunk-LBDMTEDB.js → chunk-G2JHTPSE.js} +2 -2
  453. package/dist/chunk-GFCDZMNY.js +6 -0
  454. package/dist/chunk-GFCDZMNY.js.map +1 -0
  455. package/dist/chunk-GI2Q5ZKI.js +6 -0
  456. package/dist/chunk-GI2Q5ZKI.js.map +1 -0
  457. package/dist/chunk-GNE65ADW.js +6 -0
  458. package/dist/chunk-GNE65ADW.js.map +1 -0
  459. package/dist/chunk-GVWYETWT.js +6 -0
  460. package/dist/chunk-GVWYETWT.js.map +1 -0
  461. package/dist/chunk-HNQ253ZD.js +7 -0
  462. package/dist/chunk-HNQ253ZD.js.map +1 -0
  463. package/dist/{chunk-E66LN7GV.js → chunk-HVOXV2ZU.js} +2 -2
  464. package/dist/chunk-HWADDMHQ.js +6 -0
  465. package/dist/chunk-HWADDMHQ.js.map +1 -0
  466. package/dist/chunk-I3JOQYPX.js +6 -0
  467. package/dist/chunk-I3JOQYPX.js.map +1 -0
  468. package/dist/chunk-I65NZFOS.js +6 -0
  469. package/dist/chunk-I65NZFOS.js.map +1 -0
  470. package/dist/{chunk-6GVG43FV.js → chunk-IAUY4JGB.js} +2 -2
  471. package/dist/chunk-IPCUGUUQ.js +6 -0
  472. package/dist/chunk-IPCUGUUQ.js.map +1 -0
  473. package/dist/chunk-IPKFFCW7.js +6 -0
  474. package/dist/chunk-IPKFFCW7.js.map +1 -0
  475. package/dist/chunk-ISPMY4EO.js +6 -0
  476. package/dist/chunk-ISPMY4EO.js.map +1 -0
  477. package/dist/chunk-ISUBGMY4.js +6 -0
  478. package/dist/chunk-ISUBGMY4.js.map +1 -0
  479. package/dist/{chunk-AD4BVTIL.js → chunk-IWTQKOTE.js} +2 -2
  480. package/dist/{chunk-XDC3MGXF.js → chunk-IXUBDPJH.js} +2 -2
  481. package/dist/chunk-J5CCDUEI.js +6 -0
  482. package/dist/chunk-J5CCDUEI.js.map +1 -0
  483. package/dist/chunk-J5KDPAWP.js +6 -0
  484. package/dist/chunk-J5KDPAWP.js.map +1 -0
  485. package/dist/{chunk-YJIUL6ZO.js → chunk-JCUZG6H4.js} +3 -3
  486. package/dist/chunk-JDYJQJDC.js +6 -0
  487. package/dist/chunk-JDYJQJDC.js.map +1 -0
  488. package/dist/chunk-JYHFX7VQ.js +6 -0
  489. package/dist/chunk-JYHFX7VQ.js.map +1 -0
  490. package/dist/chunk-K36XVEPZ.js +6 -0
  491. package/dist/chunk-K36XVEPZ.js.map +1 -0
  492. package/dist/chunk-KC5WXOCZ.js +6 -0
  493. package/dist/chunk-KC5WXOCZ.js.map +1 -0
  494. package/dist/chunk-KECDPJAX.js +6 -0
  495. package/dist/chunk-KECDPJAX.js.map +1 -0
  496. package/dist/chunk-KFSNHVPI.js +6 -0
  497. package/dist/chunk-KFSNHVPI.js.map +1 -0
  498. package/dist/chunk-KIUSOVMC.js +6 -0
  499. package/dist/chunk-KIUSOVMC.js.map +1 -0
  500. package/dist/chunk-KJNTTEAK.js +6 -0
  501. package/dist/chunk-KJNTTEAK.js.map +1 -0
  502. package/dist/chunk-KP4SEXGX.js +6 -0
  503. package/dist/chunk-KP4SEXGX.js.map +1 -0
  504. package/dist/chunk-L3CADPDV.js +7 -0
  505. package/dist/chunk-L3CADPDV.js.map +1 -0
  506. package/dist/chunk-L3YFWYLR.js +6 -0
  507. package/dist/chunk-L3YFWYLR.js.map +1 -0
  508. package/dist/chunk-L4BJKCBQ.js +6 -0
  509. package/dist/chunk-L4BJKCBQ.js.map +1 -0
  510. package/dist/chunk-LA3IVJH3.js +6 -0
  511. package/dist/chunk-LA3IVJH3.js.map +1 -0
  512. package/dist/chunk-LAW2SJKD.js +6 -0
  513. package/dist/chunk-LAW2SJKD.js.map +1 -0
  514. package/dist/chunk-LAXL2FZH.js +6 -0
  515. package/dist/chunk-LAXL2FZH.js.map +1 -0
  516. package/dist/chunk-LECYUASO.js +6 -0
  517. package/dist/chunk-LECYUASO.js.map +1 -0
  518. package/dist/chunk-LFFKQ5UY.js +6 -0
  519. package/dist/chunk-LFFKQ5UY.js.map +1 -0
  520. package/dist/{chunk-7JCZYOLK.js → chunk-LFWPNKUM.js} +2 -2
  521. package/dist/chunk-LQ2SLABO.js +6 -0
  522. package/dist/chunk-LQ2SLABO.js.map +1 -0
  523. package/dist/chunk-M22MNKOD.js +6 -0
  524. package/dist/chunk-M22MNKOD.js.map +1 -0
  525. package/dist/chunk-MAQJHBRG.js +6 -0
  526. package/dist/chunk-MAQJHBRG.js.map +1 -0
  527. package/dist/{chunk-YDTXGTQA.js → chunk-MHQKQ4VE.js} +2 -2
  528. package/dist/{chunk-UMFGBRJF.js → chunk-MMOGWTW7.js} +2 -2
  529. package/dist/chunk-N3QD4762.js +6 -0
  530. package/dist/chunk-N3QD4762.js.map +1 -0
  531. package/dist/chunk-N63KFRAE.js +6 -0
  532. package/dist/chunk-N63KFRAE.js.map +1 -0
  533. package/dist/{chunk-2QBJ4PS3.js → chunk-NIT26MGD.js} +2 -2
  534. package/dist/{chunk-BHENIWLV.js → chunk-NJ55GFRA.js} +2 -2
  535. package/dist/{chunk-AYUKIKNC.js → chunk-NWT5TUJO.js} +2 -2
  536. package/dist/chunk-NY7OH64D.js +6 -0
  537. package/dist/chunk-NY7OH64D.js.map +1 -0
  538. package/dist/chunk-O5AVZ4XZ.js +6 -0
  539. package/dist/chunk-O5AVZ4XZ.js.map +1 -0
  540. package/dist/chunk-PANXFSBJ.js +6 -0
  541. package/dist/chunk-PANXFSBJ.js.map +1 -0
  542. package/dist/chunk-PB74EKXH.js +6 -0
  543. package/dist/chunk-PB74EKXH.js.map +1 -0
  544. package/dist/chunk-PE4NNNW3.js +6 -0
  545. package/dist/chunk-PE4NNNW3.js.map +1 -0
  546. package/dist/chunk-PEVNYPIT.js +6 -0
  547. package/dist/chunk-PEVNYPIT.js.map +1 -0
  548. package/dist/chunk-PGPNLB6H.js +6 -0
  549. package/dist/chunk-PGPNLB6H.js.map +1 -0
  550. package/dist/chunk-PPJJQFNS.js +6 -0
  551. package/dist/chunk-PPJJQFNS.js.map +1 -0
  552. package/dist/{chunk-XHNY46KY.js → chunk-QBKRR7YK.js} +2 -2
  553. package/dist/chunk-QGXUR7SS.js +6 -0
  554. package/dist/chunk-QGXUR7SS.js.map +1 -0
  555. package/dist/chunk-QLECZZYA.js +6 -0
  556. package/dist/chunk-QLECZZYA.js.map +1 -0
  557. package/dist/chunk-QNXYDH4Z.js +6 -0
  558. package/dist/chunk-QNXYDH4Z.js.map +1 -0
  559. package/dist/chunk-QOPUYMDW.js +6 -0
  560. package/dist/chunk-QOPUYMDW.js.map +1 -0
  561. package/dist/chunk-R4BWG6IP.js +6 -0
  562. package/dist/chunk-R4BWG6IP.js.map +1 -0
  563. package/dist/chunk-RCVDECZO.js +6 -0
  564. package/dist/chunk-RCVDECZO.js.map +1 -0
  565. package/dist/chunk-REVEMW2Z.js +6 -0
  566. package/dist/chunk-REVEMW2Z.js.map +1 -0
  567. package/dist/chunk-RG3WUQ4U.js +6 -0
  568. package/dist/chunk-RG3WUQ4U.js.map +1 -0
  569. package/dist/chunk-RMM5IYNJ.js +6 -0
  570. package/dist/chunk-RMM5IYNJ.js.map +1 -0
  571. package/dist/chunk-RP27UYVF.js +6 -0
  572. package/dist/chunk-RP27UYVF.js.map +1 -0
  573. package/dist/{chunk-2BZB3KUP.js → chunk-RX46STPN.js} +3 -3
  574. package/dist/chunk-SQ3T74SK.js +6 -0
  575. package/dist/chunk-SQ3T74SK.js.map +1 -0
  576. package/dist/chunk-SQKLWJ23.js +6 -0
  577. package/dist/chunk-SQKLWJ23.js.map +1 -0
  578. package/dist/chunk-SRI4ERT7.js +6 -0
  579. package/dist/chunk-SRI4ERT7.js.map +1 -0
  580. package/dist/chunk-STILB7RV.js +6 -0
  581. package/dist/chunk-STILB7RV.js.map +1 -0
  582. package/dist/chunk-SWQTSSZB.js +6 -0
  583. package/dist/chunk-SWQTSSZB.js.map +1 -0
  584. package/dist/chunk-T3IMQCA4.js +6 -0
  585. package/dist/chunk-T3IMQCA4.js.map +1 -0
  586. package/dist/chunk-TF7C2MZM.js +6 -0
  587. package/dist/chunk-TF7C2MZM.js.map +1 -0
  588. package/dist/chunk-TJDQSDGI.js +6 -0
  589. package/dist/chunk-TJDQSDGI.js.map +1 -0
  590. package/dist/chunk-TP556MUN.js +6 -0
  591. package/dist/chunk-TP556MUN.js.map +1 -0
  592. package/dist/chunk-U4CAICN5.js +6 -0
  593. package/dist/chunk-U4CAICN5.js.map +1 -0
  594. package/dist/chunk-UALPBWPM.js +6 -0
  595. package/dist/chunk-UALPBWPM.js.map +1 -0
  596. package/dist/chunk-UK2F7TWJ.js +166 -0
  597. package/dist/chunk-UK2F7TWJ.js.map +1 -0
  598. package/dist/chunk-UVBYI6Q4.js +6 -0
  599. package/dist/chunk-UVBYI6Q4.js.map +1 -0
  600. package/dist/chunk-UVPHAGRR.js +6 -0
  601. package/dist/chunk-UVPHAGRR.js.map +1 -0
  602. package/dist/chunk-VJXZF4JZ.js +6 -0
  603. package/dist/chunk-VJXZF4JZ.js.map +1 -0
  604. package/dist/chunk-VQGBKDR7.js +6 -0
  605. package/dist/chunk-VQGBKDR7.js.map +1 -0
  606. package/dist/chunk-VS3HUF6I.js +6 -0
  607. package/dist/chunk-VS3HUF6I.js.map +1 -0
  608. package/dist/chunk-VV3FVOPK.js +6 -0
  609. package/dist/chunk-VV3FVOPK.js.map +1 -0
  610. package/dist/chunk-VXLXFRSL.js +6 -0
  611. package/dist/chunk-VXLXFRSL.js.map +1 -0
  612. package/dist/chunk-VXTPFEPK.js +6 -0
  613. package/dist/chunk-VXTPFEPK.js.map +1 -0
  614. package/dist/chunk-VZQQHRES.js +6 -0
  615. package/dist/chunk-VZQQHRES.js.map +1 -0
  616. package/dist/{chunk-HMXT4BZB.js → chunk-VZVY6HGD.js} +2 -2
  617. package/dist/chunk-W6CDOZMZ.js +6 -0
  618. package/dist/chunk-W6CDOZMZ.js.map +1 -0
  619. package/dist/chunk-W6OLLGA5.js +6 -0
  620. package/dist/chunk-W6OLLGA5.js.map +1 -0
  621. package/dist/chunk-WBTIOMTF.js +6 -0
  622. package/dist/chunk-WBTIOMTF.js.map +1 -0
  623. package/dist/chunk-WENSCH6W.js +6 -0
  624. package/dist/chunk-WENSCH6W.js.map +1 -0
  625. package/dist/chunk-WO6NCPDR.js +6 -0
  626. package/dist/chunk-WO6NCPDR.js.map +1 -0
  627. package/dist/chunk-WU5EGX2L.js +6 -0
  628. package/dist/chunk-WU5EGX2L.js.map +1 -0
  629. package/dist/chunk-XBXD5FTK.js +6 -0
  630. package/dist/chunk-XBXD5FTK.js.map +1 -0
  631. package/dist/chunk-XC42LUQQ.js +6 -0
  632. package/dist/chunk-XC42LUQQ.js.map +1 -0
  633. package/dist/chunk-XT2VU2IS.js +6 -0
  634. package/dist/chunk-XT2VU2IS.js.map +1 -0
  635. package/dist/chunk-YRPX7STA.js +6 -0
  636. package/dist/chunk-YRPX7STA.js.map +1 -0
  637. package/dist/chunk-YYABA4NC.js +6 -0
  638. package/dist/chunk-YYABA4NC.js.map +1 -0
  639. package/dist/chunk-YYGFBIXE.js +6 -0
  640. package/dist/chunk-YYGFBIXE.js.map +1 -0
  641. package/dist/chunk-ZCXQFAMG.js +6 -0
  642. package/dist/chunk-ZCXQFAMG.js.map +1 -0
  643. package/dist/chunk-ZHHHHVP3.js +6 -0
  644. package/dist/chunk-ZHHHHVP3.js.map +1 -0
  645. package/dist/chunk-ZZYKPI33.js +6 -0
  646. package/dist/chunk-ZZYKPI33.js.map +1 -0
  647. package/dist/components/ActionButton/index.js +158 -2
  648. package/dist/components/Analytics/OverviewAnalytics/index.js +163 -7
  649. package/dist/components/Analytics/OverviewAnalytics/index.js.map +1 -1
  650. package/dist/components/Analytics/PartnerAnalysis/index.js +162 -6
  651. package/dist/components/Analytics/PartnerAnalysis/index.js.map +1 -1
  652. package/dist/components/Analytics/index.js +161 -5
  653. package/dist/components/Analytics/index.js.map +1 -1
  654. package/dist/components/Autocomplete/index.js +158 -2
  655. package/dist/components/AvatarButton/index.js +159 -3
  656. package/dist/components/AvatarButton/index.js.map +1 -1
  657. package/dist/components/BuilderLayout/index.js +158 -2
  658. package/dist/components/BuilderLayout/index.js.map +1 -1
  659. package/dist/components/BuilderSidebar/index.js +157 -1
  660. package/dist/components/BuilderSidebar/index.js.map +1 -1
  661. package/dist/components/BulkEditModal/index.js +159 -3
  662. package/dist/components/BulkEditModal/index.js.map +1 -1
  663. package/dist/components/CardBrand/index.js +157 -1
  664. package/dist/components/CardBrand/index.js.map +1 -1
  665. package/dist/components/Common/index.js +159 -3
  666. package/dist/components/Common/index.js.map +1 -1
  667. package/dist/components/CopyButton/index.js +158 -2
  668. package/dist/components/DataView/index.js +159 -3
  669. package/dist/components/DragButton/index.js +158 -2
  670. package/dist/components/Drawer/index.js +158 -2
  671. package/dist/components/DynamicDataView/index.js +161 -5
  672. package/dist/components/DynamicDataView/index.js.map +1 -1
  673. package/dist/components/EasyCropModal/index.js +159 -3
  674. package/dist/components/Error/index.js +157 -1
  675. package/dist/components/Error/index.js.map +1 -1
  676. package/dist/components/ExpandableGroup/index.js +157 -1
  677. package/dist/components/ExpandableGroup/index.js.map +1 -1
  678. package/dist/components/FileUpload/index.js +162 -6
  679. package/dist/components/Filters/index.js +159 -3
  680. package/dist/components/Filters/index.js.map +1 -1
  681. package/dist/components/FrameSkeleton/index.js +157 -1
  682. package/dist/components/FrameSkeleton/index.js.map +1 -1
  683. package/dist/components/HelpButton/index.js +158 -2
  684. package/dist/components/Icon/index.js +157 -1
  685. package/dist/components/IconButton/index.js +158 -2
  686. package/dist/components/IconLazy/index.d.ts +13 -0
  687. package/dist/components/IconLazy/index.js +10 -0
  688. package/dist/components/IconLazy/index.js.map +1 -0
  689. package/dist/components/ImageCropModal/index.js +158 -2
  690. package/dist/components/ImageCropModal/index.js.map +1 -1
  691. package/dist/components/Incrementer/index.js +158 -2
  692. package/dist/components/InfoCircle/index.js +158 -2
  693. package/dist/components/ListBundles/index.js +158 -2
  694. package/dist/components/ListBundles/index.js.map +1 -1
  695. package/dist/components/MenuItem/index.js +157 -1
  696. package/dist/components/MenuItem/index.js.map +1 -1
  697. package/dist/components/Modal/index.js +158 -2
  698. package/dist/components/MoreMenu/index.js +157 -1
  699. package/dist/components/MoreMenu/index.js.map +1 -1
  700. package/dist/components/NotFound/index.js +157 -1
  701. package/dist/components/NotFound/index.js.map +1 -1
  702. package/dist/components/PasswordRules/index.js +157 -1
  703. package/dist/components/PasswordRules/index.js.map +1 -1
  704. package/dist/components/PopoverSelect/index.js +157 -1
  705. package/dist/components/PopoverSelect/index.js.map +1 -1
  706. package/dist/components/SearchInput/index.js +158 -2
  707. package/dist/components/SelectList/index.js +160 -4
  708. package/dist/components/SelectableCards/index.js +159 -3
  709. package/dist/components/SeoPreview/index.js +157 -1
  710. package/dist/components/SeoPreview/index.js.map +1 -1
  711. package/dist/components/StateDisplay/index.js +158 -2
  712. package/dist/components/Steps/index.js +157 -1
  713. package/dist/components/Steps/index.js.map +1 -1
  714. package/dist/components/StyledTab/index.js +157 -1
  715. package/dist/components/StyledTab/index.js.map +1 -1
  716. package/dist/components/SwapList/index.js +158 -2
  717. package/dist/components/SwapList/index.js.map +1 -1
  718. package/dist/components/ToggleTheme/index.js +2 -2
  719. package/dist/components/WebhookCard/index.js +157 -1
  720. package/dist/components/WebhookCard/index.js.map +1 -1
  721. package/dist/components/carousel/index.js +158 -2
  722. package/dist/components/form/Address/index.js +160 -4
  723. package/dist/components/form/Address/index.js.map +1 -1
  724. package/dist/components/form/Autocomplete/index.js +159 -3
  725. package/dist/components/form/FileUpload/index.js +162 -6
  726. package/dist/components/form/FileUpload/index.js.map +1 -1
  727. package/dist/components/form/Incrementer/index.js +158 -2
  728. package/dist/components/form/Incrementer/index.js.map +1 -1
  729. package/dist/components/form/Password/index.js +157 -1
  730. package/dist/components/form/Password/index.js.map +1 -1
  731. package/dist/components/form/SelectList/index.js +160 -4
  732. package/dist/components/form/SelectList/index.js.map +1 -1
  733. package/dist/components/form/SelectableCards/index.js +159 -3
  734. package/dist/components/form/SelectableCards/index.js.map +1 -1
  735. package/dist/components/form/Webhook/index.js +160 -4
  736. package/dist/components/form/Webhook/index.js.map +1 -1
  737. package/dist/components/lightbox/index.js +157 -1
  738. package/dist/components/lightbox/index.js.map +1 -1
  739. package/dist/components/table/index.js +158 -2
  740. package/dist/components/table/index.js.map +1 -1
  741. package/dist/hooks/useThemeToggle.js +2 -2
  742. package/dist/index.js +2 -2
  743. package/dist/theme/theme-provider.js +2 -2
  744. package/dist/usa-2UKYSJ5Q.js +2 -0
  745. package/dist/usa-2UKYSJ5Q.js.map +1 -0
  746. package/package.json +1 -1
  747. package/dist/chunk-PAWS4ATJ.js +0 -11
  748. package/dist/chunk-PAWS4ATJ.js.map +0 -1
  749. /package/dist/{chunk-LIGOKFZE.js.map → chunk-3VT6LTJ7.js.map} +0 -0
  750. /package/dist/{chunk-XW2GMFOW.js.map → chunk-437QYAEM.js.map} +0 -0
  751. /package/dist/{chunk-ILC7LDUW.js.map → chunk-7MUFLAMK.js.map} +0 -0
  752. /package/dist/{chunk-NPUDS6VV.js.map → chunk-AFPC4CCM.js.map} +0 -0
  753. /package/dist/{chunk-GY75LKGU.js.map → chunk-CAB6KNWY.js.map} +0 -0
  754. /package/dist/{chunk-JQFGMAHA.js.map → chunk-CQBXYALD.js.map} +0 -0
  755. /package/dist/{chunk-LBDMTEDB.js.map → chunk-G2JHTPSE.js.map} +0 -0
  756. /package/dist/{chunk-E66LN7GV.js.map → chunk-HVOXV2ZU.js.map} +0 -0
  757. /package/dist/{chunk-6GVG43FV.js.map → chunk-IAUY4JGB.js.map} +0 -0
  758. /package/dist/{chunk-AD4BVTIL.js.map → chunk-IWTQKOTE.js.map} +0 -0
  759. /package/dist/{chunk-XDC3MGXF.js.map → chunk-IXUBDPJH.js.map} +0 -0
  760. /package/dist/{chunk-YJIUL6ZO.js.map → chunk-JCUZG6H4.js.map} +0 -0
  761. /package/dist/{chunk-7JCZYOLK.js.map → chunk-LFWPNKUM.js.map} +0 -0
  762. /package/dist/{chunk-YDTXGTQA.js.map → chunk-MHQKQ4VE.js.map} +0 -0
  763. /package/dist/{chunk-UMFGBRJF.js.map → chunk-MMOGWTW7.js.map} +0 -0
  764. /package/dist/{chunk-2QBJ4PS3.js.map → chunk-NIT26MGD.js.map} +0 -0
  765. /package/dist/{chunk-BHENIWLV.js.map → chunk-NJ55GFRA.js.map} +0 -0
  766. /package/dist/{chunk-AYUKIKNC.js.map → chunk-NWT5TUJO.js.map} +0 -0
  767. /package/dist/{chunk-XHNY46KY.js.map → chunk-QBKRR7YK.js.map} +0 -0
  768. /package/dist/{chunk-2BZB3KUP.js.map → chunk-RX46STPN.js.map} +0 -0
  769. /package/dist/{chunk-HMXT4BZB.js.map → chunk-VZVY6HGD.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/PieLabel.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/props.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnersDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/ProfileDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/ProfileDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/props.ts","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/BarBackground.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/BarBackground.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/props.ts"],"names":["CardContent","CardHeader","Stack","Pie","PieChart","ResponsiveContainer","Tooltip","styled","ChartContainer","theme","Divider","Typography","jsx","jsxs","formatPercentage","value","fPercent","PieChartTooltip","active","payload","total","entry","SimpleCard_default","Tooltip_default","PieChartBreakdown","chartData","isEmptyData","onPieClick","clickable","fNumber","Chart_default","Checkbox","FormControlLabel","PieChartLegend","items","hiddenKeys","onToggle","onItemClick","item","e","_","checked","fShortenNumber","Legend_default","PartnerBreakdown","title","legendItems","ChartCard","PartnerBreakdown_default","RADIAN","LABEL_OFFSET","MIN_PERCENTAGE","PieLabel","props","cx","cy","midAngle","outerRadius","percentage","cxNum","cyNum","outerR","angle","sin","cos","x1","y1","xMid","yMid","side","xEnd","yEnd","label","badgeW","badgeX","PieLabel_default","ProfileTooltip","renderLabel","ProfileChart","ProfileLegend","Scrollbar_default","PartnersByProfile","data","onLegendClick","Result_default","EmptyState_default","PartnersByProfile_default","SEGMENT_COLORS","MAX_VISIBLE","Link","Header","Header_default","Fragment","PartnersDetail","open","onClose","columns","rows","totalPartners","isLoading","isFetching","isFetchingNextPage","onSearch","onRowsScrollEnd","sellerName","buildSellerLink","sellerExternalId","mobileRender","isMobile","useResponsive_default","content","SearchInput_default","DataView_default","row","header","Drawer_default","Modal_default","PartnersDetail_default","profileName","ProfileDetail","ProfileDetail_default","memo","useCallback","useMemo","useRef","useState","Slider","Bar","CartesianGrid","ComposedChart","ReferenceLine","XAxis","YAxis","AVERAGE_COLOR","RANKING_CONFIG","fCurrencyBRL","BarBackground","x","y","width","height","index","activeBarIndex","color","onBarClick","BarBackground_default","RankingTooltip","config","average","BAR_SIZE","BAR_SLOT","RankingChart","visibleSeries","activeCoordX","shouldRotateLabels","onMouseMove","onMouseLeave","yDomain","values","max","yTicks","step","i","barLabel","tooltipContent","renderXAxisTick","tickProps","RotatedTick_default","WrappedTick_default","handleBarClick","ChartWrapper","v","ReferenceCircle_default","RankingLegend","onToggleSerie","Ranking","children","isDownLg","setVisibleSeries","visibleCount","setVisibleCount","setActiveBarIndex","setActiveCoordX","containerWidth","setContainerWidth","observerRef","wrapperRefCallback","node","sortedData","a","b","totalItems","maxVisible","showSlider","sliderMax","clampedCount","displayData","handleToggleSerie","serie","prev","handleChartMouseMove","state","handleChartMouseLeave","handleSliderChange","val","ChartCardHeader","Ranking_default","MuiButton","ItemButton","prop","rankingLabel","partnerName","MuiDivider","alpha","StyledDivider","MobileItemContainer","getOrderId","order","getPartnerName","buildPartnerLink","getOrderValue","getOrderDate","fDate","getOrderStatus","getDefaultMobileRender","RankingDetail","totalValue","averageTicket","page","perPage","onPaginationChange","mobileItemSlot","RankingDetail_default","BarChart","formatPct","StackedTooltip","visibleEntries","sum","series","s","pct","SellerPortfolioChart","visible","firstVisible","lastVisible","isFirst","isLast","SellerPortfolioLegend","SellerPortfolio","setHiddenKeys","displayDataWithTotals","dataKey","next","handleMouseMove","handleMouseLeave","sellerId","SellerPortfolio_default","CLASSIFICATION_SERIES","ABC_CURVE_SERIES","SELLER_PORTFOLIO_CONFIG"],"mappings":"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","sourcesContent":["import CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\n\nimport PieChartBreakdown from './Chart';\nimport PieChartLegend from './Legend';\nimport { PartnerBreakdownProps } from './props';\n\nconst PartnerBreakdown = ({\n title,\n chartData,\n total,\n isEmptyData,\n legendItems,\n hiddenKeys,\n onToggle,\n onPieClick,\n onItemClick,\n}: PartnerBreakdownProps) => (\n <ChartCard>\n <CardHeader title={title} />\n\n <CardContent>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n alignItems=\"center\"\n gap={1.5}\n minWidth={0}\n >\n <PieChartBreakdown\n chartData={chartData}\n total={total}\n isEmptyData={isEmptyData}\n onPieClick={onPieClick}\n clickable={!!onPieClick}\n />\n\n <PieChartLegend\n items={legendItems}\n hiddenKeys={hiddenKeys}\n onToggle={onToggle}\n onItemClick={onItemClick}\n />\n </Stack>\n </CardContent>\n </ChartCard>\n);\n\nexport default PartnerBreakdown;\n","import { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts';\n\nimport { fNumber } from 'utils/formatNumber';\n\nimport { ChartProps } from '../props';\n\nimport { ChartContainer } from './styles';\nimport PieChartTooltip from './Tooltip';\n\nconst PieChartBreakdown = ({\n chartData,\n total,\n isEmptyData,\n onPieClick,\n clickable,\n}: ChartProps) => (\n <ChartContainer>\n <ResponsiveContainer width={200} height={200}>\n <PieChart>\n <Pie\n data={chartData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={60}\n outerRadius={90}\n paddingAngle={2}\n strokeWidth={0}\n isAnimationActive={false}\n onClick={onPieClick}\n cursor={clickable ? 'pointer' : undefined}\n />\n\n <text\n x=\"50%\"\n y=\"46%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n style={{ fontSize: 24, fontWeight: 700 }}\n >\n {fNumber(total)}\n </text>\n\n <text\n x=\"50%\"\n y=\"58%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n style={{ fontSize: 12, fill: '#919EAB' }}\n >\n clientes\n </text>\n\n {!isEmptyData && (\n <Tooltip content={<PieChartTooltip total={total} />} />\n )}\n </PieChart>\n </ResponsiveContainer>\n </ChartContainer>\n);\n\nexport default PieChartBreakdown;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const ChartContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n alignSelf: 'flex-start',\n\n flexShrink: 0,\n\n '& .recharts-wrapper, & .recharts-wrapper *': {\n outline: 'none !important',\n boxShadow: 'none !important',\n },\n\n '& .recharts-pie-sector': {\n cursor: 'pointer',\n },\n\n [theme.breakpoints.down('md')]: {\n alignSelf: 'center',\n },\n}));\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from '../props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst PieChartTooltip = ({ active, payload, total }: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const entry = payload[0];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {entry.name}\n </Typography>\n\n <Divider />\n\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.payload.fill}\n />\n\n <Typography variant=\"body2\" noWrap>\n {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(entry.payload.percentage)} ({entry.value})\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default PieChartTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { fPercent, fShortenNumber } from 'utils/formatNumber';\n\nimport { LegendProps } from './props';\n\nconst PieChartLegend = ({\n items,\n hiddenKeys,\n onToggle,\n onItemClick,\n}: LegendProps) => (\n <Stack width=\"100%\" justifyContent=\"center\">\n {items.map(item => (\n <Stack\n key={item.key}\n display=\"grid\"\n gridTemplateColumns=\"1fr auto auto\"\n alignItems=\"center\"\n gap={1.5}\n onClick={() => onItemClick?.(item.key, item.label)}\n sx={{\n ...(onItemClick ? { cursor: 'pointer' } : {}),\n }}\n >\n <FormControlLabel\n label={item.label}\n onClick={e => e.stopPropagation()}\n control={\n <Checkbox\n size=\"small\"\n checked={!hiddenKeys.has(item.key)}\n onChange={(_, checked) => onToggle(item.key, checked)}\n sx={{ '&.Mui-checked': { color: item.color } }}\n />\n }\n sx={{\n '& .MuiFormControlLabel-label': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n }}\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n textAlign=\"right\"\n noWrap\n >\n {fPercent(item.percentage, {\n maximumFractionDigits: 2,\n ...(item.percentage > 0 && item.percentage < 100\n ? { minimumFractionDigits: 2 }\n : {}),\n })}\n </Typography>\n\n <Typography\n variant=\"subtitle2\"\n color=\"text.primary\"\n textAlign=\"right\"\n noWrap\n >\n {fShortenNumber(item.count)}\n </Typography>\n </Stack>\n ))}\n </Stack>\n);\n\nexport default PieChartLegend;\n","import CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\n\nimport ProfileChart from './Chart';\nimport ProfileLegend from './Legend';\nimport { PartnersByProfileProps } from './props';\n\nconst PartnersByProfile = ({\n data,\n chartData,\n total,\n isEmptyData,\n onPieClick,\n onLegendClick,\n hiddenKeys,\n onToggle,\n}: PartnersByProfileProps) => (\n <ChartCard>\n <CardHeader title=\"Clientes por segmentos\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={2}>\n <ProfileChart\n chartData={chartData}\n total={total}\n isEmptyData={isEmptyData}\n onPieClick={onPieClick}\n />\n\n <ProfileLegend\n items={data}\n hiddenKeys={hiddenKeys}\n onToggle={onToggle}\n onItemClick={onLegendClick}\n />\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n);\n\nexport default PartnersByProfile;\n","import { PieLabelRenderProps } from 'recharts';\nimport { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts';\n\nimport PieLabel from './PieLabel';\nimport { ChartProps } from './props';\nimport { ChartContainer } from './styles';\nimport ProfileTooltip from './Tooltip';\n\nconst renderLabel = (props: PieLabelRenderProps) => <PieLabel {...props} />;\n\nconst ProfileChart = ({\n chartData,\n total,\n isEmptyData,\n onPieClick,\n}: ChartProps) => (\n <ChartContainer>\n <ResponsiveContainer width={280} height={280}>\n <PieChart>\n <Pie\n data={chartData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n outerRadius={90}\n paddingAngle={1}\n strokeWidth={0}\n isAnimationActive={false}\n label={isEmptyData ? false : renderLabel}\n labelLine={false}\n onClick={onPieClick}\n cursor={onPieClick ? 'pointer' : undefined}\n />\n\n {!isEmptyData && (\n <Tooltip content={<ProfileTooltip total={total} />} />\n )}\n </PieChart>\n </ResponsiveContainer>\n </ChartContainer>\n);\n\nexport default ProfileChart;\n","import { PieLabelRenderProps } from 'recharts';\n\nimport { fPercent } from 'utils/formatNumber';\n\nconst RADIAN = Math.PI / 180;\nconst LABEL_OFFSET = 22;\nconst MIN_PERCENTAGE = 2;\n\nconst PieLabel = (props: PieLabelRenderProps) => {\n const { cx, cy, midAngle, outerRadius, percentage } =\n props as PieLabelRenderProps & { percentage: number };\n\n if (percentage < MIN_PERCENTAGE) return null;\n\n const cxNum = Number(cx);\n const cyNum = Number(cy);\n const outerR = Number(outerRadius);\n const angle = Number(midAngle);\n\n if (isNaN(cxNum) || isNaN(cyNum) || isNaN(outerR)) return null;\n\n const sin = Math.sin(-angle * RADIAN);\n const cos = Math.cos(-angle * RADIAN);\n\n const x1 = cxNum + outerR * cos;\n const y1 = cyNum + outerR * sin;\n\n const xMid = cxNum + (outerR + LABEL_OFFSET * 0.5) * cos;\n const yMid = cyNum + (outerR + LABEL_OFFSET * 0.5) * sin;\n\n const side = cos >= 0 ? 1 : -1;\n const xEnd = xMid + side * 10;\n const yEnd = yMid;\n\n const label = fPercent(percentage, {\n maximumFractionDigits: 1,\n ...(percentage > 0 && percentage < 100 ? { minimumFractionDigits: 1 } : {}),\n });\n\n const badgeW = label.length * 7 + 10;\n const badgeX = side === 1 ? xEnd + 2 : xEnd - badgeW - 2;\n\n return (\n <g>\n <path\n d={`M${x1},${y1} L${xMid},${yMid} L${xEnd},${yEnd}`}\n stroke=\"#637381\"\n fill=\"none\"\n strokeWidth={1}\n />\n\n <rect\n x={badgeX}\n y={yEnd - 10}\n width={badgeW}\n height={20}\n rx={4}\n fill=\"#212B36\"\n />\n\n <text\n x={badgeX + badgeW / 2}\n y={yEnd}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={11}\n fontWeight={600}\n fill=\"#FFFFFF\"\n >\n {label}\n </text>\n </g>\n );\n};\n\nexport default PieLabel;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const ChartContainer = styled(Stack)({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n\n '& .recharts-wrapper, & .recharts-wrapper *': {\n outline: 'none !important',\n boxShadow: 'none !important',\n },\n\n '& .recharts-wrapper': {\n overflow: 'visible !important',\n },\n\n '& .recharts-wrapper svg': {\n overflow: 'visible',\n },\n\n '& .recharts-pie-sector': {\n cursor: 'pointer',\n },\n});\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst ProfileTooltip = ({ active, payload, total }: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const entry = payload[0];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {entry.name}\n </Typography>\n\n <Divider />\n\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.payload.fill}\n />\n\n <Typography variant=\"body2\" noWrap>\n {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(entry.payload.percentage)} ({entry.value})\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default ProfileTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Scrollbar from 'components/Scrollbar';\nimport { fPercent, fShortenNumber } from 'utils/formatNumber';\n\nimport { LegendProps } from './props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst ProfileLegend = ({\n items,\n hiddenKeys,\n onToggle,\n onItemClick,\n}: LegendProps) => (\n <Scrollbar sx={{ maxHeight: 280, width: '100%', pl: 0.5 }}>\n {items.map(item => (\n <Stack\n key={item.key}\n display=\"grid\"\n gridTemplateColumns=\"1fr auto auto\"\n alignItems=\"center\"\n gap={1.5}\n onClick={() => onItemClick?.(item.key)}\n sx={onItemClick ? { cursor: 'pointer' } : undefined}\n >\n <FormControlLabel\n label={item.label}\n onClick={e => e.stopPropagation()}\n control={\n <Checkbox\n size=\"small\"\n checked={!hiddenKeys.has(item.key)}\n onChange={(_, checked) => onToggle(item.key, checked)}\n sx={{ '&.Mui-checked': { color: item.color } }}\n />\n }\n sx={{\n '& .MuiFormControlLabel-label': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n }}\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n textAlign=\"right\"\n noWrap\n >\n {formatPercentage(item.percentage)}\n </Typography>\n\n <Typography\n variant=\"subtitle2\"\n color=\"text.primary\"\n textAlign=\"right\"\n noWrap\n >\n {fShortenNumber(item.count)}\n </Typography>\n </Stack>\n ))}\n </Scrollbar>\n);\n\nexport default ProfileLegend;\n","export const SEGMENT_COLORS = [\n '#FF5630',\n '#FFAB00',\n '#22C55E',\n '#C4CDD5',\n '#8E33FF',\n '#00B8D9',\n '#3366FF',\n '#FF6C40',\n '#36B37E',\n '#B76E00',\n];\n\nexport const MAX_VISIBLE = 12;\n\nexport interface LegendItem {\n key: string;\n label: string;\n count: number;\n percentage: number;\n color: string;\n}\n\nexport interface LegendProps {\n items: LegendItem[];\n hiddenKeys: Set<string>;\n onToggle: (key: string, checked: boolean) => void;\n onItemClick?: (key: string) => void;\n}\n\nexport interface PartnersByProfileProps {\n data: LegendItem[];\n chartData: SegmentChartItem[];\n total: number;\n isEmptyData: boolean;\n onPieClick?: (_: unknown, index: number) => void;\n onLegendClick?: (key: string) => void;\n hiddenKeys: Set<string>;\n onToggle: (key: string, checked: boolean) => void;\n}\n\nexport interface SegmentChartItem {\n name: string;\n value: number;\n percentage: number;\n fill: string;\n}\n","import Divider from '@mui/material/Divider';\nimport Link from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { DashboardPartner } from 'types/partnerAnalysis';\n\nimport Header from './Header';\nimport { PartnersDetailProps } from './props';\n\nconst PartnersDetail = ({\n open,\n onClose,\n title,\n label,\n columns,\n rows,\n totalPartners,\n isLoading,\n isFetching,\n isFetchingNextPage,\n onSearch,\n onRowsScrollEnd,\n sellerName,\n buildSellerLink,\n sellerExternalId,\n mobileRender,\n}: PartnersDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n alignItems={{ sm: 'center' }}\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={3} flexWrap=\"wrap\">\n {sellerName && sellerExternalId && (\n <>\n {buildSellerLink ? (\n <Link\n component=\"a\"\n href={buildSellerLink(sellerExternalId)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n variant=\"subtitle2\"\n sx={{ textDecoration: 'underline' }}\n noWrap\n >\n {sellerName}\n </Link>\n ) : (\n <Typography variant=\"subtitle2\" noWrap>\n {sellerName}\n </Typography>\n )}\n\n <Divider orientation=\"vertical\" flexItem />\n </>\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Total de clientes:\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {totalPartners}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Clientes\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={columns}\n rows={rows}\n getRowId={(row: DashboardPartner) => row.external_id}\n mobileRender={mobileRender}\n loading={isLoading}\n fetching={isFetching && !isFetchingNextPage}\n fetchingNextPage={isFetchingNextPage}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={600}\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = <Header title={title} label={label} />;\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default PartnersDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { PartnersDetailHeaderProps } from './props';\n\nconst Header = ({ title, label }: PartnersDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n {title}\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {label}\n </Typography>\n </Stack>\n);\n\nexport default Header;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { DashboardPartner } from 'types/partnerAnalysis';\n\nimport Header from './Header';\nimport { ProfileDetailProps } from './props';\n\nconst ProfileDetail = ({\n open,\n onClose,\n profileName,\n columns,\n rows,\n totalPartners,\n isLoading,\n isFetching,\n isFetchingNextPage,\n onSearch,\n onRowsScrollEnd,\n mobileRender,\n}: ProfileDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n alignItems={{ sm: 'center' }}\n gap={2}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={3} flexWrap=\"wrap\">\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Total de clientes:\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {totalPartners}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Clientes\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={columns}\n rows={rows}\n getRowId={(row: DashboardPartner) => row.external_id}\n mobileRender={mobileRender}\n loading={isLoading}\n fetching={isFetching && !isFetchingNextPage}\n fetchingNextPage={isFetchingNextPage}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={600}\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = <Header profileName={profileName} />;\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default ProfileDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { ProfileDetailHeaderProps } from './props';\n\nconst Header = ({ profileName }: ProfileDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n Clientes por perfil\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {profileName}\n </Typography>\n </Stack>\n);\n\nexport default Header;\n","import { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport Slider from '@mui/material/Slider';\nimport Stack from '@mui/material/Stack';\nimport { MouseHandlerDataParam } from 'recharts/types/synchronisation/types';\n\nimport { ChartCardHeader } from 'components/Analytics/ChartStyles';\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport useResponsive from 'hooks/useResponsive';\nimport { RankingItem } from 'types/partnerAnalysis';\n\nimport RankingChart from './Chart';\nimport RankingLegend from './Legend';\nimport { RankingProps, VisibleSeries } from './props';\n\nconst Ranking = memo(\n ({ data, config, average, onBarClick, children }: RankingProps & { children?: React.ReactNode }) => {\n const isMobile = useResponsive('down', 'sm');\n const isDownLg = useResponsive('down', 'lg');\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n bar: true,\n average: true,\n });\n const [visibleCount, setVisibleCount] = useState(12);\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [activeCoordX, setActiveCoordX] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n if (node) {\n setContainerWidth(node.clientWidth);\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n const sortedData = useMemo(\n () =>\n [...data].sort(\n (a, b) => (b[config.dataKey] as number) - (a[config.dataKey] as number),\n ),\n [data, config.dataKey],\n );\n\n const totalItems = sortedData.length;\n\n const maxVisible = useMemo(() => {\n if (isMobile) return 10;\n if (isDownLg) return 25;\n return 30;\n }, [isMobile, isDownLg]);\n\n const showSlider = !isMobile && totalItems > 10;\n const sliderMax = Math.min(totalItems, maxVisible);\n\n const clampedCount = Math.min(\n isMobile ? totalItems : visibleCount,\n totalItems,\n maxVisible,\n );\n\n const displayData = useMemo(\n () => sortedData.slice(0, clampedCount),\n [sortedData, clampedCount],\n );\n\n const shouldRotateLabels = useMemo(() => {\n if (containerWidth === 0 || displayData.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / displayData.length;\n return slotPerBar < 80;\n }, [containerWidth, displayData.length]);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleChartMouseMove = useCallback((state: MouseHandlerDataParam) => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n if (state?.activeCoordinate?.x != null) {\n setActiveCoordX(state.activeCoordinate.x);\n }\n }, []);\n\n const handleChartMouseLeave = useCallback(() => {\n setActiveBarIndex(null);\n setActiveCoordX(null);\n }, []);\n\n const handleBarClick = useCallback(\n (item: RankingItem) => {\n if (!item) return;\n onBarClick?.(item);\n },\n [onBarClick],\n );\n\n const handleSliderChange = useCallback(\n (_: Event, val: number | number[]) => {\n setVisibleCount(val as number);\n },\n [],\n );\n\n return (\n <ChartCard>\n <ChartCardHeader\n title=\"Ranking de clientes\"\n action={children}\n />\n\n <CardContent>\n <Result isEmpty={displayData.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={1.5}>\n <Stack width=\"100%\" ref={wrapperRefCallback}>\n <RankingChart\n data={displayData}\n config={config}\n visibleSeries={visibleSeries}\n average={average}\n activeBarIndex={activeBarIndex}\n activeCoordX={activeCoordX}\n shouldRotateLabels={shouldRotateLabels}\n onMouseMove={handleChartMouseMove}\n onMouseLeave={handleChartMouseLeave}\n onBarClick={handleBarClick}\n />\n </Stack>\n\n <RankingLegend\n visibleSeries={visibleSeries}\n config={config}\n onToggleSerie={handleToggleSerie}\n />\n\n {showSlider && (\n <Slider\n size=\"small\"\n min={10}\n max={sliderMax}\n value={clampedCount}\n valueLabelDisplay=\"auto\"\n onChange={handleSliderChange}\n />\n )}\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n },\n);\n\nRanking.displayName = 'Ranking';\n\nexport default Ranking;\n","import { useCallback, useMemo } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { BarRectangleItem } from 'recharts/types/cartesian/Bar';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport ReferenceCircle from 'components/Analytics/ReferenceCircle';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { RotatedTickProps } from 'components/Analytics/RotatedTick/props';\nimport WrappedTick from 'components/Analytics/WrappedTick';\nimport { RankingItem } from 'types/partnerAnalysis';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { AVERAGE_COLOR } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport RankingTooltip from './Tooltip';\n\nconst BAR_SIZE = 48;\nconst BAR_SLOT = BAR_SIZE / 0.8;\n\nconst RankingChart = ({\n data,\n config,\n visibleSeries,\n average,\n activeBarIndex,\n activeCoordX,\n shouldRotateLabels,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const values = data.map(item => (item[config.dataKey] as number) || 0);\n if (visibleSeries.average && average > 0) values.push(average);\n const max = Math.max(...values);\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data, config.dataKey, average, visibleSeries.average]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n const step = max / 6;\n return [\n ...new Set(Array.from({ length: 7 }, (_, i) => Math.round(step * i))),\n ];\n }, [yDomain]);\n\n const barLabel = useMemo(\n () =>\n shouldRotateLabels\n ? false\n : {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n formatter: (value: unknown) => config.formatLabel(Number(value)),\n },\n [shouldRotateLabels, config],\n );\n\n const tooltipContent = useMemo(\n () => <RankingTooltip config={config} average={average} />,\n [config, average],\n );\n\n const renderXAxisTick = useCallback(\n (tickProps: Record<string, unknown>) => {\n if (shouldRotateLabels) {\n return <RotatedTick {...(tickProps as RotatedTickProps)} />;\n }\n return (\n <WrappedTick\n x={tickProps.x as number}\n y={tickProps.y as number}\n payload={tickProps.payload as { value: string }}\n slotWidth={BAR_SLOT}\n />\n );\n },\n [shouldRotateLabels],\n );\n\n const handleBarClick = useCallback(\n (entry: BarRectangleItem) => {\n if (!entry) return;\n onBarClick(entry as unknown as RankingItem);\n },\n [onBarClick],\n );\n\n return (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={350}>\n <ComposedChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n barCategoryGap=\"20%\"\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"partner_name\"\n axisLine={false}\n tickLine={false}\n interval={0}\n height={shouldRotateLabels ? 70 : 50}\n tick={renderXAxisTick}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={(v: number) => fShortenNumber(v)}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={tooltipContent} />\n\n {visibleSeries.average && average > 0 && (\n <ReferenceLine\n y={average}\n stroke={AVERAGE_COLOR}\n strokeDasharray=\"8 4\"\n strokeWidth={2}\n ifOverflow=\"extendDomain\"\n />\n )}\n\n {visibleSeries.average && average > 0 && (\n <ReferenceLine\n y={average}\n stroke=\"none\"\n ifOverflow=\"extendDomain\"\n label={\n <ReferenceCircle\n activeCoordX={activeCoordX}\n referenceCircleColor={AVERAGE_COLOR}\n activeIndex={activeBarIndex}\n />\n }\n />\n )}\n\n {visibleSeries.bar && (\n <Bar\n dataKey={config.dataKey}\n name={config.barName}\n fill={config.color}\n maxBarSize={48}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n cursor=\"pointer\"\n onClick={handleBarClick}\n background={\n <BarBackground\n activeBarIndex={activeBarIndex}\n color={config.color}\n data={data}\n onBarClick={onBarClick}\n />\n }\n label={barLabel}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default RankingChart;\n","import { RankingItem } from 'types/partnerAnalysis';\nimport { fCurrencyBRL, fShortenNumber } from 'utils/formatNumber';\nimport { RankingType } from 'utils/partnerAnalysis';\n\nexport const AVERAGE_COLOR = '#212B36';\n\nexport interface RankingTypeConfig {\n label: string;\n color: string;\n dataKey: keyof RankingItem;\n barName: string;\n averageName: string;\n averageDataKey: string;\n formatLabel: (value: number) => string;\n formatYAxis: (value: number) => string;\n floorAverage?: boolean;\n}\n\nexport interface VisibleSeries {\n bar: boolean;\n average: boolean;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n config: RankingTypeConfig;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport interface RankingProps {\n data: RankingItem[];\n config: RankingTypeConfig;\n average: number;\n isFetching?: boolean;\n onBarClick?: (item: RankingItem) => void;\n}\n\nexport const RANKING_CONFIG: Record<RankingType, RankingTypeConfig> = {\n [RankingType.SALE_TOTAL_VALUE]: {\n label: 'Por valor total',\n color: '#22C55E',\n dataKey: 'total_sale_value',\n barName: 'Valor total por cliente',\n averageName: 'Média total de valor por cliente',\n averageDataKey: 'average_total_value',\n formatLabel: fCurrencyBRL,\n formatYAxis: fShortenNumber,\n },\n [RankingType.SALE_COUNT]: {\n label: 'Por pedidos',\n color: '#C684FF',\n dataKey: 'total_value_by_customer',\n barName: 'Quantidade de pedidos',\n averageName: 'Quantidade total de pedidos',\n averageDataKey: 'average_sale_count',\n formatLabel: String,\n formatYAxis: fShortenNumber,\n floorAverage: true,\n },\n [RankingType.SALE_AVERAGE_VALUE]: {\n label: 'Por ticket médio',\n color: '#00B8D9',\n dataKey: 'total_sale_value',\n barName: 'Ticket médio por cliente',\n averageName: 'Média do ticket médio',\n averageDataKey: 'average_ticket',\n formatLabel: fCurrencyBRL,\n formatYAxis: fShortenNumber,\n },\n};\n","import { BarBackgroundProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index = 0,\n activeBarIndex,\n color,\n data,\n onBarClick,\n}: BarBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 12}\n height={height + 6}\n fill={color}\n opacity={0.16}\n rx={6}\n style={{ cursor: 'pointer' }}\n onClick={() => onBarClick(data[index])}\n />\n );\n};\n\nexport default BarBackground;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\n\nimport { AVERAGE_COLOR } from '../props';\n\nimport { CustomTooltipProps } from './props';\n\nconst RankingTooltip = ({\n active,\n payload,\n label,\n config,\n average,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n\n <Divider />\n\n <Stack>\n {payload.map((entry, index) => (\n <Stack\n key={entry.dataKey}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n data-testid={`tooltip-item-${index}`}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.color}\n />\n\n <Typography variant=\"body2\" noWrap>\n {config.barName}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">\n {config.formatLabel(entry.value)}\n </Typography>\n </Stack>\n ))}\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={AVERAGE_COLOR}\n />\n\n <Typography variant=\"body2\" noWrap>\n {config.averageName}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{config.formatLabel(average)}</Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default RankingTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { AVERAGE_COLOR, LegendProps } from './props';\n\nconst RankingLegend = ({\n visibleSeries,\n config,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.bar}\n onChange={() => onToggleSerie('bar')}\n sx={{ '&.Mui-checked': { color: config.color } }}\n />\n }\n label={config.barName}\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.average}\n onChange={() => onToggleSerie('average')}\n sx={{ '&.Mui-checked': { color: AVERAGE_COLOR } }}\n />\n }\n label={config.averageName}\n />\n </Stack>\n);\n\nexport default RankingLegend;\n","import MuiButton from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\n\ninterface ItemButtonProps {\n active?: boolean;\n}\n\nexport const ItemButton = styled(MuiButton, {\n shouldForwardProp: prop => prop !== 'active',\n})<ItemButtonProps>(({ theme, active }) => ({\n justifyContent: 'flex-start',\n\n color: active ? theme.palette.primary.main : theme.palette.text.secondary,\n fontWeight: active ? 800 : 400,\n\n '&:hover': {\n background: theme.palette.action.hover,\n },\n}));\n","import Divider from '@mui/material/Divider';\nimport Link from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridRenderCellParams } from '@mui/x-data-grid-premium';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL } from 'utils/formatNumber';\nimport { fDate } from 'utils/formatTime';\n\nimport Header from './Header';\nimport { RankingDetailOrder, RankingDetailProps } from './props';\nimport { MobileItemContainer, StyledDivider } from './styles';\n\nconst getOrderId = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n <Typography variant=\"body2\" color=\"text.primary\">\n {order.id}\n </Typography>\n </Stack>\n);\n\nconst getPartnerName = (\n order: RankingDetailOrder,\n buildPartnerLink?: (partnerId: string) => string,\n) => (\n <Stack justifyContent=\"center\" height={1}>\n {order?.partner?.id && buildPartnerLink ? (\n <Link\n component=\"a\"\n href={buildPartnerLink(order.partner.id)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n variant=\"subtitle2\"\n sx={{ textDecoration: 'underline' }}\n noWrap\n >\n {order.partner?.name || '-'}\n </Link>\n ) : (\n <Typography variant=\"body2\" color=\"text.primary\" noWrap>\n {order.partner?.name || '-'}\n </Typography>\n )}\n </Stack>\n);\n\nconst getOrderValue = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n <Typography variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(order.total_value)}\n </Typography>\n </Stack>\n);\n\nconst getOrderDate = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.negotiation_date ? (\n <Typography variant=\"body2\" color=\"text.primary\">\n {fDate(order.negotiation_date, 'DD/MM/YYYY')}\n </Typography>\n ) : (\n '-'\n )}\n </Stack>\n);\n\nconst getOrderStatus = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.status || '-'}\n </Stack>\n);\n\nconst getDefaultMobileRender = (order: RankingDetailOrder) => (\n <MobileItemContainer key={order.id}>\n <Stack gap={1}>\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Pedido\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {order.id}\n </Typography>\n </Stack>\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Cliente\n </Typography>\n <Typography variant=\"subtitle2\" color=\"primary.main\">\n {order.partner?.name || '-'}\n </Typography>\n </Stack>\n\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Valor do pedido\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {fCurrencyBRL(order.total_value)}\n </Typography>\n </Stack>\n\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{ borderStyle: 'dashed', mx: 3 }}\n />\n\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Data\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {order.negotiation_date\n ? fDate(order.negotiation_date, 'DD/MM/YYYY')\n : '-'}\n </Typography>\n </Stack>\n </Stack>\n\n <Stack gap={0.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Status\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {order.status || '-'}\n </Typography>\n </Stack>\n </Stack>\n </MobileItemContainer>\n);\n\nconst RankingDetail = ({\n open,\n onClose,\n partnerName,\n rankingLabel,\n rows,\n total,\n totalValue,\n averageTicket,\n isLoading,\n isFetching,\n page,\n perPage,\n onSearch,\n onPaginationChange,\n buildPartnerLink,\n mobileItemSlot,\n}: RankingDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n gap={2}\n >\n <Stack\n minWidth={0}\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n flexWrap=\"wrap\"\n >\n <Typography variant=\"subtitle2\" noWrap>\n {partnerName}\n </Typography>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Qtd. de pedidos\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {total}\n </Typography>\n </Stack>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Valor em pedidos\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {fCurrencyBRL(totalValue)}\n </Typography>\n </Stack>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Ticket médio\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {fCurrencyBRL(averageTicket)}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Pedidos\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={[\n {\n field: 'external_id',\n headerName: 'Pedido',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderId(row),\n },\n {\n field: 'partner_name',\n headerName: 'Cliente',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n getPartnerName(row, buildPartnerLink),\n },\n {\n field: 'total_value',\n headerName: 'Valor do pedido',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderValue(row),\n },\n {\n field: 'created_at',\n headerName: 'Data',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderDate(row),\n },\n {\n field: 'last_status',\n headerName: 'Status',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderStatus(row),\n },\n ]}\n rows={rows}\n rowCount={total}\n mobileRender={(data: RankingDetailOrder) =>\n mobileItemSlot ? mobileItemSlot(data) : getDefaultMobileRender(data)\n }\n loading={isLoading}\n fetching={isFetching}\n paginationModel={{ page, pageSize: perPage }}\n onPaginationChange={onPaginationChange}\n paginationMode=\"server\"\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = (\n <Header rankingLabel={rankingLabel} partnerName={partnerName} />\n );\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default RankingDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { RankingDetailHeaderProps } from './props';\n\nconst Header = ({ rankingLabel, partnerName }: RankingDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n Detalhes do relatório\n </Typography>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n columnGap={1.5}\n rowGap={0}\n flexWrap=\"wrap\"\n >\n <Typography variant=\"body2\" color=\"text.secondary\" flexShrink={0}>\n Top clientes\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n Por &quot;{rankingLabel}&quot;\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {partnerName}\n </Typography>\n </Stack>\n </Stack>\n);\n\nexport default Header;\n","import MuiDivider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport { alpha, styled } from '@mui/material/styles';\n\nexport const StyledDivider = styled(MuiDivider)(() => ({\n height: 30,\n alignSelf: 'center',\n borderStyle: 'dashed',\n}));\n\nexport const MobileItemContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2),\n gap: theme.spacing(1),\n color: theme.palette.text.primary,\n\n '& a': {\n textDecoration: 'none',\n },\n\n '&+div': {\n borderTop: `1px dashed ${alpha(theme.palette.grey[500], 0.2)}`,\n },\n}));\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport Slider from '@mui/material/Slider';\nimport Stack from '@mui/material/Stack';\nimport { MouseHandlerDataParam } from 'recharts/types/synchronisation/types';\n\nimport { ChartCard, ChartCardHeader } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport useResponsive from 'hooks/useResponsive';\n\nimport SellerPortfolioChart from './Chart';\nimport SellerPortfolioLegend from './Legend';\nimport { SellerPortfolioProps } from './props';\n\nconst SellerPortfolio = ({\n data,\n config,\n onBarClick,\n children,\n}: SellerPortfolioProps) => {\n const isMobile = useResponsive('down', 'sm');\n const isDownLg = useResponsive('down', 'lg');\n\n const [hiddenKeys, setHiddenKeys] = useState<Set<string>>(new Set());\n const [visibleCount, setVisibleCount] = useState(12);\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const sortedData = useMemo(\n () => [...data].sort((a, b) => b._total - a._total),\n [data],\n );\n\n const maxVisible = useMemo(() => {\n if (isMobile) return 10;\n if (isDownLg) return 25;\n return 30;\n }, [isDownLg, isMobile]);\n\n const totalItems = sortedData.length;\n const showSlider = !isMobile && totalItems > 10;\n const sliderMax = Math.min(totalItems, maxVisible);\n\n const clampedCount = Math.min(\n isMobile ? totalItems : visibleCount,\n totalItems,\n maxVisible,\n );\n\n const displayData = useMemo(\n () => sortedData.slice(0, clampedCount),\n [sortedData, clampedCount],\n );\n\n const shouldRotateLabels = useMemo(() => {\n if (containerWidth === 0 || displayData.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / displayData.length;\n return slotPerBar < 80;\n }, [containerWidth, displayData.length]);\n\n const visibleSeries = useMemo(\n () => config.series.filter(s => !hiddenKeys.has(s.dataKey)),\n [config.series, hiddenKeys],\n );\n\n const displayDataWithTotals = useMemo(\n () =>\n displayData.map(item => ({\n ...item,\n _visibleTotal: visibleSeries.reduce(\n (sum, s) => sum + (Number(item[s.dataKey]) || 0),\n 0,\n ),\n })),\n [displayData, visibleSeries],\n );\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n if (node) {\n setContainerWidth(node.clientWidth);\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n const handleToggleSerie = useCallback((dataKey: string) => {\n setHiddenKeys(prev => {\n const next = new Set(prev);\n if (next.has(dataKey)) next.delete(dataKey);\n else next.add(dataKey);\n return next;\n });\n }, []);\n\n const handleMouseMove = useCallback((state: MouseHandlerDataParam) => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setActiveBarIndex(null);\n }, []);\n\n const handleBarClick = useCallback(\n (sellerId: string, sellerName: string) => {\n onBarClick?.(sellerId, sellerName);\n },\n [onBarClick],\n );\n\n const handleSliderChange = useCallback(\n (_: Event, val: number | number[]) => {\n setVisibleCount(val as number);\n },\n [],\n );\n\n return (\n <ChartCard>\n <ChartCardHeader\n title=\"Carteira de clientes do vendedor\"\n action={children}\n />\n\n <CardContent>\n <Result isEmpty={displayData.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={1.5}>\n <Stack width=\"100%\" ref={wrapperRefCallback}>\n <SellerPortfolioChart\n data={displayDataWithTotals}\n config={config}\n visibleSeries={visibleSeries}\n hiddenKeys={hiddenKeys}\n activeBarIndex={activeBarIndex}\n shouldRotateLabels={shouldRotateLabels}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={handleBarClick}\n />\n </Stack>\n\n <SellerPortfolioLegend\n series={config.series}\n hiddenKeys={hiddenKeys}\n onToggleSerie={handleToggleSerie}\n />\n\n {showSlider && (\n <Slider\n size=\"small\"\n min={10}\n max={sliderMax}\n value={clampedCount}\n valueLabelDisplay=\"auto\"\n onChange={handleSliderChange}\n />\n )}\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n};\n\nexport default SellerPortfolio;\n","import { type ReactElement, useCallback, useMemo } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { BarRectangleItem } from 'recharts/types/cartesian/Bar';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { RotatedTickProps } from 'components/Analytics/RotatedTick/props';\nimport WrappedTick from 'components/Analytics/WrappedTick';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport StackedTooltip from './Tooltip';\n\nconst BAR_SIZE = 48;\nconst BAR_SLOT = BAR_SIZE / 0.8;\n\nconst SellerPortfolioChart = ({\n data,\n config,\n visibleSeries,\n hiddenKeys,\n activeBarIndex,\n shouldRotateLabels,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const max = Math.max(...data.map(item => item._visibleTotal));\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n const step = max / 6;\n return [\n ...new Set(Array.from({ length: 7 }, (_, i) => Math.round(step * i))),\n ];\n }, [yDomain]);\n\n const tooltipContent = useMemo(\n () => <StackedTooltip config={config} />,\n [config],\n );\n\n const renderXAxisTick = useCallback(\n (tickProps: Record<string, unknown>) => {\n if (shouldRotateLabels) {\n return <RotatedTick {...(tickProps as RotatedTickProps)} />;\n }\n return (\n <WrappedTick\n x={tickProps.x as number}\n y={tickProps.y as number}\n payload={tickProps.payload as { value: string }}\n slotWidth={BAR_SLOT}\n />\n );\n },\n [shouldRotateLabels],\n );\n\n const handleBarClick = useCallback(\n (entry: BarRectangleItem) => {\n if (!entry) return;\n const row = entry.payload as Record<string, unknown> | undefined;\n if (!row) return;\n onBarClick(String(row.seller_external_id), String(row.seller_name));\n },\n [onBarClick],\n );\n\n const renderLabel = useCallback(\n (props: Record<string, unknown>) => {\n const { x, y, width, index } = props as {\n x: number;\n y: number;\n width: number;\n index: number;\n };\n const total = data[index]?._visibleTotal;\n if (!total) return <></>;\n return (\n <text\n x={(x as number) + (width as number) / 2}\n y={(y as number) - 6}\n textAnchor=\"middle\"\n fontSize={11}\n fill=\"#212B36\"\n >\n {total}\n </text>\n );\n },\n [data],\n );\n\n return (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={350}>\n <BarChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n barCategoryGap=\"20%\"\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"seller_name\"\n axisLine={false}\n tickLine={false}\n interval={0}\n height={shouldRotateLabels ? 70 : 50}\n tick={renderXAxisTick}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={(v: number) => fShortenNumber(v)}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={tooltipContent} cursor={false} />\n\n {config.series.map(s => {\n const visible = !hiddenKeys.has(s.dataKey);\n const firstVisible = visibleSeries[0];\n const lastVisible = visibleSeries[visibleSeries.length - 1];\n const isFirst = visible && s.dataKey === firstVisible?.dataKey;\n const isLast = visible && s.dataKey === lastVisible?.dataKey;\n\n return (\n <Bar\n key={s.dataKey}\n dataKey={visible ? s.dataKey : `_hidden_${s.dataKey}`}\n name={s.name}\n fill={s.color}\n stackId=\"stack\"\n maxBarSize={48}\n isAnimationActive={false}\n cursor=\"pointer\"\n hide={!visible}\n onClick={handleBarClick}\n {...(isFirst && {\n background: (\n <BarBackground\n activeBarIndex={activeBarIndex}\n data={data}\n onBarClick={onBarClick}\n />\n ),\n })}\n {...(isLast && { radius: [4, 4, 0, 0] as [number, number, number, number] })}\n {...(isLast &&\n !shouldRotateLabels && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: renderLabel as unknown as ReactElement,\n },\n })}\n />\n );\n })}\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default SellerPortfolioChart;\n","import { BarBackgroundProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index = 0,\n activeBarIndex,\n data,\n onBarClick,\n}: BarBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n const entry = data[index];\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 12}\n height={height + 6}\n fill=\"#919EAB\"\n opacity={0.16}\n rx={6}\n style={{ cursor: 'pointer' }}\n onClick={() => {\n if (!entry) return;\n onBarClick(\n String(entry.seller_external_id),\n String(entry.seller_name),\n );\n }}\n />\n );\n};\n\nexport default BarBackground;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { StackedTooltipProps, TooltipPayloadEntry } from './props';\n\nconst formatPct = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst StackedTooltip = ({\n active,\n payload,\n label,\n config,\n}: StackedTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const visibleEntries = payload.filter(\n entry => entry.value != null && entry.value > 0,\n );\n\n const total = visibleEntries.reduce(\n (sum: number, entry: TooltipPayloadEntry) => sum + entry.value,\n 0,\n );\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n\n <Divider />\n\n <Stack>\n {visibleEntries.map((entry: TooltipPayloadEntry) => {\n const series = config.series.find(s => s.dataKey === entry.dataKey);\n const pct = total > 0 ? formatPct((entry.value / total) * 100) : '0%';\n\n return (\n <Stack\n key={entry.dataKey}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.color}\n />\n\n <Typography variant=\"body2\" noWrap>\n {series?.name ?? entry.dataKey}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {pct} ({entry.value})\n </Typography>\n </Stack>\n );\n })}\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPct(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default StackedTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { LegendProps } from './props';\n\nconst SellerPortfolioLegend = ({\n series,\n hiddenKeys,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n {series.map(s => (\n <FormControlLabel\n key={s.dataKey}\n control={\n <Checkbox\n checked={!hiddenKeys.has(s.dataKey)}\n onChange={() => onToggleSerie(s.dataKey)}\n sx={{ '&.Mui-checked': { color: s.color } }}\n />\n }\n label={s.name}\n />\n ))}\n </Stack>\n);\n\nexport default SellerPortfolioLegend;\n","import { fShortenNumber } from 'utils/formatNumber';\nimport { AbcCurve, SellerPortfolioQueryType, Status } from 'utils/partnerAnalysis';\n\nexport interface StackedBarSeries {\n dataKey: string;\n name: string;\n color: string;\n}\n\nexport interface SellerPortfolioTypeConfig {\n label: string;\n series: StackedBarSeries[];\n formatYAxis: (value: number) => string;\n}\n\nexport interface ChartDataRow extends Record<string, string | number> {\n seller_name: string;\n seller_external_id: string;\n _total: number;\n}\n\nexport interface DisplayDataRow extends ChartDataRow {\n _visibleTotal: number;\n}\n\nexport interface SelectedSeller {\n id: string;\n name: string;\n}\n\nexport interface LegendProps {\n series: StackedBarSeries[];\n hiddenKeys: Set<string>;\n onToggleSerie: (dataKey: string) => void;\n}\n\nexport interface SellerPortfolioProps {\n data: ChartDataRow[];\n config: SellerPortfolioTypeConfig;\n onBarClick?: (sellerId: string, sellerName: string) => void;\n children?: React.ReactNode;\n}\n\nconst CLASSIFICATION_SERIES: StackedBarSeries[] = [\n { dataKey: Status.ACTIVE, name: 'Ativos', color: '#22C55E' },\n { dataKey: Status.AT_RISK, name: 'Em risco', color: '#FFAB00' },\n { dataKey: Status.INACTIVE, name: 'Inativos', color: '#FF5630' },\n { dataKey: Status.NEW_CLIENT, name: 'Novos clientes', color: '#8E33FF' },\n { dataKey: Status.PROSPECT, name: 'Prospects', color: '#00B8D9' },\n { dataKey: Status.LOST, name: 'Perdidos', color: '#C4CDD5' },\n];\n\nconst ABC_CURVE_SERIES: StackedBarSeries[] = [\n { dataKey: AbcCurve.A, name: 'Curva A', color: '#22C55E' },\n { dataKey: AbcCurve.B, name: 'Curva B', color: '#FFAB00' },\n { dataKey: AbcCurve.C, name: 'Curva C', color: '#FF5630' },\n];\n\nexport const SELLER_PORTFOLIO_CONFIG: Record<\n SellerPortfolioQueryType,\n SellerPortfolioTypeConfig\n> = {\n [SellerPortfolioQueryType.CLASSIFICATION]: {\n label: 'Por classificação',\n series: CLASSIFICATION_SERIES,\n formatYAxis: fShortenNumber,\n },\n [SellerPortfolioQueryType.ABC_CURVE]: {\n label: 'Por curva ABC',\n series: ABC_CURVE_SERIES,\n formatYAxis: fShortenNumber,\n },\n};\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnerBreakdown/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/PieLabel.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersByProfile/props.ts","../../../../src/components/Analytics/PartnerAnalysis/PartnersDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/PartnersDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/ProfileDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/ProfileDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/props.ts","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/BarBackground.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/Ranking/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/Header.tsx","../../../../src/components/Analytics/PartnerAnalysis/RankingDetail/styles.ts","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/index.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/BarBackground.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Chart/Tooltip.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/Legend.tsx","../../../../src/components/Analytics/PartnerAnalysis/SellerPortfolio/props.ts"],"names":["CardContent","CardHeader","Stack","Pie","PieChart","ResponsiveContainer","Tooltip","styled","ChartContainer","theme","Divider","Typography","jsx","jsxs","formatPercentage","value","fPercent","PieChartTooltip","active","payload","total","entry","SimpleCard_default","Tooltip_default","PieChartBreakdown","chartData","isEmptyData","onPieClick","clickable","fNumber","Chart_default","Checkbox","FormControlLabel","PieChartLegend","items","hiddenKeys","onToggle","onItemClick","item","e","_","checked","fShortenNumber","Legend_default","PartnerBreakdown","title","legendItems","ChartCard","PartnerBreakdown_default","RADIAN","LABEL_OFFSET","MIN_PERCENTAGE","PieLabel","props","cx","cy","midAngle","outerRadius","percentage","cxNum","cyNum","outerR","angle","sin","cos","x1","y1","xMid","yMid","side","xEnd","yEnd","label","badgeW","badgeX","PieLabel_default","ProfileTooltip","renderLabel","ProfileChart","ProfileLegend","Scrollbar_default","PartnersByProfile","data","onLegendClick","Result_default","EmptyState_default","PartnersByProfile_default","SEGMENT_COLORS","MAX_VISIBLE","Link","Header","Header_default","Fragment","PartnersDetail","open","onClose","columns","rows","totalPartners","isLoading","isFetching","isFetchingNextPage","onSearch","onRowsScrollEnd","sellerName","buildSellerLink","sellerExternalId","mobileRender","isMobile","useResponsive_default","content","SearchInput_default","DataView_default","row","header","Drawer_default","Modal_default","PartnersDetail_default","profileName","ProfileDetail","ProfileDetail_default","memo","useCallback","useMemo","useRef","useState","Slider","Bar","CartesianGrid","ComposedChart","ReferenceLine","XAxis","YAxis","AVERAGE_COLOR","RANKING_CONFIG","fCurrencyBRL","BarBackground","x","y","width","height","index","activeBarIndex","color","onBarClick","BarBackground_default","RankingTooltip","config","average","BAR_SIZE","BAR_SLOT","RankingChart","visibleSeries","activeCoordX","shouldRotateLabels","onMouseMove","onMouseLeave","yDomain","values","max","yTicks","step","i","barLabel","tooltipContent","renderXAxisTick","tickProps","RotatedTick_default","WrappedTick_default","handleBarClick","ChartWrapper","v","ReferenceCircle_default","RankingLegend","onToggleSerie","Ranking","children","isDownLg","setVisibleSeries","visibleCount","setVisibleCount","setActiveBarIndex","setActiveCoordX","containerWidth","setContainerWidth","observerRef","wrapperRefCallback","node","sortedData","a","b","totalItems","maxVisible","showSlider","sliderMax","clampedCount","displayData","handleToggleSerie","serie","prev","handleChartMouseMove","state","handleChartMouseLeave","handleSliderChange","val","ChartCardHeader","Ranking_default","MuiButton","ItemButton","prop","rankingLabel","partnerName","MuiDivider","alpha","StyledDivider","MobileItemContainer","getOrderId","order","getPartnerName","buildPartnerLink","getOrderValue","getOrderDate","fDate","getOrderStatus","getDefaultMobileRender","RankingDetail","totalValue","averageTicket","page","perPage","onPaginationChange","mobileItemSlot","RankingDetail_default","BarChart","formatPct","StackedTooltip","visibleEntries","sum","series","s","pct","SellerPortfolioChart","visible","firstVisible","lastVisible","isFirst","isLast","SellerPortfolioLegend","SellerPortfolio","setHiddenKeys","displayDataWithTotals","dataKey","next","handleMouseMove","handleMouseLeave","sellerId","SellerPortfolio_default","CLASSIFICATION_SERIES","ABC_CURVE_SERIES","SELLER_PORTFOLIO_CONFIG"],"mappings":"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","sourcesContent":["import CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\n\nimport PieChartBreakdown from './Chart';\nimport PieChartLegend from './Legend';\nimport { PartnerBreakdownProps } from './props';\n\nconst PartnerBreakdown = ({\n title,\n chartData,\n total,\n isEmptyData,\n legendItems,\n hiddenKeys,\n onToggle,\n onPieClick,\n onItemClick,\n}: PartnerBreakdownProps) => (\n <ChartCard>\n <CardHeader title={title} />\n\n <CardContent>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n alignItems=\"center\"\n gap={1.5}\n minWidth={0}\n >\n <PieChartBreakdown\n chartData={chartData}\n total={total}\n isEmptyData={isEmptyData}\n onPieClick={onPieClick}\n clickable={!!onPieClick}\n />\n\n <PieChartLegend\n items={legendItems}\n hiddenKeys={hiddenKeys}\n onToggle={onToggle}\n onItemClick={onItemClick}\n />\n </Stack>\n </CardContent>\n </ChartCard>\n);\n\nexport default PartnerBreakdown;\n","import { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts';\n\nimport { fNumber } from 'utils/formatNumber';\n\nimport { ChartProps } from '../props';\n\nimport { ChartContainer } from './styles';\nimport PieChartTooltip from './Tooltip';\n\nconst PieChartBreakdown = ({\n chartData,\n total,\n isEmptyData,\n onPieClick,\n clickable,\n}: ChartProps) => (\n <ChartContainer>\n <ResponsiveContainer width={200} height={200}>\n <PieChart>\n <Pie\n data={chartData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={60}\n outerRadius={90}\n paddingAngle={2}\n strokeWidth={0}\n isAnimationActive={false}\n onClick={onPieClick}\n cursor={clickable ? 'pointer' : undefined}\n />\n\n <text\n x=\"50%\"\n y=\"46%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n style={{ fontSize: 24, fontWeight: 700 }}\n >\n {fNumber(total)}\n </text>\n\n <text\n x=\"50%\"\n y=\"58%\"\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n style={{ fontSize: 12, fill: '#919EAB' }}\n >\n clientes\n </text>\n\n {!isEmptyData && (\n <Tooltip content={<PieChartTooltip total={total} />} />\n )}\n </PieChart>\n </ResponsiveContainer>\n </ChartContainer>\n);\n\nexport default PieChartBreakdown;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const ChartContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n alignSelf: 'flex-start',\n\n flexShrink: 0,\n\n '& .recharts-wrapper, & .recharts-wrapper *': {\n outline: 'none !important',\n boxShadow: 'none !important',\n },\n\n '& .recharts-pie-sector': {\n cursor: 'pointer',\n },\n\n [theme.breakpoints.down('md')]: {\n alignSelf: 'center',\n },\n}));\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from '../props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst PieChartTooltip = ({ active, payload, total }: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const entry = payload[0];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {entry.name}\n </Typography>\n\n <Divider />\n\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.payload.fill}\n />\n\n <Typography variant=\"body2\" noWrap>\n {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(entry.payload.percentage)} ({entry.value})\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default PieChartTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { fPercent, fShortenNumber } from 'utils/formatNumber';\n\nimport { LegendProps } from './props';\n\nconst PieChartLegend = ({\n items,\n hiddenKeys,\n onToggle,\n onItemClick,\n}: LegendProps) => (\n <Stack width=\"100%\" justifyContent=\"center\">\n {items.map(item => (\n <Stack\n key={item.key}\n display=\"grid\"\n gridTemplateColumns=\"1fr auto auto\"\n alignItems=\"center\"\n gap={1.5}\n onClick={() => onItemClick?.(item.key, item.label)}\n sx={{\n ...(onItemClick ? { cursor: 'pointer' } : {}),\n }}\n >\n <FormControlLabel\n label={item.label}\n onClick={e => e.stopPropagation()}\n control={\n <Checkbox\n size=\"small\"\n checked={!hiddenKeys.has(item.key)}\n onChange={(_, checked) => onToggle(item.key, checked)}\n sx={{ '&.Mui-checked': { color: item.color } }}\n />\n }\n sx={{\n '& .MuiFormControlLabel-label': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n }}\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n textAlign=\"right\"\n noWrap\n >\n {fPercent(item.percentage, {\n maximumFractionDigits: 2,\n ...(item.percentage > 0 && item.percentage < 100\n ? { minimumFractionDigits: 2 }\n : {}),\n })}\n </Typography>\n\n <Typography\n variant=\"subtitle2\"\n color=\"text.primary\"\n textAlign=\"right\"\n noWrap\n >\n {fShortenNumber(item.count)}\n </Typography>\n </Stack>\n ))}\n </Stack>\n);\n\nexport default PieChartLegend;\n","import CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\n\nimport ProfileChart from './Chart';\nimport ProfileLegend from './Legend';\nimport { PartnersByProfileProps } from './props';\n\nconst PartnersByProfile = ({\n data,\n chartData,\n total,\n isEmptyData,\n onPieClick,\n onLegendClick,\n hiddenKeys,\n onToggle,\n}: PartnersByProfileProps) => (\n <ChartCard>\n <CardHeader title=\"Clientes por segmentos\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={2}>\n <ProfileChart\n chartData={chartData}\n total={total}\n isEmptyData={isEmptyData}\n onPieClick={onPieClick}\n />\n\n <ProfileLegend\n items={data}\n hiddenKeys={hiddenKeys}\n onToggle={onToggle}\n onItemClick={onLegendClick}\n />\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n);\n\nexport default PartnersByProfile;\n","import { PieLabelRenderProps } from 'recharts';\nimport { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts';\n\nimport PieLabel from './PieLabel';\nimport { ChartProps } from './props';\nimport { ChartContainer } from './styles';\nimport ProfileTooltip from './Tooltip';\n\nconst renderLabel = (props: PieLabelRenderProps) => <PieLabel {...props} />;\n\nconst ProfileChart = ({\n chartData,\n total,\n isEmptyData,\n onPieClick,\n}: ChartProps) => (\n <ChartContainer>\n <ResponsiveContainer width={280} height={280}>\n <PieChart>\n <Pie\n data={chartData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n outerRadius={90}\n paddingAngle={1}\n strokeWidth={0}\n isAnimationActive={false}\n label={isEmptyData ? false : renderLabel}\n labelLine={false}\n onClick={onPieClick}\n cursor={onPieClick ? 'pointer' : undefined}\n />\n\n {!isEmptyData && (\n <Tooltip content={<ProfileTooltip total={total} />} />\n )}\n </PieChart>\n </ResponsiveContainer>\n </ChartContainer>\n);\n\nexport default ProfileChart;\n","import { PieLabelRenderProps } from 'recharts';\n\nimport { fPercent } from 'utils/formatNumber';\n\nconst RADIAN = Math.PI / 180;\nconst LABEL_OFFSET = 22;\nconst MIN_PERCENTAGE = 2;\n\nconst PieLabel = (props: PieLabelRenderProps) => {\n const { cx, cy, midAngle, outerRadius, percentage } =\n props as PieLabelRenderProps & { percentage: number };\n\n if (percentage < MIN_PERCENTAGE) return null;\n\n const cxNum = Number(cx);\n const cyNum = Number(cy);\n const outerR = Number(outerRadius);\n const angle = Number(midAngle);\n\n if (isNaN(cxNum) || isNaN(cyNum) || isNaN(outerR)) return null;\n\n const sin = Math.sin(-angle * RADIAN);\n const cos = Math.cos(-angle * RADIAN);\n\n const x1 = cxNum + outerR * cos;\n const y1 = cyNum + outerR * sin;\n\n const xMid = cxNum + (outerR + LABEL_OFFSET * 0.5) * cos;\n const yMid = cyNum + (outerR + LABEL_OFFSET * 0.5) * sin;\n\n const side = cos >= 0 ? 1 : -1;\n const xEnd = xMid + side * 10;\n const yEnd = yMid;\n\n const label = fPercent(percentage, {\n maximumFractionDigits: 1,\n ...(percentage > 0 && percentage < 100 ? { minimumFractionDigits: 1 } : {}),\n });\n\n const badgeW = label.length * 7 + 10;\n const badgeX = side === 1 ? xEnd + 2 : xEnd - badgeW - 2;\n\n return (\n <g>\n <path\n d={`M${x1},${y1} L${xMid},${yMid} L${xEnd},${yEnd}`}\n stroke=\"#637381\"\n fill=\"none\"\n strokeWidth={1}\n />\n\n <rect\n x={badgeX}\n y={yEnd - 10}\n width={badgeW}\n height={20}\n rx={4}\n fill=\"#212B36\"\n />\n\n <text\n x={badgeX + badgeW / 2}\n y={yEnd}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={11}\n fontWeight={600}\n fill=\"#FFFFFF\"\n >\n {label}\n </text>\n </g>\n );\n};\n\nexport default PieLabel;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const ChartContainer = styled(Stack)({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n\n '& .recharts-wrapper, & .recharts-wrapper *': {\n outline: 'none !important',\n boxShadow: 'none !important',\n },\n\n '& .recharts-wrapper': {\n overflow: 'visible !important',\n },\n\n '& .recharts-wrapper svg': {\n overflow: 'visible',\n },\n\n '& .recharts-pie-sector': {\n cursor: 'pointer',\n },\n});\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst ProfileTooltip = ({ active, payload, total }: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const entry = payload[0];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {entry.name}\n </Typography>\n\n <Divider />\n\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.payload.fill}\n />\n\n <Typography variant=\"body2\" noWrap>\n {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(entry.payload.percentage)} ({entry.value})\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPercentage(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default ProfileTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Scrollbar from 'components/Scrollbar';\nimport { fPercent, fShortenNumber } from 'utils/formatNumber';\n\nimport { LegendProps } from './props';\n\nconst formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst ProfileLegend = ({\n items,\n hiddenKeys,\n onToggle,\n onItemClick,\n}: LegendProps) => (\n <Scrollbar sx={{ maxHeight: 280, width: '100%', pl: 0.5 }}>\n {items.map(item => (\n <Stack\n key={item.key}\n display=\"grid\"\n gridTemplateColumns=\"1fr auto auto\"\n alignItems=\"center\"\n gap={1.5}\n onClick={() => onItemClick?.(item.key)}\n sx={onItemClick ? { cursor: 'pointer' } : undefined}\n >\n <FormControlLabel\n label={item.label}\n onClick={e => e.stopPropagation()}\n control={\n <Checkbox\n size=\"small\"\n checked={!hiddenKeys.has(item.key)}\n onChange={(_, checked) => onToggle(item.key, checked)}\n sx={{ '&.Mui-checked': { color: item.color } }}\n />\n }\n sx={{\n '& .MuiFormControlLabel-label': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n }}\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n textAlign=\"right\"\n noWrap\n >\n {formatPercentage(item.percentage)}\n </Typography>\n\n <Typography\n variant=\"subtitle2\"\n color=\"text.primary\"\n textAlign=\"right\"\n noWrap\n >\n {fShortenNumber(item.count)}\n </Typography>\n </Stack>\n ))}\n </Scrollbar>\n);\n\nexport default ProfileLegend;\n","export const SEGMENT_COLORS = [\n '#FF5630',\n '#FFAB00',\n '#22C55E',\n '#C4CDD5',\n '#8E33FF',\n '#00B8D9',\n '#3366FF',\n '#FF6C40',\n '#36B37E',\n '#B76E00',\n];\n\nexport const MAX_VISIBLE = 12;\n\nexport interface LegendItem {\n key: string;\n label: string;\n count: number;\n percentage: number;\n color: string;\n}\n\nexport interface LegendProps {\n items: LegendItem[];\n hiddenKeys: Set<string>;\n onToggle: (key: string, checked: boolean) => void;\n onItemClick?: (key: string) => void;\n}\n\nexport interface PartnersByProfileProps {\n data: LegendItem[];\n chartData: SegmentChartItem[];\n total: number;\n isEmptyData: boolean;\n onPieClick?: (_: unknown, index: number) => void;\n onLegendClick?: (key: string) => void;\n hiddenKeys: Set<string>;\n onToggle: (key: string, checked: boolean) => void;\n}\n\nexport interface SegmentChartItem {\n name: string;\n value: number;\n percentage: number;\n fill: string;\n}\n","import Divider from '@mui/material/Divider';\nimport Link from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { DashboardPartner } from 'types/partnerAnalysis';\n\nimport Header from './Header';\nimport { PartnersDetailProps } from './props';\n\nconst PartnersDetail = ({\n open,\n onClose,\n title,\n label,\n columns,\n rows,\n totalPartners,\n isLoading,\n isFetching,\n isFetchingNextPage,\n onSearch,\n onRowsScrollEnd,\n sellerName,\n buildSellerLink,\n sellerExternalId,\n mobileRender,\n}: PartnersDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n alignItems={{ sm: 'center' }}\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={3} flexWrap=\"wrap\">\n {sellerName && sellerExternalId && (\n <>\n {buildSellerLink ? (\n <Link\n component=\"a\"\n href={buildSellerLink(sellerExternalId)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n variant=\"subtitle2\"\n sx={{ textDecoration: 'underline' }}\n noWrap\n >\n {sellerName}\n </Link>\n ) : (\n <Typography variant=\"subtitle2\" noWrap>\n {sellerName}\n </Typography>\n )}\n\n <Divider orientation=\"vertical\" flexItem />\n </>\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Total de clientes:\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {totalPartners}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Clientes\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={columns}\n rows={rows}\n getRowId={(row: DashboardPartner) => row.external_id}\n mobileRender={mobileRender}\n loading={isLoading}\n fetching={isFetching && !isFetchingNextPage}\n fetchingNextPage={isFetchingNextPage}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={600}\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = <Header title={title} label={label} />;\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default PartnersDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { PartnersDetailHeaderProps } from './props';\n\nconst Header = ({ title, label }: PartnersDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n {title}\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {label}\n </Typography>\n </Stack>\n);\n\nexport default Header;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { DashboardPartner } from 'types/partnerAnalysis';\n\nimport Header from './Header';\nimport { ProfileDetailProps } from './props';\n\nconst ProfileDetail = ({\n open,\n onClose,\n profileName,\n columns,\n rows,\n totalPartners,\n isLoading,\n isFetching,\n isFetchingNextPage,\n onSearch,\n onRowsScrollEnd,\n mobileRender,\n}: ProfileDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n alignItems={{ sm: 'center' }}\n gap={2}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={3} flexWrap=\"wrap\">\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Total de clientes:\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {totalPartners}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Clientes\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={columns}\n rows={rows}\n getRowId={(row: DashboardPartner) => row.external_id}\n mobileRender={mobileRender}\n loading={isLoading}\n fetching={isFetching && !isFetchingNextPage}\n fetchingNextPage={isFetchingNextPage}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={600}\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = <Header profileName={profileName} />;\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default ProfileDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { ProfileDetailHeaderProps } from './props';\n\nconst Header = ({ profileName }: ProfileDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n Clientes por perfil\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {profileName}\n </Typography>\n </Stack>\n);\n\nexport default Header;\n","import { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport Slider from '@mui/material/Slider';\nimport Stack from '@mui/material/Stack';\nimport { MouseHandlerDataParam } from 'recharts/types/synchronisation/types';\n\nimport { ChartCardHeader } from 'components/Analytics/ChartStyles';\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport useResponsive from 'hooks/useResponsive';\nimport { RankingItem } from 'types/partnerAnalysis';\n\nimport RankingChart from './Chart';\nimport RankingLegend from './Legend';\nimport { RankingProps, VisibleSeries } from './props';\n\nconst Ranking = memo(\n ({ data, config, average, onBarClick, children }: RankingProps & { children?: React.ReactNode }) => {\n const isMobile = useResponsive('down', 'sm');\n const isDownLg = useResponsive('down', 'lg');\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n bar: true,\n average: true,\n });\n const [visibleCount, setVisibleCount] = useState(12);\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [activeCoordX, setActiveCoordX] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n if (node) {\n setContainerWidth(node.clientWidth);\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n const sortedData = useMemo(\n () =>\n [...data].sort(\n (a, b) => (b[config.dataKey] as number) - (a[config.dataKey] as number),\n ),\n [data, config.dataKey],\n );\n\n const totalItems = sortedData.length;\n\n const maxVisible = useMemo(() => {\n if (isMobile) return 10;\n if (isDownLg) return 25;\n return 30;\n }, [isMobile, isDownLg]);\n\n const showSlider = !isMobile && totalItems > 10;\n const sliderMax = Math.min(totalItems, maxVisible);\n\n const clampedCount = Math.min(\n isMobile ? totalItems : visibleCount,\n totalItems,\n maxVisible,\n );\n\n const displayData = useMemo(\n () => sortedData.slice(0, clampedCount),\n [sortedData, clampedCount],\n );\n\n const shouldRotateLabels = useMemo(() => {\n if (containerWidth === 0 || displayData.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / displayData.length;\n return slotPerBar < 80;\n }, [containerWidth, displayData.length]);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleChartMouseMove = useCallback((state: MouseHandlerDataParam) => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n if (state?.activeCoordinate?.x != null) {\n setActiveCoordX(state.activeCoordinate.x);\n }\n }, []);\n\n const handleChartMouseLeave = useCallback(() => {\n setActiveBarIndex(null);\n setActiveCoordX(null);\n }, []);\n\n const handleBarClick = useCallback(\n (item: RankingItem) => {\n if (!item) return;\n onBarClick?.(item);\n },\n [onBarClick],\n );\n\n const handleSliderChange = useCallback(\n (_: Event, val: number | number[]) => {\n setVisibleCount(val as number);\n },\n [],\n );\n\n return (\n <ChartCard>\n <ChartCardHeader\n title=\"Ranking de clientes\"\n action={children}\n />\n\n <CardContent>\n <Result isEmpty={displayData.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={1.5}>\n <Stack width=\"100%\" ref={wrapperRefCallback}>\n <RankingChart\n data={displayData}\n config={config}\n visibleSeries={visibleSeries}\n average={average}\n activeBarIndex={activeBarIndex}\n activeCoordX={activeCoordX}\n shouldRotateLabels={shouldRotateLabels}\n onMouseMove={handleChartMouseMove}\n onMouseLeave={handleChartMouseLeave}\n onBarClick={handleBarClick}\n />\n </Stack>\n\n <RankingLegend\n visibleSeries={visibleSeries}\n config={config}\n onToggleSerie={handleToggleSerie}\n />\n\n {showSlider && (\n <Slider\n size=\"small\"\n min={10}\n max={sliderMax}\n value={clampedCount}\n valueLabelDisplay=\"auto\"\n onChange={handleSliderChange}\n />\n )}\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n },\n);\n\nRanking.displayName = 'Ranking';\n\nexport default Ranking;\n","import { useCallback, useMemo } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { BarRectangleItem } from 'recharts/types/cartesian/Bar';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport ReferenceCircle from 'components/Analytics/ReferenceCircle';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { RotatedTickProps } from 'components/Analytics/RotatedTick/props';\nimport WrappedTick from 'components/Analytics/WrappedTick';\nimport { RankingItem } from 'types/partnerAnalysis';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { AVERAGE_COLOR } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport RankingTooltip from './Tooltip';\n\nconst BAR_SIZE = 48;\nconst BAR_SLOT = BAR_SIZE / 0.8;\n\nconst RankingChart = ({\n data,\n config,\n visibleSeries,\n average,\n activeBarIndex,\n activeCoordX,\n shouldRotateLabels,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const values = data.map(item => (item[config.dataKey] as number) || 0);\n if (visibleSeries.average && average > 0) values.push(average);\n const max = Math.max(...values);\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data, config.dataKey, average, visibleSeries.average]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n const step = max / 6;\n return [\n ...new Set(Array.from({ length: 7 }, (_, i) => Math.round(step * i))),\n ];\n }, [yDomain]);\n\n const barLabel = useMemo(\n () =>\n shouldRotateLabels\n ? false\n : {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n formatter: (value: unknown) => config.formatLabel(Number(value)),\n },\n [shouldRotateLabels, config],\n );\n\n const tooltipContent = useMemo(\n () => <RankingTooltip config={config} average={average} />,\n [config, average],\n );\n\n const renderXAxisTick = useCallback(\n (tickProps: Record<string, unknown>) => {\n if (shouldRotateLabels) {\n return <RotatedTick {...(tickProps as RotatedTickProps)} />;\n }\n return (\n <WrappedTick\n x={tickProps.x as number}\n y={tickProps.y as number}\n payload={tickProps.payload as { value: string }}\n slotWidth={BAR_SLOT}\n />\n );\n },\n [shouldRotateLabels],\n );\n\n const handleBarClick = useCallback(\n (entry: BarRectangleItem) => {\n if (!entry) return;\n onBarClick(entry as unknown as RankingItem);\n },\n [onBarClick],\n );\n\n return (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={350}>\n <ComposedChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n barCategoryGap=\"20%\"\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"partner_name\"\n axisLine={false}\n tickLine={false}\n interval={0}\n height={shouldRotateLabels ? 70 : 50}\n tick={renderXAxisTick}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={(v: number) => fShortenNumber(v)}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={tooltipContent} />\n\n {visibleSeries.average && average > 0 && (\n <ReferenceLine\n y={average}\n stroke={AVERAGE_COLOR}\n strokeDasharray=\"8 4\"\n strokeWidth={2}\n ifOverflow=\"extendDomain\"\n />\n )}\n\n {visibleSeries.average && average > 0 && (\n <ReferenceLine\n y={average}\n stroke=\"none\"\n ifOverflow=\"extendDomain\"\n label={\n <ReferenceCircle\n activeCoordX={activeCoordX}\n referenceCircleColor={AVERAGE_COLOR}\n activeIndex={activeBarIndex}\n />\n }\n />\n )}\n\n {visibleSeries.bar && (\n <Bar\n dataKey={config.dataKey}\n name={config.barName}\n fill={config.color}\n maxBarSize={48}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n cursor=\"pointer\"\n onClick={handleBarClick}\n background={\n <BarBackground\n activeBarIndex={activeBarIndex}\n color={config.color}\n data={data}\n onBarClick={onBarClick}\n />\n }\n label={barLabel}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default RankingChart;\n","import { RankingItem } from 'types/partnerAnalysis';\nimport { fCurrencyBRL, fShortenNumber } from 'utils/formatNumber';\nimport { RankingType } from 'utils/partnerAnalysis';\n\nexport const AVERAGE_COLOR = '#212B36';\n\nexport interface RankingTypeConfig {\n label: string;\n color: string;\n dataKey: keyof RankingItem;\n barName: string;\n averageName: string;\n averageDataKey: string;\n formatLabel: (value: number) => string;\n formatYAxis: (value: number) => string;\n floorAverage?: boolean;\n}\n\nexport interface VisibleSeries {\n bar: boolean;\n average: boolean;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n config: RankingTypeConfig;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport interface RankingProps {\n data: RankingItem[];\n config: RankingTypeConfig;\n average: number;\n isFetching?: boolean;\n onBarClick?: (item: RankingItem) => void;\n}\n\nexport const RANKING_CONFIG: Record<RankingType, RankingTypeConfig> = {\n [RankingType.SALE_TOTAL_VALUE]: {\n label: 'Por valor total',\n color: '#22C55E',\n dataKey: 'total_sale_value',\n barName: 'Valor total por cliente',\n averageName: 'Média total de valor por cliente',\n averageDataKey: 'average_total_value',\n formatLabel: fCurrencyBRL,\n formatYAxis: fShortenNumber,\n },\n [RankingType.SALE_COUNT]: {\n label: 'Por pedidos',\n color: '#C684FF',\n dataKey: 'total_value_by_customer',\n barName: 'Quantidade de pedidos',\n averageName: 'Quantidade total de pedidos',\n averageDataKey: 'average_sale_count',\n formatLabel: String,\n formatYAxis: fShortenNumber,\n floorAverage: true,\n },\n [RankingType.SALE_AVERAGE_VALUE]: {\n label: 'Por ticket médio',\n color: '#00B8D9',\n dataKey: 'total_sale_value',\n barName: 'Ticket médio por cliente',\n averageName: 'Média do ticket médio',\n averageDataKey: 'average_ticket',\n formatLabel: fCurrencyBRL,\n formatYAxis: fShortenNumber,\n },\n};\n","import { BarBackgroundProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index = 0,\n activeBarIndex,\n color,\n data,\n onBarClick,\n}: BarBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 12}\n height={height + 6}\n fill={color}\n opacity={0.16}\n rx={6}\n style={{ cursor: 'pointer' }}\n onClick={() => onBarClick(data[index])}\n />\n );\n};\n\nexport default BarBackground;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\n\nimport { AVERAGE_COLOR } from '../props';\n\nimport { CustomTooltipProps } from './props';\n\nconst RankingTooltip = ({\n active,\n payload,\n label,\n config,\n average,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n\n <Divider />\n\n <Stack>\n {payload.map((entry, index) => (\n <Stack\n key={entry.dataKey}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n data-testid={`tooltip-item-${index}`}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.color}\n />\n\n <Typography variant=\"body2\" noWrap>\n {config.barName}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">\n {config.formatLabel(entry.value)}\n </Typography>\n </Stack>\n ))}\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={AVERAGE_COLOR}\n />\n\n <Typography variant=\"body2\" noWrap>\n {config.averageName}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{config.formatLabel(average)}</Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default RankingTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { AVERAGE_COLOR, LegendProps } from './props';\n\nconst RankingLegend = ({\n visibleSeries,\n config,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.bar}\n onChange={() => onToggleSerie('bar')}\n sx={{ '&.Mui-checked': { color: config.color } }}\n />\n }\n label={config.barName}\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.average}\n onChange={() => onToggleSerie('average')}\n sx={{ '&.Mui-checked': { color: AVERAGE_COLOR } }}\n />\n }\n label={config.averageName}\n />\n </Stack>\n);\n\nexport default RankingLegend;\n","import MuiButton from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\n\ninterface ItemButtonProps {\n active?: boolean;\n}\n\nexport const ItemButton = styled(MuiButton, {\n shouldForwardProp: prop => prop !== 'active',\n})<ItemButtonProps>(({ theme, active }) => ({\n justifyContent: 'flex-start',\n\n color: active ? theme.palette.primary.main : theme.palette.text.secondary,\n fontWeight: active ? 800 : 400,\n\n '&:hover': {\n background: theme.palette.action.hover,\n },\n}));\n","import Divider from '@mui/material/Divider';\nimport Link from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridRenderCellParams } from '@mui/x-data-grid-premium';\n\nimport DataView from 'components/DataView';\nimport Drawer from 'components/Drawer';\nimport Modal from 'components/Modal';\nimport SearchInput from 'components/SearchInput';\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL } from 'utils/formatNumber';\nimport { fDate } from 'utils/formatTime';\n\nimport Header from './Header';\nimport { RankingDetailOrder, RankingDetailProps } from './props';\nimport { MobileItemContainer, StyledDivider } from './styles';\n\nconst getOrderId = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n <Typography variant=\"body2\" color=\"text.primary\">\n {order.id}\n </Typography>\n </Stack>\n);\n\nconst getPartnerName = (\n order: RankingDetailOrder,\n buildPartnerLink?: (partnerId: string) => string,\n) => (\n <Stack justifyContent=\"center\" height={1}>\n {order?.partner?.id && buildPartnerLink ? (\n <Link\n component=\"a\"\n href={buildPartnerLink(order.partner.id)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n variant=\"subtitle2\"\n sx={{ textDecoration: 'underline' }}\n noWrap\n >\n {order.partner?.name || '-'}\n </Link>\n ) : (\n <Typography variant=\"body2\" color=\"text.primary\" noWrap>\n {order.partner?.name || '-'}\n </Typography>\n )}\n </Stack>\n);\n\nconst getOrderValue = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n <Typography variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(order.total_value)}\n </Typography>\n </Stack>\n);\n\nconst getOrderDate = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.negotiation_date ? (\n <Typography variant=\"body2\" color=\"text.primary\">\n {fDate(order.negotiation_date, 'DD/MM/YYYY')}\n </Typography>\n ) : (\n '-'\n )}\n </Stack>\n);\n\nconst getOrderStatus = (order: RankingDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.status || '-'}\n </Stack>\n);\n\nconst getDefaultMobileRender = (order: RankingDetailOrder) => (\n <MobileItemContainer key={order.id}>\n <Stack gap={1}>\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Pedido\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {order.id}\n </Typography>\n </Stack>\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Cliente\n </Typography>\n <Typography variant=\"subtitle2\" color=\"primary.main\">\n {order.partner?.name || '-'}\n </Typography>\n </Stack>\n\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Valor do pedido\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {fCurrencyBRL(order.total_value)}\n </Typography>\n </Stack>\n\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{ borderStyle: 'dashed', mx: 3 }}\n />\n\n <Stack flex={1} overflow=\"hidden\">\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Data\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {order.negotiation_date\n ? fDate(order.negotiation_date, 'DD/MM/YYYY')\n : '-'}\n </Typography>\n </Stack>\n </Stack>\n\n <Stack gap={0.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Status\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {order.status || '-'}\n </Typography>\n </Stack>\n </Stack>\n </MobileItemContainer>\n);\n\nconst RankingDetail = ({\n open,\n onClose,\n partnerName,\n rankingLabel,\n rows,\n total,\n totalValue,\n averageTicket,\n isLoading,\n isFetching,\n page,\n perPage,\n onSearch,\n onPaginationChange,\n buildPartnerLink,\n mobileItemSlot,\n}: RankingDetailProps) => {\n const isMobile = useResponsive('down', 'sm');\n\n const content = (\n <Stack gap={3}>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n justifyContent=\"space-between\"\n gap={2}\n >\n <Stack\n minWidth={0}\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n flexWrap=\"wrap\"\n >\n <Typography variant=\"subtitle2\" noWrap>\n {partnerName}\n </Typography>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Qtd. de pedidos\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {total}\n </Typography>\n </Stack>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Valor em pedidos\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {fCurrencyBRL(totalValue)}\n </Typography>\n </Stack>\n\n <StyledDivider orientation=\"vertical\" flexItem />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Ticket médio\n </Typography>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {fCurrencyBRL(averageTicket)}\n </Typography>\n </Stack>\n </Stack>\n\n <SearchInput\n size=\"small\"\n placeholder=\"Buscar\"\n onSearch={onSearch}\n trigger=\"change\"\n iconPosition=\"start\"\n sx={{ minWidth: 200 }}\n />\n </Stack>\n\n <DataView\n title=\"Pedidos\"\n header={<></>}\n headerProps={{ p: 0 }}\n columns={[\n {\n field: 'external_id',\n headerName: 'Pedido',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderId(row),\n },\n {\n field: 'partner_name',\n headerName: 'Cliente',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n getPartnerName(row, buildPartnerLink),\n },\n {\n field: 'total_value',\n headerName: 'Valor do pedido',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderValue(row),\n },\n {\n field: 'created_at',\n headerName: 'Data',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderDate(row),\n },\n {\n field: 'last_status',\n headerName: 'Status',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getOrderStatus(row),\n },\n ]}\n rows={rows}\n rowCount={total}\n mobileRender={(data: RankingDetailOrder) =>\n mobileItemSlot ? mobileItemSlot(data) : getDefaultMobileRender(data)\n }\n loading={isLoading}\n fetching={isFetching}\n paginationModel={{ page, pageSize: perPage }}\n onPaginationChange={onPaginationChange}\n paginationMode=\"server\"\n disableRowSelectionOnClick\n disableColumnMenu\n containerProps={{ height: 400 }}\n />\n </Stack>\n );\n\n const header = (\n <Header rankingLabel={rankingLabel} partnerName={partnerName} />\n );\n\n if (isMobile) {\n return (\n <Drawer\n open={open}\n onClose={onClose}\n headerTitle={header}\n headerProps={{\n direction: 'row-reverse',\n sx: { '& > :last-child': { minWidth: 0, overflow: 'hidden' } },\n }}\n >\n {content}\n </Drawer>\n );\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n maxWidth=\"lg\"\n dialogTitle={header}\n dialogTitleProps={{ sx: { flex: 1, overflow: 'hidden' } }}\n fullWidth\n >\n {content}\n </Modal>\n );\n};\n\nexport default RankingDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { RankingDetailHeaderProps } from './props';\n\nconst Header = ({ rankingLabel, partnerName }: RankingDetailHeaderProps) => (\n <Stack width=\"100%\" minWidth={0} overflow=\"hidden\">\n <Typography variant=\"subtitle1\" noWrap>\n Detalhes do relatório\n </Typography>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n columnGap={1.5}\n rowGap={0}\n flexWrap=\"wrap\"\n >\n <Typography variant=\"body2\" color=\"text.secondary\" flexShrink={0}>\n Top clientes\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n Por &quot;{rankingLabel}&quot;\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {partnerName}\n </Typography>\n </Stack>\n </Stack>\n);\n\nexport default Header;\n","import MuiDivider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport { alpha, styled } from '@mui/material/styles';\n\nexport const StyledDivider = styled(MuiDivider)(() => ({\n height: 30,\n alignSelf: 'center',\n borderStyle: 'dashed',\n}));\n\nexport const MobileItemContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n padding: theme.spacing(2),\n gap: theme.spacing(1),\n color: theme.palette.text.primary,\n\n '& a': {\n textDecoration: 'none',\n },\n\n '&+div': {\n borderTop: `1px dashed ${alpha(theme.palette.grey[500], 0.2)}`,\n },\n}));\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport Slider from '@mui/material/Slider';\nimport Stack from '@mui/material/Stack';\nimport { MouseHandlerDataParam } from 'recharts/types/synchronisation/types';\n\nimport { ChartCard, ChartCardHeader } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport useResponsive from 'hooks/useResponsive';\n\nimport SellerPortfolioChart from './Chart';\nimport SellerPortfolioLegend from './Legend';\nimport { SellerPortfolioProps } from './props';\n\nconst SellerPortfolio = ({\n data,\n config,\n onBarClick,\n children,\n}: SellerPortfolioProps) => {\n const isMobile = useResponsive('down', 'sm');\n const isDownLg = useResponsive('down', 'lg');\n\n const [hiddenKeys, setHiddenKeys] = useState<Set<string>>(new Set());\n const [visibleCount, setVisibleCount] = useState(12);\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const sortedData = useMemo(\n () => [...data].sort((a, b) => b._total - a._total),\n [data],\n );\n\n const maxVisible = useMemo(() => {\n if (isMobile) return 10;\n if (isDownLg) return 25;\n return 30;\n }, [isDownLg, isMobile]);\n\n const totalItems = sortedData.length;\n const showSlider = !isMobile && totalItems > 10;\n const sliderMax = Math.min(totalItems, maxVisible);\n\n const clampedCount = Math.min(\n isMobile ? totalItems : visibleCount,\n totalItems,\n maxVisible,\n );\n\n const displayData = useMemo(\n () => sortedData.slice(0, clampedCount),\n [sortedData, clampedCount],\n );\n\n const shouldRotateLabels = useMemo(() => {\n if (containerWidth === 0 || displayData.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / displayData.length;\n return slotPerBar < 80;\n }, [containerWidth, displayData.length]);\n\n const visibleSeries = useMemo(\n () => config.series.filter(s => !hiddenKeys.has(s.dataKey)),\n [config.series, hiddenKeys],\n );\n\n const displayDataWithTotals = useMemo(\n () =>\n displayData.map(item => ({\n ...item,\n _visibleTotal: visibleSeries.reduce(\n (sum, s) => sum + (Number(item[s.dataKey]) || 0),\n 0,\n ),\n })),\n [displayData, visibleSeries],\n );\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n if (node) {\n setContainerWidth(node.clientWidth);\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n const handleToggleSerie = useCallback((dataKey: string) => {\n setHiddenKeys(prev => {\n const next = new Set(prev);\n if (next.has(dataKey)) next.delete(dataKey);\n else next.add(dataKey);\n return next;\n });\n }, []);\n\n const handleMouseMove = useCallback((state: MouseHandlerDataParam) => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setActiveBarIndex(null);\n }, []);\n\n const handleBarClick = useCallback(\n (sellerId: string, sellerName: string) => {\n onBarClick?.(sellerId, sellerName);\n },\n [onBarClick],\n );\n\n const handleSliderChange = useCallback(\n (_: Event, val: number | number[]) => {\n setVisibleCount(val as number);\n },\n [],\n );\n\n return (\n <ChartCard>\n <ChartCardHeader\n title=\"Carteira de clientes do vendedor\"\n action={children}\n />\n\n <CardContent>\n <Result isEmpty={displayData.length === 0} empty={<EmptyState />}>\n <Stack alignItems=\"center\" gap={1.5}>\n <Stack width=\"100%\" ref={wrapperRefCallback}>\n <SellerPortfolioChart\n data={displayDataWithTotals}\n config={config}\n visibleSeries={visibleSeries}\n hiddenKeys={hiddenKeys}\n activeBarIndex={activeBarIndex}\n shouldRotateLabels={shouldRotateLabels}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={handleBarClick}\n />\n </Stack>\n\n <SellerPortfolioLegend\n series={config.series}\n hiddenKeys={hiddenKeys}\n onToggleSerie={handleToggleSerie}\n />\n\n {showSlider && (\n <Slider\n size=\"small\"\n min={10}\n max={sliderMax}\n value={clampedCount}\n valueLabelDisplay=\"auto\"\n onChange={handleSliderChange}\n />\n )}\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n};\n\nexport default SellerPortfolio;\n","import { type ReactElement, useCallback, useMemo } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { BarRectangleItem } from 'recharts/types/cartesian/Bar';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { RotatedTickProps } from 'components/Analytics/RotatedTick/props';\nimport WrappedTick from 'components/Analytics/WrappedTick';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport StackedTooltip from './Tooltip';\n\nconst BAR_SIZE = 48;\nconst BAR_SLOT = BAR_SIZE / 0.8;\n\nconst SellerPortfolioChart = ({\n data,\n config,\n visibleSeries,\n hiddenKeys,\n activeBarIndex,\n shouldRotateLabels,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const max = Math.max(...data.map(item => item._visibleTotal));\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n const step = max / 6;\n return [\n ...new Set(Array.from({ length: 7 }, (_, i) => Math.round(step * i))),\n ];\n }, [yDomain]);\n\n const tooltipContent = useMemo(\n () => <StackedTooltip config={config} />,\n [config],\n );\n\n const renderXAxisTick = useCallback(\n (tickProps: Record<string, unknown>) => {\n if (shouldRotateLabels) {\n return <RotatedTick {...(tickProps as RotatedTickProps)} />;\n }\n return (\n <WrappedTick\n x={tickProps.x as number}\n y={tickProps.y as number}\n payload={tickProps.payload as { value: string }}\n slotWidth={BAR_SLOT}\n />\n );\n },\n [shouldRotateLabels],\n );\n\n const handleBarClick = useCallback(\n (entry: BarRectangleItem) => {\n if (!entry) return;\n const row = entry.payload as Record<string, unknown> | undefined;\n if (!row) return;\n onBarClick(String(row.seller_external_id), String(row.seller_name));\n },\n [onBarClick],\n );\n\n const renderLabel = useCallback(\n (props: Record<string, unknown>) => {\n const { x, y, width, index } = props as {\n x: number;\n y: number;\n width: number;\n index: number;\n };\n const total = data[index]?._visibleTotal;\n if (!total) return <></>;\n return (\n <text\n x={(x as number) + (width as number) / 2}\n y={(y as number) - 6}\n textAnchor=\"middle\"\n fontSize={11}\n fill=\"#212B36\"\n >\n {total}\n </text>\n );\n },\n [data],\n );\n\n return (\n <ChartWrapper>\n <ResponsiveContainer width=\"100%\" height={350}>\n <BarChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n barCategoryGap=\"20%\"\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"seller_name\"\n axisLine={false}\n tickLine={false}\n interval={0}\n height={shouldRotateLabels ? 70 : 50}\n tick={renderXAxisTick}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={(v: number) => fShortenNumber(v)}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={tooltipContent} cursor={false} />\n\n {config.series.map(s => {\n const visible = !hiddenKeys.has(s.dataKey);\n const firstVisible = visibleSeries[0];\n const lastVisible = visibleSeries[visibleSeries.length - 1];\n const isFirst = visible && s.dataKey === firstVisible?.dataKey;\n const isLast = visible && s.dataKey === lastVisible?.dataKey;\n\n return (\n <Bar\n key={s.dataKey}\n dataKey={visible ? s.dataKey : `_hidden_${s.dataKey}`}\n name={s.name}\n fill={s.color}\n stackId=\"stack\"\n maxBarSize={48}\n isAnimationActive={false}\n cursor=\"pointer\"\n hide={!visible}\n onClick={handleBarClick}\n {...(isFirst && {\n background: (\n <BarBackground\n activeBarIndex={activeBarIndex}\n data={data}\n onBarClick={onBarClick}\n />\n ),\n })}\n {...(isLast && { radius: [4, 4, 0, 0] as [number, number, number, number] })}\n {...(isLast &&\n !shouldRotateLabels && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: renderLabel as unknown as ReactElement,\n },\n })}\n />\n );\n })}\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default SellerPortfolioChart;\n","import { BarBackgroundProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index = 0,\n activeBarIndex,\n data,\n onBarClick,\n}: BarBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n const entry = data[index];\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 12}\n height={height + 6}\n fill=\"#919EAB\"\n opacity={0.16}\n rx={6}\n style={{ cursor: 'pointer' }}\n onClick={() => {\n if (!entry) return;\n onBarClick(\n String(entry.seller_external_id),\n String(entry.seller_name),\n );\n }}\n />\n );\n};\n\nexport default BarBackground;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport SimpleCard from 'components/SimpleCard';\nimport { fPercent } from 'utils/formatNumber';\n\nimport { StackedTooltipProps, TooltipPayloadEntry } from './props';\n\nconst formatPct = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n\nconst StackedTooltip = ({\n active,\n payload,\n label,\n config,\n}: StackedTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const visibleEntries = payload.filter(\n entry => entry.value != null && entry.value > 0,\n );\n\n const total = visibleEntries.reduce(\n (sum: number, entry: TooltipPayloadEntry) => sum + entry.value,\n 0,\n );\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {label}\n </Typography>\n\n <Divider />\n\n <Stack>\n {visibleEntries.map((entry: TooltipPayloadEntry) => {\n const series = config.series.find(s => s.dataKey === entry.dataKey);\n const pct = total > 0 ? formatPct((entry.value / total) * 100) : '0%';\n\n return (\n <Stack\n key={entry.dataKey}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack\n width={6}\n height={6}\n borderRadius=\"50%\"\n bgcolor={entry.color}\n />\n\n <Typography variant=\"body2\" noWrap>\n {series?.name ?? entry.dataKey}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {pct} ({entry.value})\n </Typography>\n </Stack>\n );\n })}\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={3}\n >\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Stack width={6} height={6} borderRadius=\"50%\" bgcolor=\"#919EAB\" />\n\n <Typography variant=\"body2\" noWrap>\n Total\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" noWrap>\n {formatPct(100)} ({total})\n </Typography>\n </Stack>\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default StackedTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { LegendProps } from './props';\n\nconst SellerPortfolioLegend = ({\n series,\n hiddenKeys,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n {series.map(s => (\n <FormControlLabel\n key={s.dataKey}\n control={\n <Checkbox\n checked={!hiddenKeys.has(s.dataKey)}\n onChange={() => onToggleSerie(s.dataKey)}\n sx={{ '&.Mui-checked': { color: s.color } }}\n />\n }\n label={s.name}\n />\n ))}\n </Stack>\n);\n\nexport default SellerPortfolioLegend;\n","import { fShortenNumber } from 'utils/formatNumber';\nimport { AbcCurve, SellerPortfolioQueryType, Status } from 'utils/partnerAnalysis';\n\nexport interface StackedBarSeries {\n dataKey: string;\n name: string;\n color: string;\n}\n\nexport interface SellerPortfolioTypeConfig {\n label: string;\n series: StackedBarSeries[];\n formatYAxis: (value: number) => string;\n}\n\nexport interface ChartDataRow extends Record<string, string | number> {\n seller_name: string;\n seller_external_id: string;\n _total: number;\n}\n\nexport interface DisplayDataRow extends ChartDataRow {\n _visibleTotal: number;\n}\n\nexport interface SelectedSeller {\n id: string;\n name: string;\n}\n\nexport interface LegendProps {\n series: StackedBarSeries[];\n hiddenKeys: Set<string>;\n onToggleSerie: (dataKey: string) => void;\n}\n\nexport interface SellerPortfolioProps {\n data: ChartDataRow[];\n config: SellerPortfolioTypeConfig;\n onBarClick?: (sellerId: string, sellerName: string) => void;\n children?: React.ReactNode;\n}\n\nconst CLASSIFICATION_SERIES: StackedBarSeries[] = [\n { dataKey: Status.ACTIVE, name: 'Ativos', color: '#22C55E' },\n { dataKey: Status.AT_RISK, name: 'Em risco', color: '#FFAB00' },\n { dataKey: Status.INACTIVE, name: 'Inativos', color: '#FF5630' },\n { dataKey: Status.NEW_CLIENT, name: 'Novos clientes', color: '#8E33FF' },\n { dataKey: Status.PROSPECT, name: 'Prospects', color: '#00B8D9' },\n { dataKey: Status.LOST, name: 'Perdidos', color: '#C4CDD5' },\n];\n\nconst ABC_CURVE_SERIES: StackedBarSeries[] = [\n { dataKey: AbcCurve.A, name: 'Curva A', color: '#22C55E' },\n { dataKey: AbcCurve.B, name: 'Curva B', color: '#FFAB00' },\n { dataKey: AbcCurve.C, name: 'Curva C', color: '#FF5630' },\n];\n\nexport const SELLER_PORTFOLIO_CONFIG: Record<\n SellerPortfolioQueryType,\n SellerPortfolioTypeConfig\n> = {\n [SellerPortfolioQueryType.CLASSIFICATION]: {\n label: 'Por classificação',\n series: CLASSIFICATION_SERIES,\n formatYAxis: fShortenNumber,\n },\n [SellerPortfolioQueryType.ABC_CURVE]: {\n label: 'Por curva ABC',\n series: ABC_CURVE_SERIES,\n formatYAxis: fShortenNumber,\n },\n};\n"]}