PageSourceSearch

https://portal.cardapioweb.com/assets/MultiCompanyPerformancePage-BDaXALXR.js

js cardapioweb.com collected 2026-09-24 11:58:27 UTC 31,447 bytes, 13 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="af86607d-8656-5075-b483-fe71b033529b")}catch(e){}}();
3import{R as e,o as be,bt as ee,aY as te,hC as _e,L as ae,hD as he,hE as ve,hF as ge,E as Ee,ah as re,hG as xe,hH as ke,hI as ne,hJ as se,a6 as R,hK as we,hz as U,aO as L,l as b,d0 as Me,bk as Ce,s as Se,d1 as Te,aM as De,bw as Oe,bx as Ne,c$ as Fe,bN as le,x as oe,ai as Ae,cd as $e,ea as Y,e9 as Le,V as C,e6 as k,aJ as B,ca as P,aL as Re,hL as Ye,Y as ce,cQ as ie,M as de,k as me,dP as Be,e5 as Q,e7 as Pe}from"./index-Cs-In7Vx.js";import{D as He}from"./Done-CqMP_G1M.js";import{S as Ve}from"./SpinnerLoading-BTARSA4B.js";import{h as Ge}from"./react-apexcharts.esm-BeyC2Cqp.js";import{c as Ie}from"./cloneDeep-WMrv_9GL.js";import{P as ze}from"./Pagination-BN0FIrDJ.js";import{u as je}from"./useOnScreen-DBM-8yy0.js";import"./cloneDeep-CWttLxUo.js";function ue(t){switch(t){case"xs":return"xs:table-cell";case"sm":return"sm:table-cell";case"md":return"md:table-cell";case"lg":return"lg:table-cell";case"xl":return"xl:table-cell";case"2xl":return"2xl:table-cell";default:return""}}const fe={content:'""',position:"absolute",top:0,bottom:0,left:"calc(100% - 1px)",width:"0px",backgroundColor:"#ddd",zIndex:-1,boxShadow:"rgba(0, 28, 36, 0.3) 0px 0px 4px 1px",clipPath:"inset(0 -24px 0 0)"},J=(t,a,s)=>e.createElement(e.Fragment,null,t.Header,t.fixed&&s&&!a&&e.createElement("div",{style:fe})),Ue=(t,a,s,r)=>{const n=()=>a.formatDataFunction?a.formatDataFunction(U(t,a.accessor),t):a.Cell?e.createElement(a.Cell,{row:t}):U(t,a.accessor);return e.createElement(e.Fragment,null,n(),a.fixed&&!s&&r&&e.createElement("div",{style:fe}))};function Qe({isMobile:t,isScrolled:a,columns:s,order:r,orderBy:n,onRequestSort:c}){const o=d=>v=>{c(v,d)};return e.createElement(ke,null,e.createElement(ne,null,s.map(d=>e.createElement(se,{align:d.align||"left",className:R("whitespace-nowrap bg-white text-16 font-bold text-gray-700",d.className,d.fixed&&!t&&"sticky left-0 z-10",d.hidden&&`tw-hidden ${ue(d.hidden)}`),key:d.accessor},d.sortable===!1?J(d,t,a):e.createElement(we,{className:R("z-0",d.align==="center"?"ml-24":""),active:n===d.accessor,direction:n===d.accessor?r:"asc",onClick:o(d.accessor)},J(d,t,a))))))}function Je({row:t,columns:a,isMobile:s,isScrolled:r}){return e.createElement(ne,{classes:{root:"bg-white"}},a?.map(n=>e.createElement(se,{align:n.align||"left",className:R("whitespace-nowrap text-16 text-gray-600",n.className,n.fixed&&!s&&"sticky left-0 z-10 bg-white",t.total&&"bg-gray-100 font-bold",n.hidden&&`tw-hidden ${ue(n.hidden)}`),key:n.accessor},Ue(t,n,s,r))))}function qe({data:t,columns:a,totalRows:s=15,perPage:r=10,onChangePage:n,onRequestSort:c,resetCurrentPage:o,defaultOrder:d,defaultOrderBy:v,loading:y,showError:g,handleRowClick:_,onRowClick:p,loadingRowsQuantity:h=10,WrapperComponents:x=ee}){const[N,H]=e.useState(d||"desc"),[A,V]=e.useState(v||"id"),[f,l]=e.useState(1),i=be("(max-width:600px)"),[u,m]=e.useState(!1),E=O=>{const{scrollLeft:F}=O.target;m(F>0)};e.useEffect(()=>{m(!1)},[t]),e.useEffect(()=>{o&&l(1)},[o]);const D=(O,F)=>{const j=A===F&&N==="asc";H(j?"desc":"asc"),V(F),c&&c(F,j?"desc":"asc")},T=(O,F)=>{n&&n(F),l(F)};return!y&&g?e.createElement(x,{className:"relative flex h-full w-full flex-col overflow-auto rounded-8",variant:"outlined"},e.createElement(te,{title:"Problema ao buscar as informações"})):y&&!t?e.createElement(x,{className:"relative flex h-full w-full flex-col overflow-auto rounded-8",variant:"outlined"},e.createElement(_e,{columns:a,loadingRowsQuantity:h})):e.createElement(x,{className:"relative flex h-full w-full flex-grow flex-col overflow-auto rounded-8",variant:"outlined",onScroll:E},y&&e.createElement("div",{className:"absolute left-0 right-0 z-20 rounded-t-8"},e.createElement(ae,{color:"primary",className:"w-full"})),e.createElement(he,{className:"h-full w-full overflow-x-auto bg-white"},e.createElement(ve,null,e.createElement(Qe,{isMobile:i,isScrolled:u,columns:a,order:N,orderBy:A,onRequestSort:D}),e.createElement(ge,null,t?.map((O,F)=>e.createElement(Je,{isMobile:i,isScrolled:u,key:O.id||F,row:O,columns:a,onClick:()=>_(O),className:p?"cursor-pointer":""})))),!t?.length&&e.createElement(Ee,{title:"Nada encontrado"})),s!==void 0&&t?.length>0&&e.createElement(e.Fragment,null,e.createElement(re,null),e.createElement("div",{className:"my-24 flex w-full items-center justify-center"},e.createElement(ze,{variant:"outlined",color:"standard",count:Math.max(xe(s/r),1),page:f,onChange:T}))))}function w(t,a){return a?[b().subtract(a,t).startOf(t).toDate(),b().subtract(a,t).endOf(t).toDate()]:[b().startOf(t).toDate(),b().endOf(t).toDate()]}const Ke=[{label:"Hoje",value:w("day"),placement:"left"},{label:"Ontem",value:w("day",1),placement:"left"},{label:"Esta semana",value:w("week"),placement:"left"},{label:"Semana passada",value:w("week",1),placement:"left"},{label:"Este mês",value:w("month"),placement:"left"},{label:"Mês passado",value:w("month",1),placement:"left"},{label:L(b().subtract(2,"months").format("MMMM/YYYY")),value:w("month",2),placement:"left"},{label:L(b().subtract(3,"months").format("MMMM/YYYY")),value:w("month",3),placement:"left"},{label:L(b().subtract(4,"months").format("MMMM/YYYY")),value:w("month",4),placement:"left"},{label:"Últimos 2 meses",value:[b().subtract(1,"month").startOf("month").toDate(),b().endOf("month").toDate()],placement:"left"}],We=[{label:"Hoje",value:w("day"),placement:"left"},{label:"Amanhã",value:w("day",1),placement:"left"},{label:"Ontem",value:w("day",1),placement:"left"},{label:"Esta semana",value:w("week"),placement:"left"},{label:"Próxima semana",value:w("week",1),placement:"left"},{label:"Semana passada",value:w("week",1),placement:"left"},{label:"Este mês",value:w("month"),placement:"left"},{label:"Próximo mês",value:w("month"),placement:"left"},{label:"Mês passado",value:w("month",1),placement:"left"}],Xe=Fe(t=>({inputBase:{paddingTop:14,paddingBottom:14,paddingRight:14,paddingLeft:2,width:"100%","& input":{borderRadius:4,backgroundColor:t.palette.common.white,padding:4,transition:t.transitions.create(["border-color","box-shadow"]),fontSize:14}},option:{minHeight:"auto",alignItems:"flex-start",padding:8,'&[aria-selected="true"]':{backgroundColor:"transparent"},'&[data-focus="true"]':{backgroundColor:t.palette.action.hover}}}));function Ze(t){return t.charAt(0).toUpperCase()+t.slice(1)}function et({label:t,value:a,setValue:s,options:r,onClose:n=void 0,buttonClass:c}){const o=Xe(),[d,v]=e.useState(null),y=h=>{v(h.currentTarget)},g=(h,x)=>{x!=="toggleInput"&&(d&&d.focus(),n&&n(),v(null))},_=!!d,p=_?"autocomplete":void 0;return e.createElement(e.Fragment,null,e.createElement("div",{className:R("min-w-256",c),onClick:y},e.createElement(Me,null),e.createElement("span",null,r.length===a.length?`Todos ${t}s selecionados`:a.length>0?`${a.length} ${t}${a.length>
31?"s":""} selecionado${a.length>1?"s":""}`:`Nenhum ${t} selecionado`),a.length>0&&e.createElement(Ce,{tooltip:"Desmarcar Todos",padding:"p-0",onClick:h=>{h.stopPropagation(),s([])},color:"default"},e.createElement(Se,{className:"p-0"}))),e.createElement(Te,{id:p,open:_,anchorEl:d,placement:"bottom-start",className:"z-10 mt-8 min-w-320 rounded-8 border-1 border-solid border-grey-border bg-white text-16 shadow"},e.createElement(De,{open:!0,onClose:g,multiple:!0,classes:{paper:"shadow-0 text-gray-600 min-w-320 pr-2",option:o.option,popperDisablePortal:"relative"},value:a,onChange:(h,x)=>{s(x)},disableCloseOnSelect:!0,disablePortal:!0,renderTags:()=>null,noOptionsText:`${Ze(t)} não encontrado`,renderOption:(h,{selected:x})=>e.createElement(e.Fragment,null,e.createElement(He,{className:"ml-2 mr-6 h-20 opacity-60",style:{visibility:x?"visible":"hidden"}}),e.createElement("div",{className:"flex flex-grow text-15"},h.label,e.createElement("br",null),h.description)),options:r,getOptionSelected:(h,x)=>h.id===x.id,getOptionLabel:h=>h.label,renderInput:h=>e.createElement(e.Fragment,null,e.createElement("div",{className:"flex items-center space-x-2 pl-5"},e.createElement(Oe,null),e.createElement(Ne,{ref:h.InputProps.ref,inputProps:h.inputProps,autoFocus:!0,placeholder:`Pesquise o ${t}`,className:o.inputBase})),e.createElement(re,null))})))}const S=le(t=>({filtersTable:{analisysType:"store_analisys",revenueType:"revenue",page:1,sort_by:"",sort_by_type:"",sort_by_direction:""},filters:{startDate:b().startOf("day").toDate(),endDate:b().endOf("day").toDate(),companies:[]},updateFilter:(a,s)=>t(r=>({...r,filters:{...r.filters,[a]:s}})),updateFiltersTable:(a,s)=>t(r=>({...r,filtersTable:{...r.filtersTable,[a]:s}}))}));function tt(){const t=S(o=>o.filters.companies),a=S(o=>o.updateFilter),s=oe(({auth:o})=>o.user.user.companies),[r,n]=e.useState(t),c=e.useMemo(()=>Ae(o=>{a("companies",o)},2e3),[a]);return e.createElement(et,{buttonClass:"flex items-center w-full py-8 px-16 my-6 space-x-8 font-bold text-gray-600 border border-gray-200 border-solid cursor-pointer sm:w-auto hover:bg-gray-100 bg-gray-50 text-16 rounded-6",label:"estabelecimento",value:r||[],setValue:o=>{n(o),c(o)},onClose:()=>{},options:s.map(o=>({id:o.id,label:o.name}))||[]})}const $=le(t=>({selectedGroupBy:"hour",selectedAggregateBy:"revenue",setSelectedGroupBy:a=>t(s=>({...s,selectedGroupBy:a})),setSelectedAggregateBy:a=>t(s=>({...s,selectedAggregateBy:a})),setRecommendedGroupBy:(a,s=!1)=>t(r=>a>62&&r.selectedGroupBy!=="month"?{...r,selectedGroupBy:"month"}:a>31&&!["day_of_week","week","month"].includes(r.selectedGroupBy)?{...r,selectedGroupBy:"week"}:a<=31&&a>=2&&["week","month"].includes(r.selectedGroupBy)?{...r,selectedGroupBy:"day"}:(s||a>1)&&r.selectedGroupBy==="hour"?{...r,selectedGroupBy:"day"}:!s&&a===1&&r.selectedGroupBy!=="hour"?{...r,selectedGroupBy:"hour"}:r)}));function at(){const t=S(o=>o.filters),a=S(o=>o.updateFilter),s=$(o=>o.setRecommendedGroupBy),{dateField:r,startDate:n,endDate:c}=t;return e.createElement("div",{className:"w-full rounded-8 border border-solid border-grey-border bg-white py-6 pl-12"},e.createElement("div",{className:"flex flex-wrap items-center gap-12"},e.createElement(tt,null),e.createElement($e,{value:[n,c],onChange:o=>{const d=b(o[1]).diff(b(o[0]),"days")+1;s(d,r==="scheduled_date"),a("startDate",o[0]),a("endDate",o[1])},className:"my-6 mr-12 w-full sm:w-auto",ranges:r==="scheduled_date"?We:Ke,format:r==="scheduled_date"?"dd/MM/yyyy":"dd/MM/yyyy HH:mm",appearance:"subtle",maxDaysAllowed:60,allowFuture:!0})))}const rt={hour:"hora",day:"dia",week:"semana",day_of_week:"dia da semana",month:"mês"},pe={revenue:"Faturamento",total_orders:"Pedidos",average_ticket:"Ticket médio"};function nt(t,a,s){switch(s){case"hour":return Y(24).map(n=>({key:n,longLabel:`${b(t).format("DD/MM")} ~ ${b(a).format("DD/MM")}`,shortLabel:`${n.toString().padStart(2,"0")}h`}));case"day":{const n=b(t),o=b(a).diff(n,"days")+1;return Y(o).map(v=>({key:n.clone().add(v,"days").format("YYYY-MM-DD"),longLabel:n.clone().add(v,"days").format("ddd, DD [de] MMMM"),shortLabel:n.clone().add(v,"days").format("MM/DD/YYYY")}))}case"week":{const n=b(t).startOf("week"),o=b(a).endOf("week").diff(n,"weeks")+1;return Y(o).map(v=>{const y=n.clone().add(v,"weeks"),g=n.clone().add(v,"weeks").endOf("week");return{key:y.format("YYYY-MM-DD"),longLabel:`${y.format("DD MMM")} ~ ${g.format("DD MMM")}`,shortLabel:`${y.format("DD/MM")} ~ ${g.format("DD/MM")}`}})}case"day_of_week":const r=`${b(t).format("DD/MM")} ~ ${b(a).format("DD/MM")}`;return[{key:"sunday",longLabel:r,shortLabel:"Domingo"},{key:"monday",longLabel:r,shortLabel:"Segunda"},{key:"tuesday",longLabel:r,shortLabel:"Terça"},{key:"wednesday",longLabel:r,shortLabel:"Quarta"},{key:"thursday",longLabel:r,shortLabel:"Quinta"},{key:"friday",longLabel:r,shortLabel:"Sexta"},{key:"saturday",longLabel:r,shortLabel:"Sábado"}];case"month":{const n=b(t).startOf("month"),o=b(a).endOf("month").diff(n,"months")+1;return Y(o).map(v=>{const y=n.clone().add(v,"months");return{key:y.format("YYYY-MM-DD"),longLabel:L(y.format("MMMM YYYY")),shortL
3abel:L(y.format("MMMM YYYY"))}})}}}const ye=["#6CB2EB","#fed7aa"],st={chart:{height:350,type:"line",locales:[{name:"pt",options:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Augosto","Setembro","Outubro","Novembro","Dezembro"],shortMonths:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],shortDays:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"]}}],defaultLocale:"pt",toolbar:{show:!1},zoom:{enabled:!1}},colors:ye,dataLabels:{enabled:!1},stroke:{curve:"straight",width:3},markers:{size:4,hover:{sizeOffset:1}},grid:{position:"back",borderColor:"#F6F6F6",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},padding:{bottom:20}}},lt=(t,a)=>({series:s,dataPointIndex:r,w:n})=>{const c=n.config.series[0].categories[r],o=a(s[0][r]);return`
4      <div class="p-16 space-y-16 text-gray-600 bg-white opacity-100">
5        <div>
6          <div class="font-light">${t}</div>
7          <div class="font-semibold">${c}</div>
8          <div class="font-bold text-20" style="color: ${ye[0]}">${o}</div>
9        </div>
10      </div>
11    `.replace("  ","")},ot=t=>Le(Ie(st),t);function ct(t,a,s,r){const n={};if(s==="day"?n.xaxis={type:"datetime",categories:t,labels:{format:"dd MMM"}}:n.xaxis={categories:t,convertedCatToNumeric:!1},a==="total_orders"?n.yaxis={labels:{formatter:c=>c/1e3>=1?`${k(c/1e3,1).toString().replace(".",",")}k`:c}}:n.yaxis={labels:{formatter:c=>c/1e3>=1?`R$ ${k(c/1e3,1).toString().replace(".",",")}k`:`R$ ${c}`}},r){const c=`${pe[a]} em`,o=a==="total_orders"?C.formatNumber:d=>C.formatMonetaryValue(d);n.tooltip={custom:lt(c,o)}}else{const c=a==="total_orders"?C.formatNumber:o=>C.formatMonetaryValue(o);n.tooltip={y:{formatter:c}}}return ot(n)}function z(){const t=S(s=>s.filters);return e.useMemo(()=>{const{startDate:s,endDate:r,companies:n}=t;return{metrics:{created_at_gteq:b(s).format(),created_at_lteq:b(r).format(),company_ids:n?.map(o=>o.id)||[]}}},[t])}const it="/api/v2/company/performance/chain_store/metric_over_time";function dt(t){if(t){const a=C.queryParamsObjectToString(t);return`${it}?${a}`}return null}function mt(t){const{data:a,error:s,mutate:r}=B(dt(t),P,{dedupingInterval:12e4,revalidateOnFocus:!1,revalidateOnReconnect:!1});return{data:a,isLoading:t&&!s&&!a,isError:s,mutate:r}}function ut(t,a){const s=S(h=>h.filters),{startDate:r,endDate:n}=s,c=e.useMemo(()=>b(n).diff(b(r),"days")+1,[r,n]),{metrics:o}=z(),{data:d,isLoading:v,isError:y}=mt({...o,aggregate_by:t,group_by:a}),g=e.useMemo(()=>nt(r,n,a),[n,r,a]),_=e.useMemo(()=>[{name:[pe[t],"por",rt[a],`(${b(r).format("DD/MM")}`,"a",`${b(n).format("DD/MM")})`].join(" "),data:g.map(N=>d?.[N.key]||0),categories:g.map(N=>N.longLabel)}],[t,d,g,n,a,r]);return{options:e.useMemo(()=>{const h=g.map(N=>N.shortLabel),x=c<=31;return ct(h,t,a,x)},[t,g,a,c]),series:_,loading:v,error:y}}function ft(){const t=$(o=>o.selectedAggregateBy),a=$(o=>o.selectedGroupBy),{options:s,series:r,loading:n,error:c}=ut(t,a);return e.createElement("div",{className:"relative h-256 sm:h-400"},n&&e.createElement("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-white bg-opacity-80"},e.createElement(Ve,null)),!n&&c&&e.createElement(te,{title:"Informações indisponíveis no momento"}),r?.length>0&&e.createElement(Ge,{key:C.generateGUID(),options:s,series:r,type:"line",width:"100%",height:"100%"}))}function G({title:t,currentValue:a,isMonetary:s,active:r,loading:n,showError:c,onClick:o}){const d=s?C.formatMonetaryValue(a):C.formatNumber(a);return e.createElement("div",{className:R("min-w-160 flex-shrink-0 cursor-pointer space-y-8 px-20 py-12 transition-colors sm:min-w-288 sm:pb-12 sm:pt-16","border border-l-0 border-t-0 border-solid border-gray-200",r||"bg-gray-50 hover:bg-gray-100"),style:{borderBottomColor:r?"white":"#e5e7eb"},onClick:o},e.createElement("span",{className:"text-16 font-light text-gray-500 sm:text-18"},t),!c&&!n&&e.createElement("div",{className:"flex items-center space-x-16 whitespace-nowrap text-20 font-bold text-gray-600 sm:text-24"},e.createElement("span",null,d)),n&&e.createElement("div",{className:"h-28 w-3/5 animate-pulse rounded-8 bg-gray-200 sm:h-36"}),c&&!n&&e.createElement("div",{className:"flex items-center space-x-12 whitespace-nowrap text-18 font-bold text-red-light sm:text-20"},"Dado indisponível"))}const pt="/api/v2/company/performance/chain_store/overall_metrics";function yt(t){if(t){const a=C.queryParamsObjectToString(t);return`${pt}?${a}`}return null}function bt(t){const{data:a,error:s,mutate:r,isLoading:n}=B(yt(t),P,{dedupingInterval:12e4,revalidateOnFocus:!1,revalidateOnReconnect:!1});return{data:a,isLoading:n,isError:s,mutate:r}}const q=[{key:"hour",name:"Agrupar por hora"},{key:"day",name:"Agrupar por dia"},{key:"day_of_week",name:"Agrupar por dia da semana"},{key:"week",name:"Agrupar por semana"},{key:"month",name:"Agrupar por mês"}];function _t(){const t=$(_=>_.selectedAggregateBy),a=$(_=>_.setSelectedAggregateBy),s=$(_=>_.selectedGroupBy),r=$(_=>_.setSelectedGroupBy),n=S(_=>_.filters.dateField),{metrics:c}=z(),{data:o,isLoading:d,isError:v}=bt(c),y=_=>{r(_.target.value)},g=e.useCallback((_,p,h=!1)=>({active:t===_,title:p,currentValue:o?.[_],loading:d,showError:v,isMonetary:h,onClick:()=>a(_)}),[t,o,d,v,a]);return e.createElement("div",{className:"flex flex-wrap justify-between"},e.createElement("div",{className:"flex flex-nowrap overflow-x-scroll"},e.createElement(G,{...g("revenue","Faturamento",!0)}),e.createElement(G,{...g("total_orders","Pedidos")}),e.createElement(G,{...g("average_ticket","Ticket médio",!0)})),e.createElement("div",{className:"w-full p-16 md:w-auto"},e.createElement(Re,{value:s,onChange:y,optionValueKey:"key",optionLabelKey:"name",options:n==="scheduled_date"?q.
11slice(1):q,className:"w-full bg-white text-gray-600 md:w-256"})))}function ht(){return e.createElement(ee,{variant:"outlined",className:"overflow-hidden rounded-8"},e.createElement(_t,null),e.createElement("div",{className:"relative px-8 pb-24"},e.createElement(ft,null)))}const vt=Ye(ae)(()=>({height:16,borderRadius:5,backgroundColor:"#E5E7EB","& .MuiLinearProgress-bar":{backgroundColor:"#10B981"}}));function gt({percent:t}){return e.createElement("div",{className:"flex items-center"},e.createElement("div",{style:{position:"relative",width:"80px",marginRight:"8px"}},e.createElement(vt,{variant:"determinate",value:t})))}function M({value:t,revenueType:a,percent:s}){return e.createElement("div",{className:"flex min-w-224 max-w-320 items-center justify-between space-x-48"},e.createElement("div",null,a!=="total_orders"?C.formatMonetaryValue(t):C.formatNumber(t)," "),e.createElement("div",{className:"flex space-x-12"},e.createElement("span",null,a!=="average_ticket"&&`${s}%`),a!=="average_ticket"&&e.createElement(gt,{percent:s})))}const K=[{name:"Faturamento",key:"revenue"},{name:"Quantidade de pedidos",key:"total_orders"},{name:"Ticket médio",key:"average_ticket"}];function Et({revenueType:t,handleInfoSelected:a}){const[s,r]=e.useState(null),n=d=>{r(d.currentTarget)},c=()=>{r(null)},o=d=>{a(d),c()};return e.createElement(e.Fragment,null,e.createElement(ce,{endIcon:e.createElement(ie,null),onClick:n,className:"w-full bg-gray-100 py-1 text-18 font-bold normal-case text-gray-700 hover:bg-gray-200 sm:w-auto"},(K.find(d=>d.key===t)?.name||"Desconhecido").toLowerCase()),e.createElement(de,{anchorEl:s,open:!!s,onClose:c,getContentAnchorEl:null,elevation:0,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},classes:{paper:"border-1 border-solid border-grey-border shadow rounded-8 mt-8"}},K.map(d=>e.createElement(me,{key:d.key,className:"flex items-center space-x-12 py-12 text-16",onClick:()=>o(d.key)},d.name))))}const W=[{name:"Visão geral",key:"store_analisys"},{name:"Detalhes do faturamento",key:"revenue_breakdown_analysis"},{name:"Tipo de pedido",key:"order_type"},{name:"Canal de vendas",key:"sales_channel_analysis"},{name:"Formas de pagamento",key:"payment_method_analysis"},{name:"Cancelamentos",key:"canceled_orders_analysis"},{name:"Métricas de marketing",key:"customer_metrics_analysis"}];function xt({analisysType:t,handleAnalisysTypeSelected:a,revenueType:s,handleInfoSelected:r}){const[n,c]=e.useState(null),o=y=>{c(y.currentTarget)},d=()=>{c(null)},v=y=>{a(y),d()};return e.createElement("div",{className:"flex items-center space-x-6"},e.createElement("span",null,"Análise por"),e.createElement(ce,{endIcon:e.createElement(ie,null),onClick:o,className:"w-full bg-gray-100 py-1 text-18 font-bold normal-case text-gray-700 hover:bg-gray-200 sm:w-auto"},(W.find(y=>y.key===t)?.name||"Desconhecido").toLowerCase()),e.createElement(de,{anchorEl:n,open:!!n,onClose:d,getContentAnchorEl:null,elevation:0,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},classes:{paper:"border-1 border-solid border-grey-border shadow rounded-8 mt-8"}},W.map(y=>e.createElement(me,{key:y.key,className:"flex items-center space-x-12 py-12 text-16",onClick:()=>v(y.key)},y.name))),["order_type","payment_method_analysis","sales_channel_analysis"].includes(t)&&e.createElement(e.Fragment,null,e.createElement("span",null,"por"),e.createElement(Et,{revenueType:s,handleInfoSelected:r})))}const X={order_type:"order_type_sort_by",payment_method_analysis:"payment_method_sort_by",sales_channel_analysis:"sales_channel_sort_by"};function kt(){const t=S(r=>r.filters),a=S(r=>r.filtersTable);return e.useMemo(()=>{const{startDate:r,endDate:n,companies:c}=t,{page:o,sort_by:d,sort_by_direction:v,revenueType:y,analisysType:g}=a,_={table:{created_at_gteq:b(r).format(),created_at_lteq:b(n).format(),company_ids:c?.map(p=>p.id)||[],page:o}};return d&&(X[g]?(_.table[X[g]]=d,_.table.sort_by=`${y} ${v}`):_.table.sort_by=`${d} ${v}`),_},[t,a])}const wt={order_type:"/api/v2/company/performance/chain_store/order_type_analysis/by_companies",canceled_orders_anal
11ysis:"/api/v2/company/performance/chain_store/canceled_orders_analysis/by_companies",customer_metrics_analysis:"/api/v2/company/performance/chain_store/customer_metrics_analysis/by_companies",payment_method_analysis:"/api/v2/company/performance/chain_store/payment_method_analysis/by_companies",sales_channel_analysis:"/api/v2/company/performance/chain_store/sales_channel_analysis/by_companies",revenue_breakdown_analysis:"/api/v2/company/performance/chain_store/revenue_breakdown_analysis/by_companies",store_analisys:"/api/v2/company/performance/chain_store/sales_analysis"};function Mt(t,a){if(a){const s=C.queryParamsObjectToString(a);return`${wt[t]}?${s}`}return null}function Ct(t,a){const{data:s,error:r,mutate:n}=B(Mt(t,a),P,{dedupingInterval:12e4,revalidateOnFocus:!1,revalidateOnReconnect:!1});return{data:s,isLoading:a&&!r&&!s,isError:r,mutate:n}}const Z={order_type:"/api/v2/company/performance/chain_store/order_type_analysis",canceled_orders_analysis:"/api/v2/company/performance/chain_store/canceled_orders_analysis",customer_metrics_analysis:"/api/v2/company/performance/chain_store/customer_metrics_analysis",payment_method_analysis:"/api/v2/company/performance/chain_store/payment_method_analysis",sales_channel_analysis:"/api/v2/company/performance/chain_store/sales_channel_analysis",revenue_breakdown_analysis:"/api/v2/company/performance/chain_store/revenue_breakdown_analysis",store_analisys:"/api/v2/company/performance/chain_store/overall_metrics"};function St(t,a){if(Z[a]){if(t){const s=C.queryParamsObjectToString(t);return`${Z[a]}?${s}`}return null}}function Tt(t,a){const{data:s,error:r,mutate:n,isLoading:c}=B(St(a,t),P,{dedupingInterval:12e4,revalidateOnFocus:!1,revalidateOnReconnect:!1});return{data:s,isLoading:c,isError:r,mutate:n}}const I=[{id:"delivery",label:"Delivery"},{id:"takeout",label:"Retirada"},{id:"onsite",label:"No local"},{id:"closed_table",label:"Mesa"}],Dt=[{id:"Dinheiro",name:"Dinheiro",revenue:0,average_ticket:0,total_orders:0},{id:"Cartão de crédito",name:"Cartão de crédito",revenue:0,average_ticket:0,total_orders:0},{id:"Cartão de débito",name:"Cartão de débito",revenue:0,average_ticket:0,total_orders:0},{id:"Pix",name:"Pix",revenue:0,average_ticket:0,total_orders:0}];function Ot(){const t=e.useRef(),a=je(t,"0px"),s=oe(({auth:f})=>f.user.user.companies),r=S(f=>f.updateFiltersTable),n=S(f=>f.filtersTable.analisysType),c=S(f=>f.filtersTable.revenueType),o=S(f=>f.filters.companies),{table:d}=kt(),{metrics:v}=z(),{data:y,isLoading:g,isError:_}=Ct(n,a?d:null),{data:p}=Tt(n,a?v:null),[h,x]=e.useState([]);e.useEffect(()=>{if(Array.isArray(y)&&y.length>0){const f={company_name:"Total",total:!0};Object.keys(y[0])?.forEach(l=>{["company_name","id"].includes(l)||(Array.isArray(y[0][l])?f[l]=p?.map(i=>({[l.slice(0,-1)]:i.name,total_orders:i.total_orders,revenue:i.revenue,average_ticket:i.average_ticket}))||[]:f[l]=p?p[l]:0)}),x([f,...y])}else g||x([])},[y,p,g,n]);const N=f=>{r("analisysType",f),r("sort_by",""),r("sort_by_direction",""),r("page",1),f!==n&&x(null)},H=f=>{r("revenueType",f)},A=e.useCallback((f,l,i="name")=>{const u=p?.find(E=>E[i]===f.id),m=p?.find(E=>E[i]===l.id);return u&&m?u-m:u?-1:m?1:I.findIndex(E=>E.id===f.id)-I.findIndex(E=>E.id===l.id)}
11,[p]),V=e.useMemo(()=>{let f=[{Header:"Estabelecimento",accessor:"company_name",className:"min-w-256 max-w-320 whitespace-nowrap font-semibold",fixed:!0,sortable:!1}];if(n==="store_analisys"&&(f=[...f,{Header:"Faturamento",accessor:"revenue",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=h[0]?.revenue,u=l.revenue;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"revenue",revenueType:"revenue",percent:m})}},{Header:"Pedidos",accessor:"total_orders",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=h[0]?.total_orders,u=l.total_orders;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"total_orders",revenueType:"total_orders",percent:m})}},{Header:"Ticket médio",accessor:"average_ticket",fixed:!1,sortable:!0,formatDataFunction:l=>C.formatMonetaryValue(l)}]),n==="order_type"&&(f=[...f,...I.sort(A).map(l=>({Header:l.label,accessor:l.id,fixed:!1,sortable:!0,Cell:({row:i})=>{const u=i.order_types?.find(T=>T.order_type===l.id),m=p?.find(T=>T.name===l.id);let E=0,D=0;return u&&c&&(E=u[c],m&&(D=k(E*100/m[c]))),e.createElement(M,{value:E,type:l,revenueType:c,percent:D})}}))]),n==="payment_method_analysis"){const l=p?.map(i=>({...i,id:i.name,name:i.name}));f=[...f,...(l?.length>0?l:Dt).sort(A).map(i=>({Header:i.name,accessor:i.id,fixed:!1,sortable:!0,Cell:({row:u})=>{const m=u.payment_methods?.find(O=>O.payment_method===i.id),E=p?.find(O=>O.name===i.id);let D=0,T=0;return m&&c&&(D=m[c],E&&(T=k(D*100/E[c]))),e.createElement(M,{value:D,type:i,revenueType:c,percent:T})}}))]}return n==="sales_channel_analysis"&&(f=[...f,...Be(Object.keys(Q),c,"desc").map(l=>({id:l,name:Q[l]})).sort(A).map(l=>({Header:l.name,accessor:l.id,fixed:!1,sortable:!0,Cell:({row:i})=>{const u=i.sales_channels?.find(T=>T.sales_channel===l.id),m=p?.find(T=>T.name===l.id);let E=0,D=0;return u&&c&&(E=u[c],m&&(D=k(E*100/m[c]))),e.createElement(M,{value:E,type:l,revenueType:c,percent:D})}}))]),n==="canceled_orders_analysis"&&(f=[...f,{Header:"Faturamento",accessor:"revenue",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.revenue,u=l.revenue;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"revenue",revenueType:"revenue",percent:m})}},{Header:"Pedidos",accessor:"total_orders",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.total_orders,u=l.total_orders;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"total_orders",revenueType:"total_orders",percent:m})}},{Header:"Ticket médio",accessor:"average_ticket",fixed:!1,sortable:!0,formatDataFunction:l=>C.formatMonetaryValue(l)}]),n==="revenue_breakdown_analysis"&&(f=[...f,{Header:"Total de produtos",accessor:"revenue",fixed:!1,sortable:!1,Cell:({row:l})=>{const i=p?.revenue-p?.delivery_fees-p?.additional_fees-p?.service_fees-p?.payment_fees+p?.discounts+p?.ifood_discounts,u=l?.revenue-l?.delivery_fees-l?.additional_fees-l?.service_fees-l?.payment_fees+l?.discounts;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"revenue",revenueType:"revenue",percent:m})}},{Header:"Taxas de entrega",accessor:"delivery_fees",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.delivery_fees,u=l.delivery_fees;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"delivery_fees",revenueType:"delivery_fees",percent:m})}},{Header:"Taxas de serviço",accessor:"service_fees",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.service_fees,u=l.service_fees;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"service_fees",revenueType:"service_fees",percent:m})}},{Header:"Taxas adicionais",accessor:"additional_fees",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.additional_fees,u=l.additional_fees;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"additional_fees",revenueType:"additional_fees",percent:m})}},{Header:"Taxas da maquineta",accessor:"payment_fees",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.payment_fees,u=l.payment_fees;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"payment_fees",revenueType:"payment_fees",percent:m})}},{Header:"Descontos",accessor:"discounts",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.discounts+p?.ifood_discounts,u=l.discounts;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"discounts",revenueType:"discounts",percent:m})}},{Header:"Faturamento",accessor:"revenue",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.revenue,u=l.revenue;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"revenue",revenueType:"revenue",percent:m})}}]),n==="customer_metrics_analysis"&&(f=[...f,{Header:"Visitantes",accessor:"total_visitors",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.total_visitors,u=l.total_visitors;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"total_orders",revenueType:"total_orders",percent:m})}},{Header:"Novos clientes",accessor:"new_clients",fixed:!1,sortable:!0,Cell:({row:l})=>{const i=p?.new_clients,u=l.new_clients;let m=0;return i>0&&(m=k(u*100/i)),e.createElement(M,{value:u,type:"total_orders",revenueType:"total_orders",percent:m})}},{Header:"Taxa de conversão",accessor:"conversion_rate",fixed:!1,sortable:!0,formatDataFunction:l=>`${C.formatNumber(l)}%`}]),f},[n,c,p,A,h]);return e.createElement(Pe,{title:e.createElement(xt,{revenueType:c,handleInfoSelected:H,analisysType:n,handleAnalisysTypeSelected:N}),subtitle:"Selecione um relatório acima e analise suas lojas com base na escolha",className:"flex flex-col",contentClassName:"flex-1"},e.createElement("div",{className:"overflow-x-auto",ref:t},e.createElement(qe,{loading:g,showError:_,loadingRowsQuantity:5,resetCurrentPage:d.page===1,totalRows:o?.length>0?o?.length:s?.length,onRequestSort:(f,l)=>{r("sort_by",f),r("sort_by_direction",l)},onChangePage:f=>{r("page",f)},WrapperComponents:({children:f,...l})=>e.createElement("div",{...l},f),columns:V,data:h}
11)))}const Nt=e.memo(Ot);function Ht(){return e.createElement("div",{className:"h-full space-y-24 overflow-scroll px-12 py-24 sm:px-28"},e.createElement(at,null),e.createElement(ht,null),e.createElement(Nt,null))}export{Ht as default};
12
13//# debugId=af86607d-8656-5075-b483-fe71b033529b

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.