@zydon/common 2.9.8 → 2.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (769) hide show
  1. package/README.md +0 -1
  2. package/dist/{chunk-RX46STPN.js → chunk-2BZB3KUP.js} +3 -3
  3. package/dist/{chunk-NIT26MGD.js → chunk-2QBJ4PS3.js} +2 -2
  4. package/dist/{chunk-IAUY4JGB.js → chunk-6GVG43FV.js} +2 -2
  5. package/dist/{chunk-LFWPNKUM.js → chunk-7JCZYOLK.js} +2 -2
  6. package/dist/{chunk-IWTQKOTE.js → chunk-AD4BVTIL.js} +2 -2
  7. package/dist/{chunk-NWT5TUJO.js → chunk-AYUKIKNC.js} +2 -2
  8. package/dist/{chunk-NJ55GFRA.js → chunk-BHENIWLV.js} +2 -2
  9. package/dist/{chunk-HVOXV2ZU.js → chunk-E66LN7GV.js} +2 -2
  10. package/dist/{chunk-CAB6KNWY.js → chunk-GY75LKGU.js} +5 -5
  11. package/dist/{chunk-VZVY6HGD.js → chunk-HMXT4BZB.js} +2 -2
  12. package/dist/{chunk-7MUFLAMK.js → chunk-ILC7LDUW.js} +2 -2
  13. package/dist/{chunk-CQBXYALD.js → chunk-JQFGMAHA.js} +3 -3
  14. package/dist/{chunk-G2JHTPSE.js → chunk-LBDMTEDB.js} +2 -2
  15. package/dist/{chunk-3VT6LTJ7.js → chunk-LIGOKFZE.js} +2 -2
  16. package/dist/{chunk-AFPC4CCM.js → chunk-NPUDS6VV.js} +2 -2
  17. package/dist/chunk-PAWS4ATJ.js +11 -0
  18. package/dist/chunk-PAWS4ATJ.js.map +1 -0
  19. package/dist/{chunk-MMOGWTW7.js → chunk-UMFGBRJF.js} +2 -2
  20. package/dist/{chunk-IXUBDPJH.js → chunk-XDC3MGXF.js} +2 -2
  21. package/dist/{chunk-QBKRR7YK.js → chunk-XHNY46KY.js} +2 -2
  22. package/dist/{chunk-437QYAEM.js → chunk-XW2GMFOW.js} +2 -2
  23. package/dist/{chunk-MHQKQ4VE.js → chunk-YDTXGTQA.js} +2 -2
  24. package/dist/{chunk-JCUZG6H4.js → chunk-YJIUL6ZO.js} +3 -3
  25. package/dist/components/ActionButton/index.js +2 -158
  26. package/dist/components/Analytics/OverviewAnalytics/index.js +7 -163
  27. package/dist/components/Analytics/OverviewAnalytics/index.js.map +1 -1
  28. package/dist/components/Analytics/PartnerAnalysis/index.js +6 -162
  29. package/dist/components/Analytics/PartnerAnalysis/index.js.map +1 -1
  30. package/dist/components/Analytics/index.js +5 -161
  31. package/dist/components/Analytics/index.js.map +1 -1
  32. package/dist/components/Autocomplete/index.js +2 -158
  33. package/dist/components/AvatarButton/index.js +3 -159
  34. package/dist/components/AvatarButton/index.js.map +1 -1
  35. package/dist/components/BuilderLayout/index.js +2 -158
  36. package/dist/components/BuilderLayout/index.js.map +1 -1
  37. package/dist/components/BuilderSidebar/index.js +1 -157
  38. package/dist/components/BuilderSidebar/index.js.map +1 -1
  39. package/dist/components/BulkEditModal/index.js +3 -159
  40. package/dist/components/BulkEditModal/index.js.map +1 -1
  41. package/dist/components/CardBrand/index.js +1 -157
  42. package/dist/components/CardBrand/index.js.map +1 -1
  43. package/dist/components/Common/index.js +3 -159
  44. package/dist/components/Common/index.js.map +1 -1
  45. package/dist/components/CopyButton/index.js +2 -158
  46. package/dist/components/DataView/index.js +3 -159
  47. package/dist/components/DragButton/index.js +2 -158
  48. package/dist/components/Drawer/index.js +2 -158
  49. package/dist/components/DynamicDataView/index.js +5 -161
  50. package/dist/components/DynamicDataView/index.js.map +1 -1
  51. package/dist/components/EasyCropModal/index.js +3 -159
  52. package/dist/components/Error/index.js +1 -157
  53. package/dist/components/Error/index.js.map +1 -1
  54. package/dist/components/ExpandableGroup/index.js +1 -157
  55. package/dist/components/ExpandableGroup/index.js.map +1 -1
  56. package/dist/components/FileUpload/index.js +6 -162
  57. package/dist/components/Filters/index.js +3 -159
  58. package/dist/components/Filters/index.js.map +1 -1
  59. package/dist/components/FrameSkeleton/index.js +1 -157
  60. package/dist/components/FrameSkeleton/index.js.map +1 -1
  61. package/dist/components/HelpButton/index.js +2 -158
  62. package/dist/components/Icon/index.js +1 -157
  63. package/dist/components/IconButton/index.js +2 -158
  64. package/dist/components/ImageCropModal/index.js +2 -158
  65. package/dist/components/ImageCropModal/index.js.map +1 -1
  66. package/dist/components/Incrementer/index.js +2 -158
  67. package/dist/components/InfoCircle/index.js +2 -158
  68. package/dist/components/ListBundles/index.js +2 -158
  69. package/dist/components/ListBundles/index.js.map +1 -1
  70. package/dist/components/MenuItem/index.js +1 -157
  71. package/dist/components/MenuItem/index.js.map +1 -1
  72. package/dist/components/Modal/index.js +2 -158
  73. package/dist/components/MoreMenu/index.js +1 -157
  74. package/dist/components/MoreMenu/index.js.map +1 -1
  75. package/dist/components/NotFound/index.js +1 -157
  76. package/dist/components/NotFound/index.js.map +1 -1
  77. package/dist/components/PasswordRules/index.js +1 -157
  78. package/dist/components/PasswordRules/index.js.map +1 -1
  79. package/dist/components/PopoverSelect/index.js +1 -157
  80. package/dist/components/PopoverSelect/index.js.map +1 -1
  81. package/dist/components/SearchInput/index.js +2 -158
  82. package/dist/components/SelectList/index.js +4 -160
  83. package/dist/components/SelectableCards/index.js +3 -159
  84. package/dist/components/SeoPreview/index.js +1 -157
  85. package/dist/components/SeoPreview/index.js.map +1 -1
  86. package/dist/components/StateDisplay/index.js +2 -158
  87. package/dist/components/Steps/index.js +1 -157
  88. package/dist/components/Steps/index.js.map +1 -1
  89. package/dist/components/StyledTab/index.js +1 -157
  90. package/dist/components/StyledTab/index.js.map +1 -1
  91. package/dist/components/SwapList/index.js +2 -158
  92. package/dist/components/SwapList/index.js.map +1 -1
  93. package/dist/components/ToggleTheme/index.js +2 -2
  94. package/dist/components/WebhookCard/index.js +1 -157
  95. package/dist/components/WebhookCard/index.js.map +1 -1
  96. package/dist/components/carousel/index.js +2 -158
  97. package/dist/components/form/Address/index.js +4 -160
  98. package/dist/components/form/Address/index.js.map +1 -1
  99. package/dist/components/form/Autocomplete/index.js +3 -159
  100. package/dist/components/form/FileUpload/index.js +6 -162
  101. package/dist/components/form/FileUpload/index.js.map +1 -1
  102. package/dist/components/form/Incrementer/index.js +2 -158
  103. package/dist/components/form/Incrementer/index.js.map +1 -1
  104. package/dist/components/form/Password/index.js +1 -157
  105. package/dist/components/form/Password/index.js.map +1 -1
  106. package/dist/components/form/SelectList/index.js +4 -160
  107. package/dist/components/form/SelectList/index.js.map +1 -1
  108. package/dist/components/form/SelectableCards/index.js +3 -159
  109. package/dist/components/form/SelectableCards/index.js.map +1 -1
  110. package/dist/components/form/Webhook/index.js +4 -160
  111. package/dist/components/form/Webhook/index.js.map +1 -1
  112. package/dist/components/lightbox/index.js +1 -157
  113. package/dist/components/lightbox/index.js.map +1 -1
  114. package/dist/components/table/index.js +2 -158
  115. package/dist/components/table/index.js.map +1 -1
  116. package/dist/hooks/useThemeToggle.js +2 -2
  117. package/dist/index.js +2 -2
  118. package/dist/theme/theme-provider.js +2 -2
  119. package/package.json +1 -1
  120. package/dist/Ai-HRRBCJSS.js +0 -2
  121. package/dist/Ai-HRRBCJSS.js.map +0 -1
  122. package/dist/AiChatBubbleIcon-CACZGYSH.js +0 -2
  123. package/dist/AiChatBubbleIcon-CACZGYSH.js.map +0 -1
  124. package/dist/AmazonPayIcon-ESKLYXQZ.js +0 -2
  125. package/dist/AmazonPayIcon-ESKLYXQZ.js.map +0 -1
  126. package/dist/AmericanExpressBadge-JPJAPW3B.js +0 -2
  127. package/dist/AmericanExpressBadge-JPJAPW3B.js.map +0 -1
  128. package/dist/AmericanExpressIcon-YBRR647B.js +0 -2
  129. package/dist/AmericanExpressIcon-YBRR647B.js.map +0 -1
  130. package/dist/Analytics02StrokeRounded-3VDFFHG7.js +0 -2
  131. package/dist/Analytics02StrokeRounded-3VDFFHG7.js.map +0 -1
  132. package/dist/ApplePayBadge-K4322NW2.js +0 -2
  133. package/dist/ApplePayBadge-K4322NW2.js.map +0 -1
  134. package/dist/ApplePayIcon-BRMDGVNO.js +0 -2
  135. package/dist/ApplePayIcon-BRMDGVNO.js.map +0 -1
  136. package/dist/ArrowDownWard-OAIJ5GFX.js +0 -2
  137. package/dist/ArrowDownWard-OAIJ5GFX.js.map +0 -1
  138. package/dist/ArrowGoBackIcon-RQAGWSBC.js +0 -2
  139. package/dist/ArrowGoBackIcon-RQAGWSBC.js.map +0 -1
  140. package/dist/ArrowGoFowardIcon-YCO6AWFM.js +0 -2
  141. package/dist/ArrowGoFowardIcon-YCO6AWFM.js.map +0 -1
  142. package/dist/ArrowiOSDownwardFillIcon-QCG3657O.js +0 -2
  143. package/dist/ArrowiOSDownwardFillIcon-QCG3657O.js.map +0 -1
  144. package/dist/ArtificialIntelligence08-QNUOVBLK.js +0 -2
  145. package/dist/ArtificialIntelligence08-QNUOVBLK.js.map +0 -1
  146. package/dist/ArtificialIntelligence08SolidRound-3MTVNRQB.js +0 -2
  147. package/dist/ArtificialIntelligence08SolidRound-3MTVNRQB.js.map +0 -1
  148. package/dist/ArtificialIntelligenceicon-FXDOFHDT.js +0 -2
  149. package/dist/ArtificialIntelligenceicon-FXDOFHDT.js.map +0 -1
  150. package/dist/Audio-WIIMGOFF.js +0 -2
  151. package/dist/Audio-WIIMGOFF.js.map +0 -1
  152. package/dist/BNBBadge-LUCCEXY3.js +0 -2
  153. package/dist/BNBBadge-LUCCEXY3.js.map +0 -1
  154. package/dist/BannerIcon-JXGMNBNZ.js +0 -2
  155. package/dist/BannerIcon-JXGMNBNZ.js.map +0 -1
  156. package/dist/BellDuotone-LNSNM4RG.js +0 -2
  157. package/dist/BellDuotone-LNSNM4RG.js.map +0 -1
  158. package/dist/BoletoBadge-KBXYSNUX.js +0 -2
  159. package/dist/BoletoBadge-KBXYSNUX.js.map +0 -1
  160. package/dist/BrandingIcon-5WHENYBN.js +0 -2
  161. package/dist/BrandingIcon-5WHENYBN.js.map +0 -1
  162. package/dist/CVCIcon-2WG6A6TR.js +0 -2
  163. package/dist/CVCIcon-2WG6A6TR.js.map +0 -1
  164. package/dist/CalculatorMoneyIcon-2L3SDBGK.js +0 -2
  165. package/dist/CalculatorMoneyIcon-2L3SDBGK.js.map +0 -1
  166. package/dist/CalendarClockIcon-QBEKKTAY.js +0 -2
  167. package/dist/CalendarClockIcon-QBEKKTAY.js.map +0 -1
  168. package/dist/CancelCircleSolidIcon-QLATPMES.js +0 -2
  169. package/dist/CancelCircleSolidIcon-QLATPMES.js.map +0 -1
  170. package/dist/CardsIcon-R7Z3RJZ3.js +0 -2
  171. package/dist/CardsIcon-R7Z3RJZ3.js.map +0 -1
  172. package/dist/CartCheck-IQTJA6TL.js +0 -2
  173. package/dist/CartCheck-IQTJA6TL.js.map +0 -1
  174. package/dist/Chart-BG54VMQ3.js +0 -2
  175. package/dist/Chart-BG54VMQ3.js.map +0 -1
  176. package/dist/CheckSuccessFileIcon-DOP7W7WP.js +0 -2
  177. package/dist/CheckSuccessFileIcon-DOP7W7WP.js.map +0 -1
  178. package/dist/CheckmarkCircleIcon-UPJ64LCA.js +0 -2
  179. package/dist/CheckmarkCircleIcon-UPJ64LCA.js.map +0 -1
  180. package/dist/CheckmarkCircleRoundedIcon-ZSP2JY73.js +0 -2
  181. package/dist/CheckmarkCircleRoundedIcon-ZSP2JY73.js.map +0 -1
  182. package/dist/CieloBadge-BOGXJRG5.js +0 -2
  183. package/dist/CieloBadge-BOGXJRG5.js.map +0 -1
  184. package/dist/CirculeIcon-TX3PYHT2.js +0 -2
  185. package/dist/CirculeIcon-TX3PYHT2.js.map +0 -1
  186. package/dist/CirrusIcon-SFVZTQLR.js +0 -2
  187. package/dist/CirrusIcon-SFVZTQLR.js.map +0 -1
  188. package/dist/DecimalIcon-T67IAYRX.js +0 -2
  189. package/dist/DecimalIcon-T67IAYRX.js.map +0 -1
  190. package/dist/DecimalIncreaseIcon-JDNIQET7.js +0 -2
  191. package/dist/DecimalIncreaseIcon-JDNIQET7.js.map +0 -1
  192. package/dist/DinersClubIcon-SJQ37PMB.js +0 -2
  193. package/dist/DinersClubIcon-SJQ37PMB.js.map +0 -1
  194. package/dist/DiscoverIcon-NYAHQC6O.js +0 -2
  195. package/dist/DiscoverIcon-NYAHQC6O.js.map +0 -1
  196. package/dist/Doc-TEOHKZH7.js +0 -2
  197. package/dist/Doc-TEOHKZH7.js.map +0 -1
  198. package/dist/Document-3YST3EZP.js +0 -2
  199. package/dist/Document-3YST3EZP.js.map +0 -1
  200. package/dist/DotIcon-OBYWESHI.js +0 -2
  201. package/dist/DotIcon-OBYWESHI.js.map +0 -1
  202. package/dist/DoubleChatBubbleIcon-6HERGTPB.js +0 -2
  203. package/dist/DoubleChatBubbleIcon-6HERGTPB.js.map +0 -1
  204. package/dist/DragAndDrop-A43BXSQU.js +0 -2
  205. package/dist/DragAndDrop-A43BXSQU.js.map +0 -1
  206. package/dist/DropdownIcon-GFXXDNWB.js +0 -2
  207. package/dist/DropdownIcon-GFXXDNWB.js.map +0 -1
  208. package/dist/EloBadge-6AKGKZEK.js +0 -2
  209. package/dist/EloBadge-6AKGKZEK.js.map +0 -1
  210. package/dist/EloIcon-UTEC5BSJ.js +0 -2
  211. package/dist/EloIcon-UTEC5BSJ.js.map +0 -1
  212. package/dist/ErrorBellIcon-TUS3Q4UE.js +0 -2
  213. package/dist/ErrorBellIcon-TUS3Q4UE.js.map +0 -1
  214. package/dist/Excel-S6W6DDHP.js +0 -2
  215. package/dist/Excel-S6W6DDHP.js.map +0 -1
  216. package/dist/FavouriteIcon-FE3K2S6D.js +0 -2
  217. package/dist/FavouriteIcon-FE3K2S6D.js.map +0 -1
  218. package/dist/FavouriteRoundedIcon-HAOEQ5QL.js +0 -2
  219. package/dist/FavouriteRoundedIcon-HAOEQ5QL.js.map +0 -1
  220. package/dist/File-EIHAPUR2.js +0 -2
  221. package/dist/File-EIHAPUR2.js.map +0 -1
  222. package/dist/FileCheckDuotone-W5CWO2XU.js +0 -2
  223. package/dist/FileCheckDuotone-W5CWO2XU.js.map +0 -1
  224. package/dist/FileCorruptedDuotone-MPVVWVXH.js +0 -2
  225. package/dist/FileCorruptedDuotone-MPVVWVXH.js.map +0 -1
  226. package/dist/FilterListIcon-3FGGJL63.js +0 -2
  227. package/dist/FilterListIcon-3FGGJL63.js.map +0 -1
  228. package/dist/FilterPersonalization-WRVUTOMS.js +0 -2
  229. package/dist/FilterPersonalization-WRVUTOMS.js.map +0 -1
  230. package/dist/FlashRoundedIcon-CTI5NE2Q.js +0 -2
  231. package/dist/FlashRoundedIcon-CTI5NE2Q.js.map +0 -1
  232. package/dist/Folder-BJE54IAC.js +0 -2
  233. package/dist/Folder-BJE54IAC.js.map +0 -1
  234. package/dist/GithubIcon-Y6UXGZAN.js +0 -2
  235. package/dist/GithubIcon-Y6UXGZAN.js.map +0 -1
  236. package/dist/GithubStrokedIcon-U5Y7RKWB.js +0 -2
  237. package/dist/GithubStrokedIcon-U5Y7RKWB.js.map +0 -1
  238. package/dist/GooglePayIcon-WSVU5UQ7.js +0 -2
  239. package/dist/GooglePayIcon-WSVU5UQ7.js.map +0 -1
  240. package/dist/HexagonWarning-PG757W73.js +0 -2
  241. package/dist/HexagonWarning-PG757W73.js.map +0 -1
  242. package/dist/HiperIcon-Q5XF5HIT.js +0 -2
  243. package/dist/HiperIcon-Q5XF5HIT.js.map +0 -1
  244. package/dist/HipercardIcon-NIIGEQDE.js +0 -2
  245. package/dist/HipercardIcon-NIIGEQDE.js.map +0 -1
  246. package/dist/HorizontalLinesIcon-JFFFCIMN.js +0 -2
  247. package/dist/HorizontalLinesIcon-JFFFCIMN.js.map +0 -1
  248. package/dist/HorizontalListIcon-VYTATWOB.js +0 -2
  249. package/dist/HorizontalListIcon-VYTATWOB.js.map +0 -1
  250. package/dist/HtmlIcon-SX2CMSLK.js +0 -2
  251. package/dist/HtmlIcon-SX2CMSLK.js.map +0 -1
  252. package/dist/Img-CYUIID5D.js +0 -2
  253. package/dist/Img-CYUIID5D.js.map +0 -1
  254. package/dist/InfoIcon-Z3XET4MH.js +0 -2
  255. package/dist/InfoIcon-Z3XET4MH.js.map +0 -1
  256. package/dist/InformationsIcon-SQEJKVPA.js +0 -2
  257. package/dist/InformationsIcon-SQEJKVPA.js.map +0 -1
  258. package/dist/IntegerNumberIcon-MTTBRM6U.js +0 -2
  259. package/dist/IntegerNumberIcon-MTTBRM6U.js.map +0 -1
  260. package/dist/Invoice01Icon-OC6PMY4O.js +0 -2
  261. package/dist/Invoice01Icon-OC6PMY4O.js.map +0 -1
  262. package/dist/Invoice03Icon-B4M4AFH6.js +0 -2
  263. package/dist/Invoice03Icon-B4M4AFH6.js.map +0 -1
  264. package/dist/JCBIcon-ATF2XSYG.js +0 -2
  265. package/dist/JCBIcon-ATF2XSYG.js.map +0 -1
  266. package/dist/Js-7JJD4LND.js +0 -2
  267. package/dist/Js-7JJD4LND.js.map +0 -1
  268. package/dist/KeyAccessIcon-6VUHFADF.js +0 -2
  269. package/dist/KeyAccessIcon-6VUHFADF.js.map +0 -1
  270. package/dist/ListDuotone-N574ZFMO.js +0 -2
  271. package/dist/ListDuotone-N574ZFMO.js.map +0 -1
  272. package/dist/ListSquareIcon-DFKXPOAP.js +0 -2
  273. package/dist/ListSquareIcon-DFKXPOAP.js.map +0 -1
  274. package/dist/LowPriorityIcon-7XQ7E52G.js +0 -2
  275. package/dist/LowPriorityIcon-7XQ7E52G.js.map +0 -1
  276. package/dist/MaestroIcon-3Z6PCJQK.js +0 -2
  277. package/dist/MaestroIcon-3Z6PCJQK.js.map +0 -1
  278. package/dist/ManagerIcon-JNQC4CRV.js +0 -2
  279. package/dist/ManagerIcon-JNQC4CRV.js.map +0 -1
  280. package/dist/MastercardBadge-NIXYRVEF.js +0 -2
  281. package/dist/MastercardBadge-NIXYRVEF.js.map +0 -1
  282. package/dist/MastercardIcon-2UOY62G2.js +0 -2
  283. package/dist/MastercardIcon-2UOY62G2.js.map +0 -1
  284. package/dist/MediaAudioFilesIcon-I2NV4SPL.js +0 -2
  285. package/dist/MediaAudioFilesIcon-I2NV4SPL.js.map +0 -1
  286. package/dist/MediaDocFilesIcon-ZD7INJFK.js +0 -2
  287. package/dist/MediaDocFilesIcon-ZD7INJFK.js.map +0 -1
  288. package/dist/MediaGenericFilesIcon-CRRDQR3R.js +0 -2
  289. package/dist/MediaGenericFilesIcon-CRRDQR3R.js.map +0 -1
  290. package/dist/MediaImageFilesIcon-V6QERF7A.js +0 -2
  291. package/dist/MediaImageFilesIcon-V6QERF7A.js.map +0 -1
  292. package/dist/MediaPDFFilesIcon-KZX435I4.js +0 -2
  293. package/dist/MediaPDFFilesIcon-KZX435I4.js.map +0 -1
  294. package/dist/MediaPPSXFilesIcon-WLMCDNMC.js +0 -2
  295. package/dist/MediaPPSXFilesIcon-WLMCDNMC.js.map +0 -1
  296. package/dist/MediaSheetFilesIcon-EMM5UJAH.js +0 -2
  297. package/dist/MediaSheetFilesIcon-EMM5UJAH.js.map +0 -1
  298. package/dist/MediaTxtFilesIcon-ZVV7COTG.js +0 -2
  299. package/dist/MediaTxtFilesIcon-ZVV7COTG.js.map +0 -1
  300. package/dist/MediaVideoFilesIcon-IPFV4MTP.js +0 -2
  301. package/dist/MediaVideoFilesIcon-IPFV4MTP.js.map +0 -1
  302. package/dist/MediaZipFilesIcon-HZHTWXYX.js +0 -2
  303. package/dist/MediaZipFilesIcon-HZHTWXYX.js.map +0 -1
  304. package/dist/MercadoPagoIcon-M7J7N2I2.js +0 -2
  305. package/dist/MercadoPagoIcon-M7J7N2I2.js.map +0 -1
  306. package/dist/MiniBannerIcon-APEKOIEK.js +0 -2
  307. package/dist/MiniBannerIcon-APEKOIEK.js.map +0 -1
  308. package/dist/MoneyIcon-SZAJJUTN.js +0 -2
  309. package/dist/MoneyIcon-SZAJJUTN.js.map +0 -1
  310. package/dist/MoreGrid-TJ25UUM4.js +0 -2
  311. package/dist/MoreGrid-TJ25UUM4.js.map +0 -1
  312. package/dist/MoreIcon-3CHGTRN4.js +0 -2
  313. package/dist/MoreIcon-3CHGTRN4.js.map +0 -1
  314. package/dist/NumberOneOutlinedIcon-352KD4CW.js +0 -2
  315. package/dist/NumberOneOutlinedIcon-352KD4CW.js.map +0 -1
  316. package/dist/OpenedBoxIcon-WYZUBMY3.js +0 -2
  317. package/dist/OpenedBoxIcon-WYZUBMY3.js.map +0 -1
  318. package/dist/OrdenatingIcon-XVNXQIBA.js +0 -2
  319. package/dist/OrdenatingIcon-XVNXQIBA.js.map +0 -1
  320. package/dist/OrdersIcon-ZX47YHXN.js +0 -2
  321. package/dist/OrdersIcon-ZX47YHXN.js.map +0 -1
  322. package/dist/PauseSolidIcon-5VO5KMVS.js +0 -2
  323. package/dist/PauseSolidIcon-5VO5KMVS.js.map +0 -1
  324. package/dist/PayPalIcon-6U2IPMIR.js +0 -2
  325. package/dist/PayPalIcon-6U2IPMIR.js.map +0 -1
  326. package/dist/Pdf-3MIKBHWC.js +0 -2
  327. package/dist/Pdf-3MIKBHWC.js.map +0 -1
  328. package/dist/Pdf-O532QILP.js +0 -2
  329. package/dist/Pdf-O532QILP.js.map +0 -1
  330. package/dist/PencilEditAiIcon-DKO3PHLZ.js +0 -2
  331. package/dist/PencilEditAiIcon-DKO3PHLZ.js.map +0 -1
  332. package/dist/PencilIcon-AJ42SH5O.js +0 -2
  333. package/dist/PencilIcon-AJ42SH5O.js.map +0 -1
  334. package/dist/PermanentJobIcon-WKICOFHL.js +0 -2
  335. package/dist/PermanentJobIcon-WKICOFHL.js.map +0 -1
  336. package/dist/PersonChatBubbleIcon-K6VX75XA.js +0 -2
  337. package/dist/PersonChatBubbleIcon-K6VX75XA.js.map +0 -1
  338. package/dist/PixBadge-KU5XDGOF.js +0 -2
  339. package/dist/PixBadge-KU5XDGOF.js.map +0 -1
  340. package/dist/PixIcon-WQ7XHTCY.js +0 -2
  341. package/dist/PixIcon-WQ7XHTCY.js.map +0 -1
  342. package/dist/PlaySolidIcon-EKAVZ5W4.js +0 -2
  343. package/dist/PlaySolidIcon-EKAVZ5W4.js.map +0 -1
  344. package/dist/PowerPoint-FFF5LH3W.js +0 -2
  345. package/dist/PowerPoint-FFF5LH3W.js.map +0 -1
  346. package/dist/ProductBoxIcon-5V3V6NF3.js +0 -2
  347. package/dist/ProductBoxIcon-5V3V6NF3.js.map +0 -1
  348. package/dist/ProductSearchBoxIcon-KCCT725M.js +0 -2
  349. package/dist/ProductSearchBoxIcon-KCCT725M.js.map +0 -1
  350. package/dist/ProductsIcon-JO2KNTSS.js +0 -2
  351. package/dist/ProductsIcon-JO2KNTSS.js.map +0 -1
  352. package/dist/Pts-67NTPGDS.js +0 -2
  353. package/dist/Pts-67NTPGDS.js.map +0 -1
  354. package/dist/RadioButtonCheckedIcon-EWTWPQFW.js +0 -2
  355. package/dist/RadioButtonCheckedIcon-EWTWPQFW.js.map +0 -1
  356. package/dist/ReverseIcon-OFJ4LNQH.js +0 -2
  357. package/dist/ReverseIcon-OFJ4LNQH.js.map +0 -1
  358. package/dist/RocketIcon-L534C4EJ.js +0 -2
  359. package/dist/RocketIcon-L534C4EJ.js.map +0 -1
  360. package/dist/RowInsertIcon-G45YHGLO.js +0 -2
  361. package/dist/RowInsertIcon-G45YHGLO.js.map +0 -1
  362. package/dist/SamsungPayBadge-2VAXUKJ2.js +0 -2
  363. package/dist/SamsungPayBadge-2VAXUKJ2.js.map +0 -1
  364. package/dist/SaveDiskIcon-5JXIKO3M.js +0 -2
  365. package/dist/SaveDiskIcon-5JXIKO3M.js.map +0 -1
  366. package/dist/SettingsError02Icon-QZIG4WXQ.js +0 -2
  367. package/dist/SettingsError02Icon-QZIG4WXQ.js.map +0 -1
  368. package/dist/ShoppingCartIcon-TBGUTNED.js +0 -2
  369. package/dist/ShoppingCartIcon-TBGUTNED.js.map +0 -1
  370. package/dist/SizeBoxIcon-DBXZR3VE.js +0 -2
  371. package/dist/SizeBoxIcon-DBXZR3VE.js.map +0 -1
  372. package/dist/SortByTimeDuotone-MTS7VKYE.js +0 -2
  373. package/dist/SortByTimeDuotone-MTS7VKYE.js.map +0 -1
  374. package/dist/Star02Icon-FNFBLGJF.js +0 -2
  375. package/dist/Star02Icon-FNFBLGJF.js.map +0 -1
  376. package/dist/TapeMeasureIcon-HDAVEKIQ.js +0 -2
  377. package/dist/TapeMeasureIcon-HDAVEKIQ.js.map +0 -1
  378. package/dist/ThumbsDownRoundedIcon-7THAELTG.js +0 -2
  379. package/dist/ThumbsDownRoundedIcon-7THAELTG.js.map +0 -1
  380. package/dist/ThumbsUpRoundedIcon-XGYWY3JR.js +0 -2
  381. package/dist/ThumbsUpRoundedIcon-XGYWY3JR.js.map +0 -1
  382. package/dist/TicketBarCodeIcon-6YBNKJAO.js +0 -2
  383. package/dist/TicketBarCodeIcon-6YBNKJAO.js.map +0 -1
  384. package/dist/TimeListIcon-4ZWXGWEI.js +0 -2
  385. package/dist/TimeListIcon-4ZWXGWEI.js.map +0 -1
  386. package/dist/TornListIcon-TEIS2FAB.js +0 -2
  387. package/dist/TornListIcon-TEIS2FAB.js.map +0 -1
  388. package/dist/Txt-WC5UCDET.js +0 -2
  389. package/dist/Txt-WC5UCDET.js.map +0 -1
  390. package/dist/UnionPayIcon-Z7IYZ4Y2.js +0 -2
  391. package/dist/UnionPayIcon-Z7IYZ4Y2.js.map +0 -1
  392. package/dist/UserDeniedAccessIcon-ZWVL6R4A.js +0 -2
  393. package/dist/UserDeniedAccessIcon-ZWVL6R4A.js.map +0 -1
  394. package/dist/UserGrantedAccessIcon-B3NLERNI.js +0 -2
  395. package/dist/UserGrantedAccessIcon-B3NLERNI.js.map +0 -1
  396. package/dist/VerifiedIcon-V47B7YEF.js +0 -2
  397. package/dist/VerifiedIcon-V47B7YEF.js.map +0 -1
  398. package/dist/Video-OHLCKWI4.js +0 -2
  399. package/dist/Video-OHLCKWI4.js.map +0 -1
  400. package/dist/ViewColumnIcon-643QS4QM.js +0 -2
  401. package/dist/ViewColumnIcon-643QS4QM.js.map +0 -1
  402. package/dist/VisaBadge-I4DM7OIR.js +0 -2
  403. package/dist/VisaBadge-I4DM7OIR.js.map +0 -1
  404. package/dist/VisaIcon-2MBUERWN.js +0 -2
  405. package/dist/VisaIcon-2MBUERWN.js.map +0 -1
  406. package/dist/Wallet03SolidRounded-OJOGIKTN.js +0 -2
  407. package/dist/Wallet03SolidRounded-OJOGIKTN.js.map +0 -1
  408. package/dist/WarehouseIcon-VHFQRYGZ.js +0 -2
  409. package/dist/WarehouseIcon-VHFQRYGZ.js.map +0 -1
  410. package/dist/WarningTriangleSolidIcon-MOCG2TDP.js +0 -2
  411. package/dist/WarningTriangleSolidIcon-MOCG2TDP.js.map +0 -1
  412. package/dist/WaveFileIcon-NVDMI5CT.js +0 -2
  413. package/dist/WaveFileIcon-NVDMI5CT.js.map +0 -1
  414. package/dist/WhatsappButtonIcon-YFJJN4Y3.js +0 -2
  415. package/dist/WhatsappButtonIcon-YFJJN4Y3.js.map +0 -1
  416. package/dist/WithdrawIcon-7EJAE26Q.js +0 -2
  417. package/dist/WithdrawIcon-7EJAE26Q.js.map +0 -1
  418. package/dist/Word-WP62OZHI.js +0 -2
  419. package/dist/Word-WP62OZHI.js.map +0 -1
  420. package/dist/Zip-DMOUO6UD.js +0 -2
  421. package/dist/Zip-DMOUO6UD.js.map +0 -1
  422. package/dist/ZoeAiIcon-T2NCFUE3.js +0 -2
  423. package/dist/ZoeAiIcon-T2NCFUE3.js.map +0 -1
  424. package/dist/ZydonIcon-G777IXYM.js +0 -2
  425. package/dist/ZydonIcon-G777IXYM.js.map +0 -1
  426. package/dist/ZydonPayIcon-CLINWXF5.js +0 -2
  427. package/dist/ZydonPayIcon-CLINWXF5.js.map +0 -1
  428. package/dist/brazil-TQ5YVZEI.js +0 -2
  429. package/dist/brazil-TQ5YVZEI.js.map +0 -1
  430. package/dist/chunk-23HPXWBG.js +0 -6
  431. package/dist/chunk-23HPXWBG.js.map +0 -1
  432. package/dist/chunk-2A3JEAR2.js +0 -6
  433. package/dist/chunk-2A3JEAR2.js.map +0 -1
  434. package/dist/chunk-2E3WI5RW.js +0 -6
  435. package/dist/chunk-2E3WI5RW.js.map +0 -1
  436. package/dist/chunk-2I3FMGM3.js +0 -6
  437. package/dist/chunk-2I3FMGM3.js.map +0 -1
  438. package/dist/chunk-2OSAD34A.js +0 -6
  439. package/dist/chunk-2OSAD34A.js.map +0 -1
  440. package/dist/chunk-2TEGEJGR.js +0 -6
  441. package/dist/chunk-2TEGEJGR.js.map +0 -1
  442. package/dist/chunk-2ZGXYB4B.js +0 -6
  443. package/dist/chunk-2ZGXYB4B.js.map +0 -1
  444. package/dist/chunk-34CI5VGF.js +0 -6
  445. package/dist/chunk-34CI5VGF.js.map +0 -1
  446. package/dist/chunk-35FR4FOA.js +0 -6
  447. package/dist/chunk-35FR4FOA.js.map +0 -1
  448. package/dist/chunk-36LUOVQV.js +0 -6
  449. package/dist/chunk-36LUOVQV.js.map +0 -1
  450. package/dist/chunk-3E2CZNAB.js +0 -6
  451. package/dist/chunk-3E2CZNAB.js.map +0 -1
  452. package/dist/chunk-3EFT6YSD.js +0 -6
  453. package/dist/chunk-3EFT6YSD.js.map +0 -1
  454. package/dist/chunk-3GJ5AP7R.js +0 -6
  455. package/dist/chunk-3GJ5AP7R.js.map +0 -1
  456. package/dist/chunk-3JN2ENSO.js +0 -6
  457. package/dist/chunk-3JN2ENSO.js.map +0 -1
  458. package/dist/chunk-3O6DQK2Y.js +0 -6
  459. package/dist/chunk-3O6DQK2Y.js.map +0 -1
  460. package/dist/chunk-3PF55BQ7.js +0 -6
  461. package/dist/chunk-3PF55BQ7.js.map +0 -1
  462. package/dist/chunk-3SPYJ5KY.js +0 -6
  463. package/dist/chunk-3SPYJ5KY.js.map +0 -1
  464. package/dist/chunk-3TBO3DSP.js +0 -6
  465. package/dist/chunk-3TBO3DSP.js.map +0 -1
  466. package/dist/chunk-3TJSB74Q.js +0 -6
  467. package/dist/chunk-3TJSB74Q.js.map +0 -1
  468. package/dist/chunk-3VYKHXMB.js +0 -6
  469. package/dist/chunk-3VYKHXMB.js.map +0 -1
  470. package/dist/chunk-467QIKOJ.js +0 -6
  471. package/dist/chunk-467QIKOJ.js.map +0 -1
  472. package/dist/chunk-47GVGG4B.js +0 -6
  473. package/dist/chunk-47GVGG4B.js.map +0 -1
  474. package/dist/chunk-4B4SAKN4.js +0 -6
  475. package/dist/chunk-4B4SAKN4.js.map +0 -1
  476. package/dist/chunk-4HT344UK.js +0 -6
  477. package/dist/chunk-4HT344UK.js.map +0 -1
  478. package/dist/chunk-4PK45LZ6.js +0 -6
  479. package/dist/chunk-4PK45LZ6.js.map +0 -1
  480. package/dist/chunk-4XW2XJLH.js +0 -6
  481. package/dist/chunk-4XW2XJLH.js.map +0 -1
  482. package/dist/chunk-4XYO73JX.js +0 -6
  483. package/dist/chunk-4XYO73JX.js.map +0 -1
  484. package/dist/chunk-5GLDXPBY.js +0 -6
  485. package/dist/chunk-5GLDXPBY.js.map +0 -1
  486. package/dist/chunk-5NGWT3M5.js +0 -6
  487. package/dist/chunk-5NGWT3M5.js.map +0 -1
  488. package/dist/chunk-5P366VJV.js +0 -6
  489. package/dist/chunk-5P366VJV.js.map +0 -1
  490. package/dist/chunk-62MXETHC.js +0 -6
  491. package/dist/chunk-62MXETHC.js.map +0 -1
  492. package/dist/chunk-66NGYJR5.js +0 -6
  493. package/dist/chunk-66NGYJR5.js.map +0 -1
  494. package/dist/chunk-6HGX6PF6.js +0 -6
  495. package/dist/chunk-6HGX6PF6.js.map +0 -1
  496. package/dist/chunk-6MIB3Y74.js +0 -6
  497. package/dist/chunk-6MIB3Y74.js.map +0 -1
  498. package/dist/chunk-6Q272Q44.js +0 -6
  499. package/dist/chunk-6Q272Q44.js.map +0 -1
  500. package/dist/chunk-6VHOHMT5.js +0 -6
  501. package/dist/chunk-6VHOHMT5.js.map +0 -1
  502. package/dist/chunk-6VNI2SDX.js +0 -6
  503. package/dist/chunk-6VNI2SDX.js.map +0 -1
  504. package/dist/chunk-6YJXV77R.js +0 -6
  505. package/dist/chunk-6YJXV77R.js.map +0 -1
  506. package/dist/chunk-77GXDO2J.js +0 -6
  507. package/dist/chunk-77GXDO2J.js.map +0 -1
  508. package/dist/chunk-7ITH2BHN.js +0 -6
  509. package/dist/chunk-7ITH2BHN.js.map +0 -1
  510. package/dist/chunk-7JCS6XUD.js +0 -6
  511. package/dist/chunk-7JCS6XUD.js.map +0 -1
  512. package/dist/chunk-7NSBILAB.js +0 -6
  513. package/dist/chunk-7NSBILAB.js.map +0 -1
  514. package/dist/chunk-ABGWQJMQ.js +0 -6
  515. package/dist/chunk-ABGWQJMQ.js.map +0 -1
  516. package/dist/chunk-AGR54T2W.js +0 -6
  517. package/dist/chunk-AGR54T2W.js.map +0 -1
  518. package/dist/chunk-AOYZX4RD.js +0 -6
  519. package/dist/chunk-AOYZX4RD.js.map +0 -1
  520. package/dist/chunk-AXS455TH.js +0 -6
  521. package/dist/chunk-AXS455TH.js.map +0 -1
  522. package/dist/chunk-B5AEISFL.js +0 -6
  523. package/dist/chunk-B5AEISFL.js.map +0 -1
  524. package/dist/chunk-BHGV4CYW.js +0 -6
  525. package/dist/chunk-BHGV4CYW.js.map +0 -1
  526. package/dist/chunk-BTVUQ4XU.js +0 -6
  527. package/dist/chunk-BTVUQ4XU.js.map +0 -1
  528. package/dist/chunk-BXJEICPS.js +0 -6
  529. package/dist/chunk-BXJEICPS.js.map +0 -1
  530. package/dist/chunk-CA3ERMCD.js +0 -6
  531. package/dist/chunk-CA3ERMCD.js.map +0 -1
  532. package/dist/chunk-CG5OVPIM.js +0 -6
  533. package/dist/chunk-CG5OVPIM.js.map +0 -1
  534. package/dist/chunk-CRWHTBBL.js +0 -6
  535. package/dist/chunk-CRWHTBBL.js.map +0 -1
  536. package/dist/chunk-DMC7LQ4N.js +0 -6
  537. package/dist/chunk-DMC7LQ4N.js.map +0 -1
  538. package/dist/chunk-DSQHDHEJ.js +0 -6
  539. package/dist/chunk-DSQHDHEJ.js.map +0 -1
  540. package/dist/chunk-DTZ47O5J.js +0 -6
  541. package/dist/chunk-DTZ47O5J.js.map +0 -1
  542. package/dist/chunk-DVN7YBAX.js +0 -6
  543. package/dist/chunk-DVN7YBAX.js.map +0 -1
  544. package/dist/chunk-E2XW3ALY.js +0 -6
  545. package/dist/chunk-E2XW3ALY.js.map +0 -1
  546. package/dist/chunk-EAYBPL7I.js +0 -6
  547. package/dist/chunk-EAYBPL7I.js.map +0 -1
  548. package/dist/chunk-EDZ6ZOEL.js +0 -6
  549. package/dist/chunk-EDZ6ZOEL.js.map +0 -1
  550. package/dist/chunk-EKZYDHUV.js +0 -6
  551. package/dist/chunk-EKZYDHUV.js.map +0 -1
  552. package/dist/chunk-EVCYTUOO.js +0 -6
  553. package/dist/chunk-EVCYTUOO.js.map +0 -1
  554. package/dist/chunk-FGIQXYQH.js +0 -6
  555. package/dist/chunk-FGIQXYQH.js.map +0 -1
  556. package/dist/chunk-FIUVFX7R.js +0 -6
  557. package/dist/chunk-FIUVFX7R.js.map +0 -1
  558. package/dist/chunk-FJYFLKYT.js +0 -6
  559. package/dist/chunk-FJYFLKYT.js.map +0 -1
  560. package/dist/chunk-FUVYZQLW.js +0 -6
  561. package/dist/chunk-FUVYZQLW.js.map +0 -1
  562. package/dist/chunk-FZEGQP3E.js +0 -6
  563. package/dist/chunk-FZEGQP3E.js.map +0 -1
  564. package/dist/chunk-GFCDZMNY.js +0 -6
  565. package/dist/chunk-GFCDZMNY.js.map +0 -1
  566. package/dist/chunk-GI2Q5ZKI.js +0 -6
  567. package/dist/chunk-GI2Q5ZKI.js.map +0 -1
  568. package/dist/chunk-GNE65ADW.js +0 -6
  569. package/dist/chunk-GNE65ADW.js.map +0 -1
  570. package/dist/chunk-GVWYETWT.js +0 -6
  571. package/dist/chunk-GVWYETWT.js.map +0 -1
  572. package/dist/chunk-HNQ253ZD.js +0 -7
  573. package/dist/chunk-HNQ253ZD.js.map +0 -1
  574. package/dist/chunk-HWADDMHQ.js +0 -6
  575. package/dist/chunk-HWADDMHQ.js.map +0 -1
  576. package/dist/chunk-I3JOQYPX.js +0 -6
  577. package/dist/chunk-I3JOQYPX.js.map +0 -1
  578. package/dist/chunk-I65NZFOS.js +0 -6
  579. package/dist/chunk-I65NZFOS.js.map +0 -1
  580. package/dist/chunk-IPCUGUUQ.js +0 -6
  581. package/dist/chunk-IPCUGUUQ.js.map +0 -1
  582. package/dist/chunk-IPKFFCW7.js +0 -6
  583. package/dist/chunk-IPKFFCW7.js.map +0 -1
  584. package/dist/chunk-ISPMY4EO.js +0 -6
  585. package/dist/chunk-ISPMY4EO.js.map +0 -1
  586. package/dist/chunk-ISUBGMY4.js +0 -6
  587. package/dist/chunk-ISUBGMY4.js.map +0 -1
  588. package/dist/chunk-J5CCDUEI.js +0 -6
  589. package/dist/chunk-J5CCDUEI.js.map +0 -1
  590. package/dist/chunk-J5KDPAWP.js +0 -6
  591. package/dist/chunk-J5KDPAWP.js.map +0 -1
  592. package/dist/chunk-JDYJQJDC.js +0 -6
  593. package/dist/chunk-JDYJQJDC.js.map +0 -1
  594. package/dist/chunk-JYHFX7VQ.js +0 -6
  595. package/dist/chunk-JYHFX7VQ.js.map +0 -1
  596. package/dist/chunk-K36XVEPZ.js +0 -6
  597. package/dist/chunk-K36XVEPZ.js.map +0 -1
  598. package/dist/chunk-KC5WXOCZ.js +0 -6
  599. package/dist/chunk-KC5WXOCZ.js.map +0 -1
  600. package/dist/chunk-KECDPJAX.js +0 -6
  601. package/dist/chunk-KECDPJAX.js.map +0 -1
  602. package/dist/chunk-KFSNHVPI.js +0 -6
  603. package/dist/chunk-KFSNHVPI.js.map +0 -1
  604. package/dist/chunk-KIUSOVMC.js +0 -6
  605. package/dist/chunk-KIUSOVMC.js.map +0 -1
  606. package/dist/chunk-KJNTTEAK.js +0 -6
  607. package/dist/chunk-KJNTTEAK.js.map +0 -1
  608. package/dist/chunk-KP4SEXGX.js +0 -6
  609. package/dist/chunk-KP4SEXGX.js.map +0 -1
  610. package/dist/chunk-L3CADPDV.js +0 -7
  611. package/dist/chunk-L3CADPDV.js.map +0 -1
  612. package/dist/chunk-L3YFWYLR.js +0 -6
  613. package/dist/chunk-L3YFWYLR.js.map +0 -1
  614. package/dist/chunk-L4BJKCBQ.js +0 -6
  615. package/dist/chunk-L4BJKCBQ.js.map +0 -1
  616. package/dist/chunk-LA3IVJH3.js +0 -6
  617. package/dist/chunk-LA3IVJH3.js.map +0 -1
  618. package/dist/chunk-LAW2SJKD.js +0 -6
  619. package/dist/chunk-LAW2SJKD.js.map +0 -1
  620. package/dist/chunk-LAXL2FZH.js +0 -6
  621. package/dist/chunk-LAXL2FZH.js.map +0 -1
  622. package/dist/chunk-LECYUASO.js +0 -6
  623. package/dist/chunk-LECYUASO.js.map +0 -1
  624. package/dist/chunk-LFFKQ5UY.js +0 -6
  625. package/dist/chunk-LFFKQ5UY.js.map +0 -1
  626. package/dist/chunk-LQ2SLABO.js +0 -6
  627. package/dist/chunk-LQ2SLABO.js.map +0 -1
  628. package/dist/chunk-M22MNKOD.js +0 -6
  629. package/dist/chunk-M22MNKOD.js.map +0 -1
  630. package/dist/chunk-MAQJHBRG.js +0 -6
  631. package/dist/chunk-MAQJHBRG.js.map +0 -1
  632. package/dist/chunk-N3QD4762.js +0 -6
  633. package/dist/chunk-N3QD4762.js.map +0 -1
  634. package/dist/chunk-N63KFRAE.js +0 -6
  635. package/dist/chunk-N63KFRAE.js.map +0 -1
  636. package/dist/chunk-NY7OH64D.js +0 -6
  637. package/dist/chunk-NY7OH64D.js.map +0 -1
  638. package/dist/chunk-O5AVZ4XZ.js +0 -6
  639. package/dist/chunk-O5AVZ4XZ.js.map +0 -1
  640. package/dist/chunk-PANXFSBJ.js +0 -6
  641. package/dist/chunk-PANXFSBJ.js.map +0 -1
  642. package/dist/chunk-PB74EKXH.js +0 -6
  643. package/dist/chunk-PB74EKXH.js.map +0 -1
  644. package/dist/chunk-PE4NNNW3.js +0 -6
  645. package/dist/chunk-PE4NNNW3.js.map +0 -1
  646. package/dist/chunk-PEVNYPIT.js +0 -6
  647. package/dist/chunk-PEVNYPIT.js.map +0 -1
  648. package/dist/chunk-PGPNLB6H.js +0 -6
  649. package/dist/chunk-PGPNLB6H.js.map +0 -1
  650. package/dist/chunk-PPJJQFNS.js +0 -6
  651. package/dist/chunk-PPJJQFNS.js.map +0 -1
  652. package/dist/chunk-QGXUR7SS.js +0 -6
  653. package/dist/chunk-QGXUR7SS.js.map +0 -1
  654. package/dist/chunk-QLECZZYA.js +0 -6
  655. package/dist/chunk-QLECZZYA.js.map +0 -1
  656. package/dist/chunk-QNXYDH4Z.js +0 -6
  657. package/dist/chunk-QNXYDH4Z.js.map +0 -1
  658. package/dist/chunk-QOPUYMDW.js +0 -6
  659. package/dist/chunk-QOPUYMDW.js.map +0 -1
  660. package/dist/chunk-R4BWG6IP.js +0 -6
  661. package/dist/chunk-R4BWG6IP.js.map +0 -1
  662. package/dist/chunk-RCVDECZO.js +0 -6
  663. package/dist/chunk-RCVDECZO.js.map +0 -1
  664. package/dist/chunk-REVEMW2Z.js +0 -6
  665. package/dist/chunk-REVEMW2Z.js.map +0 -1
  666. package/dist/chunk-RG3WUQ4U.js +0 -6
  667. package/dist/chunk-RG3WUQ4U.js.map +0 -1
  668. package/dist/chunk-RMM5IYNJ.js +0 -6
  669. package/dist/chunk-RMM5IYNJ.js.map +0 -1
  670. package/dist/chunk-RP27UYVF.js +0 -6
  671. package/dist/chunk-RP27UYVF.js.map +0 -1
  672. package/dist/chunk-SQ3T74SK.js +0 -6
  673. package/dist/chunk-SQ3T74SK.js.map +0 -1
  674. package/dist/chunk-SQKLWJ23.js +0 -6
  675. package/dist/chunk-SQKLWJ23.js.map +0 -1
  676. package/dist/chunk-SRI4ERT7.js +0 -6
  677. package/dist/chunk-SRI4ERT7.js.map +0 -1
  678. package/dist/chunk-STILB7RV.js +0 -6
  679. package/dist/chunk-STILB7RV.js.map +0 -1
  680. package/dist/chunk-SWQTSSZB.js +0 -6
  681. package/dist/chunk-SWQTSSZB.js.map +0 -1
  682. package/dist/chunk-T3IMQCA4.js +0 -6
  683. package/dist/chunk-T3IMQCA4.js.map +0 -1
  684. package/dist/chunk-TF7C2MZM.js +0 -6
  685. package/dist/chunk-TF7C2MZM.js.map +0 -1
  686. package/dist/chunk-TJDQSDGI.js +0 -6
  687. package/dist/chunk-TJDQSDGI.js.map +0 -1
  688. package/dist/chunk-TP556MUN.js +0 -6
  689. package/dist/chunk-TP556MUN.js.map +0 -1
  690. package/dist/chunk-U4CAICN5.js +0 -6
  691. package/dist/chunk-U4CAICN5.js.map +0 -1
  692. package/dist/chunk-UALPBWPM.js +0 -6
  693. package/dist/chunk-UALPBWPM.js.map +0 -1
  694. package/dist/chunk-UK2F7TWJ.js +0 -166
  695. package/dist/chunk-UK2F7TWJ.js.map +0 -1
  696. package/dist/chunk-UVBYI6Q4.js +0 -6
  697. package/dist/chunk-UVBYI6Q4.js.map +0 -1
  698. package/dist/chunk-UVPHAGRR.js +0 -6
  699. package/dist/chunk-UVPHAGRR.js.map +0 -1
  700. package/dist/chunk-VJXZF4JZ.js +0 -6
  701. package/dist/chunk-VJXZF4JZ.js.map +0 -1
  702. package/dist/chunk-VQGBKDR7.js +0 -6
  703. package/dist/chunk-VQGBKDR7.js.map +0 -1
  704. package/dist/chunk-VS3HUF6I.js +0 -6
  705. package/dist/chunk-VS3HUF6I.js.map +0 -1
  706. package/dist/chunk-VV3FVOPK.js +0 -6
  707. package/dist/chunk-VV3FVOPK.js.map +0 -1
  708. package/dist/chunk-VXLXFRSL.js +0 -6
  709. package/dist/chunk-VXLXFRSL.js.map +0 -1
  710. package/dist/chunk-VXTPFEPK.js +0 -6
  711. package/dist/chunk-VXTPFEPK.js.map +0 -1
  712. package/dist/chunk-VZQQHRES.js +0 -6
  713. package/dist/chunk-VZQQHRES.js.map +0 -1
  714. package/dist/chunk-W6CDOZMZ.js +0 -6
  715. package/dist/chunk-W6CDOZMZ.js.map +0 -1
  716. package/dist/chunk-W6OLLGA5.js +0 -6
  717. package/dist/chunk-W6OLLGA5.js.map +0 -1
  718. package/dist/chunk-WBTIOMTF.js +0 -6
  719. package/dist/chunk-WBTIOMTF.js.map +0 -1
  720. package/dist/chunk-WENSCH6W.js +0 -6
  721. package/dist/chunk-WENSCH6W.js.map +0 -1
  722. package/dist/chunk-WO6NCPDR.js +0 -6
  723. package/dist/chunk-WO6NCPDR.js.map +0 -1
  724. package/dist/chunk-WU5EGX2L.js +0 -6
  725. package/dist/chunk-WU5EGX2L.js.map +0 -1
  726. package/dist/chunk-XBXD5FTK.js +0 -6
  727. package/dist/chunk-XBXD5FTK.js.map +0 -1
  728. package/dist/chunk-XC42LUQQ.js +0 -6
  729. package/dist/chunk-XC42LUQQ.js.map +0 -1
  730. package/dist/chunk-XT2VU2IS.js +0 -6
  731. package/dist/chunk-XT2VU2IS.js.map +0 -1
  732. package/dist/chunk-YRPX7STA.js +0 -6
  733. package/dist/chunk-YRPX7STA.js.map +0 -1
  734. package/dist/chunk-YYABA4NC.js +0 -6
  735. package/dist/chunk-YYABA4NC.js.map +0 -1
  736. package/dist/chunk-YYGFBIXE.js +0 -6
  737. package/dist/chunk-YYGFBIXE.js.map +0 -1
  738. package/dist/chunk-ZCXQFAMG.js +0 -6
  739. package/dist/chunk-ZCXQFAMG.js.map +0 -1
  740. package/dist/chunk-ZHHHHVP3.js +0 -6
  741. package/dist/chunk-ZHHHHVP3.js.map +0 -1
  742. package/dist/chunk-ZZYKPI33.js +0 -6
  743. package/dist/chunk-ZZYKPI33.js.map +0 -1
  744. package/dist/components/IconLazy/index.d.ts +0 -13
  745. package/dist/components/IconLazy/index.js +0 -10
  746. package/dist/components/IconLazy/index.js.map +0 -1
  747. package/dist/usa-2UKYSJ5Q.js +0 -2
  748. package/dist/usa-2UKYSJ5Q.js.map +0 -1
  749. /package/dist/{chunk-RX46STPN.js.map → chunk-2BZB3KUP.js.map} +0 -0
  750. /package/dist/{chunk-NIT26MGD.js.map → chunk-2QBJ4PS3.js.map} +0 -0
  751. /package/dist/{chunk-IAUY4JGB.js.map → chunk-6GVG43FV.js.map} +0 -0
  752. /package/dist/{chunk-LFWPNKUM.js.map → chunk-7JCZYOLK.js.map} +0 -0
  753. /package/dist/{chunk-IWTQKOTE.js.map → chunk-AD4BVTIL.js.map} +0 -0
  754. /package/dist/{chunk-NWT5TUJO.js.map → chunk-AYUKIKNC.js.map} +0 -0
  755. /package/dist/{chunk-NJ55GFRA.js.map → chunk-BHENIWLV.js.map} +0 -0
  756. /package/dist/{chunk-HVOXV2ZU.js.map → chunk-E66LN7GV.js.map} +0 -0
  757. /package/dist/{chunk-CAB6KNWY.js.map → chunk-GY75LKGU.js.map} +0 -0
  758. /package/dist/{chunk-VZVY6HGD.js.map → chunk-HMXT4BZB.js.map} +0 -0
  759. /package/dist/{chunk-7MUFLAMK.js.map → chunk-ILC7LDUW.js.map} +0 -0
  760. /package/dist/{chunk-CQBXYALD.js.map → chunk-JQFGMAHA.js.map} +0 -0
  761. /package/dist/{chunk-G2JHTPSE.js.map → chunk-LBDMTEDB.js.map} +0 -0
  762. /package/dist/{chunk-3VT6LTJ7.js.map → chunk-LIGOKFZE.js.map} +0 -0
  763. /package/dist/{chunk-AFPC4CCM.js.map → chunk-NPUDS6VV.js.map} +0 -0
  764. /package/dist/{chunk-MMOGWTW7.js.map → chunk-UMFGBRJF.js.map} +0 -0
  765. /package/dist/{chunk-IXUBDPJH.js.map → chunk-XDC3MGXF.js.map} +0 -0
  766. /package/dist/{chunk-QBKRR7YK.js.map → chunk-XHNY46KY.js.map} +0 -0
  767. /package/dist/{chunk-437QYAEM.js.map → chunk-XW2GMFOW.js.map} +0 -0
  768. /package/dist/{chunk-MHQKQ4VE.js.map → chunk-YDTXGTQA.js.map} +0 -0
  769. /package/dist/{chunk-JCUZG6H4.js.map → chunk-YJIUL6ZO.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/props.ts","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/BarLabel.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Summary.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/Header.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/styles.ts","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/useOverviewDetailState.ts","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/utils.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/DailyView.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/props.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/MonthlyView.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Summary.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/props.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/RealizedBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Summary.tsx"],"names":["useCallback","useMemo","useState","CardContent","CardHeader","Stack","useRef","Bar","BarChart","CartesianGrid","ResponsiveContainer","Tooltip","XAxis","YAxis","COLORS","jsx","BarBackground","x","y","width","height","index","activeBarIndex","BarBackground_default","BarLabel","data","visibleSeries","isMonthly","shouldRotateLabels","item","total","BarLabel_default","Divider","Typography","jsxs","OrdersByTypeTooltip","active","payload","label","viewMode","isDaily","formattedLabel","parts","monthIndex","month","MONTH_FULL_LABELS","items","p","SimpleCard_default","entry","fCurrencyBRL","Tooltip_default","Chart","onMouseMove","onMouseLeave","onBarClick","containerWidth","setContainerWidth","observerRef","wrapperRefCallback","node","hasOrderData","hasQuotationData","yDomain","maxTotal","d","yTicks","max","step","_","i","quotationsOnTop","ordersIsTop","tickFormatter","formatMonthLabel","formatDayLabel","ChartWrapper","state","RotatedTick_default","v","fShortenNumber","Chart_default","Checkbox","FormControlLabel","OrdersByTypeLegend","onToggleSerie","Legend_default","Summary","ordersTotal","quotationsTotal","isMobile","useResponsive_default","Summary_default","Fragment","OrdersByType","selectedYear","DetailComponent","setVisibleSeries","setActiveBarIndex","detailOpen","setDetailOpen","selectedLabel","setSelectedLabel","selectedTotalValue","setSelectedTotalValue","handleToggleSerie","serie","prev","handleMouseMove","handleMouseLeave","handleBarClick","handleDetailClose","totals","acc","ChartCard","Result_default","EmptyState_default","OrdersByType_default","Link","Header","title","periodLabel","VIEW_MODE_LABELS","Header_default","MuiDivider","alpha","styled","StyledDivider","MobileItemContainer","theme","getOrderId","order","getPartnerName","buildPartnerLink","getOrderValue","getOrderDate","fDate","getOrderStatus","getDefaultMobileRender","OverviewDetail","open","onClose","totalValue","suffix","rows","isLoading","isFetching","page","perPage","onSearch","onPaginationChange","mobileItemSlot","content","SearchInput_default","DataView_default","row","header","Drawer_default","Modal_default","OverviewDetail_default","getDateRange","date","year","lastDay","getPeriodLabel","monthName","day","getPeriodSuffix","useOverviewDetailState","search","handlePaginationModelChange","handleSearch","useDatagrid_default","startDate","endDate","queryParams","handlePaginationChange","newPage","rowsPerPage","useOverviewDetailState_default","ComposedChart","Line","SalesEvolutionTooltip","realized","forecast","goal","achievement","gap","timeUnitStr","goalStr","DailyChart","formatYAxis","DailyView_default","MonthlyChart","barLabelConfig","value","MonthlyView_default","SalesEvolutionChart","SalesEvolutionLegend","kpis","editGoalAction","fPercent","InfoCircle_default","SalesEvolution","values","ticks","handleToggleSeries","key","toggle","SalesEvolution_default","RealizedBackground","bothRendered","RealizedBackground_default","SalesForecastTooltip","ForecastChart","hasRealizedData","hasForecastData","SalesForecastLegend","SalesForecastSummary","totalForecast","totalRealized","percentage","SalesForecast","SalesForecast_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport { ViewMode } from 'utils/analytics';\n\nimport Chart from './Chart';\nimport Legend from './Legend';\nimport { OrdersByTypeProps, VisibleSeries } from './props';\nimport Summary from './Summary';\n\nconst OrdersByType = ({\n data,\n viewMode,\n selectedYear,\n DetailComponent,\n}: OrdersByTypeProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n orders: true,\n quotations: true,\n });\n\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n\n const [detailOpen, setDetailOpen] = useState(false);\n const [selectedLabel, setSelectedLabel] = useState('');\n const [selectedTotalValue, setSelectedTotalValue] = useState(0);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const handleBarClick = useCallback(\n (index: number) => {\n const item = data[index];\n if (!item) return;\n setSelectedLabel(item.label);\n setSelectedTotalValue(item.order_value);\n setDetailOpen(true);\n },\n [data],\n );\n\n const handleDetailClose = useCallback(() => {\n setDetailOpen(false);\n }, []);\n\n const totals = useMemo(() => {\n const ordersTotal = data.reduce(\n (acc, item) => acc + (item.order_count ?? 0),\n 0,\n );\n const quotationsTotal = data.reduce(\n (acc, item) => acc + (item.quotation_count ?? 0),\n 0,\n );\n return { ordersTotal, quotationsTotal };\n }, [data]);\n\n return (\n <>\n <ChartCard>\n <CardHeader title=\"Quantidade de pedidos por tipo\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <Summary\n isMonthly={isMonthly}\n ordersTotal={totals.ordersTotal}\n quotationsTotal={totals.quotationsTotal}\n />\n </Stack>\n\n <Chart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={handleBarClick}\n />\n\n <Legend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <Summary\n isMonthly={isMonthly}\n ordersTotal={totals.ordersTotal}\n quotationsTotal={totals.quotationsTotal}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n\n {selectedLabel && DetailComponent && (\n <DetailComponent\n open={detailOpen}\n onClose={handleDetailClose}\n label={selectedLabel}\n viewMode={viewMode}\n selectedYear={selectedYear}\n totalValue={selectedTotalValue}\n />\n )}\n </>\n );\n};\n\nexport default OrdersByType;\n","import { ReactElement, useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { ViewMode } from 'utils/analytics';\nimport { formatDayLabel, formatMonthLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport BarLabel from './BarLabel';\nimport { ChartProps } from './props';\nimport OrdersByTypeTooltip from './Tooltip';\n\nconst Chart = ({\n data,\n viewMode,\n visibleSeries,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\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 shouldRotateLabels = useMemo(() => {\n if (!isMonthly) return false;\n if (containerWidth === 0 || data.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / data.length;\n return slotPerBar < 80;\n }, [isMonthly, containerWidth, data.length]);\n\n const hasOrderData = useMemo(\n () => data.some(d => (d.order_count ?? 0) > 0),\n [data],\n );\n\n const hasQuotationData = useMemo(\n () => data.some(d => (d.quotation_count ?? 0) > 0),\n [data],\n );\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const maxTotal = Math.max(\n ...data.map(d => (d.order_count ?? 0) + (d.quotation_count ?? 0)),\n );\n return [0, maxTotal > 0 ? maxTotal * 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 quotationsOnTop = visibleSeries.quotations && hasQuotationData;\n\n const ordersIsTop = visibleSeries.orders && hasOrderData && !quotationsOnTop;\n\n const tickFormatter = useMemo(\n () => (isMonthly ? formatMonthLabel : formatDayLabel),\n [isMonthly],\n );\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <ResponsiveContainer width=\"100%\" height={250}>\n <BarChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={tickFormatter}\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\n content={<OrdersByTypeTooltip viewMode={viewMode} />}\n cursor={false}\n />\n\n <Bar\n dataKey=\"order_count\"\n name=\"Vendas\"\n fill={COLORS.orders}\n stackId=\"orders\"\n maxBarSize={48}\n isAnimationActive={false}\n hide={!visibleSeries.orders}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n radius={ordersIsTop ? [4, 4, 0, 0] : undefined}\n {...(ordersIsTop && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: (\n <BarLabel\n data={data}\n visibleSeries={visibleSeries}\n isMonthly={isMonthly}\n shouldRotateLabels={shouldRotateLabels}\n />\n ) as unknown as ReactElement,\n },\n })}\n />\n\n <Bar\n dataKey=\"quotation_count\"\n name=\"Orçamentos\"\n fill={COLORS.quotations}\n stackId=\"orders\"\n maxBarSize={48}\n isAnimationActive={false}\n hide={!visibleSeries.quotations}\n radius={quotationsOnTop ? [4, 4, 0, 0] : undefined}\n {...(!visibleSeries.orders && {\n background: <BarBackground activeBarIndex={activeBarIndex} />,\n })}\n {...(quotationsOnTop && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: (\n <BarLabel\n data={data}\n visibleSeries={visibleSeries}\n isMonthly={isMonthly}\n shouldRotateLabels={shouldRotateLabels}\n />\n ) as unknown as ReactElement,\n },\n })}\n />\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default Chart;\n","import { ComponentType } from 'react';\n\nimport {\n OverviewDetailBaseProps,\n QuotationDashboardSeriesItem,\n} from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface OrdersByTypeProps {\n data: QuotationDashboardSeriesItem[];\n viewMode: ViewMode;\n selectedYear: number;\n DetailComponent?: ComponentType<OverviewDetailBaseProps>;\n}\n\nexport interface VisibleSeries {\n orders: boolean;\n quotations: boolean;\n}\n\nexport interface SummaryProps {\n isMonthly: boolean;\n ordersTotal: number;\n quotationsTotal: number;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport const COLORS = {\n orders: '#22C55E',\n quotations: '#0EA5E9',\n} as const;\n","import { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\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=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default BarBackground;\n","import { BarLabelProps } from './props';\n\nconst BarLabel = ({\n x = 0,\n y = 0,\n width = 0,\n index = 0,\n data,\n visibleSeries,\n isMonthly,\n shouldRotateLabels,\n}: BarLabelProps) => {\n if (!isMonthly || shouldRotateLabels) return null;\n\n const item = data[index];\n if (!item) return null;\n\n let total = 0;\n if (visibleSeries.orders) total += item.order_count ?? 0;\n if (visibleSeries.quotations) total += item.quotation_count ?? 0;\n if (!total) return null;\n\n return (\n <text\n x={x + width / 2}\n y={y - 8}\n textAnchor=\"middle\"\n fontSize={11}\n fill=\"#212B36\"\n >\n {total}\n </text>\n );\n};\n\nexport default BarLabel;\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst OrdersByTypeTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n const data = payload[0].payload;\n\n const items = [\n {\n name: 'Vendas',\n count: data.order_count ?? 0,\n value: data.order_value ?? 0,\n color: payload.find(p => p.dataKey === 'order_count')?.color ?? '#22C55E',\n },\n {\n name: 'Orçamentos',\n count: data.quotation_count ?? 0,\n value: data.quotation_value ?? 0,\n color:\n payload.find(p => p.dataKey === 'quotation_count')?.color ?? '#0EA5E9',\n },\n ];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 300 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {items.map((entry, index) => (\n <Stack\n key={entry.name}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={2}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" color=\"text.disabled\" noWrap>\n {entry.count} {entry.count === 1 ? 'pedido' : 'pedidos'}&ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(entry.value)}\n </Typography>\n </Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default OrdersByTypeTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst OrdersByTypeLegend = ({ visibleSeries, onToggleSerie }: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.orders}\n onChange={() => onToggleSerie('orders')}\n sx={{ '&.Mui-checked': { color: COLORS.orders } }}\n />\n }\n label=\"Vendas\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.quotations}\n onChange={() => onToggleSerie('quotations')}\n sx={{ '&.Mui-checked': { color: COLORS.quotations } }}\n />\n }\n label=\"Orçamentos\"\n />\n </Stack>\n);\n\nexport default OrdersByTypeLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport useResponsive from 'hooks/useResponsive';\n\nimport { SummaryProps } from './props';\n\nconst Summary = ({ ordersTotal, quotationsTotal, isMonthly }: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Vendas no ano' : 'Vendas no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">{ordersTotal} vendas</Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Orçamentos no ano' : 'Orçamentos no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {quotationsTotal} orçamentos\n </Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default Summary;\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 { OverviewDetailOrder } from 'types/overviewAnalytics';\nimport { fCurrencyBRL } from 'utils/formatNumber';\nimport { fDate } from 'utils/formatTime';\n\nimport Header from './Header';\nimport { OverviewDetailProps } from './props';\nimport { MobileItemContainer, StyledDivider } from './styles';\n\nconst getOrderId = (order: OverviewDetailOrder) => (\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: OverviewDetailOrder,\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: OverviewDetailOrder) => (\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: OverviewDetailOrder) => (\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: OverviewDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.status || '-'}\n </Stack>\n);\n\nconst getDefaultMobileRender = (order: OverviewDetailOrder) => (\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 OverviewDetail = ({\n open,\n onClose,\n title,\n viewMode,\n selectedYear,\n totalValue,\n periodLabel,\n suffix,\n rows,\n total,\n isLoading,\n isFetching,\n page,\n perPage,\n onSearch,\n onPaginationChange,\n buildPartnerLink,\n mobileItemSlot,\n}: OverviewDetailProps) => {\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 <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Vendas {suffix}\n </Typography>\n\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 Qtd. de pedidos {suffix}\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {total}\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: OverviewDetailOrder) =>\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\n title={title}\n viewMode={viewMode}\n selectedYear={selectedYear}\n periodLabel={periodLabel}\n />\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 OverviewDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { VIEW_MODE_LABELS } from 'utils/analytics';\n\nimport { DetailHeaderProps } from './props';\n\nconst Header = ({\n title,\n viewMode,\n selectedYear,\n periodLabel,\n}: DetailHeaderProps) => {\n return (\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 {title}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n {VIEW_MODE_LABELS[viewMode]}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n {selectedYear}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {periodLabel}\n </Typography>\n </Stack>\n </Stack>\n );\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\n borderStyle: 'dashed',\n}));\n\nexport const MobileItemContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n\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 } from 'react';\n\nimport useDatagrid from 'hooks/useDatagrid';\nimport { Filter, GridQuery } from 'types/filter';\nimport { ViewMode } from 'utils/analytics';\n\nimport { getDateRange, getPeriodLabel, getPeriodSuffix } from './utils';\n\nconst useOverviewDetailState = (label: string, viewMode: ViewMode) => {\n const { page, perPage, search, handlePaginationModelChange, handleSearch } =\n useDatagrid();\n\n const { startDate, endDate } = useMemo(\n () => getDateRange(label, viewMode),\n [label, viewMode],\n );\n\n const periodLabel = useMemo(\n () => getPeriodLabel(label, viewMode),\n [label, viewMode],\n );\n\n const suffix = getPeriodSuffix(viewMode);\n\n const queryParams = useMemo((): GridQuery => {\n return {\n page,\n perPage,\n ...(search ? { search } : {}),\n filter: {\n operator: 'AND',\n groups: [\n {\n operator: 'AND',\n conditionals: [\n {\n fieldName: 'negotiationDate',\n conditional: 'GREATER_THAN_OR_EQUAL',\n value: [`${startDate}T00:00:00`],\n },\n {\n fieldName: 'negotiationDate',\n conditional: 'LESS_THAN_OR_EQUAL',\n value: [`${endDate}T23:59:59`],\n },\n ],\n },\n ],\n } as Filter,\n };\n }, [endDate, page, perPage, search, startDate]);\n\n const handlePaginationChange = useCallback(\n (newPage: number, rowsPerPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: rowsPerPage });\n },\n [handlePaginationModelChange],\n );\n\n return {\n page,\n perPage,\n periodLabel,\n suffix,\n queryParams,\n handleSearch,\n handlePaginationChange,\n };\n};\n\nexport default useOverviewDetailState;\n","import { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\n\nexport const getDateRange = (\n label: string,\n viewMode: ViewMode,\n): { startDate: string; endDate: string } => {\n const parts = label.split('-');\n\n if (viewMode === ViewMode.DAILY && parts.length === 3) {\n const date = `${parts[0]}-${parts[1]}-${parts[2]}`;\n return { startDate: date, endDate: date };\n }\n\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10);\n const lastDay = new Date(year, month, 0).getDate();\n\n return {\n startDate: `${parts[0]}-${parts[1]}-01`,\n endDate: `${parts[0]}-${parts[1]}-${String(lastDay).padStart(2, '0')}`,\n };\n};\n\nexport const getPeriodLabel = (label: string, viewMode: ViewMode): string => {\n const parts = label.split('-');\n const monthIndex = parseInt(parts[1], 10) - 1;\n const monthName = MONTH_FULL_LABELS[monthIndex] ?? '';\n\n if (viewMode === ViewMode.DAILY && parts.length === 3) {\n const day = parseInt(parts[2], 10);\n return `${monthName} - Dia ${day}`;\n }\n\n return monthName;\n};\n\nexport const getPeriodSuffix = (viewMode: ViewMode): string =>\n viewMode === ViewMode.MONTHLY ? 'no mês' : 'no dia';\n","import { useCallback, useMemo, useState } from 'react';\nimport 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';\nimport { ViewMode } from 'utils/analytics';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport SalesEvolutionChart from './Chart';\nimport SalesEvolutionLegend from './Legend';\nimport { SalesEvolutionProps, SeriesVisibility } from './props';\nimport SalesEvolutionSummary from './Summary';\n\nconst SalesEvolution = ({\n data,\n kpis,\n viewMode,\n selectedYear,\n editGoalAction,\n DetailComponent,\n}: SalesEvolutionProps) => {\n const [visibleSeries, setVisibleSeries] = useState<SeriesVisibility>({\n realized: true,\n forecast: true,\n goal: true,\n });\n\n const [detailOpen, setDetailOpen] = useState(false);\n const [selectedLabel, setSelectedLabel] = useState('');\n const [selectedTotalValue, setSelectedTotalValue] = useState(0);\n\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n\n const values = data.flatMap(item => [\n Number(item.realized) || 0,\n Number(item.forecast) || 0,\n Number(item.goal) || 0,\n ]);\n\n const max = Math.max(...values);\n\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n\n const step = max / 6;\n\n const ticks = Array.from({ length: 7 }, (_, i) => Math.round(step * i));\n\n return [...new Set(ticks)];\n }, [yDomain]);\n\n const handleToggleSeries = useCallback((key: keyof SeriesVisibility) => {\n setVisibleSeries(prev => ({ ...prev, [key]: !prev[key] }));\n }, []);\n\n const handleToggleSerie = useCallback(\n (toggle: string) => handleToggleSeries(toggle as keyof SeriesVisibility),\n [handleToggleSeries],\n );\n\n const handleBarClick = useCallback(\n (index: number) => {\n const item = data[index];\n if (!item) return;\n setSelectedLabel(item.label);\n setSelectedTotalValue(item.realized);\n setDetailOpen(true);\n },\n [data],\n );\n\n const handleDetailClose = useCallback(() => {\n setDetailOpen(false);\n }, []);\n\n const formatYAxis = useCallback((v: number) => fShortenNumber(v), []);\n\n return (\n <>\n <ChartCard>\n <CardHeader title=\"Evolução de vendas\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <SalesEvolutionSummary\n kpis={kpis}\n isMonthly={isMonthly}\n editGoalAction={editGoalAction}\n />\n </Stack>\n\n <SalesEvolutionChart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n onBarClick={handleBarClick}\n />\n\n <SalesEvolutionLegend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <SalesEvolutionSummary\n kpis={kpis}\n isMonthly={isMonthly}\n editGoalAction={editGoalAction}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n\n {selectedLabel && DetailComponent && (\n <DetailComponent\n open={detailOpen}\n onClose={handleDetailClose}\n label={selectedLabel}\n viewMode={viewMode}\n selectedYear={selectedYear}\n totalValue={selectedTotalValue}\n />\n )}\n </>\n );\n};\n\nexport default SalesEvolution;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport { ViewMode } from 'utils/analytics';\n\nimport DailyChart from './DailyView';\nimport MonthlyChart from './MonthlyView';\nimport { SalesEvolutionChartProps } from './props';\n\nconst SalesEvolutionChart = ({\n data,\n viewMode,\n visibleSeries,\n yDomain,\n yTicks,\n formatYAxis,\n onBarClick,\n}: SalesEvolutionChartProps) => {\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const shouldRotateLabels = useMemo(() => {\n if (!isMonthly || containerWidth === 0 || data.length === 0) return false;\n\n const slotPerBar = (containerWidth - 60) / data.length;\n\n return slotPerBar < 60;\n }, [containerWidth, data.length, isMonthly]);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n\n if (node) {\n setContainerWidth(node.clientWidth);\n\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n if (isMonthly) {\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <MonthlyChart\n data={data}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n shouldRotateLabels={shouldRotateLabels}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={onBarClick}\n viewMode={viewMode}\n />\n </ChartWrapper>\n );\n }\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <DailyChart\n data={data}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n viewMode={viewMode}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={onBarClick}\n />\n </ChartWrapper>\n );\n};\n\nexport default SalesEvolutionChart;\n","import { useCallback } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n Line,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { formatDayLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { DailyChartProps } from './props';\nimport SalesEvolutionTooltip from './Tooltip';\n\nconst DailyChart = ({\n data,\n visibleSeries,\n yDomain,\n yTicks,\n viewMode,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: DailyChartProps) => {\n const formatYAxis = useCallback((v: number) => fShortenNumber(v), []);\n\n return (\n <ResponsiveContainer width=\"100%\" height={350}>\n <ComposedChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={formatDayLabel}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={formatYAxis}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={<SalesEvolutionTooltip viewMode={viewMode} />} />\n\n <Bar\n dataKey=\"realized\"\n fill=\"transparent\"\n isAnimationActive={false}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n />\n\n {visibleSeries.goal && (\n <Line\n dataKey=\"goal\"\n name=\"Meta\"\n stroke={COLORS.goal}\n strokeWidth={2}\n strokeDasharray=\"8 4\"\n dot={false}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.realized && (\n <Line\n dataKey=\"realized\"\n name=\"Vendas\"\n stroke={COLORS.sales}\n strokeWidth={2}\n dot={{\n fill: COLORS.sales,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.forecast && (\n <Line\n dataKey=\"forecast\"\n name=\"Previsto\"\n stroke={COLORS.forecast}\n strokeWidth={2}\n strokeDasharray=\"6 3\"\n dot={{\n fill: COLORS.forecast,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n );\n};\n\nexport default DailyChart;\n","import { ReactNode } from 'react';\nimport { ComponentType } from 'react';\n\nimport {\n OverviewDetailBaseProps,\n RevenueGoalDashboardKpis,\n RevenueGoalDashboardSeriesItem,\n} from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface SalesEvolutionProps {\n data: RevenueGoalDashboardSeriesItem[];\n kpis?: RevenueGoalDashboardKpis;\n viewMode: ViewMode;\n selectedYear: number;\n editGoalAction?: ReactNode;\n DetailComponent?: ComponentType<OverviewDetailBaseProps>;\n}\n\nexport interface SeriesVisibility {\n realized: boolean;\n forecast: boolean;\n goal: boolean;\n}\n\nexport interface SummaryProps {\n kpis?: RevenueGoalDashboardKpis;\n isMonthly: boolean;\n editGoalAction?: ReactNode;\n}\n\nexport interface LegendProps {\n visibleSeries: SeriesVisibility;\n onToggleSerie: (toggle: keyof SeriesVisibility) => void;\n}\n\nexport const COLORS = {\n sales: '#22C55E',\n forecast: '#F59E0B',\n goal: '#212B36',\n} as const;\n","import { COLORS } from '../props';\n\nimport { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 6 * 2}\n height={height + 6}\n fill={COLORS.sales}\n opacity={0.16}\n rx={6}\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport { CustomTooltipProps, TooltipDataItem } from './props';\n\nconst SalesEvolutionTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n const data = payload[0].payload as TooltipDataItem;\n const realized = Number(data.realized) || 0;\n const forecast = Number(data.forecast) || 0;\n const goal = Number(data.goal) || 0;\n\n const achievement = goal > 0 ? (realized / goal) * 100 : 0;\n const gap = goal > realized ? goal - realized : 0;\n\n const timeUnitStr = isDaily ? 'no dia' : 'no mês';\n const goalStr = isDaily ? 'diária' : 'mensal';\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n const items = [\n {\n name: `Realizado ${timeUnitStr}`,\n value: fCurrencyBRL(realized),\n color: COLORS.sales,\n },\n {\n name: `Previsto ${timeUnitStr}`,\n value: fCurrencyBRL(forecast),\n color: COLORS.forecast,\n },\n {\n name: `Meta ${goalStr}`,\n value: fCurrencyBRL(goal),\n color: COLORS.goal,\n },\n {\n name: 'Atingimento',\n value: `${achievement.toFixed(0)}%`,\n color: '#00B8D9',\n },\n {\n name: `GAP ${timeUnitStr}`,\n value: fCurrencyBRL(gap),\n color: '#FF5630',\n },\n ];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 400 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {items.map((entry, index) => (\n <Stack\n key={index}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{entry.value}</Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default SalesEvolutionTooltip;\n","import { useMemo } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n Line,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { formatMonthLabel } from 'utils/chart';\nimport { fCurrencyBRL, fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { MonthlyChartProps } from './props';\nimport SalesEvolutionTooltip from './Tooltip';\n\nconst MonthlyChart = ({\n data,\n visibleSeries,\n yDomain,\n yTicks,\n shouldRotateLabels,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n viewMode,\n}: MonthlyChartProps) => {\n const barLabelConfig = useMemo(\n () =>\n shouldRotateLabels\n ? false\n : {\n position: 'top' as const,\n fontSize: 12,\n fill: '#212B36',\n formatter: (value: unknown) => fCurrencyBRL(Number(value)),\n },\n [shouldRotateLabels],\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height={300}>\n <ComposedChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={formatMonthLabel}\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={<SalesEvolutionTooltip viewMode={viewMode} />} />\n\n {visibleSeries.goal && (\n <Line\n dataKey=\"goal\"\n name=\"Meta\"\n stroke={COLORS.goal}\n strokeWidth={2}\n strokeDasharray=\"8 4\"\n dot={false}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.realized && (\n <Bar\n dataKey=\"realized\"\n name=\"Vendas\"\n fill={COLORS.sales}\n maxBarSize={48}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n label={barLabelConfig}\n />\n )}\n\n {visibleSeries.forecast && (\n <Line\n dataKey=\"forecast\"\n name=\"Previsto\"\n stroke={COLORS.forecast}\n strokeWidth={2}\n strokeDasharray=\"6 3\"\n dot={{\n fill: COLORS.forecast,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n );\n};\n\nexport default MonthlyChart;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst SalesEvolutionLegend = ({\n visibleSeries,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.realized}\n onChange={() => onToggleSerie('realized')}\n sx={{ '&.Mui-checked': { color: COLORS.sales } }}\n />\n }\n label=\"Vendas\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.forecast}\n onChange={() => onToggleSerie('forecast')}\n sx={{ '&.Mui-checked': { color: COLORS.forecast } }}\n />\n }\n label=\"Previsto\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.goal}\n onChange={() => onToggleSerie('goal')}\n sx={{ '&.Mui-checked': { color: COLORS.goal } }}\n />\n }\n label=\"Meta\"\n />\n </Stack>\n);\n\nexport default SalesEvolutionLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport InfoCircle from 'components/InfoCircle';\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL, fPercent } from 'utils/formatNumber';\n\nimport { SummaryProps } from './props';\n\nconst Summary = ({ kpis, isMonthly, editGoalAction }: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Previsto no {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(kpis?.forecast)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Realizado no {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(kpis?.realized)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Stack direction=\"row\" alignItems=\"center\" gap={3}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Meta {isMonthly ? 'anual' : 'mensal'}\n </Typography>\n\n {editGoalAction}\n </Stack>\n\n <Typography variant=\"subtitle2\">{fCurrencyBRL(kpis?.goal)}</Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Atingimento\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fPercent(kpis?.achievement ?? 0, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n })}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Stack direction=\"row\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n GAP do {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <InfoCircle\n text=\"Diferença entre o valor realizado e a meta. Um GAP significa que as vendas ainda estão abaixo do objetivo definido para o período.\"\n width={18}\n arrow\n sx={{ mt: -0.1 }}\n />\n </Stack>\n\n <Typography variant=\"subtitle2\">{fCurrencyBRL(kpis?.gap)}</Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default Summary;\n","import { useCallback, useMemo, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport { ViewMode } from 'utils/analytics';\n\nimport ForecastChart from './Chart';\nimport SalesForecastLegend from './Legend';\nimport { SalesForecastProps, VisibleSeries } from './props';\nimport SalesForecastSummary from './Summary';\n\nconst SalesForecast = ({ data, viewMode }: SalesForecastProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n realized: true,\n forecast: true,\n });\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const totals = useMemo(() => {\n const totalRealized = data.reduce(\n (acc, item) => acc + (item.realized_value ?? 0),\n 0,\n );\n\n const totalForecast = data.reduce(\n (acc, item) => acc + (item.forecast_value ?? 0),\n 0,\n );\n\n const percentage =\n totalForecast > 0 ? Math.round((totalRealized / totalForecast) * 100) : 0;\n return { totalRealized, totalForecast, percentage };\n }, [data]);\n\n return (\n <ChartCard>\n <CardHeader title=\"Previsto vs. Realizado (Positivação)\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <SalesForecastSummary\n totalForecast={totals.totalForecast}\n totalRealized={totals.totalRealized}\n percentage={totals.percentage}\n isMonthly={isMonthly}\n />\n </Stack>\n\n <ForecastChart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n />\n\n <SalesForecastLegend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <SalesForecastSummary\n totalForecast={totals.totalForecast}\n totalRealized={totals.totalRealized}\n percentage={totals.percentage}\n isMonthly={isMonthly}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n};\n\nexport default SalesForecast;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { ViewMode } from 'utils/analytics';\nimport { formatDayLabel, formatMonthLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport RealizedBackground from './RealizedBackground';\nimport SalesForecastTooltip from './Tooltip';\n\nconst ForecastChart = ({\n data,\n viewMode,\n visibleSeries,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n}: ChartProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\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 shouldRotateLabels = useMemo(() => {\n if (!isMonthly) return false;\n if (containerWidth === 0 || data.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / data.length;\n return slotPerBar < 80;\n }, [isMonthly, containerWidth, data.length]);\n\n const hasRealizedData = useMemo(\n () => data.some(item => item.realized_value > 0),\n [data],\n );\n\n const hasForecastData = useMemo(\n () => data.some(item => item.forecast_value > 0),\n [data],\n );\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const values = data.flatMap(item => [\n item.realized_value,\n item.forecast_value,\n ]);\n const max = Math.max(...values);\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 tickFormatter = useMemo(\n () => (isMonthly ? formatMonthLabel : formatDayLabel),\n [isMonthly],\n );\n\n const bothRendered =\n visibleSeries.realized &&\n hasRealizedData &&\n visibleSeries.forecast &&\n hasForecastData;\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <ResponsiveContainer width=\"100%\" height={250}>\n <BarChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n barGap={4}\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=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={tickFormatter}\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\n content={<SalesForecastTooltip viewMode={viewMode} />}\n cursor={false}\n />\n\n {visibleSeries.realized && hasRealizedData && (\n <Bar\n dataKey=\"realized_value\"\n name=\"Realizado\"\n fill={COLORS.realized}\n maxBarSize={32}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n background={\n <RealizedBackground\n activeBarIndex={activeBarIndex}\n bothRendered={bothRendered}\n />\n }\n />\n )}\n\n {visibleSeries.forecast && hasForecastData && (\n <Bar\n dataKey=\"forecast_value\"\n name=\"Previsto\"\n fill={COLORS.forecast}\n maxBarSize={32}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n {...(!visibleSeries.realized && {\n background: <BarBackground activeBarIndex={activeBarIndex} />,\n })}\n />\n )}\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default ForecastChart;\n","import { SalesForecastDashboardSeriesItem } from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface SalesForecastProps {\n data: SalesForecastDashboardSeriesItem[];\n viewMode: ViewMode;\n}\n\nexport interface VisibleSeries {\n realized: boolean;\n forecast: boolean;\n}\n\nexport interface SummaryProps {\n totalForecast: number;\n totalRealized: number;\n percentage: number;\n isMonthly: boolean;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport const COLORS = {\n realized: '#22C55E',\n forecast: '#F59E0B',\n} as const;\n","import { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\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=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default BarBackground;\n","import { RealizedBackgroundProps } from './props';\n\nconst RealizedBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n bothRendered,\n}: RealizedBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={bothRendered ? width * 2 + 4 + 12 : width + 12}\n height={height + 6}\n fill=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default RealizedBackground;\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst SalesForecastTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {payload.map((entry, index) => (\n <Stack\n key={entry.name}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{fCurrencyBRL(entry.value)}</Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default SalesForecastTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst SalesForecastLegend = ({ visibleSeries, onToggleSerie }: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.realized}\n onChange={() => onToggleSerie('realized')}\n sx={{ '&.Mui-checked': { color: COLORS.realized } }}\n />\n }\n label=\"Realizado\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.forecast}\n onChange={() => onToggleSerie('forecast')}\n sx={{ '&.Mui-checked': { color: COLORS.forecast } }}\n />\n }\n label=\"Previsto\"\n />\n </Stack>\n);\n\nexport default SalesForecastLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { SummaryProps } from './props';\n\nconst SalesForecastSummary = ({\n totalForecast,\n totalRealized,\n percentage,\n isMonthly,\n}: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Total previsto no ano' : 'Total previsto no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(totalForecast)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Total realizado no ano' : 'Total realizado no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(totalRealized)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Atingimento\n </Typography>\n\n <Typography variant=\"subtitle2\">{percentage}%</Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default SalesForecastSummary;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/props.ts","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/BarLabel.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/OrdersByType/Summary.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/Header.tsx","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/styles.ts","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/useOverviewDetailState.ts","../../../../src/components/Analytics/OverviewAnalytics/OverviewDetail/utils.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/DailyView.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/props.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Chart/MonthlyView.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesEvolution/Summary.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/index.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/props.ts","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/BarBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/RealizedBackground.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Chart/Tooltip.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Legend.tsx","../../../../src/components/Analytics/OverviewAnalytics/SalesForecast/Summary.tsx"],"names":["useCallback","useMemo","useState","CardContent","CardHeader","Stack","useRef","Bar","BarChart","CartesianGrid","ResponsiveContainer","Tooltip","XAxis","YAxis","COLORS","jsx","BarBackground","x","y","width","height","index","activeBarIndex","BarBackground_default","BarLabel","data","visibleSeries","isMonthly","shouldRotateLabels","item","total","BarLabel_default","Divider","Typography","jsxs","OrdersByTypeTooltip","active","payload","label","viewMode","isDaily","formattedLabel","parts","monthIndex","month","MONTH_FULL_LABELS","items","p","SimpleCard_default","entry","fCurrencyBRL","Tooltip_default","Chart","onMouseMove","onMouseLeave","onBarClick","containerWidth","setContainerWidth","observerRef","wrapperRefCallback","node","hasOrderData","hasQuotationData","yDomain","maxTotal","d","yTicks","max","step","_","i","quotationsOnTop","ordersIsTop","tickFormatter","formatMonthLabel","formatDayLabel","ChartWrapper","state","RotatedTick_default","v","fShortenNumber","Chart_default","Checkbox","FormControlLabel","OrdersByTypeLegend","onToggleSerie","Legend_default","Summary","ordersTotal","quotationsTotal","isMobile","useResponsive_default","Summary_default","Fragment","OrdersByType","selectedYear","DetailComponent","setVisibleSeries","setActiveBarIndex","detailOpen","setDetailOpen","selectedLabel","setSelectedLabel","selectedTotalValue","setSelectedTotalValue","handleToggleSerie","serie","prev","handleMouseMove","handleMouseLeave","handleBarClick","handleDetailClose","totals","acc","ChartCard","Result_default","EmptyState_default","OrdersByType_default","Link","Header","title","periodLabel","VIEW_MODE_LABELS","Header_default","MuiDivider","alpha","styled","StyledDivider","MobileItemContainer","theme","getOrderId","order","getPartnerName","buildPartnerLink","getOrderValue","getOrderDate","fDate","getOrderStatus","getDefaultMobileRender","OverviewDetail","open","onClose","totalValue","suffix","rows","isLoading","isFetching","page","perPage","onSearch","onPaginationChange","mobileItemSlot","content","SearchInput_default","DataView_default","row","header","Drawer_default","Modal_default","OverviewDetail_default","getDateRange","date","year","lastDay","getPeriodLabel","monthName","day","getPeriodSuffix","useOverviewDetailState","search","handlePaginationModelChange","handleSearch","useDatagrid_default","startDate","endDate","queryParams","handlePaginationChange","newPage","rowsPerPage","useOverviewDetailState_default","ComposedChart","Line","SalesEvolutionTooltip","realized","forecast","goal","achievement","gap","timeUnitStr","goalStr","DailyChart","formatYAxis","DailyView_default","MonthlyChart","barLabelConfig","value","MonthlyView_default","SalesEvolutionChart","SalesEvolutionLegend","kpis","editGoalAction","fPercent","InfoCircle_default","SalesEvolution","values","ticks","handleToggleSeries","key","toggle","SalesEvolution_default","RealizedBackground","bothRendered","RealizedBackground_default","SalesForecastTooltip","ForecastChart","hasRealizedData","hasForecastData","SalesForecastLegend","SalesForecastSummary","totalForecast","totalRealized","percentage","SalesForecast","SalesForecast_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport { ViewMode } from 'utils/analytics';\n\nimport Chart from './Chart';\nimport Legend from './Legend';\nimport { OrdersByTypeProps, VisibleSeries } from './props';\nimport Summary from './Summary';\n\nconst OrdersByType = ({\n data,\n viewMode,\n selectedYear,\n DetailComponent,\n}: OrdersByTypeProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n orders: true,\n quotations: true,\n });\n\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n\n const [detailOpen, setDetailOpen] = useState(false);\n const [selectedLabel, setSelectedLabel] = useState('');\n const [selectedTotalValue, setSelectedTotalValue] = useState(0);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const handleBarClick = useCallback(\n (index: number) => {\n const item = data[index];\n if (!item) return;\n setSelectedLabel(item.label);\n setSelectedTotalValue(item.order_value);\n setDetailOpen(true);\n },\n [data],\n );\n\n const handleDetailClose = useCallback(() => {\n setDetailOpen(false);\n }, []);\n\n const totals = useMemo(() => {\n const ordersTotal = data.reduce(\n (acc, item) => acc + (item.order_count ?? 0),\n 0,\n );\n const quotationsTotal = data.reduce(\n (acc, item) => acc + (item.quotation_count ?? 0),\n 0,\n );\n return { ordersTotal, quotationsTotal };\n }, [data]);\n\n return (\n <>\n <ChartCard>\n <CardHeader title=\"Quantidade de pedidos por tipo\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <Summary\n isMonthly={isMonthly}\n ordersTotal={totals.ordersTotal}\n quotationsTotal={totals.quotationsTotal}\n />\n </Stack>\n\n <Chart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={handleBarClick}\n />\n\n <Legend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <Summary\n isMonthly={isMonthly}\n ordersTotal={totals.ordersTotal}\n quotationsTotal={totals.quotationsTotal}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n\n {selectedLabel && DetailComponent && (\n <DetailComponent\n open={detailOpen}\n onClose={handleDetailClose}\n label={selectedLabel}\n viewMode={viewMode}\n selectedYear={selectedYear}\n totalValue={selectedTotalValue}\n />\n )}\n </>\n );\n};\n\nexport default OrdersByType;\n","import { ReactElement, useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { ViewMode } from 'utils/analytics';\nimport { formatDayLabel, formatMonthLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport BarLabel from './BarLabel';\nimport { ChartProps } from './props';\nimport OrdersByTypeTooltip from './Tooltip';\n\nconst Chart = ({\n data,\n viewMode,\n visibleSeries,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: ChartProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\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 shouldRotateLabels = useMemo(() => {\n if (!isMonthly) return false;\n if (containerWidth === 0 || data.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / data.length;\n return slotPerBar < 80;\n }, [isMonthly, containerWidth, data.length]);\n\n const hasOrderData = useMemo(\n () => data.some(d => (d.order_count ?? 0) > 0),\n [data],\n );\n\n const hasQuotationData = useMemo(\n () => data.some(d => (d.quotation_count ?? 0) > 0),\n [data],\n );\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const maxTotal = Math.max(\n ...data.map(d => (d.order_count ?? 0) + (d.quotation_count ?? 0)),\n );\n return [0, maxTotal > 0 ? maxTotal * 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 quotationsOnTop = visibleSeries.quotations && hasQuotationData;\n\n const ordersIsTop = visibleSeries.orders && hasOrderData && !quotationsOnTop;\n\n const tickFormatter = useMemo(\n () => (isMonthly ? formatMonthLabel : formatDayLabel),\n [isMonthly],\n );\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <ResponsiveContainer width=\"100%\" height={250}>\n <BarChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={tickFormatter}\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\n content={<OrdersByTypeTooltip viewMode={viewMode} />}\n cursor={false}\n />\n\n <Bar\n dataKey=\"order_count\"\n name=\"Vendas\"\n fill={COLORS.orders}\n stackId=\"orders\"\n maxBarSize={48}\n isAnimationActive={false}\n hide={!visibleSeries.orders}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n radius={ordersIsTop ? [4, 4, 0, 0] : undefined}\n {...(ordersIsTop && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: (\n <BarLabel\n data={data}\n visibleSeries={visibleSeries}\n isMonthly={isMonthly}\n shouldRotateLabels={shouldRotateLabels}\n />\n ) as unknown as ReactElement,\n },\n })}\n />\n\n <Bar\n dataKey=\"quotation_count\"\n name=\"Orçamentos\"\n fill={COLORS.quotations}\n stackId=\"orders\"\n maxBarSize={48}\n isAnimationActive={false}\n hide={!visibleSeries.quotations}\n radius={quotationsOnTop ? [4, 4, 0, 0] : undefined}\n {...(!visibleSeries.orders && {\n background: <BarBackground activeBarIndex={activeBarIndex} />,\n })}\n {...(quotationsOnTop && {\n label: {\n position: 'top' as const,\n fontSize: 11,\n fill: '#212B36',\n content: (\n <BarLabel\n data={data}\n visibleSeries={visibleSeries}\n isMonthly={isMonthly}\n shouldRotateLabels={shouldRotateLabels}\n />\n ) as unknown as ReactElement,\n },\n })}\n />\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default Chart;\n","import { ComponentType } from 'react';\n\nimport {\n OverviewDetailBaseProps,\n QuotationDashboardSeriesItem,\n} from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface OrdersByTypeProps {\n data: QuotationDashboardSeriesItem[];\n viewMode: ViewMode;\n selectedYear: number;\n DetailComponent?: ComponentType<OverviewDetailBaseProps>;\n}\n\nexport interface VisibleSeries {\n orders: boolean;\n quotations: boolean;\n}\n\nexport interface SummaryProps {\n isMonthly: boolean;\n ordersTotal: number;\n quotationsTotal: number;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport const COLORS = {\n orders: '#22C55E',\n quotations: '#0EA5E9',\n} as const;\n","import { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\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=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default BarBackground;\n","import { BarLabelProps } from './props';\n\nconst BarLabel = ({\n x = 0,\n y = 0,\n width = 0,\n index = 0,\n data,\n visibleSeries,\n isMonthly,\n shouldRotateLabels,\n}: BarLabelProps) => {\n if (!isMonthly || shouldRotateLabels) return null;\n\n const item = data[index];\n if (!item) return null;\n\n let total = 0;\n if (visibleSeries.orders) total += item.order_count ?? 0;\n if (visibleSeries.quotations) total += item.quotation_count ?? 0;\n if (!total) return null;\n\n return (\n <text\n x={x + width / 2}\n y={y - 8}\n textAnchor=\"middle\"\n fontSize={11}\n fill=\"#212B36\"\n >\n {total}\n </text>\n );\n};\n\nexport default BarLabel;\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst OrdersByTypeTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n const data = payload[0].payload;\n\n const items = [\n {\n name: 'Vendas',\n count: data.order_count ?? 0,\n value: data.order_value ?? 0,\n color: payload.find(p => p.dataKey === 'order_count')?.color ?? '#22C55E',\n },\n {\n name: 'Orçamentos',\n count: data.quotation_count ?? 0,\n value: data.quotation_value ?? 0,\n color:\n payload.find(p => p.dataKey === 'quotation_count')?.color ?? '#0EA5E9',\n },\n ];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 300 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {items.map((entry, index) => (\n <Stack\n key={entry.name}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={2}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\" color=\"text.disabled\" noWrap>\n {entry.count} {entry.count === 1 ? 'pedido' : 'pedidos'}&ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(entry.value)}\n </Typography>\n </Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default OrdersByTypeTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst OrdersByTypeLegend = ({ visibleSeries, onToggleSerie }: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.orders}\n onChange={() => onToggleSerie('orders')}\n sx={{ '&.Mui-checked': { color: COLORS.orders } }}\n />\n }\n label=\"Vendas\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.quotations}\n onChange={() => onToggleSerie('quotations')}\n sx={{ '&.Mui-checked': { color: COLORS.quotations } }}\n />\n }\n label=\"Orçamentos\"\n />\n </Stack>\n);\n\nexport default OrdersByTypeLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport useResponsive from 'hooks/useResponsive';\n\nimport { SummaryProps } from './props';\n\nconst Summary = ({ ordersTotal, quotationsTotal, isMonthly }: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Vendas no ano' : 'Vendas no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">{ordersTotal} vendas</Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Orçamentos no ano' : 'Orçamentos no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {quotationsTotal} orçamentos\n </Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default Summary;\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 { OverviewDetailOrder } from 'types/overviewAnalytics';\nimport { fCurrencyBRL } from 'utils/formatNumber';\nimport { fDate } from 'utils/formatTime';\n\nimport Header from './Header';\nimport { OverviewDetailProps } from './props';\nimport { MobileItemContainer, StyledDivider } from './styles';\n\nconst getOrderId = (order: OverviewDetailOrder) => (\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: OverviewDetailOrder,\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: OverviewDetailOrder) => (\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: OverviewDetailOrder) => (\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: OverviewDetailOrder) => (\n <Stack justifyContent=\"center\" height={1}>\n {order.status || '-'}\n </Stack>\n);\n\nconst getDefaultMobileRender = (order: OverviewDetailOrder) => (\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 OverviewDetail = ({\n open,\n onClose,\n title,\n viewMode,\n selectedYear,\n totalValue,\n periodLabel,\n suffix,\n rows,\n total,\n isLoading,\n isFetching,\n page,\n perPage,\n onSearch,\n onPaginationChange,\n buildPartnerLink,\n mobileItemSlot,\n}: OverviewDetailProps) => {\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 <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Vendas {suffix}\n </Typography>\n\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 Qtd. de pedidos {suffix}\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {total}\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: OverviewDetailOrder) =>\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\n title={title}\n viewMode={viewMode}\n selectedYear={selectedYear}\n periodLabel={periodLabel}\n />\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 OverviewDetail;\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { VIEW_MODE_LABELS } from 'utils/analytics';\n\nimport { DetailHeaderProps } from './props';\n\nconst Header = ({\n title,\n viewMode,\n selectedYear,\n periodLabel,\n}: DetailHeaderProps) => {\n return (\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 {title}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n {VIEW_MODE_LABELS[viewMode]}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" flexShrink={0}>\n {selectedYear}\n </Typography>\n &#x2022;\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n {periodLabel}\n </Typography>\n </Stack>\n </Stack>\n );\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\n borderStyle: 'dashed',\n}));\n\nexport const MobileItemContainer = styled(Stack)(({ theme }) => ({\n position: 'relative',\n\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 } from 'react';\n\nimport useDatagrid from 'hooks/useDatagrid';\nimport { Filter, GridQuery } from 'types/filter';\nimport { ViewMode } from 'utils/analytics';\n\nimport { getDateRange, getPeriodLabel, getPeriodSuffix } from './utils';\n\nconst useOverviewDetailState = (label: string, viewMode: ViewMode) => {\n const { page, perPage, search, handlePaginationModelChange, handleSearch } =\n useDatagrid();\n\n const { startDate, endDate } = useMemo(\n () => getDateRange(label, viewMode),\n [label, viewMode],\n );\n\n const periodLabel = useMemo(\n () => getPeriodLabel(label, viewMode),\n [label, viewMode],\n );\n\n const suffix = getPeriodSuffix(viewMode);\n\n const queryParams = useMemo((): GridQuery => {\n return {\n page,\n perPage,\n ...(search ? { search } : {}),\n filter: {\n operator: 'AND',\n groups: [\n {\n operator: 'AND',\n conditionals: [\n {\n fieldName: 'negotiationDate',\n conditional: 'GREATER_THAN_OR_EQUAL',\n value: [`${startDate}T00:00:00`],\n },\n {\n fieldName: 'negotiationDate',\n conditional: 'LESS_THAN_OR_EQUAL',\n value: [`${endDate}T23:59:59`],\n },\n ],\n },\n ],\n } as Filter,\n };\n }, [endDate, page, perPage, search, startDate]);\n\n const handlePaginationChange = useCallback(\n (newPage: number, rowsPerPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: rowsPerPage });\n },\n [handlePaginationModelChange],\n );\n\n return {\n page,\n perPage,\n periodLabel,\n suffix,\n queryParams,\n handleSearch,\n handlePaginationChange,\n };\n};\n\nexport default useOverviewDetailState;\n","import { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\n\nexport const getDateRange = (\n label: string,\n viewMode: ViewMode,\n): { startDate: string; endDate: string } => {\n const parts = label.split('-');\n\n if (viewMode === ViewMode.DAILY && parts.length === 3) {\n const date = `${parts[0]}-${parts[1]}-${parts[2]}`;\n return { startDate: date, endDate: date };\n }\n\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10);\n const lastDay = new Date(year, month, 0).getDate();\n\n return {\n startDate: `${parts[0]}-${parts[1]}-01`,\n endDate: `${parts[0]}-${parts[1]}-${String(lastDay).padStart(2, '0')}`,\n };\n};\n\nexport const getPeriodLabel = (label: string, viewMode: ViewMode): string => {\n const parts = label.split('-');\n const monthIndex = parseInt(parts[1], 10) - 1;\n const monthName = MONTH_FULL_LABELS[monthIndex] ?? '';\n\n if (viewMode === ViewMode.DAILY && parts.length === 3) {\n const day = parseInt(parts[2], 10);\n return `${monthName} - Dia ${day}`;\n }\n\n return monthName;\n};\n\nexport const getPeriodSuffix = (viewMode: ViewMode): string =>\n viewMode === ViewMode.MONTHLY ? 'no mês' : 'no dia';\n","import { useCallback, useMemo, useState } from 'react';\nimport 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';\nimport { ViewMode } from 'utils/analytics';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport SalesEvolutionChart from './Chart';\nimport SalesEvolutionLegend from './Legend';\nimport { SalesEvolutionProps, SeriesVisibility } from './props';\nimport SalesEvolutionSummary from './Summary';\n\nconst SalesEvolution = ({\n data,\n kpis,\n viewMode,\n selectedYear,\n editGoalAction,\n DetailComponent,\n}: SalesEvolutionProps) => {\n const [visibleSeries, setVisibleSeries] = useState<SeriesVisibility>({\n realized: true,\n forecast: true,\n goal: true,\n });\n\n const [detailOpen, setDetailOpen] = useState(false);\n const [selectedLabel, setSelectedLabel] = useState('');\n const [selectedTotalValue, setSelectedTotalValue] = useState(0);\n\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n\n const values = data.flatMap(item => [\n Number(item.realized) || 0,\n Number(item.forecast) || 0,\n Number(item.goal) || 0,\n ]);\n\n const max = Math.max(...values);\n\n return [0, max > 0 ? max * 1.15 : 1];\n }, [data]);\n\n const yTicks = useMemo(() => {\n const [, max] = yDomain;\n\n const step = max / 6;\n\n const ticks = Array.from({ length: 7 }, (_, i) => Math.round(step * i));\n\n return [...new Set(ticks)];\n }, [yDomain]);\n\n const handleToggleSeries = useCallback((key: keyof SeriesVisibility) => {\n setVisibleSeries(prev => ({ ...prev, [key]: !prev[key] }));\n }, []);\n\n const handleToggleSerie = useCallback(\n (toggle: string) => handleToggleSeries(toggle as keyof SeriesVisibility),\n [handleToggleSeries],\n );\n\n const handleBarClick = useCallback(\n (index: number) => {\n const item = data[index];\n if (!item) return;\n setSelectedLabel(item.label);\n setSelectedTotalValue(item.realized);\n setDetailOpen(true);\n },\n [data],\n );\n\n const handleDetailClose = useCallback(() => {\n setDetailOpen(false);\n }, []);\n\n const formatYAxis = useCallback((v: number) => fShortenNumber(v), []);\n\n return (\n <>\n <ChartCard>\n <CardHeader title=\"Evolução de vendas\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <SalesEvolutionSummary\n kpis={kpis}\n isMonthly={isMonthly}\n editGoalAction={editGoalAction}\n />\n </Stack>\n\n <SalesEvolutionChart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n onBarClick={handleBarClick}\n />\n\n <SalesEvolutionLegend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <SalesEvolutionSummary\n kpis={kpis}\n isMonthly={isMonthly}\n editGoalAction={editGoalAction}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n\n {selectedLabel && DetailComponent && (\n <DetailComponent\n open={detailOpen}\n onClose={handleDetailClose}\n label={selectedLabel}\n viewMode={viewMode}\n selectedYear={selectedYear}\n totalValue={selectedTotalValue}\n />\n )}\n </>\n );\n};\n\nexport default SalesEvolution;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport { ViewMode } from 'utils/analytics';\n\nimport DailyChart from './DailyView';\nimport MonthlyChart from './MonthlyView';\nimport { SalesEvolutionChartProps } from './props';\n\nconst SalesEvolutionChart = ({\n data,\n viewMode,\n visibleSeries,\n yDomain,\n yTicks,\n formatYAxis,\n onBarClick,\n}: SalesEvolutionChartProps) => {\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n const [containerWidth, setContainerWidth] = useState(0);\n\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const shouldRotateLabels = useMemo(() => {\n if (!isMonthly || containerWidth === 0 || data.length === 0) return false;\n\n const slotPerBar = (containerWidth - 60) / data.length;\n\n return slotPerBar < 60;\n }, [containerWidth, data.length, isMonthly]);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const wrapperRefCallback = useCallback((node: HTMLDivElement | null) => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = null;\n }\n\n if (node) {\n setContainerWidth(node.clientWidth);\n\n observerRef.current = new ResizeObserver(() =>\n setContainerWidth(node.clientWidth),\n );\n observerRef.current.observe(node);\n }\n }, []);\n\n if (isMonthly) {\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <MonthlyChart\n data={data}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n shouldRotateLabels={shouldRotateLabels}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={onBarClick}\n viewMode={viewMode}\n />\n </ChartWrapper>\n );\n }\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <DailyChart\n data={data}\n visibleSeries={visibleSeries}\n yDomain={yDomain}\n yTicks={yTicks}\n formatYAxis={formatYAxis}\n viewMode={viewMode}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n onBarClick={onBarClick}\n />\n </ChartWrapper>\n );\n};\n\nexport default SalesEvolutionChart;\n","import { useCallback } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n Line,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { formatDayLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { DailyChartProps } from './props';\nimport SalesEvolutionTooltip from './Tooltip';\n\nconst DailyChart = ({\n data,\n visibleSeries,\n yDomain,\n yTicks,\n viewMode,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n}: DailyChartProps) => {\n const formatYAxis = useCallback((v: number) => fShortenNumber(v), []);\n\n return (\n <ResponsiveContainer width=\"100%\" height={350}>\n <ComposedChart\n data={data}\n margin={{ top: 20, right: 10, bottom: 0, left: 20 }}\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={formatDayLabel}\n />\n\n <YAxis\n axisLine={false}\n tickLine={false}\n tick={{ fontSize: 12, fill: '#637381' }}\n tickFormatter={formatYAxis}\n domain={yDomain}\n ticks={yTicks}\n />\n\n <Tooltip content={<SalesEvolutionTooltip viewMode={viewMode} />} />\n\n <Bar\n dataKey=\"realized\"\n fill=\"transparent\"\n isAnimationActive={false}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n />\n\n {visibleSeries.goal && (\n <Line\n dataKey=\"goal\"\n name=\"Meta\"\n stroke={COLORS.goal}\n strokeWidth={2}\n strokeDasharray=\"8 4\"\n dot={false}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.realized && (\n <Line\n dataKey=\"realized\"\n name=\"Vendas\"\n stroke={COLORS.sales}\n strokeWidth={2}\n dot={{\n fill: COLORS.sales,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.forecast && (\n <Line\n dataKey=\"forecast\"\n name=\"Previsto\"\n stroke={COLORS.forecast}\n strokeWidth={2}\n strokeDasharray=\"6 3\"\n dot={{\n fill: COLORS.forecast,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n );\n};\n\nexport default DailyChart;\n","import { ReactNode } from 'react';\nimport { ComponentType } from 'react';\n\nimport {\n OverviewDetailBaseProps,\n RevenueGoalDashboardKpis,\n RevenueGoalDashboardSeriesItem,\n} from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface SalesEvolutionProps {\n data: RevenueGoalDashboardSeriesItem[];\n kpis?: RevenueGoalDashboardKpis;\n viewMode: ViewMode;\n selectedYear: number;\n editGoalAction?: ReactNode;\n DetailComponent?: ComponentType<OverviewDetailBaseProps>;\n}\n\nexport interface SeriesVisibility {\n realized: boolean;\n forecast: boolean;\n goal: boolean;\n}\n\nexport interface SummaryProps {\n kpis?: RevenueGoalDashboardKpis;\n isMonthly: boolean;\n editGoalAction?: ReactNode;\n}\n\nexport interface LegendProps {\n visibleSeries: SeriesVisibility;\n onToggleSerie: (toggle: keyof SeriesVisibility) => void;\n}\n\nexport const COLORS = {\n sales: '#22C55E',\n forecast: '#F59E0B',\n goal: '#212B36',\n} as const;\n","import { COLORS } from '../props';\n\nimport { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={width + 6 * 2}\n height={height + 6}\n fill={COLORS.sales}\n opacity={0.16}\n rx={6}\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport { CustomTooltipProps, TooltipDataItem } from './props';\n\nconst SalesEvolutionTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n const data = payload[0].payload as TooltipDataItem;\n const realized = Number(data.realized) || 0;\n const forecast = Number(data.forecast) || 0;\n const goal = Number(data.goal) || 0;\n\n const achievement = goal > 0 ? (realized / goal) * 100 : 0;\n const gap = goal > realized ? goal - realized : 0;\n\n const timeUnitStr = isDaily ? 'no dia' : 'no mês';\n const goalStr = isDaily ? 'diária' : 'mensal';\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n const items = [\n {\n name: `Realizado ${timeUnitStr}`,\n value: fCurrencyBRL(realized),\n color: COLORS.sales,\n },\n {\n name: `Previsto ${timeUnitStr}`,\n value: fCurrencyBRL(forecast),\n color: COLORS.forecast,\n },\n {\n name: `Meta ${goalStr}`,\n value: fCurrencyBRL(goal),\n color: COLORS.goal,\n },\n {\n name: 'Atingimento',\n value: `${achievement.toFixed(0)}%`,\n color: '#00B8D9',\n },\n {\n name: `GAP ${timeUnitStr}`,\n value: fCurrencyBRL(gap),\n color: '#FF5630',\n },\n ];\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 400 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {items.map((entry, index) => (\n <Stack\n key={index}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{entry.value}</Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default SalesEvolutionTooltip;\n","import { useMemo } from 'react';\nimport {\n Bar,\n CartesianGrid,\n ComposedChart,\n Line,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { formatMonthLabel } from 'utils/chart';\nimport { fCurrencyBRL, fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { MonthlyChartProps } from './props';\nimport SalesEvolutionTooltip from './Tooltip';\n\nconst MonthlyChart = ({\n data,\n visibleSeries,\n yDomain,\n yTicks,\n shouldRotateLabels,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n onBarClick,\n viewMode,\n}: MonthlyChartProps) => {\n const barLabelConfig = useMemo(\n () =>\n shouldRotateLabels\n ? false\n : {\n position: 'top' as const,\n fontSize: 12,\n fill: '#212B36',\n formatter: (value: unknown) => fCurrencyBRL(Number(value)),\n },\n [shouldRotateLabels],\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height={300}>\n <ComposedChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n style={{ cursor: 'pointer' }}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n onClick={state => {\n if (state?.activeTooltipIndex != null) {\n onBarClick?.(Number(state.activeTooltipIndex));\n }\n }}\n >\n <CartesianGrid\n vertical={false}\n strokeDasharray=\"3 3\"\n stroke=\"#F4F6F8\"\n />\n\n <XAxis\n dataKey=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={formatMonthLabel}\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={<SalesEvolutionTooltip viewMode={viewMode} />} />\n\n {visibleSeries.goal && (\n <Line\n dataKey=\"goal\"\n name=\"Meta\"\n stroke={COLORS.goal}\n strokeWidth={2}\n strokeDasharray=\"8 4\"\n dot={false}\n isAnimationActive={false}\n />\n )}\n\n {visibleSeries.realized && (\n <Bar\n dataKey=\"realized\"\n name=\"Vendas\"\n fill={COLORS.sales}\n maxBarSize={48}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n background={<BarBackground activeBarIndex={activeBarIndex} />}\n label={barLabelConfig}\n />\n )}\n\n {visibleSeries.forecast && (\n <Line\n dataKey=\"forecast\"\n name=\"Previsto\"\n stroke={COLORS.forecast}\n strokeWidth={2}\n strokeDasharray=\"6 3\"\n dot={{\n fill: COLORS.forecast,\n r: 4,\n strokeWidth: 0,\n }}\n isAnimationActive={false}\n />\n )}\n </ComposedChart>\n </ResponsiveContainer>\n );\n};\n\nexport default MonthlyChart;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst SalesEvolutionLegend = ({\n visibleSeries,\n onToggleSerie,\n}: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.realized}\n onChange={() => onToggleSerie('realized')}\n sx={{ '&.Mui-checked': { color: COLORS.sales } }}\n />\n }\n label=\"Vendas\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.forecast}\n onChange={() => onToggleSerie('forecast')}\n sx={{ '&.Mui-checked': { color: COLORS.forecast } }}\n />\n }\n label=\"Previsto\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.goal}\n onChange={() => onToggleSerie('goal')}\n sx={{ '&.Mui-checked': { color: COLORS.goal } }}\n />\n }\n label=\"Meta\"\n />\n </Stack>\n);\n\nexport default SalesEvolutionLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport InfoCircle from 'components/InfoCircle';\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL, fPercent } from 'utils/formatNumber';\n\nimport { SummaryProps } from './props';\n\nconst Summary = ({ kpis, isMonthly, editGoalAction }: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Previsto no {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(kpis?.forecast)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Realizado no {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(kpis?.realized)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Stack direction=\"row\" alignItems=\"center\" gap={3}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Meta {isMonthly ? 'anual' : 'mensal'}\n </Typography>\n\n {editGoalAction}\n </Stack>\n\n <Typography variant=\"subtitle2\">{fCurrencyBRL(kpis?.goal)}</Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Atingimento\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fPercent(kpis?.achievement ?? 0, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n })}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Stack direction=\"row\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n GAP do {isMonthly ? 'ano' : 'mês'}\n </Typography>\n\n <InfoCircle\n text=\"Diferença entre o valor realizado e a meta. Um GAP significa que as vendas ainda estão abaixo do objetivo definido para o período.\"\n width={18}\n arrow\n sx={{ mt: -0.1 }}\n />\n </Stack>\n\n <Typography variant=\"subtitle2\">{fCurrencyBRL(kpis?.gap)}</Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default Summary;\n","import { useCallback, useMemo, useState } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport { CategoricalChartFunc } from 'recharts/types/chart/types';\n\nimport { ChartCard } from 'components/Analytics/ChartStyles';\nimport EmptyState from 'components/Analytics/EmptyState';\nimport Result from 'components/Result';\nimport { ViewMode } from 'utils/analytics';\n\nimport ForecastChart from './Chart';\nimport SalesForecastLegend from './Legend';\nimport { SalesForecastProps, VisibleSeries } from './props';\nimport SalesForecastSummary from './Summary';\n\nconst SalesForecast = ({ data, viewMode }: SalesForecastProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\n const [visibleSeries, setVisibleSeries] = useState<VisibleSeries>({\n realized: true,\n forecast: true,\n });\n const [activeBarIndex, setActiveBarIndex] = useState<number | null>(null);\n\n const handleToggleSerie = useCallback((serie: keyof VisibleSeries) => {\n setVisibleSeries(prev => ({ ...prev, [serie]: !prev[serie] }));\n }, []);\n\n const handleMouseMove = useCallback<CategoricalChartFunc>(state => {\n if (state?.activeTooltipIndex != null) {\n setActiveBarIndex(Number(state.activeTooltipIndex));\n }\n }, []);\n\n const handleMouseLeave = useCallback<CategoricalChartFunc>(\n () => setActiveBarIndex(null),\n [],\n );\n\n const totals = useMemo(() => {\n const totalRealized = data.reduce(\n (acc, item) => acc + (item.realized_value ?? 0),\n 0,\n );\n\n const totalForecast = data.reduce(\n (acc, item) => acc + (item.forecast_value ?? 0),\n 0,\n );\n\n const percentage =\n totalForecast > 0 ? Math.round((totalRealized / totalForecast) * 100) : 0;\n return { totalRealized, totalForecast, percentage };\n }, [data]);\n\n return (\n <ChartCard>\n <CardHeader title=\"Previsto vs. Realizado (Positivação)\" />\n\n <CardContent>\n <Result isEmpty={data.length === 0} empty={<EmptyState />}>\n <Stack gap={3}>\n <Stack display={{ xs: 'none', md: 'block' }}>\n <SalesForecastSummary\n totalForecast={totals.totalForecast}\n totalRealized={totals.totalRealized}\n percentage={totals.percentage}\n isMonthly={isMonthly}\n />\n </Stack>\n\n <ForecastChart\n data={data}\n viewMode={viewMode}\n visibleSeries={visibleSeries}\n activeBarIndex={activeBarIndex}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n />\n\n <SalesForecastLegend\n visibleSeries={visibleSeries}\n onToggleSerie={handleToggleSerie}\n />\n\n <Stack display={{ xs: 'block', md: 'none' }}>\n <SalesForecastSummary\n totalForecast={totals.totalForecast}\n totalRealized={totals.totalRealized}\n percentage={totals.percentage}\n isMonthly={isMonthly}\n />\n </Stack>\n </Stack>\n </Result>\n </CardContent>\n </ChartCard>\n );\n};\n\nexport default SalesForecast;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\n\nimport { ChartWrapper } from 'components/Analytics/ChartStyles';\nimport RotatedTick from 'components/Analytics/RotatedTick';\nimport { ViewMode } from 'utils/analytics';\nimport { formatDayLabel, formatMonthLabel } from 'utils/chart';\nimport { fShortenNumber } from 'utils/formatNumber';\n\nimport { COLORS } from '../props';\n\nimport BarBackground from './BarBackground';\nimport { ChartProps } from './props';\nimport RealizedBackground from './RealizedBackground';\nimport SalesForecastTooltip from './Tooltip';\n\nconst ForecastChart = ({\n data,\n viewMode,\n visibleSeries,\n activeBarIndex,\n onMouseMove,\n onMouseLeave,\n}: ChartProps) => {\n const isMonthly = viewMode === ViewMode.MONTHLY;\n\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 shouldRotateLabels = useMemo(() => {\n if (!isMonthly) return false;\n if (containerWidth === 0 || data.length === 0) return false;\n const slotPerBar = (containerWidth - 60) / data.length;\n return slotPerBar < 80;\n }, [isMonthly, containerWidth, data.length]);\n\n const hasRealizedData = useMemo(\n () => data.some(item => item.realized_value > 0),\n [data],\n );\n\n const hasForecastData = useMemo(\n () => data.some(item => item.forecast_value > 0),\n [data],\n );\n\n const yDomain = useMemo((): [number, number] => {\n if (!data.length) return [0, 1];\n const values = data.flatMap(item => [\n item.realized_value,\n item.forecast_value,\n ]);\n const max = Math.max(...values);\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 tickFormatter = useMemo(\n () => (isMonthly ? formatMonthLabel : formatDayLabel),\n [isMonthly],\n );\n\n const bothRendered =\n visibleSeries.realized &&\n hasRealizedData &&\n visibleSeries.forecast &&\n hasForecastData;\n\n return (\n <ChartWrapper ref={wrapperRefCallback}>\n <ResponsiveContainer width=\"100%\" height={250}>\n <BarChart\n data={data}\n margin={{\n top: 20,\n right: 10,\n bottom: shouldRotateLabels ? -90 : 0,\n left: 20,\n }}\n barCategoryGap=\"20%\"\n barGap={4}\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=\"label\"\n axisLine={false}\n tickLine={false}\n {...(shouldRotateLabels && { interval: 0, height: 120 })}\n tick={\n shouldRotateLabels ? (\n <RotatedTick />\n ) : (\n { fontSize: 12, fill: '#637381' }\n )\n }\n tickFormatter={tickFormatter}\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\n content={<SalesForecastTooltip viewMode={viewMode} />}\n cursor={false}\n />\n\n {visibleSeries.realized && hasRealizedData && (\n <Bar\n dataKey=\"realized_value\"\n name=\"Realizado\"\n fill={COLORS.realized}\n maxBarSize={32}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n background={\n <RealizedBackground\n activeBarIndex={activeBarIndex}\n bothRendered={bothRendered}\n />\n }\n />\n )}\n\n {visibleSeries.forecast && hasForecastData && (\n <Bar\n dataKey=\"forecast_value\"\n name=\"Previsto\"\n fill={COLORS.forecast}\n maxBarSize={32}\n isAnimationActive={false}\n radius={[4, 4, 0, 0]}\n {...(!visibleSeries.realized && {\n background: <BarBackground activeBarIndex={activeBarIndex} />,\n })}\n />\n )}\n </BarChart>\n </ResponsiveContainer>\n </ChartWrapper>\n );\n};\n\nexport default ForecastChart;\n","import { SalesForecastDashboardSeriesItem } from 'types/overviewAnalytics';\nimport { ViewMode } from 'utils/analytics';\n\nexport interface SalesForecastProps {\n data: SalesForecastDashboardSeriesItem[];\n viewMode: ViewMode;\n}\n\nexport interface VisibleSeries {\n realized: boolean;\n forecast: boolean;\n}\n\nexport interface SummaryProps {\n totalForecast: number;\n totalRealized: number;\n percentage: number;\n isMonthly: boolean;\n}\n\nexport interface LegendProps {\n visibleSeries: VisibleSeries;\n onToggleSerie: (serie: keyof VisibleSeries) => void;\n}\n\nexport const COLORS = {\n realized: '#22C55E',\n forecast: '#F59E0B',\n} as const;\n","import { BarBackgroundComponentProps } from './props';\n\nconst BarBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n}: BarBackgroundComponentProps) => {\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=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default BarBackground;\n","import { RealizedBackgroundProps } from './props';\n\nconst RealizedBackground = ({\n x = 0,\n y = 0,\n width = 0,\n height = 0,\n index,\n activeBarIndex,\n bothRendered,\n}: RealizedBackgroundProps) => {\n if (activeBarIndex !== index) return null;\n\n return (\n <rect\n x={x - 6}\n y={y}\n width={bothRendered ? width * 2 + 4 + 12 : width + 12}\n height={height + 6}\n fill=\"#919EAB\"\n opacity={0.16}\n rx={6}\n />\n );\n};\n\nexport default RealizedBackground;\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 { ViewMode } from 'utils/analytics';\nimport { MONTH_FULL_LABELS } from 'utils/chart';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { CustomTooltipProps } from './props';\n\nconst SalesForecastTooltip = ({\n active,\n payload,\n label,\n viewMode,\n}: CustomTooltipProps) => {\n if (!active || !payload?.length) return null;\n\n const isDaily = viewMode === ViewMode.DAILY;\n\n let formattedLabel = String(label);\n const parts = formattedLabel.split('-');\n\n if (parts.length >= 2) {\n const monthIndex = parseInt(parts[1], 10) - 1;\n const month = MONTH_FULL_LABELS[monthIndex];\n\n if (isDaily && parts.length === 3) {\n formattedLabel = `${parseInt(parts[2], 10)} de ${month} de ${parts[0]}`;\n } else if (!isDaily) {\n formattedLabel = `${month} de ${parts[0]}`;\n }\n }\n\n return (\n <SimpleCard minWidth={{ xs: 'auto', sm: 200 }} p={1} gap={1}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {formattedLabel}\n </Typography>\n\n <Divider />\n\n <Stack>\n {payload.map((entry, index) => (\n <Stack\n key={entry.name}\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 {entry.name}\n </Typography>\n </Stack>\n\n <Typography variant=\"body2\">{fCurrencyBRL(entry.value)}</Typography>\n </Stack>\n ))}\n </Stack>\n </SimpleCard>\n );\n};\n\nexport default SalesForecastTooltip;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\n\nimport { COLORS, LegendProps } from './props';\n\nconst SalesForecastLegend = ({ visibleSeries, onToggleSerie }: LegendProps) => (\n <Stack direction=\"row\" justifyContent=\"center\" flexWrap=\"wrap\" gap={1}>\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.realized}\n onChange={() => onToggleSerie('realized')}\n sx={{ '&.Mui-checked': { color: COLORS.realized } }}\n />\n }\n label=\"Realizado\"\n />\n\n <FormControlLabel\n control={\n <Checkbox\n checked={visibleSeries.forecast}\n onChange={() => onToggleSerie('forecast')}\n sx={{ '&.Mui-checked': { color: COLORS.forecast } }}\n />\n }\n label=\"Previsto\"\n />\n </Stack>\n);\n\nexport default SalesForecastLegend;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport useResponsive from 'hooks/useResponsive';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { SummaryProps } from './props';\n\nconst SalesForecastSummary = ({\n totalForecast,\n totalRealized,\n percentage,\n isMonthly,\n}: SummaryProps) => {\n const isMobile = useResponsive('down', 'md');\n\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n alignItems={{ xs: 'flex-start', md: 'center' }}\n flexWrap=\"wrap\"\n gap={3}\n >\n {isMobile && (\n <Divider\n orientation=\"horizontal\"\n flexItem\n sx={{\n borderStyle: 'dashed',\n mx: -3,\n }}\n />\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Total previsto no ano' : 'Total previsto no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(totalForecast)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {isMonthly ? 'Total realizado no ano' : 'Total realizado no mês'}\n </Typography>\n\n <Typography variant=\"subtitle2\">\n {fCurrencyBRL(totalRealized)}\n </Typography>\n </Stack>\n\n <Divider\n orientation={isMobile ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: isMobile ? 'solid' : 'dashed' }}\n />\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Atingimento\n </Typography>\n\n <Typography variant=\"subtitle2\">{percentage}%</Typography>\n </Stack>\n </Stack>\n );\n};\n\nexport default SalesForecastSummary;\n"]}