@zydon/common 2.9.36 → 2.9.38

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 (180) hide show
  1. package/dist/{chunk-IFYEQTIR.js → chunk-3RFXFIBL.js} +2 -2
  2. package/dist/chunk-5GXRPVV5.js +9 -0
  3. package/dist/{chunk-XT2AH5G2.js → chunk-5ZMA4N4W.js} +1 -1
  4. package/dist/{chunk-ALVCWIRN.js → chunk-ANH46M6K.js} +3 -3
  5. package/dist/{chunk-A2LPDSRW.js → chunk-BK36QQTT.js} +2 -2
  6. package/dist/chunk-CB4KDKZY.js +6 -0
  7. package/dist/chunk-CB4KDKZY.js.map +1 -0
  8. package/dist/{chunk-CK6Q4FGI.js → chunk-COAGQGZA.js} +2 -2
  9. package/dist/{chunk-5N6Y3FIM.js → chunk-CZ5Y53WA.js} +2 -2
  10. package/dist/{chunk-U2XWJMVE.js → chunk-EICUAMNN.js} +2 -2
  11. package/dist/chunk-H762KDPN.js +11 -0
  12. package/dist/chunk-H762KDPN.js.map +1 -0
  13. package/dist/{chunk-LKX2OZSP.js → chunk-JBYYU67F.js} +3 -3
  14. package/dist/{chunk-FCC5IEAW.js → chunk-JKAMT5TC.js} +2 -2
  15. package/dist/chunk-K34AZXX4.js +8 -0
  16. package/dist/chunk-K34AZXX4.js.map +1 -0
  17. package/dist/{chunk-IWNQZ4DU.js → chunk-KDSM2AIT.js} +2 -2
  18. package/dist/chunk-KJJDGCL4.js +8 -0
  19. package/dist/chunk-KJJDGCL4.js.map +1 -0
  20. package/dist/{chunk-XA36N32L.js → chunk-L6CMWQCC.js} +2 -2
  21. package/dist/{chunk-HPBLOHGU.js → chunk-MJFCJZFD.js} +2 -2
  22. package/dist/chunk-MTJT2RGA.js +8 -0
  23. package/dist/chunk-MTJT2RGA.js.map +1 -0
  24. package/dist/{chunk-W6J37DOS.js → chunk-MY4CZ5PC.js} +2 -2
  25. package/dist/{chunk-XECFL7W6.js → chunk-NJLLYK4S.js} +2 -2
  26. package/dist/{chunk-QZVNKHIE.js → chunk-PMKM67BB.js} +2 -2
  27. package/dist/{chunk-3GERPUNO.js → chunk-PVHLAOT2.js} +5 -5
  28. package/dist/chunk-Q2R3X4EB.js +8 -0
  29. package/dist/chunk-Q2R3X4EB.js.map +1 -0
  30. package/dist/{chunk-C3JTGVAS.js → chunk-R7BNGTUT.js} +2 -2
  31. package/dist/{chunk-K6O5RVKC.js → chunk-TAA5KCEG.js} +3 -3
  32. package/dist/{chunk-772DOKEN.js → chunk-TS7QZPD6.js} +2 -2
  33. package/dist/{chunk-7IHZRIIU.js → chunk-TSEVZMIE.js} +2 -2
  34. package/dist/chunk-UYYDORSQ.js +6 -0
  35. package/dist/chunk-UYYDORSQ.js.map +1 -0
  36. package/dist/{chunk-4FRN4I7H.js → chunk-VELCTMU2.js} +2 -2
  37. package/dist/{chunk-BUDIH7D2.js → chunk-VPZL6AIF.js} +2 -2
  38. package/dist/{chunk-7CMID2IK.js → chunk-W27CC2AQ.js} +5 -5
  39. package/dist/{chunk-ZYFY6BCA.js → chunk-YHOVSR7P.js} +2 -2
  40. package/dist/chunk-YJYS2LQQ.js +12 -0
  41. package/dist/chunk-YJYS2LQQ.js.map +1 -0
  42. package/dist/chunk-Z3HTIXB2.js +6 -0
  43. package/dist/chunk-Z3HTIXB2.js.map +1 -0
  44. package/dist/components/Accordion/index.js +2 -2
  45. package/dist/components/ActionButton/index.js +2 -2
  46. package/dist/components/Analytics/Carts/index.d.ts +29 -0
  47. package/dist/components/Analytics/Carts/index.js +61 -0
  48. package/dist/components/Analytics/Carts/index.js.map +1 -0
  49. package/dist/components/Analytics/OrderProjection/index.d.ts +6 -78
  50. package/dist/components/Analytics/OrderProjection/index.js +29 -29
  51. package/dist/components/Analytics/OrderProjection/index.js.map +1 -1
  52. package/dist/components/Analytics/OverviewAnalytics/index.d.ts +6 -3
  53. package/dist/components/Analytics/OverviewAnalytics/index.js +21 -20
  54. package/dist/components/Analytics/OverviewAnalytics/index.js.map +1 -1
  55. package/dist/components/Analytics/PartnerAnalysis/index.d.ts +9 -6
  56. package/dist/components/Analytics/PartnerAnalysis/index.js +25 -24
  57. package/dist/components/Analytics/PartnerAnalysis/index.js.map +1 -1
  58. package/dist/components/Analytics/index.js +7 -7
  59. package/dist/components/Analytics/index.js.map +1 -1
  60. package/dist/components/Autocomplete/index.js +2 -2
  61. package/dist/components/AvatarButton/index.js +5 -5
  62. package/dist/components/BuilderLayout/index.js +2 -2
  63. package/dist/components/BuilderSidebar/index.js +1 -1
  64. package/dist/components/BulkEditModal/index.js +4 -4
  65. package/dist/components/CardBrand/index.js +1 -1
  66. package/dist/components/ColorPickerInput/index.js +2 -2
  67. package/dist/components/ColumnResizeHandle/index.d.ts +3 -2
  68. package/dist/components/ColumnResizeHandle/index.js +1 -1
  69. package/dist/components/Common/index.js +4 -4
  70. package/dist/components/CopyButton/index.js +2 -2
  71. package/dist/components/DataView/index.js +5 -5
  72. package/dist/components/DataViewMobileItem/index.d.ts +6 -0
  73. package/dist/components/DataViewMobileItem/index.js +2 -0
  74. package/dist/components/DataViewMobileItem/index.js.map +1 -0
  75. package/dist/components/DragButton/index.js +2 -2
  76. package/dist/components/Drawer/index.js +2 -2
  77. package/dist/components/DynamicDataView/index.js +8 -8
  78. package/dist/components/EasyCropModal/index.js +3 -3
  79. package/dist/components/Error/index.js +1 -1
  80. package/dist/components/ExpandableGroup/index.js +1 -1
  81. package/dist/components/FileUpload/index.js +6 -6
  82. package/dist/components/Filters/index.js +4 -4
  83. package/dist/components/FrameSkeleton/index.js +1 -1
  84. package/dist/components/HelpButton/index.js +2 -2
  85. package/dist/components/Icon/index.js +1 -1
  86. package/dist/components/IconButton/index.js +2 -2
  87. package/dist/components/ImageCropModal/index.js +2 -2
  88. package/dist/components/Incrementer/index.js +2 -2
  89. package/dist/components/InfoCircle/index.js +2 -2
  90. package/dist/components/ListBundles/index.js +2 -2
  91. package/dist/components/MenuItem/index.js +2 -10
  92. package/dist/components/MenuItem/index.js.map +1 -1
  93. package/dist/components/Modal/index.js +2 -2
  94. package/dist/components/MoreMenu/index.js +4 -11
  95. package/dist/components/MoreMenu/index.js.map +1 -1
  96. package/dist/components/NotFound/index.js +1 -1
  97. package/dist/components/PasswordRules/index.js +1 -1
  98. package/dist/components/PopoverSelect/index.js +1 -1
  99. package/dist/components/PortalBrandImage/index.js +1 -1
  100. package/dist/components/SearchInput/index.js +2 -2
  101. package/dist/components/SelectList/index.js +4 -4
  102. package/dist/components/SelectableCards/index.js +3 -3
  103. package/dist/components/SeoPreview/index.js +1 -1
  104. package/dist/components/StateDisplay/index.js +2 -2
  105. package/dist/components/StepUpDialog/index.js +1 -1
  106. package/dist/components/Steps/index.js +1 -1
  107. package/dist/components/StyledTab/index.js +1 -1
  108. package/dist/components/SwapList/index.js +2 -2
  109. package/dist/components/ToggleTheme/index.js +3 -3
  110. package/dist/components/WebhookCard/index.js +1 -1
  111. package/dist/components/carousel/index.js +2 -2
  112. package/dist/components/form/Address/index.js +3 -3
  113. package/dist/components/form/Autocomplete/index.js +3 -3
  114. package/dist/components/form/ColorPicker/index.js +2 -2
  115. package/dist/components/form/FileUpload/index.js +6 -6
  116. package/dist/components/form/Incrementer/index.js +2 -2
  117. package/dist/components/form/Password/index.js +1 -1
  118. package/dist/components/form/SelectList/index.js +4 -4
  119. package/dist/components/form/SelectableCards/index.js +3 -3
  120. package/dist/components/form/Webhook/index.js +4 -4
  121. package/dist/components/lightbox/index.js +1 -1
  122. package/dist/components/table/index.js +2 -2
  123. package/dist/hooks/useCartsFilters.d.ts +8 -0
  124. package/dist/hooks/useCartsFilters.js +5 -0
  125. package/dist/hooks/useCartsFilters.js.map +1 -0
  126. package/dist/hooks/useOrderProjectionFilters.d.ts +4 -58
  127. package/dist/hooks/useOrderProjectionFilters.js +3 -3
  128. package/dist/hooks/useResizableColumns.d.ts +1 -1
  129. package/dist/hooks/useResizableColumns.js +1 -1
  130. package/dist/hooks/useThemeToggle.js +3 -3
  131. package/dist/index.js +3 -3
  132. package/dist/theme/theme-provider.js +3 -3
  133. package/dist/types/carts.d.ts +8 -0
  134. package/dist/types/carts.js +2 -0
  135. package/dist/types/carts.js.map +1 -0
  136. package/dist/types/orderProjection.d.ts +3 -2
  137. package/dist/types/partnerAnalysis.d.ts +3 -2
  138. package/dist/useCartsFilters-9eb738ab.d.ts +219 -0
  139. package/dist/useOrderProjectionFilters-5c1162d5.d.ts +297 -0
  140. package/dist/{useResizableColumns.types-6611ee0b.d.ts → useResizableColumns.types-33105448.d.ts} +4 -3
  141. package/dist/utils/buildExportPayload.js +1 -1
  142. package/dist/utils/carts.d.ts +20 -0
  143. package/dist/utils/carts.js +3 -0
  144. package/dist/utils/carts.js.map +1 -0
  145. package/dist/utils/orderProjection.d.ts +2 -1
  146. package/dist/utils/orderProjection.js +1 -1
  147. package/package.json +5 -1
  148. package/dist/chunk-7WUAJEER.js +0 -6
  149. package/dist/chunk-7WUAJEER.js.map +0 -1
  150. package/dist/chunk-OONF23Z2.js +0 -6
  151. package/dist/chunk-OONF23Z2.js.map +0 -1
  152. package/dist/chunk-SRP3UTFW.js +0 -9
  153. package/dist/chunk-TQFKLNTU.js +0 -8
  154. package/dist/chunk-TQFKLNTU.js.map +0 -1
  155. package/dist/orderProjection-c6f4f71e.d.ts +0 -182
  156. /package/dist/{chunk-IFYEQTIR.js.map → chunk-3RFXFIBL.js.map} +0 -0
  157. /package/dist/{chunk-SRP3UTFW.js.map → chunk-5GXRPVV5.js.map} +0 -0
  158. /package/dist/{chunk-XT2AH5G2.js.map → chunk-5ZMA4N4W.js.map} +0 -0
  159. /package/dist/{chunk-ALVCWIRN.js.map → chunk-ANH46M6K.js.map} +0 -0
  160. /package/dist/{chunk-A2LPDSRW.js.map → chunk-BK36QQTT.js.map} +0 -0
  161. /package/dist/{chunk-CK6Q4FGI.js.map → chunk-COAGQGZA.js.map} +0 -0
  162. /package/dist/{chunk-5N6Y3FIM.js.map → chunk-CZ5Y53WA.js.map} +0 -0
  163. /package/dist/{chunk-U2XWJMVE.js.map → chunk-EICUAMNN.js.map} +0 -0
  164. /package/dist/{chunk-LKX2OZSP.js.map → chunk-JBYYU67F.js.map} +0 -0
  165. /package/dist/{chunk-FCC5IEAW.js.map → chunk-JKAMT5TC.js.map} +0 -0
  166. /package/dist/{chunk-IWNQZ4DU.js.map → chunk-KDSM2AIT.js.map} +0 -0
  167. /package/dist/{chunk-XA36N32L.js.map → chunk-L6CMWQCC.js.map} +0 -0
  168. /package/dist/{chunk-HPBLOHGU.js.map → chunk-MJFCJZFD.js.map} +0 -0
  169. /package/dist/{chunk-W6J37DOS.js.map → chunk-MY4CZ5PC.js.map} +0 -0
  170. /package/dist/{chunk-XECFL7W6.js.map → chunk-NJLLYK4S.js.map} +0 -0
  171. /package/dist/{chunk-QZVNKHIE.js.map → chunk-PMKM67BB.js.map} +0 -0
  172. /package/dist/{chunk-3GERPUNO.js.map → chunk-PVHLAOT2.js.map} +0 -0
  173. /package/dist/{chunk-C3JTGVAS.js.map → chunk-R7BNGTUT.js.map} +0 -0
  174. /package/dist/{chunk-K6O5RVKC.js.map → chunk-TAA5KCEG.js.map} +0 -0
  175. /package/dist/{chunk-772DOKEN.js.map → chunk-TS7QZPD6.js.map} +0 -0
  176. /package/dist/{chunk-7IHZRIIU.js.map → chunk-TSEVZMIE.js.map} +0 -0
  177. /package/dist/{chunk-4FRN4I7H.js.map → chunk-VELCTMU2.js.map} +0 -0
  178. /package/dist/{chunk-BUDIH7D2.js.map → chunk-VPZL6AIF.js.map} +0 -0
  179. /package/dist/{chunk-7CMID2IK.js.map → chunk-W27CC2AQ.js.map} +0 -0
  180. /package/dist/{chunk-ZYFY6BCA.js.map → chunk-YHOVSR7P.js.map} +0 -0
@@ -0,0 +1,61 @@
1
+ import { e, c as c$1, f, a as a$c, d as d$2 } from '../../../chunk-Z3HTIXB2.js';
2
+ import { i, h as h$2 } from '../../../chunk-BBVOF2BY.js';
3
+ import { a as a$b, b as b$1, c as c$3 } from '../../../chunk-EICUAMNN.js';
4
+ import { a as a$2 } from '../../../chunk-Q2R3X4EB.js';
5
+ import { a as a$f } from '../../../chunk-DRGARBKB.js';
6
+ import '../../../chunk-55XSPNSX.js';
7
+ import { a as a$5 } from '../../../chunk-YJYS2LQQ.js';
8
+ import { a as a$4 } from '../../../chunk-PUMCHXCD.js';
9
+ import { a as a$6 } from '../../../chunk-H762KDPN.js';
10
+ import { a as a$a } from '../../../chunk-CZ5Y53WA.js';
11
+ import { d as d$1, h as h$1, m } from '../../../chunk-2W5FGLTC.js';
12
+ import { h, c as c$2 } from '../../../chunk-OF6623HG.js';
13
+ import { a as a$7 } from '../../../chunk-MTJT2RGA.js';
14
+ import { d } from '../../../chunk-W27CC2AQ.js';
15
+ import '../../../chunk-R7BNGTUT.js';
16
+ import { a as a$g } from '../../../chunk-4F2NKGF6.js';
17
+ import '../../../chunk-PRWQQJDL.js';
18
+ import '../../../chunk-SB7J43ND.js';
19
+ import '../../../chunk-6U5LS7MP.js';
20
+ import '../../../chunk-JUAHRU5E.js';
21
+ import '../../../chunk-NIQW2J3M.js';
22
+ import '../../../chunk-XUDTPZHF.js';
23
+ import '../../../chunk-UVPQR2Q2.js';
24
+ import '../../../chunk-RBTYTONM.js';
25
+ import '../../../chunk-I4PPSW36.js';
26
+ import { a as a$e } from '../../../chunk-YHOVSR7P.js';
27
+ import { a } from '../../../chunk-CO2KQFUN.js';
28
+ import { a as a$3 } from '../../../chunk-5ZMA4N4W.js';
29
+ import '../../../chunk-Z6YXPKWP.js';
30
+ import '../../../chunk-F65ZXAGV.js';
31
+ import { a as a$9 } from '../../../chunk-E3R7W7GK.js';
32
+ import { a as a$1 } from '../../../chunk-KJJDGCL4.js';
33
+ import '../../../chunk-UWTX4JMW.js';
34
+ import { b } from '../../../chunk-TXJ45CNA.js';
35
+ import { e as e$1 } from '../../../chunk-ERLI5GAP.js';
36
+ import { a as a$8 } from '../../../chunk-LQRRMVFN.js';
37
+ import '../../../chunk-Y66XXBB3.js';
38
+ import { a as a$d } from '../../../chunk-GGJJ3II3.js';
39
+ import '../../../chunk-HFDGIEZC.js';
40
+ import { createContext, memo, useMemo, useContext, useState, useCallback } from 'react';
41
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
42
+ import ie from '@mui/material/CardContent';
43
+ import le from '@mui/material/CardHeader';
44
+ import u from '@mui/material/Stack';
45
+ import p from '@mui/material/Typography';
46
+ import Tt from '@mui/material/Divider';
47
+ import { styled } from '@mui/material/styles';
48
+ import Ee from '@mui/material/Button';
49
+ import mo from '@mui/material/Card';
50
+ import go from '@mui/material/Link';
51
+ import Ce from '@mui/material/Checkbox';
52
+ import be from '@mui/material/FormControlLabel';
53
+ import { ResponsiveContainer, BarChart, XAxis, YAxis, Bar } from 'recharts';
54
+ import Ar from '@mui/material/Badge';
55
+ import jo from '@mui/material/Chip';
56
+ import nr from '@mui/material/Radio';
57
+
58
+ var Zt=createContext(null),Qe=({adapters:t,slots:e,children:o})=>{let r=a$1(),i=useMemo(()=>({adapters:t,slots:e,filters:r}),[t,e,r]);return jsx(Zt.Provider,{value:i,children:o})},c=()=>{let t=useContext(Zt);if(!t)throw new Error("useCartsContext must be used within a CartsProvider");return t},A=()=>c().filters;var Je=({label:t,value:e})=>jsxs(u,{direction:"row",justifyContent:"space-between",gap:1.5,overflow:"hidden",children:[jsxs(p,{variant:"body2",color:"text.secondary",flexShrink:0,children:[t,":"]}),jsx(p,{component:"div",variant:"body2",fontWeight:500,color:"text.primary",noWrap:!0,children:e})]}),w=memo(Je);var eo=({cart:t})=>{let{slots:e}=c();return jsxs(u,{gap:3,children:[jsxs(u,{gap:.5,children:[jsx(w,{label:"Criado em",value:t.created_at?d$1(t.created_at,"DD/MM/YYYY [\xE0s] HH:mm"):"-"}),jsx(w,{label:"Usu\xE1rio",value:e.renderDetailUserName(t)}),jsx(w,{label:"Tipo de usu\xE1rio",value:f(t.user?.profile)||"-"}),jsx(w,{label:"\xDAltima atualiza\xE7\xE3o",value:h$1(t.updated_at,"instant")??"-"})]}),jsx(Tt,{sx:{borderStyle:"dashed"}}),jsxs(u,{gap:.5,children:[jsx(w,{label:"Cliente",value:jsxs(u,{alignItems:"flex-end",minWidth:0,children:[e.renderDetailPartnerName(t),t.partner?.tax_id&&jsx(p,{variant:"body2",fontSize:13,color:"text.secondary",maxWidth:"100%",noWrap:!0,children:i(t.partner.tax_id)})]})}),jsx(w,{label:"E-mail",value:t.partner?.email||"-"}),jsx(w,{label:"Contato",value:t.partner?.phone?h$2(t.partner.phone):"-"})]}),jsx(Tt,{sx:{borderStyle:"dashed"}}),jsxs(u,{gap:.5,children:[jsx(w,{label:"Forma de pagamento",value:t.payment_method?.name||"-"}),jsx(w,{label:"Subtotal",value:t.total!=null?h(t.total):"-"})]})]})},ee=eo;var oe=styled(u)(({theme:t})=>({position:"sticky",borderBottom:`1px solid ${t.palette.divider}`}));var no=t=>!t.product_name&&!t.product_sku&&!t.unit_name?jsx(p,{variant:"body2",color:"text.primary",noWrap:!0,children:"-"}):jsxs(u,{justifyContent:"center",height:1,children:[t.product_name&&jsx(p,{variant:"body2",color:"text.primary",noWrap:!0,children:t.product_name}),jsxs(u,{direction:"row",alignItems:"center",gap:1,children:[jsxs(p,{variant:"caption",color:"text.secondary",noWrap:!0,children:["C\xF3d.: ",t.product_sku||"-"]}),jsx(Tt,{orientation:"vertical",flexItem:!0,sx:{borderStyle:"dashed"}}),jsxs(p,{variant:"caption",color:"text.secondary",noWrap:!0,children:["Unidade: ",t.unit_name||"-"]})]})]}),io=(t,e$1)=>jsx(a$7,{children:jsxs(u,{gap:1,children:[e$1.renderProductImage(t),t.product_name&&jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:t.product_name||"-"}),jsxs(u,{children:[jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:["C\xF3d.: ",t.product_sku||"-"]}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Unidade: ",t.unit_name||"-"]}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Valor:"," ",jsx(p,{component:"span",variant:"subtitle2",color:"text.primary",noWrap:!0,children:e(t.price)})]}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:["Qtd. de itens:"," ",jsx(p,{component:"span",variant:"subtitle2",color:"text.primary",noWrap:!0,children:t.quantity})]})]}),jsx(u,{children:jsxs(p,{variant:"body2",color:"text.secondary",children:["Subtotal:"," ",jsx(p,{component:"span",variant:"subtitle2",color:"text.primary",children:e(t.total)})]})})]})},t.id),lo=({cart:t})=>{let{slots:e$1}=c();return jsx(d,{title:"Itens",header:jsxs(u,{direction:"row",alignItems:"center",gap:1,children:[jsx(p,{variant:"subtitle2",color:"text.primary",children:"Itens"}),jsx(a$4,{variant:"soft",color:"primary",children:t.items.length||0})]}),headerProps:{p:{xs:3,md:0},pb:{md:1.5}},columns:[{field:"image",headerName:"Imagem",flex:1,sortable:!1,align:"center",headerAlign:"center",renderCell:({row:o})=>jsx(Fragment,{children:e$1.renderProductImage(o)})},{field:"product_name",headerName:"Produtos",flex:3,sortable:!1,renderCell:({row:o})=>no(o)},{field:"price",headerName:"Valor",flex:1,sortable:!1,renderCell:({row:o})=>e(o.price)},{field:"quantity",headerName:"Qtd. de itens",flex:1,sortable:!1},{field:"total",headerName:"Subtotal",flex:1,sortable:!1,renderCell:({row:o})=>e(o.total)}],rows:t.items,mobileSlots:jsx(oe,{}),mobileRender:o=>io(o,e$1),hideFooter:!0,disableRowSelectionOnClick:!0,disableColumnFilter:!0,disableColumnMenu:!0,disableColumnSorting:!0,disableColumnResize:!0,disableColumnPinning:!0,containerProps:{height:"100%",sx:{p:{xs:0,md:3}}}})},re=lo;var kt=styled(mo)({width:"100%",height:"fit-content",boxShadow:"none"}),ne=styled(Ee)(({theme:t})=>({background:t.palette.success.main,color:t.palette.success.contrastText,"&:hover":{background:t.palette.success.dark}}));var uo=({cart:t})=>{let{slots:e}=c(),o=t?.partner?.phone?.replace(/\D/g,""),r=useCallback(()=>{let i=e.buildRecoveryMessage(t),m=o?`https://wa.me/${o}?text=${encodeURIComponent(i)}`:`https://wa.me/?text=${encodeURIComponent(i)}`;window.open(m,"_blank","noopener,noreferrer");},[t,o,e]);return jsxs(u,{display:"grid",gridTemplateColumns:{xs:"1fr",md:"2fr 1fr"},gap:3,children:[jsx(u,{position:{md:"relative"},sx:{order:{xs:2,md:1}},overflow:"hidden",children:jsx(u,{position:{md:"absolute"},minHeight:{md:0},sx:{inset:{md:0}},children:jsx(re,{cart:t})})}),jsxs(u,{gap:3,sx:{order:{xs:1,md:2}},overflow:"hidden",children:[jsxs(kt,{variant:"outlined",children:[jsx(le,{title:jsx(p,{variant:"subtitle2",color:"text.primary",children:"Informa\xE7\xF5es"})}),jsx(ie,{children:jsx(ee,{cart:t})})]}),jsxs(kt,{variant:"outlined",sx:{order:{xs:1,md:2}},children:[jsx(le,{title:jsx(p,{variant:"subtitle2",color:"text.primary",children:"Recuperar carrinho abandonado"})}),jsx(ie,{children:jsxs(u,{gap:3,children:[jsx(p,{variant:"body2",color:"text.secondary",children:"Envie uma mensagem pelo WhatsApp para o cliente com o link deste carrinho abandonado e incentive a finaliza\xE7\xE3o da compra."}),jsxs(u,{gap:1.5,children:[jsx(ne,{variant:"contained",startIcon:jsx(a$3,{icon:"WHATSAPP"}),size:"small",onClick:r,children:"Enviar carrinho por WhatsApp"}),e.renderRecoveryActions?.(t)]})]})})]})]})]})},fo=uo;var yo=({status:t})=>{let e=c$1[t];return jsx(a$4,{color:e?.color,sx:{width:"fit-content"},children:e?.label})},ct=yo;styled(go)(({theme:t})=>({fontWeight:600,color:t.palette.primary.main,cursor:"pointer","&:hover":{textDecoration:"underline"}}));var pe=styled(u)(({theme:t})=>({position:"sticky",padding:t.spacing(1.5),background:t.palette.background.neutral}));var xo=(t,e)=>jsx(u,{justifyContent:"center",height:1,children:t?.partner?.name?jsxs(Fragment,{children:[e.renderPartnerName(t),jsx(p,{variant:"body2",fontSize:13,color:"text.secondary",children:t?.partner?.tax_id?i(t?.partner?.tax_id):"-"})]}):"-"}),So=(t,e)=>jsx(u,{justifyContent:"center",height:1,children:t?.user?.name?jsxs(Fragment,{children:[e.renderUserName(t),jsx(p,{variant:"body2",fontSize:13,color:"text.secondary",children:t?.user?.profile==="PARTNER"?"Cliente":"Vendedor"})]}):"-"}),vo=t=>jsx(u,{justifyContent:"center",height:1,children:t?.created_at?jsxs(Fragment,{children:[jsx(p,{variant:"body2",color:"text.primary",children:d$1(t?.created_at,"DD/MM/YYYY")}),jsx(p,{variant:"body2",color:"text.secondary",children:d$1(t?.created_at,"[\xE0s] HH:mm")})]}):"-"}),ko=t=>jsx(u,{justifyContent:"center",height:1,children:t?.updated_at?jsx(p,{variant:"body2",color:"text.primary",noWrap:!0,children:h$1(t?.updated_at,"instant")}):"-"}),Po=t=>jsx(u,{justifyContent:"center",height:1,children:jsx(ct,{status:t?.status})}),me=t=>{let e=()=>{let r=t?.partner?.phone?.replace(/\D/g,"");window.open(`https://wa.me/${r}`,"_blank");},o=()=>{window.location.href=`mailto:${t?.partner?.email}`;};return jsx(a$5,{actions:jsxs(Fragment,{children:[jsx(a$6,{onClick:e,disabled:!t?.partner?.phone,children:"Enviar mensagem por WhatsApp"}),jsx(a$6,{onClick:o,disabled:!t?.partner?.email,children:"Enviar e-mail"})]})},t.id)},To=(t,e$1)=>jsxs(a$7,{children:[e$1.renderCartLink(t,jsxs(u,{gap:1,children:[jsxs(u,{children:[jsx(p,{variant:"body2",color:"text.secondary",children:"Nome do cliente"}),jsx(p,{variant:"subtitle2",color:"text.primary",children:t?.partner?.name||"-"})]}),jsxs(u,{direction:"row",alignItems:"center",gap:1,children:[jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"Usu\xE1rio"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:t?.user?.name||"-"})]}),jsx(Tt,{orientation:"vertical",flexItem:!0,sx:{borderStyle:"dashed",mx:3}}),jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"Tipo de usu\xE1rio"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:f(t.user?.profile)||"-"})]})]}),jsxs(u,{direction:"row",alignItems:"center",gap:1,children:[jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"Valor"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:e(t?.amount_value)})]}),jsx(Tt,{orientation:"vertical",flexItem:!0,sx:{borderStyle:"dashed",mx:3}}),jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"Qtd. de itens"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:t?.item_quantity??0})]})]}),jsxs(u,{direction:"row",alignItems:"center",gap:1,children:[jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"Criado em"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:t?.created_at?d$1(t?.created_at,"DD/MM/YYYY"):"-"})]}),jsx(Tt,{orientation:"vertical",flexItem:!0,sx:{borderStyle:"dashed",mx:3}}),jsxs(u,{flex:1,overflow:"hidden",children:[jsx(p,{variant:"body2",color:"text.secondary",noWrap:!0,children:"\xDAltima atualiza\xE7\xE3o"}),jsx(p,{variant:"subtitle2",color:"text.primary",noWrap:!0,children:h$1(t?.updated_at,"instant")??"-"})]})]}),jsxs(u,{gap:.5,children:[jsx(p,{variant:"body2",color:"text.secondary",children:"Status"}),t?.status?jsx(ct,{status:t.status}):jsx(p,{variant:"subtitle2",color:"text.primary",children:"-"})]})]})),jsx(u,{position:"absolute",top:10,right:10,children:me(t)})]},t.id),wo=({apiRef:t,carts:e$1,isLoading:o,isFetching:r,isFetchingNextPage:i,onRowsScrollEnd:m})=>{let{slots:n,filters:l}=c(),{sortModel:f,handleSortModelChange:y}=l;return jsx(d,{apiRef:t,title:"Lista de carrinhos",header:jsx(p,{variant:"h6",color:"text.primary",children:"Lista de carrinhos"}),columns:[{field:"partner_name",headerName:"Nome do cliente",flex:1,renderCell:({row:s})=>xo(s,n)},{field:"user_name",headerName:"Usu\xE1rio",flex:1,renderCell:({row:s})=>So(s,n)},{field:"amount_value",headerName:"Valor",flex:1,renderCell:({row:s})=>e(s.amount_value)},{field:"item_quantity",headerName:"Qtd. de itens",flex:1,renderCell:({row:s})=>s.item_quantity},{field:"created_at",headerName:"Criado em",flex:1,renderCell:({row:s})=>vo(s)},{field:"status",headerName:"Status",flex:1,renderCell:({row:s})=>Po(s)},{field:"updated_at",headerName:"\xDAltima atualiza\xE7\xE3o",flex:1,renderCell:({row:s})=>ko(s)},{field:"actions",type:"actions",headerName:"A\xE7\xF5es",maxWidth:80,getActions:s=>[me(s.row)]}],rows:e$1,mobileSlots:jsx(pe,{children:jsx(p,{variant:"body2",fontWeight:600,color:"text.secondary",children:"Carrinhos"})}),mobileRender:s=>To(s,n),loading:o,fetching:r&&!i,fetchingNextPage:i,onRowsScrollEnd:m,scrollEndThreshold:600,onRowDoubleClick:({row:s})=>{n.onOpenCart(s);},disableRowSelectionOnClick:!0,disableColumnMenu:!0,sortingMode:"server",sortModel:f,onSortModelChange:y,slots:{noRowsOverlay:()=>jsx(Fragment,{children:n.renderEmptyState()})}})},_o=memo(wo);var M=3,de=(t,e)=>{let o=t===e.findIndex(i=>i.data[0]>0),r=t===e.map(i=>i.data[0]>0).lastIndexOf(!0);return o&&r?[M,M,M,M]:o?[M,0,0,M]:r?[0,M,M,0]:[0,0,0,0]};var Ao=["#22C55E","#FF5630"],Io="#E5E7EB",Ro=({series:t,isZero:e})=>e?jsx(Bar,{dataKey:"empty",stackId:"stack",fill:Io,stroke:"none",radius:3,isAnimationActive:!1,"data-testid":"bar-empty"}):jsx(Fragment,{children:t.map((o,r)=>jsx(Bar,{dataKey:o.name,stackId:"stack",fill:Ao[r],stroke:"none",radius:de(r,t),isAnimationActive:!1,"data-testid":`bar-${r}`},r))}),ue=Ro;var fe=styled(mo)(({theme:t})=>({width:"100%",height:"auto",border:`1px solid ${t.palette.divider}`,boxShadow:"none",overflow:"visible"}));var $o=({title:t,subtitle:e,legend:o,series:r,isFetching:i})=>{let m=useMemo(()=>r.every(l=>l.data.every(f=>f===0)),[r]),n=useMemo(()=>{if(m)return [{empty:100}];let l=r.reduce((y,g)=>y+(g.data[0]??0),0),f={};return r.forEach(y=>{f[y.name]=l>0?y.data[0]/l*100:0;}),[f]},[r,m]);return jsxs(fe,{variant:"outlined",children:[jsx(le,{title:t}),jsx(ie,{children:jsxs(u,{gap:2,children:[jsxs(u,{gap:1,children:[e,jsx(a$2,{active:i,children:jsx(ResponsiveContainer,{width:"100%",height:24,style:{pointerEvents:"none"},children:jsxs(BarChart,{data:n,layout:"vertical",stackOffset:"none",margin:{top:0,right:0,bottom:0,left:0},barCategoryGap:0,children:[jsx(XAxis,{type:"number",hide:!0,domain:[0,100]}),jsx(YAxis,{type:"category",hide:!0}),jsx(ue,{series:r,isZero:m})]})})})]}),o]})})]})},ft=memo($o);var _=t=>c$2(t,{maximumFractionDigits:2,...t>0&&t<100?{minimumFractionDigits:2}:{}});var qo=({active:t,abandoned:e,isFetching:o})=>{let[r,i]=useState(!0),[m,n]=useState(!0),l=r?t?.amount_value??0:0,f=m?e?.amount_value??0:0,y=l+f,g=[{name:"Ativos",data:[l]},{name:"Abandonados",data:[f]}];return jsx(ft,{title:"Valor em carrinhos",subtitle:jsx(p,{variant:"subtitle2",fontSize:20,fontWeight:700,children:h(y)}),legend:jsxs(u,{children:[jsxs(u,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:1.5,sx:{mt:-1},children:[jsx(be,{label:"Ativos",control:jsx(Ce,{name:"active",size:"small",checked:r,onChange:(s,k)=>i(k),sx:{"&.Mui-checked":{color:"#22C55E"}}})}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,title:`${_(t?.amount_percentage??0)} | ${h(t?.amount_value??0)}`,children:[_(t?.amount_percentage??0),"\u2002",jsx(p,{component:"span",variant:"body2",color:"text.primary",children:h(t?.amount_value??0)})]})]}),jsxs(u,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:1.5,sx:{mt:-1},children:[jsx(be,{label:"Abandonados",control:jsx(Ce,{name:"abandoned",size:"small",checked:m,onChange:(s,k)=>n(k),sx:{"&.Mui-checked":{color:"#FF5630"}}})}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,title:`${_(e?.amount_percentage??0)} | ${h(e?.amount_value??0)}`,children:[_(e?.amount_percentage??0),"\u2002",jsx(p,{component:"span",variant:"body2",color:"text.primary",children:h(e?.amount_value??0)})]})]})]}),series:g,isFetching:o})},xe=memo(qo);var Uo=({active:t,abandoned:e,isFetching:o})=>{let[r,i]=useState(!0),[m,n]=useState(!0),l=r?t?.quantity_value??0:0,f=m?e?.quantity_value??0:0,y=l+f,g=[{name:"Ativos",data:[l]},{name:"Abandonados",data:[f]}];return jsx(ft,{title:"Quantidade de carrinhos",subtitle:jsxs(p,{variant:"subtitle2",fontSize:20,fontWeight:700,children:[y," ",jsxs(p,{component:"span",variant:"body2",fontSize:13,color:"text.secondary",children:["carrinho",y!==1&&"s"]})]}),legend:jsxs(u,{children:[jsxs(u,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:1.5,sx:{mt:-1},children:[jsx(be,{label:"Ativos",control:jsx(Ce,{name:"active",size:"small",checked:r,onChange:(s,k)=>i(k),sx:{"&.Mui-checked":{color:"#22C55E"}}})}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,title:`${_(t?.quantity_percentage??0)} ${t?.quantity_value??0} | carrinho${t?.quantity_value!==1?"s":""}`,children:[_(t?.quantity_percentage??0),"\u2002",jsxs(p,{component:"span",variant:"body2",color:"text.primary",children:[t?.quantity_value??0," carrinho",t?.quantity_value!==1?"s":""]})]})]}),jsxs(u,{direction:"row",alignItems:"center",justifyContent:"space-between",gap:1.5,sx:{mt:-1},children:[jsx(be,{label:"Abandonados",control:jsx(Ce,{name:"abandoned",size:"small",checked:m,onChange:(s,k)=>n(k),sx:{"&.Mui-checked":{color:"#FF5630"}}})}),jsxs(p,{variant:"body2",color:"text.secondary",noWrap:!0,title:`${_(e?.quantity_percentage??0)} ${e?.quantity_value} | carrinho${e?.quantity_value!==1?"s":""}`,children:[_(e?.quantity_percentage??0),"\u2002",jsxs(p,{component:"span",variant:"body2",color:"text.primary",children:[e?.quantity_value," carrinho",e?.quantity_value!==1?"s":""]})]})]})]}),series:g,isFetching:o})},Pe=memo(Uo);var Qo=({summary:t,isFetching:e})=>jsxs(u,{direction:{xs:"column",md:"row"},justifyContent:"space-between",gap:3,children:[jsx(Pe,{active:t?.active,abandoned:t?.abandoned,isFetching:e}),jsx(xe,{active:t?.active,abandoned:t?.abandoned,isFetching:e})]}),Xo=memo(Qo);var er=({name:t,title:e,placeholder:o,emptyText:r,testIdPrefix:i,defaultExpanded:m,selected:n,onChange:l,useOptions:f})=>{let[y,g]=a$9(m),[s,k]=useState(""),{buildOptions:X,finishSearch:Ct,onSearch:bt,onSelectValue:N,search:Ne,searching:xt}=a$d(),{items:Wt,isFetching:nt,isLoading:Ve}=f({search:Ne,skip:!y}),it=useMemo(()=>xt||nt?[]:X(Wt.map(({id:d,name:C})=>({value:d,label:C})),nt),[X,nt,Wt,xt]),$e=n.length>0,ze=useCallback(d=>{N(it,d);let C=typeof d=="string"?d:String(d?.value||""),Ge=it.find(St=>String(St.value)===C)?.label||(typeof d=="string"?d:String(d?.label||""));C&&!n.some(St=>St.id===C)&&l([...n,{id:C,name:Ge}]),k("");},[l,N,it,n]),qe=useCallback(d=>{l(n.filter(C=>C.id!==d.id));},[l,n]);return jsxs(a$b,{expanded:y,onChange:g,children:[jsx(b$1,{children:jsx(p,{variant:"body2",fontWeight:"bold",color:"text.primary",children:e})}),jsx(c$3,{children:jsxs(u,{gap:1,children:[jsx(a$e,{name:t,label:e,placeholder:o,size:"small",options:it,isOptionEqualToValue:(d,C)=>d.value===C.value,loading:Ve,inputValue:s,onInputChange:(d,C)=>k(C),onSearch:bt,onBlur:Ct,onChange:ze,filterOptions:d=>d,noOptionsText:xt||nt?"Carregando...":void 0,InputLabelProps:{shrink:!0},fullWidth:!0}),jsx(a$f,{direction:"row",alignItems:"center",flexWrap:"wrap",overflow:"auto",maxHeight:148,p:1.5,sx:{bgcolor:"grey.50"},children:jsx(a$g,{isEmpty:!$e,empty:jsx(p,{variant:"body2",color:"text.secondary",children:r}),children:n.map((d,C)=>jsx(jo,{variant:"outlined",label:d.name,color:"default",onDelete:()=>qe(d),"data-testid":`${i}-${C}`},C))})})]})})]})},yt=er;var or=()=>{let{adapters:t}=c(),{selectedPartners:e,setSelectedPartners:o}=A();return jsx(yt,{name:"partners",title:"Clientes",placeholder:"Digite para buscar um cliente...",emptyText:"Nenhum cliente selecionado",testIdPrefix:"filter-partner",defaultExpanded:!0,selected:e,onChange:o,useOptions:t.usePartnerOptions})},Ie=or;var ir=({profile:t,checked:e,onToggle:o})=>{let{label:r}=d$2[t];return jsx(be,{control:jsx(nr,{name:`profile-${t}`,checked:e,onClick:o}),label:r})},Oe=ir;var mr=()=>{let{slots:t}=c(),{selectedProfile:e,setSelectedProfile:o}=A(),{profileOptions:r}=t,[i,m]=a$9(!!e),n=useCallback(l=>{o(e===l?null:l);},[o,e]);return jsxs(a$b,{expanded:i,onChange:m,children:[jsx(b$1,{children:jsx(p,{variant:"body2",fontWeight:"bold",color:"text.primary",children:"Perfis"})}),jsx(c$3,{children:jsx(u,{mt:-1,children:r.map(l=>jsx(Oe,{profile:l,checked:e===l,onToggle:()=>n(l)},l))})})]})},De=mr;var cr=({useOptions:t})=>{let{selectedSellers:e,setSelectedSellers:o}=A();return jsx(yt,{name:"sellers",title:"Vendedores",placeholder:"Digite para buscar um vendedor...",emptyText:"Nenhum vendedor selecionado",testIdPrefix:"filter-seller",defaultExpanded:!!e.length,selected:e,onChange:o,useOptions:t})},Me=cr;var hr=({status:t,checked:e,onToggle:o})=>{let{label:r,color:i}=c$1[t];return jsx(be,{control:jsx(Ce,{name:`status-${t}`,checked:e,onChange:o}),label:jsx(a$4,{color:i,sx:{cursor:"pointer"},children:r})})},We=hr;var Sr=()=>{let{selectedStatuses:t,setSelectedStatuses:e}=A(),[o,r]=a$9(!!t.length),i=useMemo(()=>Object.values(a$c).filter(n=>n!=="EXPIRED"),[]),m=useCallback(n=>{e(t.includes(n)?t.filter(l=>l!==n):[...t,n]);},[e,t]);return jsxs(a$b,{expanded:o,onChange:r,children:[jsx(b$1,{children:jsx(p,{variant:"body2",fontWeight:"bold",color:"text.primary",children:"Status"})}),jsx(c$3,{children:jsx(u,{mt:-1,children:i.map(n=>jsx(We,{status:n,checked:t.includes(n),onToggle:()=>m(n)},n))})})]})},Fe=Sr;var kr=()=>{let{adapters:t}=c(),{useSellerOptions:e}=t;return jsxs(Fragment,{children:[jsx(Ie,{}),!!e&&jsx(Me,{useOptions:e}),jsx(Fe,{}),jsx(De,{})]})},Le=kr;var Ot=styled(Ee)(({theme:t})=>({background:t.palette.common.white})),Dt=styled(Ee)(({theme:t})=>({color:t.palette.text.secondary,"&:hover":{background:t.palette.action.hover},[t.breakpoints.down("sm")]:{border:`1px solid ${t.palette.divider}`,textIndent:"-9999em",fontSize:0,minWidth:30,maxWidth:30,height:30,width:30,overflow:"hidden","& .MuiButton-icon":{margin:0}}})),Mt=styled(a)(({theme:t})=>({"& .MuiPopover-paper":{width:540,padding:t.spacing(3),backgroundColor:t.palette.background.paper,borderRadius:t.spacing(1),backgroundImage:"none",[t.breakpoints.down("sm")]:{width:"calc(100% - 48px)"}}}));var Ir=()=>{let t=b("down","sm"),{slots:e,adapters:o,filters:r}=c(),{dateFilter:i,handleDateFilterChange:m$1,selectedPartners:n,selectedSellers:l,selectedStatuses:f}=r,y=useMemo(()=>{let N=o.useSellerOptions?l.length:0;return n.length+N+f.length},[o.useSellerOptions,n.length,l.length,f.length]),g=a$8(),s=a$8(),[k,X]=a$9(),Ct=useCallback(N=>{m$1(N),g.onClose();},[m$1,g]),bt=i.period!=="OTHER"?e$1[i.period]:m(i.start_date,i.end_date);return jsxs(Fragment,{children:[jsxs(u,{direction:{xs:"column",sm:"row"},alignItems:{xs:"flex-start",sm:"center"},justifyContent:"space-between",gap:1.5,children:[jsxs(u,{width:"100%",direction:"row",alignItems:"center",gap:1.5,children:[jsx(Ot,{variant:"outlined",endIcon:jsx(a$3,{icon:"ARROW_DOWN_SIMPLE"}),color:"inherit",size:"small",fullWidth:t,onClick:g.onOpen,children:t?"Per\xEDodo":bt}),jsx(Ar,{badgeContent:y,invisible:y===0,color:"primary",children:jsx(Ot,{variant:"outlined",startIcon:jsx(a$3,{icon:"FILTER_LIST"}),color:"inherit",size:"small",fullWidth:t,onClick:X,children:"Filtrar"})}),t&&jsx(Dt,{variant:"text",startIcon:jsx(a$3,{icon:"DOWNLOAD_EXPORT_04"}),size:"small",onClick:s.onOpen,sx:{display:"none"},children:"Exportar"})]}),!t&&jsx(Dt,{variant:"text",startIcon:jsx(a$3,{icon:"DOWNLOAD_EXPORT_04"}),size:"small",color:"inherit",onClick:s.onOpen,sx:{display:"none"},children:"Exportar"})]}),jsx(Mt,{open:g.open,onClose:g.onClose,arrow:t?"top-center":"top-left",TransitionProps:{timeout:0},disabledArrow:!0,children:e.renderDateFilter({value:i,onSave:Ct,onClose:g.onClose})}),jsxs(Mt,{open:s.open,onClose:s.onClose,arrow:"top-right",disabledArrow:!0,children:[jsx(a$6,{children:"Exportar XLSX"}),jsx(a$6,{children:"Exportar CSV"}),jsx(a$6,{children:"Exportar PDF"})]}),jsx(a$a,{open:k,onClose:X,headerTitle:"Filtros",headerProps:{direction:"row-reverse"},contentProps:{p:0},maxWidth:400,children:jsx(Le,{})})]})},Rr=Ir;
59
+
60
+ export { fo as CartDetail, ct as CartStatusLabel, _o as CartsList, Qe as CartsProvider, Xo as CartsSummary, Rr as CartsToolbar, c as useCartsContext, A as useCartsFilterContext };
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Analytics/Carts/context.tsx","../../../../src/components/Analytics/Carts/Detail/index.tsx","../../../../src/components/Analytics/Carts/Detail/Informations/index.tsx","../../../../src/components/Analytics/Carts/Detail/Informations/Row.tsx","../../../../src/components/Analytics/Carts/Detail/Items/index.tsx","../../../../src/components/Analytics/Carts/Detail/Items/styles.ts","../../../../src/components/Analytics/Carts/Detail/styles.ts","../../../../src/components/Analytics/Carts/List/index.tsx","../../../../src/components/Analytics/Carts/StatusLabel/index.tsx","../../../../src/components/Analytics/Carts/List/styles.ts","../../../../src/components/Analytics/Carts/Summary/index.tsx","../../../../src/components/Analytics/Carts/Summary/Amount/index.tsx","../../../../src/components/Analytics/Carts/Summary/Card/index.tsx","../../../../src/components/Analytics/Carts/Summary/Card/Bar.tsx","../../../../src/components/Analytics/Carts/Summary/Card/utils.ts","../../../../src/components/Analytics/Carts/Summary/Card/styles.ts","../../../../src/components/Analytics/Carts/Summary/utils.ts","../../../../src/components/Analytics/Carts/Summary/Quantity/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/OptionsFilter/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Partners/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Profiles/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Profiles/ProfileOption/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Sellers/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Status/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/Status/StatusOption/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/Filters/index.tsx","../../../../src/components/Analytics/Carts/Toolbar/styles.ts"],"names":["createContext","useContext","useMemo","jsx","CartsContext","CartsProvider","adapters","slots","children","filters","useCartsFilters_default","value","useCartsContext","context","useCartsFilterContext","useCallback","CardContent","CardHeader","Stack","Typography","Divider","memo","jsxs","Row","label","Row_default","Informations","cart","fDate","getProfileName","fTimeAgo","cpfMaskOrCnpjMask","phoneMask","fCurrencyBRL","Informations_default","styled","MobileHeader","theme","Fragment","getProductCell","item","getMobileRender","DataViewMobileItem_default","renderCurrencyValue","Items","DataView_default","Label_default","row","data","Items_default","Button","MuiCard","Card","WhatsAppButton","CartDetail","phone","handleWhatsAppClick","message","url","Icon_default","Detail_default","CartStatusLabel","status","option","CART_STATUS_OPTIONS","StatusLabel_default","MuiLink","Link","getPartnerName","getUserName","getCreatedAt","getUpdatedAt","getStatus","getActions","handleSendWhatsAppMessage","handleSendEmail","MoreMenu_default","MenuItem_default","CartsList","apiRef","carts","isLoading","isFetching","isFetchingNextPage","onRowsScrollEnd","sortModel","handleSortModelChange","params","List_default","useState","Checkbox","FormControlLabel","BarChart","ResponsiveContainer","XAxis","YAxis","RechartsBar","RADIUS","getBarRadius","index","series","isFirstVisible","s","isLastVisible","COLORS","EMPTY_COLOR","Bar","isZero","serie","Bar_default","title","subtitle","legend","v","chartData","total","sum","ChartLoading_default","Card_default","formatPercentage","fPercent","Amount","active","abandoned","showActive","setShowActive","showAbandoned","setShowAbandoned","activeValue","abandonedValue","_","checked","Amount_default","Quantity","Quantity_default","CartsSummary","summary","Summary_default","Badge","Chip","OptionsFilter","name","placeholder","emptyText","testIdPrefix","defaultExpanded","selected","onChange","useOptions","expanded","toggleExpanded","useToggle_default","inputValue","setInputValue","buildOptions","finishSearch","onSearch","onSelectValue","search","searching","useAutocomplete_default","items","options","id","itemName","hasSelected","handleSelectOption","optionId","optionLabel","handleDeleteOption","Accordion","AccordionSummary","AccordionDetails","Autocomplete_default","newValue","filtered","SimpleCard_default","Result_default","OptionsFilter_default","Partners","selectedPartners","setSelectedPartners","Partners_default","Radio","ProfileOption","profile","onToggle","CART_PROFILE_OPTIONS","ProfileOption_default","Profiles","selectedProfile","setSelectedProfile","profileOptions","handleToggle","Profiles_default","Sellers","selectedSellers","setSelectedSellers","Sellers_default","StatusOption","color","StatusOption_default","Status","selectedStatuses","setSelectedStatuses","statuses","CartStatus","Status_default","Filters","useSellerOptions","Filters_default","MuiButton","ExportButton","MenuPopover","MenuPopover_default","Toolbar","isMobile","useResponsive_default","dateFilter","handleDateFilterChange","activeFiltersCount","sellersCount","dateFilterPopover","usePopover_default","exportPopover","filtersOpen","toggleFiltersOpen","handleDateFilterSave","dateButtonLabel","FILTER_PERIOD_LABELS","fDateRangeShortLabel","Drawer_default","Toolbar_default"],"mappings":"qsDAAA,OAAS,iBAAAA,GAAe,cAAAC,GAAY,WAAAC,OAAe,QAgB/C,cAAAC,OAAA,oBAXJ,IAAMC,GAAeJ,GAAiC,IAAI,EAEpDK,GAAgB,CAAC,CAAE,SAAAC,EAAU,MAAAC,EAAO,SAAAC,CAAS,IAA0B,CAC3E,IAAMC,EAAUC,GAAgB,EAE1BC,EAAQT,GACZ,KAAO,CAAE,SAAAI,EAAU,MAAAC,EAAO,QAAAE,CAAQ,GAClC,CAACH,EAAUC,EAAOE,CAAO,CAC3B,EAEA,OACEN,GAACC,GAAa,SAAb,CAAsB,MAAOO,EAAQ,SAAAH,EAAS,CAEnD,EAEMI,EAAkB,IAAkB,CACxC,IAAMC,EAAUZ,GAAWG,EAAY,EAEvC,GAAI,CAACS,EACH,MAAM,IAAI,MAAM,qDAAqD,EAGvE,OAAOA,CACT,EAEMC,EAAwB,IAC5BF,EAAgB,EAAE,QC/BpB,OAAS,eAAAG,OAAmB,QAC5B,OAAOC,OAAiB,4BACxB,OAAOC,OAAgB,2BACvB,OAAOC,MAAW,sBAClB,OAAOC,OAAgB,2BCJvB,OAAOC,OAAa,wBACpB,OAAOF,MAAW,sBAClB,OAAOC,OAAgB,2BCFvB,OAAS,QAAAE,OAAY,QACrB,OAAOH,OAAW,sBAClB,OAAOC,OAAgB,2BAWnB,OAIA,OAAAhB,GAJA,QAAAmB,OAAA,oBAPJ,IAAMC,GAAM,CAAC,CAAE,MAAAC,EAAO,MAAAb,CAAM,IAC1BW,GAACJ,GAAA,CACC,UAAU,MACV,eAAe,gBACf,IAAK,IACL,SAAS,SAET,UAAAI,GAACH,GAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,WAAY,EAC5D,UAAAK,EAAM,KACT,EAEArB,GAACgB,GAAA,CACC,UAAU,MACV,QAAQ,QACR,WAAY,IACZ,MAAM,eACN,OAAM,GAEL,SAAAR,EACH,GACF,EAGKc,EAAQJ,GAAKE,EAAG,EDXjB,OACE,OAAApB,EADF,QAAAmB,MAAA,oBALN,IAAMI,GAAe,CAAC,CAAE,KAAAC,CAAK,IAAuB,CAClD,GAAM,CAAE,MAAApB,CAAM,EAAIK,EAAgB,EAElC,OACEU,EAACJ,EAAA,CAAM,IAAK,EACV,UAAAI,EAACJ,EAAA,CAAM,IAAK,GACV,UAAAf,EAACsB,EAAA,CACC,MAAM,YACN,MACEE,EAAK,WACDC,EAAMD,EAAK,WAAY,0BAAuB,EAC9C,IAER,EAEAxB,EAACsB,EAAA,CAAI,MAAM,aAAU,MAAOlB,EAAM,qBAAqBoB,CAAI,EAAG,EAE9DxB,EAACsB,EAAA,CACC,MAAM,qBACN,MAAOI,GAAeF,EAAK,MAAM,OAAO,GAAK,IAC/C,EAEAxB,EAACsB,EAAA,CACC,MAAM,8BACN,MAAOK,EAASH,EAAK,WAAY,SAAS,GAAK,IACjD,GACF,EAEAxB,EAACiB,GAAA,CAAQ,GAAI,CAAE,YAAa,QAAS,EAAG,EAExCE,EAACJ,EAAA,CAAM,IAAK,GACV,UAAAf,EAACsB,EAAA,CACC,MAAM,UACN,MACEH,EAACJ,EAAA,CAAM,WAAW,WAAW,SAAU,EACpC,UAAAX,EAAM,wBAAwBoB,CAAI,EAElCA,EAAK,SAAS,QACbxB,EAACgB,GAAA,CACC,QAAQ,QACR,SAAU,GACV,MAAM,iBACN,SAAS,OACT,OAAM,GAEL,SAAAY,GAAkBJ,EAAK,QAAQ,MAAM,EACxC,GAEJ,EAEJ,EAEAxB,EAACsB,EAAA,CAAI,MAAM,SAAS,MAAOE,EAAK,SAAS,OAAS,IAAK,EAEvDxB,EAACsB,EAAA,CACC,MAAM,UACN,MAAOE,EAAK,SAAS,MAAQK,GAAUL,EAAK,QAAQ,KAAK,EAAI,IAC/D,GACF,EAEAxB,EAACiB,GAAA,CAAQ,GAAI,CAAE,YAAa,QAAS,EAAG,EAExCE,EAACJ,EAAA,CAAM,IAAK,GACV,UAAAf,EAACsB,EAAA,CACC,MAAM,qBACN,MAAOE,EAAK,gBAAgB,MAAQ,IACtC,EAEAxB,EAACsB,EAAA,CACC,MAAM,WACN,MAAOE,EAAK,OAAS,KAAOM,EAAaN,EAAK,KAAK,EAAI,IACzD,GACF,GACF,CAEJ,EAEOO,GAAQR,GE1Ff,OAAON,OAAa,wBACpB,OAAOF,MAAW,sBAClB,OAAOC,MAAgB,2BCFvB,OAAOD,OAAW,sBAClB,OAAS,UAAAiB,OAAc,uBAEhB,IAAMC,GAAeD,GAAOjB,EAAK,EAAE,CAAC,CAAE,MAAAmB,CAAM,KAAO,CACxD,SAAU,SACV,aAAc,aAAaA,EAAM,QAAQ,SAC3C,EAAE,EDWI,OA2HM,YAAAC,GA3HN,OAAAnC,EAeE,QAAAmB,MAfF,oBAHN,IAAMiB,GAAkBC,GAClB,CAACA,EAAK,cAAgB,CAACA,EAAK,aAAe,CAACA,EAAK,UAEjDrC,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,eAAe,OAAM,GAAC,aAExD,EAKFG,EAACJ,EAAA,CAAM,eAAe,SAAS,OAAQ,EACpC,UAAAsB,EAAK,cACJrC,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,eAAe,OAAM,GACpD,SAAAqB,EAAK,aACR,EAGFlB,EAACJ,EAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,EAC9C,UAAAI,EAACH,EAAA,CAAW,QAAQ,UAAU,MAAM,iBAAiB,OAAM,GAAC,sBACnDqB,EAAK,aAAe,KAC7B,EAEArC,EAACiB,GAAA,CACC,YAAY,WACZ,SAAQ,GACR,GAAI,CAAE,YAAa,QAAS,EAC9B,EAEAE,EAACH,EAAA,CAAW,QAAQ,UAAU,MAAM,iBAAiB,OAAM,GAAC,sBAChDqB,EAAK,WAAa,KAC9B,GACF,GACF,EAIEC,GAAkB,CAACD,EAAgBjC,IAErCJ,EAACuC,GAAA,CACC,SAAApB,EAACJ,EAAA,CAAM,IAAK,EACT,UAAAX,EAAM,mBAAmBiC,CAAI,EAE7BA,EAAK,cACJrC,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAqB,EAAK,cAAgB,IACxB,EAGFlB,EAACJ,EAAA,CACC,UAAAI,EAACH,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,sBACjDqB,EAAK,aAAe,KAC7B,EAEAlB,EAACH,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,sBAC9CqB,EAAK,WAAa,KAC9B,EAEAlB,EAACH,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,mBACjD,IACPhB,EAACgB,EAAA,CACC,UAAU,OACV,QAAQ,YACR,MAAM,eACN,OAAM,GAEL,SAAAwB,EAAoBH,EAAK,KAAK,EACjC,GACF,EAEAlB,EAACH,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,2BACzC,IACfhB,EAACgB,EAAA,CACC,UAAU,OACV,QAAQ,YACR,MAAM,eACN,OAAM,GAEL,SAAAqB,EAAK,SACR,GACF,GACF,EAEArC,EAACe,EAAA,CACC,SAAAI,EAACH,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,sBACvC,IACVhB,EAACgB,EAAA,CACC,UAAU,OACV,QAAQ,YACR,MAAM,eAEL,SAAAwB,EAAoBH,EAAK,KAAK,EACjC,GACF,EACF,GACF,GAxDuBA,EAAK,EAyD9B,EAIEI,GAAQ,CAAC,CAAE,KAAAjB,CAAK,IAAuB,CAC3C,GAAM,CAAE,MAAApB,CAAM,EAAIK,EAAgB,EAElC,OACET,EAAC0C,GAAA,CACC,MAAM,QACN,OACEvB,EAACJ,EAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,EAC9C,UAAAf,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,iBAErD,EAEAhB,EAAC2C,EAAA,CAAM,QAAQ,OAAO,MAAM,UACzB,SAAAnB,EAAK,MAAM,QAAU,EACxB,GACF,EAEF,YAAa,CAAE,EAAG,CAAE,GAAI,EAAG,GAAI,CAAE,EAAG,GAAI,CAAE,GAAI,GAAI,CAAE,EACpD,QAAS,CACP,CACE,MAAO,QACP,WAAY,SACZ,KAAM,EACN,SAAU,GACV,MAAO,SACP,YAAa,SACb,WAAY,CAAC,CAAE,IAAAoB,CAAI,IACjB5C,EAAAmC,GAAA,CAAG,SAAA/B,EAAM,mBAAmBwC,CAAe,EAAE,CAEjD,EACA,CACE,MAAO,eACP,WAAY,WACZ,KAAM,EACN,SAAU,GACV,WAAY,CAAC,CAAE,IAAAA,CAAI,IAA4BR,GAAeQ,CAAG,CACnE,EACA,CACE,MAAO,QACP,WAAY,QACZ,KAAM,EACN,SAAU,GACV,WAAY,CAAC,CAAE,IAAAA,CAAI,IACjBJ,EAAqBI,EAAiB,KAAK,CAC/C,EACA,CACE,MAAO,WACP,WAAY,gBACZ,KAAM,EACN,SAAU,EACZ,EACA,CACE,MAAO,QACP,WAAY,WACZ,KAAM,EACN,SAAU,GACV,WAAY,CAAC,CAAE,IAAAA,CAAI,IACjBJ,EAAqBI,EAAiB,KAAK,CAC/C,CACF,EACA,KAAMpB,EAAK,MACX,YAAaxB,EAACiC,GAAA,EAAa,EAC3B,aAAeY,GAAmBP,GAAgBO,EAAMzC,CAAK,EAC7D,WAAU,GACV,2BAA0B,GAC1B,oBAAmB,GACnB,kBAAiB,GACjB,qBAAoB,GACpB,oBAAmB,GACnB,qBAAoB,GACpB,eAAgB,CAAE,OAAQ,OAAQ,GAAI,CAAE,EAAG,CAAE,GAAI,EAAG,GAAI,CAAE,CAAE,CAAE,EAChE,CAEJ,EAEO0C,GAAQL,GE5Lf,OAAOM,OAAY,uBACnB,OAAOC,OAAa,qBACpB,OAAS,UAAAhB,OAAc,uBAEhB,IAAMiB,GAAOjB,GAAOgB,EAAO,EAAE,CAClC,MAAO,OACP,OAAQ,cACR,UAAW,MACb,CAAC,EAEYE,GAAiBlB,GAAOe,EAAM,EAAE,CAAC,CAAE,MAAAb,CAAM,KAAO,CAC3D,WAAYA,EAAM,QAAQ,QAAQ,KAClC,MAAOA,EAAM,QAAQ,QAAQ,aAE7B,UAAW,CACT,WAAYA,EAAM,QAAQ,QAAQ,IACpC,CACF,EAAE,EL4BQ,cAAAlC,EAKF,QAAAmB,MALE,oBA/BV,IAAMgC,GAAa,CAAC,CAAE,KAAA3B,CAAK,IAAuB,CAChD,GAAM,CAAE,MAAApB,CAAM,EAAIK,EAAgB,EAE5B2C,EAAQ5B,GAAM,SAAS,OAAO,QAAQ,MAAO,EAAE,EAE/C6B,EAAsBzC,GAAY,IAAM,CAC5C,IAAM0C,EAAUlD,EAAM,qBAAqBoB,CAAI,EAEzC+B,EAAMH,EACR,iBAAiBA,UAAc,mBAAmBE,CAAO,IACzD,uBAAuB,mBAAmBA,CAAO,IAErD,OAAO,KAAKC,EAAK,SAAU,qBAAqB,CAClD,EAAG,CAAC/B,EAAM4B,EAAOhD,CAAK,CAAC,EAEvB,OACEe,EAACJ,EAAA,CACC,QAAQ,OACR,oBAAqB,CAAE,GAAI,MAAO,GAAI,SAAU,EAChD,IAAK,EAEL,UAAAf,EAACe,EAAA,CACC,SAAU,CAAE,GAAI,UAAW,EAC3B,GAAI,CAAE,MAAO,CAAE,GAAI,EAAG,GAAI,CAAE,CAAE,EAC9B,SAAS,SAET,SAAAf,EAACe,EAAA,CACC,SAAU,CAAE,GAAI,UAAW,EAC3B,UAAW,CAAE,GAAI,CAAE,EACnB,GAAI,CAAE,MAAO,CAAE,GAAI,CAAE,CAAE,EAEvB,SAAAf,EAAC8C,GAAA,CAAM,KAAMtB,EAAM,EACrB,EACF,EAEAL,EAACJ,EAAA,CAAM,IAAK,EAAG,GAAI,CAAE,MAAO,CAAE,GAAI,EAAG,GAAI,CAAE,CAAE,EAAG,SAAS,SACvD,UAAAI,EAAC8B,GAAA,CAAK,QAAQ,WACZ,UAAAjD,EAACc,GAAA,CACC,MACEd,EAACgB,GAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,6BAErD,EAEJ,EAEAhB,EAACa,GAAA,CACC,SAAAb,EAAC+B,GAAA,CAAa,KAAMP,EAAM,EAC5B,GACF,EAEAL,EAAC8B,GAAA,CAAK,QAAQ,WAAW,GAAI,CAAE,MAAO,CAAE,GAAI,EAAG,GAAI,CAAE,CAAE,EACrD,UAAAjD,EAACc,GAAA,CACC,MACEd,EAACgB,GAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,yCAErD,EAEJ,EAEAhB,EAACa,GAAA,CACC,SAAAM,EAACJ,EAAA,CAAM,IAAK,EACV,UAAAf,EAACgB,GAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,2IAGnD,EAEAG,EAACJ,EAAA,CAAM,IAAK,IACV,UAAAf,EAACkD,GAAA,CACC,QAAQ,YACR,UAAWlD,EAACwD,EAAA,CAAK,KAAK,WAAW,EACjC,KAAK,QACL,QAASH,EACV,wCAED,EAECjD,EAAM,wBAAwBoB,CAAI,GACrC,GACF,EACF,GACF,GACF,GACF,CAEJ,EAEOiC,GAAQN,GMpGf,OAAS,QAAAjC,OAAY,QACrB,OAAOD,OAAa,wBACpB,OAAOF,MAAW,sBAClB,OAAOC,MAAgB,2BCMnB,cAAAhB,OAAA,oBAJJ,IAAM0D,GAAkB,CAAC,CAAE,OAAAC,CAAO,IAA4B,CAC5D,IAAMC,EAASC,GAAoBF,CAAM,EAEzC,OACE3D,GAAC2C,EAAA,CAAM,MAAOiB,GAAQ,MAAO,GAAI,CAAE,MAAO,aAAc,EACrD,SAAAA,GAAQ,MACX,CAEJ,EAEOE,GAAQJ,GCff,OAAOK,OAAa,qBACpB,OAAOhD,OAAW,sBAClB,OAAS,UAAAiB,OAAc,uBAEhB,IAAMgC,GAAOhC,GAAO+B,EAAO,EAAE,CAAC,CAAE,MAAA7B,CAAM,KAAO,CAClD,WAAY,IACZ,MAAOA,EAAM,QAAQ,QAAQ,KAE7B,OAAQ,UAER,UAAW,CACT,eAAgB,WAClB,CACF,EAAE,EAEWD,GAAeD,GAAOjB,EAAK,EAAE,CAAC,CAAE,MAAAmB,CAAM,KAAO,CACxD,SAAU,SAEV,QAASA,EAAM,QAAQ,GAAG,EAE1B,WAAYA,EAAM,QAAQ,WAAW,OACvC,EAAE,EFEM,mBAAAC,EAGE,OAAAnC,EAHF,QAAAmB,MAAA,oBAJR,IAAM8C,GAAiB,CAACzC,EAAYpB,IAEhCJ,EAACe,EAAA,CAAM,eAAe,SAAS,OAAQ,EACpC,SAAAS,GAAM,SAAS,KACdL,EAAAgB,EAAA,CACG,UAAA/B,EAAM,kBAAkBoB,CAAI,EAE7BxB,EAACgB,EAAA,CAAW,QAAQ,QAAQ,SAAU,GAAI,MAAM,iBAC7C,SAAAQ,GAAM,SAAS,OACZI,GAAkBJ,GAAM,SAAS,MAAM,EACvC,IACN,GACF,EAEA,IAEJ,EAIE0C,GAAc,CAAC1C,EAAYpB,IAE7BJ,EAACe,EAAA,CAAM,eAAe,SAAS,OAAQ,EACpC,SAAAS,GAAM,MAAM,KACXL,EAAAgB,EAAA,CACG,UAAA/B,EAAM,eAAeoB,CAAI,EAE1BxB,EAACgB,EAAA,CAAW,QAAQ,QAAQ,SAAU,GAAI,MAAM,iBAC7C,SAAAQ,GAAM,MAAM,oBAA8B,UAAY,WACzD,GACF,EAEA,IAEJ,EAIE2C,GAAgB3C,GAElBxB,EAACe,EAAA,CAAM,eAAe,SAAS,OAAQ,EACpC,SAAAS,GAAM,WACLL,EAAAgB,EAAA,CACE,UAAAnC,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,eAC/B,SAAAS,EAAMD,GAAM,WAAY,YAAY,EACvC,EAEAxB,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAC/B,SAAAS,EAAMD,GAAM,WAAY,eAAY,EACvC,GACF,EAEA,IAEJ,EAIE4C,GAAgB5C,GAElBxB,EAACe,EAAA,CAAM,eAAe,SAAS,OAAQ,EACpC,SAAAS,GAAM,WACLxB,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,eAAe,OAAM,GACpD,SAAAW,EAASH,GAAM,WAAY,SAAS,EACvC,EAEA,IAEJ,EAIE6C,GAAa7C,GAEfxB,EAACe,EAAA,CAAM,eAAe,SAAS,OAAQ,EACrC,SAAAf,EAAC8D,GAAA,CAAgB,OAAQtC,GAAM,OAAQ,EACzC,EAIE8C,GAAc9C,GAAe,CACjC,IAAM+C,EAA4B,IAAM,CACtC,IAAMnB,EAAQ5B,GAAM,SAAS,OAAO,QAAQ,MAAO,EAAE,EACrD,OAAO,KAAK,iBAAiB4B,IAAS,QAAQ,CAChD,EAEMoB,EAAkB,IAAM,CAC5B,OAAO,SAAS,KAAO,UAAUhD,GAAM,SAAS,OAClD,EAEA,OACExB,EAACyE,GAAA,CAEC,QACEtD,EAAAgB,EAAA,CACE,UAAAnC,EAAC0E,EAAA,CACC,QAASH,EACT,SAAU,CAAC/C,GAAM,SAAS,MAC3B,wCAED,EAEAxB,EAAC0E,EAAA,CAAS,QAASF,EAAiB,SAAU,CAAChD,GAAM,SAAS,MAAO,yBAErE,GACF,GAbGA,EAAK,EAeZ,CAEJ,EAEMc,GAAkB,CAACd,EAAYpB,IAEjCe,EAACoB,GAAA,CACE,UAAAnC,EAAM,eACLoB,EACAL,EAACJ,EAAA,CAAM,IAAK,EACV,UAAAI,EAACJ,EAAA,CACC,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,2BAEnD,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eACnC,SAAAQ,GAAM,SAAS,MAAQ,IAC1B,GACF,EAEAL,EAACJ,EAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,EAC9C,UAAAI,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,sBAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAQ,GAAM,MAAM,MAAQ,IACvB,GACF,EAEAxB,EAACiB,GAAA,CACC,YAAY,WACZ,SAAQ,GACR,GAAI,CAAE,YAAa,SAAU,GAAI,CAAE,EACrC,EAEAE,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,8BAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAU,GAAeF,EAAK,MAAM,OAAO,GAAK,IACzC,GACF,GACF,EAEAL,EAACJ,EAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,EAC9C,UAAAI,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,iBAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAwB,EAAoBhB,GAAM,YAAY,EACzC,GACF,EAEAxB,EAACiB,GAAA,CACC,YAAY,WACZ,SAAQ,GACR,GAAI,CAAE,YAAa,SAAU,GAAI,CAAE,EACrC,EAEAE,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,yBAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAQ,GAAM,eAAiB,EAC1B,GACF,GACF,EAEAL,EAACJ,EAAA,CAAM,UAAU,MAAM,WAAW,SAAS,IAAK,EAC9C,UAAAI,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,qBAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAQ,GAAM,WAAaC,EAAMD,GAAM,WAAY,YAAY,EAAI,IAC9D,GACF,EAEAxB,EAACiB,GAAA,CACC,YAAY,WACZ,SAAQ,GACR,GAAI,CAAE,YAAa,SAAU,GAAI,CAAE,EACrC,EAEAE,EAACJ,EAAA,CAAM,KAAM,EAAG,SAAS,SACvB,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,OAAM,GAAC,uCAE1D,EAEAhB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,OAAM,GACxD,SAAAW,EAASH,GAAM,WAAY,SAAS,GAAK,IAC5C,GACF,GACF,EAEAL,EAACJ,EAAA,CAAM,IAAK,GACV,UAAAf,EAACgB,EAAA,CAAW,QAAQ,QAAQ,MAAM,iBAAiB,kBAEnD,EAECQ,GAAM,OACLxB,EAAC8D,GAAA,CAAgB,OAAQtC,EAAK,OAAQ,EAEtCxB,EAACgB,EAAA,CAAW,QAAQ,YAAY,MAAM,eAAe,aAErD,GAEJ,GACF,CACF,EAEAhB,EAACe,EAAA,CAAM,SAAS,WAAW,IAAK,GAAI,MAAO,GACxC,SAAAuD,GAAW9C,CAAI,EAClB,IApHuBA,EAAK,EAqH9B,EAIEmD,GAAY,CAAC,CACjB,OAAAC,EACA,MAAAC,EACA,UAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,gBAAAC,CACF,IAAsB,CACpB,GAAM,CAAE,MAAA7E,EAAO,QAAAE,CAAQ,EAAIG,EAAgB,EAErC,CAAE,UAAAyE,EAAW,sBAAAC,CAAsB,EAAI7E,EAM7C,OACEN,EAAC0C,GAAA,CACC,OAAQkC,EACR,MAAM,qBACN,OACE5E,EAACgB,EAAA,CAAW,QAAQ,KAAK,MAAM,eAAe,8BAE9C,EAEF,QAAS,CACP,CACE,MAAO,eACP,WAAY,kBACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAA4B,CAAI,IACjBqB,GAAerB,EAAKxC,CAAK,CAC7B,EACA,CACE,MAAO,YACP,WAAY,aACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAwC,CAAI,IACjBsB,GAAYtB,EAAKxC,CAAK,CAC1B,EACA,CACE,MAAO,eACP,WAAY,QACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAwC,CAAI,IACjBJ,EAAqBI,EAAa,YAAY,CAClD,EACA,CACE,MAAO,gBACP,WAAY,gBACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAA,CAAI,IAChBA,EAAa,aAClB,EACA,CACE,MAAO,aACP,WAAY,YACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAA,CAAI,IAA4BuB,GAAavB,CAAG,CACjE,EACA,CACE,MAAO,SACP,WAAY,SACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAA,CAAI,IAA4ByB,GAAUzB,CAAG,CAC9D,EACA,CACE,MAAO,aACP,WAAY,8BACZ,KAAM,EACN,WAAY,CAAC,CAAE,IAAAA,CAAI,IAA4BwB,GAAaxB,CAAG,CACjE,EACA,CACE,MAAO,UACP,KAAM,UACN,WAAY,cACZ,SAAU,GACV,WAAawC,GAA0B,CAACd,GAAWc,EAAO,GAAG,CAAC,CAChE,CACF,EACA,KAAMP,EACN,YACE7E,EAACiC,GAAA,CACC,SAAAjC,EAACgB,EAAA,CAAW,QAAQ,QAAQ,WAAY,IAAK,MAAM,iBAAiB,qBAEpE,EACF,EAEF,aAAe6B,GAAeP,GAAgBO,EAAMzC,CAAK,EACzD,QAAS0E,EACT,SAAUC,GAAc,CAACC,EACzB,iBAAkBA,EAClB,gBAAiBC,EACjB,mBAAoB,IACpB,iBAlFyB,CAAC,CAAE,IAAArC,CAAI,IAAqB,CACvDxC,EAAM,WAAWwC,CAAW,CAC9B,EAiFI,2BAA0B,GAC1B,kBAAiB,GACjB,YAAY,SACZ,UAAWsC,EACX,kBAAmBC,EACnB,MAAO,CACL,cAAe,IAAMnF,EAAAmC,EAAA,CAAG,SAAA/B,EAAM,iBAAiB,EAAE,CACnD,EACF,CAEJ,EAEOiF,GAAQnE,GAAKyD,EAAS,EGxW7B,OAAS,QAAAzD,OAAY,QACrB,OAAOH,OAAW,sBCDlB,OAAS,QAAAG,GAAM,YAAAoE,OAAgB,QAC/B,OAAOC,OAAc,yBACrB,OAAOC,OAAsB,iCAC7B,OAAOzE,OAAW,sBAClB,OAAOC,OAAgB,2BCJvB,OAAS,QAAAE,GAAM,WAAAnB,OAAe,QAC9B,OAAOc,OAAiB,4BACxB,OAAOC,OAAgB,2BACvB,OAAOC,OAAW,sBAClB,OAAS,YAAA0E,GAAU,uBAAAC,GAAqB,SAAAC,GAAO,SAAAC,OAAa,WCJ5D,OAAS,OAAOC,OAAmB,WCEnC,IAAMC,EAAS,EAEFC,GAAe,CAC1BC,EACAC,IACqC,CACrC,IAAMC,EAAiBF,IAAUC,EAAO,UAAUE,GAAKA,EAAE,KAAK,CAAC,EAAI,CAAC,EAC9DC,EACJJ,IAAUC,EAAO,IAAIE,GAAKA,EAAE,KAAK,CAAC,EAAI,CAAC,EAAE,YAAY,EAAI,EAE3D,OAAID,GAAkBE,EAAsB,CAACN,EAAQA,EAAQA,EAAQA,CAAM,EACvEI,EAAuB,CAACJ,EAAQ,EAAG,EAAGA,CAAM,EAC5CM,EAAsB,CAAC,EAAGN,EAAQA,EAAQ,CAAC,EAExC,CAAC,EAAG,EAAG,EAAG,CAAC,CACpB,EDNM,OAaF,YAAA3D,GAbE,OAAAnC,OAAA,oBANN,IAAMqG,GAAS,CAAC,UAAW,SAAS,EAC9BC,GAAc,UAEdC,GAAM,CAAC,CAAE,OAAAN,EAAQ,OAAAO,CAAO,IACxBA,EAEAxG,GAAC6F,GAAA,CACC,QAAQ,QACR,QAAQ,QACR,KAAMS,GACN,OAAO,OACP,OAAQ,EACR,kBAAmB,GACnB,cAAY,YACd,EAKFtG,GAAAmC,GAAA,CACG,SAAA8D,EAAO,IAAI,CAACQ,EAAOT,IAClBhG,GAAC6F,GAAA,CAEC,QAASY,EAAM,KACf,QAAQ,QACR,KAAMJ,GAAOL,CAAK,EAClB,OAAO,OACP,OAAQD,GAAaC,EAAOC,CAAM,EAClC,kBAAmB,GACnB,cAAa,OAAOD,KAPfA,CAQP,CACD,EACH,EAIGU,GAAQH,GEzCf,OAAOvD,OAAa,qBACpB,OAAS,UAAAhB,OAAc,uBAEhB,IAAMiB,GAAOjB,GAAOgB,EAAO,EAAE,CAAC,CAAE,MAAAd,CAAM,KAAO,CAClD,MAAO,OACP,OAAQ,OAER,OAAQ,aAAaA,EAAM,QAAQ,UAEnC,UAAW,OACX,SAAU,SACZ,EAAE,EH6BI,cAAAlC,EAaU,QAAAmB,OAbV,oBA5BN,IAAM8B,GAAO,CAAC,CACZ,MAAA0D,EACA,SAAAC,EACA,OAAAC,EACA,OAAAZ,EACA,WAAAlB,CACF,IAAwB,CACtB,IAAMyB,EAASzG,GACb,IAAMkG,EAAO,MAAME,GAAKA,EAAE,KAAK,MAAMW,GAAKA,IAAM,CAAC,CAAC,EAClD,CAACb,CAAM,CACT,EAEMc,EAAYhH,GAAQ,IAAM,CAC9B,GAAIyG,EAAQ,MAAO,CAAC,CAAE,MAAO,GAAI,CAAC,EAElC,IAAMQ,EAAQf,EAAO,OAAO,CAACgB,EAAKd,IAAMc,GAAOd,EAAE,KAAK,CAAC,GAAK,GAAI,CAAC,EAE3DvD,EAA8B,CAAC,EAErC,OAAAqD,EAAO,QAAQE,GAAK,CAClBvD,EAAIuD,EAAE,IAAI,EAAIa,EAAQ,EAAKb,EAAE,KAAK,CAAC,EAAIa,EAAS,IAAM,CACxD,CAAC,EAEM,CAACpE,CAAG,CACb,EAAG,CAACqD,EAAQO,CAAM,CAAC,EAEnB,OACErF,GAAC8B,GAAA,CAAW,QAAQ,WAClB,UAAAjD,EAACc,GAAA,CAAW,MAAO6F,EAAO,EAE1B3G,EAACa,GAAA,CACC,SAAAM,GAACJ,GAAA,CAAM,IAAK,EACV,UAAAI,GAACJ,GAAA,CAAM,IAAK,EACT,UAAA6F,EAED5G,EAACkH,GAAA,CAAa,OAAQnC,EACpB,SAAA/E,EAAC0F,GAAA,CACC,MAAM,OACN,OAAQ,GACR,MAAO,CAAE,cAAe,MAAO,EAE/B,SAAAvE,GAACsE,GAAA,CACC,KAAMsB,EACN,OAAO,WACP,YAAY,OACZ,OAAQ,CAAE,IAAK,EAAG,MAAO,EAAG,OAAQ,EAAG,KAAM,CAAE,EAC/C,eAAgB,EAEhB,UAAA/G,EAAC2F,GAAA,CAAM,KAAK,SAAS,KAAI,GAAC,OAAQ,CAAC,EAAG,GAAG,EAAG,EAC5C3F,EAAC4F,GAAA,CAAM,KAAK,WAAW,KAAI,GAAC,EAE5B5F,EAAC0G,GAAA,CAAI,OAAQT,EAAQ,OAAQO,EAAQ,GACvC,EACF,EACF,GACF,EAECK,GACH,EACF,GACF,CAEJ,EAEOM,GAAQjG,GAAK+B,EAAI,EI1EjB,IAAMmE,EAAoB5G,GAC/B6G,GAAS7G,EAAO,CACd,sBAAuB,EACvB,GAAIA,EAAQ,GAAKA,EAAQ,IAAM,CAAE,sBAAuB,CAAE,EAAI,CAAC,CACjE,CAAC,ELuBK,cAAAR,EA0BI,QAAAmB,OA1BJ,oBAjBR,IAAMmG,GAAS,CAAC,CAAE,OAAAC,EAAQ,UAAAC,EAAW,WAAAzC,CAAW,IAAmB,CACjE,GAAM,CAAC0C,EAAYC,CAAa,EAAIpC,GAAS,EAAI,EAC3C,CAACqC,EAAeC,CAAgB,EAAItC,GAAS,EAAI,EAEjDuC,EAAcJ,EAAcF,GAAQ,cAAgB,EAAK,EACzDO,EAAiBH,EAAiBH,GAAW,cAAgB,EAAK,EAClER,EAAQa,EAAcC,EAEtB7B,EAAS,CACb,CAAE,KAAM,SAAU,KAAM,CAAC4B,CAAW,CAAE,EACtC,CAAE,KAAM,cAAe,KAAM,CAACC,CAAc,CAAE,CAChD,EAEA,OACE9H,EAACmH,GAAA,CACC,MAAM,qBACN,SACEnH,EAACgB,GAAA,CAAW,QAAQ,YAAY,SAAU,GAAI,WAAY,IACvD,SAAAc,EAAakF,CAAK,EACrB,EAEF,OACE7F,GAACJ,GAAA,CACC,UAAAI,GAACJ,GAAA,CACC,UAAU,MACV,WAAW,SACX,eAAe,gBACf,IAAK,IACL,GAAI,CAAE,GAAI,EAAG,EAEb,UAAAf,EAACwF,GAAA,CACC,MAAM,SACN,QACExF,EAACuF,GAAA,CACC,KAAK,SACL,KAAK,QACL,QAASkC,EACT,SAAU,CAACM,EAAGC,IAAYN,EAAcM,CAAO,EAC/C,GAAI,CAAE,gBAAiB,CAAE,MAAO,SAAU,CAAE,EAC9C,EAEJ,EAEA7G,GAACH,GAAA,CACC,QAAQ,QACR,MAAM,iBACN,OAAM,GACN,MAAO,GAAGoG,EAAiBG,GAAQ,mBAAqB,CAAC,OAAOzF,EAAayF,GAAQ,cAAgB,CAAC,IAErG,UAAAH,EAAiBG,GAAQ,mBAAqB,CAAC,EAAE,SAElDvH,EAACgB,GAAA,CAAW,UAAU,OAAO,QAAQ,QAAQ,MAAM,eAChD,SAAAc,EAAayF,GAAQ,cAAgB,CAAC,EACzC,GACF,GACF,EAEApG,GAACJ,GAAA,CACC,UAAU,MACV,WAAW,SACX,eAAe,gBACf,IAAK,IACL,GAAI,CAAE,GAAI,EAAG,EAEb,UAAAf,EAACwF,GAAA,CACC,MAAM,cACN,QACExF,EAACuF,GAAA,CACC,KAAK,YACL,KAAK,QACL,QAASoC,EACT,SAAU,CAACI,EAAGC,IAAYJ,EAAiBI,CAAO,EAClD,GAAI,CAAE,gBAAiB,CAAE,MAAO,SAAU,CAAE,EAC9C,EAEJ,EAEA7G,GAACH,GAAA,CACC,QAAQ,QACR,MAAM,iBACN,OAAM,GACN,MAAO,GAAGoG,EAAiBI,GAAW,mBAAqB,CAAC,OAAO1F,EAAa0F,GAAW,cAAgB,CAAC,IAE3G,UAAAJ,EAAiBI,GAAW,mBAAqB,CAAC,EAAE,SAErDxH,EAACgB,GAAA,CAAW,UAAU,OAAO,QAAQ,QAAQ,MAAM,eAChD,SAAAc,EAAa0F,GAAW,cAAgB,CAAC,EAC5C,GACF,GACF,GACF,EAEF,OAAQvB,EACR,WAAYlB,EACd,CAEJ,EAEOkD,GAAQ/G,GAAKoG,EAAM,EM9G1B,OAAS,QAAApG,GAAM,YAAAoE,OAAgB,QAC/B,OAAOC,OAAc,yBACrB,OAAOC,OAAsB,iCAC7B,OAAOzE,OAAW,sBAClB,OAAOC,MAAgB,2BA0Bb,OAsBM,OAAAhB,GAtBN,QAAAmB,MAAA,oBAnBV,IAAM+G,GAAW,CAAC,CAAE,OAAAX,EAAQ,UAAAC,EAAW,WAAAzC,CAAW,IAAqB,CACrE,GAAM,CAAC0C,EAAYC,CAAa,EAAIpC,GAAS,EAAI,EAC3C,CAACqC,EAAeC,CAAgB,EAAItC,GAAS,EAAI,EAEjDuC,EAAcJ,EAAcF,GAAQ,gBAAkB,EAAK,EAC3DO,EAAiBH,EAAiBH,GAAW,gBAAkB,EAAK,EACpER,EAAQa,EAAcC,EAEtB7B,EAAS,CACb,CAAE,KAAM,SAAU,KAAM,CAAC4B,CAAW,CAAE,EACtC,CAAE,KAAM,cAAe,KAAM,CAACC,CAAc,CAAE,CAChD,EAEA,OACE9H,GAACmH,GAAA,CACC,MAAM,0BACN,SACEhG,EAACH,EAAA,CAAW,QAAQ,YAAY,SAAU,GAAI,WAAY,IACvD,UAAAgG,EAAO,IACR7F,EAACH,EAAA,CACC,UAAU,OACV,QAAQ,QACR,SAAU,GACV,MAAM,iBACP,qBACUgG,IAAU,GAAK,KAC1B,GACF,EAEF,OACE7F,EAACJ,GAAA,CACC,UAAAI,EAACJ,GAAA,CACC,UAAU,MACV,WAAW,SACX,eAAe,gBACf,IAAK,IACL,GAAI,CAAE,GAAI,EAAG,EAEb,UAAAf,GAACwF,GAAA,CACC,MAAM,SACN,QACExF,GAACuF,GAAA,CACC,KAAK,SACL,KAAK,QACL,QAASkC,EACT,SAAU,CAACM,EAAGC,IAAYN,EAAcM,CAAO,EAC/C,GAAI,CAAE,gBAAiB,CAAE,MAAO,SAAU,CAAE,EAC9C,EAEJ,EAEA7G,EAACH,EAAA,CACC,QAAQ,QACR,MAAM,iBACN,OAAM,GACN,MAAO,GAAGoG,EAAiBG,GAAQ,qBAAuB,CAAC,KACzDA,GAAQ,gBAAkB,eACdA,GAAQ,iBAAmB,EAAI,IAAM,KAElD,UAAAH,EAAiBG,GAAQ,qBAAuB,CAAC,EAAE,SAEpDpG,EAACH,EAAA,CAAW,UAAU,OAAO,QAAQ,QAAQ,MAAM,eAChD,UAAAuG,GAAQ,gBAAkB,EAAE,YAC5BA,GAAQ,iBAAmB,EAAI,IAAM,IACxC,GACF,GACF,EAEApG,EAACJ,GAAA,CACC,UAAU,MACV,WAAW,SACX,eAAe,gBACf,IAAK,IACL,GAAI,CAAE,GAAI,EAAG,EAEb,UAAAf,GAACwF,GAAA,CACC,MAAM,cACN,QACExF,GAACuF,GAAA,CACC,KAAK,YACL,KAAK,QACL,QAASoC,EACT,SAAU,CAACI,EAAGC,IAAYJ,EAAiBI,CAAO,EAClD,GAAI,CAAE,gBAAiB,CAAE,MAAO,SAAU,CAAE,EAC9C,EAEJ,EAEA7G,EAACH,EAAA,CACC,QAAQ,QACR,MAAM,iBACN,OAAM,GACN,MAAO,GAAGoG,EAAiBI,GAAW,qBAAuB,CAAC,KAC5DA,GAAW,4BACCA,GAAW,iBAAmB,EAAI,IAAM,KAErD,UAAAJ,EAAiBI,GAAW,qBAAuB,CAAC,EAAE,SAEvDrG,EAACH,EAAA,CAAW,UAAU,OAAO,QAAQ,QAAQ,MAAM,eAChD,UAAAwG,GAAW,eAAe,YAC1BA,GAAW,iBAAmB,EAAI,IAAM,IAC3C,GACF,GACF,GACF,EAEF,OAAQvB,EACR,WAAYlB,EACd,CAEJ,EAEOoD,GAAQjH,GAAKgH,EAAQ,EPjHxB,OAKE,OAAAlI,GALF,QAAAmB,OAAA,oBAFJ,IAAMiH,GAAe,CAAC,CAAE,QAAAC,EAAS,WAAAtD,CAAW,IAExC5D,GAACJ,GAAA,CACC,UAAW,CAAE,GAAI,SAAU,GAAI,KAAM,EACrC,eAAe,gBACf,IAAK,EAEL,UAAAf,GAACmI,GAAA,CACC,OAAQE,GAAS,OACjB,UAAWA,GAAS,UACpB,WAAYtD,EACd,EAEA/E,GAACiI,GAAA,CACC,OAAQI,GAAS,OACjB,UAAWA,GAAS,UACpB,WAAYtD,EACd,GACF,EAIGuD,GAAQpH,GAAKkH,EAAY,EQ9BhC,OAAS,eAAAxH,GAAa,WAAAb,OAAe,QACrC,OAAOwI,OAAW,sBAClB,OAAOxH,OAAW,sBCFlB,OAAS,eAAAH,GAAa,WAAAb,GAAS,YAAAuF,OAAgB,QAC/C,OAAOkD,OAAU,qBACjB,OAAOzH,OAAW,sBAClB,OAAOC,OAAgB,2BAiGf,cAAAhB,EAMA,QAAAmB,OANA,oBAjFR,IAAMsH,GAAgB,CAAC,CACrB,KAAAC,EACA,MAAA/B,EACA,YAAAgC,EACA,UAAAC,EACA,aAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,SAAAC,EACA,WAAAC,CACF,IAA0B,CACxB,GAAM,CAACC,EAAUC,CAAc,EAAIC,EAAUN,CAAe,EACtD,CAACO,EAAYC,CAAa,EAAIhE,GAAS,EAAE,EAEzC,CACJ,aAAAiE,EACA,aAAAC,GACA,SAAAC,GACA,cAAAC,EACA,OAAAC,GACA,UAAAC,EACF,EAAIC,GAAgB,EAEd,CAAE,MAAAC,GAAO,WAAA/E,GAAY,UAAAD,EAAU,EAAImE,EAAW,CAClD,OAAAU,GACA,KAAM,CAACT,CACT,CAAC,EAEKa,GAAUhK,GAAQ,IAClB6J,IAAa7E,GAAmB,CAAC,EAE9BwE,EACLO,GAAM,IAAI,CAAC,CAAE,GAAAE,EAAI,KAAMC,CAAS,KAAO,CACrC,MAAOD,EACP,MAAOC,CACT,EAAE,EACFlF,EACF,EACC,CAACwE,EAAcxE,GAAY+E,GAAOF,EAAS,CAAC,EAEzCM,GAAcnB,EAAS,OAAS,EAEhCoB,GAAqBvJ,GACxBJ,GAAmB,CAClBkJ,EAAcK,GAASvJ,CAAK,EAE5B,IAAM4J,EACJ,OAAO5J,GAAU,SACbA,EACA,OAAQA,GAA8C,OAAS,EAAE,EAOjE6J,GALiBN,GAAQ,KAC5BnG,IACC,OAAOA,GAAO,KAAK,IAAMwG,CAC7B,GAGkB,QACf,OAAO5J,GAAU,SACdA,EACA,OAAQA,GAAqC,OAAS,EAAE,GAE1D4J,GAAY,CAACrB,EAAS,KAAK1G,IAAQA,GAAK,KAAO+H,CAAQ,GACzDpB,EAAS,CAAC,GAAGD,EAAU,CAAE,GAAIqB,EAAU,KAAMC,EAAY,CAAC,CAAC,EAG7Df,EAAc,EAAE,CAClB,EACA,CAACN,EAAUU,EAAeK,GAAShB,CAAQ,CAC7C,EAEMuB,GAAqB1J,GACxBgD,GAAqC,CACpCoF,EAASD,EAAS,OAAO1G,GAAQA,EAAK,KAAOuB,EAAO,EAAE,CAAC,CACzD,EACA,CAACoF,EAAUD,CAAQ,CACrB,EAEA,OACE5H,GAACoJ,EAAA,CAAU,SAAUrB,EAAU,SAAUC,EACvC,UAAAnJ,EAACwK,EAAA,CACC,SAAAxK,EAACgB,GAAA,CAAW,QAAQ,QAAQ,WAAW,OAAO,MAAM,eACjD,SAAA2F,EACH,EACF,EAEA3G,EAACyK,EAAA,CACC,SAAAtJ,GAACJ,GAAA,CAAM,IAAK,EACV,UAAAf,EAAC0K,GAAA,CACC,KAAMhC,EACN,MAAO/B,EACP,YAAagC,EACb,KAAK,QACL,QAASoB,GACT,qBAAsB,CAACnG,EAAQpD,IAC7BoD,EAAO,QAAUpD,EAAM,MAEzB,QAASsE,GACT,WAAYuE,EACZ,cAAe,CAACtB,EAAG4C,IAAarB,EAAcqB,CAAQ,EACtD,SAAUlB,GACV,OAAQD,GACR,SAAUW,GACV,cAAeS,GAAYA,EAC3B,cACEhB,IAAa7E,GAAa,gBAAkB,OAE9C,gBAAiB,CAAE,OAAQ,EAAK,EAChC,UAAS,GACX,EAEA/E,EAAC6K,GAAA,CACC,UAAU,MACV,WAAW,SACX,SAAS,OACT,SAAS,OACT,UAAW,IACX,EAAG,IACH,GAAI,CAAE,QAAS,SAAU,EAEzB,SAAA7K,EAAC8K,GAAA,CACC,QAAS,CAACZ,GACV,MACElK,EAACgB,GAAA,CAAW,QAAQ,QAAQ,MAAM,iBAC/B,SAAA4H,EACH,EAGD,SAAAG,EAAS,IAAI,CAACnF,EAAQoC,IACrBhG,EAACwI,GAAA,CAEC,QAAQ,WACR,MAAO5E,EAAO,KACd,MAAM,UACN,SAAU,IAAM0G,GAAmB1G,CAAM,EACzC,cAAa,GAAGiF,KAAgB7C,KAL3BA,CAMP,CACD,EACH,EACF,GACF,EACF,GACF,CAEJ,EAEO+E,GAAQtC,GC1JX,cAAAzI,OAAA,oBALJ,IAAMgL,GAAW,IAAM,CACrB,GAAM,CAAE,SAAA7K,CAAS,EAAIM,EAAgB,EAC/B,CAAE,iBAAAwK,EAAkB,oBAAAC,CAAoB,EAAIvK,EAAsB,EAExE,OACEX,GAAC+K,GAAA,CACC,KAAK,WACL,MAAM,WACN,YAAY,mCACZ,UAAU,6BACV,aAAa,iBACb,gBAAe,GACf,SAAUE,EACV,SAAUC,EACV,WAAY/K,EAAS,kBACvB,CAEJ,EAEOgL,GAAQH,GCzBf,OAAS,eAAApK,OAAmB,QAC5B,OAAOG,OAAW,sBAClB,OAAOC,OAAgB,2BCFvB,OAAOwE,OAAsB,iCAC7B,OAAO4F,OAAW,sBAYV,cAAApL,OAAA,oBANR,IAAMqL,GAAgB,CAAC,CAAE,QAAAC,EAAS,QAAAtD,EAAS,SAAAuD,CAAS,IAA0B,CAC5E,GAAM,CAAE,MAAAlK,CAAM,EAAImK,GAAqBF,CAAO,EAE9C,OACEtL,GAACwF,GAAA,CACC,QACExF,GAACoL,GAAA,CACC,KAAM,WAAWE,IACjB,QAAStD,EACT,QAASuD,EACX,EAEF,MAAOlK,EACT,CAEJ,EAEOoK,GAAQJ,GDUX,OAEI,OAAArL,GAFJ,QAAAmB,OAAA,oBAhBJ,IAAMuK,GAAW,IAAM,CACrB,GAAM,CAAE,MAAAtL,CAAM,EAAIK,EAAgB,EAC5B,CAAE,gBAAAkL,EAAiB,mBAAAC,CAAmB,EAAIjL,EAAsB,EAEhE,CAAE,eAAAkL,CAAe,EAAIzL,EAErB,CAAC8I,EAAUC,CAAc,EAAIC,EAAU,CAAC,CAACuC,CAAe,EAExDG,EAAelL,GAClB0K,GAAqB,CACpBM,EAAmBD,IAAoBL,EAAU,KAAOA,CAAO,CACjE,EACA,CAACM,EAAoBD,CAAe,CACtC,EAEA,OACExK,GAACoJ,EAAA,CAAU,SAAUrB,EAAU,SAAUC,EACvC,UAAAnJ,GAACwK,EAAA,CACC,SAAAxK,GAACgB,GAAA,CAAW,QAAQ,QAAQ,WAAW,OAAO,MAAM,eAAe,kBAEnE,EACF,EAEAhB,GAACyK,EAAA,CACC,SAAAzK,GAACe,GAAA,CAAM,GAAI,GACR,SAAA8K,EAAe,IAAIP,GAClBtL,GAACyL,GAAA,CAEC,QAASH,EACT,QAASK,IAAoBL,EAC7B,SAAU,IAAMQ,EAAaR,CAAO,GAH/BA,CAIP,CACD,EACH,EACF,GACF,CAEJ,EAEOS,GAAQL,GEhDX,cAAA1L,OAAA,oBAJJ,IAAMgM,GAAU,CAAC,CAAE,WAAA/C,CAAW,IAAoB,CAChD,GAAM,CAAE,gBAAAgD,EAAiB,mBAAAC,CAAmB,EAAIvL,EAAsB,EAEtE,OACEX,GAAC+K,GAAA,CACC,KAAK,UACL,MAAM,aACN,YAAY,oCACZ,UAAU,8BACV,aAAa,gBACb,gBAAiB,CAAC,CAACkB,EAAgB,OACnC,SAAUA,EACV,SAAUC,EACV,WAAYjD,EACd,CAEJ,EAEOkD,GAAQH,GCvBf,OAAS,eAAApL,GAAa,WAAAb,OAAe,QACrC,OAAOgB,OAAW,sBAClB,OAAOC,OAAgB,2BCFvB,OAAOuE,OAAc,yBACrB,OAAOC,OAAsB,iCAarB,cAAAxF,OAAA,oBANR,IAAMoM,GAAe,CAAC,CAAE,OAAAzI,EAAQ,QAAAqE,EAAS,SAAAuD,CAAS,IAAyB,CACzE,GAAM,CAAE,MAAAlK,EAAO,MAAAgL,CAAM,EAAIxI,GAAoBF,CAAM,EAEnD,OACE3D,GAACwF,GAAA,CACC,QACExF,GAACuF,GAAA,CACC,KAAM,UAAU5B,IAChB,QAASqE,EACT,SAAUuD,EACZ,EAEF,MACEvL,GAAC2C,EAAA,CAAM,MAAO0J,EAAO,GAAI,CAAE,OAAQ,SAAU,EAC1C,SAAAhL,EACH,EAEJ,CAEJ,EAEOiL,GAAQF,GDSX,OAEI,OAAApM,GAFJ,QAAAmB,OAAA,oBAvBJ,IAAMoL,GAAS,IAAM,CACnB,GAAM,CAAE,iBAAAC,EAAkB,oBAAAC,CAAoB,EAAI9L,EAAsB,EAElE,CAACuI,EAAUC,CAAc,EAAIC,EAAU,CAAC,CAACoD,EAAiB,MAAM,EAEhEE,EAAW3M,GACf,IACE,OAAO,OAAO4M,EAAU,EAAE,OAAOhJ,GAAUA,aAA6B,EAC1E,CAAC,CACH,EAEMmI,EAAelL,GAClB+C,GAAuB,CACtB8I,EACED,EAAiB,SAAS7I,CAAM,EAC5B6I,EAAiB,OAAOrG,GAAKA,IAAMxC,CAAM,EACzC,CAAC,GAAG6I,EAAkB7I,CAAM,CAClC,CACF,EACA,CAAC8I,EAAqBD,CAAgB,CACxC,EAEA,OACErL,GAACoJ,EAAA,CAAU,SAAUrB,EAAU,SAAUC,EACvC,UAAAnJ,GAACwK,EAAA,CACC,SAAAxK,GAACgB,GAAA,CAAW,QAAQ,QAAQ,WAAW,OAAO,MAAM,eAAe,kBAEnE,EACF,EAEAhB,GAACyK,EAAA,CACC,SAAAzK,GAACe,GAAA,CAAM,GAAI,GACR,SAAA2L,EAAS,IAAI/I,GACZ3D,GAACsM,GAAA,CAEC,OAAQ3I,EACR,QAAS6I,EAAiB,SAAS7I,CAAM,EACzC,SAAU,IAAMmI,EAAanI,CAAM,GAH9BA,CAIP,CACD,EACH,EACF,GACF,CAEJ,EAEOiJ,GAAQL,GEhDX,mBAAApK,GACE,OAAAnC,GADF,QAAAmB,OAAA,oBANJ,IAAM0L,GAAU,IAAM,CACpB,GAAM,CAAE,SAAA1M,CAAS,EAAIM,EAAgB,EAE/B,CAAE,iBAAAqM,CAAiB,EAAI3M,EAE7B,OACEgB,GAAAgB,GAAA,CACE,UAAAnC,GAACmL,GAAA,EAAS,EAET,CAAC,CAAC2B,GAAoB9M,GAACmM,GAAA,CAAQ,WAAYW,EAAkB,EAE9D9M,GAAC4M,GAAA,EAAO,EAER5M,GAAC+L,GAAA,EAAS,GACZ,CAEJ,EAEOgB,GAAQF,GCzBf,OAAOG,OAAe,uBACtB,OAAS,UAAAhL,OAAc,uBAIhB,IAAMe,GAASf,GAAOgL,EAAS,EAAE,CAAC,CAAE,MAAA9K,CAAM,KAAO,CACtD,WAAYA,EAAM,QAAQ,OAAO,KACnC,EAAE,EAEW+K,GAAejL,GAAOgL,EAAS,EAAE,CAAC,CAAE,MAAA9K,CAAM,KAAO,CAC5D,MAAOA,EAAM,QAAQ,KAAK,UAE1B,UAAW,CACT,WAAYA,EAAM,QAAQ,OAAO,KACnC,EAEA,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,OAAQ,aAAaA,EAAM,QAAQ,UAEnC,WAAY,UACZ,SAAU,EACV,SAAU,GACV,SAAU,GACV,OAAQ,GACR,MAAO,GACP,SAAU,SAEV,oBAAqB,CACnB,OAAQ,CACV,CACF,CACF,EAAE,EAEWgL,GAAclL,GAAOmL,EAAiB,EAAE,CAAC,CAAE,MAAAjL,CAAM,KAAO,CACnE,sBAAuB,CACrB,MAAO,IACP,QAASA,EAAM,QAAQ,CAAC,EACxB,gBAAiBA,EAAM,QAAQ,WAAW,MAC1C,aAAcA,EAAM,QAAQ,CAAC,EAC7B,gBAAiB,OAEjB,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,MAAO,mBACT,CACF,CACF,EAAE,ETgBE,mBAAAC,GAUiB,OAAAnC,EAHb,QAAAmB,OAPJ,oBA3CJ,IAAMiM,GAAU,IAAM,CACpB,IAAMC,EAAWC,GAAc,OAAQ,IAAI,EAErC,CAAE,MAAAlN,EAAO,SAAAD,EAAU,QAAAG,CAAQ,EAAIG,EAAgB,EAE/C,CACJ,WAAA8M,EACA,uBAAAC,EACA,iBAAAvC,EACA,gBAAAgB,EACA,iBAAAO,CACF,EAAIlM,EAEEmN,EAAqB1N,GAAQ,IAAM,CACvC,IAAM2N,EAAevN,EAAS,iBAAmB8L,EAAgB,OAAS,EAE1E,OAAOhB,EAAiB,OAASyC,EAAelB,EAAiB,MACnE,EAAG,CACDrM,EAAS,iBACT8K,EAAiB,OACjBgB,EAAgB,OAChBO,EAAiB,MACnB,CAAC,EAEKmB,EAAoBC,GAAW,EAC/BC,EAAgBD,GAAW,EAE3B,CAACE,EAAaC,CAAiB,EAAI3E,EAAU,EAE7C4E,GAAuBpN,GAC1BJ,GAA2B,CAC1BgN,EAAuBhN,CAAK,EAC5BmN,EAAkB,QAAQ,CAC5B,EACA,CAACH,EAAwBG,CAAiB,CAC5C,EAEMM,GACJV,EAAW,iBACPW,GAAqBX,EAAW,MAAM,EACtCY,GAAqBZ,EAAW,WAAYA,EAAW,QAAQ,EAErE,OACEpM,GAAAgB,GAAA,CACE,UAAAhB,GAACJ,GAAA,CACC,UAAW,CAAE,GAAI,SAAU,GAAI,KAAM,EACrC,WAAY,CAAE,GAAI,aAAc,GAAI,QAAS,EAC7C,eAAe,gBACf,IAAK,IAEL,UAAAI,GAACJ,GAAA,CAAM,MAAM,OAAO,UAAU,MAAM,WAAW,SAAS,IAAK,IAC3D,UAAAf,EAAC+C,GAAA,CACC,QAAQ,WACR,QAAS/C,EAACwD,EAAA,CAAK,KAAK,oBAAoB,EACxC,MAAM,UACN,KAAK,QACL,UAAW6J,EACX,QAASM,EAAkB,OAE1B,SAAAN,EAAW,aAAYY,GAC1B,EAEAjO,EAACuI,GAAA,CACC,aAAckF,EACd,UAAWA,IAAuB,EAClC,MAAM,UAEN,SAAAzN,EAAC+C,GAAA,CACC,QAAQ,WACR,UAAW/C,EAACwD,EAAA,CAAK,KAAK,cAAc,EACpC,MAAM,UACN,KAAK,QACL,UAAW6J,EACX,QAASU,EACV,mBAED,EACF,EAECV,GACCrN,EAACiN,GAAA,CACC,QAAQ,OACR,UAAWjN,EAACwD,EAAA,CAAK,KAAK,qBAAqB,EAC3C,KAAK,QACL,QAASqK,EAAc,OACvB,GAAI,CAAE,QAAS,MAAO,EACvB,oBAED,GAEJ,EAEC,CAACR,GACArN,EAACiN,GAAA,CACC,QAAQ,OACR,UAAWjN,EAACwD,EAAA,CAAK,KAAK,qBAAqB,EAC3C,KAAK,QACL,MAAM,UACN,QAASqK,EAAc,OACvB,GAAI,CAAE,QAAS,MAAO,EACvB,oBAED,GAEJ,EAEA7N,EAACkN,GAAA,CACC,KAAMS,EAAkB,KACxB,QAASA,EAAkB,QAC3B,MAAON,EAAW,aAAe,WACjC,gBAAiB,CAAE,QAAS,CAAE,EAC9B,cAAa,GAEZ,SAAAjN,EAAM,iBAAiB,CACtB,MAAOmN,EACP,OAAQS,GACR,QAASL,EAAkB,OAC7B,CAAC,EACH,EAEAxM,GAAC+L,GAAA,CACC,KAAMW,EAAc,KACpB,QAASA,EAAc,QACvB,MAAM,YACN,cAAa,GAEb,UAAA7N,EAAC0E,EAAA,CAAS,yBAAa,EACvB1E,EAAC0E,EAAA,CAAS,wBAAY,EACtB1E,EAAC0E,EAAA,CAAS,wBAAY,GACxB,EAEA1E,EAACoO,GAAA,CACC,KAAMN,EACN,QAASC,EACT,YAAY,UACZ,YAAa,CAAE,UAAW,aAAc,EACxC,aAAc,CAAE,EAAG,CAAE,EACrB,SAAU,IAEV,SAAA/N,EAAC+M,GAAA,EAAQ,EACX,GACF,CAEJ,EAEOsB,GAAQjB","sourcesContent":["import { createContext, useContext, useMemo } from 'react';\n\nimport useCartsFilters, { UseCartsFiltersReturn } from 'hooks/useCartsFilters';\nimport { CartsProviderProps, CartsValue } from 'types/carts';\n\nconst CartsContext = createContext<CartsValue | null>(null);\n\nconst CartsProvider = ({ adapters, slots, children }: CartsProviderProps) => {\n const filters = useCartsFilters();\n\n const value = useMemo(\n () => ({ adapters, slots, filters }),\n [adapters, slots, filters],\n );\n\n return (\n <CartsContext.Provider value={value}>{children}</CartsContext.Provider>\n );\n};\n\nconst useCartsContext = (): CartsValue => {\n const context = useContext(CartsContext);\n\n if (!context) {\n throw new Error('useCartsContext must be used within a CartsProvider');\n }\n\n return context;\n};\n\nconst useCartsFilterContext = (): UseCartsFiltersReturn =>\n useCartsContext().filters;\n\nexport { CartsProvider, useCartsContext, useCartsFilterContext };\n","import { useCallback } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { useCartsContext } from 'components/Analytics/Carts/context';\nimport Icon from 'components/Icon';\nimport { CartDetailProps } from 'types/carts';\n\nimport Informations from './Informations';\nimport Items from './Items';\nimport { Card, WhatsAppButton } from './styles';\n\nconst CartDetail = ({ cart }: CartDetailProps) => {\n const { slots } = useCartsContext();\n\n const phone = cart?.partner?.phone?.replace(/\\D/g, '');\n\n const handleWhatsAppClick = useCallback(() => {\n const message = slots.buildRecoveryMessage(cart);\n\n const url = phone\n ? `https://wa.me/${phone}?text=${encodeURIComponent(message)}`\n : `https://wa.me/?text=${encodeURIComponent(message)}`;\n\n window.open(url, '_blank', 'noopener,noreferrer');\n }, [cart, phone, slots]);\n\n return (\n <Stack\n display=\"grid\"\n gridTemplateColumns={{ xs: '1fr', md: '2fr 1fr' }}\n gap={3}\n >\n <Stack\n position={{ md: 'relative' }}\n sx={{ order: { xs: 2, md: 1 } }}\n overflow=\"hidden\"\n >\n <Stack\n position={{ md: 'absolute' }}\n minHeight={{ md: 0 }}\n sx={{ inset: { md: 0 } }}\n >\n <Items cart={cart} />\n </Stack>\n </Stack>\n\n <Stack gap={3} sx={{ order: { xs: 1, md: 2 } }} overflow=\"hidden\">\n <Card variant=\"outlined\">\n <CardHeader\n title={\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n Informações\n </Typography>\n }\n />\n\n <CardContent>\n <Informations cart={cart} />\n </CardContent>\n </Card>\n\n <Card variant=\"outlined\" sx={{ order: { xs: 1, md: 2 } }}>\n <CardHeader\n title={\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n Recuperar carrinho abandonado\n </Typography>\n }\n />\n\n <CardContent>\n <Stack gap={3}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Envie uma mensagem pelo WhatsApp para o cliente com o link deste\n carrinho abandonado e incentive a finalização da compra.\n </Typography>\n\n <Stack gap={1.5}>\n <WhatsAppButton\n variant=\"contained\"\n startIcon={<Icon icon=\"WHATSAPP\" />}\n size=\"small\"\n onClick={handleWhatsAppClick}\n >\n Enviar carrinho por WhatsApp\n </WhatsAppButton>\n\n {slots.renderRecoveryActions?.(cart)}\n </Stack>\n </Stack>\n </CardContent>\n </Card>\n </Stack>\n </Stack>\n );\n};\n\nexport default CartDetail;\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { useCartsContext } from 'components/Analytics/Carts/context';\nimport { CartDetailProps } from 'types/carts';\nimport { getProfileName } from 'utils/carts';\nimport { fCurrencyBRL } from 'utils/formatNumber';\nimport { fDate, fTimeAgo } from 'utils/formatTime';\nimport { cpfMaskOrCnpjMask, phoneMask } from 'utils/mask';\n\nimport Row from './Row';\n\nconst Informations = ({ cart }: CartDetailProps) => {\n const { slots } = useCartsContext();\n\n return (\n <Stack gap={3}>\n <Stack gap={0.5}>\n <Row\n label=\"Criado em\"\n value={\n cart.created_at\n ? fDate(cart.created_at, 'DD/MM/YYYY [às] HH:mm')\n : '-'\n }\n />\n\n <Row label=\"Usuário\" value={slots.renderDetailUserName(cart)} />\n\n <Row\n label=\"Tipo de usuário\"\n value={getProfileName(cart.user?.profile) || '-'}\n />\n\n <Row\n label=\"Última atualização\"\n value={fTimeAgo(cart.updated_at, 'instant') ?? '-'}\n />\n </Stack>\n\n <Divider sx={{ borderStyle: 'dashed' }} />\n\n <Stack gap={0.5}>\n <Row\n label=\"Cliente\"\n value={\n <Stack alignItems=\"flex-end\" minWidth={0}>\n {slots.renderDetailPartnerName(cart)}\n\n {cart.partner?.tax_id && (\n <Typography\n variant=\"body2\"\n fontSize={13}\n color=\"text.secondary\"\n maxWidth=\"100%\"\n noWrap\n >\n {cpfMaskOrCnpjMask(cart.partner.tax_id)}\n </Typography>\n )}\n </Stack>\n }\n />\n\n <Row label=\"E-mail\" value={cart.partner?.email || '-'} />\n\n <Row\n label=\"Contato\"\n value={cart.partner?.phone ? phoneMask(cart.partner.phone) : '-'}\n />\n </Stack>\n\n <Divider sx={{ borderStyle: 'dashed' }} />\n\n <Stack gap={0.5}>\n <Row\n label=\"Forma de pagamento\"\n value={cart.payment_method?.name || '-'}\n />\n\n <Row\n label=\"Subtotal\"\n value={cart.total != null ? fCurrencyBRL(cart.total) : '-'}\n />\n </Stack>\n </Stack>\n );\n};\n\nexport default Informations;\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { RowProps } from './props';\n\nconst Row = ({ label, value }: RowProps) => (\n <Stack\n direction=\"row\"\n justifyContent=\"space-between\"\n gap={1.5}\n overflow=\"hidden\"\n >\n <Typography variant=\"body2\" color=\"text.secondary\" flexShrink={0}>\n {label}:\n </Typography>\n\n <Typography\n component=\"div\"\n variant=\"body2\"\n fontWeight={500}\n color=\"text.primary\"\n noWrap\n >\n {value}\n </Typography>\n </Stack>\n);\n\nexport default memo(Row);\n","import Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridRenderCellParams } from '@mui/x-data-grid-premium';\n\nimport { useCartsContext } from 'components/Analytics/Carts/context';\nimport DataView from 'components/DataView';\nimport DataViewMobileItem from 'components/DataViewMobileItem';\nimport Label from 'components/Label';\nimport { CartDetailProps, CartItem, CartsSlots } from 'types/carts';\nimport { renderCurrencyValue } from 'utils/carts';\n\nimport { MobileHeader } from './styles';\n\nconst getProductCell = (item: CartItem) => {\n if (!item.product_name && !item.product_sku && !item.unit_name) {\n return (\n <Typography variant=\"body2\" color=\"text.primary\" noWrap>\n -\n </Typography>\n );\n }\n\n return (\n <Stack justifyContent=\"center\" height={1}>\n {item.product_name && (\n <Typography variant=\"body2\" color=\"text.primary\" noWrap>\n {item.product_name}\n </Typography>\n )}\n\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Typography variant=\"caption\" color=\"text.secondary\" noWrap>\n Cód.: {item.product_sku || '-'}\n </Typography>\n\n <Divider\n orientation=\"vertical\"\n flexItem\n sx={{ borderStyle: 'dashed' }}\n />\n\n <Typography variant=\"caption\" color=\"text.secondary\" noWrap>\n Unidade: {item.unit_name || '-'}\n </Typography>\n </Stack>\n </Stack>\n );\n};\n\nconst getMobileRender = (item: CartItem, slots: CartsSlots) => {\n return (\n <DataViewMobileItem key={item.id}>\n <Stack gap={1}>\n {slots.renderProductImage(item)}\n\n {item.product_name && (\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {item.product_name || '-'}\n </Typography>\n )}\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Cód.: {item.product_sku || '-'}\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Unidade: {item.unit_name || '-'}\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Valor:{' '}\n <Typography\n component=\"span\"\n variant=\"subtitle2\"\n color=\"text.primary\"\n noWrap\n >\n {renderCurrencyValue(item.price)}\n </Typography>\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\" noWrap>\n Qtd. de itens:{' '}\n <Typography\n component=\"span\"\n variant=\"subtitle2\"\n color=\"text.primary\"\n noWrap\n >\n {item.quantity}\n </Typography>\n </Typography>\n </Stack>\n\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Subtotal:{' '}\n <Typography\n component=\"span\"\n variant=\"subtitle2\"\n color=\"text.primary\"\n >\n {renderCurrencyValue(item.total)}\n </Typography>\n </Typography>\n </Stack>\n </Stack>\n </DataViewMobileItem>\n );\n};\n\nconst Items = ({ cart }: CartDetailProps) => {\n const { slots } = useCartsContext();\n\n return (\n <DataView\n title=\"Itens\"\n header={\n <Stack direction=\"row\" alignItems=\"center\" gap={1}>\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n Itens\n </Typography>\n\n <Label variant=\"soft\" color=\"primary\">\n {cart.items.length || 0}\n </Label>\n </Stack>\n }\n headerProps={{ p: { xs: 3, md: 0 }, pb: { md: 1.5 } }}\n columns={[\n {\n field: 'image',\n headerName: 'Imagem',\n flex: 1,\n sortable: false,\n align: 'center',\n headerAlign: 'center',\n renderCell: ({ row }: GridRenderCellParams) => (\n <>{slots.renderProductImage(row as CartItem)}</>\n ),\n },\n {\n field: 'product_name',\n headerName: 'Produtos',\n flex: 3,\n sortable: false,\n renderCell: ({ row }: GridRenderCellParams) => getProductCell(row),\n },\n {\n field: 'price',\n headerName: 'Valor',\n flex: 1,\n sortable: false,\n renderCell: ({ row }: GridRenderCellParams) =>\n renderCurrencyValue((row as CartItem).price),\n },\n {\n field: 'quantity',\n headerName: 'Qtd. de itens',\n flex: 1,\n sortable: false,\n },\n {\n field: 'total',\n headerName: 'Subtotal',\n flex: 1,\n sortable: false,\n renderCell: ({ row }: GridRenderCellParams) =>\n renderCurrencyValue((row as CartItem).total),\n },\n ]}\n rows={cart.items}\n mobileSlots={<MobileHeader />}\n mobileRender={(data: CartItem) => getMobileRender(data, slots)}\n hideFooter\n disableRowSelectionOnClick\n disableColumnFilter\n disableColumnMenu\n disableColumnSorting\n disableColumnResize\n disableColumnPinning\n containerProps={{ height: '100%', sx: { p: { xs: 0, md: 3 } } }}\n />\n );\n};\n\nexport default Items;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const MobileHeader = styled(Stack)(({ theme }) => ({\n position: 'sticky',\n borderBottom: `1px solid ${theme.palette.divider}`,\n}));\n","import Button from '@mui/material/Button';\nimport MuiCard from '@mui/material/Card';\nimport { styled } from '@mui/material/styles';\n\nexport const Card = styled(MuiCard)({\n width: '100%',\n height: 'fit-content',\n boxShadow: 'none',\n});\n\nexport const WhatsAppButton = styled(Button)(({ theme }) => ({\n background: theme.palette.success.main,\n color: theme.palette.success.contrastText,\n\n '&:hover': {\n background: theme.palette.success.dark,\n },\n}));\n","import { memo } from 'react';\nimport Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridRenderCellParams, GridRowParams } from '@mui/x-data-grid-premium';\n\nimport { useCartsContext } from 'components/Analytics/Carts/context';\nimport CartStatusLabel from 'components/Analytics/Carts/StatusLabel';\nimport DataView from 'components/DataView';\nimport DataViewMobileItem from 'components/DataViewMobileItem';\nimport MenuItem from 'components/MenuItem';\nimport MoreMenu from 'components/MoreMenu';\nimport { Cart, CartsListProps, CartsSlots } from 'types/carts';\nimport { getProfileName, Profile, renderCurrencyValue } from 'utils/carts';\nimport { fDate, fTimeAgo } from 'utils/formatTime';\nimport { cpfMaskOrCnpjMask } from 'utils/mask';\n\nimport { MobileHeader } from './styles';\n\nconst getPartnerName = (cart: Cart, slots: CartsSlots) => {\n return (\n <Stack justifyContent=\"center\" height={1}>\n {cart?.partner?.name ? (\n <>\n {slots.renderPartnerName(cart)}\n\n <Typography variant=\"body2\" fontSize={13} color=\"text.secondary\">\n {cart?.partner?.tax_id\n ? cpfMaskOrCnpjMask(cart?.partner?.tax_id)\n : '-'}\n </Typography>\n </>\n ) : (\n '-'\n )}\n </Stack>\n );\n};\n\nconst getUserName = (cart: Cart, slots: CartsSlots) => {\n return (\n <Stack justifyContent=\"center\" height={1}>\n {cart?.user?.name ? (\n <>\n {slots.renderUserName(cart)}\n\n <Typography variant=\"body2\" fontSize={13} color=\"text.secondary\">\n {cart?.user?.profile === Profile.PARTNER ? 'Cliente' : 'Vendedor'}\n </Typography>\n </>\n ) : (\n '-'\n )}\n </Stack>\n );\n};\n\nconst getCreatedAt = (cart: Cart) => {\n return (\n <Stack justifyContent=\"center\" height={1}>\n {cart?.created_at ? (\n <>\n <Typography variant=\"body2\" color=\"text.primary\">\n {fDate(cart?.created_at, 'DD/MM/YYYY')}\n </Typography>\n\n <Typography variant=\"body2\" color=\"text.secondary\">\n {fDate(cart?.created_at, '[às] HH:mm')}\n </Typography>\n </>\n ) : (\n '-'\n )}\n </Stack>\n );\n};\n\nconst getUpdatedAt = (cart: Cart) => {\n return (\n <Stack justifyContent=\"center\" height={1}>\n {cart?.updated_at ? (\n <Typography variant=\"body2\" color=\"text.primary\" noWrap>\n {fTimeAgo(cart?.updated_at, 'instant')}\n </Typography>\n ) : (\n '-'\n )}\n </Stack>\n );\n};\n\nconst getStatus = (cart: Cart) => {\n return (\n <Stack justifyContent=\"center\" height={1}>\n <CartStatusLabel status={cart?.status} />\n </Stack>\n );\n};\n\nconst getActions = (cart: Cart) => {\n const handleSendWhatsAppMessage = () => {\n const phone = cart?.partner?.phone?.replace(/\\D/g, '');\n window.open(`https://wa.me/${phone}`, '_blank');\n };\n\n const handleSendEmail = () => {\n window.location.href = `mailto:${cart?.partner?.email}`;\n };\n\n return (\n <MoreMenu\n key={cart.id}\n actions={\n <>\n <MenuItem\n onClick={handleSendWhatsAppMessage}\n disabled={!cart?.partner?.phone}\n >\n Enviar mensagem por WhatsApp\n </MenuItem>\n\n <MenuItem onClick={handleSendEmail} disabled={!cart?.partner?.email}>\n Enviar e-mail\n </MenuItem>\n </>\n }\n />\n );\n};\n\nconst getMobileRender = (cart: Cart, slots: CartsSlots) => {\n return (\n <DataViewMobileItem key={cart.id}>\n {slots.renderCartLink(\n cart,\n <Stack gap={1}>\n <Stack>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Nome do cliente\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n {cart?.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 Usuário\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {cart?.user?.name || '-'}\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 Tipo de usuário\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {getProfileName(cart.user?.profile) || '-'}\n </Typography>\n </Stack>\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\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {renderCurrencyValue(cart?.amount_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 Qtd. de itens\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {cart?.item_quantity ?? 0}\n </Typography>\n </Stack>\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 Criado em\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {cart?.created_at ? fDate(cart?.created_at, 'DD/MM/YYYY') : '-'}\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 Última atualização\n </Typography>\n\n <Typography variant=\"subtitle2\" color=\"text.primary\" noWrap>\n {fTimeAgo(cart?.updated_at, 'instant') ?? '-'}\n </Typography>\n </Stack>\n </Stack>\n\n <Stack gap={0.5}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Status\n </Typography>\n\n {cart?.status ? (\n <CartStatusLabel status={cart.status} />\n ) : (\n <Typography variant=\"subtitle2\" color=\"text.primary\">\n -\n </Typography>\n )}\n </Stack>\n </Stack>,\n )}\n\n <Stack position=\"absolute\" top={10} right={10}>\n {getActions(cart)}\n </Stack>\n </DataViewMobileItem>\n );\n};\n\nconst CartsList = ({\n apiRef,\n carts,\n isLoading,\n isFetching,\n isFetchingNextPage,\n onRowsScrollEnd,\n}: CartsListProps) => {\n const { slots, filters } = useCartsContext();\n\n const { sortModel, handleSortModelChange } = filters;\n\n const handleRowDoubleClick = ({ row }: GridRowParams) => {\n slots.onOpenCart(row as Cart);\n };\n\n return (\n <DataView\n apiRef={apiRef}\n title=\"Lista de carrinhos\"\n header={\n <Typography variant=\"h6\" color=\"text.primary\">\n Lista de carrinhos\n </Typography>\n }\n columns={[\n {\n field: 'partner_name',\n headerName: 'Nome do cliente',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n getPartnerName(row, slots),\n },\n {\n field: 'user_name',\n headerName: 'Usuário',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n getUserName(row, slots),\n },\n {\n field: 'amount_value',\n headerName: 'Valor',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n renderCurrencyValue((row as Cart).amount_value),\n },\n {\n field: 'item_quantity',\n headerName: 'Qtd. de itens',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) =>\n (row as Cart).item_quantity,\n },\n {\n field: 'created_at',\n headerName: 'Criado em',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getCreatedAt(row),\n },\n {\n field: 'status',\n headerName: 'Status',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getStatus(row),\n },\n {\n field: 'updated_at',\n headerName: 'Última atualização',\n flex: 1,\n renderCell: ({ row }: GridRenderCellParams) => getUpdatedAt(row),\n },\n {\n field: 'actions',\n type: 'actions',\n headerName: 'Ações',\n maxWidth: 80,\n getActions: (params: GridRowParams) => [getActions(params.row)],\n },\n ]}\n rows={carts}\n mobileSlots={\n <MobileHeader>\n <Typography variant=\"body2\" fontWeight={600} color=\"text.secondary\">\n Carrinhos\n </Typography>\n </MobileHeader>\n }\n mobileRender={(data: Cart) => getMobileRender(data, slots)}\n loading={isLoading}\n fetching={isFetching && !isFetchingNextPage}\n fetchingNextPage={isFetchingNextPage}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={600}\n onRowDoubleClick={handleRowDoubleClick}\n disableRowSelectionOnClick\n disableColumnMenu\n sortingMode=\"server\"\n sortModel={sortModel}\n onSortModelChange={handleSortModelChange}\n slots={{\n noRowsOverlay: () => <>{slots.renderEmptyState()}</>,\n }}\n />\n );\n};\n\nexport default memo(CartsList);\n","import Label from 'components/Label';\nimport { CART_STATUS_OPTIONS } from 'utils/carts';\n\nimport { CartStatusLabelProps } from './props';\n\nconst CartStatusLabel = ({ status }: CartStatusLabelProps) => {\n const option = CART_STATUS_OPTIONS[status];\n\n return (\n <Label color={option?.color} sx={{ width: 'fit-content' }}>\n {option?.label}\n </Label>\n );\n};\n\nexport default CartStatusLabel;\n","import MuiLink from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const Link = styled(MuiLink)(({ theme }) => ({\n fontWeight: 600,\n color: theme.palette.primary.main,\n\n cursor: 'pointer',\n\n '&:hover': {\n textDecoration: 'underline',\n },\n}));\n\nexport const MobileHeader = styled(Stack)(({ theme }) => ({\n position: 'sticky',\n\n padding: theme.spacing(1.5),\n\n background: theme.palette.background.neutral,\n}));\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\n\nimport { CartsSummaryProps } from 'types/carts';\n\nimport Amount from './Amount';\nimport Quantity from './Quantity';\n\nconst CartsSummary = ({ summary, isFetching }: CartsSummaryProps) => {\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n justifyContent=\"space-between\"\n gap={3}\n >\n <Quantity\n active={summary?.active}\n abandoned={summary?.abandoned}\n isFetching={isFetching}\n />\n\n <Amount\n active={summary?.active}\n abandoned={summary?.abandoned}\n isFetching={isFetching}\n />\n </Stack>\n );\n};\n\nexport default memo(CartsSummary);\n","import { memo, useState } from 'react';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Card from 'components/Analytics/Carts/Summary/Card';\nimport { formatPercentage } from 'components/Analytics/Carts/Summary/utils';\nimport { fCurrencyBRL } from 'utils/formatNumber';\n\nimport { AmountProps } from './props';\n\nconst Amount = ({ active, abandoned, isFetching }: AmountProps) => {\n const [showActive, setShowActive] = useState(true);\n const [showAbandoned, setShowAbandoned] = useState(true);\n\n const activeValue = showActive ? (active?.amount_value ?? 0) : 0;\n const abandonedValue = showAbandoned ? (abandoned?.amount_value ?? 0) : 0;\n const total = activeValue + abandonedValue;\n\n const series = [\n { name: 'Ativos', data: [activeValue] },\n { name: 'Abandonados', data: [abandonedValue] },\n ];\n\n return (\n <Card\n title=\"Valor em carrinhos\"\n subtitle={\n <Typography variant=\"subtitle2\" fontSize={20} fontWeight={700}>\n {fCurrencyBRL(total)}\n </Typography>\n }\n legend={\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={1.5}\n sx={{ mt: -1 }}\n >\n <FormControlLabel\n label=\"Ativos\"\n control={\n <Checkbox\n name=\"active\"\n size=\"small\"\n checked={showActive}\n onChange={(_, checked) => setShowActive(checked)}\n sx={{ '&.Mui-checked': { color: '#22C55E' } }}\n />\n }\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n noWrap\n title={`${formatPercentage(active?.amount_percentage ?? 0)} | ${fCurrencyBRL(active?.amount_value ?? 0)}`}\n >\n {formatPercentage(active?.amount_percentage ?? 0)}\n &ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(active?.amount_value ?? 0)}\n </Typography>\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={1.5}\n sx={{ mt: -1 }}\n >\n <FormControlLabel\n label=\"Abandonados\"\n control={\n <Checkbox\n name=\"abandoned\"\n size=\"small\"\n checked={showAbandoned}\n onChange={(_, checked) => setShowAbandoned(checked)}\n sx={{ '&.Mui-checked': { color: '#FF5630' } }}\n />\n }\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n noWrap\n title={`${formatPercentage(abandoned?.amount_percentage ?? 0)} | ${fCurrencyBRL(abandoned?.amount_value ?? 0)}`}\n >\n {formatPercentage(abandoned?.amount_percentage ?? 0)}\n &ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {fCurrencyBRL(abandoned?.amount_value ?? 0)}\n </Typography>\n </Typography>\n </Stack>\n </Stack>\n }\n series={series}\n isFetching={isFetching}\n />\n );\n};\n\nexport default memo(Amount);\n","import { memo, useMemo } from 'react';\nimport CardContent from '@mui/material/CardContent';\nimport CardHeader from '@mui/material/CardHeader';\nimport Stack from '@mui/material/Stack';\nimport { BarChart, ResponsiveContainer, XAxis, YAxis } from 'recharts';\n\nimport ChartLoading from 'components/Analytics/ChartLoading';\n\nimport Bar from './Bar';\nimport { SummaryCardProps } from './props';\nimport { Card as StyledCard } from './styles';\n\nconst Card = ({\n title,\n subtitle,\n legend,\n series,\n isFetching,\n}: SummaryCardProps) => {\n const isZero = useMemo(\n () => series.every(s => s.data.every(v => v === 0)),\n [series],\n );\n\n const chartData = useMemo(() => {\n if (isZero) return [{ empty: 100 }];\n\n const total = series.reduce((sum, s) => sum + (s.data[0] ?? 0), 0);\n\n const row: Record<string, number> = {};\n\n series.forEach(s => {\n row[s.name] = total > 0 ? (s.data[0] / total) * 100 : 0;\n });\n\n return [row];\n }, [series, isZero]);\n\n return (\n <StyledCard variant=\"outlined\">\n <CardHeader title={title} />\n\n <CardContent>\n <Stack gap={2}>\n <Stack gap={1}>\n {subtitle}\n\n <ChartLoading active={isFetching}>\n <ResponsiveContainer\n width=\"100%\"\n height={24}\n style={{ pointerEvents: 'none' }}\n >\n <BarChart\n data={chartData}\n layout=\"vertical\"\n stackOffset=\"none\"\n margin={{ top: 0, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={0}\n >\n <XAxis type=\"number\" hide domain={[0, 100]} />\n <YAxis type=\"category\" hide />\n\n <Bar series={series} isZero={isZero} />\n </BarChart>\n </ResponsiveContainer>\n </ChartLoading>\n </Stack>\n\n {legend}\n </Stack>\n </CardContent>\n </StyledCard>\n );\n};\n\nexport default memo(Card);\n","import { Bar as RechartsBar } from 'recharts';\n\nimport { BarListProps } from './props';\nimport { getBarRadius } from './utils';\n\nconst COLORS = ['#22C55E', '#FF5630'];\nconst EMPTY_COLOR = '#E5E7EB';\n\nconst Bar = ({ series, isZero }: BarListProps) => {\n if (isZero) {\n return (\n <RechartsBar\n dataKey=\"empty\"\n stackId=\"stack\"\n fill={EMPTY_COLOR}\n stroke=\"none\"\n radius={3}\n isAnimationActive={false}\n data-testid=\"bar-empty\"\n />\n );\n }\n\n return (\n <>\n {series.map((serie, index) => (\n <RechartsBar\n key={index}\n dataKey={serie.name}\n stackId=\"stack\"\n fill={COLORS[index]}\n stroke=\"none\"\n radius={getBarRadius(index, series)}\n isAnimationActive={false}\n data-testid={`bar-${index}`}\n />\n ))}\n </>\n );\n};\n\nexport default Bar;\n","import { SummaryCardSeries } from './props';\n\nconst RADIUS = 3;\n\nexport const getBarRadius = (\n index: number,\n series: SummaryCardSeries[],\n): [number, number, number, number] => {\n const isFirstVisible = index === series.findIndex(s => s.data[0] > 0);\n const isLastVisible =\n index === series.map(s => s.data[0] > 0).lastIndexOf(true);\n\n if (isFirstVisible && isLastVisible) return [RADIUS, RADIUS, RADIUS, RADIUS];\n if (isFirstVisible) return [RADIUS, 0, 0, RADIUS];\n if (isLastVisible) return [0, RADIUS, RADIUS, 0];\n\n return [0, 0, 0, 0];\n};\n","import MuiCard from '@mui/material/Card';\nimport { styled } from '@mui/material/styles';\n\nexport const Card = styled(MuiCard)(({ theme }) => ({\n width: '100%',\n height: 'auto',\n\n border: `1px solid ${theme.palette.divider}`,\n\n boxShadow: 'none',\n overflow: 'visible',\n}));\n","import { fPercent } from 'utils/formatNumber';\n\nexport const formatPercentage = (value: number) =>\n fPercent(value, {\n maximumFractionDigits: 2,\n ...(value > 0 && value < 100 ? { minimumFractionDigits: 2 } : {}),\n });\n","import { memo, useState } from 'react';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Card from 'components/Analytics/Carts/Summary/Card';\nimport { formatPercentage } from 'components/Analytics/Carts/Summary/utils';\n\nimport { QuantityProps } from './props';\n\nconst Quantity = ({ active, abandoned, isFetching }: QuantityProps) => {\n const [showActive, setShowActive] = useState(true);\n const [showAbandoned, setShowAbandoned] = useState(true);\n\n const activeValue = showActive ? (active?.quantity_value ?? 0) : 0;\n const abandonedValue = showAbandoned ? (abandoned?.quantity_value ?? 0) : 0;\n const total = activeValue + abandonedValue;\n\n const series = [\n { name: 'Ativos', data: [activeValue] },\n { name: 'Abandonados', data: [abandonedValue] },\n ];\n\n return (\n <Card\n title=\"Quantidade de carrinhos\"\n subtitle={\n <Typography variant=\"subtitle2\" fontSize={20} fontWeight={700}>\n {total}{' '}\n <Typography\n component=\"span\"\n variant=\"body2\"\n fontSize={13}\n color=\"text.secondary\"\n >\n carrinho{total !== 1 && 's'}\n </Typography>\n </Typography>\n }\n legend={\n <Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={1.5}\n sx={{ mt: -1 }}\n >\n <FormControlLabel\n label=\"Ativos\"\n control={\n <Checkbox\n name=\"active\"\n size=\"small\"\n checked={showActive}\n onChange={(_, checked) => setShowActive(checked)}\n sx={{ '&.Mui-checked': { color: '#22C55E' } }}\n />\n }\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n noWrap\n title={`${formatPercentage(active?.quantity_percentage ?? 0)} ${\n active?.quantity_value ?? 0\n } | carrinho${active?.quantity_value !== 1 ? 's' : ''}`}\n >\n {formatPercentage(active?.quantity_percentage ?? 0)}\n &ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {active?.quantity_value ?? 0} carrinho\n {active?.quantity_value !== 1 ? 's' : ''}\n </Typography>\n </Typography>\n </Stack>\n\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap={1.5}\n sx={{ mt: -1 }}\n >\n <FormControlLabel\n label=\"Abandonados\"\n control={\n <Checkbox\n name=\"abandoned\"\n size=\"small\"\n checked={showAbandoned}\n onChange={(_, checked) => setShowAbandoned(checked)}\n sx={{ '&.Mui-checked': { color: '#FF5630' } }}\n />\n }\n />\n\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n noWrap\n title={`${formatPercentage(abandoned?.quantity_percentage ?? 0)} ${\n abandoned?.quantity_value\n } | carrinho${abandoned?.quantity_value !== 1 ? 's' : ''}`}\n >\n {formatPercentage(abandoned?.quantity_percentage ?? 0)}\n &ensp;\n <Typography component=\"span\" variant=\"body2\" color=\"text.primary\">\n {abandoned?.quantity_value} carrinho\n {abandoned?.quantity_value !== 1 ? 's' : ''}\n </Typography>\n </Typography>\n </Stack>\n </Stack>\n }\n series={series}\n isFetching={isFetching}\n />\n );\n};\n\nexport default memo(Quantity);\n","import { useCallback, useMemo } from 'react';\nimport Badge from '@mui/material/Badge';\nimport Stack from '@mui/material/Stack';\n\nimport { useCartsContext } from 'components/Analytics/Carts/context';\nimport Drawer from 'components/Drawer';\nimport Icon from 'components/Icon';\nimport MenuItem from 'components/MenuItem';\nimport usePopover from 'hooks/usePopover';\nimport useResponsive from 'hooks/useResponsive';\nimport useToggle from 'hooks/useToggle';\nimport { FilterDateState } from 'types/analytics';\nimport { FILTER_PERIOD_LABELS, FilterPeriod } from 'utils/analytics';\nimport { fDateRangeShortLabel } from 'utils/formatTime';\n\nimport Filters from './Filters';\nimport { Button, ExportButton, MenuPopover } from './styles';\n\nconst Toolbar = () => {\n const isMobile = useResponsive('down', 'sm');\n\n const { slots, adapters, filters } = useCartsContext();\n\n const {\n dateFilter,\n handleDateFilterChange,\n selectedPartners,\n selectedSellers,\n selectedStatuses,\n } = filters;\n\n const activeFiltersCount = useMemo(() => {\n const sellersCount = adapters.useSellerOptions ? selectedSellers.length : 0;\n\n return selectedPartners.length + sellersCount + selectedStatuses.length;\n }, [\n adapters.useSellerOptions,\n selectedPartners.length,\n selectedSellers.length,\n selectedStatuses.length,\n ]);\n\n const dateFilterPopover = usePopover();\n const exportPopover = usePopover();\n\n const [filtersOpen, toggleFiltersOpen] = useToggle();\n\n const handleDateFilterSave = useCallback(\n (value: FilterDateState) => {\n handleDateFilterChange(value);\n dateFilterPopover.onClose();\n },\n [handleDateFilterChange, dateFilterPopover],\n );\n\n const dateButtonLabel =\n dateFilter.period !== FilterPeriod.OTHER\n ? FILTER_PERIOD_LABELS[dateFilter.period]\n : fDateRangeShortLabel(dateFilter.start_date, dateFilter.end_date);\n\n return (\n <>\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n alignItems={{ xs: 'flex-start', sm: 'center' }}\n justifyContent=\"space-between\"\n gap={1.5}\n >\n <Stack width=\"100%\" direction=\"row\" alignItems=\"center\" gap={1.5}>\n <Button\n variant=\"outlined\"\n endIcon={<Icon icon=\"ARROW_DOWN_SIMPLE\" />}\n color=\"inherit\"\n size=\"small\"\n fullWidth={isMobile}\n onClick={dateFilterPopover.onOpen}\n >\n {isMobile ? 'Período' : dateButtonLabel}\n </Button>\n\n <Badge\n badgeContent={activeFiltersCount}\n invisible={activeFiltersCount === 0}\n color=\"primary\"\n >\n <Button\n variant=\"outlined\"\n startIcon={<Icon icon=\"FILTER_LIST\" />}\n color=\"inherit\"\n size=\"small\"\n fullWidth={isMobile}\n onClick={toggleFiltersOpen}\n >\n Filtrar\n </Button>\n </Badge>\n\n {isMobile && (\n <ExportButton\n variant=\"text\"\n startIcon={<Icon icon=\"DOWNLOAD_EXPORT_04\" />}\n size=\"small\"\n onClick={exportPopover.onOpen}\n sx={{ display: 'none' }}\n >\n Exportar\n </ExportButton>\n )}\n </Stack>\n\n {!isMobile && (\n <ExportButton\n variant=\"text\"\n startIcon={<Icon icon=\"DOWNLOAD_EXPORT_04\" />}\n size=\"small\"\n color=\"inherit\"\n onClick={exportPopover.onOpen}\n sx={{ display: 'none' }}\n >\n Exportar\n </ExportButton>\n )}\n </Stack>\n\n <MenuPopover\n open={dateFilterPopover.open}\n onClose={dateFilterPopover.onClose}\n arrow={isMobile ? 'top-center' : 'top-left'}\n TransitionProps={{ timeout: 0 }}\n disabledArrow\n >\n {slots.renderDateFilter({\n value: dateFilter,\n onSave: handleDateFilterSave,\n onClose: dateFilterPopover.onClose,\n })}\n </MenuPopover>\n\n <MenuPopover\n open={exportPopover.open}\n onClose={exportPopover.onClose}\n arrow=\"top-right\"\n disabledArrow\n >\n <MenuItem>Exportar XLSX</MenuItem>\n <MenuItem>Exportar CSV</MenuItem>\n <MenuItem>Exportar PDF</MenuItem>\n </MenuPopover>\n\n <Drawer\n open={filtersOpen}\n onClose={toggleFiltersOpen}\n headerTitle=\"Filtros\"\n headerProps={{ direction: 'row-reverse' }}\n contentProps={{ p: 0 }}\n maxWidth={400}\n >\n <Filters />\n </Drawer>\n </>\n );\n};\n\nexport default Toolbar;\n","import { useCallback, useMemo, useState } from 'react';\nimport Chip from '@mui/material/Chip';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n} from 'components/Accordion';\nimport Autocomplete from 'components/Autocomplete';\nimport Result from 'components/Result';\nimport SimpleCard from 'components/SimpleCard';\nimport useAutocomplete from 'hooks/useAutocomplete';\nimport useToggle from 'hooks/useToggle';\nimport { SelectedCartFilterOption } from 'types/carts';\n\nimport { OptionsFilterProps } from './props';\n\nconst OptionsFilter = ({\n name,\n title,\n placeholder,\n emptyText,\n testIdPrefix,\n defaultExpanded,\n selected,\n onChange,\n useOptions,\n}: OptionsFilterProps) => {\n const [expanded, toggleExpanded] = useToggle(defaultExpanded);\n const [inputValue, setInputValue] = useState('');\n\n const {\n buildOptions,\n finishSearch,\n onSearch,\n onSelectValue,\n search,\n searching,\n } = useAutocomplete();\n\n const { items, isFetching, isLoading } = useOptions({\n search,\n skip: !expanded,\n });\n\n const options = useMemo(() => {\n if (searching || isFetching) return [];\n\n return buildOptions(\n items.map(({ id, name: itemName }) => ({\n value: id,\n label: itemName,\n })),\n isFetching,\n );\n }, [buildOptions, isFetching, items, searching]);\n\n const hasSelected = selected.length > 0;\n\n const handleSelectOption = useCallback(\n (value: unknown) => {\n onSelectValue(options, value);\n\n const optionId =\n typeof value === 'string'\n ? value\n : String((value as { value?: string | number } | null)?.value || '');\n\n const selectedOption = options.find(\n (option: { value?: string | number; label?: string }) =>\n String(option.value) === optionId,\n );\n\n const optionLabel =\n selectedOption?.label ||\n (typeof value === 'string'\n ? value\n : String((value as { label?: string } | null)?.label || ''));\n\n if (optionId && !selected.some(item => item.id === optionId)) {\n onChange([...selected, { id: optionId, name: optionLabel }]);\n }\n\n setInputValue('');\n },\n [onChange, onSelectValue, options, selected],\n );\n\n const handleDeleteOption = useCallback(\n (option: SelectedCartFilterOption) => {\n onChange(selected.filter(item => item.id !== option.id));\n },\n [onChange, selected],\n );\n\n return (\n <Accordion expanded={expanded} onChange={toggleExpanded}>\n <AccordionSummary>\n <Typography variant=\"body2\" fontWeight=\"bold\" color=\"text.primary\">\n {title}\n </Typography>\n </AccordionSummary>\n\n <AccordionDetails>\n <Stack gap={1}>\n <Autocomplete\n name={name}\n label={title}\n placeholder={placeholder}\n size=\"small\"\n options={options}\n isOptionEqualToValue={(option, value) =>\n option.value === value.value\n }\n loading={isLoading}\n inputValue={inputValue}\n onInputChange={(_, newValue) => setInputValue(newValue)}\n onSearch={onSearch}\n onBlur={finishSearch}\n onChange={handleSelectOption}\n filterOptions={filtered => filtered}\n noOptionsText={\n searching || isFetching ? 'Carregando...' : undefined\n }\n InputLabelProps={{ shrink: true }}\n fullWidth\n />\n\n <SimpleCard\n direction=\"row\"\n alignItems=\"center\"\n flexWrap=\"wrap\"\n overflow=\"auto\"\n maxHeight={148}\n p={1.5}\n sx={{ bgcolor: 'grey.50' }}\n >\n <Result\n isEmpty={!hasSelected}\n empty={\n <Typography variant=\"body2\" color=\"text.secondary\">\n {emptyText}\n </Typography>\n }\n >\n {selected.map((option, index) => (\n <Chip\n key={index}\n variant=\"outlined\"\n label={option.name}\n color=\"default\"\n onDelete={() => handleDeleteOption(option)}\n data-testid={`${testIdPrefix}-${index}`}\n />\n ))}\n </Result>\n </SimpleCard>\n </Stack>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default OptionsFilter;\n","import {\n useCartsContext,\n useCartsFilterContext,\n} from 'components/Analytics/Carts/context';\nimport OptionsFilter from 'components/Analytics/Carts/Toolbar/Filters/OptionsFilter';\n\nconst Partners = () => {\n const { adapters } = useCartsContext();\n const { selectedPartners, setSelectedPartners } = useCartsFilterContext();\n\n return (\n <OptionsFilter\n name=\"partners\"\n title=\"Clientes\"\n placeholder=\"Digite para buscar um cliente...\"\n emptyText=\"Nenhum cliente selecionado\"\n testIdPrefix=\"filter-partner\"\n defaultExpanded\n selected={selectedPartners}\n onChange={setSelectedPartners}\n useOptions={adapters.usePartnerOptions}\n />\n );\n};\n\nexport default Partners;\n","import { useCallback } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n} from 'components/Accordion';\nimport {\n useCartsContext,\n useCartsFilterContext,\n} from 'components/Analytics/Carts/context';\nimport useToggle from 'hooks/useToggle';\nimport { Profile } from 'utils/carts';\n\nimport ProfileOption from './ProfileOption';\n\nconst Profiles = () => {\n const { slots } = useCartsContext();\n const { selectedProfile, setSelectedProfile } = useCartsFilterContext();\n\n const { profileOptions } = slots;\n\n const [expanded, toggleExpanded] = useToggle(!!selectedProfile);\n\n const handleToggle = useCallback(\n (profile: Profile) => {\n setSelectedProfile(selectedProfile === profile ? null : profile);\n },\n [setSelectedProfile, selectedProfile],\n );\n\n return (\n <Accordion expanded={expanded} onChange={toggleExpanded}>\n <AccordionSummary>\n <Typography variant=\"body2\" fontWeight=\"bold\" color=\"text.primary\">\n Perfis\n </Typography>\n </AccordionSummary>\n\n <AccordionDetails>\n <Stack mt={-1}>\n {profileOptions.map(profile => (\n <ProfileOption\n key={profile}\n profile={profile}\n checked={selectedProfile === profile}\n onToggle={() => handleToggle(profile)}\n />\n ))}\n </Stack>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default Profiles;\n","import FormControlLabel from '@mui/material/FormControlLabel';\nimport Radio from '@mui/material/Radio';\n\nimport { CART_PROFILE_OPTIONS } from 'utils/carts';\n\nimport { ProfileOptionProps } from './props';\n\nconst ProfileOption = ({ profile, checked, onToggle }: ProfileOptionProps) => {\n const { label } = CART_PROFILE_OPTIONS[profile];\n\n return (\n <FormControlLabel\n control={\n <Radio\n name={`profile-${profile}`}\n checked={checked}\n onClick={onToggle}\n />\n }\n label={label}\n />\n );\n};\n\nexport default ProfileOption;\n","import { useCartsFilterContext } from 'components/Analytics/Carts/context';\nimport OptionsFilter from 'components/Analytics/Carts/Toolbar/Filters/OptionsFilter';\n\nimport { SellersProps } from './props';\n\nconst Sellers = ({ useOptions }: SellersProps) => {\n const { selectedSellers, setSelectedSellers } = useCartsFilterContext();\n\n return (\n <OptionsFilter\n name=\"sellers\"\n title=\"Vendedores\"\n placeholder=\"Digite para buscar um vendedor...\"\n emptyText=\"Nenhum vendedor selecionado\"\n testIdPrefix=\"filter-seller\"\n defaultExpanded={!!selectedSellers.length}\n selected={selectedSellers}\n onChange={setSelectedSellers}\n useOptions={useOptions}\n />\n );\n};\n\nexport default Sellers;\n","import { useCallback, useMemo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n} from 'components/Accordion';\nimport { useCartsFilterContext } from 'components/Analytics/Carts/context';\nimport useToggle from 'hooks/useToggle';\nimport { CartStatus } from 'utils/carts';\n\nimport StatusOption from './StatusOption';\n\nconst Status = () => {\n const { selectedStatuses, setSelectedStatuses } = useCartsFilterContext();\n\n const [expanded, toggleExpanded] = useToggle(!!selectedStatuses.length);\n\n const statuses = useMemo(\n () =>\n Object.values(CartStatus).filter(status => status !== CartStatus.EXPIRED),\n [],\n );\n\n const handleToggle = useCallback(\n (status: CartStatus) => {\n setSelectedStatuses(\n selectedStatuses.includes(status)\n ? selectedStatuses.filter(s => s !== status)\n : [...selectedStatuses, status],\n );\n },\n [setSelectedStatuses, selectedStatuses],\n );\n\n return (\n <Accordion expanded={expanded} onChange={toggleExpanded}>\n <AccordionSummary>\n <Typography variant=\"body2\" fontWeight=\"bold\" color=\"text.primary\">\n Status\n </Typography>\n </AccordionSummary>\n\n <AccordionDetails>\n <Stack mt={-1}>\n {statuses.map(status => (\n <StatusOption\n key={status}\n status={status}\n checked={selectedStatuses.includes(status)}\n onToggle={() => handleToggle(status)}\n />\n ))}\n </Stack>\n </AccordionDetails>\n </Accordion>\n );\n};\n\nexport default Status;\n","import Checkbox from '@mui/material/Checkbox';\nimport FormControlLabel from '@mui/material/FormControlLabel';\n\nimport Label from 'components/Label';\nimport { CART_STATUS_OPTIONS } from 'utils/carts';\n\nimport { StatusOptionProps } from './props';\n\nconst StatusOption = ({ status, checked, onToggle }: StatusOptionProps) => {\n const { label, color } = CART_STATUS_OPTIONS[status];\n\n return (\n <FormControlLabel\n control={\n <Checkbox\n name={`status-${status}`}\n checked={checked}\n onChange={onToggle}\n />\n }\n label={\n <Label color={color} sx={{ cursor: 'pointer' }}>\n {label}\n </Label>\n }\n />\n );\n};\n\nexport default StatusOption;\n","import { useCartsContext } from 'components/Analytics/Carts/context';\n\nimport Partners from './Partners';\nimport Profiles from './Profiles';\nimport Sellers from './Sellers';\nimport Status from './Status';\n\nconst Filters = () => {\n const { adapters } = useCartsContext();\n\n const { useSellerOptions } = adapters;\n\n return (\n <>\n <Partners />\n\n {!!useSellerOptions && <Sellers useOptions={useSellerOptions} />}\n\n <Status />\n\n <Profiles />\n </>\n );\n};\n\nexport default Filters;\n","import MuiButton from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\n\nimport CommonMenuPopover from 'components/MenuPopover';\n\nexport const Button = styled(MuiButton)(({ theme }) => ({\n background: theme.palette.common.white,\n}));\n\nexport const ExportButton = styled(MuiButton)(({ theme }) => ({\n color: theme.palette.text.secondary,\n\n '&:hover': {\n background: theme.palette.action.hover,\n },\n\n [theme.breakpoints.down('sm')]: {\n border: `1px solid ${theme.palette.divider}`,\n\n textIndent: '-9999em',\n fontSize: 0,\n minWidth: 30,\n maxWidth: 30,\n height: 30,\n width: 30,\n overflow: 'hidden',\n\n '& .MuiButton-icon': {\n margin: 0,\n },\n },\n}));\n\nexport const MenuPopover = styled(CommonMenuPopover)(({ theme }) => ({\n '& .MuiPopover-paper': {\n width: 540,\n padding: theme.spacing(3),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.spacing(1),\n backgroundImage: 'none',\n\n [theme.breakpoints.down('sm')]: {\n width: 'calc(100% - 48px)',\n },\n },\n}));\n"]}
@@ -1,85 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { P as Partner, O as OrderProjectionSummary, a as OrderProjectionEvent, b as PartnerDetails, c as PartnerOrder, d as PartnerSaleSummary, E as Event, e as PartnerAddress } from '../../../orderProjection-c6f4f71e.js';
3
- import { UseOrderProjectionFiltersReturn } from '../../../hooks/useOrderProjectionFilters.js';
4
- import { ReactNode } from 'react';
5
- import { GridQuery } from '../../../types/filter.js';
6
- import 'dayjs';
2
+ import { P as Partner, O as OrderProjectionSummary, a as OrderProjectionProviderProps, b as OrderProjectionValue, U as UseOrderProjectionFiltersReturn } from '../../../useOrderProjectionFilters-5c1162d5.js';
7
3
  import '../../../types/analytics.js';
8
4
  import '../../../utils/analytics.js';
5
+ import 'react';
6
+ import 'dayjs';
9
7
  import '../../../utils/partnerAnalysis.js';
10
- import '../../../types/entityMetadata.js';
11
-
12
- interface CalendarProps$1 {
13
- partners: Partner[];
14
- summary?: OrderProjectionSummary;
15
- isFetching: boolean;
16
- isFetchingSummary: boolean;
17
- onRowsScrollEnd: () => void;
18
- isFetchingNextPage: boolean;
19
- }
20
-
21
- declare const Calendar: ({ partners, summary, isFetching, isFetchingSummary, onRowsScrollEnd, isFetchingNextPage, }: CalendarProps$1) => react_jsx_runtime.JSX.Element;
22
8
 
23
- interface OrderProjectionOption {
24
- id: string;
25
- name: string;
26
- }
27
- interface OrderProjectionOptionsQuery {
28
- search?: string;
29
- skip: boolean;
30
- }
31
- interface OrderProjectionOptionsResult {
32
- items: OrderProjectionOption[];
33
- isLoading: boolean;
34
- isFetching: boolean;
35
- }
36
- interface OrderProjectionQueryResult<TData> {
37
- data?: TData;
38
- isLoading: boolean;
39
- isFetching: boolean;
40
- isError: boolean;
41
- refetch: () => void;
42
- }
43
- interface OrderProjectionAdapters {
44
- usePartnerOptions: (query: OrderProjectionOptionsQuery) => OrderProjectionOptionsResult;
45
- useProfileOptions: (query: OrderProjectionOptionsQuery) => OrderProjectionOptionsResult;
46
- useEventDetails: (eventId: string, options: {
47
- skip: boolean;
48
- }) => OrderProjectionQueryResult<OrderProjectionEvent>;
49
- usePartnerDetails: (partnerId: string, options: {
50
- skip: boolean;
51
- }) => OrderProjectionQueryResult<PartnerDetails>;
52
- usePartnerOrders: (query: GridQuery | null, options: {
53
- skip: boolean;
54
- }) => OrderProjectionQueryResult<{
55
- items: PartnerOrder[];
56
- }>;
57
- usePartnerSaleSummary: (partnerId: string, options: {
58
- skip: boolean;
59
- }) => OrderProjectionQueryResult<PartnerSaleSummary>;
60
- }
61
- interface OrderProjectionSlots {
62
- getEventCode: (event: Event) => string;
63
- formatAddress: (address?: PartnerAddress) => string;
64
- renderEventStatus?: (event: OrderProjectionEvent) => ReactNode;
65
- renderEventActions?: (event: OrderProjectionEvent) => ReactNode;
66
- renderPartnerLink?: (partner?: {
67
- external_id?: string;
68
- name?: string;
69
- }) => ReactNode;
70
- renderSaleLink?: (saleId: string) => ReactNode;
71
- renderPhoneEditor?: (partnerId: string, onPhoneUpdated: (phone: string) => void) => ReactNode;
72
- }
73
- interface OrderProjectionContextValue {
74
- adapters: OrderProjectionAdapters;
75
- slots: OrderProjectionSlots;
76
- }
77
- interface OrderProjectionValue extends OrderProjectionContextValue {
78
- filters: UseOrderProjectionFiltersReturn;
79
- }
80
- interface OrderProjectionProviderProps extends OrderProjectionContextValue {
81
- children: ReactNode;
82
- }
83
9
  interface CalendarProps {
84
10
  partners: Partner[];
85
11
  summary?: OrderProjectionSummary;
@@ -89,8 +15,10 @@ interface CalendarProps {
89
15
  isFetchingNextPage: boolean;
90
16
  }
91
17
 
18
+ declare const Calendar: ({ partners, summary, isFetching, isFetchingSummary, onRowsScrollEnd, isFetchingNextPage, }: CalendarProps) => react_jsx_runtime.JSX.Element;
19
+
92
20
  declare const OrderProjectionProvider: ({ adapters, slots, children, }: OrderProjectionProviderProps) => react_jsx_runtime.JSX.Element;
93
21
  declare const useOrderProjectionContext: () => OrderProjectionValue;
94
22
  declare const useOrderProjectionFilterContext: () => UseOrderProjectionFiltersReturn;
95
23
 
96
- export { Calendar, CalendarProps, OrderProjectionAdapters, OrderProjectionOption, OrderProjectionOptionsQuery, OrderProjectionOptionsResult, OrderProjectionProvider, OrderProjectionProviderProps, OrderProjectionQueryResult, OrderProjectionSlots, useOrderProjectionContext, useOrderProjectionFilterContext };
24
+ export { Calendar, OrderProjectionProvider, useOrderProjectionContext, useOrderProjectionFilterContext };