{"version":3,"sources":["store/slices/notification.ts","hooks/recorrencia/fetchHoursAvailable.ts","components/Pedido/VitrineCarousel.tsx","models/Cupom.ts","context/OfertasPersonalizadasContext.js","actions/actionTypes.js","models/Cliente.ts","services/ClienteService.ts","models/Recorrencia.ts","models/Loja.ts","store/slices/recorrencia/contacts.ts","components/Pedido/ProgramaFidelidade.tsx","services/TelefoneService.ts","components/Layout/Footer/index.js","assets/images/navbar/apple-alt.svg","assets/images/navbar/apple-alt-white.svg","assets/images/navbar/meat.svg","assets/images/navbar/meat-white.svg","assets/images/navbar/bread-loaf.svg","assets/images/navbar/bread-loaf-white.svg","assets/images/navbar/glass-cheers.svg","assets/images/navbar/glass-cheers-white.svg","assets/images/navbar/tag.svg","assets/images/navbar/tag-white.svg","assets/images/navbar/home.svg","assets/images/navbar/home-white.svg","assets/images/navbar/shipping-fast.svg","assets/images/navbar/shipping-fast-white.svg","assets/images/navbar/cog.svg","assets/images/navbar/cog-white.svg","assets/images/navbar/credit-card.svg","assets/images/navbar/credit-card-white.svg","assets/images/navbar/user-circle.svg","assets/images/navbar/user-circle-white.svg","assets/images/navbar/calendar-alt.svg","assets/images/navbar/calendar-alt-white.svg","hooks/useOfertasPersonalizadas.ts","models/RecorrenciaRequest.ts","components/Pedido/Ofertas/useWindowSize.js","components/Pedido/Ofertas/Carrousel/styles.js","components/Pedido/Ofertas/Carrousel/Alert.js","components/Pedido/Ofertas/Carrousel/QuantityModal/styles.js","components/Pedido/Ofertas/Carrousel/QuantityModal/index.js","components/Pedido/Ofertas/Carrousel/ItemOferta.js","components/Pedido/Ofertas/Carrousel/index.js","components/Pedido/Ofertas/styles.js","components/Pedido/Ofertas/index.js","Pages/Recorrencia/PedidoRecorrencia/components/FixedNavigator/styles.ts","Pages/Recorrencia/PedidoRecorrencia/components/FixedNavigator/index.tsx","components/Pedido/Entrega/CustomCalendar/styles.js","components/Pedido/Entrega/CustomCalendar/index.js","services/apis/ApiPedido.js","components/LoadingInline/Spinning.module.css","models/Parametro.ts","services/ParametroService.ts","components/Pedido/InputRadioStandard/styles.module.scss","actions/index.tsx","models/DiaRecorrencia.ts","models/MeioDeContato.ts","models/RecorrenciaResponse.ts","models/SubstituicaoLoja.ts","services/RecorrenciaService.ts","models/PedidoResponse.ts","models/StatusPedido.ts","services/PedidoService.ts","components/ConsultaStatusPedidos/index.js","components/Layout/Header/sub-header.tsx","assets/images/logo-natural.svg","components/Layout/Header/index.tsx","components/Layout/index.js","auth.tsx","routes/private-route.js","routes/router-wrapper.js","components/Pedido/InformacoesImportantes.tsx","components/Pedido/InputRadioStandard/RadioComponent.tsx","components/Pedido/InputRadioStandard/index.tsx","components/Pedido/InputRadioStandard/InputRadioSubstituicao.tsx","components/Pedido/Entrega/GhostComponent.tsx","components/Pedido/FormaPagamento.tsx","components/Pedido/Endereco.tsx","components/Pedido/DadosPessoais.tsx","components/Pedido/Entrega/Frequencia/Select/frequencyReducer.js","components/Pedido/Entrega/Frequencia/Select/styles.js","components/Pedido/Entrega/Frequencia/Select/index.js","components/Pedido/Entrega/Frequencia/styles.js","components/Pedido/Entrega/Frequencia/index.js","components/LoadingInline/index.tsx","hooks/Genericos.js","components/Pedido/Entrega/Turno.tsx","components/Pedido/Entrega/TurnoRecorrencia.js","components/Pedido/Entrega/index.tsx","components/Pedido/ProximaEntregaDisponivel.tsx","services/CpfService.ts","models/PedidoRequest.ts","models/TermoLGPD.ts","services/LGPDService.ts","components/Pedido/Cupom.tsx","components/Pedido/index.tsx","common/FallbackComponent.js","routes/index.js","services/hotjar/config.js","App.js","context/index.js","index.js","services/AlertService.ts","context/TagManager/TagManagerContext.js","config/environment.ts","hooks/TagManager/index.js","models/Pedido.ts","models/Horario.ts","components/TextAreaField/index.tsx","reducers/clienteReducer.js","reducers/authReducer.js","reducers/pedidoReducer.js","reducers/recorrenciaReducer.js","reducers/lojaEscolhidaReducer.js","reducers/horariosDisponiveisReducer.js","reducers/pedidoEnviadoReducer.js","reducers/pedidoRecorrenciaEnviadoReducer.js","reducers/ambienteReducer.js","reducers/horariosDisponiveisRecorrencia.js","reducers/index.js","store/sagas/asyncHorariosDisponiveis.tsx","store/sagas/index.tsx","store/index.tsx","services/apis/ApiExterna.js","services/LojaService.ts","models/LeveNatural.ts","components/TextAreaField/styles.js","services/LoadingService.ts","components/PreAtendimento/SelecaoLoja/AnimationTransition/styles.js","components/PreAtendimento/SelecaoLoja/AnimationTransition/index.js"],"names":["notificationSlice","createSlice","name","initialState","visible","content","reducers","show","state","action","payload","hide","actions","useFetchHoursAvailable","dispatch","useDispatch","useState","hoursAvailable","setHoursAvailable","isLoading","setIsLoading","fetchHoursAvailable","useCallback","code","date","a","RecorrenciaService","listaHorarioDisponivelEntregaPorData","request","setHorariosRecorrencia","VitrineCarousel","props","images","classnames","topBanner","className","Array","isArray","length","options","window","screen","width","map","imgUrl","src","alt","height","Cupom","init","Resultado","Valor","Object","assign","this","OfertasPersonalizadasContext","createContext","OfertasPersonalizadasProvider","children","ofertas","setOfertas","requestAsyncOfertasPersonalizadas","cpf","id","carregarOfertasPersonalizadas","res","Provider","value","requestOfertasPersonalizadas","then","catch","e","console","error","CLIENTE_UPDATE_VALUE","AUTH_UPDATE","PEDIDO_UPDATE","PEDIDO_SET_LOJA","PEDIDO_SET_ENDERECO","PEDIDO_SET_REPETICAO","RECORRENCIA_UPDATE","RECORRENCIA_SET_LOJA","RECORRENCIA_SET_ENDERECO","RECORRENCIA_SET_REPETICAO","LOJA_ESCOLHIDA_UPDATE","HORARIOS_DISPONIVEIS_UPDATE","REQUEST_HORARIOS_DISPONIVEIS","SUCCESS_HORARIOS_DISPONIVEIS","FAILURE_HORARIOS_DISPONIVEIS","USER_LOGOUT","PEDIDO_ENVIADO","PEDIDO_RECORRENCIA_ENVIADO","SET_HORARIOS_DISPONIVEIS_ENTREGA_OU_RETIRADA","SET_AMBIENTE","SET_HORARIOS_RECORRENCIA","Cliente","Nome","Cpf","DataNascimento","Telefone","Email","Enderecos","IndRecorrencia","Preferencias","GoogleUID","ClienteService","apiPedido","get","cliente","data","valor","email","telefone","body","post","lojas","loja","push","item","documento","warn","LeveNatural","ativo","apiExterna","retryCondition","leveNatural","adesao","Recorrencia","CodRecorrencia","Descricao","numCpfCnpj","Cep","Endereco","Numero","Complemento","FLV","CarneAvePeixe","OutrosProdutos","DHP","Lanche","DataCadastroApi","LojaId","DataProximaEntrega","RecorrenciaDia","tipoContato","StatusRecorrencia","CodHorario","CodMeioDeContato","ValorDinheiro","QtdDiasAntMensagem","Substituicao","formaPagamento","IncluirSacola","TipoEntrega","HoraEntrega","DataCancelamento","MotivoCancelamento","ReferenciaEndereco","ComoEntregar","OfertaPersonalizada","onlyFields","out","entries","forEach","trim","toString","indexOf","Loja","cod_siac","cod_sap","nome","CNPJ","inscricao_estadual","endereco_cep","endereco_logradouro","endereco_numero","endereco_complemento","endereco_bairro","endereco_cidade","endereco_estado","raio_atendimento_m","qtd_maxima_pedido","url_pedido","url_nps","horaEstendida","parametros","contactsSlice","setContacts","ProgramaFidelidade","register","useFormContext","type","innerRef","placeholder","TelefoneService","tel","replace","Footer","useOfertasPersonalizadas","context","useContext","Error","RecorrenciaRequest","useWindowSize","log","size","setSize","useLayoutEffect","updateSize","innerWidth","addEventListener","removeEventListener","Container","styled","div","Item","pedidoAgendado","css","Summary","footer","AlertBox","Alert","AlertComponent","closeAlert","ReactDOM","createPortal","onClick","document","getElementById","Backdrop","Modal","QuantityModal","isOpen","closeModal","productInformation","setProductQuantity","setQuantity","fillQuantity","userAlert","setUserAlert","handleCloseClick","resetAlert","stopPropagation","description","finalPrice","style","color","onChange","event","target","ItemOfertaComponent","originalPrice","setValue","getValues","refItem","useRef","triggerAlert","setTriggerAlert","quantityModalIsOpen","setQuantityModalIsOpen","quantity","getFormattedPrice","Intl","NumberFormat","currency","format","getLimit","undefined","formatText","limit","cursor","title","substring","ref","concat","setTimeout","Carrousel","React","forwardRef","offers","o","idx","ItemOferta","promotion","urlImage1","SlideButton","button","right","Control","index","control","OfertasPersonalizadas","screenWidth","setControl","controlSlices","setControlSlices","refCarrousel","refContainer","useEffect","current","totalArea","scrollWidth","visibleArea","offsetWidth","result","Math","ceil","handleClick","direction","scroll","scrollLeft","oldState","showArrowLeft","showArrowRight","moment","effectiveEndDate","from","s","coefficient","scrollByControl","TextAreaField","isOfertas","Wrapper","Title","p","Subitle","DefaultButton","separator","lastItem","avulso","Separator","FixedNavigator","items","handleFixedNavigator","preventDefault","element","querySelector","scrollIntoView","behavior","filter","i","firstBlock","href","icon","iconWhite","label","Column","selected","HeaderColumn","Line","weekDaysHeader","Square","day","monthNames","CustomCalendar","didConvertToRecorrencia","handleCloseCalendar","watchDate","watchFrequency","watch","dataEntrega","frequency","calendar","setCalendar","Date","getMonth","month","setMonth","getFullYear","year","setYear","handleMonth","go","quantityOfDaysBefore","getDay","lastDayOfMonthBefore","getDate","calendarInterval","referenceDate","setDeliveryOrRemind","lastWeekDayOfMonthDate","lastDayOfMonth","currentMonthRange","range","currentMonthDays","v","k","isDateBefore","daysToFill","startFillFromMonthNext","formattedCalendar","week","slice","isBefore","deliveryDate","recorrenciaDia","diaRecorrencia","diff","diffLembrete","add","display","handleDataEntrega","axios","create","baseURL","environment","pedidoUrl","headers","interceptors","use","config","Promise","resolve","reject","axiosRetry","retries","retryDelay","module","exports","Parametro","Cod_Parametro","Condicao","CodLoja","getParametroById","ParametroService","clienteUpdate","ACTIONS","userLogout","pedidoUpdate","pedidoSetEndereco","pedidoSetLoja","pedidoSetRepeticao","recorrenciaUpdate","recorrenciaSetLoja","lojaEscolhidaUpdate","requestHorariosDisponiveis","successHorariosDisponiveis","entrega","retirada","retiradaArmario","entregaExpressa","substituicaoLoja","setHorariosDisponiveisEntregaOuRetirada","failureHorariosDisponiveis","pedidoEnviadoUpdate","PedidoEnviadoRecorrenciaUpdate","setAmbiente","DiaRecorrencia","Id","MeioDeContato","DescMeioDeContato","IndAtivo","RecorrenciaResponse","status","SubstituicaoLoja","lojaFechada","Data","cod_siac_substituta","params","includes","recorrenciaResponse","resultado","lista","cupom","dadosCupom","codLoja","parametro","hasRecorrencia","errorMessage","codRecorrencia","Horario","isRecorrencia","horarios","DescHorario","HorarioIncio","busca","PedidoResponse","codPedido","StatusPedido","PedidoService","Pedido","itens","String","pedidoResponse","ConsultaStatusPedidos","TagManager","dataLayer","page","etapa","dominio","location","split","Image","clienteState","useSelector","pedidos","setPedidos","setLojas","statusPedidos","setStatusPedidos","history","useHistory","apenasConcluido","useParams","isLoadingOrderTypes","setIsLoadingOrderTypes","LoadingService","LojaService","listaLojas","listaStatus","listaPedidosPorCpf","pedido","isConcluido","orderBy","inicializar","pedidosAndamento","DataEntrega","isBetween","subtract","isAfter","pedidosFinalizados","AnimationTransition","renderPhrases","Row","Col","xs","border","locale","StatusNewtail","obterStatusPeloId","textAlign","Button","obterLojaPeloCod","repetirPedido","goBack","SubHeader","isHomologacao","lojaEscolhidaState","fontSize","path","primeiroNome","Header","loginUrl","setLoginUrl","ambienteState","isHortifruti","hostname","Navbar","light","expand","NavbarBrand","logoimg","Layout","isAutenticado","authState","store","getState","getLoginPage","PrivateRoute","Component","component","rest","render","to","pathname","RouteWrapper","layout","InformacoesImportantes","parametrosLoja","msgFrete","setMsgFrete","msgHorarios","setMsgHorarios","msgEntregaExpressa","setMsgEntregaExpressa","msgFormasDePagamento","setMsgFormasDePagamento","isInfoLoaded","setIsInfoLoaded","getTxtHorariosDeEntrega","getTxtFormasDePagto","getTxtEntregaExpressa","getTxtFrete","ghostComponent","getPedidoMinimoInfo","RadioComponent","text","watchFieldValue","Label","Input","required","InputRadioSimNao","param","errors","InputRadioSubstituicao","selectedField","setSelectedField","getContainerClassName","option","isChecked","marginLeft","Ghost","padding","inline","circle","marginRight","FormaPagamento","aceitaDinheiro","aceitaViaLink","didFetchParams","imagesCard","opcoes","setOpcoes","pedidoState","watchFormaPagamento","dOpcoes","img","transformToForm","opcao","flexDirection","alignSelf","objectFit","invalid","mask","maskPlaceholder","tag","ReactInputMask","readOnly","maxLength","DadosPessoais","InputMask","initialFrequencyState","chosen","reducerFrequency","Options","menu","Select","handleMenuActions","isActive","setIsActive","append","useFieldArray","useReducer","frequencies","chosenFrequency","f","useMemo","SubTitle","h3","BenefitsList","GoPrimitiveSquare","Frequencia","LoadingInline","styles","spinning","ENTREGA_DOMICILIO_NORMAL","RETIRADA_LOJA_NORMAL","ENTREGA_EXPRESSA","RETIRADA_ARMARIO","Turno","tipoEntrega","isEntregaExpressa","listaHorarios","setListaHorarios","getDescHorario","setDescHorario","horariosDisponiveisState","onShipping","useShippingTracking","Genericos","horas","getHours","minutos","getMinutes","entregaOuRetirada","fieldValues","loading","defaultChecked","horario","desc","isPedidoParaHoje","StoreClosedInformation","StoreAvailableInformation","isToday","TurnoRecorrencia","descHorario","isStoreOpen","isStoreClosed","validateHours","now","hours","startDate","set","hour","Number","minute","endDate","Entrega","setCodRecorrencia","currentCodRecorrencia","sessionStorage","getItem","localStorage","setItem","removeItem","aceitaEntregaExpressa","aceitaRetiradaEmArmario","aceitaRetiradaEmLoja","aceitaRecorrencia","checkEntregaExpressa","setCheckEntregaExpressa","setDisableDataEntrega","setDidConvertToRecorrencia","showCalendar","setShowCalendar","checkRetiradaEmArmario","setCheckRetiradaEmArmario","unregister","watchTipoEntrega","watchDataEntrega","registerFieldsIfConvertedToRecorrencia","unregisterFields","canConvertToRecorrencia","canConvertToRecorrenciaParam","toDate","workingDaysHours","find","holidayHours","showHoursInvalid","setShowHoursInvalid","cb","checkIsHoliday","isHoliday","isWorkingDay","isValid","getTextFromParam","textInterfaces","__html","replaceAll","alignItems","dangerouslySetInnerHTML","min","ProximaEntregaDisponivel","textoProximaEntrega","setTextoProximaEntrega","texto","getTextoProximaEntrega","CpfService","PedidoRequest","SubstituicaoItemAItem","TermoLGPD","Termo","DataAceite","LGPDService","uri","termo","JSON","stringify","checkAceite","salvarTermo","salvouTermo","resultadoCupom","setResultadoCupom","setCupom","validarCupom","getCupom","validaCupom","spellCheck","autocomplete","PedidoComponent","horariosDisponiveisRecorrenciaState","onVirtualPageView","useVirtualPageView","onPurchase","usePurchaseTracking","onInitiateOrder","useInitiateOrderTracking","methods","useForm","allowSubstituicao","setAllowSubstituicao","isSubmitting","setIsSubmitting","substituicaoField","orderType","clienteLeveNatural","setClienteLeveNatural","setParametrosLoja","setHasRecorrencia","arrayImages","setArrayImages","arrayImagesCard","setArrayImagesCard","arrayImagesConfira","setArrayImagesConfira","arrayImagesPadaria","setarrayImagesPadaria","arrayImagesOutrosProdutos","setarrayImagesOutrosProdutos","arrayImagesProteinas","setarrayImagesProteinas","arrayImagesFLV","setarrayImagesFLV","initHasRecorrencia","getHasRecorrencia","err","initClienteLeveNatural","getLeveNatural","initListaHorario","listaHorario","initParametrosLoja","listaParametros","initForm","formatar","PreferenciasCliente","checkIfImageExists","setter","arrayUrl","arr","url","complete","onload","onerror","currentCarouselImages","getImagemMarketing","currentCarouselImagesConfira","getImagemDHP","currentArrayImages","AlertService","currentCarouselImagesPadaria","getImagemPadaria","currentCardlImages","getImagemCards","currentCarouselImagesOutrosProdutos","getImagemOutrosProdutos","currentCarouselImagesProteinas","getImagemPromocaoCarneAvePeixe","currentCarouselImagesFLV","getImagemPromocaoFLV","isPedidoSwitchedToRecorrencia","podeRealizar","codHorario","pedidoConvertido","getHorarioEntregaByCod","dthrEntrega","startOf","validacoesAdicionaisForm","possuiErros","setError","shouldFocus","resetLocalStorage","salvarTermoSeNecessario","runEssentials","setSacolaESubstituicao","ObservacaoPedido","transformRecorrenciaRequest","DataInicio","onSubmitSuccess","salvar","pedidoId","msg","success","pedidoEnviado","titulo","primeiroTxt","primeiroBtnTxt","primeiroBtnLink","RetiradaArmario","isConfirmed","ambiente","nomeLoja","nrPedido","numeroWhatsapp","getNumeroWhatsapp","onSubmitError","didFetchStoreParams","fixedNavigatorItems","IconInfo","IconInfoWhite","IconApple","IconAppleWhite","IconMeat","IconMeatWhite","IconGlass","IconGlassWhite","IconBread","IconBreadWhite","IconTag","IconTagWhite","IconAsterisk","IconAsteriskWhite","IconPayment","IconPaymentWhite","IconUser","IconUserWhite","IconMarker","IconMarkerWhite","IconCalendar","IconCalendarWhite","lg","marginTop","Form","onSubmit","handleSubmit","image","Ofertas","getValorSacola","InputRadioStandard","getAceitaSubstituicaoProduto","getAceitaPagamentoDinheiro","getAceitaPagamentoViaLink","getAceitaRetiradaEmLoja","getAceitaEntregaExpressa","getAceitaRetiradaEmArmario","disable","FallbackComponent","PedidoRecorrencia","lazy","PreAtendimento","PedidoEnviado","PedidoRecorrenciaEnviado","isNaturalDaTerra","urlQuery","search","WPP2Url","WPP2UrlLoginB2b","WPP2B2bLoginQuery","Routes","fallback","exact","hotjarConfig","hjid","hotjarId","hjsv","hotjarSv","hotjar","initialize","App","notification","handleNotificationClose","gtmId","Collapse","in","Snackbar","anchorOrigin","vertical","horizontal","open","autoHideDuration","onClose","variant","IconButton","ContextProvider","theme","createTheme","palette","primary","main","secondary","ThemeProvider","persistor","Swal","fire","html","imageWidth","imageHeight","showConfirmButton","backdrop","allowOutsideClick","allowEscapeKey","allowEnterKey","customClass","confirmButton","cancelButton","buttonsStyling","TagManagerContext","orderTypes","TagManagerProvider","encryptedId","encryptedEmail","encryptUserData","preEncryptionId","googleUID","sha256","preEncryptionEmail","login","baseTag","shopper","cep","tipoLogin","onInputChange","cartDetail","inputText","join","aceitaSacola","aceitaSubstituto","shippingOptions","tipo","turno","purchase","affiliation","environments","development","externaUrl","firebase","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","developmentBkp","homologacao","preproduction","production","useEncryption","useContextSelector","useInputTracking","numeroatendimentoHp","AtualizarCadastro","ValorVenda","CodDia","DataObs","EntregaExpressa","marginBottom","noMb","onBlur","rows","appReducer","combineReducers","CEP","logradouro","recorrenciaState","pedidoEnviadoState","pedidoRecorrenciaEnviadoState","contacts","rootReducer","asyncHorariosDisponiveis","delay","put","all","call","listaHorarioDisponivelRetiradaPorData","listaHorarioDisponivelRetiradaArmarioPorData","listaHorarioDisponivelEntregaExpressaPorData","checaSubstituicaoLoja","listaHorariosEntrega","listaHorariosRetirada","listaHorariosRetiradaArmario","listaHorariosEntregaExpressa","root","takeLatest","persistConfig","key","storage","storageSession","blacklist","sagaMiddleware","createSagaMiddleware","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","persistedReducer","persistReducer","createStore","applyMiddleware","persistStore","run","rootSaga","validateStatus","toNumber","section","SectionTitleList","h2","imageUrl","close","Loading","phrases","loadingAnimationOptions","animationData","phraseIndex","setPhraseIndex","showPhrases","setInterval","clearInterval","loop","autoplay","rendererSettings","preserveAspectRatio","j","x","floor","random","shuffle"],"mappings":"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","file":"static/js/main.f223236d.chunk.js","sourcesContent":["import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\ninterface NotificationState {\r\n visible: boolean;\r\n content: string;\r\n}\r\n\r\nconst initialState = { visible: false, content: \"\" } as NotificationState;\r\n\r\nconst notificationSlice = createSlice({\r\n name: \"notification\",\r\n initialState,\r\n reducers: {\r\n show(state, action: PayloadAction) {\r\n state.visible = true;\r\n state.content = action.payload;\r\n },\r\n hide(state, action: PayloadAction) {\r\n state.visible = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { show, hide } = notificationSlice.actions;\r\n\r\nexport default notificationSlice.reducer;\r\n","import Horario from \"models/Horario\";\r\nimport { useDispatch } from 'react-redux';\r\nimport { useCallback, useState } from \"react\";\r\nimport RecorrenciaService from \"services/RecorrenciaService\";\r\n\r\nimport { setHorariosRecorrencia } from 'actions';\r\n\r\nexport const useFetchHoursAvailable = () => {\r\n const dispatch = useDispatch();\r\n const [hoursAvailable, setHoursAvailable] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const fetchHoursAvailable = useCallback(async (code: string, date: Date) => {\r\n setIsLoading(true);\r\n\r\n const request =\r\n await RecorrenciaService.listaHorarioDisponivelEntregaPorData(\r\n code,\r\n date,\r\n true\r\n );\r\n\r\n setHoursAvailable(request);\r\n dispatch(setHorariosRecorrencia(request));\r\n\r\n setIsLoading(false);\r\n }, []);\r\n\r\n return {\r\n hoursAvailable,\r\n fetchHoursAvailable,\r\n isLoading\r\n };\r\n};\r\n","import React from 'react';\r\n\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport { Splide, SplideSlide } from '@splidejs/react-splide';\r\n\r\nimport '@splidejs/splide/dist/css/splide.min.css'; // requires a loader\r\nimport './styles.scss';\r\n\r\n\r\nconst VitrineCarousel = (props: any) => {\r\n const images: any = props.images;\r\n // const multiple: any = props.multiple;\r\n\r\n const classnames = props.topBanner ?\r\n \"vitrine-container mx-auto d-block mb-5 top-banner-skeleton\"\r\n :\r\n \"vitrine-container mx-auto d-block mb-5 skeleton-vitrine\";\r\n\r\n const mobileObj = {\r\n //type: 'loop',\r\n //height: '10rem',\r\n //autoWidth: true,\r\n //padding: '5rem',\r\n //gap: 12,\r\n }\r\n const desktopObj = {\r\n //perPage: ((window.screen.width > 991) && multiple) ? 3 : 1,\r\n //flickMaxPages: 1,\r\n //gap: 24,\r\n //arrows: false,\r\n }\r\n\r\n return props.images ? (\r\n
\r\n {Array.isArray(images) && images?.length > 1 ? (\r\n 991 ? desktopObj : mobileObj}>\r\n {images.map((imgUrl: any) => {\r\n return (\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n )\r\n })}\r\n
) : (\r\n
\r\n \"\"\r\n
\r\n )}\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default VitrineCarousel;","class Cupom {\r\n Resultado: string;\r\n Valor: string;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default Cupom;","import React, { createContext, useContext, useEffect, useState } from 'react';\r\nimport RecorrenciaService from 'services/RecorrenciaService';\r\n\r\n\r\nexport const OfertasPersonalizadasContext = createContext();\r\n\r\nconst OfertasPersonalizadasProvider = ({ children }) => {\r\n\r\n const [ofertas, setOfertas] = useState([]);\r\n \r\n const requestOfertasPersonalizadas = ({ cpf, id }) => {\r\n if (cpf && id) {\r\n RecorrenciaService.carregarOfertasPersonalizadas(cpf, id)\r\n .then(res => setOfertas(res))\r\n .catch(e => console.error('error: ', e));\r\n }\r\n };\r\n\r\n const requestAsyncOfertasPersonalizadas = async ({ cpf, id }) => {\r\n if (cpf && id) {\r\n const res = await RecorrenciaService.carregarOfertasPersonalizadas(cpf, id);\r\n setOfertas(res);\r\n };\r\n };\r\n\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n};\r\n\r\n\r\nexport const useOfertasPersonalizadas = () => {\r\n const context = useContext(OfertasPersonalizadasContext);\r\n\r\n if (!context) {\r\n throw new Error('useOfertasPersonalizadas must be used within a OfertasPersonalizadasProvider');\r\n }\r\n\r\n return context;\r\n}\r\n\r\nexport default OfertasPersonalizadasProvider;","export const CLIENTE_UPDATE_VALUE = 'CLIENTE_UPDATE_VALUE';\r\nexport const AUTH_UPDATE = 'AUTH_UPDATE';\r\nexport const PEDIDO_UPDATE = 'PEDIDO_UPDATE';\r\nexport const PEDIDO_SET_LOJA = 'PEDIDO_SET_LOJA';\r\nexport const PEDIDO_SET_CEP = 'PEDIDO_SET_CEP';\r\nexport const PEDIDO_SET_ENDERECO = 'PEDIDO_SET_ENDERECO';\r\nexport const PEDIDO_SET_REPETICAO = 'PEDIDO_SET_REPETICAO';\r\nexport const RECORRENCIA_UPDATE = 'RECORRENCIA_UPDATE';\r\nexport const RECORRENCIA_SET_LOJA = 'RECORRENCIA_SET_LOJA';\r\nexport const RECORRENCIA_SET_ENDERECO = 'RECORRENCIA_SET_ENDERECO';\r\nexport const RECORRENCIA_SET_REPETICAO = 'RECORRENCIA_SET_REPETICAO';\r\nexport const LOJA_ESCOLHIDA_UPDATE = 'LOJA_ESCOLHIDA_UPDATE';\r\nexport const HORARIOS_DISPONIVEIS_UPDATE = 'HORARIOS_DISPONIVEIS_UPDATE';\r\nexport const REQUEST_HORARIOS_DISPONIVEIS = 'REQUEST_HORARIOS_DISPONIVEIS';\r\nexport const SUCCESS_HORARIOS_DISPONIVEIS = 'SUCCESS_HORARIOS_DISPONIVEIS';\r\nexport const FAILURE_HORARIOS_DISPONIVEIS = 'FAILURE_HORARIOS_DISPONIVEIS';\r\nexport const USER_LOGOUT = 'USER_LOGOUT';\r\nexport const PEDIDO_ENVIADO = 'PEDIDO_ENVIADO';\r\nexport const PEDIDO_RECORRENCIA_ENVIADO = 'PEDIDO_RECORRENCIA_ENVIADO';\r\nexport const SET_HORARIOS_DISPONIVEIS_ENTREGA_OU_RETIRADA = 'SET_HORARIOS_DISPONIVEIS_ENTREGA_OU_RETIRADA';\r\nexport const SET_AMBIENTE = 'SET_AMBIENTE';\r\nexport const SET_HORARIOS_RECORRENCIA = 'SET_HORARIOS_RECORRENCIA'","import ClienteEndereco from \"./ClienteEndereco\";\r\n\r\nclass Cliente {\r\n Nome: string;\r\n Cpf: string;\r\n DataNascimento: string;\r\n Telefone: string = '';\r\n Email: string;\r\n Enderecos: ClienteEndereco[];\r\n IndRecorrencia: Boolean;\r\n Preferencias: string;\r\n GoogleUID?: string[];\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default Cliente;","import Cliente from \"../models/Cliente\";\r\nimport LeveNatural from \"../models/LeveNatural\";\r\nimport Loja from \"../models/Loja\";\r\nimport apiExterna from \"./apis/ApiExterna\";\r\nimport apiPedido from \"./apis/ApiPedido\";\r\n\r\nclass ClienteService {\r\n\r\n /**\r\n * Carrega um cliente pelo cpf\r\n * @param cpf \r\n * @returns \r\n */\r\n static async carregarPorCpf(cpf: string): Promise {\r\n const res = await apiPedido.get('Cliente/CarregarPorCpf/' + cpf);\r\n const cliente = new Cliente(res.data.valor);\r\n return cliente;\r\n }\r\n\r\n /**\r\n * Carrega dados do cliente pelo email\r\n * @param email\r\n * @returns \r\n */\r\n static async carregarPorEmail(email: string): Promise {\r\n const res = await apiPedido.get('Cliente/CarregarPorEmail?email=' + email);\r\n const cliente = new Cliente(res.data.valor);\r\n return cliente;\r\n }\r\n\r\n /**\r\n * Carrega dados do cliente pelo telefone\r\n * @param telefone\r\n * @returns \r\n */\r\n static async carregarPorTelefone(telefone: string): Promise {\r\n const res = await apiPedido.get('Cliente/CarregarPorTelefone?telefone=' + telefone);\r\n const cliente = new Cliente(res.data.valor);\r\n return cliente;\r\n }\r\n\r\n /**\r\n * Busca as lojas proximas do cep informado\r\n * @param body \r\n */\r\n static async buscaLojasProximasCep(body: object): Promise {\r\n const res = await apiPedido.post('Cliente/ListaLojasProximasdoCEPOrigem', body);\r\n\r\n let lojas: Loja[] = [];\r\n\r\n res.data.valor.map((loja: Loja) => lojas.push(loja))\r\n\r\n return lojas;\r\n }\r\n /**\r\n * Excluir endereço\r\n * @param cep \r\n */\r\n static async excluirEndereco(body: object): Promise {\r\n const res = await apiPedido.post('Pedidos/ExcluirEndereco', body);\r\n \r\n return res.data.value;\r\n // return lojas;\r\n }\r\n\r\n /**\r\n * Busca proximo horario disponivel\r\n * @param body \r\n */\r\n static async listarProximoSlot(body: object): Promise {\r\n const res = await apiPedido.post('Recorrencia/ListarProximoSlotDisponivel/', body);\r\n\r\n let data: any = [];\r\n\r\n res.data.valor.map((item: any) => data.push(item))\r\n\r\n return data;\r\n }\r\n\r\n static async getLeveNatural(documento: string): Promise {\r\n if (!documento) {\r\n console.warn('Documento não informado para consultar se é leve natural');\r\n return new LeveNatural({\r\n ativo: false\r\n });\r\n }\r\n\r\n const res = await apiExterna.post('Cliente/ELeveNatural?objeto=' + documento, {}, {\r\n 'axios-retry': {\r\n retryCondition: () => true, //axios-retry não tenta de novo por padrão se for post\r\n }\r\n });\r\n\r\n const leveNatural = new LeveNatural({\r\n ativo: res.data.valor ? true : false,\r\n adesao: res.data.valor\r\n });\r\n\r\n return leveNatural;\r\n }\r\n\r\n}\r\n\r\nexport default ClienteService;","import toString from 'lodash.tostring';\r\nimport trim from 'lodash.trim';\r\n\r\n\r\nexport class Recorrencia {\r\n CodRecorrencia: number;\r\n Descricao: string;\r\n numCpfCnpj: string;\r\n Cep: string;\r\n Endereco: string;\r\n Numero: string;\r\n Complemento: string;\r\n FLV: string;\r\n CarneAvePeixe: string;\r\n OutrosProdutos: string;\r\n DHP: string;\r\n Lanche: string;\r\n DataCadastroApi: Date;\r\n LojaId: string;\r\n DataProximaEntrega: Date;\r\n RecorrenciaDia: number;\r\n tipoContato: number;\r\n StatusRecorrencia: boolean;\r\n CodHorario: number;\r\n CodMeioDeContato: number;\r\n ValorDinheiro: string;\r\n Nome: string;\r\n Email: string;\r\n QtdDiasAntMensagem: number; // 3\r\n Substituicao: string | boolean;\r\n formaPagamento: string;\r\n IncluirSacola: string | boolean;\r\n TipoEntrega: boolean;\r\n HoraEntrega: string;\r\n DataCancelamento: Date;\r\n MotivoCancelamento: string;\r\n ReferenciaEndereco: string;\r\n Telefone: string;\r\n ComoEntregar: string;\r\n OfertaPersonalizada: string;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n\r\n /**\r\n * Transforma os dados para usar em um form\r\n * @returns\r\n */\r\n public transformToForm(onlyFields: string[] = []): any[] {\r\n let out: any = [];\r\n\r\n Object.entries(this).forEach((item: any) => {\r\n item[1] = trim(toString(item[1]));\r\n\r\n if (onlyFields.length === 0 || onlyFields.indexOf(item[0]) !== -1) {\r\n out.push(item);\r\n }\r\n });\r\n\r\n return out;\r\n }\r\n}\r\n\r\nexport default Recorrencia;\r\n","import Parametro from \"./Parametro\";\r\n\r\nclass Loja{\r\n cod_siac: string;\r\n cod_sap: string;\r\n nome: string;\r\n CNPJ: string;\r\n inscricao_estadual: string;\r\n endereco_cep: string;\r\n endereco_logradouro: string;\r\n endereco_numero: string;\r\n endereco_complemento: string;\r\n endereco_bairro: string;\r\n endereco_cidade: string;\r\n endereco_estado: string;\r\n raio_atendimento_m: number;\r\n qtd_maxima_pedido: number;\r\n url_pedido: string;\r\n url_nps: string;\r\n horaEstendida: string;\r\n parametros: Parametro[] = [];\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default Loja;","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\ninterface ContactsState {\r\n data: any[];\r\n}\r\n\r\nconst initialState = { data: [] } as ContactsState;\r\n\r\nconst contactsSlice = createSlice({\r\n name: \"contacts\",\r\n initialState,\r\n reducers: {\r\n setContacts(state, action: PayloadAction) {\r\n state.data = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setContacts } = contactsSlice.actions;\r\n\r\nexport default contactsSlice.reducer;\r\n","import { useFormContext } from \"react-hook-form\";\r\nimport { Input } from \"reactstrap\";\r\n\r\nconst ProgramaFidelidade = () => {\r\n const { register } = useFormContext();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Data Nascimento

\r\n \r\n
\r\n
\r\n
\r\n
\r\n

E-mail

\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProgramaFidelidade;\r\n","class TelefoneService {\r\n static formatar(tel: string = '') {\r\n\r\n if (!tel) return tel;\r\n //retira os caracteres indesejados...\r\n tel = tel.replace(/[^\\d]/g, \"\");\r\n\r\n //realizar a formatação...\r\n let out: string = '';\r\n\r\n if (tel.length === 10) {\r\n out = tel.replace(/(\\d{2})(\\d{4})(\\d{4})/, \"($1) $2-$3\");\r\n } else\r\n if (tel.length === 11) {\r\n out = tel.replace(/(\\d{2})(\\d{5})(\\d{4})/, \"($1) $2-$3\");\r\n } else {\r\n console.warn('Telefone invalido para formatação.')\r\n }\r\n\r\n return out;\r\n }\r\n}\r\n\r\nexport default TelefoneService;","import \"./styles.scss\";\r\n\r\nconst Footer = () => {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Footer;\r\n","export default __webpack_public_path__ + \"static/media/apple-alt.d24505aa.svg\";","export default __webpack_public_path__ + \"static/media/apple-alt-white.e1719eba.svg\";","export default __webpack_public_path__ + \"static/media/meat.0a528635.svg\";","export default __webpack_public_path__ + \"static/media/meat-white.6ac56034.svg\";","export default __webpack_public_path__ + \"static/media/bread-loaf.c2000ec8.svg\";","export default __webpack_public_path__ + \"static/media/bread-loaf-white.7181d756.svg\";","export default __webpack_public_path__ + \"static/media/glass-cheers.1fc6e522.svg\";","export default __webpack_public_path__ + \"static/media/glass-cheers-white.a4baa2d2.svg\";","export default __webpack_public_path__ + \"static/media/tag.af14b60a.svg\";","export default __webpack_public_path__ + \"static/media/tag-white.8406673b.svg\";","export default __webpack_public_path__ + \"static/media/home.ab089334.svg\";","export default __webpack_public_path__ + \"static/media/home-white.5b5daf30.svg\";","export default __webpack_public_path__ + \"static/media/shipping-fast.328215e5.svg\";","export default __webpack_public_path__ + \"static/media/shipping-fast-white.ea66263c.svg\";","export default __webpack_public_path__ + \"static/media/cog.013995b6.svg\";","export default __webpack_public_path__ + \"static/media/cog-white.2c2e98d7.svg\";","export default __webpack_public_path__ + \"static/media/credit-card.3659ef8b.svg\";","export default __webpack_public_path__ + \"static/media/credit-card-white.02574dfe.svg\";","export default __webpack_public_path__ + \"static/media/user-circle.7c3e5517.svg\";","export default __webpack_public_path__ + \"static/media/user-circle-white.a884fa97.svg\";","export default __webpack_public_path__ + \"static/media/calendar-alt.5b6a4223.svg\";","export default __webpack_public_path__ + \"static/media/calendar-alt-white.26708db8.svg\";","import { useContext } from 'react';\r\nimport { OfertasPersonalizadasContext } from '../context/OfertasPersonalizadasContext';\r\n\r\n\r\nexport const useOfertasPersonalizadas = () => {\r\n const context = useContext(OfertasPersonalizadasContext);\r\n\r\n if (!context) {\r\n throw new Error('useOfertasPersonalizadas must be used within a OfertasPersonalizadasProvider');\r\n }\r\n\r\n const { ofertas, requestOfertasPersonalizadas, requestAsyncOfertasPersonalizadas } = context;\r\n\r\n return { ofertas, requestOfertasPersonalizadas, requestAsyncOfertasPersonalizadas };\r\n}","import Recorrencia from \"./Recorrencia\";\r\n\r\nexport class RecorrenciaRequest extends Recorrencia {\r\n}\r\n\r\nexport default RecorrenciaRequest;","import React, { useState, useLayoutEffect } from 'react';\r\n\r\nexport const useWindowSize = () => {\r\n console.log('realizando consulta de mídia...');\r\n \r\n const [size, setSize] = useState(0);\r\n useLayoutEffect(() => {\r\n function updateSize() {\r\n setSize(window.innerWidth);\r\n };\r\n window.addEventListener('resize', updateSize);\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, [])\r\n\r\n return size;\r\n};\r\n\r\n","import styled, { css } from 'styled-components';\r\nimport { Alert } from 'reactstrap';\r\n\r\n\r\nexport const Container = styled.div` \r\n width: auto;\r\n height: auto;\r\n \r\n display: flex;\r\n overflow-x: auto;\r\n scroll-behavior: smooth;\r\n &::-webkit-scrollbar { // add webkit for mozilla?\r\n display: none;\r\n } \r\n`;\r\n\r\nexport const Item = styled.div`\r\n flex: 1; // flex none valendo apenas o width?\r\n min-width: calc(16.66% - 13.44px);\r\n max-width: 218.67px;\r\n height: 334px;\r\n \r\n @media(max-width:1300px) {\r\n min-width: calc(20% - 13.44px);\r\n };\r\n\r\n ${props => props.pedidoAgendado && css`\r\n @media(min-width:992px) {\r\n min-width: calc(25% - 13.44px);\r\n };\r\n `}\r\n\r\n @media(max-width:1128px) {\r\n min-width: calc(25% - 13.44px);\r\n };\r\n\r\n @media(max-width:879px) {\r\n min-width: calc(33.33% - 13.44px);\r\n };\r\n \r\n @media(max-width:675px) {\r\n min-width: calc(37.5% - 13.44px);\r\n };\r\n\r\n @media(max-width:599px) {\r\n min-width: calc(50% - 13.44px);\r\n };\r\n\r\n @media(max-width:465px) {\r\n min-width: calc(70% - 13.44px);\r\n }; \r\n \r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: flex-start;\r\n padding: 16px;\r\n \r\n border-color: #E0E0E0;\r\n border-width: 1px;\r\n border-style: solid;\r\n border-radius: 4px;\r\n margin-right: 16px;\r\n \r\n cursor: grab;\r\n user-select: none;\r\n &:hover {\r\n border-color: #24A076;\r\n }\r\n > div.img-produto {\r\n width: 85%;\r\n height: 44.01%; // it was 147px\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n user-select: none;\r\n img {\r\n max-width: 100%;\r\n max-height: 100%;\r\n }\r\n }\r\n`;\r\n\r\nexport const Summary = styled.footer`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-top: 20px;\r\n color: #54412F;\r\n div:first-child {\r\n height: auto;\r\n p {\r\n font-size: 100%;\r\n font-weight: bold;\r\n text-align: center;\r\n } \r\n }\r\n div:last-child {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n small {\r\n font-size: 16px;\r\n text-decoration-line: line-through;\r\n }\r\n span {\r\n font-size: 24px;\r\n font-weight: bold;\r\n }\r\n } \r\n`;\r\n\r\nexport const AlertBox = styled(Alert)`\r\n width: auto;\r\n position: fixed;\r\n bottom: 2.4%; // review\r\n left: 50%;\r\n transform: translateX(-50%);\r\n svg {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n cursor: pointer;\r\n }\r\n @media(max-width:599px) {\r\n width: 91.11%;\r\n };\r\n`;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport { IoIosClose } from 'react-icons/io';\r\nimport { AlertBox } from './styles';\r\n\r\n\r\nconst AlertComponent = ({ visible, closeAlert }) => {\r\n \r\n const handleClose = () => { \r\n closeAlert();\r\n };\r\n\r\n return visible && ReactDOM.createPortal(\r\n \r\n \r\n Sucesso! Produto adicionado com sucesso.\r\n \r\n \r\n , \r\n document.getElementById(\"portal\")\r\n ); \r\n};\r\n\r\nexport default AlertComponent;","import styled from 'styled-components';\r\n\r\n\r\nexport const Backdrop = styled.div`\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: rgba(0, 0, 0, 0.60);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 16px;\r\n z-index: 10;\r\n`\r\n\r\nexport const Modal = styled.div`\r\n max-width: 520px;\r\n width: 100%;\r\n //height: 354px;\r\n height: auto;\r\n padding: 16px;\r\n border-radius: 8px;\r\n background-color: #FFF;\r\n color: #614B36;\r\n position: relative;\r\n > div:first-child {\r\n height: 25px;\r\n position: absolute;\r\n right: 16px;\r\n top: 8px;\r\n \r\n cursor: pointer;\r\n z-index: 15;\r\n };\r\n > div {\r\n > span {\r\n font-weight: 700;\r\n }\r\n * {\r\n display: block;\r\n margin-bottom: 16px;\r\n }\r\n textarea {\r\n height: 76px;\r\n width: 100%;\r\n background-color: #EEEEEE;\r\n border: none;\r\n outline: none;\r\n padding: 8px;\r\n resize: none;\r\n border: 0.75px solid #DADADA;\r\n }\r\n button {\r\n cursor: pointer;\r\n width: 100%;\r\n height: 54px;\r\n border: none;\r\n outline: none;\r\n background-color: #4FBE95;\r\n color: #FFF;\r\n border-radius: 4px;\r\n font-size: 16px;\r\n font-weight: 700;\r\n }\r\n }\r\n header {\r\n height: 60px;\r\n width: 100%;\r\n margin-bottom: 20px;\r\n display: flex;\r\n position: relative;\r\n }\r\n header > div {\r\n height: 100%;\r\n \r\n display: flex;\r\n align-items: center;\r\n div:first-child {\r\n width: 60px;\r\n height: inherit;\r\n margin-right: 8px;\r\n img {\r\n max-width: 100%;\r\n max-height: 100%; \r\n };\r\n };\r\n div:last-child {\r\n align-self: flex-start;\r\n span:first-child {\r\n max-width: 40ch;\r\n //white-space: normal;\r\n \r\n @media(max-width:599px) {\r\n max-width: 25ch;\r\n };\r\n }\r\n span {\r\n display: block;\r\n }\r\n span h1 {\r\n font-size: 16px;\r\n font-weight: 700;\r\n }\r\n }\r\n }\r\n footer {\r\n font-size: 14px;\r\n display: flex;\r\n justify-content: center;\r\n div span {\r\n text-align: justify;\r\n }\r\n @media(max-width:599px) {\r\n font-size: 12px;\r\n };\r\n }\r\n`;","import React, { useState } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport { IoIosClose } from 'react-icons/io';\r\n\r\nimport { Modal, Backdrop } from './styles';\r\n\r\n\r\nconst QuantityModal = (props) => {\r\n const { \r\n isOpen, \r\n closeModal, \r\n productInformation, \r\n setProductQuantity, \r\n fillQuantity: setQuantity } = props;\r\n\r\n const [userAlert, setUserAlert] = useState(false); \r\n\r\n const handleCloseClick = () => {\r\n resetAlert();\r\n closeModal();\r\n };\r\n\r\n const handleClick = (e) => {\r\n // avoid the backdrop to listen the close click above\r\n e.stopPropagation(); \r\n };\r\n\r\n const resetAlert = () => {\r\n if (userAlert) {\r\n setUserAlert(false);\r\n };\r\n };\r\n \r\n const fillQuantity = () => {\r\n resetAlert();\r\n setQuantity();\r\n }\r\n \r\n const handleOnChange = (event) => {\r\n const value = event.target.value;\r\n\r\n if (value.length > 20) {\r\n setUserAlert(true);\r\n };\r\n\r\n setProductQuantity(event.target.value)\r\n }\r\n\r\n return isOpen && ReactDOM.createPortal(\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {productInformation.description}\r\n
\r\n
\r\n \r\n {productInformation.description}\r\n \r\n \r\n \r\n {productInformation.finalPrice}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n userAlert && (\r\n \r\n Insira apenas quantidades.\r\n \r\n )\r\n }\r\n
\r\n \r\n Escreva uma quantidade\r\n \r\n \r\n handleOnChange(e)} \r\n placeholder=\"Ex: 12 unidades ou 250g\" />\r\n \r\n
\r\n
\r\n
\r\n \r\n Atenção! Ofertas válidas enquanto durarem os estoques.
\r\n Desconto não é válido para substituição por outro produto similar.\r\n
\r\n
\r\n
\r\n
\r\n
,\r\n document.getElementById(\"portal\")\r\n ); \r\n};\r\n\r\nexport default QuantityModal;","import React, { useState, useRef } from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\n\r\nimport Alert from './Alert';\r\nimport QuantityModal from './QuantityModal/index';\r\n\r\nimport { useWindowSize } from '../useWindowSize';\r\n\r\nimport { Summary, Item } from './styles';\r\n\r\n\r\nconst ItemOfertaComponent = ({ description, originalPrice, finalPrice, imgUrl, pedidoAgendado }) => {\r\n const { setValue, getValues } = useFormContext();\r\n const { OfertaPersonalizada } = getValues();\r\n\r\n const screenWidth = useWindowSize();\r\n\r\n const refItem = useRef(null);\r\n\r\n const [triggerAlert, setTriggerAlert] = useState(false);\r\n const [quantityModalIsOpen, setQuantityModalIsOpen] = useState(false);\r\n const [quantity, setQuantity] = useState(\"\");\r\n\r\n const handleClick = () => {\r\n setQuantityModalIsOpen(true);\r\n };\r\n\r\n const getFormattedPrice = (value) => {\r\n return new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(value);\r\n };\r\n\r\n const getLimit = (context) => {\r\n return context === 'modal' ? undefined : 45;\r\n }\r\n\r\n const formatText = (context = 'carousel') => {\r\n let limit = getLimit(context);\r\n if (!limit || description?.length <= limit) {\r\n return {description};\r\n };\r\n\r\n return (\r\n \r\n {description?.substring(0, limit)}...\r\n \r\n );\r\n };\r\n\r\n const fillQuantity = () => {\r\n if (quantity.trim().length === 0) {\r\n return;\r\n };\r\n\r\n setValue('OfertaPersonalizada', OfertaPersonalizada.concat(`${quantity} ` + description + '\\n'));\r\n setQuantityModalIsOpen(false);\r\n setQuantity(\"\");\r\n setTriggerAlert(true);\r\n\r\n setTimeout(() => {\r\n setTriggerAlert(false);\r\n }, 3000)\r\n }\r\n\r\n\r\n return (\r\n [\r\n \r\n
\r\n {description}\r\n
\r\n \r\n
\r\n {formatText()}\r\n
\r\n
\r\n {getFormattedPrice(originalPrice)}\r\n {getFormattedPrice(finalPrice)}\r\n
\r\n
\r\n ,\r\n setQuantityModalIsOpen(false)}\r\n productInformation={{\r\n imgUrl,\r\n description: formatText('modal'),\r\n finalPrice: getFormattedPrice(finalPrice)\r\n }}\r\n setProductQuantity={setQuantity}\r\n fillQuantity={fillQuantity}\r\n />,\r\n setTriggerAlert(false)} />\r\n ]\r\n )\r\n};\r\n\r\nexport default ItemOfertaComponent; ","import React from 'react';\r\n\r\nimport ItemOfertaComponent from './ItemOferta';\r\n\r\nimport { Container } from './styles';\r\n\r\n\r\nconst Carrousel = React.forwardRef(({ offers, pedidoAgendado }, ref) => {\r\n return (\r\n \r\n {\r\n !!offers.length && offers.map((o, idx) => (\r\n \r\n ))\r\n }\r\n \r\n )\r\n});\r\n\r\nexport default Carrousel;","import styled, { css } from 'styled-components';\r\n\r\n\r\nexport const Container = styled.div`\r\n width: 100%;\r\n height: auto;\r\n overflow-x: hidden;\r\n position: relative;\r\n margin-bottom: 16px;\r\n \r\n header {\r\n width: 100%;\r\n height: 50px;\r\n padding: 16px 16px 0px 0px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n div:nth-child(1) { \r\n span {\r\n display: block;\r\n }\r\n span:nth-child(2) {\r\n color: #24A076;\r\n font-weight: 500;\r\n }\r\n }\r\n div:nth-child(2) {\r\n display: flex;\r\n align-items: center;\r\n };\r\n };\r\n`;\r\n\r\nexport const Warning = styled.footer`\r\n width: 100%;\r\n height: auto;\r\n font-size: 16px;\r\n font-weight: bold;\r\n color: #54412F;\r\n margin-top: 16px;\r\n`\r\n\r\nexport const SlideButton = styled.button`\r\n position: absolute;\r\n //top: 52.24%;\r\n top: 47.24%;\r\n \r\n width: 32px;\r\n height: 32px;\r\n border: 1px solid #E0E0E0;\r\n border-radius: 4px;\r\n background-color: #FFF;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n ${({ right }) => right ? css`\r\n right: 1%`\r\n :\r\n css`\r\n left: 1%;\r\n transform: rotate(180deg);\r\n `\r\n };\r\n svg {\r\n color: #54BE95;\r\n font-weight: bold;\r\n };\r\n @media(max-width:599px) {\r\n display: none;\r\n }\r\n`\r\n\r\nexport const Control = styled.div`\r\n width: 15px;\r\n height: 15px;\r\n border-radius: 50%;\r\n border: 1px solid #E0E0E0;\r\n border-width: 1px;\r\n border-style: solid;\r\n border-color: ${({ index, control }) => index === control ? '#00B262' : '#E0E0E0'};\r\n & + div {\r\n margin-left: 4px;\r\n };\r\n cursor: pointer;\r\n`;","import React, { useRef, useState, useEffect, useCallback } from 'react';\r\nimport { useWindowSize } from './useWindowSize';\r\n\r\nimport moment from 'moment';\r\n\r\nimport Carrousel from './Carrousel/index';\r\nimport TextAreaField from 'components/TextAreaField';\r\n\r\nimport { IoIosArrowForward } from 'react-icons/io';\r\nimport { SlideButton, Container, Control } from './styles';\r\n\r\nimport { SectionTitleList } from '../../TextAreaField/styles';\r\n\r\n\r\nconst OfertasPersonalizadas = (props) => {\r\n const { offers, pedidoAgendado, register } = props;\r\n const screenWidth = useWindowSize() // rever lógica\r\n\r\n //const [position, dispatch] = useReducer();\r\n const [control, setControl] = useState(1);\r\n const [controlSlices, setControlSlices] = useState(1);\r\n\r\n const refCarrousel = useRef(null);\r\n const refContainer = useRef(null);\r\n\r\n useEffect(() => {\r\n if (refCarrousel.current) {\r\n let totalArea = refCarrousel.current.scrollWidth;\r\n let visibleArea = refContainer.current.offsetWidth;\r\n\r\n const result = Math.ceil(totalArea / visibleArea)\r\n\r\n setControlSlices(result);\r\n }\r\n }, [refCarrousel, offers, screenWidth])\r\n\r\n const handleClick = useCallback((direction) => {\r\n const scroll = refCarrousel.current.offsetWidth;\r\n\r\n if (direction === 'left') refCarrousel.current.scrollLeft += scroll;\r\n if (direction === 'right') refCarrousel.current.scrollLeft -= scroll;\r\n\r\n if (control < controlSlices && direction === 'left') {\r\n setControl(oldState => oldState + 1);\r\n };\r\n\r\n if (control !== 1 && direction === 'right') {\r\n setControl(oldState => oldState - 1);\r\n };\r\n }, [control, controlSlices]);\r\n\r\n const handleControl = (index) => () => {\r\n if (index !== control) {\r\n let coefficient = index - control;\r\n let scrollByControl = refCarrousel.current.offsetWidth * coefficient;\r\n refCarrousel.current.scrollLeft += scrollByControl;\r\n setControl(index);\r\n };\r\n };\r\n\r\n const showArrowLeft = useCallback(() => {\r\n return (control > 1) && (\r\n handleClick('right')} type=\"button\">\r\n \r\n \r\n )\r\n }, [handleClick, control]);\r\n\r\n const showArrowRight = useCallback(() => {\r\n return (control < controlSlices) && (\r\n handleClick('left')}\r\n type=\"button\"\r\n right\r\n >\r\n \r\n \r\n )\r\n }, [handleClick, control, controlSlices]);\r\n\r\n return (\r\n
\r\n \r\n \r\n Ofertas personalizadas para você\r\n \r\n
\r\n
\r\n {offers.length} ofertas disponíveis\r\n \r\n *válidas até {moment(offers[0].effectiveEndDate).format('DD/MM/YYYY')}\r\n \r\n
\r\n
\r\n {\r\n refContainer && refContainer.current?.offsetWidth > 599 &&\r\n Array.from({ length: controlSlices }).map((s, idx) => (\r\n \r\n ))\r\n }\r\n
\r\n
\r\n \r\n {showArrowLeft()}\r\n {showArrowRight()}\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default OfertasPersonalizadas;","import styled from \"styled-components\";\r\n\r\nexport const Wrapper = styled.div`\r\n background-color: #F3F3F3;\r\n border-radius: 8px;\r\n position: fixed;\r\n padding: 16px;\r\n position: sticky;\r\n top: 40px;\r\n \r\n nav {\r\n img {\r\n margin-right: 10px;\r\n }\r\n }\r\n @media (max-height: 685px) {\r\n height: 100vh;\r\n top: 5px;\r\n overflow-y: scroll;\r\n }\r\n`;\r\n\r\nexport const Title = styled.p`\r\n font-family: Bellfort;\r\n font-weight: bold;\r\n font-size: 24px;\r\n line-height: 36px;\r\n margin-bottom: 16px;\r\n color: #54412F;\r\n`;\r\n\r\nexport const Subitle = styled.p`\r\n font-family: OpenSans;\r\n font-weight: bold;\r\n font-size: 16px;\r\n line-height: 24px;\r\n margin-bottom: 4px;\r\n color: #54412F;\r\n`;\r\n\r\nexport const DefaultButton = styled.a<{ separator?: boolean, avulso?: boolean, lastItem?: boolean }>`\r\n display: flex;\r\n font-family: OpenSans;\r\n font-weight: bold;\r\n font-size: 16px;\r\n line-height: 24px;\r\n color: #54412F;\r\n border-radius: 4px;\r\n background-color: #FFFFFF;\r\n padding: 8px;\r\n align-items: center;\r\n margin-bottom: ${({ separator, lastItem }) => !!lastItem ? 0 : !!separator ? \"8px\" : \"4px\"};\r\n\r\n &:hover {\r\n background-color: #CCCCCC;\r\n color: #54412F;\r\n text-decoration: none;\r\n }\r\n\r\n &:active {\r\n color: #FFFFFF;\r\n background-color: ${({ avulso }) => avulso ? \"#26946F\" : \"#A35E8E\"};;\r\n text-decoration: none;\r\n .defaultImg {\r\n display: none;\r\n }\r\n .whiteImg {\r\n display: block;\r\n }\r\n }\r\n\r\n \r\n .defaultImg {\r\n display: block;\r\n }\r\n .whiteImg {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const Separator = styled.div`\r\n border-bottom: 2px dotted #BEBEBE;\r\n width: 100%;\r\n margin-bottom: 8px;\r\n`;\r\n","import * as Styled from \"./styles\";\r\n\r\ninterface FixedNavigatorProps {\r\n items: {\r\n target: string;\r\n icon?: any;\r\n iconWhite?: any;\r\n separator?: boolean;\r\n firstBlock?: boolean;\r\n avulso?: boolean;\r\n label: string;\r\n }[];\r\n}\r\nconst FixedNavigator = ({ items }: FixedNavigatorProps) => {\r\n const handleFixedNavigator = (target: string) => (event: any) => {\r\n event.preventDefault();\r\n const element = document.querySelector(`#${target}`);\r\n\r\n if (element) element.scrollIntoView({ behavior: \"smooth\" });\r\n return false;\r\n };\r\n\r\n return (\r\n \r\n \r\n Navegue pela página\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FixedNavigator;\r\n","import styled, { css } from 'styled-components';\r\n\r\n\r\nexport const Container = styled.div`\r\n border: 1px solid #e0e0e0;\r\n display: block;\r\n width: 100%;\r\n max-width: 499px;\r\n height: 286px;\r\n\r\n border-radius: 0px 0px 4px 4px;\r\n\r\n padding: 16px;\r\n margin-left: 16px;\r\n margin-right: 16px;\r\n margin-top: -16px;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n font-family: OpenSans;\r\n\r\n @media (max-width: 280px) {\r\n padding: 8px;\r\n }\r\n\r\n & header {\r\n height: 24px;\r\n margin-bottom: 8px;\r\n\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: space-between;\r\n\r\n color: #54412f;\r\n\r\n & span {\r\n font-size: 16px;\r\n\r\n @media (max-width: 280px) {\r\n font-size: 12px;\r\n } \r\n }\r\n\r\n & div {\r\n & svg {\r\n font-size: 24px;\r\n cursor: pointer;\r\n\r\n @media (max-width: 499px) {\r\n font-size: 20px;\r\n }\r\n }\r\n\r\n & svg:first-child {\r\n margin-right: 32px;\r\n\r\n @media (max-width: 280px) {\r\n margin-right: 20px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n`;\r\n\r\nexport const Column = styled.div`\r\n width: 25px;\r\n height: 25px;\r\n border-radius: 50%;\r\n\r\n padding: 8px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n font-family: OpenSans;\r\n\r\n cursor: pointer;\r\n\r\n ${({ selected, current }) => (selected && current) && css`\r\n background-color: #eeeeee;\r\n `}\r\n\r\n ${({ selected, current }) => (selected && current) && css`\r\n &:hover {\r\n background-color: #eeeeee;\r\n } \r\n `}\r\n\r\n display: flex;\r\n justify-content: center;\r\n\r\n color: ${({ color, current }) => {\r\n return (color && current) ? color : current ? '#000000' : '#e0e0e0';\r\n }};\r\n\r\n ${({ current, color }) => {\r\n if (color && current) {\r\n return css`\r\n font-weight: 700;\r\n `\r\n }\r\n }}\r\n`\r\n\r\nexport const HeaderColumn = styled(Column)`\r\n color: #54412f;\r\n`\r\n\r\nexport const Line = styled.div`\r\n //border: 1px solid red;\r\n width: 100%;\r\n flex: 1;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n font-size: 14px;\r\n\r\n font-family: OpenSans;\r\n\r\n ${props => props.weekDaysHeader && css`\r\n font-weight: 700;\r\n color: #54412f;\r\n font-size: 15px;\r\n `}\r\n\r\n @media (max-width: 280px) {\r\n font-size: 12px;\r\n }\r\n`;\r\n\r\nexport const Footer = styled.footer`\r\n width: 100%;\r\n display: flex;\r\n margin: -16px 16px 0px 16px;\r\n font-family: OpenSans;\r\n\r\n & span {\r\n font-size: 12px;\r\n color: #54412f;\r\n\r\n display: flex;\r\n align-items: center;\r\n\r\n @media (max-width: 280px) {\r\n font-size: 10px;\r\n }\r\n\r\n & + span {\r\n margin-left: 16px;\r\n }\r\n }\r\n`;\r\n\r\nexport const Square = styled.div`\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 2px;\r\n\r\n background-color: ${props => props.color};\r\n\r\n margin-right: 4px;\r\n`;","import React, { useEffect, useState } from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport range from 'lodash.range';\r\nimport { IoIosArrowBack, IoIosArrowForward } from 'react-icons/io';\r\nimport { Container, Column, Line, Footer, Square, HeaderColumn } from './styles';\r\nimport moment from 'moment';\r\n\r\nconst color = '#54412f';\r\nconst weekDaysHeader = [\r\n {\r\n day: 'D',\r\n color\r\n },\r\n {\r\n day: 'S',\r\n color\r\n },\r\n {\r\n day: 'T',\r\n color\r\n },\r\n {\r\n day: 'Q',\r\n color\r\n },\r\n {\r\n day: 'Q',\r\n color\r\n },\r\n {\r\n day: 'S',\r\n color\r\n },\r\n {\r\n day: 'S',\r\n color\r\n\r\n },\r\n]\r\n\r\nconst monthNames = {\r\n 0: 'Janeiro',\r\n 1: 'Fevereiro',\r\n 2: 'Março',\r\n 3: 'Abril',\r\n 4: 'Maio',\r\n 5: 'Junho',\r\n 6: 'Julho',\r\n 7: 'Agosto',\r\n 8: 'Setembro',\r\n 9: 'Outubro',\r\n 10: 'Novembro',\r\n 11: 'Dezembro'\r\n}\r\n\r\n\r\nconst CustomCalendar = ({ didConvertToRecorrencia, handleCloseCalendar, watchDate, watchFrequency, onChange }) => {\r\n const { watch, setValue } = useFormContext();\r\n\r\n const dataEntrega = watch(watchDate);\r\n const frequency = watch(watchFrequency);\r\n\r\n const [calendar, setCalendar] = useState([]);\r\n const [month, setMonth] = useState(new Date(dataEntrega).getMonth());\r\n const [year, setYear] = useState(new Date(dataEntrega).getFullYear());\r\n\r\n const handleMonth = (go) => {\r\n if (go === 'back') {\r\n if (month === 0) {\r\n setMonth(11);\r\n setYear(year => year - 1);\r\n } else {\r\n setMonth(month => month - 1);\r\n }\r\n }\r\n\r\n if (go === 'forward') {\r\n if (month === 11) {\r\n setMonth(0);\r\n setYear(year => year + 1);\r\n } else {\r\n setMonth(month => month + 1);\r\n }\r\n }\r\n };\r\n\r\n const handleDataEntrega = (value) => {\r\n let deliveryDate = value.date;\r\n if (!isDateBefore(deliveryDate) && value.current) {\r\n setValue(watchDate, moment(deliveryDate).format('YYYY-MM-DD'));\r\n onChange();\r\n handleCloseCalendar();\r\n };\r\n };\r\n\r\n\r\n useEffect(() => {\r\n // descubro em que dia da semana o mês começa \r\n const firstWeekDayOfMonth = new Date(year, month, 1).getDay();\r\n\r\n //criação de variável descritiva com a quantidade de espaços que deverão ser preenchidos antes do dia primeiro \r\n const quantityOfDaysBefore = firstWeekDayOfMonth;\r\n\r\n // descubro o último dia do mês passado e subtraio a quantidade de espaços que devo preencher\r\n // aqui eu descubro que dia será o primeiro dia do calendário (mês passado)\r\n const lastDayOfMonthBefore = new Date(year, month, 0).getDate();\r\n const startFillFromMonthBefore = lastDayOfMonthBefore - (quantityOfDaysBefore - 1);\r\n\r\n // inicio a variável que representa o calendário do mês que está sendo mostrado\r\n let calendarInterval = [];\r\n\r\n for (var index = startFillFromMonthBefore; index <= lastDayOfMonthBefore; index++) {\r\n let referenceDate = new Date(year, month === 0 ? 11 : month - 1, index); // alterado\r\n\r\n calendarInterval.push({\r\n day: index,\r\n current: false,\r\n date: referenceDate,\r\n color: setDeliveryOrRemind(referenceDate),\r\n })\r\n };\r\n\r\n const lastWeekDayOfMonthDate = new Date(year, month + 1, 0)\r\n const lastDayOfMonth = lastWeekDayOfMonthDate.getDate();\r\n const currentMonthRange = range(lastDayOfMonth);\r\n const currentMonthDays = Array.from(currentMonthRange, (v, k) => {\r\n let referenceDate = new Date(year, month, k + 1);\r\n\r\n return (\r\n {\r\n day: k + 1,\r\n current: !isDateBefore(referenceDate),\r\n date: new Date(referenceDate),\r\n color: setDeliveryOrRemind(referenceDate),\r\n }\r\n )\r\n });\r\n calendarInterval = [...calendarInterval, ...currentMonthDays];\r\n // descubro qual é o dia da semana do último dia do mês \r\n // desta forma consigo saber quantos espaços devo preencher com o próximo mês\r\n const lastWeekDayOfMonth = lastWeekDayOfMonthDate.getDay();\r\n const daysToFill = 6 - lastWeekDayOfMonth;\r\n const startFillFromMonthNext = Array.from(range(daysToFill), (v, k) => (\r\n {\r\n day: k + 1,\r\n current: false,\r\n date: new Date(year, month + 1, k + 1),\r\n color: setDeliveryOrRemind(new Date(year, month + 1, k + 1))\r\n }));\r\n calendarInterval = [...calendarInterval, ...startFillFromMonthNext];\r\n let formattedCalendar = [];\r\n for (var i = 0; i < (calendarInterval.length / 7); i++) {\r\n const week = calendarInterval.slice(i * 7, i * 7 + 7);\r\n formattedCalendar.push(week);\r\n }\r\n setCalendar(formattedCalendar);\r\n\r\n }, [month, year, dataEntrega, frequency]);\r\n\r\n const isDateBefore = (referenceDate) => {\r\n return !!moment(referenceDate).isBefore(moment(), 'day');\r\n }\r\n\r\n const setDeliveryOrRemind = (date) => {\r\n const referenceDate = moment(date);\r\n const deliveryDate = moment(dataEntrega);\r\n // if (moment(referenceDate).isBefore(moment(), 'day')) {\r\n // return '#e0e0e0';\r\n // }\r\n if (referenceDate.isBefore(deliveryDate)) {\r\n return null;\r\n }\r\n if (frequency) {\r\n const recorrenciaDia = Array.isArray(frequency) ? frequency[frequency.length - 1].diaRecorrencia : frequency;\r\n\r\n const diff = referenceDate.diff(deliveryDate, 'days');\r\n const diffLembrete = referenceDate.add(2, 'days').diff(deliveryDate, 'days');\r\n\r\n if ((diff % recorrenciaDia) === 0) {\r\n return \"#24A076\";\r\n } else if ((diffLembrete % recorrenciaDia) === 0) {\r\n return \"#FAA61A\";\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n {monthNames[month]} de {year}\r\n \r\n \r\n
\r\n handleMonth('back')} />\r\n handleMonth('forward')} />\r\n
\r\n
\r\n \r\n {\r\n weekDaysHeader.map(value => {\r\n return (\r\n \r\n {value.day}\r\n \r\n )\r\n })\r\n }\r\n \r\n {\r\n calendar.map((week, idx) => {\r\n return (\r\n \r\n {\r\n week.map((value, idx) => {\r\n return (\r\n handleDataEntrega(value)}\r\n selected={moment(value.date).format('YYYY-MM-DD') === dataEntrega}\r\n >\r\n {value.day}\r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n })\r\n }\r\n
\r\n {\r\n didConvertToRecorrencia && (\r\n
\r\n \r\n \r\n \r\n DIA DE ENTREGA\r\n \r\n \r\n \r\n \r\n \r\n LEMBRETE\r\n \r\n \r\n
\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default CustomCalendar;","import axios from \"axios\";\r\nimport axiosRetry from \"axios-retry\";\r\nimport environment from \"config/environment\";\r\n\r\nconst apiPedido = axios.create({\r\n baseURL: environment.pedidoUrl,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n});\r\n\r\napiPedido.interceptors.request.use(\r\n async (config) => {\r\n return Promise.resolve(config);\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxiosRetry(apiPedido, { retries: 30, retryDelay: () => 6000 });\r\n\r\nexport default apiPedido;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinning\":\"Spinning_spinning__MhkUS\"};","export class Parametro {\r\n Valor: string;\r\n Cod_Parametro: number;\r\n Condicao: number;\r\n CodLoja:string;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n\r\n}\r\n\r\nexport default Parametro;","import Parametro from \"../models/Parametro\";\r\n\r\nconst getParametroById = (parametros: Parametro[], id: number): string => {\r\n const parametro: Parametro = new Parametro(\r\n parametros.filter((item: Parametro) => item.Cod_Parametro === id)[0]\r\n );\r\n return parametro.Valor;\r\n};\r\n\r\nclass ParametroService {\r\n /**\r\n * Retorna a imagem de promoção para frutas legumes e verduras\r\n * @param parametros\r\n */\r\n static getImagemPromocaoFLV(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 1);\r\n }\r\n\r\n /**\r\n * Retorna a imagem de promoção para carnes, aves e peixes\r\n * @param parametros\r\n */\r\n static getImagemPromocaoCarneAvePeixe(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 2);\r\n }\r\n\r\n /**\r\n * Retorna a imagem de promoção para departamento de outros produtos\r\n * @param parametros\r\n */\r\n static getImagemOutrosProdutos(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 3);\r\n }\r\n\r\n /**\r\n * Retorna se aceita pagamento em dinheiro\r\n * @param parametros\r\n */\r\n static getAceitaPagamentoDinheiro(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 4) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna a imagem de promoção para departamento de higiene & limpeza\r\n * @param parametros\r\n */\r\n static getImagemDHP(parametros: Parametro[]): string {\r\n let imagemDHP = getParametroById(parametros, 7); \r\n \r\n return imagemDHP;\r\n }\r\n\r\n /**\r\n * Retorna se permite recorrência\r\n * @param parametros\r\n */\r\n static getPermiteRecorrencia(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 9) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna o tipo prazo de entrega\r\n * @param parametros\r\n */\r\n static getTipoPrazoEntrega(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 10);\r\n }\r\n\r\n /**\r\n * Retorna informaçao se tem pedido minimo\r\n * @param parametros\r\n */\r\n static getPedidoMinimoInfo(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 11);\r\n }\r\n\r\n /**\r\n * Retorna se pode substituir um produto\r\n * @param parametros\r\n */\r\n static getAceitaSubstituicaoProduto(parametros: Parametro[]): boolean {\r\n const p = getParametroById(parametros, 13);\r\n\r\n if (!p) {\r\n return true;\r\n } else {\r\n return p === \"1\";\r\n }\r\n }\r\n\r\n /**\r\n * Retorna o valor da sacola\r\n * @param parametros\r\n */\r\n static getValorSacola(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 18);\r\n }\r\n\r\n /**\r\n * Retorna se aceita pagamento em dinheiro\r\n * @param parametros\r\n */\r\n static getAceitaRetiradaEmLoja(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 19) === \"1\";\r\n }\r\n /**\r\n * Retorna uma mensagem com o nome dos separadores\r\n * @param parametros\r\n */\r\n static getNomeSeparadores(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 21);\r\n }\r\n\r\n /**\r\n * Retorna uma imagem para ilustrar os separadores\r\n * @param parametros\r\n */\r\n static getImagemSeparadores(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 22);\r\n }\r\n\r\n /**\r\n * retorna se o horario estendido está ativo para a loja\r\n * @param parametros\r\n */\r\n static getHorarioEstendidoAtivo(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 24) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna o horário normal de funcionamento de uma loja\r\n * @param parametros\r\n */\r\n static getHorarioNormal(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 25);\r\n }\r\n\r\n /**\r\n * Retorna o horário normal de funcionamento de uma loja\r\n * @param parametros\r\n */\r\n static getHorarioEstendido(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 26);\r\n }\r\n\r\n /**\r\n * Retorna a imagem de marketing\r\n * @param parametros\r\n */\r\n static getImagemMarketing(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 27);\r\n }\r\n\r\n /**\r\n * Retorna se aceita pagamento em dinheiro\r\n * @param parametros\r\n */\r\n static getAceitaPagamentoViaLink(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 29) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna O número de whatsapp para acompanhamento dos pedidos\r\n * @param parametros\r\n */\r\n static getNumeroWhatsapp(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 32);\r\n }\r\n\r\n /**\r\n * Retorna o código do tipo de loja (0 = Fake, 1 = Full, 2 = Dark, 3 = Leve)\r\n * @param parametros\r\n */\r\n static getTipoDeLoja(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 33);\r\n }\r\n\r\n /**\r\n * Retorna o texto para o item Frete na área Informações Importantes\r\n * @param parametros\r\n */\r\n static getTxtFrete(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 34);\r\n }\r\n\r\n /**\r\n * Retorna o texto para o item Horarios De Entrega na área Informações Importantes\r\n * @param parametros\r\n */\r\n static getTxtHorariosDeEntrega(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 35);\r\n }\r\n\r\n /**\r\n * Retorna o texto para o item Formas De Pagamento na área Informações Importantes\r\n * @param parametros\r\n */\r\n static getTxtFormasDePagto(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 36);\r\n }\r\n\r\n /**\r\n * Retorna se a loja tem Entrega Expressa\r\n * @param parametros\r\n */\r\n static getAceitaEntregaExpressa(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 37) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna a imagem de itens da Padaria\r\n * @param parametros\r\n */\r\n static getImagemCards(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 53);\r\n }\r\n\r\n /**\r\n * Retorna a imagem de itens da Padaria\r\n * @param parametros\r\n */\r\n static getImagemPadaria(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 38);\r\n }\r\n\r\n /**\r\n * Retorna se a loja aceita Retirada em Armário Inteligente.\r\n * @param parametros\r\n */\r\n static getAceitaRetiradaEmArmario(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 39) === \"1\";\r\n }\r\n\r\n /**\r\n * Uso externo. Não utilizado no WhatsApp.\r\n * @param parametros\r\n */\r\n static getEnvioMensagemYalo(parametros: Parametro[]): boolean {\r\n return getParametroById(parametros, 40) === \"1\";\r\n }\r\n\r\n /**\r\n * Retorna o texto para o item Entrega Expressa na área Informações Importantes.\r\n * @param parametros\r\n */\r\n static getTxtEntregaExpressa(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 41);\r\n }\r\n\r\n /**\r\n * Retorna o texto para o item Frete na área Informações Importantes do Pedido Recorrente\r\n * @param parametros\r\n */\r\n static getTxtFreteRecorrencia(parametros: Parametro[]): string {\r\n return getParametroById(parametros, 54);\r\n }\r\n}\r\n\r\nexport default ParametroService;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"vitrine-container\":\"styles_vitrine-container__1Oos0\",\"tituloBasicoAvulso\":\"styles_tituloBasicoAvulso__3ejja\",\"splide__arrow\":\"styles_splide__arrow__Vfscd\",\"splide__pagination__page\":\"styles_splide__pagination__page__2P6jm\",\"is-active\":\"styles_is-active__OiyzM\",\"splide__pagination\":\"styles_splide__pagination__3XPr4\",\"subtituloAvulso\":\"styles_subtituloAvulso__30JgM\",\"textAvulso\":\"styles_textAvulso__1OG3a\",\"container-textAvulso\":\"styles_container-textAvulso__EtZy0\",\"container-dadosPessoais\":\"styles_container-dadosPessoais__1YTeJ\",\"textAvulsoSm\":\"styles_textAvulsoSm__276pe\",\"radioBtn\":\"styles_radioBtn__1FwkE\",\"radioContainer\":\"styles_radioContainer__2lUcD\",\"radioBtnSubstituicao\":\"styles_radioBtnSubstituicao__1Cl-a\",\"textRadioBtnWithContainer\":\"styles_textRadioBtnWithContainer__37EWp\",\"textRadioBtn\":\"styles_textRadioBtn__38Q0Z\"};","import PedidoEnviadoInterface from \"../interfaces/PedidoEnviadoInterface\";\r\nimport PedidoEnviadoRecorrenciaInterface from \"../interfaces/PedidoEnviadoRecorrenciaInterface\";\r\nimport { RequestHorariosDisponiveisUpdateInterface } from \"../interfaces/RequestHorariosDisponiveisUpdateInterface\";\r\nimport Auth from \"../models/Auth\";\r\nimport Cliente from \"../models/Cliente\";\r\nimport ClienteEndereco from \"../models/ClienteEndereco\";\r\nimport Horario from \"../models/Horario\";\r\nimport Loja from \"../models/Loja\";\r\nimport { Pedido } from \"../models/Pedido\";\r\nimport Recorrencia from \"../models/Recorrencia\";\r\nimport SubstituicaoLoja from \"../models/SubstituicaoLoja\";\r\nimport * as ACTIONS from \"./actionTypes\";\r\n\r\nexport const clienteUpdate = (value: Cliente) => ({\r\n type: ACTIONS.CLIENTE_UPDATE_VALUE,\r\n data: value,\r\n});\r\n\r\nexport const authUpdate = (value?: Auth) => ({\r\n type: ACTIONS.AUTH_UPDATE,\r\n data: value,\r\n});\r\n\r\nexport const userLogout = () => ({\r\n type: ACTIONS.USER_LOGOUT,\r\n});\r\n\r\nexport const pedidoUpdate = (value: Pedido) => ({\r\n type: ACTIONS.PEDIDO_UPDATE,\r\n data: value,\r\n});\r\n\r\nexport const pedidoSetEndereco = (value: ClienteEndereco) => ({\r\n type: ACTIONS.PEDIDO_SET_ENDERECO,\r\n data: value,\r\n});\r\n\r\nexport const pedidoSetLoja = (value: string) => ({\r\n type: ACTIONS.PEDIDO_SET_LOJA,\r\n data: value,\r\n});\r\n\r\nexport const pedidoSetRepeticao = (value: Pedido) => ({\r\n type: ACTIONS.PEDIDO_SET_REPETICAO,\r\n data: value,\r\n});\r\n\r\nexport const recorrenciaUpdate = (value: Recorrencia) => ({\r\n type: ACTIONS.RECORRENCIA_UPDATE,\r\n data: value,\r\n});\r\n\r\nexport const recorrenciaSetEndereco = (value: ClienteEndereco) => ({\r\n type: ACTIONS.RECORRENCIA_SET_ENDERECO,\r\n data: value,\r\n});\r\n\r\nexport const recorrenciaSetLoja = (value: string) => ({\r\n type: ACTIONS.RECORRENCIA_SET_LOJA,\r\n data: value,\r\n});\r\n\r\nexport const recorrenciaSetRepeticao = (value: Recorrencia) => ({\r\n type: ACTIONS.RECORRENCIA_SET_REPETICAO,\r\n data: value,\r\n});\r\n\r\nexport const lojaEscolhidaUpdate = (value: Loja) => ({\r\n type: ACTIONS.LOJA_ESCOLHIDA_UPDATE,\r\n data: value,\r\n});\r\n\r\nexport const horariosDisponiveisUpdate = (value: Horario[]) => ({\r\n type: ACTIONS.HORARIOS_DISPONIVEIS_UPDATE,\r\n data: value,\r\n});\r\n\r\nexport const requestHorariosDisponiveis = (\r\n value: RequestHorariosDisponiveisUpdateInterface\r\n) => {\r\n return {\r\n type: ACTIONS.REQUEST_HORARIOS_DISPONIVEIS,\r\n data: value,\r\n };\r\n};\r\n\r\nexport const successHorariosDisponiveis = (\r\n entrega: Horario[],\r\n retirada: Horario[],\r\n retiradaArmario: Horario[],\r\n entregaExpressa: Horario[],\r\n substituicaoLoja: SubstituicaoLoja\r\n) => {\r\n return {\r\n type: ACTIONS.SUCCESS_HORARIOS_DISPONIVEIS,\r\n data: {\r\n entrega: entrega,\r\n retirada: retirada,\r\n retiradaArmario: retiradaArmario,\r\n entregaExpressa: entregaExpressa,\r\n substituicaoLoja: substituicaoLoja,\r\n },\r\n };\r\n};\r\n\r\nexport const setHorariosDisponiveisEntregaOuRetirada = (\r\n value: \"Entrega\" | \"Retirada\"\r\n) => {\r\n //console.log('setHorariosDisponiveisEntregaOuRetirada.value', value);\r\n return {\r\n type: ACTIONS.SET_HORARIOS_DISPONIVEIS_ENTREGA_OU_RETIRADA,\r\n data: value,\r\n };\r\n};\r\n\r\nexport const failureHorariosDisponiveis = () => {\r\n return {\r\n type: ACTIONS.FAILURE_HORARIOS_DISPONIVEIS,\r\n };\r\n};\r\n\r\nexport const pedidoEnviadoUpdate = (value: PedidoEnviadoInterface) => ({\r\n type: ACTIONS.PEDIDO_ENVIADO,\r\n data: value,\r\n});\r\n\r\nexport const PedidoEnviadoRecorrenciaUpdate = (\r\n value: PedidoEnviadoRecorrenciaInterface\r\n) => ({\r\n type: ACTIONS.PEDIDO_RECORRENCIA_ENVIADO,\r\n data: value,\r\n});\r\n\r\nexport const setAmbiente = (value: \"b2b\" | \"normal\") => ({\r\n type: ACTIONS.SET_AMBIENTE,\r\n data: value,\r\n});\r\n\r\nexport const setHorariosRecorrencia = (value: Horario[]) => ({\r\n type: ACTIONS.SET_HORARIOS_RECORRENCIA,\r\n data: value\r\n})\r\n","\r\nclass DiaRecorrencia{\r\n Id: number;\r\n Nome: string;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default DiaRecorrencia;","export class MeioDeContato {\r\n CodMeioDeContato: number;\r\n DescMeioDeContato: string;\r\n IndAtivo: boolean;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n\r\n}\r\n\r\nexport default MeioDeContato;","export class RecorrenciaResponse {\r\n status: boolean\r\n data: object\r\n error: string;\r\n \r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n\r\n}\r\n\r\nexport default RecorrenciaResponse;","export class SubstituicaoLoja {\r\n lojaFechada: boolean = false;\r\n cod_siac: number;\r\n Data: Date;\r\n cod_siac_substituta: number;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default SubstituicaoLoja;","import { RequestChecarSubstituicaoLojaInterface } from \"../interfaces/RequestChecarSubstituicaoLojaInterface\";\r\nimport Cupom from \"../models/Cupom\";\r\nimport DiaRecorrencia from \"../models/DiaRecorrencia\";\r\nimport Horario from \"../models/Horario\";\r\nimport MeioDeContato from \"../models/MeioDeContato\";\r\nimport RecorrenciaRequest from \"../models/RecorrenciaRequest\";\r\nimport RecorrenciaResponse from \"../models/RecorrenciaResponse\";\r\nimport SubstituicaoLoja from \"../models/SubstituicaoLoja\";\r\nimport apiPedido from \"./apis/ApiPedido\";\r\nimport apiExterna from \"./apis/ApiExterna\";\r\n\r\nclass RecorrenciaService {\r\n static async checkIsHoliday(date: any): Promise {\r\n const params = {\r\n CodLoja: 0,\r\n Data: date,\r\n Recorrencia: true,\r\n };\r\n const res = await apiPedido.post(\r\n \"/Recorrencia/DataInformadaEDomingoOuFeriado\",\r\n params\r\n );\r\n\r\n return res.data.valor;\r\n }\r\n\r\n static async getAllContacts() {\r\n const request = await apiPedido.get(\"/Recorrencia/ListaMeioDeContato\");\r\n\r\n return request.data.valor\r\n .filter((item: any) =>\r\n [\"Conversa por WhatsApp\", \"Ligacao\"].includes(item.DescMeioDeContato)\r\n )\r\n .map((item: any) => ({\r\n id: item.CodMeioDeContato,\r\n value: item.DescMeioDeContato,\r\n }));\r\n }\r\n static async salvar(data: RecorrenciaRequest): Promise {\r\n const res = await apiPedido.post(\r\n \"/Pedidos/ConfirmarRecorrenciaTelaPrincipal\",\r\n data\r\n );\r\n\r\n const recorrenciaResponse = new RecorrenciaResponse({\r\n status: res.data.resultado,\r\n data: res.data.valor,\r\n error: res.data.resultado ? null : res.data.valor,\r\n });\r\n\r\n return recorrenciaResponse;\r\n }\r\n\r\n static async listaMeiosDeContato(): Promise {\r\n const res = await apiPedido.get(\"/Recorrencia/ListaMeioDeContato\");\r\n\r\n const lista = res.data.valor.map(\r\n (item: MeioDeContato) => new MeioDeContato(item)\r\n );\r\n\r\n return lista;\r\n }\r\n\r\n static async listaDiaRecorrencia(): Promise {\r\n const res = await apiPedido.get(\"/Recorrencia/ListarDiaRecorrenciaModel\");\r\n\r\n const lista = res.data.valor.map(\r\n (item: DiaRecorrencia) => new DiaRecorrencia(item)\r\n );\r\n\r\n return lista;\r\n }\r\n\r\n static async getCupom(cupom: string) {\r\n try {\r\n const res = await apiExterna.get(`Promocao/GetByCupom?cupom=${cupom}`);\r\n\r\n const dadosCupom = new Cupom({\r\n Resultado: res.data.resultado,\r\n Valor: res.data.valor ? res.data.valor : null,\r\n });\r\n\r\n return { error: !res.data.resultado, data: dadosCupom };\r\n } catch (e) {\r\n return { error: true, data: e };\r\n }\r\n }\r\n\r\n static async getHasRecorrencia(\r\n codLoja: string,\r\n parametro: Number\r\n ): Promise {\r\n try {\r\n const res = await apiPedido.get(\r\n `/RecorrenciaWZap/CarregarValorPorParametro/${codLoja}/${parametro}`\r\n );\r\n const hasRecorrencia = res.data.valor?.Valor === \"1\";\r\n const error = !!res.data.errorMessage;\r\n\r\n return {\r\n error,\r\n data: { hasRecorrencia },\r\n };\r\n } catch (e) {\r\n return { error: true, data: e };\r\n }\r\n }\r\n\r\n static async getRecorrenciaInfo(\r\n codRecorrencia: any\r\n ): Promise {\r\n try {\r\n const res = await apiPedido.get(\r\n `/Pedidos/RecorrenciasConfirmadasNesteMes/${codRecorrencia}`\r\n );\r\n const error = !!res.data.errorMessage;\r\n\r\n return {\r\n error,\r\n data: res.data.valor,\r\n };\r\n } catch (e) {\r\n return { error: true, data: e };\r\n }\r\n }\r\n\r\n static async carregarOfertasPersonalizadas(cpf: string, id: string): Promise {\r\n try {\r\n const res = await apiPedido.get(\r\n `/RecorrenciaWZap/OfertaPersonalizada/${cpf}/${id}`\r\n );\r\n\r\n if (res.data.resultado) {\r\n return res.data.valor;\r\n }\r\n } catch (e) {\r\n return { error: true, data: e }\r\n }\r\n }\r\n\r\n static async listaHorario(): Promise {\r\n const res = await apiPedido.get(\"/Recorrencia/ListarHorarios\");\r\n\r\n const lista = res.data.valor.map((item: Horario) => new Horario(item));\r\n \r\n return lista;\r\n }\r\n\r\n static async listaHorarioDisponivelEntregaPorData(\r\n codLoja: string,\r\n data: Date,\r\n isRecorrencia = false\r\n ): Promise {\r\n const params: {\r\n CodLoja: string;\r\n Data: Date;\r\n Recorrencia?: boolean;\r\n } = {\r\n CodLoja: codLoja,\r\n Data: data,\r\n };\r\n\r\n if (isRecorrencia) {\r\n params[\"Recorrencia\"] = true;\r\n }\r\n\r\n const res = await apiPedido.post(\r\n \"/Recorrencia/ListarHorariosDisponivelParaPedidoPOdData\",\r\n params,\r\n {\r\n \"axios-retry\": {\r\n retryCondition: () => true, // axios-retry não tenta de novo por padrão se for post\r\n },\r\n }\r\n );\r\n\r\n let horarios: Horario[] = [];\r\n\r\n res.data.valor.forEach((item: Horario) => {\r\n horarios.push(new Horario(item));\r\n });\r\n\r\n return horarios;\r\n }\r\n\r\n static async listaHorarioDisponivelRetiradaPorData(\r\n codLoja: string,\r\n data: Date\r\n ): Promise {\r\n const res = await apiPedido.post(\r\n \"/Recorrencia/ListarHorariosPedidoPOdData\",\r\n {\r\n CodLoja: codLoja,\r\n Data: data,\r\n },\r\n {\r\n \"axios-retry\": {\r\n retryCondition: () => true, //axios-retry não tenta de novo por padrão se for post\r\n },\r\n }\r\n );\r\n\r\n let horarios: Horario[] = [];\r\n\r\n res.data.valor.forEach((item: number) => {\r\n horarios.push(\r\n new Horario({\r\n CodHorario: item,\r\n IndAtivo: true,\r\n DescHorario: item + \"h\",\r\n HorarioIncio: item,\r\n })\r\n );\r\n });\r\n\r\n return horarios;\r\n }\r\n\r\n static async listaHorarioDisponivelEntregaExpressaPorData(\r\n codLoja: string,\r\n data: Date\r\n ): Promise {\r\n const res = await apiPedido.post(\r\n \"/Recorrencia/ListarHorariosPedidoPOdData\",\r\n {\r\n CodLoja: codLoja,\r\n Data: data,\r\n },\r\n {\r\n \"axios-retry\": {\r\n retryCondition: () => true, //axios-retry não tenta de novo por padrão se for post\r\n },\r\n }\r\n );\r\n\r\n let horarios: Horario[] = [];\r\n\r\n //console.log('RetiradaArmario SLOTS', res.data.valor);\r\n\r\n res.data.valor.forEach((item: number) => {\r\n if (item === 9 || item === 12 || item === 15 || item === 18) {\r\n horarios.push(\r\n new Horario({\r\n CodHorario: item,\r\n IndAtivo: true,\r\n DescHorario: `${item}h - ${item + 3}h`, // retirar em armário: slots de 3 horas.\r\n HorarioIncio: item,\r\n })\r\n );\r\n }\r\n });\r\n\r\n return horarios;\r\n }\r\n\r\n static async checaSubstituicaoLoja(\r\n codLoja: string,\r\n data: Date\r\n ): Promise {\r\n const busca: RequestChecarSubstituicaoLojaInterface = {\r\n CodLoja: codLoja,\r\n Data: data,\r\n };\r\n\r\n const res = await apiPedido.post(\"Pedidos/SubstituicaoLoja\", busca);\r\n\r\n return new SubstituicaoLoja({\r\n ...res.data.valor,\r\n lojaFechada: res.data.valor && res.data.valor.cod_siac ? true : false,\r\n });\r\n }\r\n\r\n static async listaHorarioDisponivelRetiradaArmarioPorData(\r\n codLoja: string,\r\n data: Date\r\n ): Promise {\r\n const res = await apiPedido.post(\r\n \"/Recorrencia/ListarHorariosPedidoPOdData\",\r\n {\r\n CodLoja: codLoja,\r\n Data: data,\r\n },\r\n {\r\n \"axios-retry\": {\r\n retryCondition: () => true, //axios-retry não tenta de novo por padrão se for post\r\n },\r\n }\r\n );\r\n\r\n let horarios: Horario[] = [];\r\n\r\n res.data.valor.forEach((item: number) => {\r\n if (item === 9 || item === 12 || item === 15 || item === 18) {\r\n horarios.push(\r\n new Horario({\r\n CodHorario: item,\r\n IndAtivo: true,\r\n DescHorario: `${item}h - ${item + 3}h`, // retirar em armário: slots de 3 horas.\r\n HorarioIncio: item,\r\n })\r\n );\r\n }\r\n });\r\n\r\n return horarios;\r\n }\r\n}\r\n\r\nexport default RecorrenciaService;\r\n","export class PedidoResponse {\r\n status: boolean\r\n codPedido: string\r\n error: string;\r\n \r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n\r\n}\r\n\r\nexport default PedidoResponse;","class StatusPedido{\r\n Id: number;\r\n Nome: string;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default StatusPedido;","import Cupom from \"../models/Cupom\";\r\nimport Pedido from \"../models/Pedido\";\r\nimport PedidoRequest from \"../models/PedidoRequest\";\r\nimport PedidoResponse from \"../models/PedidoResponse\";\r\nimport StatusPedido from \"../models/StatusPedido\";\r\nimport apiExterna from \"./apis/ApiExterna\";\r\nimport apiPedido from \"./apis/ApiPedido\";\r\n\r\n\r\nclass PedidoService {\r\n\r\n /**\r\n * Lista todos os status possiveis para os pedidos\r\n * @returns \r\n */\r\n static async listaStatus(): Promise {\r\n const res = await apiPedido.get('Pedidos/ListaStatus');\r\n\r\n let lista: StatusPedido[] = [];\r\n\r\n res.data.valor.map((item: StatusPedido) => {\r\n lista.push(item);\r\n return item;\r\n })\r\n\r\n return lista;\r\n }\r\n\r\n /**\r\n * Lista todos os pedidos vinculados a um cpf\r\n * @param cpf \r\n * @returns \r\n */\r\n static async listaPedidosPorCpf(cpf: string): Promise {\r\n const res = await apiPedido.get('Pedidos/CarregarPorCpf/' + cpf);\r\n\r\n let lista: Pedido[] = [];\r\n\r\n res.data.valor.map((item: Pedido) => {\r\n lista.push(new Pedido(item));\r\n return item;\r\n })\r\n\r\n return lista;\r\n }\r\n\r\n /**\r\n * Filtra uma status por um array de status\r\n * @param itens \r\n * @param codLoja \r\n * @returns \r\n */\r\n static obterStatusPeloId(itens: StatusPedido[], id: any): StatusPedido {\r\n const status = new StatusPedido(itens.filter((item: StatusPedido) => String(item.Id) === String(id))[0]);\r\n\r\n return status;\r\n }\r\n\r\n /**\r\n * Salva um pedido\r\n * @param data \r\n * @returns \r\n */\r\n static async salvar(data: PedidoRequest): Promise {\r\n const res = await apiPedido.post('Pedidos/Salvar/', data);\r\n\r\n const pedidoResponse = new PedidoResponse({\r\n status: res.data.resultado,\r\n codPedido: res.data.resultado ? res.data.valor : null,\r\n error: res.data.resultado ? null : res.data.valor,\r\n });\r\n\r\n return pedidoResponse;\r\n }\r\n\r\n /**\r\n * Valida cupom\r\n * @param cupom \r\n * @returns \r\n */\r\n static async getCupom(cupom: string): Promise {\r\n const res = await apiExterna.get('Promocao/GetByCupom?cupom=' + cupom);\r\n\r\n const dadosCupom = new Cupom({\r\n Resultado: res.data.resultado,\r\n Valor: res.data.valor ? res.data.valor : null\r\n });\r\n\r\n return dadosCupom;\r\n }\r\n\r\n}\r\n\r\nexport default PedidoService;","import orderBy from 'lodash.orderby';\r\nimport React, { useEffect, useState } from 'react';\r\nimport Moment from 'react-moment';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Button, Row, Col } from 'reactstrap';\r\nimport { lojaEscolhidaUpdate, pedidoSetRepeticao } from '../../actions';\r\n// import Loja from '../../models/Loja';\r\n// import Pedido from '../../models/Pedido';\r\n// import StatusPedido from '../../models/StatusPedido';\r\nimport LoadingService from '../../services/LoadingService';\r\nimport AnimationTransition from \"../../components/PreAtendimento/SelecaoLoja/AnimationTransition\";\r\nimport LojaService from '../../services/LojaService';\r\nimport PedidoService from '../../services/PedidoService';\r\nimport TagManager from \"react-gtm-module\";\r\nimport '../style.css';\r\nimport moment from 'moment';\r\n\r\nconst ConsultaStatusPedidos = (props) => {\r\n useEffect(() => {\r\n TagManager.dataLayer({\r\n dataLayer: {\r\n event: \"virtualPageView\",\r\n page: \"/consulta-status-pedidos\",\r\n etapa: \"status-pedidos\",\r\n dominio: window.location.href.split('/con')[0]\r\n },\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n const img = new Image();\r\n img.src = '/src/assets/animations/orange-walker.gif';\r\n }, [])\r\n \r\n const { clienteState } = useSelector((state) => state);\r\n const [pedidos, setPedidos] = useState([]);\r\n const [lojas, setLojas] = useState([]);\r\n const [statusPedidos, setStatusPedidos] = useState([]);\r\n const history = useHistory();\r\n let { apenasConcluido } = useParams();\r\n const dispatch = useDispatch();\r\n const [isLoadingOrderTypes, setIsLoadingOrderTypes] = useState(true);\r\n\r\n\r\n useEffect(() => {\r\n\r\n return () => {\r\n LoadingService.hide()\r\n setIsLoadingOrderTypes(false);\r\n }\r\n }, [])\r\n\r\n \r\n\r\n useEffect(() => {\r\n async function inicializar() {\r\n \r\n\r\n const lojas = await LojaService.listaLojas();\r\n\r\n setLojas(lojas);\r\n\r\n const statusPedidos = await PedidoService.listaStatus();\r\n\r\n setStatusPedidos(statusPedidos);\r\n\r\n let pedidos = await PedidoService.listaPedidosPorCpf(clienteState.data.Cpf);\r\n\r\n if (apenasConcluido) {\r\n pedidos = pedidos.filter((pedido) => pedido.isConcluido());\r\n }\r\n\r\n setPedidos(orderBy(pedidos, 'DataEntrega', 'desc'));\r\n\r\n setIsLoadingOrderTypes(false);\r\n \r\n }\r\n\r\n inicializar();\r\n }, [clienteState.data.Cpf, apenasConcluido]);\r\n\r\n const repetirPedido = (pedido) => {\r\n dispatch(pedidoSetRepeticao(pedido));\r\n\r\n const loja = LojaService.obterLojaPeloCod(lojas, pedido.LojaId);\r\n\r\n dispatch(lojaEscolhidaUpdate(loja));\r\n\r\n history.push('/pedido')\r\n }\r\n\r\n const pedidosAndamento = pedidos\r\n .filter(i => i.StatusPedido < 5)\r\n .filter(o => moment(o.DataEntrega, 'YYYY-MM-DD')\r\n .isBetween(moment().subtract(2, 'months')) || moment(o.DataEntrega).isAfter());\r\n const pedidosFinalizados = pedidos.filter(i => i.StatusPedido > 4);\r\n\r\n const getAnimation = () => {\r\n return (\r\n \r\n )\r\n }\r\n return (\r\n isLoadingOrderTypes ? getAnimation() : (\r\n
\r\n
\r\n \r\n \r\n

\r\n Você tem {pedidosAndamento.length} {pedidosAndamento.length > 1 ? \"pedidos\" : \"pedido\"} em andamento:\r\n

\r\n \r\n \r\n
\r\n \r\n \r\n {pedidosAndamento.map((pedido, idx) => {\r\n return (\r\n \r\n \r\n

{pedido.DataEntrega} - {pedido.DescHorario}

\r\n

{pedido.StatusNewtail ?? PedidoService.obterStatusPeloId(statusPedidos, pedido.StatusPedido).Nome}

\r\n \r\n\r\n \r\n \r\n {idx < (pedidosAndamento.length - 1) && (\r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n })}\r\n
\r\n
\r\n

Pedidos anteriores:

\r\n {pedidosFinalizados.map((pedido) => {\r\n return (\r\n \r\n \r\n

{pedido.DataEntrega}

\r\n

{pedido.Endereco + ', ' + pedido.Numero}

\r\n \r\n\r\n \r\n {pedido.isConcluido()\r\n ? \r\n : PedidoService.obterStatusPeloId(statusPedidos, pedido.StatusPedido).Nome\r\n }\r\n \r\n
\r\n )\r\n })}\r\n
\r\n
\r\n history.goBack()}\r\n >\r\n Voltar\r\n \r\n
\r\n
\r\n )\r\n )\r\n}\r\n\r\n\r\nexport default ConsultaStatusPedidos;","import environment from \"config/environment\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport \"./styles.scss\";\r\n\r\nconst SubHeader = () => {\r\n const isHomologacao = environment.title === \"Homologação\";\r\n const { clienteState } = useSelector((state: any) => state);\r\n const { lojaEscolhidaState } = useSelector((state: any) => state);\r\n\r\n const primeiroNome = function (nome: string = \"\"): string {\r\n if (nome.indexOf(\" \") !== -1) {\r\n return nome.split(\" \")[0];\r\n } else {\r\n return nome;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {clienteState.data.Nome ? (\r\n \r\n {primeiroNome(clienteState.data.Nome)}, bem-vindo(a) a Loja{\" \"}\r\n {lojaEscolhidaState.data.nome}!\r\n \r\n ) : (\r\n Bem-vindo(a) a Loja {lojaEscolhidaState.data.nome}!\r\n )}\r\n \r\n \r\n {isHomologacao && (\r\n [Homologação] \r\n )}\r\n Bem-vindo ao mundo das cores e sabores! 🌿🌱\r\n \r\n \r\n
\r\n );\r\n};\r\nexport default SubHeader;\r\n","export default __webpack_public_path__ + \"static/media/logo-natural.c754b9fa.svg\";","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Navbar, NavbarBrand } from 'reactstrap';\r\nimport SubHeader from './sub-header';\r\nimport logoimg from '../../../assets/images/logo-natural.svg'\r\n\r\nconst Header = () => {\r\n\r\n const [loginUrl, setLoginUrl] = useState('');\r\n const { ambienteState } = useSelector((state: any) => state);\r\n\r\n useEffect(() => {\r\n if (ambienteState.data === 'normal') {\r\n setLoginUrl('/login');\r\n } else {\r\n setLoginUrl('/login-' + ambienteState.data);\r\n }\r\n }, [ambienteState])\r\n\r\n const isHortifruti = window.location.hostname === 'wpp.hortifruti.com.br';\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n {isHortifruti && \"Logo}\r\n {!isHortifruti && \"Logo}\r\n
\r\n
\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Header;","import React from 'react';\r\nimport Header from './Header';\r\n\r\nconst Layout = ({children}) => (\r\n <>\r\n
\r\n
\r\n {children}\r\n
\r\n \r\n)\r\n\r\nexport default Layout;\r\n","import { store } from './store';\r\n\r\n\r\nconst isAutenticado = (): boolean => {\r\n const { authState } = store.getState();\r\n\r\n return ((authState.data.Cpf || authState.data.Email || authState.data.Telefone))\r\n ? true : false;\r\n}\r\n\r\n\r\nexport default isAutenticado;","import React from 'react';\r\nimport isAutenticado from '../auth';\r\n\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport Layout from '../components/Layout';\r\nimport { store } from '../store';\r\n\r\nconst getLoginPage = () => {\r\n\r\n const { ambienteState } = store.getState();\r\n\r\n if (ambienteState.data === 'normal') {\r\n return '/login';\r\n } else {\r\n return '/login-' + ambienteState.data;\r\n }\r\n}\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => (\r\n \r\n isAutenticado() ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }>\r\n)\r\n\r\nexport default PrivateRoute;","import React from 'react';\r\n\r\nimport { Route } from 'react-router-dom';\r\n\r\nconst RouteWrapper = ({ component: Component, layout: Layout, ...rest }) => (\r\n \r\n \r\n \r\n \r\n } />\r\n)\r\n\r\nexport default RouteWrapper;","import React, { useEffect, useState } from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\n\r\nimport ParametroService from '../../services/ParametroService';\r\n\r\n\r\n// Param 33 (Tipos de lojas): 0 = Fake, 1 = Full, 2 = Dark, 3 = Leve.\r\nconst InformacoesImportantes = ({ parametrosLoja }: any) => {\r\n const [msgFrete, setMsgFrete] = useState(null);\r\n const [msgHorarios, setMsgHorarios] = useState(null);\r\n const [msgEntregaExpressa, setMsgEntregaExpressa] = useState(null);\r\n const [msgFormasDePagamento, setMsgFormasDePagamento] = useState(null);\r\n const [isInfoLoaded, setIsInfoLoaded] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!!parametrosLoja.length) {\r\n setMsgHorarios(ParametroService.getTxtHorariosDeEntrega(parametrosLoja));\r\n setMsgFormasDePagamento(ParametroService.getTxtFormasDePagto(parametrosLoja));\r\n setMsgEntregaExpressa(ParametroService.getTxtEntregaExpressa(parametrosLoja));\r\n setMsgFrete(ParametroService.getTxtFrete(parametrosLoja));\r\n setIsInfoLoaded(true);\r\n }\r\n }, [parametrosLoja])\r\n\r\n const ghostComponent = () => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n Formas de Pagamento 💳
\r\n
\r\n {\r\n isInfoLoaded ?\r\n

{msgFormasDePagamento?.replace('??', '')} 🍎

:\r\n ghostComponent()\r\n }\r\n
\r\n
\r\n
\r\n Horário de entrega 🛵
\r\n
\r\n {\r\n isInfoLoaded ?\r\n

{msgHorarios?.replace('??', '')} 💨

:\r\n ghostComponent()\r\n }\r\n
\r\n
\r\n
\r\n Frete 🥰
\r\n
\r\n {\r\n isInfoLoaded ?\r\n

{msgFrete?.replace('??', '')} 🥰

:\r\n ghostComponent()\r\n }\r\n
\r\n {\r\n msgEntregaExpressa && (\r\n
\r\n
\r\n Entrega Expressa 🛵
\r\n
\r\n {msgEntregaExpressa.replace('??', '')} 🛵
\r\n
\r\n )\r\n }\r\n\r\n {ParametroService.getPedidoMinimoInfo(parametrosLoja)}
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default InformacoesImportantes;","import React from 'react';\r\n\r\nimport { useFormContext } from 'react-hook-form';\r\nimport { Input, Label } from 'reactstrap';\r\n\r\nimport './styles.module.scss';\r\n\r\n\r\ninterface RadioComponentProps {\r\n name: string;\r\n value: string;\r\n text: string;\r\n}\r\n\r\nconst RadioComponent = ({ name, value, text }: RadioComponentProps) => {\r\n const { register, watch } = useFormContext();\r\n\r\n const watchFieldValue = watch(name);\r\n\r\n const isChecked = () => {\r\n return watchFieldValue === value;\r\n };\r\n\r\n const getContainerClassName = () => {\r\n if (isChecked()) {\r\n return 'radioBtnSubstituicao radioSelected';\r\n }\r\n\r\n return 'radioBtnSubstituicao';\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n\r\n\r\n\r\n}\r\n\r\nexport default RadioComponent;","import React from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\n\r\nimport RadioComponent from './RadioComponent';\r\n\r\n\r\ninterface InputRadioSimOuNaoComponentProps {\r\n name: \"IncluirSacola\"; // TODOS: possible fields\r\n param?: any;\r\n}\r\n\r\n// Component has specific data still (make it generic)\r\nconst InputRadioSimNao = ({ name, param }: InputRadioSimOuNaoComponentProps) => {\r\n\r\n const { errors } = useFormContext();\r\n\r\n const valueNao: string = '0';\r\n const valueSim: string = '1';\r\n\r\n return (\r\n
\r\n
\r\n \r\n Deseja sacolas para embalar suas compras?(R${param} cada)\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default InputRadioSimNao;","import React, { useState } from 'react';\r\nimport { Label, Input } from 'reactstrap';\r\nimport RadioComponent from './RadioComponent';\r\n\r\nimport { useFormContext } from 'react-hook-form';\r\n\r\n\r\n\r\nconst InputRadioSubstituicao = (props: any) => {\r\n\r\n const { register, errors, watch } = useFormContext();\r\n const [selectedField, setSelectedField] = useState(null);\r\n\r\n const cancele: number = 1;\r\n const escolha: number = 2;\r\n const contato: number = 3;\r\n\r\n // useEffect(() => {\r\n // if (watchFieldValue !== null && watchFieldValue !== undefined) {\r\n // persistFieldContentOnLocalStorage();\r\n // };\r\n\r\n // }, [watchFieldValue]);\r\n\r\n // useEffect(() => {\r\n // const hasStoragedValue = localStorage.getItem(\"Substituicao\");\r\n // if (hasStoragedValue) {\r\n // setTimeout(() => {\r\n // setValue(\"Substituicao\", hasStoragedValue);\r\n // }, 1500);\r\n // }\r\n // }, [])\r\n\r\n // const persistFieldContentOnLocalStorage = () => {\r\n // localStorage.setItem(\"Substituicao\", watchFieldValue);\r\n // }\r\n\r\n const isChecked = (option: any) => {\r\n return selectedField === option;\r\n };\r\n\r\n const getContainerClassName = (option: any) => {\r\n if (isChecked(option)) {\r\n return 'radioBtnSubstituicao radioSelected';\r\n }\r\n\r\n return 'radioBtnSubstituicao';\r\n };\r\n\r\n const handleClick = (option: any) => {\r\n setSelectedField(option);\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n \r\n Se faltar um item, quero que a loja: \r\n \r\n
\r\n \r\n handleClick(escolha)}\r\n >\r\n \r\n
\r\n handleClick(contato)}\r\n >\r\n \r\n
\r\n handleClick(cancele)}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default InputRadioSubstituicao;","import React from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\n\r\n\r\nconst Ghost = () => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Ghost;","import React, { useEffect, useState } from \"react\";\r\nimport { useFormContext } from \"react-hook-form\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Input, Label } from \"reactstrap\";\r\nimport { FormaPagamentoInterface } from \"../../interfaces/FormaPagamentoInterface\";\r\nimport Pedido from \"../../models/Pedido\";\r\nimport Ghost from \"./Entrega/GhostComponent\";\r\n\r\ninterface FormaDePagamentoComponentProps {\r\n children: never[];\r\n imagesCard: any[];\r\n didFetchParams: boolean;\r\n aceitaDinheiro: boolean | undefined;\r\n aceitaViaLink: boolean | undefined;\r\n}\r\n\r\nconst FormaPagamento = ({\r\n aceitaDinheiro,\r\n aceitaViaLink,\r\n didFetchParams,\r\n imagesCard,\r\n}: FormaDePagamentoComponentProps) => {\r\n const [opcoes, setOpcoes] = useState([]);\r\n\r\n const [selectedField, setSelectedField] = useState(null);\r\n const { register, setValue, watch, errors } = useFormContext();\r\n const { pedidoState } = useSelector((state: any) => state);\r\n\r\n const watchFormaPagamento = watch(\"formaPagamento\");\r\n\r\n const isChecked = (option: any) => {\r\n return selectedField === option;\r\n };\r\n\r\n const handleClick = (option: any) => {\r\n setSelectedField(option);\r\n };\r\n\r\n const getContainerClassName = (option: any) => {\r\n if (isChecked(option)) {\r\n return \"radioBtnSubstituicao radioSelected\";\r\n }\r\n\r\n return \"radioBtnSubstituicao\";\r\n };\r\n\r\n useEffect(() => {\r\n let dOpcoes: FormaPagamentoInterface[] = [\r\n {\r\n label: \"Cartão de débito/crédito \",\r\n description: \"na entrega\",\r\n value: \"Cartão Debito/Credito\",\r\n },\r\n {\r\n label: \"Voucher/alimentação \",\r\n description: \"na entrega\",\r\n value: \"Voucher/Cartão alimentação\",\r\n },\r\n {\r\n label: \"Pagamentos online \",\r\n description: \"enviamos via Whatsapp\",\r\n value: \"Via Link\",\r\n img: imagesCard || [],\r\n },\r\n {\r\n label: \"Dinheiro \",\r\n description: \"na entrega\",\r\n value: \"Dinheiro\",\r\n },\r\n ];\r\n\r\n if (!aceitaDinheiro) {\r\n dOpcoes = dOpcoes.filter((item) => item.value !== \"Dinheiro\");\r\n }\r\n\r\n if (!aceitaViaLink) {\r\n dOpcoes = dOpcoes.filter((item) => item.value !== \"Via Link\");\r\n }\r\n\r\n setOpcoes(dOpcoes);\r\n }, [aceitaDinheiro, aceitaViaLink, imagesCard]);\r\n\r\n useEffect(() => {\r\n const initForm = () => {\r\n const pedido: Pedido = new Pedido(pedidoState.data);\r\n pedido\r\n .transformToForm([\"formaPagamento\", \"ValorDinheiro\"])\r\n .forEach((item: any) => {\r\n setValue(item[0], item[1]);\r\n });\r\n };\r\n\r\n initForm();\r\n }, [opcoes, pedidoState, setValue]);\r\n\r\n return (\r\n
\r\n

\r\n pagamento\r\n

\r\n
\r\n Escolha a forma de pagamento\r\n
\r\n \r\n {opcoes.map((opcao: FormaPagamentoInterface) => {\r\n return didFetchParams ? (\r\n handleClick(opcao.value)}\r\n >\r\n \r\n
\r\n ) : (\r\n \r\n );\r\n })}\r\n \r\n\r\n {aceitaDinheiro && watchFormaPagamento === \"Dinheiro\" ? (\r\n
\r\n

\r\n Troco para quanto?\r\n

\r\n \r\n
\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default FormaPagamento;\r\n","import React from 'react';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport ReactInputMask from 'react-input-mask';\r\nimport { Input, Label } from 'reactstrap';\r\n\r\nconst Endereco = (props: any) => {\r\n const { register, errors } = useFormContext();\r\n\r\n return (\r\n
\r\n
\r\n

Cep

\r\n \r\n
\r\n
\r\n

Endereço

\r\n \r\n
\r\n
\r\n

Número

\r\n \r\n
\r\n
\r\n

Complemento

\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Endereco;","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Input, Label } from 'reactstrap';\r\nimport InputMask from 'react-input-mask';\r\nimport { useFormContext } from 'react-hook-form';\r\n\r\n\r\nconst DadosPessoais = (props: any) => {\r\n const { leveNatural } = props;\r\n\r\n const { authState } = useSelector((state: any) => state);\r\n\r\n const { register, errors } = useFormContext();\r\n\r\n return (\r\n //
\r\n
\r\n {leveNatural.ativo\r\n ?
🍎🍉🍓 Cliente {leveNatural.adesao.replace(\"LN\", \"Leve Natural\")} 🍓🍉🍎
\r\n : null\r\n }\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n {/*
\r\n Atenção: Atualize seu número de celular no cadastro.
\r\n As informações do seu pedido são enviadas via WhatsApp.\r\n
*/}\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default DadosPessoais;","export const initialFrequencyState = [\r\n { label: \"Não se repete\", value: null, chosen: true },\r\n { label: \"Semanal\", value: 7, chosen: false },\r\n { label: \"Quinzenal\", value: 14, chosen: false },\r\n { label: \"Mensal\", value: 30, chosen: false }\r\n]\r\n\r\n\r\nexport const reducerFrequency = (state, action) => {\r\n switch (action.type) {\r\n case 'CHANGE_FREQUENCY':\r\n const new_state = state.map(frequency => {\r\n return {\r\n label: frequency.label,\r\n value: frequency.value,\r\n chosen: frequency.value === action.payload\r\n }\r\n });\r\n\r\n return new_state;\r\n default:\r\n return state;\r\n }\r\n};","import styled from 'styled-components';\r\n\r\n\r\nexport const Container = styled.div`\r\n margin-top: 16px;\r\n\r\n background-color: #FFFFFF;\r\n font-family: OpenSans;\r\n font-size: 16px;\r\n\r\n width: 100%;\r\n height: 50px;\r\n\r\n border-radius: 4px;\r\n padding: 20px;\r\n\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n cursor: pointer;\r\n\r\n @media (max-width: 499px) {\r\n padding: 16px;\r\n font-size: 15px\r\n }\r\n \r\n & svg:first-child {\r\n margin-right: 12px;\r\n color: ${props => props.chosen ? \"#A35E8E\" : \"#eeeeee\"};\r\n font-size: 18.5px;\r\n\r\n @media (max-width: 280px) {\r\n margin-right: 8px;\r\n }\r\n }\r\n`\r\n\r\nexport const Options = styled.menu`\r\n background-color: #FFF;\r\n border-radius: 4px;\r\n padding: 16px;\r\n\r\n width: 100%;\r\n height: auto;\r\n\r\n & ul {\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n\r\n & li {\r\n width: 100%;\r\n height: 50px;\r\n \r\n border-radius: 4px;\r\n\r\n padding: 16px;\r\n\r\n cursor: pointer;\r\n\r\n & + li {\r\n /* margin-top: 8px; */\r\n }\r\n\r\n &:hover {\r\n background-color: #eeeeee;\r\n }\r\n }\r\n }\r\n`;","import React, { useState, useReducer, useEffect, useMemo } from 'react';\r\n\r\nimport { useFieldArray } from 'react-hook-form';\r\n\r\nimport { reducerFrequency, initialFrequencyState } from './frequencyReducer';\r\n\r\nimport { TiArrowLoop } from 'react-icons/ti';\r\nimport { IoIosArrowDown } from 'react-icons/io';\r\n\r\nimport { Container, Options } from './styles';\r\n\r\n\r\nconst Select = ({ handleMenuActions: { isActive, setIsActive } }) => {\r\n const { append } = useFieldArray({ name: 'frequency' });\r\n\r\n const [frequencies, dispatch] = useReducer(reducerFrequency, initialFrequencyState);\r\n\r\n useEffect(() => {\r\n const chosenFrequency = frequencies.filter(f => f.chosen);\r\n\r\n if (chosenFrequency[0].value) {\r\n append({ frequency: true, diaRecorrencia: chosenFrequency[0].value });\r\n } else {\r\n append({ frequency: false, diaRecorrencia: null });\r\n }\r\n }, [frequencies])\r\n\r\n const handleChangeValue = (value) => {\r\n dispatch({\r\n type: 'CHANGE_FREQUENCY',\r\n payload: value\r\n });\r\n\r\n setIsActive(false);\r\n };\r\n\r\n const handleClick = (e) => {\r\n setIsActive(!isActive);\r\n e.stopPropagation();\r\n }\r\n\r\n const chosenFrequency = useMemo(() => {\r\n return frequencies.filter(f => f.chosen);\r\n }, [frequencies])\r\n\r\n const getChosenLabel = () => {\r\n //let chosenFrequency = frequencies.filter(f => f.chosen);\r\n return chosenFrequency[0].label;\r\n }\r\n\r\n const userWantsFrequency = () => {\r\n //let chosenFrequency = frequencies?.filter(f => f.chosen);\r\n\r\n return !!chosenFrequency[0].value;\r\n };\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {getChosenLabel()}\r\n
\r\n \r\n
\r\n {\r\n isActive && (\r\n \r\n
    \r\n {\r\n frequencies?.map(f => (\r\n
  • handleChangeValue(f.value)} >\r\n {f.label}\r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\n\r\nexport default Select;","import styled from 'styled-components';\r\n\r\n\r\nexport const Container = styled.div`\r\n font-family: OpenSans;\r\n color: #54412F;\r\n line-height: 21px;\r\n\r\n & > div {\r\n width: 100%;\r\n height: auto;\r\n background-color: #eeeeee;\r\n\r\n border-radius: 4px;\r\n\r\n padding: 32px;\r\n\r\n @media (max-width: 280px) {\r\n padding: 16px;\r\n }\r\n\r\n & h3 {\r\n color: #A35E8E;\r\n font-size: 16px;\r\n }\r\n\r\n & span {\r\n font-size: 14px;\r\n color: #54412F;\r\n }\r\n\r\n & section {\r\n margin-top: 16px;\r\n }\r\n }\r\n`;\r\n\r\nexport const SubTitle = styled.h3`\r\n color: #A35E8E;\r\n font-size: 16px;\r\n font-weight: 700;\r\n`\r\n\r\nexport const BenefitsList = styled.div`\r\n font-size: 14px;\r\n \r\n list-style: none;\r\n padding-left: 0;\r\n\r\n & .row {\r\n display: flex;\r\n \r\n line-height: 20px;\r\n\r\n & > div {\r\n height: 20px;\r\n\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n`\r\n\r\nexport const GoPrimitiveSquare = styled.div`\r\n width: 5px;\r\n height: 5px;\r\n\r\n background-color: #A35E8E;\r\n border-radius: 1px;\r\n\r\n display: inline-block;\r\n\r\n margin-right: 9.5px;\r\n margin-left: 2.5px;\r\n\r\n /* align-self: flex-start; */\r\n`;","import React from 'react';\r\nimport { Col, Label, Row } from 'reactstrap';\r\n\r\nimport Select from './Select';\r\n\r\nimport { Container, SubTitle, BenefitsList, GoPrimitiveSquare } from './styles';\r\n\r\n\r\nconst Frequencia = () => {\r\n\r\n const [isActive, setIsActive] = React.useState(false);\r\n\r\n const handleClick = () => {\r\n setIsActive(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n Você gostaria de repetir este pedido com frequência?\r\n \r\n \r\n Enviaremos um lembrete 2 dias antes da data pré-agendada e caso não confirme, o\r\n pedido será cancelado e não haverá cobrança\r\n \r\n
\r\n\r\n \r\n
Entrega em até 1h
\r\n \r\n
\r\n \r\n : listaHorarios.length > 0 && (!horariosDisponiveisState.data.substituicaoLoja.lojaFechada || (horariosDisponiveisState.data.substituicaoLoja.lojaFechada && horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta))\r\n ?\r\n <>\r\n
\r\n \r\n
\r\n {tipoEntrega ? <>\r\n {!isEntregaExpressa && listaHorarios.map((horario: Horario) => {\r\n return (\r\n
handleClick(horario.CodHorario)} >\r\n \r\n
\r\n )\r\n })}\r\n {/* {isEntregaExpressa && <>\r\n \r\n } */}\r\n : 'Selecione o tipo de entrega desejado.'}\r\n
\r\n\r\n \r\n
\r\n {horariosDisponiveisState.data.substituicaoLoja.lojaFechada\r\n &&
Olá, infelizmente o serviço de retirada em loja não está disponível na data que você escolheu, mas podemos levar nossos produtos até você. Escolha a opção Entrega em Domicílio que entregamos seu pedido na sua casa. Será um prazer te atender.
}\r\n \r\n :\r\n (horariosDisponiveisState.data.substituicaoLoja.lojaFechada && !horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta\r\n ?
Olá, infelizmente estaremos fechados na data que você escolheu, mas se for possível programar sua entrega para outra data ficaremos felizes em te atender.
\r\n :
\r\n {isPedidoParaHoje(dataEntrega)\r\n ? 'Devido ao horário, só temos data futura para realizar seu pedido.'\r\n : 'Infelizmente não temos nenhum horário para entrega no dia escolhido.'\r\n }\r\n
\r\n )\r\n }\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Turno;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useFormContext } from 'react-hook-form';\r\nimport moment from 'moment';\r\n\r\nimport { Input, Label } from 'reactstrap';\r\n\r\nimport { useFetchHoursAvailable } from 'hooks/recorrencia/fetchHoursAvailable';\r\nimport LoadingInline from 'components/LoadingInline';\r\n\r\n\r\nconst StoreClosedInformation = () => (\r\n
\r\n Olá, infelizmente estaremos fechados na data que você escolheu, mas se for\r\n possível programar sua entrega para outra data ficaremos felizes em te\r\n atender.\r\n
\r\n);\r\n\r\nconst StoreAvailableInformation = ({ isToday }) => (\r\n
\r\n {isToday\r\n ? \"Devido ao horário, só temos data futura para realizar seu pedido.\"\r\n : \"Infelizmente não temos nenhum horário para entrega no dia escolhido.\"}\r\n
\r\n);\r\n\r\nconst TurnoRecorrencia = () => {\r\n const { lojaEscolhidaState, horariosDisponiveisState } = useSelector(state => state);\r\n const { fetchHoursAvailable, hoursAvailable, isLoading } = useFetchHoursAvailable();\r\n const { setValue, register, watch } = useFormContext();\r\n\r\n const dataEntrega = watch('DataEntrega');\r\n\r\n const [descHorario, setDescHorario] = useState('');\r\n const [selectedField, setSelectedField] = useState(null);\r\n\r\n useEffect(() => {\r\n fetchHoursAvailable(\r\n lojaEscolhidaState.data.cod_siac,\r\n new Date(dataEntrega),\r\n //moment(dataEntrega).format('YYYY-MM-DD'),\r\n );\r\n }, [dataEntrega]);\r\n\r\n\r\n const isChecked = (option) => {\r\n return selectedField === option;\r\n };\r\n\r\n const getContainerClassName = (option) => {\r\n if (isChecked(option)) {\r\n return 'radioBtnSubstituicao radioSelected';\r\n }\r\n\r\n return 'radioBtnSubstituicao';\r\n };\r\n\r\n const handleClick = (option) => {\r\n setSelectedField(option);\r\n }\r\n\r\n const handleChange = (value) => {\r\n setDescHorario(value);\r\n setValue(\"HoraEntrega\", value);\r\n };\r\n\r\n const getDescHorario = () => {\r\n return descHorario;\r\n };\r\n\r\n const isToday = (dataEntrega === moment().format(\"YYYY-MM-DD\"));\r\n\r\n const isStoreOpen =\r\n hoursAvailable.length > 0 &&\r\n (!horariosDisponiveisState.data.substituicaoLoja.lojaFechada ||\r\n (horariosDisponiveisState.data.substituicaoLoja.lojaFechada &&\r\n horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta));\r\n\r\n const isStoreClosed =\r\n (horariosDisponiveisState.data.substituicaoLoja.lojaFechada &&\r\n !horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta);\r\n\r\n\r\n return (\r\n <>\r\n
\r\n {\r\n isLoading ? (\r\n \r\n ) :\r\n isStoreOpen ? (\r\n <>\r\n \r\n {\r\n hoursAvailable.map(horario => (\r\n
handleClick(horario.CodHorario)}>\r\n \r\n
\r\n ))\r\n\r\n }\r\n \r\n ) : (\r\n isStoreClosed ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n }\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default TurnoRecorrencia;","import moment from \"moment\";\r\nimport { useCallback, useEffect, useState, useRef, useMemo } from \"react\";\r\n\r\nimport Frequencia from './Frequencia';\r\nimport Turno from \"./Turno\";\r\nimport Ghost from './GhostComponent';\r\n\r\nimport { useFormContext } from \"react-hook-form\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Input, Label } from \"reactstrap\";\r\nimport { requestHorariosDisponiveis } from \"../../../actions\";\r\nimport { RequestHorariosDisponiveisUpdateInterface } from \"../../../interfaces/RequestHorariosDisponiveisUpdateInterface\";\r\nimport * as Genericos from \"../../../hooks/Genericos\";\r\nimport { BsClockHistory } from \"react-icons/bs\";\r\nimport RecorrenciaService from \"../../../services/RecorrenciaService\";\r\nimport TurnoRecorrencia from \"./TurnoRecorrencia\";\r\nimport CustomCalendar from \"./CustomCalendar\";\r\n\r\nimport { FaRegCalendarAlt } from 'react-icons/fa';\r\n\r\n\r\nconst validateHours = (param: any, now: any) => {\r\n const hours = param.Valor.split(\"-\");\r\n const startDate = moment(now).set({ hour: Number(hours[0]), minute: 0 });\r\n const endDate = moment(now).set({ hour: Number(hours[1]), minute: 0 });\r\n\r\n const isBetween = now.isBetween(startDate, endDate);\r\n\r\n return isBetween;\r\n};\r\n\r\ninterface EntregaComponentProps {\r\n aceitaRetiradaEmLoja: boolean;\r\n aceitaEntregaExpressa: boolean;\r\n aceitaRetiradaEmArmario: boolean;\r\n aceitaRecorrencia: boolean;\r\n params: any;\r\n}\r\n\r\nconst Entrega = (props: EntregaComponentProps) => {\r\n // ou vai vir null ou vai vir com uma string\r\n const [codRecorrencia, setCodRecorrencia] = useState(null);\r\n useEffect(() => {\r\n const currentCodRecorrencia = sessionStorage.getItem(\"RecorrenciaAtual\");\r\n if (currentCodRecorrencia) {\r\n localStorage.setItem(\"RecorrenciaAtual\", currentCodRecorrencia);\r\n setCodRecorrencia(currentCodRecorrencia);\r\n sessionStorage.removeItem(\"RecorrenciaAtual\");\r\n } else setCodRecorrencia(localStorage.getItem(\"RecorrenciaAtual\"));\r\n }, [])\r\n\r\n\r\n const {\r\n aceitaEntregaExpressa,\r\n aceitaRetiradaEmArmario,\r\n aceitaRetiradaEmLoja,\r\n aceitaRecorrencia } = props;\r\n\r\n const { pedidoState, horariosDisponiveisState } = useSelector(\r\n (state: any) => state\r\n );\r\n\r\n const [selectedField, setSelectedField] = useState(null); // adicionado\r\n const [checkEntregaExpressa, setCheckEntregaExpressa] = useState(false);\r\n const [disableDataEntrega, setDisableDataEntrega] = useState(false);\r\n const [didConvertToRecorrencia, setDidConvertToRecorrencia] = useState(false);\r\n const [showCalendar, setShowCalendar] = useState(() => {\r\n if (didConvertToRecorrencia) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n const [checkRetiradaEmArmario, setCheckRetiradaEmArmario] =\r\n useState(false);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { register, setValue, watch, errors, unregister } = useFormContext();\r\n\r\n const watchTipoEntrega = watch(\"TipoEntrega\");\r\n const watchDataEntrega = watch(\"DataEntrega\");\r\n const frequency = watch(\"frequency\");\r\n\r\n useEffect(() => {\r\n if (frequency) {\r\n const lastChange = frequency[frequency.length - 1];\r\n\r\n if (lastChange.frequency) {\r\n registerFieldsIfConvertedToRecorrencia();\r\n setDidConvertToRecorrencia(true);\r\n //setShowCalendar(true);\r\n\r\n } else {\r\n setDidConvertToRecorrencia(false);\r\n unregisterFields();\r\n }\r\n }\r\n }, [frequency]);\r\n\r\n const isChecked = (option: any) => { // adicionado\r\n return selectedField === option;\r\n };\r\n\r\n const getContainerClassName = (option: any) => { // adicionado\r\n if (isChecked(option)) {\r\n return 'radioBtnSubstituicao radioSelected';\r\n }\r\n\r\n return 'radioBtnSubstituicao';\r\n };\r\n\r\n const handleClick = (option: any) => { // adicionado\r\n setSelectedField(option);\r\n }\r\n\r\n const canConvertToRecorrencia = useMemo(() => {\r\n const canConvertToRecorrenciaParam = props.params?.filter((p: any) => p.Cod_Parametro === 52);\r\n\r\n const condition = (canConvertToRecorrenciaParam?.length > 0);\r\n if (condition) {\r\n const response = canConvertToRecorrenciaParam[0].Valor === \"1\";\r\n\r\n return response;\r\n }\r\n\r\n return null;\r\n }, [props.params]);\r\n\r\n const registerFieldsIfConvertedToRecorrencia = () => {\r\n //register(\"RecorrenciaDia\", { required: true });\r\n register(\"HoraEntrega\", { required: true });\r\n };\r\n\r\n const unregisterFields = () => {\r\n //unregister(\"RecorrenciaDia\");\r\n unregister(\"HoraEntrega\");\r\n };\r\n\r\n\r\n\r\n const handleDataEntrega = useCallback(\r\n async (dataEntrega: string) => {\r\n\r\n const tipoEntrega =\r\n watchTipoEntrega === Genericos.ENTREGA_DOMICILIO_NORMAL\r\n ? \"Entrega\"\r\n : \"Retirada\";\r\n\r\n const busca: RequestHorariosDisponiveisUpdateInterface = {\r\n codLoja: pedidoState.data.LojaId,\r\n data: moment(dataEntrega).toDate(),\r\n entregaOuRetirada: tipoEntrega,\r\n };\r\n\r\n dispatch(requestHorariosDisponiveis(busca));\r\n },\r\n [dispatch, pedidoState, watchTipoEntrega]\r\n );\r\n\r\n useEffect(() => {\r\n if (frequency) {\r\n const lastChange = frequency[frequency.length - 1]; // 'guardar' esse valor\r\n\r\n if (lastChange.frequency) {\r\n return;\r\n }\r\n }\r\n\r\n setDisableDataEntrega(checkEntregaExpressa);\r\n\r\n // Se DataEntrega não estiver setado, seta com a data de hoje.\r\n if (!watchDataEntrega) {\r\n setValue(\"DataEntrega\", moment().format(\"YYYY-MM-DD\"));\r\n } else {\r\n // Se DataEntrega estiver setado e for selecionado 'Entrega Expressa', seta para data de hoje.\r\n if (checkEntregaExpressa) {\r\n setValue(\"DataEntrega\", moment().format(\"YYYY-MM-DD\"));\r\n handleDataEntrega(watchDataEntrega);\r\n } else {\r\n handleDataEntrega(watchDataEntrega);\r\n }\r\n }\r\n }, [watchDataEntrega, setValue, handleDataEntrega, checkEntregaExpressa, selectedField]);\r\n\r\n useEffect(() => {\r\n // Desabilita a Entrega Expressa se o cliente selecionou o checkbox e depois mudou o tipo de entrega.\r\n if (\r\n watchTipoEntrega !== Genericos.ENTREGA_EXPRESSA &&\r\n checkEntregaExpressa\r\n ) {\r\n setCheckEntregaExpressa(false);\r\n }\r\n }, [checkEntregaExpressa, watchTipoEntrega]);\r\n\r\n const handleEntregaExpressa = () => {\r\n setCheckEntregaExpressa(!checkEntregaExpressa);\r\n };\r\n\r\n const handleRetiradaEmArmario = () => {\r\n setCheckRetiradaEmArmario(!checkRetiradaEmArmario);\r\n };\r\n\r\n const workingDaysHours = props.params.find(\r\n (param: any) => param.Cod_Parametro === 43\r\n );\r\n\r\n const holidayHours = props.params.find(\r\n (param: any) => param.Cod_Parametro === 44\r\n );\r\n\r\n const [showHoursInvalid, setShowHoursInvalid] = useState({\r\n visible: false,\r\n hours: { Valor: \"\" },\r\n });\r\n\r\n const isEntregaExpressa = (watchTipoEntrega === Genericos.ENTREGA_EXPRESSA);\r\n\r\n // Validation: Check if current hour is between start and end from the store in params\r\n useEffect(() => {\r\n if (!workingDaysHours || !holidayHours) {\r\n return;\r\n }\r\n\r\n const cb = async () => {\r\n const now = moment();\r\n const isHoliday = await RecorrenciaService.checkIsHoliday(now);\r\n const isWorkingDay = !isHoliday;\r\n\r\n if (isHoliday) {\r\n const isValid = validateHours(holidayHours, now);\r\n\r\n setShowHoursInvalid({ visible: !isValid, hours: holidayHours });\r\n } else if (isWorkingDay) {\r\n const isValid = validateHours(workingDaysHours, now);\r\n\r\n setShowHoursInvalid({ visible: !isValid, hours: workingDaysHours });\r\n }\r\n\r\n if (!isEntregaExpressa) {\r\n setShowHoursInvalid({ visible: false, hours: { Valor: \"\" } });\r\n }\r\n };\r\n\r\n cb();\r\n }, [workingDaysHours, holidayHours, isEntregaExpressa]);\r\n\r\n const getTextFromParam = () => {\r\n const result = props.params.find((param: any) => param.Cod_Parametro === 46)?.Valor;\r\n\r\n return result;\r\n }\r\n\r\n const handleShowCalendar = () => {\r\n setShowCalendar(!showCalendar);\r\n }\r\n\r\n const handleCloseCalendar = () => {\r\n setShowCalendar(false);\r\n }\r\n\r\n const textInterfaces = {\r\n entregaExpressa: () => {\r\n let text = getTextFromParam();\r\n return {\r\n __html: text.replaceAll('\\\\n', '
')\r\n };\r\n },\r\n };\r\n\r\n return (\r\n
\r\n {\r\n // codRecorrencia: vem do storage\r\n // aceitaRecorrencia: método chamado no componente pai (está repetido - página de seleção loja)\r\n // canConvertToRecorrencia: verifica se parâmetro 52 retorna 1 (memoized value)\r\n (!codRecorrencia && (aceitaRecorrencia && canConvertToRecorrencia)) && (\r\n // @ts-ignore\r\n \r\n )\r\n }\r\n {\r\n !didConvertToRecorrencia && (\r\n
\r\n \r\n
\r\n {!!props.params.length ?\r\n
handleClick(Genericos.ENTREGA_DOMICILIO_NORMAL)}>\r\n \r\n
\r\n : \r\n }\r\n\r\n\r\n {/* {watchTipoEntrega === Genericos.ENTREGA_DOMICILIO_NORMAL && <> */}\r\n {!!props.params.length ?\r\n aceitaEntregaExpressa && (\r\n <>\r\n
handleClick(Genericos.ENTREGA_EXPRESSA)}>\r\n\r\n
\r\n \r\n\r\n {getTextFromParam() && checkEntregaExpressa && (\r\n <>\r\n
\r\n \r\n )}\r\n
\r\n \r\n )\r\n : \r\n }\r\n\r\n {!!props.params.length ?\r\n aceitaRetiradaEmLoja &&\r\n !horariosDisponiveisState.data.substituicaoLoja.cod_siac && (\r\n <>\r\n
handleClick(Genericos.RETIRADA_LOJA_NORMAL)}>\r\n \r\n\r\n {watchTipoEntrega === Genericos.RETIRADA_LOJA_NORMAL && (\r\n <>\r\n
\r\n Você escolheu retirar o seu pedido em uma de nossas lojas!\r\n Para melhorar a sua experiência pedimos que siga as\r\n instruções abaixo:\r\n
* Compareça na loja escolhida no horário agendado{\" \"}\r\n
\r\n * Ao chegar na nossa loja, envie uma mensagem para o nosso\r\n whatsapp que levamos a compra no estacionamento para você.\r\n Se preferir, dirija-se ao balcão localizado na entrada e\r\n informe o seu pedido, os nossos atendentes levarão a sua\r\n compra até você.\r\n
\r\n
Obrigado por escolher a Hortifruti Natural da\r\n Terra!\r\n
\r\n \r\n )}\r\n
\r\n \r\n )\r\n : \r\n }\r\n\r\n {!!props.params.length ?\r\n aceitaRetiradaEmArmario && (\r\n <>\r\n
handleClick(Genericos.RETIRADA_ARMARIO)}>\r\n\r\n \r\n\r\n {watchTipoEntrega === Genericos.RETIRADA_ARMARIO && (\r\n <>\r\n
\r\n Você escolheu ganhar tempo e retirar suas compras no Armário\r\n Inteligente! Para uma melhor experiência, pedimos que siga\r\n as instruções abaixo:\r\n
\r\n * Você receberá um QR Code pelo Whatsapp informando que seu\r\n pedido já está disponível para retirada.\r\n
\r\n * Compareça no horário escolhido. Seu pedido permanecerá\r\n disponível em nosso Armário por 3 horas (o tempo da janela\r\n indicada no sistema).\r\n
\r\n * Ao chegar em nossa loja, vá até nosso Armário Inteligente\r\n localizado próximo ao elevador.\r\n
\r\n * Siga as instruções na tela \"touch screen\" e retire seu\r\n pedido.\r\n
\r\n
\r\n Obrigado por escolher a Natural da Terra!\r\n
\r\n \r\n )}\r\n
\r\n \r\n )\r\n : \r\n }\r\n
\r\n {showHoursInvalid.visible && isEntregaExpressa && (
\r\n
\r\n
\r\n O horário para selecionar a opção{\" \"}\r\n \"Entrega Expressa\" é das{\" \"}\r\n {showHoursInvalid.hours.Valor.split(\"-\")[0]}h às{\" \"}\r\n {showHoursInvalid.hours.Valor.split(\"-\")[1]}h.\r\n
\r\n Você pode agendar agora uma{\" \"}\r\n \"Entrega em Domicílio\" e escolher o dia e horário\r\n da sua preferência.\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n showCalendar && (\r\n
\r\n null}\r\n watchFrequency={'frequency'}\r\n //@ts-ignore \r\n handleCloseCalendar={handleCloseCalendar}\r\n didConvertToRecorrencia={didConvertToRecorrencia} />\r\n
\r\n )\r\n }\r\n {\r\n didConvertToRecorrencia ? (\r\n \r\n ) : (\r\n (!showHoursInvalid.visible || !isEntregaExpressa) && (\r\n
\r\n \r\n
\r\n )\r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default Entrega;\r\n","import React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\nimport Skeleton from 'react-loading-skeleton';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { useFormContext } from 'react-hook-form';\r\n\r\n\r\nconst ProximaEntregaDisponivel = (props: any) => {\r\n const { listaHorarios } = props;\r\n const { watch } = useFormContext();\r\n const [textoProximaEntrega, setTextoProximaEntrega] = useState('');\r\n\r\n const { horariosDisponiveisState } = useSelector((state: any) => state);\r\n const watchDataEntrega = watch('DataEntrega');\r\n\r\n useEffect(() => {\r\n const getTextoProximaEntrega = () => {\r\n let texto = '';\r\n\r\n if (horariosDisponiveisState.data.entrega.length === 0\r\n || (horariosDisponiveisState.data.entrega.length > 0 && moment(watchDataEntrega).isAfter(moment()))\r\n || (horariosDisponiveisState.data.substituicaoLoja.lojaFechada && !horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta)\r\n ) {\r\n //sem horarios no dia, primeiro horário do dia seguinte\r\n texto = moment().add(1, 'day').format('DD/MM/YYYY') + ' às ' + listaHorarios[0]?.DescHorario.substring(0, 4);\r\n } else {\r\n texto = moment().format('DD/MM/YYYY') + ' às ' + (horariosDisponiveisState.data.entrega.length > 0 ? horariosDisponiveisState.data.entrega[0].DescHorario.substring(0, 4) : '');\r\n }\r\n\r\n return texto;\r\n }\r\n\r\n setTextoProximaEntrega(getTextoProximaEntrega());\r\n }, [horariosDisponiveisState, watchDataEntrega, listaHorarios])\r\n\r\n const ghostComponent = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n Próxima entrega disponível em:\r\n
\r\n {\r\n horariosDisponiveisState.loading || !listaHorarios.length\r\n ? ghostComponent()\r\n : (\r\n
\r\n
\r\n \"Relógio\"\r\n
\r\n
{textoProximaEntrega}
\r\n
\r\n )\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default ProximaEntregaDisponivel;","class CpfService {\r\n static formatar(cpf: string) {\r\n if (!cpf) {\r\n return '';\r\n }\r\n\r\n //retira os caracteres indesejados...\r\n cpf = cpf.replace(/[^\\d]/g, \"\");\r\n\r\n //realizar a formatação...\r\n return cpf.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/, \"$1.$2.$3-$4\");\r\n }\r\n}\r\n\r\nexport default CpfService;","import Pedido from \"./Pedido\";\r\n\r\nexport class PedidoRequest extends Pedido {\r\n SubstituicaoItemAItem: number;\r\n\r\n // adicionei esses 3 atributos\r\n FormaPagamento: string;\r\n DataProximaEntrega: Date;\r\n RecorrenciaDia: number;\r\n}\r\n\r\nexport default PedidoRequest;","class TermoLGPD{\r\n Id: number;\r\n Cpf: string;\r\n Termo: string;\r\n DataAceite: Date;\r\n\r\n constructor(init?:Partial){\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport default TermoLGPD;","\r\nimport TermoLGPD from \"../models/TermoLGPD\";\r\nimport apiPedido from \"./apis/ApiPedido\";\r\n\r\n\r\n\r\nclass LGPDService {\r\n /**\r\n * Checa se um cpf aceitou os termos\r\n * @param cpf \r\n * @returns \r\n */\r\n static async checkAceite(cpf: string): Promise {\r\n\r\n const uri = 'LGPD/ListaAceite/' + cpf.replace(/[^0-9]/g, '');\r\n\r\n const res = await apiPedido.get(uri);\r\n\r\n let termo = new TermoLGPD(res.data.valor);\r\n\r\n return termo;\r\n }\r\n\r\n /**\r\n * Salva o termo para um cpf e retorna um bool se salvou com sucesso\r\n * @param termo \r\n * @returns \r\n */\r\n static async salvarTermo(termo: TermoLGPD): Promise {\r\n\r\n const uri = 'LGPD/SalvarTermo/';\r\n\r\n const res = await apiPedido.post(uri, JSON.stringify(termo));\r\n\r\n return res.data.valor;\r\n }\r\n\r\n /**\r\n * Verifica se precisa salvar o termo para um cpf e salva se necessário\r\n * @param cpf \r\n * @returns \r\n */\r\n static async salvarTermoSeNecessario(cpf: string): Promise {\r\n const termo = await LGPDService.checkAceite(cpf);\r\n\r\n if (!termo.Id) {\r\n termo.Cpf = cpf;\r\n\r\n const salvouTermo = await LGPDService.salvarTermo(termo);\r\n\r\n return salvouTermo;\r\n } else {\r\n return Promise.resolve(true);\r\n }\r\n }\r\n}\r\n\r\nexport default LGPDService;","import { useEffect, useState } from \"react\";\r\nimport { useFormContext } from \"react-hook-form\";\r\nimport { Input, Label } from \"reactstrap\";\r\nimport PedidoService from \"../../services/PedidoService\";\r\n\r\nconst Cupom = (props: any) => {\r\n\r\n const [resultadoCupom, setResultadoCupom] = useState(\"\");\r\n const [cupom, setCupom] = useState(\"\");\r\n\r\n const { register } = useFormContext();\r\n\r\n useEffect(() => {\r\n const validarCupom = async () => {\r\n if (cupom.length > 4) {\r\n let validaCupom = await PedidoService.getCupom(cupom);\r\n if (validaCupom) {\r\n setResultadoCupom(validaCupom.Valor);\r\n }\r\n } else {\r\n setResultadoCupom(\"\");\r\n }\r\n };\r\n\r\n validarCupom();\r\n }, [cupom]);\r\n\r\n\r\n return (\r\n
\r\n
\r\n

Cupom de desconto

\r\n

Possui algum cupom? Use aqui!

\r\n setCupom(e.target.value)}\r\n innerRef={register()}\r\n spellCheck=\"false\"\r\n maxLength={20}\r\n autocomplete=\"off\" \r\n />\r\n {resultadoCupom}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Cupom;\r\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Horario from '../../models/Horario';\r\nimport Parametro from '../../models/Parametro';\r\nimport LojaService from '../../services/LojaService';\r\nimport RecorrenciaService from '../../services/RecorrenciaService';\r\nimport moment from 'moment';\r\nimport ParametroService from '../../services/ParametroService';\r\nimport InformacoesImportantes from './InformacoesImportantes';\r\nimport InputRadioStandardContainer from './InputRadioStandard';\r\nimport InputRadioSubstituicaoContainer from './InputRadioStandard/InputRadioSubstituicao';\r\nimport FormaPagamento from './FormaPagamento';\r\nimport ClienteService from '../../services/ClienteService';\r\nimport LeveNatural from '../../models/LeveNatural';\r\nimport Endereco from './Endereco';\r\nimport DadosPessoais from './DadosPessoais';\r\nimport Entrega from './Entrega';\r\nimport ProximaEntregaDisponivel from './ProximaEntregaDisponivel';\r\nimport Pedido from '../../models/Pedido';\r\nimport LoadingService from '../../services/LoadingService';\r\nimport ProgramaFidelidade from './ProgramaFidelidade';\r\nimport TelefoneService from '../../services/TelefoneService';\r\nimport CpfService from '../../services/CpfService';\r\nimport AlertService from '../../services/AlertService';\r\nimport PedidoRequest from '../../models/PedidoRequest';\r\nimport PedidoResponse from '../../models/PedidoResponse';\r\nimport PedidoService from '../../services/PedidoService';\r\nimport PedidoEnviadoInterface from '../../interfaces/PedidoEnviadoInterface';\r\nimport Footer from '../Layout/Footer';\r\nimport LGPDService from '../../services/LGPDService';\r\nimport Cupom from './Cupom';\r\nimport TextAreaField from '../TextAreaField/index';\r\nimport OfertasPersonalizadas from './Ofertas/index';\r\nimport VitrineCarousel from './VitrineCarousel';\r\nimport AnimationTransition from 'components/PreAtendimento/SelecaoLoja/AnimationTransition';\r\nimport IconApple from \"assets/images/navbar/apple-alt.svg\";\r\nimport IconAppleWhite from \"assets/images/navbar/apple-alt-white.svg\";\r\nimport IconMeat from \"assets/images/navbar/meat.svg\";\r\nimport IconMeatWhite from \"assets/images/navbar/meat-white.svg\";\r\nimport IconBread from \"assets/images/navbar/bread-loaf.svg\";\r\nimport IconBreadWhite from \"assets/images/navbar/bread-loaf-white.svg\";\r\nimport IconGlass from \"assets/images/navbar/glass-cheers.svg\";\r\nimport IconGlassWhite from \"assets/images/navbar/glass-cheers-white.svg\";\r\nimport IconTag from \"assets/images/navbar/tag.svg\";\r\nimport IconTagWhite from \"assets/images/navbar/tag-white.svg\";\r\nimport IconInfo from \"assets/images/navbar/home.svg\";\r\nimport IconInfoWhite from \"assets/images/navbar/home-white.svg\";\r\nimport IconMarker from \"assets/images/navbar/shipping-fast.svg\";\r\nimport IconMarkerWhite from \"assets/images/navbar/shipping-fast-white.svg\";\r\nimport IconAsterisk from \"assets/images/navbar/cog.svg\";\r\nimport IconAsteriskWhite from \"assets/images/navbar/cog-white.svg\";\r\nimport IconPayment from \"assets/images/navbar/credit-card.svg\";\r\nimport IconPaymentWhite from \"assets/images/navbar/credit-card-white.svg\";\r\nimport IconUser from \"assets/images/navbar/user-circle.svg\";\r\nimport IconUserWhite from \"assets/images/navbar/user-circle-white.svg\";\r\nimport IconCalendar from \"assets/images/navbar/calendar-alt.svg\";\r\nimport IconCalendarWhite from \"assets/images/navbar/calendar-alt-white.svg\";\r\n\r\nimport { FormProvider, useForm } from 'react-hook-form';\r\nimport { Button, Col, Container, Form, Input, Row } from 'reactstrap';\r\n\r\nimport * as Genericos from '../../hooks/Genericos';\r\n\r\nimport {\r\n PedidoEnviadoRecorrenciaUpdate, pedidoEnviadoUpdate, requestHorariosDisponiveis, setAmbiente, userLogout\r\n} from '../../actions';\r\nimport { RequestHorariosDisponiveisUpdateInterface } from '../../interfaces/RequestHorariosDisponiveisUpdateInterface';\r\nimport { useHistory } from 'react-router';\r\nimport { useVirtualPageView, useInitiateOrderTracking, usePurchaseTracking } from '../../hooks/TagManager/index';\r\nimport { useOfertasPersonalizadas } from '../../hooks/useOfertasPersonalizadas';\r\n\r\nimport isAutenticado from '../../auth';\r\n\r\nimport RecorrenciaRequest from 'models/RecorrenciaRequest';\r\n\r\nimport 'react-loading-skeleton/dist/skeleton.css';\r\nimport './styles.scss';\r\nimport { useFetchHoursAvailable } from 'hooks/recorrencia/fetchHoursAvailable';\r\nimport FixedNavigator from 'Pages/Recorrencia/PedidoRecorrencia/components/FixedNavigator';\r\n\r\n\r\nconst PedidoComponent = ({ location }: any) => {\r\n const { fetchHoursAvailable } = useFetchHoursAvailable();\r\n\r\n const {\r\n authState,\r\n pedidoState,\r\n clienteState,\r\n lojaEscolhidaState,\r\n horariosDisponiveisState,\r\n horariosDisponiveisRecorrenciaState,\r\n ambienteState } = useSelector((state: any) => state);\r\n\r\n const { onVirtualPageView } = useVirtualPageView();\r\n const { onPurchase } = usePurchaseTracking();\r\n const { onInitiateOrder } = useInitiateOrderTracking();\r\n const { requestOfertasPersonalizadas, ofertas } = useOfertasPersonalizadas();\r\n\r\n const methods = useForm();\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const [allowSubstituicao, setAllowSubstituicao] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const substituicaoField = methods.watch('Substituicao');\r\n const frequency = methods.watch('frequency');\r\n\r\n useEffect(() => {\r\n switch (substituicaoField) {\r\n case '0':\r\n setAllowSubstituicao(false);\r\n methods.setValue('ItensSubstituicao', \"\");\r\n break;\r\n case '1':\r\n !allowSubstituicao && setAllowSubstituicao(true);\r\n break;\r\n case '2':\r\n !allowSubstituicao && setAllowSubstituicao(true);\r\n break;\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [substituicaoField])\r\n\r\n useEffect(() => {\r\n onVirtualPageView({\r\n page: \"/pedido\",\r\n etapa: \"pedido\",\r\n });\r\n }, [onVirtualPageView]);\r\n\r\n useEffect(() => {\r\n onInitiateOrder({\r\n orderType: 'pedido-avulso'\r\n });\r\n }, [onInitiateOrder]);\r\n\r\n useEffect(() => {\r\n let cpf = authState?.data.Cpf;\r\n let id = pedidoState?.data.LojaId;\r\n\r\n requestOfertasPersonalizadas({ cpf, id });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pedidoState.data.LojaId, authState.data.Cpf]);\r\n\r\n const [clienteLeveNatural, setClienteLeveNatural] = useState(new LeveNatural());\r\n const [listaHorarios, setListaHorarios] = useState([]);\r\n const [parametrosLoja, setParametrosLoja] = useState([]);\r\n const [hasRecorrencia, setHasRecorrencia] = useState(false);\r\n const [arrayImages, setArrayImages] = useState('');\r\n const [arrayImagesCard, setArrayImagesCard] = useState('');\r\n const [arrayImagesConfira, setArrayImagesConfira] = useState('');\r\n const [arrayImagesPadaria, setarrayImagesPadaria] = useState('');\r\n const [arrayImagesOutrosProdutos, setarrayImagesOutrosProdutos] = useState('');\r\n const [arrayImagesProteinas, setarrayImagesProteinas] = useState('');\r\n const [arrayImagesFLV, setarrayImagesFLV] = useState('');\r\n\r\n const initHasRecorrencia = useCallback(async () => {\r\n RecorrenciaService.getHasRecorrencia(pedidoState.data.LojaId, 9)\r\n .then(res => setHasRecorrencia(res.data.hasRecorrencia))\r\n .catch(err => console.log(err));\r\n }, [pedidoState.data.LojaId]);\r\n\r\n const initClienteLeveNatural = useCallback(() => {\r\n ClienteService.getLeveNatural(authState.data.Cpf)\r\n .then(res => { setClienteLeveNatural(res) })\r\n .catch(err => console.error('error: ', err));\r\n }, [authState.data.Cpf])\r\n\r\n const initListaHorario = useCallback((): any => {\r\n RecorrenciaService.listaHorario()\r\n .then(lista => setListaHorarios(lista))\r\n .catch(err => console.error('error: ', err));\r\n }, []);\r\n\r\n const initParametrosLoja = useCallback((): any => {\r\n LojaService.listaParametros(pedidoState.data.LojaId)\r\n .then(params => setParametrosLoja(params))\r\n .catch(err => console.error('error ', err));\r\n }, [pedidoState.data.LojaId]);\r\n\r\n const initForm = useCallback(() => {\r\n const pedido: Pedido = new Pedido(pedidoState.data);\r\n pedido.Cpf = CpfService.formatar(authState.data.Cpf);\r\n pedido.Nome = clienteState.data.Nome;\r\n pedido.Telefone = TelefoneService.formatar(clienteState.data.Telefone);\r\n pedido.PreferenciasCliente = clienteState.data.Preferencias;\r\n pedido.transformToForm().forEach((item: any) => {\r\n methods.setValue(item[0], item[1]);\r\n });\r\n // removi o methods do array de dependências pois estava causando re-render looping\r\n // eslint-disable-next-line react-hooks/exhaustive-deps \r\n }, [authState.data.Cpf, clienteState.data.Nome, clienteState.data.Preferencias, clienteState.data.Telefone, pedidoState.data]);\r\n\r\n\r\n useEffect(() => {\r\n const currentCarouselImages = ParametroService.getImagemMarketing(parametrosLoja);\r\n const currentCarouselImagesConfira = ParametroService.getImagemDHP(parametrosLoja);\r\n\r\n if (currentCarouselImages) {\r\n const currentArrayImages = currentCarouselImages.split(';');\r\n setArrayImages(currentArrayImages)\r\n }\r\n\r\n if (currentCarouselImagesConfira) {\r\n const currentArrayImages = currentCarouselImagesConfira.split(';');\r\n setArrayImagesConfira(currentArrayImages)\r\n }\r\n }, [parametrosLoja])\r\n\r\n\r\n useEffect(() => {\r\n function initOrder() {\r\n if (!pedidoState.data.LojaId) {\r\n if (isAutenticado()) {\r\n history.push('/pre-atendimento');\r\n AlertService.error('Antes de fazer o pedido, é necessário selecionar a loja.');\r\n } else {\r\n history.push('/pre-atendimento');\r\n };\r\n }\r\n\r\n // requisições feitas em paralelo\r\n //initOfertasPersonalizadas();\r\n initListaHorario();\r\n initParametrosLoja();\r\n initClienteLeveNatural();\r\n initHasRecorrencia();\r\n\r\n // console.error('Houve um erro ao inicializar...');\r\n // AlertService.error('Sistema temporariamente indisponível. Por favor, tente novamente mais tarde.');\r\n\r\n initForm();\r\n }\r\n\r\n initOrder();\r\n }, [lojaEscolhidaState, authState, pedidoState, initListaHorario, initParametrosLoja, initForm, history, initClienteLeveNatural])\r\n\r\n useEffect(() => {\r\n const currentCarouselImages = ParametroService.getImagemMarketing(parametrosLoja);\r\n const currentCarouselImagesConfira = ParametroService.getImagemDHP(parametrosLoja);\r\n const currentCarouselImagesPadaria = ParametroService.getImagemPadaria(parametrosLoja);\r\n const currentCardlImages = ParametroService.getImagemCards(parametrosLoja);\r\n const currentCarouselImagesOutrosProdutos =\r\n ParametroService.getImagemOutrosProdutos(parametrosLoja);\r\n const currentCarouselImagesProteinas =\r\n ParametroService.getImagemPromocaoCarneAvePeixe(parametrosLoja);\r\n const currentCarouselImagesFLV = ParametroService.getImagemPromocaoFLV(parametrosLoja);\r\n\r\n if (currentCardlImages) {\r\n const currentArrayImages = currentCardlImages.split(';');\r\n checkIfImageExists(setArrayImagesCard, currentArrayImages);\r\n }\r\n\r\n if (currentCarouselImages) {\r\n const currentArrayImages = currentCarouselImages.split(';');\r\n checkIfImageExists(setArrayImages, currentArrayImages);\r\n }\r\n\r\n if (currentCarouselImagesConfira) {\r\n const currentArrayImages = currentCarouselImagesConfira.split(';');\r\n checkIfImageExists(setArrayImagesConfira, currentArrayImages);\r\n }\r\n if (currentCarouselImagesPadaria) {\r\n const currentArrayImages = currentCarouselImagesPadaria.split(';');\r\n checkIfImageExists(setarrayImagesPadaria, currentArrayImages);\r\n }\r\n if (currentCarouselImagesOutrosProdutos) {\r\n const currentArrayImages = currentCarouselImagesOutrosProdutos.split(';');\r\n checkIfImageExists(setarrayImagesOutrosProdutos, currentArrayImages);\r\n }\r\n if (currentCarouselImagesProteinas) {\r\n const currentArrayImages = currentCarouselImagesProteinas.split(';');\r\n checkIfImageExists(setarrayImagesProteinas, currentArrayImages);\r\n }\r\n if (currentCarouselImagesFLV) {\r\n const currentArrayImages = currentCarouselImagesFLV.split(';');\r\n checkIfImageExists(setarrayImagesFLV, currentArrayImages);\r\n }\r\n }, [parametrosLoja]);\r\n\r\n function checkIfImageExists(setter: any, arrayUrl: string[]) { // adicionado\r\n let arr: string[] = [];\r\n arrayUrl.forEach(url => {\r\n const img = new Image();\r\n img.src = url;\r\n\r\n if (img.complete) {\r\n arr.push(url);\r\n } else {\r\n img.onload = () => {\r\n arr.push(url);\r\n };\r\n img.onerror = () => {\r\n return;\r\n };\r\n }\r\n });\r\n setter(arr);\r\n }\r\n\r\n const getHorarioEntregaByCod = (codHorario: number, listaHorarios: Horario[]): Horario => {\r\n const horario = new Horario(listaHorarios.filter((item: Horario) => item.CodHorario === codHorario)[0]);\r\n return horario;\r\n }\r\n\r\n const isPedidoSwitchedToRecorrencia = useMemo((): boolean => {\r\n if (frequency) {\r\n const lastChange = frequency[frequency.length - 1];\r\n\r\n return lastChange.frequency;\r\n }\r\n\r\n return false;\r\n }, [frequency]);\r\n\r\n const deliveryDateNotProvided = (dataEntrega: any) => {\r\n return !dataEntrega;\r\n };\r\n\r\n /**\r\n * Confere se o pedido pode ser realizado na data/hora escolhida\r\n * @param dataEntrega \r\n * @param codHorario \r\n * @returns \r\n */\r\n const podeRealizar = (\r\n dataEntrega: Date,\r\n codHorario: number,\r\n codLoja: string,\r\n entregaOuRetirada: \"Entrega\" | \"Retirada\",\r\n isEntregaExpressa: boolean,\r\n pedidoConvertido: boolean): boolean => {\r\n\r\n // verificação dupla ** - VERIFICAR\r\n if (!codHorario && !isEntregaExpressa) { // codHorario será undefined ainda em caso de pedido convertido\r\n return false;\r\n }\r\n\r\n let listaHorarios: Horario[] = [];\r\n // aqui ele monta a estrutura com os horários disponíveis\r\n if (pedidoConvertido) {\r\n listaHorarios = horariosDisponiveisRecorrenciaState.data;\r\n } else if (entregaOuRetirada === 'Retirada') {\r\n listaHorarios = horariosDisponiveisState.data.retirada;\r\n } else {\r\n listaHorarios = horariosDisponiveisState.data.entrega;\r\n }\r\n\r\n // aqui terei a lista de horários atualizada?\r\n const horario: Horario = getHorarioEntregaByCod(codHorario, listaHorarios);\r\n\r\n // verificação dupla **\r\n if (!horario.CodHorario && !isEntregaExpressa) { // CodHorario apenas para Entrega a Domicílio (comum)\r\n return false;\r\n }\r\n\r\n // vai verificar se o usuário demorou para fechar o pedido \r\n // e fazer a atualização dos horários\r\n const dthrEntrega = moment(dataEntrega).startOf('day').hour(horario.HorarioIncio);\r\n\r\n if (moment().isAfter(dthrEntrega) && !isEntregaExpressa) {\r\n\r\n if (pedidoConvertido) {\r\n fetchHoursAvailable(\r\n lojaEscolhidaState.data.cod_siac,\r\n new Date(dataEntrega),\r\n );\r\n } else {\r\n const busca: RequestHorariosDisponiveisUpdateInterface = {\r\n codLoja: codLoja,\r\n data: moment(dataEntrega).toDate(),\r\n entregaOuRetirada: entregaOuRetirada\r\n };\r\n\r\n dispatch(requestHorariosDisponiveis(busca));\r\n }\r\n\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n const checkOffers = ({ OfertaPersonalizada: ofertasField }: any) => {\r\n let formattedOfertas = ofertasField;\r\n\r\n return !!formattedOfertas.trim().length;\r\n };\r\n\r\n\r\n const getEntregaOuRetirada = (tipoEntrega: string) => {\r\n return tipoEntrega ===\r\n (\r\n Genericos.ENTREGA_DOMICILIO_NORMAL ||\r\n Genericos.ENTREGA_EXPRESSA\r\n ) ||\r\n isPedidoSwitchedToRecorrencia ?\r\n 'Entrega'\r\n : 'Retirada';\r\n }\r\n\r\n const validacoesAdicionaisForm = function (data: any): boolean {\r\n let possuiErros = false;\r\n\r\n const entregaOuRetirada = getEntregaOuRetirada(data.TipoEntrega);\r\n\r\n if (!data.FLV &&\r\n !data.CarneAvePeixe &&\r\n !data.DHP &&\r\n !data.OutrosProdutos &&\r\n !data.Lanche) {\r\n\r\n if (!!ofertas?.length) {\r\n const offersFieldIsFilled = checkOffers(data);\r\n\r\n if (offersFieldIsFilled) {\r\n if (isPedidoSwitchedToRecorrencia) {\r\n possuiErros = true;\r\n\r\n AlertService.show(\r\n \"Você deve inserir ao menos um item de uma outra categoria de produtos.\",\r\n 'Atenção',\r\n 'warning'\r\n );\r\n\r\n return possuiErros;\r\n } else {\r\n return possuiErros = false;\r\n }\r\n } else {\r\n if (isPedidoSwitchedToRecorrencia) {\r\n possuiErros = true;\r\n }\r\n }\r\n }\r\n\r\n // NENHUM CAMPO PREENCHIDO E SEM OFERTAS RETORNA ERRO NOS 2 TIPOS DE PEDIDO\r\n methods.setError('FLV', {\r\n shouldFocus: true\r\n })\r\n\r\n AlertService.show('Você deve escolher ao menos um item para fazer o seu pedido.');\r\n\r\n possuiErros = true;\r\n\r\n return possuiErros;\r\n };\r\n\r\n const isEntregaExpressa = data.TipoEntrega === Genericos.ENTREGA_EXPRESSA;\r\n\r\n // função podeRealizar não será disparada para pedidos convertidos\r\n if (!podeRealizar(\r\n data.DataEntrega,\r\n Number(data.CodHorario),\r\n pedidoState.data.LojaId,\r\n entregaOuRetirada,\r\n isEntregaExpressa,\r\n isPedidoSwitchedToRecorrencia\r\n )) {\r\n\r\n AlertService.show('Data/Hora de pedido indisponível.');\r\n\r\n methods.setError('DataEntrega', {\r\n shouldFocus: true\r\n })\r\n\r\n possuiErros = true;\r\n\r\n return possuiErros;\r\n }\r\n\r\n if (deliveryDateNotProvided(data.DataEntrega)) {\r\n possuiErros = true;\r\n }\r\n\r\n return possuiErros;\r\n }\r\n\r\n const resetLocalStorage = () => {\r\n localStorage.removeItem('FLV');\r\n localStorage.removeItem('CarneAvePeixe');\r\n localStorage.removeItem('DHP');\r\n localStorage.removeItem('OutrosProdutos');\r\n localStorage.removeItem('Lanche');\r\n localStorage.removeItem('OfertaPersonalizada');\r\n localStorage.removeItem('Substituicao');\r\n };\r\n\r\n const setSacolaESubstituicao = (request: any) => {\r\n request.IncluirSacola = request.IncluirSacola === '1';\r\n\r\n switch (request.Substituicao) {\r\n case \"1\":\r\n request.Substituicao = false\r\n break;\r\n case \"2\":\r\n request.Substituicao = true\r\n request.SubstituicaoItemAItem = 2;\r\n break;\r\n case \"3\":\r\n request.Substituicao = true;\r\n request.SubstituicaoItemAItem = 3;\r\n };\r\n }\r\n\r\n const salvarTermoSeNecessario = async (request: any) => {\r\n const isTermoSaldo = await LGPDService.salvarTermoSeNecessario(request.Cpf);\r\n\r\n if (!isTermoSaldo) {\r\n AlertService.error('Erro ao concordar com os termos de uso. Tente novamente mais tarde.');\r\n return;\r\n }\r\n }\r\n\r\n const runEssentials = (request: any) => {\r\n salvarTermoSeNecessario(request);\r\n setSacolaESubstituicao(request);\r\n\r\n if (horariosDisponiveisState.data.substituicaoLoja.lojaFechada) {\r\n request.LojaId = horariosDisponiveisState.data.substituicaoLoja.cod_siac_substituta;\r\n request.ObservacaoPedido = \"Loja Origem: \" + lojaEscolhidaState.data.nome + ' ' + request.ObservacaoPedido;\r\n }\r\n }\r\n\r\n const transformRecorrenciaRequest = (request: any) => {\r\n request.CodMeioDeContato = 1;\r\n request.DataProximaEntrega = request.DataEntrega;\r\n request.DataInicio = request.DataEntrega;\r\n request.TipoEntrega = 2;\r\n request.CodHorario = Number(request.CodHorario);\r\n request.numCpfCnpj = request.Cpf;\r\n request.RecorrenciaDia = frequency[frequency.length - 1].diaRecorrencia\r\n }\r\n\r\n const onSubmitSuccess = async (data: any) => {\r\n const errors = validacoesAdicionaisForm(data);\r\n\r\n if (errors) {\r\n return false;\r\n }\r\n\r\n setIsSubmitting(true);\r\n\r\n if (isPedidoSwitchedToRecorrencia) {\r\n let request = new RecorrenciaRequest(Object.assign(pedidoState.data, data))\r\n\r\n runEssentials(request);\r\n\r\n transformRecorrenciaRequest(request);\r\n\r\n const recorrenciaResponse: any = await RecorrenciaService.salvar(request);\r\n const codRecorrencia = recorrenciaResponse?.data.CodRecorrencia;\r\n\r\n setIsSubmitting(false);\r\n\r\n if (recorrenciaResponse.error) {\r\n AlertService.error(recorrenciaResponse.error);\r\n } else {\r\n onPurchase({\r\n request: request,\r\n pedidoId: codRecorrencia\r\n });\r\n\r\n localStorage.setItem(\r\n \"RecorrenciaAtual\",\r\n codRecorrencia\r\n );\r\n\r\n const title =\r\n \"A Loja \" + lojaEscolhidaState.data.nome + \" agradece seu pedido!\";\r\n const msg = \"Anote o número para acompanhar a entrega: \" + codRecorrencia;\r\n\r\n AlertService.success(msg, title).then((res) => {\r\n resetLocalStorage();\r\n\r\n history.push(\"/pedido-recorrencia-enviado\");\r\n\r\n const pedidoEnviado = {\r\n success: true,\r\n titulo: \"Pedido Confirmado\",\r\n primeiroTxt: `Tudo certo! Você receberá seu pedido no dia ${moment(\r\n request.DataProximaEntrega,\r\n \"YYYY-MM-DD\"\r\n ).format(\"DD/MM/YYYY\")} entre ${request.HoraEntrega} no endereço ${request.Endereco\r\n }, ${request.Complemento}, ${request.Numero}.`,\r\n primeiroBtnTxt: \"Voltar para o início\",\r\n primeiroBtnLink: `/pre-atendimento/tipo-pedido/${pedidoState.data.LojaId}`,\r\n };\r\n\r\n dispatch(userLogout());\r\n dispatch(PedidoEnviadoRecorrenciaUpdate(pedidoEnviado));\r\n });\r\n }\r\n } else {\r\n let request = new PedidoRequest(Object.assign(pedidoState.data, data))\r\n\r\n runEssentials(request);\r\n\r\n if (request.TipoEntrega === Genericos.RETIRADA_ARMARIO) {\r\n request.RetiradaArmario = true;\r\n }\r\n\r\n const pedidoResponse: PedidoResponse = await PedidoService.salvar(request);\r\n\r\n setIsSubmitting(false);\r\n\r\n if (!pedidoResponse.status) {\r\n AlertService.error(pedidoResponse.error);\r\n } else {\r\n onPurchase({\r\n request: request,\r\n pedidoId: pedidoResponse.codPedido\r\n });\r\n\r\n const title = \"A Loja \" + lojaEscolhidaState.data.nome + \" agradece seu pedido!\";\r\n const msg = \"Anote o número para acompanhar a entrega: \" + pedidoResponse.codPedido;\r\n AlertService.success(msg, title).then((res: any) => {\r\n if (res.isConfirmed) {\r\n resetLocalStorage();\r\n history.push('/pedido-enviado');\r\n\r\n const ambiente = ambienteState.data;\r\n\r\n const pedidoEnviado: PedidoEnviadoInterface = {\r\n nomeLoja: lojaEscolhidaState.data.nome,\r\n nrPedido: pedidoResponse.codPedido,\r\n numeroWhatsapp: ParametroService.getNumeroWhatsapp(parametrosLoja),\r\n ambiente: ambiente,\r\n };\r\n\r\n //dispatch(userLogout());\r\n dispatch(pedidoEnviadoUpdate(pedidoEnviado));\r\n dispatch(setAmbiente(ambiente));\r\n };\r\n });\r\n };\r\n };\r\n };\r\n\r\n const onSubmitError = async (data: any) => {\r\n setTimeout(() => {\r\n AlertService.show('Existem campos acima que não foram preenchidos corretamente.');\r\n }, 300);\r\n return data;\r\n }\r\n\r\n const didFetchStoreParams: boolean = !!parametrosLoja.length;\r\n\r\n\r\n const fixedNavigatorItems = [\r\n {\r\n target: \"como\",\r\n avulso: true,\r\n label: \"Início\",\r\n icon: IconInfo,\r\n iconWhite: IconInfoWhite,\r\n firstBlock: true,\r\n separator: true,\r\n },\r\n {\r\n target: \"frutas\",\r\n avulso: true,\r\n label: \"Frutas, legumes e verduras\",\r\n icon: IconApple,\r\n iconWhite: IconAppleWhite\r\n },\r\n {\r\n target: \"carnes\",\r\n avulso: true,\r\n label: \"Carnes, aves e peixes\",\r\n icon: IconMeat,\r\n iconWhite: IconMeatWhite\r\n },\r\n {\r\n target: \"outros\",\r\n avulso: true,\r\n label: \"Outros produtos\",\r\n icon: IconGlass,\r\n iconWhite: IconGlassWhite\r\n },\r\n {\r\n target: \"padaria\",\r\n avulso: true,\r\n label: \"Padaria\",\r\n icon: IconBread,\r\n iconWhite: IconBreadWhite\r\n },\r\n {\r\n target: \"confira\",\r\n avulso: true,\r\n label: \"Confira também\",\r\n icon: IconTag,\r\n iconWhite: IconTagWhite,\r\n separator: true,\r\n },\r\n {\r\n target: \"preferencias\",\r\n avulso: true,\r\n label: \"Preferências\",\r\n icon: IconAsterisk,\r\n iconWhite: IconAsteriskWhite,\r\n },\r\n {\r\n target: \"pagamento\",\r\n avulso: true,\r\n label: \"Pagamento\",\r\n icon: IconPayment,\r\n iconWhite: IconPaymentWhite\r\n },\r\n {\r\n target: \"dados\",\r\n avulso: true,\r\n label: \"Dados pessoais\",\r\n icon: IconUser,\r\n iconWhite: IconUserWhite,\r\n },\r\n {\r\n target: \"entrega\",\r\n avulso: true,\r\n label: \"Entrega\",\r\n icon: IconMarker,\r\n iconWhite: IconMarkerWhite\r\n },\r\n {\r\n target: \"data\",\r\n avulso: true,\r\n label: \"Agendamento\",\r\n icon: IconCalendar,\r\n iconWhite: IconCalendarWhite,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n isSubmitting && (\r\n // @ts-ignore\r\n \r\n )\r\n }\r\n \r\n

INFORMAÇÕES

\r\n \r\n \r\n
\r\n

LISTA DE COMPRAS

\r\n

Escreva nos campos abaixo os produtos que deseja.

\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {\r\n !!ofertas?.length && (\r\n \r\n )\r\n }\r\n\r\n
\r\n

\r\n Preferências\r\n

\r\n
\r\n Gostaria de fazer alguma orientação aos nossos separadores?\r\n
\r\n Use este espaço para informar para a loja exatamente como você gostaria\r\n de receber os itens do carrinho ou qualquer observação adicional.\r\n
\r\n
\r\n \r\n
\r\n\r\n {didFetchStoreParams && ParametroService.getValorSacola(parametrosLoja)\r\n && \r\n }\r\n\r\n {didFetchStoreParams && ParametroService.getAceitaSubstituicaoProduto(parametrosLoja)\r\n && \r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

Dados Pessoais

\r\n
\r\n Deixe sempre o número do seu celular atualizado. As atualizações do pedido serão enviadas no Whatsapp.\r\n
\r\n \r\n
\r\n\r\n {!clienteLeveNatural.ativo && (\r\n
\r\n

Programa de Fidelidade

\r\n
\r\n Para fazer parte do nosso programa de fidelidade, receber descontos em produtos, na entrega ou poder utilizar cupons de desconto, preencha os campos abaixo:\r\n
\r\n \r\n
\r\n )}\r\n
\r\n

Entrega

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Concluir Pedido\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n