{"version":3,"sources":["context/DataContext.js","helpers/getURL.js","helpers/getConfig.js","helpers/getConstants.js","components/Utilities/General.jsx","helpers/APIServices.js","context/TokenStatusContext.jsx","components/Register/ButtonRegister.jsx","components/Register/ButtonToStreaming.jsx","components/Register/WatchCatalog.jsx","components/Home/CarouselItem.jsx","components/Home/CarouselIndicators.jsx","components/Home/Carousel.jsx","components/Home/AuctionsItem.jsx","components/Home/Auctions.jsx","components/Home/AuctionsCarousel.jsx","components/Register/Offer.jsx","components/Home/AuctionsHighlightItem.jsx","components/Home/AuctionsHighlight.jsx","components/Home/AuctionsHighlightSection.jsx","components/Home/AuctionsHighlightCarousel.jsx","components/Home/Video.jsx","components/Utilities/Animation.jsx","components/Home/Home.jsx","components/Home/CloseModalIcon.jsx","context/CaptchaContext.jsx","components/Login/Login.jsx","components/CheckIn/CheckIn.jsx","components/Home/Header.jsx","components/Home/FooterMain.jsx","components/Menu/CountDownCatalog.jsx","components/Menu/OrderCatalog.jsx","components/Menu/PaginationCatalog.jsx","components/Menu/ProductGridItem.jsx","components/Menu/ProductGrid.jsx","components/Menu/SearchDescription.jsx","components/Menu/CartGridItem.jsx","components/Menu/CartGrid.jsx","components/Menu/Cart.jsx","components/Profile/customerData/CustomerChangePass.jsx","components/Profile/ConfigurationAccount.jsx","components/Profile/SelectNationality.jsx","components/Profile/SelectCountry.jsx","components/Profile/SelectState.jsx","components/Profile/SelectTown.jsx","components/Profile/SelectCity.jsx","components/Profile/SelectEconomicActivity.jsx","components/Profile/SelectJustCountry.jsx","components/Profile/customerData/CustomerComplementaryData.jsx","components/Profile/customerData/CustomerData.jsx","components/Profile/customerData/ModalCustomerData.jsx","components/Menu/FiltersCatalog.jsx","components/Menu/PriceFilter.jsx","components/Menu/Catalog.jsx","components/Menu/AboutUs.jsx","components/Menu/AuctionsMenu.jsx","components/Menu/Services.jsx","components/Menu/Contact.jsx","components/Utilities/ToTop.jsx","components/Utilities/Loading.jsx","components/streaming/MiniPlayer/ClosingModal.jsx","components/Message/Message.jsx","components/Register/StreamingRegisterMessage.jsx","components/Menu/OfferSuccess.jsx","components/Login/RecoveryPassword.jsx","components/Login/ResetPassword.jsx","components/Login/TokenNotValid.jsx","components/CheckIn/VerifyUser.jsx","components/Profile/AuctionAccount.jsx","components/Profile/paymentProcess/AdressConfirmDelete.jsx","components/Profile/AddressBilling.jsx","components/Profile/ModalAddressBilling.jsx","components/Profile/AddressBillingAccount.jsx","components/Profile/AddressShipping.jsx","components/Profile/ModalAddressShipping.jsx","components/Profile/AddressShippingAccount.jsx","components/Profile/AwardActive.jsx","components/Profile/AwardHistory.jsx","components/Profile/paymentProcess/PaymentGateways.jsx","components/Profile/Orders.jsx","components/Profile/Bids.jsx","components/Profile/ProfileGrid.jsx","components/Profile/paymentProcess/ShoppingCart.jsx","components/Profile/paymentProcess/Send.jsx","components/Profile/paymentProcess/OrderPanel.jsx","components/Profile/paymentProcess/Mail.jsx","components/Profile/paymentProcess/Invoice.jsx","components/Profile/paymentProcess/AddressBilling.jsx","components/Profile/paymentProcess/AddressShipping.jsx","components/Profile/paymentProcess/Payment.jsx","components/Profile/paymentProcess/ConfirmOrder.jsx","components/Profile/paymentProcess/PaymentProcessGrid.jsx","components/Profile/paymentProcess/ReceivePay.jsx","components/Profile/orderDetail/SummaryOrder.jsx","components/Profile/orderDetail/OrderDetail.jsx","components/Profile/orderDetail/OrderDetailGrid.jsx","components/streaming/Carousel.jsx","components/streaming/Video.jsx","components/streaming/Information.jsx","components/streaming/MenuStreaming.jsx","components/streaming/Streaming.jsx","components/Register/MePago/CardFormToken.jsx","components/Register/RegisterToOffer.jsx","components/streaming/WaitNextAuctions.jsx","components/streaming/WaitNextAuctionsDeclineClient.jsx","components/Register/ReceivePayToken.jsx","components/Profile/paymentProcess/ReceiveActnetPay.jsx","components/Register/MePago/ChallengePayToken.jsx","App.js","reportWebVitals.js","index.js"],"names":["reducer","validate","newValidate","intitialState","valid","registeredAuctions","idAuction","nameAuction","dateAuction","palletAuction","idPallet","localState","JSON","parse","localStorage","getItem","DataContext","createContext","DataProvider","children","useReducer","setValidate","useEffect","setItem","stringify","Provider","value","URLServices","getUrls","sessionStorage","ServiceCarousel","URLs","catalog","ServiceAuctionCustomerStatus","id","PATH","ServiceLastCatalog","ServiceAuctionById","ServiceFavoritesGetById","auctionsClients","ServiceGetAddressShippingByIdCustomer","idCustomer","customers","ServiceGetGeneralParameterById","ServiceGetAddressBillingByIdCustomer","ServiceInfoAddressShippingById","ServiceInfoAddressBillingById","ServiceGetByZipCode","zipCode","announcement","ServiceGetCountries","ServiceGenericParameters","idParameter","ServiceRefreshToken","refreshToken","clients","ServiceCompleteOrder","checkout","ServiceClientData","ServiceUpdateClientData","ServiceLotCatalogByAuctionFilter","getConfig","file","a","url","fetch","headers","Accept","then","response","json","resp","data","Constants","getConstants","getImgDefault","imgDefault","getIdStreaming","idStreaming","getExecution","execution","getIdGoldenMinutes","idGoldenMinutes","getLimitShippingInvoice","limitShippingInvoice","getLimitShipping","limitShipping","getAvailableLot","available","getRetiredLot","retired","getPenaltyDaysDefault","penaltyDaysDefault","getGuidEmpty","guidEmpty","getUserRejectedStatus","userRejected","getBillPocketID","billPocket","getactnetID","actnet","getMercadoPagoId","getDisableCheckoutMessageID","idDisableCheckoutMessage","getMercadoPagoPublicKey","CloseModal","elementID","modal","document","getElementById","modalBootstrap","bootstrap","Modal","getInstance","hide","backdrops","getElementsByClassName","length","i","remove","OpenModal","toggle","CloseAllModal","modals","OpenMessage","type","messageService","contact","messageSubText","dataMessage","success","warning","error","confirm","message","icon","text","text2","button","arrIcon","split","innerHTML","classList","add","forEach","element","messageText2","style","OpenStreamingRegisterMessage","OpenOfferSuccess","redirectHome","OpenCloseStreaming","OpenWaitNextAuction","verifyFieldsRequerid","elements","trim","validEmail","email","test","restoreInputs","inputs","validRFC","input","esFiscoMoral","rfc","replace","match","validPassword","msg","search","validSession","token","setSession","open","items","login","loginMobile","itemsMobile","userName","userNameMobile","name","auctions","expiration","expirationRefresh","idPalleteVIP","undefined","mercadoPagoPublicKey","initMercadoPago","locale","idMercadoPagoPublicKey","endpointMercadoPagoPublicKey","GET","clear","setMinMaxDate","currentDate","Date","currentMonth","getMonth","currentDay","getDate","dateMax","getFullYear","setAttribute","validMinMaxDate","limitDate","setFullYear","date","minDate","min","maxDate","onlyText","event","target","onlyMail","onlyNumber","onlyTextNumber","onlyTextNumber2","convertToDate","d","hours","getHours","minutes","getMinutes","meridiem","convertToDatePenaltyDay","days","setDate","convertToTime","seconds","getSeconds","changePasswordText","getAttribute","attributes","class","nodeValue","setAttributePassword","formatCurrency","numberFormat","Intl","NumberFormat","currency","isNaN","format","capitalize","string","letter","charAt","toUpperCase","slice","toLowerCase","resetRadios","getElementsByName","checked","closeMenuMobile","contains","click","CloseBackdrops","getIP","axios","get","ip","removeArt","word","showLoading","loading","hideLoading","Token","method","catch","POST","params","Authorization","body","status","setTimeout","window","location","href","ok","PUT","DELETE","TokenStatusContext","TokenStatusProvider","useState","tokenStatus","setTokenStatus","onTokenValidate","setOnTokenValidate","mercadoPagoInitialized","setMercadoPagoInitialized","paymentFormError","setPaymentFormError","renderMpPaymentForm","setRenderMpPaymentForm","tokenAmount","setTokenAmount","ButtonRegister","classStyle","useContext","history","useHistory","clearState","saveToken","pallet","description","streaming","idPalette","openRegisterModal","URLServiceValidationRegisterToken","ServiceValidationRegisterToken","statusToken","redirectToValidation","push","urlValidation","className","onClick","e","ButtonToStreaming","props","statusRejected","userStatusLastCatalog","setButton","messagge","setMessagge","IdClient","checkOnToJoinStreming","URL","ServiceCheckOnToJoinStreming","auctionClient","IdAuction","WatchCatalog","goCatalog","clasStyle","heightA","CarouselItem","statusCustomer","link","nuevaPestania","active","rel","src","img","alt","height","title","place","auctionRegistered","auctionType","auctionStatus","description1","description2","description3","CarouselIndicators","idCarousel","slide","nameClass","Carousel","dataCarousel","setDataCarousel","dataAnnouncement","setDataAnnouncement","interval","setInterval","classIndicator","classItem","getCarousel","URLCarousel","URLAnnouncement","ServiceAnnouncement","IdInterval","carouselTime","URLTimeInterval","filter","carousel","bannerIni","bannerFin","item","auctionCustomerStatus","users","find","auction","idAuctionCustomerStatus","checkStatus","idType","idStatus","auctionValue","getIsStreaming","auctionDate","imageUrl","map","substr","AuctionsItem","to","category","productName","Auctions","isStreaming","state","setState","prevState","parseInt","title2","AuctionsCarousel","Offer","offerLot","offer","setOffer","offerSelected","setOfferSelected","setConfirm","handleScroll","handleOffer","handleConfirm","auctionTypes","idLoteStatus","addCartItem","enablePostSale","clicked","setClicked","idLot","addEventListener","directSale","disabled","scheduled","width","stopPropagation","onScroll","dropdown","ul","elementDrop","elementUl","precio","hideDropdown","AuctionsHighlightItem","reference","price","registered","AuctionsHighlight","AuctionsHighlightSection","articles","auctionName","rowsItems","itemsArray","div","dangerouslySetInnerHTML","__html","index","article","renderToString","order","lstImageLote","startingPrice","lstOffertsLot","divRow","j","k","setAuctionsHigh","AuctionsHighlightCarousel","role","Video","setData","video","controls","preload","autoPlay","muted","loop","playsInline","text1","PAGE","innerHeight","setSlideIn","selector","querySelector","elementTop","getBoundingClientRect","top","Home","mobile","setMobile","lastCatalog","setLastCatalog","setArticles","setAuctions","setUserStatusLastCatalog","getArticles","URLCatalog","ServiceCatalog","PageNumber","Destacado","Order","Object","keys","key","searchParams","append","lots","useLayoutEffect","handleResize","innerWidth","removeEventListener","getData","URLLastCatalog","URLAuctionCustomerStatus","CloseModalIcon","onHandleClick","CaptchaContext","CaptchaProvider","captchaSiteKey","setCaptchaSiteKey","Login","inputMail","setinputMail","inputPassword","setinputPassword","disabledBtn","setdisabledBtn","URLLogin","ServiceLogin","pathname","captchaRef","useRef","current","reset","Logueo","captchaValue","getValue","password","captcha","onPaymentValidate","enterKey","keyCode","onChange","maxLength","onInput","onKeyUp","autoComplete","htmlFor","ref","sitekey","CheckIn","inputName","setinputName","inputLastName","setinputLastName","inputSecondLastName","setinputSecondLastName","inputBirthday","setinputBirthday","inputPhone","setinputPhone","inputVerifyPassword","setinputVerifyPassword","setChecked","ServiceClients","setCaptcha","captchaContact","options","setOptions","alliance","setAlliance","loadAllianceCompanyCatalog","enableBtn","URLAllianceCompany","ServiceAllianceCompany","localOptions","label","console","log","chk","verifyPassword","onBlur","mask","onValueChange","isSearchable","placeholder","components","DropdownIndicator","selectProps","menuIsOpen","Name","LastName","SecondLastName","Birthdate","Phone","Email","Password","IdAllianceCompany","grecaptcha","errors","Header","useLocation","isHome","URLSearchParams","billingUrl","billing","diamondUrl","diamond","constants","PROTOCOL","protocol","redirectSSL","host","urlServices","LOCATION","aboutActive","auctionActive","catalogActive","servicesActive","contactActive","hideMenu","btnExitStreaming","exitStreaming","path","exitStreamingLogOut","menuActive","logo","preventDefault","FooterMain","phone1","phone2","phone3","phone4","desc1","desc2","desc3","desc4","schedule","address","socialMedia","socialKey","hideFooter","footer","CountDownCatalog","startAuctionDate","endAuctionDate","classAuction","onCourseCountDown","onEndCountDown","textStatusAuction","titleColor","statusAuction","timerHours","setTimerHours","timerMinutes","setTimerMinutes","timerSeconds","setTimerSeconds","countDownDate","getTime","now","Math","sign","distance","floor","clearInterval","startTimer","OrderCatalog","orders","searchOrder","handleSelectOrder","PaginationCatalog","pageLinks","currentPage","nextPage","pages","page","ProductGridItem","setLoading","setOfferLot","statusDescription","setStatusDescription","cardColor","setCardColor","headerCard","setheaderCard","iconLot","setIconLot","awardID","award","availableID","retiredID","paidID","paid","IdCustomer","actual","favorities","idPaleta","consigna","consignaSAP","finalPrice","actualLotID","idClient","statusLot","addFavorite","isFavorite","URLFavoritesDelete","ServiceFavoritesDeletetById","err","URLFavoritesPost","ServiceFavoritesPost","nextLotOffer","URLMaxOfert","ServicePostMaxOfert","idCliente","idLote","monto","validado","lastElement","URLGetNextOffert","mont","ServiceGetNextLotOffer","nextOfferLot","idSubasta","incremento","increment","newPrice","includes","favorite","isfavorite","toString","node","scrollHeight","scrollTop","clientHeight","cart","IdLot","Description","Price","Image","lote","setCart","ProductGrid","handdleAddCartItem","numCards","setNumCards","resizing","intFrameWidth","onresize","consignacion","consignacionSAP","imageLote","sort","b","SearchDescription","action","onSubmit","handleSubmit","handleChange","searchTerm","CartGridItem","dellCartItem","delCartItem","pullCart","CartGrid","handdleDeleteCartItem","Cart","ShoppingCart","total","clientData","GeneralData","ContactData","EconomicActivityData","contador","customerGeneralData","customerContactData","customerEconomicActivity","validDataComplementary","visible","collapseOne","collapseTwo","headingOne","headingTwo","descripcionLote","lot","images","nombreLote","precioSalida","origin","detail","enableInvoice","shoppingCart","CustomerChangePassword","dataPassword","setDataPassword","dataPassword2","setDataPassword2","dataShow","setDataShow","classInput","setClassInput","classPassword","setClassPassword","disableInput","setDisableInput","disableCancel","setDisableCancel","URLChangePassword","ServiceChangePassword","edit","btnEdit","innerText","NewPassword","cancel","save","ConfigurationAccount","dataName","setDataName","dataLastName","setDataLastName","dataSecondLastName","setDataSecondLastName","dataBirthday","setDataBirthday","dataTelefono","setDataTelefono","dataCorreo","setDataCorreo","URLClients","generalData","birthday","month","day","convertToDateFormatEnglish","lastName","secondLastName","phoneNumber","updateProfile","parent","close","SelectNationality","setStyle","nationality","control","base","borderColor","singleValue","provided","color","nationalities","setNationalities","ServiceNationality","mountNationality","setMountNationality","nacionalidad","obj","setNationality","styles","isDisabled","SelectCountry","countries","setCountries","URLCountries","idPais","country","idState","setAddress","idEdo","idMun","idCol","SelectState","states","setStates","idCountry","ServiceGetState","sState","SelectTown","town","towns","setTowns","ServiceGetTown","idTown","sTown","colonia","setListCities","SelectCity","city","cities","setCities","ServiceGetCity","listCities","idCity","sCity","col","SelectEconomicActivity","economicActivity","activity","setActivity","ServiceEconomicActivity","mountEconomicActivity","setMountEconomicActivity","actividadEconomica","actEconomica","setActEconomica","SelectJustCountry","countryBirth","setCountry","CustomerComplementaryData","dataNationality","setDataNationality","dataCURP","setDataCURP","dataRFC","setDataRFC","dataCalle","setDataCalle","dataNumero","setDataNumero","dataNumeroInt","setDataNumeroInt","dataTelefonoSec","setDataTelefonoSec","dataCorreoSec","setDataCorreoSec","dataActEconomica","setDataActEconomica","dataPaisNac","setDataPaisNac","setErrors","scp","numero","numeroInt","razonSocial","calle","alias","referencia","esFisicoMoral","verifyCurpRfc","hasAttribute","birthDay","c","calcRFC","idNationality","curp","secondaryPhoneNumber","secondaryEmail","street","number","numberInt","idEconomicActivity","idCountryOfBirth","load","verifyFields","validSelect","errorSelect","verifySelect","inputCURP","validCURP","URLUpdate","getZipCode","changeCP","CustomerData","setLoad","cerrarModal","ModalCustomerData","clearForm","updateData","FiltersCatalog","idSection","filters","getByChecks","displayed","setDisplayed","arrayFilters","setArrayFilters","idFilter","filterSections","onCheckFilter","PriceFilter","max","getByPrice","cleanPrice","minVal","setMinVal","maxVal","setMaxVal","minValRef","maxValRef","range","getPercent","useCallback","round","clean","minPercent","maxPercent","left","onMouseUp","classnames","prefix","defaultValue","decimalsLimit","allowNegativeValue","Catalog","visibleModal","setVisibleModal","setClientData","searchCategory","selectedCategory","selectedOrder","totalResults","filterItems","numberPages","itemsPerPage","filsers","perPageOptions","exibitionDate","eventEndDate","shopingCart","minPrice","maxPrice","priceSection","atualLot","setFavorities","setStatusCustomer","setEnableInvoice","partialClosure","partialTotal","priceFilterID","getClientData","getCatalog","isTrue","getBySP","saleEndDate","saleStartDate","getFavorities","itemsCartAuction","URLAuctionById","eventDate","idTypeAuction","sessionCart","getCart","pageNumber","getLotCatalogFilter","URLFavoritesGet","checks","byPrice","bySearch","priceJson","auxFilters","minprice","jsonLots","URLLOTCATALOG","lotActual","actualLot","ceil","maxItems","idLotActual","scrollTo","URLClientData","tabIndex","AboutUs","title1","paragraph1","paragraph2","paragraph3","paragraph4","AuctionsMenu","getAuctions","auctionsList","Services","title3","Contact","fullName","setFullName","postEmail","setPostEmail","tel","setTel","setMessage","termsConditions","setTermsConditions","setDisabledBtn","ServiceContact","checkContact","chkCaptcha","text3","text4","text5","facebook","twitter","onSendContact","phone","rows","ToTop","Loading","ClosingModal","cancelExit","isGoAccount","has","isLogOut","Message","fontSize","StreamingRegisterMessage","onClear","OfferSuccess","closeOfferSuccess","redirect","RecoveryPassword","ServiceRequestPassword","ResetPassword","inputPasswordReset","setinputPasswordReset","inputVerifyPasswordReset","setinputVerifyPasswordReset","disabledBtnReset","setdisabledBtnReset","URLReset","ServiceResetPasswordReset","ServiceValidateTokenPasswordReset","enableBtnReset","newpassword","TokenNotValid","VerifyUser","URLConfirm","ServiceConfirmEmailNewUser","ActionAccount","dataAuction","setDataAuction","ServiceGetLastAuctions","AdressConfirmDelete","deleteAddress","modalType","AddressBilling","AddressRefresh","getAddress","setTitleModal","focus","x","list","listAddress","municipio","estado","ModalAddressBilling","nombreCompleto","correo","Send","flag","errorSet","bandera","ServiceCustomerInfoAddressBilling","titleModal","AddressBillingAccount","setListAddress","maxAddress","setMaxAddress","flagDelete","URLParameter","valor","Address","AddressShipping","substring","predeterminado","ModalAddressShipping","ServiceCustomerInfoAddressShipping","AddressShippingAccount","NDirectionsValidation","AwardActive","awardActive","setAwardActive","deliveryLimitID","URLDeliveryLimit","getAwardActive","URLGetAwardsActive","ServiceGetAwardsActive","URLPenaltyDays","penaltyDays","arrayGrouped","array","kay","koy","grouped","el","nombreSubasta","fechaSubasta","awards","datePenalty","values","groupBy","validaDatos","AwardHistory","awardHistory","setAwardHistory","ServiceGetAwardsHistory","PaymentGateways","retryPAyment","hideBillPocket","hideActnet","hideMercadoPago","sure","setSure","BILLPOCKETID","ACTNETID","MERCADOPAGOID","clickRadio","payment","Orders","idOrder","setIdOrder","setHideBillPocket","setHideActnet","setHideMercadoPago","pending","orderPending","pendingPayment","orderPendingPayment","completedtStatus","orderCompletedStatus","noteCancelled","getOrders","Promise","resolve","reject","ServiceGetOrdersByUser","result","ServicePaymentRetry","idNota","idTpv","urlRedirect","folio","created","amount","openOrderDetail","idOrderStatus","updatedOrders","updatedOrder","Bids","clientDataBids","setDataBids","clientDataDetailsBids","setDataDetailsBids","setAuctionName","ServiceGetListBids","openDetailBids","URLDetail","ServiceGetListBidsDetails","formatDate","time","converDate","join","dateTime","fecha","hora","numberLot","clientBid","typeOffert","ProfileGrid","dataGeneral","setDataGeneral","dataAwardActive","setDataAwardActive","dataAwardHistory","setDataAwardHistory","dataBid","setBid","dataOrders","setDataOrders","dataAddress","setDataAdress","dataAddressInvoice","setDataAdressInvoice","option","removeMenuActive","openTab","form","setItems","getElementsByTagName","consiga","sap","consignaSap","details","addAllCart","idCheckAll","addCart","step","setStep","officeDelivery","setOfficeDelivery","deliveryLimit","activateMessagingID","activateMessaging","URLActivateMessagingID","getActivate","isOffice","lastStep","send","setOrigen","setOrigen2","eventButton","OrderPanel","count","subTotal","lotPaymentLimitDefault","lotPaymentLimit","setLotPaymentLimit","NLotPaymentLimitValidation","getParams","orderDetails","isDeliveryRequired","idDeliveryType","deliveryOffice","rateDelivery","idRateDelivery","nombreMensajeria","montoMensajeria","idDireccionEnvio","isBillingRequired","idBillingAdress","montoSeguro","selectItem","arr","precioVenta","lotName","deliveryMail","mail","carrier","rate","amountInsurance","addressMail","invoice","addressInvoice","tipoPasarelaTPV","paymentGateway","deliveryService","idBillingUser","saveOrder","ServiceAddDirectSale","ServiceAddOrder","removeItem","deleteCart","limitPayment","backTo","Mail","notification","ServiceQuotationMail","idPresential","listMail","setListMail","idSystem","referenceObject","packageList","contentValue","weight","originAddress","getZipCodeOrigen","destinationAddress","shippingOptions","zipCodeOrigenMO","zipCodeOrigenStreaming","zipCodeOrigenPresential","totalRate","rateId","idRate","AmountInsurance","Invoice","originStep","Payment","externStep","originStep2","ConfirmOrder","setMail","setAddressInvoice","addressInvoiceTitle","setAddressInvoiceTitle","setAddressMail","setPayment","hideInvoice","setHideInvoice","hideMail","setHideMail","stepSend","setStepSend","messageInsurance","setMessageInsurance","dataConsigna","messageInsuranceID","URLMessageInsurance","PaymentProcessGrid","visibleShopping","setVisibleShopping","visibleSend","setVisibleSend","visibleAddressBilling","setVisibleAddressBilling","visibleMail","setVisibleMail","visibleInvoice","setVisibleInvoice","visibleAddressShipping","setVisibleAddressShipping","visiblePayment","setVisiblePayment","visibleConfirmOrder","setVisibleConfirmOrder","setLastStep","setRate","setOrigenStep","setOrigenStep2","setIdTypeAuction","dataSubTotal","setDataSubTotal","dataCount","setDataCount","setDataConsigna","dataInformation","setDataInformation","disabledBtnOrderPanel","setDisabledBtnOrderPanel","continueOrderPanel","select","allItem","deletePropertie","assignInformation","propertie","check","idElement","checkAll","totalItems","ReceivePay","PARAMS","successOrder","orderMessage","SummaryOrder","quantity","setQuantity","setSubtotal","delivery","setDelivery","setTotal","subtotal","deliveryPrice","OrderDetail","addressBilling","setAddressBilling","addressBillingTitle","setAddressBillingTitle","setLots","hideDelivery","setHideDelivery","firstImageLote","nameLote","descriptionLote","priceLote","OrderDetailGrid","setBilling","billingTitle","setBillingTitle","cardClass","setCardClass","setConsiga","ServiceGetOrderById","deliveryServiceName","consignation","typePayment","GuidEmpty","idDeliveryAddress","URLAddressShipping","idAddress","ServiceInfoAddressShippingByCustomer","addressShipping","idBillingClient","URLAddressBilling","ServiceInfoAddressBillingByCustomer","idLotList","watchLot","carouselMovil","findIndex","statusSubasta","container","scrollLeft","headerClass","borderClass","imagesList","titleStatus","STREAM_PLAYBACK_URL","streamPlayBackUrlQA","dataContent","updateCarousel","update","setUpdate","updateNotice","streamingText","annoucement","streamingFinish","connection","setConnection","adviceOffer","setAdviceOffer","bid","nextLot","setNextLot","waitingStreaming","setWaitingStreaming","waitingText","setWaitingText","lastLot","setLastLot","oldPrice","currentBid","setCurrentBid","SIGNALR","ServiceConnectionSignalr","URLMakeBids","ServiceMakeBids","URLGetCurrentBid","ServiceGetCurrentBid","URLBids","ServiceBidsStreaming","latestBid","startConnection","getCurrentBid","getBids","lastLotStatus","lastLotStatusSubasta","start","registerToAuctionLot","on","onReceiveNotification","onclose","onClose","onreconnecting","openToastNotification","onreconnected","connectionId","onReload","connect","HubConnectionBuilder","withUrl","withAutomaticReconnect","build","Array","isArray","actionCode","timestamp","bidAmount","userPallette","idUser","onBidCancelled","counterOfferMessage","newAmount","idBid","adviceWin","insertBid","bidId","newBids","clientId","paleta","oferta","ofertar","idPuja","bids","connectionStarted","jsonContent","confirmOffert","user","objMessage","Amount","jsonMessage","bidSuccess","sendBid","frameBorder","allowFullScreen","allow","Information","dataAwards","setDataAwards","setPages","maxReg","setMaxReg","setCurrentPage","CurrentLot","idCurrentLot","displayActualLot","displayAwards","imgLot","viewfavorite","URLAwards","ServiceAwardsStreaming","getAwards","Pagina","TamanioPagina","totalRecords","tabActive","querySelectorAll","anuncio","colorStatus","hidden","MenuStreaming","displayVideo","setDisplayActualLot","setDisplayAwards","position","Streaming","allCarousel","setAllCarousel","dataCurrentLot","setDataCurrentLot","lotToShow","setLotToShow","notice","setNotice","setCarouselMovil","URLAuction","ServiceCarouselStreaming","updateOffer","setUpdateOffer","setDisplayVideo","streamingToStart","streamingInPause","streamingInProcess","streamingEnded","setStreamingFinish","getCurrentLot","checkStatusStreaming","statusStreaming","haveCurrentLot","idClicked","numberOfLots","CardFormToken","IPAddress","setIPAddress","browser","setBrowser","sBrowser","sUsrAg","navigator","userAgent","indexOf","responsePayment","pendingChallenge","redirectUrl","creq","externalResourceUrl","extractedText","setDisabledActions","createPayment","disabledActions","cardPaymentBrickController","getFormData","cardFormData","customer_username","first_name","last_name","zip_code","name_on_card","card_number","expiration_year","expiration_month","cvv","browserUserAgent","ipAddress","URLTokenPayment","ServicePaymentTokenMercadoPago","renderPaymentForm","useMemo","initialization","customization","paymentMethods","maxInstallments","visual","hidePaymentButton","onReady","onError","erro","warrantyMessage","RegisterToOffer","setWarrantyMessage","getWarrantyMesage","warrantyID","warranty","URLWarrantyMessage","getDataWarranty","getBillPocketPayment","paymentBillPocketID","paymentBillPocket","getDataBillPocketPayment","parseFloat","WaitNextAuctions","WaitNextAuctionsDeclineClient","ReceivePayToken","external_transaction_id","transaction_id","status_code","error_code","error_message","setRedirect","validToken","setValidToken","setError","URLValidate","ServiceMePagoPaymentValidate","validateData","statusDetail","existRegisteredAuction","some","auctionId","ReceiveActnetPay","setExternalTransactionId","setTransactionId","urlCompleteOrder","showOrderMessage","ChallengePayToken","setId","setStatus","setStatusDetail","setCreq","setExternalResourceUrl","setRedirectUrl","complete","setComplete","receiveMessage","iframeName","iframeRootName","formName","root","existingIframe","removeChild","iframe","createElement","appendChild","idocument","contentWindow","myform","hiddenField","submit","alert","doChallenge","localCreq","localExternalResourceUrl","localId","localStatus","localStatusDetail","localRedirectUrl","App","reload","captchaSiteKeyId","endpointCaptchaSiteKey","exact","component","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.23df0273.chunk.js","sourcesContent":["import React, {  useReducer, useEffect, createContext } from \"react\";\r\nlet reducer = ( validate, newValidate ) => {\r\n  return {...validate, ...newValidate}\r\n}\r\nconst intitialState = {\r\n  valid: false,\r\n  registeredAuctions: [],\r\n  idAuction: \"\",\r\n  nameAuction: \"\",\r\n  dateAuction: \"\",\r\n  palletAuction: \"\",\r\n  idPallet: \"\",\r\n}\r\nconst localState = JSON.parse(localStorage.getItem(\"dataContent\"));\r\nexport const DataContext = createContext();\r\n\r\nexport const DataProvider = ({ children }) => {\r\n  const [validate, setValidate] = useReducer(reducer,localState || intitialState);\r\n  useEffect(() => {\r\n    localStorage.setItem(\"dataContent\", JSON.stringify(validate));\r\n  }, [validate]);\r\n  return (\r\n    <DataContext.Provider\r\n      value={{\r\n        validate,\r\n        setValidate,\r\n      }}\r\n    >\r\n      {children}\r\n    </DataContext.Provider>\r\n  );\r\n};\r\n","let URLServices = null;\r\n\r\nconst getUrls = () => {\r\n  // Se asigna al sessionStorage desde App.js\r\n  URLServices = sessionStorage.getItem('URLServices');\r\n  if (URLServices) {\r\n    return JSON.parse(URLServices);\r\n  }\r\n  return null;\r\n};\r\n\r\nexport const ServiceLogin = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/login';\r\n  if (URLs && URLs.clients) {\r\n    let url = URLs.clients + PATH;\r\n    return url;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceClients = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceChangePassword = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/ChangePassword';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceContact = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Contact';\r\n  if (URLs && URLs.customers) {\r\n    let url = URLs.customers + PATH;\r\n    return url;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCarousel = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Auction/WebCatalog';\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\nexport const ServiceAuctionCustomerStatus = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/Auction/AuctionCustomerStatus/${id}`;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceAnnouncement = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Announcement';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceRequestPassword = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/RequestPasswordReset';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceValidateTokenPasswordReset = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/ValidateTokenPasswordReset';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceResetPasswordReset = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/ResetPassword';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceConfirmEmailNewUser = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/ConfirmEmailNewUser';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetCustomerInfo = () => {\r\n  const id = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/' + id;\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCatalog = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Lot/GetbyFilters';\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceLastCatalog = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Auction/LastCatalog';\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetCustomerAuctions = () => {\r\n  const id = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = '/Customer/Auctions/' + id;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetLastAuctions = () => {\r\n  const id = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = '/Customer/LastAuctions/' + id;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceAuctionById = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/Auction/${id}`;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceFavoritesGetById = (idAuction) => {\r\n  const URLs = getUrls();\r\n  const PATH = `Favorites/Auction/${idAuction}`;\r\n  if (URLs && URLs.auctionsClients) {\r\n    return URLs.auctionsClients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceFavoritesDeletetById = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `Favorites/Customer/${id}`;\r\n  if (URLs && URLs.auctionsClients) {\r\n    return URLs.auctionsClients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceFavoritesPost = () => {\r\n  const URLs = getUrls();\r\n  const PATH = `Favorites`;\r\n  if (URLs && URLs.auctionsClients) {\r\n    return URLs.auctionsClients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceValidationRegisterToken = (token, idAuction) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/ActnetCustomerToken/${token}/${idAuction}`;\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServicePaymentToken = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/ActnetPayment';\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServicePaymentTokenMercadoPago = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/MePagoPayment';\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetAddressShippingByIdCustomer = (idCustomer) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoAddress/Customer/${idCustomer}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetGeneralParameterById = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/GeneralParameters/${id}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetAddressBillingByIdCustomer = (idCustomer) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoFactura/Customer/${idCustomer}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCustomerInfoAddressShipping = () => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoAddress/`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCustomerInfoAddressBilling = () => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoFactura/`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCarouselStreaming = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Lot/GetCarouselbySp';\r\n  if (URLs && URLs.streaming) {\r\n    return URLs.streaming + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceBidsStreaming = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Lot/Bids';\r\n  if (URLs && URLs.streaming) {\r\n    return URLs.streaming + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetAwardsActive = (idCustomer) => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Auctions/Awards/' + idCustomer;\r\n  if (URLs && URLs.auctionsClients) {\r\n    return URLs.auctionsClients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetAwardsHistory = (idCustomer) => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Auctions/Awards/History/' + idCustomer;\r\n  if (URLs && URLs.auctionsClients) {\r\n    return URLs.auctionsClients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceAwardsStreaming = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Lot/Awards';\r\n  if (URLs && URLs.streaming) {\r\n    return URLs.streaming + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceInfoAddressShippingById = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoAddress/${id}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceInfoAddressShippingByCustomer = (idAddress) => {\r\n  const idCustomer = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoAddress/Customer/${idCustomer}/${idAddress}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceInfoAddressBillingById = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoFactura/${id}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceInfoAddressBillingByCustomer = (idAddress) => {\r\n  const idCustomer = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = `/CustomerInfoFactura/Customer/${idCustomer}/${idAddress}`;\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetByZipCode = (zipCode) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/ZipCode/GetByZipCode/${zipCode}`;\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetCountries = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Country/';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetCountriesISO = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Country/GetByIso';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetState = (idCountry) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/State/Country/${idCountry}`;\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetTown = (id) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/Town/State/${id}`;\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetCity = (idState, idTown) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/City/Town?idState=${idState}&idTown=${idTown}`;\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceConnectionSignalr = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/hubs/bidder';\r\n  if (URLs && URLs.bid) {\r\n    return URLs.bid + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceMakeBids = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/bid/makebid';\r\n  if (URLs && URLs.bid) {\r\n    return URLs.bid + PATH;\r\n  }\r\n  return '';\r\n};\r\nexport const ServiceGetCurrentBid = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Bid/GetCurrentBid';\r\n  if (URLs && URLs.bid) {\r\n    return URLs.bid + PATH;\r\n  }\r\n  return '';\r\n};\r\nexport const ServiceGetNextLotOffer = (idAuction, idLot, mont, elements) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/LotOffert/GetNextLotOffert/${idAuction}/${idLot}/${mont}/${elements}`;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServicePostMaxOfert = () => {\r\n  const URLs = getUrls();\r\n  const PATH = `/MaxOfert`;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceQuotationMail = () => {\r\n  const URLs = getUrls();\r\n  const PATH = 'Quotation/Quotation';\r\n  if (URLs && URLs.notification) {\r\n    return URLs.notification + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGenericParameters = (idParameter) => {\r\n  const URLs = getUrls();\r\n  const PATH = `/GenericParameter/${idParameter}`;\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceRefreshToken = (refreshToken) => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/RefreshToken/' + refreshToken;\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCheckOnToJoinStreming = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/AuctionClient/CheckOnToJoinStreming/';\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetOrdersByUser = () => {\r\n  const id = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/GetOrdersByUser?idUser=' + id;\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceAddOrder = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/AddOrder';\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceCompleteOrder = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/CompleteOrder';\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceClientData = () => {\r\n  const idCustomer = localStorage.getItem('id');\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/DataClient/' + idCustomer;\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceUpdateClientData = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/DataComplementaryClient';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceUpdateClientGeneralData = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Clients/DataGeneralClient';\r\n  if (URLs && URLs.clients) {\r\n    return URLs.clients + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceStatusClient = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/ClientStatus/GetAllClientStatus';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceNationality = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Nationality';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceEconomicActivity = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/EconomicActivity';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetOrderById = (idOrder) => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/GetOrderById?orderId=' + idOrder;\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceAddDirectSale = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/AddDirectSale';\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServicePaymentRetry = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Checkout/PaymentRetry';\r\n  if (URLs && URLs.checkout) {\r\n    return URLs.checkout + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceActnetPaymentValidate = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/ActnetPayment/validate';\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceMePagoPaymentValidate = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/MePagoPayment/validate';\r\n  if (URLs && URLs.customers) {\r\n    return URLs.customers + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetListBids = () => {\r\n  const URLs = getUrls();\r\n  const IdClient = localStorage.getItem('id');\r\n  const PATH = '/MaxOfert/GetListBids/'+IdClient;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const ServiceGetListBidsDetails = (IdAuction) => {\r\n  const URLs = getUrls();\r\n  const IdClient = localStorage.getItem('id');\r\n  const PATH = '/MaxOfert/GetListBidsDetails/' + IdClient + '/' + IdAuction;\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n}\r\n\r\nexport const ServiceLotCatalogByAuctionFilter = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/Lot/LotCatalogByAuctionFilter';\r\n  if (URLs && URLs.catalog) {\r\n    return URLs.catalog + PATH;\r\n  }\r\n  return '';\r\n}\r\n\r\nexport const ServiceAllianceCompany = () => {\r\n  const URLs = getUrls();\r\n  const PATH = '/AllianceCompany';\r\n  if (URLs && URLs.announcement) {\r\n    return URLs.announcement + PATH;\r\n  }\r\n  return '';\r\n};\r\n","export const getConfig = async (file) => {\r\n  const url = '/resources/Config/' + file;\r\n  const data = await fetch(url, {\r\n    headers: {\r\n      'Content-Type': 'application/json',\r\n      Accept: 'application/json',\r\n    },\r\n  })\r\n    .then((response) => {\r\n      return response.json();\r\n    })\r\n    .then((resp) => {\r\n      return resp;\r\n    });\r\n  return data;\r\n};\r\n","let Constants = null;\r\n\r\nconst getConstants = () => {\r\n  // Se asigna al sessionStorage desde el Header.jsx\r\n  Constants = sessionStorage.getItem(\"constants\");\r\n  if (Constants) {\r\n    return JSON.parse(Constants);\r\n  }\r\n  return null;\r\n};\r\n\r\nexport const getImgDefault = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.imgDefault) {\r\n    return Constants.imgDefault;\r\n  }\r\n  return \"/resources/imagenUnavailable.jpg\";\r\n};\r\n\r\nexport const getIdStreaming = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.idStreaming) {\r\n    return Constants.idStreaming;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getExecution = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.execution) {\r\n    return Constants.execution;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getIdGoldenMinutes = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.idGoldenMinutes) {\r\n    return Constants.idGoldenMinutes;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getIdPresential = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.idPresential) {\r\n    return Constants.idPresential;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getScheduled = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.scheduled) {\r\n    return Constants.scheduled;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getDirectSale = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.directSale) {\r\n    return Constants.directSale;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getPartialClosure = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.partialClosure) {\r\n    return Constants.partialClosure;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getPartialTotal = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.partialTotal) {\r\n    return Constants.partialTotal;\r\n  }\r\n  return \"\";\r\n};\r\n\r\n/*export const getAddresShipping = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.addresShipping) {\r\n    return Constants.addresShipping;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const getAddresBilling = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.addresBilling) {\r\n    return Constants.addresBilling;\r\n  }\r\n  return '';\r\n};*/\r\n\r\nexport const getCarouselTime = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.carouselTime) {\r\n    return Constants.carouselTime;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getStreamingToStart = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamingToStart) {\r\n    return Constants.streamingToStart;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getStreamingInPause = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamingInPause) {\r\n    return Constants.streamingInPause;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getStreamingInProcess = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamingInProcess) {\r\n    return Constants.streamingInProcess;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getStreamingEnded = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamingEnded) {\r\n    return Constants.streamingEnded;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getLimitShippingInvoice = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.limitShippingInvoice) {\r\n    return Constants.limitShippingInvoice;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getLimitShipping = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.limitShipping) {\r\n    return Constants.limitShipping;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getIdSystem = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.idSystem) {\r\n    return Constants.idSystem;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getReferenceObject = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.referenceObject) {\r\n    return Constants.referenceObject;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenStreaming = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.zipCodeOrigenStreaming) {\r\n    return Constants.zipCodeOrigenStreaming;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenMO = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.zipCodeOrigenMO) {\r\n    return Constants.zipCodeOrigenMO;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getZipCodeOrigenPresential = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.zipCodeOrigenPresential) {\r\n    return Constants.zipCodeOrigenPresential;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getAvailableLot = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.available) {\r\n    return Constants.available;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getRetiredLot = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.retired) {\r\n    return Constants.retired;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getAwardLot = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.award) {\r\n    return Constants.award;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getPaidLot = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.paid) {\r\n    return Constants.paid;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getPenaltyDays = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.penaltyDays) {\r\n    return Constants.penaltyDays;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getPenaltyDaysDefault = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.penaltyDaysDefault) {\r\n    return Constants.penaltyDaysDefault;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getDeliveryMail = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.deliveryMail) {\r\n    return Constants.deliveryMail;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getDeliveryOffice = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.deliveryOffice) {\r\n    return Constants.deliveryOffice;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getGuidEmpty = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.guidEmpty) {\r\n    return Constants.guidEmpty;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getLotPaymentLimit = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.lotPaymentLimit) {\r\n    return Constants.lotPaymentLimit;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getLotPaymentLimitDefault = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.lotPaymentLimitDefault) {\r\n    return Constants.lotPaymentLimitDefault;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getStreamPlayBackUrlQA = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamPlayBackUrlQA) {\r\n    return Constants.streamPlayBackUrlQA;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getStreamPlayBackUrlUAT = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.streamPlayBackUrlUAT) {\r\n    return Constants.streamPlayBackUrlUAT;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getUserRejectedStatus = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.userRejected) {\r\n    return Constants.userRejected;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getOrderPendingStatus = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.orderPending) {\r\n    return Constants.orderPending;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getOrderPendingPaymentStatus = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.orderPendingPayment) {\r\n    return Constants.orderPendingPayment;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getOrderCompletedStatus = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.orderCompletedStatus) {\r\n    return Constants.orderCompletedStatus;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getnoteCancelled = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.noteCancelled) {\r\n    return Constants.noteCancelled;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getBillPocketID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.billPocket) {\r\n    return Constants.billPocket;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getactnetID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.actnet) {\r\n    return Constants.actnet;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getMercadoPagoId = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants[\"mercadoPago\"]) {\r\n    return Constants[\"mercadoPago\"];\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getActivateMessagingID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.activateMessaging) {\r\n    return Constants.activateMessaging;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getDeliveryLimitID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.deliveryLimit) {\r\n    return Constants.deliveryLimit;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getWarrantyID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.warranty) {\r\n    return Constants.warranty;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getPaymentBillPocketID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.paymentBillPocket) {\r\n    return Constants.paymentBillPocket;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getPriceFilterID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.priceFilterID) {\r\n    return Constants.priceFilterID;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getBillingUrl = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.billing) {\r\n    return Constants.billing;\r\n  }\r\n  return \"\";\r\n};\r\nexport const getDiamondUrl = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.diamond) {\r\n    return Constants.diamond;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getDisableCheckoutMessageID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.idDisableCheckoutMessage) {\r\n    return Constants.idDisableCheckoutMessage;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getMessageInsuranceID = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants.messageInsuranceID) {\r\n    return Constants.messageInsuranceID;\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getMercadoPagoPublicKey = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants[\"idMercadoPagoPublicKey\"]) {\r\n    return Constants[\"idMercadoPagoPublicKey\"];\r\n  }\r\n  return \"\";\r\n};\r\n\r\nexport const getCaptchaSiteKeyId = () => {\r\n  Constants = getConstants();\r\n  if (Constants && Constants[\"captchaSiteKeyId\"]) {\r\n    return Constants[\"captchaSiteKeyId\"];\r\n  }\r\n  return \"\";\r\n};\r\n","/* eslint-disable no-useless-escape */\r\n/* eslint-disable no-undef */\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport axios from 'axios';\r\nimport { getMercadoPagoPublicKey } from '../../helpers/getConstants'\r\nimport { ServiceGenericParameters } from '../../helpers/getURL'\r\nimport { GET } from '../../helpers/APIServices'\r\nimport { initMercadoPago } from '@mercadopago/sdk-react'\r\n\r\nexport const CloseModal = (elementID) => {\r\n  const modal = document.getElementById(elementID);\r\n  const modalBootstrap = bootstrap.Modal.getInstance(modal);\r\n  if (modalBootstrap) {\r\n    modalBootstrap.hide();\r\n  }\r\n  const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n  for (let i = 0; i < backdrops; i++) {\r\n    document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n  }\r\n};\r\n\r\nexport const OpenModal = (elementID) => {\r\n  const modal = document.getElementById(elementID);\r\n  const modalBootstrap = new bootstrap.Modal(modal);\r\n  modalBootstrap.toggle();\r\n};\r\n\r\nexport const CloseAllModal = () => {\r\n  const modals = document.getElementsByClassName('modal show');\r\n  for (let i = 0; i < modals.length; i++) {\r\n    let modalBootstrap = bootstrap.Modal.getInstance(modals[i]);\r\n    if (modalBootstrap) {\r\n      modalBootstrap.hide();\r\n    }\r\n  }\r\n  const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n  for (let i = 0; i < backdrops; i++) {\r\n    document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n  }\r\n};\r\n\r\nexport const OpenMessage = (type, messageService, contact = false, messageSubText = null) => {\r\n  let dataMessage = getConfig('messages.json').then((data) => {\r\n    switch (type) {\r\n      case 'success':\r\n        return data.success;\r\n      case 'warning':\r\n        return data.warning;\r\n      case 'error':\r\n        return data.error;\r\n      case 'confirm':\r\n        return data.confirm;\r\n      default:\r\n        return null;\r\n    }\r\n  });\r\n\r\n  dataMessage.then((data) => {\r\n    const { message, icon, text, text2, button } = data;\r\n    let messageType = 'message-' + type + ' ' + icon;\r\n    const arrIcon = messageType.split(' ');\r\n    document.getElementById('headerTitle').innerHTML = message;\r\n    switch (type) {\r\n      case 'success':\r\n        document\r\n          .getElementById('messageType')\r\n          .classList.remove('message-error', 'fas', 'fa-times', 'message-warning', 'fa-exclamation-circle', 'message-confirm');\r\n        document.getElementById('buttonClose').classList.remove('btn-outline-warning', 'btn-outline-danger', 'btn-outline-dark');\r\n        break;\r\n      case 'error':\r\n        document\r\n          .getElementById('messageType')\r\n          .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'fa-exclamation-circle', 'message-confirm');\r\n        document.getElementById('buttonClose').classList.remove('btn-outline-dark', 'btn-outline-warning', 'btn-outline-success');\r\n        break;\r\n      case 'warning':\r\n        document\r\n          .getElementById('messageType')\r\n          .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'message-error', 'fa-times', 'message-confirm');\r\n        document.getElementById('buttonClose').classList.add('btn-outline-dark', 'btn-outline-success', 'btn-outline-error');\r\n        break;\r\n      case 'confirm':\r\n        document\r\n          .getElementById('messageType')\r\n          .classList.remove('message-success', 'fas', 'fa-check-circle', 'message-warning', 'message-error', 'fa-times');\r\n        document.getElementById('buttonClose').classList.add('btn-outline-warning', 'btn-outline-success', 'btn-outline-error');\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n\r\n    arrIcon.forEach((element) => {\r\n      document.getElementById('messageType').classList.add(element);\r\n    });\r\n\r\n    document.getElementById('messageText').innerHTML = messageService ? messageService : text;\r\n    if (messageSubText) {\r\n      document.getElementById('messageSubText').innerHTML = messageSubText;\r\n    }\r\n    document.getElementById('messageContact').innerHTML = contact ? 'subastas@montepio.org.mx' : '';\r\n\r\n    const messageText2 = document.getElementById('messageText2');\r\n    text2 ? (messageText2.innerHTML = text2) : (messageText2.style = 'display:none');\r\n\r\n    document.getElementById('buttonClose').classList.add(button);\r\n\r\n    const modal = new bootstrap.Modal(document.getElementById('modalMessage'), {});\r\n    modal.toggle();\r\n  });\r\n};\r\n\r\nexport const OpenStreamingRegisterMessage = () => {\r\n  const modal = new bootstrap.Modal(document.getElementById('modalStreamingReisterMesage'), {});\r\n  modal.toggle();\r\n};\r\n\r\nexport const OpenOfferSuccess = (message, redirectHome = true) => {\r\n  document.getElementById('textMessageSection').innerHTML = message;\r\n  document.getElementById('redirectHome').value = redirectHome;\r\n  const modal = new bootstrap.Modal(document.getElementById('modalOfferSuccess'), {});\r\n  modal.toggle();\r\n};\r\nexport const OpenCloseStreaming = () => {\r\n  const modal = new bootstrap.Modal(document.getElementById('modalCloseStreaming'), {});\r\n  modal.toggle();\r\n};\r\nexport const OpenWaitNextAuction = () => {\r\n  const modal = new bootstrap.Modal(document.getElementById('modalWaitNextAuction'), {});\r\n  modal.toggle();\r\n};\r\nexport const OpenDeclineClient = () => {\r\n  const modal = new bootstrap.Modal(document.getElementById('modalDeclineClient'), {});\r\n  modal.toggle();\r\n};\r\nexport const verifyFieldsRequerid = (elements) => {\r\n  let error = false;\r\n  elements.forEach((id) => {\r\n    let element = document.getElementById(id);\r\n    if (!element.value.trim()) {\r\n      error = true;\r\n      element.classList.add('is-invalid');\r\n    } else {\r\n      element.classList.remove('is-invalid');\r\n    }\r\n  });\r\n  if (error) {\r\n    return false;\r\n  }\r\n  return true;\r\n};\r\n\r\nexport const validEmail = (email) => {\r\n  const regex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\n  const valid = regex.test(email);\r\n  if (!valid) {\r\n    return false;\r\n  }\r\n  return true;\r\n};\r\n\r\n//FORMATO: dd/mm/aaaa\r\nexport const validDate = (date) => {\r\n  const regex =\r\n    /^(?:(?:(?:0?[1-9]|1\\d|2[0-8])[/](?:0?[1-9]|1[0-2])|(?:29|30)[/](?:0?[13-9]|1[0-2])|31[/](?:0?[13578]|1[02]))[/](?:0{2,3}[1-9]|0{1,2}[1-9]\\d|0?[1-9]\\d{2}|[1-9]\\d{3})|29[/]0?2[/](?:\\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$/;\r\n  const valid = regex.test(date);\r\n  if (!valid) {\r\n    return false;\r\n  }\r\n  return true;\r\n};\r\n\r\nexport const restoreInputs = (inputs) => {\r\n  inputs.forEach((id) => {\r\n    let element = document.getElementById(id);\r\n    element.classList.remove('active');\r\n    element.classList.remove('is-invalid');\r\n  });\r\n};\r\n\r\nexport const validRFC = (input, esFiscoMoral) => {\r\n  let rfc = input.value;\r\n  if (rfc === '') {\r\n    OpenMessage('warning', 'El RFC no tiene un formato válido');\r\n    return false;\r\n  }\r\n\r\n  input.classList.remove('is-invalid');\r\n  rfc = rfc.replace(/\\-/g, '');\r\n\r\n  if (esFiscoMoral && rfc.match(/^([A-Z]{3}[0-9]{6}[A-Z0-9]{3})$/i)) {\r\n    return true;\r\n  } else if (!esFiscoMoral && rfc.match(/^([A-Z]{4}[0-9]{6}[A-Z0-9]{3})$/i)) {\r\n    return true;\r\n  }\r\n\r\n  input.classList.add('is-invalid');\r\n\r\n  OpenMessage('warning', 'El RFC no tiene un formato válido');\r\n  return false;\r\n};\r\n\r\nexport const validPassword = (value) => {\r\n  let msg = '';\r\n  if (value.length < 8) {\r\n    msg = 'La contraseña debe contar con 8 caracteres como mínimo';\r\n  } else if (value.search(/[A-Z]/) < 0) {\r\n    msg = 'La contraseña debe de tener al menos una mayúscula';\r\n  } else if (value.search(/[a-z]/) < 0) {\r\n    msg = 'La contraseña debe de tener al menos una minúscula';\r\n  } else if (value.search(/[0-9]/) < 0) {\r\n    msg = 'La contraseña debe de tener al menos un dígito del 0 al 9';\r\n  } else if (value.search(/[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?¿~]/) < 0) {\r\n    msg = 'La contraseña debe de tener al menos un caracter especial';\r\n  }\r\n  return msg;\r\n};\r\n\r\nexport const validSession = () => {\r\n  const token = localStorage.getItem('token');\r\n  if (token) {\r\n    setSession(true, token);\r\n    return true;\r\n  }\r\n  setSession(false, '');\r\n  return false;\r\n};\r\n\r\nexport const setSession = (open, data) => {\r\n  let items = document.getElementsByClassName('container__users--item');\r\n  let login = document.getElementsByClassName('container__users--login');\r\n  let loginMobile = document.getElementsByClassName('loginMobile');\r\n  let itemsMobile = document.getElementsByClassName('loginMobile--items');\r\n  let userName = document.getElementById('userName');\r\n  let userNameMobile = document.getElementById('userName2');\r\n  let add = '';\r\n  let remove = '';\r\n\r\n  if (open) {\r\n    if (data && data.token) {\r\n      localStorage.setItem('id', data.id);\r\n      localStorage.setItem('token', data.token); //Se hace una actualizacion en APIServices\r\n      localStorage.setItem('userName', data.name);\r\n      localStorage.setItem('auctions', data.auctions);\r\n      localStorage.setItem('refreshToken', data.refreshToken); //Se hace una actualizacion en APIServices\r\n      localStorage.setItem('expiration', data.expiration); //Se hace una actualizacion en APIServices\r\n      localStorage.setItem('expirationRefresh', data.expirationRefresh);\r\n      //tambien se asigna en ReceivePayToken y RegisterToOffer\r\n      localStorage.setItem('IdPalleteVIP', (data.idPalleteVIP !== null && data.idPalleteVIP !== undefined) ? data.idPalleteVIP: '' );\r\n    }\r\n    if (userName) {\r\n      userName.innerHTML = localStorage.getItem('userName');\r\n      userNameMobile.innerHTML = localStorage.getItem('userName');\r\n    }\r\n    add = 'hide';\r\n    remove = 'show';\r\n\r\n    const mercadoPagoPublicKey = localStorage.getItem('MercadoPagoPublicKey')\r\n    if (!mercadoPagoPublicKey) {\r\n      const idMercadoPagoPublicKey = getMercadoPagoPublicKey();\r\n      const endpointMercadoPagoPublicKey = ServiceGenericParameters(idMercadoPagoPublicKey);\r\n      GET(endpointMercadoPagoPublicKey).then((data) => {\r\n        if (data && data.value) {\r\n          localStorage.setItem('MercadoPagoPublicKey', data.value);\r\n          initMercadoPago(data.value, {locale: \"es-MX\"});\r\n        }\r\n      });\r\n    }\r\n    else {\r\n      initMercadoPago(mercadoPagoPublicKey, {locale: \"es-MX\"});\r\n    }\r\n\r\n  } else {\r\n    localStorage.clear();\r\n    if (userName) {\r\n      userName.innerHTML = '';\r\n      userNameMobile.innerHTML = '';\r\n    }\r\n    add = 'show';\r\n    remove = 'hide';\r\n  }\r\n  items.forEach((element) => {\r\n    element.classList.add(add);\r\n    element.classList.remove(remove);\r\n  });\r\n\r\n  login.forEach((element) => {\r\n    element.classList.add(add === 'show' ? 'hide' : 'show');\r\n    element.classList.remove(remove === 'hide' ? 'show' : 'hide');\r\n  });\r\n\r\n  loginMobile.forEach((element) => {\r\n    element.classList.add(add);\r\n    element.classList.remove(remove);\r\n  });\r\n\r\n  itemsMobile.forEach((element) => {\r\n    element.classList.add(add === 'show' ? 'hide' : 'show');\r\n    element.classList.remove(remove === 'hide' ? 'show' : 'hide');\r\n  });\r\n};\r\n\r\n//Establece el minimo, maximo de un campo de tipo fecha\r\nexport const setMinMaxDate = (id) => {\r\n  let element = document.getElementById(id);\r\n  if (element) {\r\n    const currentDate = new Date();\r\n    let currentMonth = currentDate.getMonth();\r\n    if (currentMonth < 10) {\r\n      currentMonth = '0' + currentDate.getMonth();\r\n    }\r\n    let currentDay = currentDate.getDate();\r\n    if (currentDay < 10) {\r\n      currentDay = '0' + currentDate.getDate();\r\n    }\r\n    const dateMax = currentDate.getFullYear() - 18 + '-' + currentMonth + '-' + currentDay;\r\n    element.setAttribute('min', currentDate.getFullYear() - 100 + '-01-01');\r\n    element.setAttribute('max', dateMax);\r\n    return dateMax;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const validMinMaxDate = (id) => {\r\n  let element = document.getElementById(id);\r\n  if (element) {\r\n    let limitDate = new Date();\r\n    limitDate.setFullYear(limitDate.getFullYear() - 18);\r\n    const date = new Date(element.value);\r\n    const minDate = new Date(element.min);\r\n    const maxDate = new Date(limitDate);\r\n    if (date >= minDate && date <= maxDate) {\r\n      return true;\r\n    }\r\n  }\r\n  return false;\r\n};\r\n\r\nexport const onlyText = (event) => {\r\n  let element = document.getElementById(event.target.id);\r\n  if (element) {\r\n    element.value = element.value.replace(/[^a-zA-Z\\s\\u00f1\\u00d1]/g, '').replace(/(\\..*)\\./g, '$1');\r\n  }\r\n};\r\n\r\nexport const onlyMail = (event) => {\r\n  let element = document.getElementById(event.target.id);\r\n  if (element) {\r\n    element.value = element.value.replace(/[^a-zA-Z0-9@_.-]/g, '');\r\n  }\r\n};\r\n\r\nexport const onlyNumber = (event) => {\r\n  let element = document.getElementById(event.target.id);\r\n  if (element) {\r\n    element.value = element.value.replace(/[^0-9]/g, '');\r\n  }\r\n};\r\n//texto, numeros, espacio en blanco y guion medio\r\nexport const onlyTextNumber = (event) => {\r\n  let element = document.getElementById(event.target.id);\r\n  if (element) {\r\n    element.value = element.value.replace(/[^a-zA-Z0-9\\u00f1\\u00d1\\s.-]/g, '');\r\n  }\r\n};\r\n\r\n//texto y numeros\r\nexport const onlyTextNumber2 = (event) => {\r\n  let element = document.getElementById(event.target.id);\r\n  if (element) {\r\n    element.value = element.value.replace(/[^a-zA-Z0-9\\u00f1\\u00d1]/g, '');\r\n  }\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01 junio 2021 | 03:51 AM\r\nexport const convertToDate = (value) => {\r\n  const monthNames = [\r\n    'Enero',\r\n    'Febrero',\r\n    'Marzo',\r\n    'Abril',\r\n    'Mayo',\r\n    'Junio',\r\n    'Julio',\r\n    'Agosto',\r\n    'Septiembre',\r\n    'Octubre',\r\n    'Noviembre',\r\n    'Diciembre',\r\n  ];\r\n  const d = new Date(value);\r\n  let hours = d.getHours();\r\n  let minutes = d.getMinutes();\r\n  let meridiem = 'A.M.';\r\n  if (hours >= 12) {\r\n    meridiem = 'P.M.';\r\n  }\r\n  if (hours > 12) {\r\n    hours -= 12;\r\n  }\r\n  if (hours === 0) {\r\n    hours = 1;\r\n  }\r\n  if (hours <= 9) {\r\n    hours = '0' + hours;\r\n  }\r\n  if (minutes <= 9) {\r\n    minutes = '0' + minutes;\r\n  }\r\n  return d.getDate() + ' ' + monthNames[d.getMonth()] + ' ' + d.getFullYear() + ' | ' + hours + ':' + minutes + ' ' + meridiem;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01 junio 2021 | 03:51 AM\r\nexport const convertToDatePenaltyDay = (value, days) => {\r\n  const monthNames = [\r\n    'Enero',\r\n    'Febrero',\r\n    'Marzo',\r\n    'Abril',\r\n    'Mayo',\r\n    'Junio',\r\n    'Julio',\r\n    'Agosto',\r\n    'Septiembre',\r\n    'Octubre',\r\n    'Noviembre',\r\n    'Diciembre',\r\n  ];\r\n  let d = new Date(value);\r\n  d.setDate(d.getDate() + days);\r\n  let hours = d.getHours();\r\n  let minutes = d.getMinutes();\r\n  let meridiem = 'A.M.';\r\n  if (hours >= 12) {\r\n    meridiem = 'P.M.';\r\n  }\r\n  if (hours > 12) {\r\n    hours -= 12;\r\n  }\r\n  if (hours === 0) {\r\n    hours = 1;\r\n  }\r\n  if (hours <= 9) {\r\n    hours = '0' + hours;\r\n  }\r\n  if (minutes <= 9) {\r\n    minutes = '0' + minutes;\r\n  }\r\n  return d.getDate() + ' ' + monthNames[d.getMonth()] + ' ' + d.getFullYear() + ' | ' + hours + ':' + minutes + ' ' + meridiem;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 01/06/2021\r\nexport const convertToDateWithTime = (value) => {\r\n  const d = new Date(value);\r\n  let month = d.getMonth() + 1;\r\n  if (month < 10) {\r\n    month = '0' + month;\r\n  }\r\n  return d.getDate() + '/' + month + '/' + d.getFullYear();\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 2021-06-01\r\nexport const convertToDateFormatEnglish = (value) => {\r\n  const d = new Date(value);\r\n  let month = d.getMonth() + 1;\r\n  let day = d.getDate();\r\n  if (month < 10) {\r\n    month = '0' + month;\r\n  }\r\n  if (day < 10) {\r\n    day = '0' + day;\r\n  }\r\n  return d.getFullYear() + '-' + month + '-' + day;\r\n};\r\n\r\n//Entrada: 2021-06-01T03:51:00\r\n//Salida: 03:51:00 AM\r\nexport const convertToTime = (value) => {\r\n  const d = new Date(value);\r\n  let hours = d.getHours();\r\n  let minutes = d.getMinutes();\r\n  let seconds = d.getSeconds();\r\n  let meridiem = 'A.M.';\r\n  if (hours >= 12) {\r\n    meridiem = 'P.M.';\r\n  }\r\n  if (hours <= 9) {\r\n    hours = '0' + hours;\r\n  }\r\n  if (minutes <= 9) {\r\n    minutes = '0' + minutes;\r\n  }\r\n  if (seconds <= 9) {\r\n    seconds = '0' + seconds;\r\n  }\r\n  return hours + ':' + minutes + ':' + seconds + ' ' + meridiem;\r\n};\r\n\r\nexport const cancelHref = (event) => {\r\n  event.preventDefault();\r\n  return false;\r\n};\r\n\r\nexport const changePasswordText = (id, event) => {\r\n  let element = document.getElementById(id);\r\n  if (element) {\r\n    const type = element.getAttribute('type') === 'password' ? 'text' : 'password';\r\n    event.target.attributes.class.nodeValue = type === 'password' ? 'fas fa-eye-slash' : 'fas fa-eye';\r\n    element.setAttribute('type', type);\r\n  }\r\n};\r\n\r\nexport const setAttributePassword = (id) => {\r\n  let element = document.getElementById(id);\r\n  if (element) {\r\n    element.setAttribute('type', 'password');\r\n  }\r\n};\r\n\r\nexport const formatCurrency = (value) => {\r\n  const options = { style: 'currency', currency: 'USD' };\r\n  const numberFormat = new Intl.NumberFormat('en-US', options);\r\n  if (isNaN(value)) {\r\n    value = 0;\r\n  }\r\n  return numberFormat.format(value);\r\n};\r\n\r\nexport const capitalize = (value) => {\r\n  if (!value) {\r\n    return '';\r\n  }\r\n  let string = '';\r\n  let letter = value.split(' ');\r\n  for (let i = 0; i < letter.length; i++) {\r\n    string += letter[i].charAt(0).toUpperCase() + letter[i].slice(1).toLowerCase() + ' ';\r\n  }\r\n  return string.trim();\r\n};\r\n\r\nexport const setCart = (lote) => {\r\n  let cart = JSON.parse(localStorage.getItem('cart'));\r\n  if (!cart) {\r\n    cart = [];\r\n  }\r\n  if (\r\n    cart.filter((item) => {\r\n      return item.IdLot === lote.IdLot;\r\n    }).length === 0\r\n  )\r\n    localStorage.setItem('cart', JSON.stringify([...cart, lote]));\r\n};\r\nexport const pullCart = (lote) => {\r\n  let cart = JSON.parse(localStorage.getItem('cart'));\r\n  if (!cart) {\r\n    cart = [];\r\n  }\r\n  cart = cart.filter((item) => {\r\n    return item.IdLot !== lote.IdLot;\r\n  });\r\n  localStorage.setItem('cart', JSON.stringify(cart));\r\n};\r\n\r\nexport const getCart = () => {\r\n  let cart = JSON.parse(localStorage.getItem('cart'));\r\n  if (!cart) {\r\n    cart = [];\r\n  }\r\n  return cart;\r\n};\r\n\r\nexport const resetRadios = (name) => {\r\n  let element = document.getElementsByName(name);\r\n  if (element && element.length > 0) {\r\n    for (let i = 0; i < element.length; i++) {\r\n      element[i].checked = false;\r\n    }\r\n  }\r\n};\r\n\r\nexport const closeMenuMobile = () => {\r\n  const menu = document.getElementById('menu');\r\n  const open = menu.classList.contains('show');\r\n  if (open) {\r\n    const element = document.getElementById('navbarMenu');\r\n    if (element) {\r\n      element.click();\r\n    }\r\n  }\r\n};\r\n\r\n//Solo valida un formato general, sin digito verificador\r\nexport const validCURP = (inputCURP) => {\r\n  let curp = inputCURP.value;\r\n  if (curp === '') {\r\n    OpenMessage('warning', 'El CURP no tiene un formato válido');\r\n    return false;\r\n  }\r\n\r\n  inputCURP.classList.remove('is-invalid');\r\n  curp = curp.replace(/\\-/g, '');\r\n\r\n  const expReg =\r\n    /^([A-Z][AEIOUX][A-Z]{2}\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])[HM](?:AS|B[CS]|C[CLMSH]|D[FG]|G[TR]|HG|JC|M[CNS]|N[ETL]|OC|PL|Q[TR]|S[PLR]|T[CSL]|VZ|YN|ZS)[B-DF-HJ-NP-TV-Z]{3}[A-Z\\d])(\\d)$/;\r\n  const valid = curp.match(expReg);\r\n\r\n  if (!valid) {\r\n    inputCURP.classList.add('is-invalid');\r\n    OpenMessage('warning', 'El CURP no tiene un formato válido');\r\n    return false;\r\n  }\r\n  return true;\r\n};\r\n\r\n//Verifica la fecha de expiracion del token\r\n//se comenta la funcion, se esta viendo otra forma de validar el TOKEN\r\n/*export const validDateExpire = () => {\r\n  const expiration = localStorage.getItem('expiration');\r\n  if (!expiration) {\r\n    return -1;\r\n  }\r\n\r\n  const dateExp = new Date(expiration);\r\n  const currentDate = new Date();\r\n\r\n  const date1utc = Date.UTC(dateExp.getFullYear(), dateExp.getMonth(), dateExp.getDate());\r\n  const date2utc = Date.UTC(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());\r\n  const day = 86400000; //milisegundos\r\n  const differenceDays = (date2utc - date1utc) / day;\r\n  if (differenceDays !== 0) {\r\n    //0 = mismo dia\r\n    return -1;\r\n  }\r\n\r\n  const hours = dateExp.getHours() - currentDate.getHours();\r\n  if (hours < 0) {\r\n    //excede la hora\r\n    return -1;\r\n  }\r\n  const minutes = dateExp.getMinutes() - currentDate.getMinutes();\r\n  if (hours === 0 && minutes <= 0) {\r\n    //excede los minutos\r\n    return -1;\r\n  }\r\n  return 0;\r\n};*/\r\n\r\nexport const CloseBackdrops = () => {\r\n  const backdrops = document.getElementsByClassName('modal-backdrop fade show').length;\r\n  for (let i = 0; i < backdrops; i++) {\r\n    document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n  }\r\n};\r\n\r\nexport const ResetStyleBody = () => {\r\n  document.getElementsByTagName('body')[0].style = '';\r\n};\r\n\r\nexport const getIP = async () => {\r\n  const response = await axios.get('https://api.ipify.org?format=json');\r\n  if (response && response.data && response.data.ip) {\r\n    return response.data.ip;\r\n  }\r\n  return '';\r\n};\r\n\r\nexport const addFieldsRequerid = (id) => {\r\n  let element = document.getElementById(id);\r\n  element.classList.add('is-invalid');\r\n};\r\n\r\n//obliga a tener el label arriba del input\r\nexport const verifyInputField = (container) => {\r\n  const element = document.getElementById(container);\r\n  if (element) {\r\n    new mdb.Input(element).update();\r\n  }\r\n};\r\n\r\nconst removeArt = (word) => {\r\n  return word.replace('DEL ', '').replace('LAS ', '').replace('DE ', '').replace('LA ', '').replace('Y ', '').replace('A ', '');\r\n};\r\nconst isVowel = (letter) => {\r\n  if (letter === 'A' || letter === 'E' || letter === 'I' || letter === 'O' || letter === 'U') return true;\r\n  else return false;\r\n};\r\n\r\n//Calcula el RFC/CURP sin homoclave\r\n//birthDay YYYY-mm-dd\r\nexport const calcRFC = (name, lastName, secondLastName, birthDay) => {\r\n  name = name.toUpperCase();\r\n  lastName = lastName.toUpperCase();\r\n  secondLastName = secondLastName.toUpperCase();\r\n  birthDay = birthDay.toUpperCase();\r\n\r\n  let rfc = '';\r\n  lastName = removeArt(lastName);\r\n  secondLastName = removeArt(secondLastName);\r\n\r\n  if (lastName.length === 0) {\r\n    return '';\r\n  }\r\n\r\n  rfc = lastName.substr(0, 1);\r\n  let c;\r\n  for (let i = 0; i < lastName.length; i++) {\r\n    c = lastName.charAt(i);\r\n    if (isVowel(c)) {\r\n      rfc += c;\r\n      break;\r\n    }\r\n  }\r\n\r\n  if (secondLastName.length === 0) {\r\n    return rfc;\r\n  }\r\n  rfc += secondLastName.substr(0, 1);\r\n\r\n  if (name.length === 0) {\r\n    return rfc;\r\n  }\r\n  rfc += name.substr(0, 1);\r\n\r\n  if (birthDay.length === 0) {\r\n    return rfc;\r\n  }\r\n  rfc += birthDay.substr(2, 2); //YY\r\n  rfc += birthDay.substr(5, 2); //mm\r\n  rfc += birthDay.substr(8, 5); //dd\r\n  return rfc;\r\n};\r\n\r\nexport const validDataComplementary = (clientData) => {\r\n  let GeneralData = [\r\n    'customerName',\r\n    'customerLastname',\r\n    'customerSecondLastname',\r\n    'customerBirthday',\r\n    'customerCURP',\r\n    'customerRFC',\r\n    'customerNationalityId',\r\n  ];\r\n  let ContactData = ['country', 'idState', 'idTown', 'idCity', 'street', 'zipCode', 'number', 'phoneNumber', 'email'];\r\n  let EconomicActivityData = ['idActEconomica', 'idPais'];\r\n  let contador = 0;\r\n  for (let key in clientData) {\r\n    if (key === 'customerGeneralData') {\r\n      for (let customerGeneralData in clientData[key]) {\r\n        let campo = GeneralData.find((item) => {\r\n          return item === customerGeneralData;\r\n        });\r\n        if (campo) {\r\n          if (!clientData[key][customerGeneralData]) {\r\n            contador++;\r\n          }\r\n        }\r\n      }\r\n    }\r\n    if (key === 'customerContactData') {\r\n      for (let customerContactData in clientData[key]) {\r\n        let campo = ContactData.find((item) => {\r\n          return item === customerContactData;\r\n        });\r\n        if (campo) {\r\n          if (!clientData[key][customerContactData] && !clientData[key][customerContactData] !== '') {\r\n            contador++;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    if (key === 'customerEconomicActivity') {\r\n      for (let customerEconomicActivity in clientData[key]) {\r\n        let campo = EconomicActivityData.find((item) => {\r\n          return item === customerEconomicActivity;\r\n        });\r\n        if (campo) {\r\n          if (!clientData[key][customerEconomicActivity]) {\r\n            contador++;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n  return contador;\r\n};\r\n","import { HubConnectionBuilder } from '@microsoft/signalr';\r\nimport { setSession, OpenMessage, CloseAllModal } from '../components/Utilities/General';\r\nimport { ServiceRefreshToken } from './getURL';\r\n\r\nexport const showLoading = () => {\r\n  let loading = document.getElementById('loading');\r\n  if (loading) {\r\n    loading.classList.remove('hide');\r\n    loading.classList.add('show');\r\n  }\r\n};\r\n\r\nexport const hideLoading = () => {\r\n  let loading = document.getElementById('loading');\r\n  if (loading) {\r\n    loading.classList.remove('show');\r\n    loading.classList.add('hide');\r\n  }\r\n};\r\n\r\nexport const refreshToken = async () => {\r\n  const Token = localStorage.getItem('refreshToken');\r\n  let url = ServiceRefreshToken(Token);\r\n  if (!Token) {\r\n    return 0;\r\n  }\r\n\r\n  const data = await fetch(url, {\r\n    method: 'POST',\r\n    headers: {\r\n      Accept: 'application/json',\r\n      'Access-Control-Allow-Origin': '*',\r\n      'Content-Type': 'application/json',\r\n    },\r\n  })\r\n    .then((response) => {\r\n      return response.json();\r\n    })\r\n    .catch((resp) => {\r\n      return resp;\r\n    });\r\n\r\n  if (data && data !== 'Refresh Token inválido') {\r\n    //TODO: decirle al menso del back que regrese false\r\n    const id = localStorage.getItem('id');\r\n    if (id) {\r\n      const expirationRefresh = localStorage.getItem('expirationRefresh');\r\n      localStorage.setItem('token', data.token);\r\n      localStorage.setItem('refreshToken', data.refreshToken);\r\n      localStorage.setItem('expiration', expirationRefresh);\r\n    }\r\n    return 1;\r\n  }\r\n  return 2;\r\n};\r\n\r\nexport const POST = async (url, params) => {\r\n  showLoading();\r\n  const token = localStorage.getItem('token');\r\n  params = JSON.stringify(params);\r\n  const data = await fetch(url, {\r\n    method: 'POST',\r\n    headers: {\r\n      Accept: 'application/json',\r\n      'Access-Control-Allow-Origin': '*',\r\n      'Content-Type': 'application/json',\r\n      Authorization: 'Bearer ' + token,\r\n    },\r\n    body: params,\r\n  })\r\n    .then((response) => {\r\n      return response.json();\r\n    })\r\n    .catch((resp) => {\r\n      return resp;\r\n    });\r\n  hideLoading();\r\n  return data;\r\n};\r\n\r\nexport const GET = async (url) => {\r\n  if (!url) {\r\n    return '';\r\n  }\r\n  const token = localStorage.getItem('token');\r\n\r\n  showLoading();\r\n  const data = await fetch(url, {\r\n    method: 'GET',\r\n    headers: {\r\n      Accept: 'application/json',\r\n      'Access-Control-Allow-Origin': '*',\r\n      'Content-Type': 'application/json',\r\n      Authorization: 'Bearer ' + token,\r\n    },\r\n  })\r\n    .then((response) => {\r\n      if (response.status === 401) {\r\n        return refreshToken().then((token) => {\r\n          if (token === 1) {\r\n            //window.location.reload();\r\n            return '401';\r\n          } else if (token === 2) {\r\n            setSession(false, '');\r\n            CloseAllModal();\r\n            OpenMessage('warning', 'Su sesión ha expirado, favor de ingresar nuevamente sus credenciales');\r\n            setTimeout(function () {\r\n              window.location.href = './?home=true';\r\n            }, 4000);\r\n            return '';\r\n          }\r\n        });\r\n      } else if (response.ok) {\r\n        return response.json();\r\n      }\r\n      return '';\r\n    })\r\n    .catch((resp) => {\r\n      return resp;\r\n    });\r\n  hideLoading();\r\n  return data;\r\n};\r\n\r\nexport const PUT = async (url, params) => {\r\n  const token = localStorage.getItem('token');\r\n  showLoading();\r\n  params = JSON.stringify(params);\r\n  const data = await fetch(url, {\r\n    method: 'PUT',\r\n    headers: {\r\n      Accept: 'application/json',\r\n      'Access-Control-Allow-Origin': '*',\r\n      'Content-Type': 'application/json',\r\n      Authorization: 'Bearer ' + token,\r\n    },\r\n    body: params,\r\n  })\r\n    .then((response) => {\r\n      return response.json();\r\n    })\r\n    .catch((resp) => {\r\n      return resp;\r\n    });\r\n  hideLoading();\r\n  return data;\r\n};\r\n\r\nexport const DELETE = async (url, params) => {\r\n  const token = localStorage.getItem('token');\r\n  showLoading();\r\n  params = JSON.stringify(params);\r\n  const data = await fetch(url, {\r\n    method: 'DELETE',\r\n    headers: {\r\n      Accept: 'application/json',\r\n      'Access-Control-Allow-Origin': '*',\r\n      'Content-Type': 'application/json',\r\n      Authorization: 'Bearer ' + token,\r\n    },\r\n    body: params,\r\n  })\r\n    .then((response) => {\r\n      return response.json();\r\n    })\r\n    .catch((resp) => {\r\n      return resp;\r\n    });\r\n  hideLoading();\r\n  return data;\r\n};\r\n\r\nexport const ConnectionSignalr = (url) => {\r\n  const newConnection = new HubConnectionBuilder().withUrl(url).withAutomaticReconnect().build();\r\n  return newConnection;\r\n};\r\n","import { createContext, useState } from 'react'\r\n\r\nexport const TokenStatusContext = createContext(null);\r\n\r\nexport const TokenStatusProvider = ({ children }) => {\r\n  const [tokenStatus, setTokenStatus] = useState(0);\r\n  const [onTokenValidate, setOnTokenValidate] = useState(false);\r\n  const [mercadoPagoInitialized, setMercadoPagoInitialized] = useState(false);\r\n  const [paymentFormError, setPaymentFormError] = useState(false);\r\n  const [renderMpPaymentForm, setRenderMpPaymentForm] = useState(false);\r\n  const [tokenAmount, setTokenAmount] = useState(0);\r\n  return (\r\n    <TokenStatusContext.Provider value={{\r\n      tokenStatus,\r\n      setTokenStatus,\r\n      onTokenValidate,\r\n      setOnTokenValidate,\r\n      mercadoPagoInitialized,\r\n      setMercadoPagoInitialized,\r\n      paymentFormError,\r\n      setPaymentFormError,\r\n      renderMpPaymentForm,\r\n      setRenderMpPaymentForm,\r\n      tokenAmount,\r\n      setTokenAmount,\r\n    }}>\r\n      {children}\r\n    </TokenStatusContext.Provider>\r\n  );\r\n};\r\n","import React, { useContext } from 'react'\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { ServiceValidationRegisterToken } from '../../helpers/getURL'\r\nimport { GET } from '../../helpers/APIServices'\r\nimport { OpenMessage, OpenModal, OpenStreamingRegisterMessage } from '../Utilities/General'\r\nimport { TokenStatusContext } from '../../context/TokenStatusContext'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport const ButtonRegister = ({ idAuction, nameAuction, dateAuction, idPallet, classStyle }) => {\r\n  const {\r\n    validate,\r\n    setValidate,\r\n  } = useContext(DataContext);\r\n\r\n  const {setRenderMpPaymentForm, setTokenStatus} = useContext(TokenStatusContext);\r\n\r\n  const history = useHistory();\r\n\r\n  const { token = '' } = localStorage;\r\n\r\n  const clearState = () => {\r\n    setValidate({\r\n      valid: false,\r\n      registeredAuctions: [...validate.registeredAuctions],\r\n      idAuction: '',\r\n      nameAuction: '',\r\n      dateAuction: '',\r\n      palletAuction: '',\r\n      idPallet: '',\r\n    });\r\n  };\r\n\r\n  const saveToken = (data) => {\r\n    OpenStreamingRegisterMessage();\r\n    setValidate({\r\n      valid: false,\r\n      registeredAuctions: [\r\n        ...validate.registeredAuctions,\r\n        {\r\n          idAuction,\r\n          pallet: data.description,\r\n          streaming: data.streaming,\r\n          idPallet: data.idPalette,\r\n        },\r\n      ],\r\n      idAuction,\r\n      nameAuction,\r\n      dateAuction,\r\n      palletAuction: data.description,\r\n      idPallet: data.idPalette,\r\n    });\r\n  };\r\n\r\n  function openRegisterModal (idAuction, nameAuction, dateAuction, idPallet) {\r\n    const { id = ''} = localStorage;\r\n    const URLServiceValidationRegisterToken = ServiceValidationRegisterToken(\r\n      id,\r\n      idAuction\r\n    );\r\n    GET(URLServiceValidationRegisterToken).then((data) => {\r\n      if (data.success) {\r\n        const response = data.data;\r\n        setTokenStatus(response.statusToken)\r\n        if (response.redirectToValidation === true){\r\n          history.push(response.urlValidation)\r\n          setValidate({\r\n            valid: true,\r\n            registeredAuctions: [...validate.registeredAuctions],\r\n            idAuction,\r\n            nameAuction,\r\n            dateAuction,\r\n            idPallet,\r\n          })\r\n        }\r\n        else {\r\n          if (response.statusToken === 1) {\r\n            saveToken(response)\r\n          }\r\n          else if (response.statusToken === 3) {\r\n            OpenMessage('warning', 'Si pago esta pendiente, intente nuevamente en unos minutos.')\r\n            clearState()\r\n          }\r\n          else if (response.statusToken === 0 || response.statusToken === 2) {\r\n            setRenderMpPaymentForm(true)\r\n            OpenModal('modalRegisterToOffer')\r\n            setValidate({\r\n              valid: true,\r\n              registeredAuctions: [...validate.registeredAuctions],\r\n              idAuction,\r\n              nameAuction,\r\n              dateAuction,\r\n              idPallet,\r\n            })\r\n          } else {\r\n            OpenMessage('warning', 'Ocurrió un error al validar su tóken.')\r\n            clearState()\r\n          }\r\n        }\r\n      } else {\r\n        OpenMessage('warning', 'Ocurrió un error al validar su tóken.')\r\n        clearState()\r\n      }\r\n    }).catch((error) => {\r\n    })\r\n  }\r\n\r\n  function openLoginModal () {\r\n    OpenModal('modalLogin');\r\n  }\r\n\r\n  return (\r\n    <button\r\n      id={'btnRegister_' + idAuction}\r\n      className={`btn btn-outline-secondary btn-lg ${classStyle}`}\r\n      onClick={(e) =>\r\n        token !== ''\r\n          ? openRegisterModal(idAuction, nameAuction, dateAuction, idPallet)\r\n          : openLoginModal()\r\n      }\r\n    >\r\n      Registrarse para ofertar\r\n    </button>\r\n  );\r\n};\r\n","import React, { useEffect, useState, Fragment, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { validSession, OpenMessage } from '../Utilities/General';\r\nimport { ServiceCheckOnToJoinStreming } from '../../helpers/getURL';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { getUserRejectedStatus } from '../../helpers/getConstants';\r\n\r\nexport const ButtonToStreaming = (props) => {\r\n  const history = useHistory();\r\n  const statusRejected = getUserRejectedStatus();\r\n  const { userStatusLastCatalog = '' } = props;\r\n  const [button, setButton] = useState(\r\n    <button\r\n      id={'btnToStreaming_' + props.idAuction}\r\n      className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n    >\r\n      Unirse a streaming\r\n    </button>\r\n  );\r\n  const [messagge, setMessagge] = useState('');\r\n  const IdClient = localStorage.getItem('id');\r\n  const {\r\n    validate: { valid, idPallet },\r\n  } = useContext(DataContext);\r\n  const modalError = () => {\r\n    if (userStatusLastCatalog === statusRejected) {\r\n      OpenMessage(\r\n        'warning',\r\n        'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n      );\r\n    } else {\r\n      OpenMessage('warning', messagge);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    checkOnToJoinStreming();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (idPallet) {\r\n      checkOnToJoinStreming();\r\n    }\r\n  }, [valid]);\r\n\r\n  useEffect(() => {\r\n    if (IdClient) {\r\n      checkOnToJoinStreming();\r\n    }\r\n  }, [IdClient]);\r\n\r\n  const checkOnToJoinStreming = () => {\r\n    if (!validSession()) {\r\n      return;\r\n    }\r\n    const URL = ServiceCheckOnToJoinStreming();\r\n\r\n    const auctionClient = {\r\n      IdClient,\r\n      IdAuction: props.idAuction,\r\n    };\r\n\r\n    const onValidate = () => {\r\n      if (userStatusLastCatalog === statusRejected) {\r\n        OpenMessage(\r\n          'warning',\r\n          'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n        );\r\n      } else {\r\n        history.push(`/streaming?id=${props.idAuction}`);\r\n      }\r\n    };\r\n    POST(URL, auctionClient).then((data) => {\r\n      if (data && data === true) {\r\n        setButton(\r\n          <button\r\n            id={'btnToStreaming_' + props.idAuction}\r\n            className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n            onClick={() => onValidate()}\r\n          >\r\n            Unirse a streaming\r\n          </button>\r\n        );\r\n      }\r\n      if (data && data !== true) {\r\n        setButton(\r\n          <button\r\n            id={'btnToStreaming_' + props.idAuction}\r\n            type='button'\r\n            onClick={() => modalError()}\r\n            className={`btn btn-outline-danger btn-lg button-streaming ${props.classStyle}`}\r\n          >\r\n            Unirse a streaming\r\n          </button>\r\n        );\r\n        setMessagge(data);\r\n      }\r\n    });\r\n  };\r\n  return <Fragment>{button}</Fragment>;\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WatchCatalog = ({ idAuction, modal, goCatalog, clasStyle = '' }) => {\r\n  const history = useHistory();\r\n  const onCloseModal = () => {\r\n    CloseModal('modalStreamingReisterMesage');\r\n    history.push('/catalogo?id=' + idAuction);\r\n    goCatalog();\r\n  };\r\n  const openCatalog = () => {\r\n    history.push('/catalogo?id=' + idAuction);\r\n  };\r\n  return (\r\n    <button className={`btn btn-outline-danger btn-lg ${clasStyle}`} onClick={(e) => (modal ? onCloseModal() : openCatalog())}>\r\n      Ver catálogo\r\n    </button>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\n//const widthA = '1280px';\r\nconst heightA = '700px';\r\nconst idStreaming = getIdStreaming();\r\nconst execution = getExecution();\r\n\r\nfunction CarouselItem(props) {\r\n  const { statusCustomer = '' } = props;\r\n  if (props.announcement) {\r\n    //con publicidad\r\n    if (props.link && props.nuevaPestania) {\r\n      //con link de publicidad\r\n      return (\r\n        <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n          <div className=\"row justify-content-center\">\r\n            <div className=\"col-12 text-center\">\r\n              <a href={props.link} target=\"_blank\" rel=\"noreferrer\">\r\n                <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n              </a>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      );\r\n    }else if(props.link && !props.nuevaPestania){\r\n      return (\r\n        <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n            <div className=\"row justify-content-center\">\r\n              <div className=\"col-12 text-center\">\r\n                <a href={props.link}>\r\n                  <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n                </a>\r\n              </div>\r\n            </div>\r\n          </div>\r\n      );\r\n    }\r\n    return (\r\n      <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n        <div className=\"row justify-content-center\">\r\n          <div className=\"col-12 text-center\">\r\n            <img className=\"announcement\" src={props.img} alt=\"...\" height={heightA} />\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n  return (\r\n    <div className={'carousel-item ' + (props.active === 'true' ? 'active' : '')}>\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-6\">\r\n          <div className=\"row panel__left justify-content-center\">\r\n            <div className=\"col-10 offset-md-2\">\r\n              <h1>SUBASTA</h1>\r\n            </div>\r\n          </div>\r\n          <div className=\"row justify-content-center\">\r\n            <div className=\"col-10 offset-md-2\">\r\n              <h2>{props.title}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row justify-content-center\">\r\n            <div className=\"col-10 offset-md-2\">\r\n              <h3>{props.date}</h3>\r\n            </div>\r\n          </div>\r\n          <div className=\"row mt-2\">\r\n            <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n              <p className=\"carousel-item__place\">{props.place}</p>\r\n            </div>\r\n          </div>\r\n          <div className=\"row mt-2 mb-3 mb-mobile\">\r\n            <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n              <WatchCatalog idAuction={props.idAuction} modal={false} clasStyle={'btn-carousel-secondary'} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 col-sm-10 offset-1 offset-md-2\">\r\n              {props.auctionRegistered.pallet > 0 && props.auctionType === idStreaming && props.auctionStatus === execution && (\r\n                <ButtonToStreaming\r\n                  idAuction={props.idAuction}\r\n                  userStatusLastCatalog={statusCustomer}\r\n                  classStyle={''}\r\n                />\r\n              )}\r\n              {props.auctionRegistered.pallet <= 0 && (\r\n                <ButtonRegister idAuction={props.idAuction} nameAuction={props.title} dateAuction={props.date} classStyle={''} />\r\n              )}\r\n            </div>\r\n          </div>\r\n          <div className=\"row mt-3 mt-mobile\">\r\n            <div className=\"col-12 offset-1 offset-md-2\">\r\n              <p className=\"carousel-item__description\">{props.description1}</p>\r\n            </div>\r\n            <div className=\"col-12 offset-1 offset-md-2\">\r\n              <p className=\"carousel-item__description\">{props.description2}</p>\r\n            </div>\r\n            <div className=\"col-12 offset-1 offset-md-2\">\r\n              <p className=\"carousel-item__description\">{props.description3}</p>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div className=\"col-6 text-center\">\r\n          <img src={props.img} alt=\"...\" />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default CarouselItem;\r\n","import React from 'react';\r\n\r\nfunction CarouselIndicators(props) {\r\n  return (\r\n    <button\r\n      type=\"button\"\r\n      data-bs-target={'#' + props.idCarousel}\r\n      data-bs-slide-to={props.slide}\r\n      className={'rounded-circle ' + props.nameClass}\r\n      aria-current={props.nameClass === 'active' ? 'true' : ''}\r\n    ></button>\r\n  );\r\n}\r\n\r\nexport default CarouselIndicators;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\n\r\n//Componentes\r\nimport CarouselItem from './CarouselItem';\r\nimport CarouselIndicators from './CarouselIndicators';\r\n\r\n//Servicios\r\nimport { ServiceAnnouncement, ServiceCarousel, ServiceGenericParameters } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault, getCarouselTime } from '../../helpers/getConstants';\r\n\r\n//Utiles\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nexport const Carousel = ({ auctions }) => {\r\n  const data = [];\r\n  const [dataCarousel, setDataCarousel] = useState([]);\r\n  const [dataAnnouncement, setDataAnnouncement] = useState([]);\r\n  const [interval, setInterval] = useState(0);\r\n  let classIndicator = 'active';\r\n  let classItem = 'true';\r\n  let slide = 0;\r\n  const {\r\n    validate: { valid, registeredAuctions, idPallet },\r\n  } = useContext(DataContext);\r\n\r\n  const getIsStreaming = (idAuction) => {\r\n    let auctionRegistered = {\r\n      pallet: 0,\r\n      streaming: false,\r\n      idPallet: '',\r\n    };\r\n    const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n    if (auctionValue) {\r\n      auctionRegistered.pallet = auctionValue.pallet;\r\n      auctionRegistered.streaming = auctionValue.streaming;\r\n      auctionRegistered.idPallet = auctionValue.idPallet;\r\n    }\r\n    return auctionRegistered;\r\n  };\r\n\r\n  const getCarousel = () => {\r\n    const URLCarousel = ServiceCarousel();\r\n    const URLAnnouncement = ServiceAnnouncement();\r\n    const IdInterval = getCarouselTime();\r\n    const URLTimeInterval = ServiceGenericParameters(IdInterval);\r\n\r\n    GET(URLTimeInterval).then((data) => {\r\n      if (data) {\r\n        const value = data.value ? data.value * 1000 : 5000;\r\n        setInterval(value);\r\n      }\r\n      GET(URLCarousel).then((response) => {\r\n        if (response && response.length > 0) {\r\n          const items = response.filter(\r\n            (carousel) =>\r\n              carousel.bannerIni === null ||\r\n              carousel.bannerFin === null ||\r\n              (new Date(carousel.bannerIni) < new Date() && new Date() < new Date(carousel.bannerFin))\r\n          );\r\n          setDataCarousel(items);\r\n        }\r\n        GET(URLAnnouncement).then((resp) => {\r\n          if (resp && resp.length > 0) {\r\n            setDataAnnouncement(resp);\r\n          }\r\n        });\r\n      });\r\n    });\r\n  };\r\n\r\n  const checkStatus = (item) => {\r\n    let value = '';\r\n    const users = auctions.find((auction) => auction.idAuction === item.id);\r\n    if (users) {\r\n      value = users.idAuctionCustomerStatus;\r\n    }\r\n    return value;\r\n  };\r\n\r\n  dataCarousel.forEach((item) => {\r\n    item.auctionCustomerStatus = checkStatus(item);\r\n    item.auctionType = item.idType;\r\n    item.auctionStatus = item.idStatus;\r\n    item.auctionRegistered = getIsStreaming(item.id);\r\n    item.classIndicator = classIndicator;\r\n    item.classItem = classItem;\r\n    item.slide = slide;\r\n    item.date = convertToDate(item.auctionDate);\r\n    item.announcement = false;\r\n    item.link = '';\r\n    slide++;\r\n    classIndicator = '';\r\n    classItem = '';\r\n    if (!item.url[0]) {\r\n      item.url[0] = getImgDefault();\r\n    }\r\n    data.push(item);\r\n  });\r\n  slide = dataCarousel.length;\r\n  dataAnnouncement.forEach((item) => {\r\n    item.announcement = true;\r\n    item.slide = slide;\r\n    item.url = [];\r\n    item.url[0] = item.imageUrl;\r\n    item.classIndicator = classIndicator;\r\n    item.classItem = classItem;\r\n    item.name = '';\r\n    item.place = '';\r\n    classIndicator = '';\r\n    classItem = '';\r\n    item.date = convertToDate(new Date());\r\n    slide++;\r\n    data.push(item);\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (idPallet) {\r\n      getCarousel();\r\n    }\r\n  }, [valid]);\r\n\r\n  useEffect(() => {\r\n    getCarousel();\r\n  }, []);\r\n  return (\r\n    <div className=\"container-carousel\">\r\n      {data.length > 0 ? (\r\n        <div className=\"row\">\r\n          <div className=\"col\">\r\n            <div id=\"carouselMLS\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\" data-bs-interval={interval}>\r\n              <div className=\"carousel-indicators\">\r\n                {data.map((item) => {\r\n                  return <CarouselIndicators idCarousel=\"carouselMLS\" key={item.id} slide={item.slide} nameClass={item.classIndicator} />;\r\n                })}\r\n              </div>\r\n              <div className=\"carousel-inner\">\r\n                {data.map((item) => {\r\n                  return (\r\n                    <CarouselItem\r\n                      idAuction={item.id}\r\n                      key={item.id}\r\n                      active={item.classItem}\r\n                      title={item.name}\r\n                      description1={item.description ? item.description.substr(0, 40) : ''}\r\n                      description2={item.description ? item.description.substr(40, 40) : ''}\r\n                      description3={item.description ? item.description.substr(80) : ''}\r\n                      place={item.place}\r\n                      img={item.url[0]}\r\n                      date={item.date}\r\n                      nuevaPestania={item.nuevaPestania}\r\n                      announcement={item.announcement}\r\n                      link={item.link}\r\n                      auctionRegistered={item.auctionRegistered}\r\n                      auctionType={item.auctionType}\r\n                      auctionStatus={item.auctionStatus}\r\n                      statusCustomer={item.auctionCustomerStatus}\r\n                    />\r\n                  );\r\n                })}\r\n              </div>\r\n              <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselMLS\" data-bs-slide=\"prev\">\r\n                <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n              <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselMLS\" data-bs-slide=\"next\">\r\n                <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      ) : null}\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nfunction AuctionsItem(props) {\r\n  return (\r\n    <div className={'col-3 col-sm-3 col-xxl-2 container-auctions-items ' + props.class}>\r\n      <Link to={`/catalogo?id=${props.idAuction}&categoria=${props.category}`}>\r\n        <div className=\"card h-100\">\r\n          <div className=\"container-auctions-items--img\">\r\n            <img src={props.img} className=\"card-img-top\" alt=\"...\" />\r\n          </div>\r\n          <div className=\"card-body\">\r\n            <h5 className=\"card-title container-auctions-items--title\">{props.productName}</h5>\r\n            <p className=\"card-text\">{props.description}</p>\r\n          </div>\r\n        </div>\r\n      </Link>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default AuctionsItem;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\nimport AuctionsItem from './AuctionsItem';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nfunction Auctions(props) {\r\n  const [state, setState] = useState({\r\n    name: '',\r\n    idAuction: '',\r\n    auctionDate: new Date(),\r\n    pallet: 0,\r\n    isStreaming: false,\r\n    idPallet: '',\r\n    idType: '',\r\n    idStatus: '',\r\n    title: '',\r\n  });\r\n  const { userStatusLastCatalog = '' } = props;\r\n  const idStreaming = getIdStreaming();\r\n  const execution = getExecution();\r\n  const {\r\n    validate: { registeredAuctions },\r\n  } = useContext(DataContext);\r\n\r\n  const getIsStreaming = (idAuction) => {\r\n    const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n    if (auctionValue) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        pallet: parseInt(auctionValue.pallet, 10),\r\n        isStreaming: auctionValue.streaming,\r\n        idPallet: auctionValue.idPallet,\r\n      }));\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    const data = props.data;\r\n    if (data) {\r\n      getIsStreaming(data.id);\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        name: data.id ? data.name : '',\r\n        idAuction: data.id,\r\n        auctionDate: convertToDate(data.auctionDate),\r\n        idType: data.idType,\r\n        idStatus: data.idStatus,\r\n      }));\r\n    }\r\n  }, [props]);\r\n\r\n  if (state.idAuction) {\r\n    return (\r\n      <div className=\"container-fluid container-auctions mb-4 pb-4\">\r\n        <div className=\"row\">\r\n          <div className=\"col-11 offset-1 \">\r\n            <h2>\r\n              {' '}\r\n              <span className=\"container-auctions--title\">{props.title}</span> {props.title2}\r\n            </h2>\r\n          </div>\r\n        </div>\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 col-sm-5 offset-sm-1 text-center-mobile\">\r\n            <span className=\"container-auctions--subtitle\">{state.name}</span>\r\n          </div>\r\n          <div className=\"col-12 col-sm-5 text-center-mobile container-auctions-col\">\r\n            {state.pallet > 0 && state.idType === idStreaming && state.idStatus === execution && (\r\n              <ButtonToStreaming streaming={state.isStreaming} idAuction={state.idAuction} userStatusLastCatalog={userStatusLastCatalog} />\r\n            )}\r\n            {state.pallet <= 0 && <ButtonRegister idAuction={state.idAuction} nameAuction={state.name} dateAuction={state.auctionDate} />}\r\n          </div>\r\n        </div>\r\n        <div className=\"row\">\r\n          <div className=\"col-11 offset-1 text-center-mobile\">\r\n            <span className=\"container-auctions--subtitle2\">{state.auctionDate}</span>\r\n          </div>\r\n        </div>\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-11 container-auctions-col container-auctions-btn2\">\r\n            <WatchCatalog idAuction={state.idAuction} modal={false} clasStyle={'watch-catalog'} />\r\n          </div>\r\n        </div>\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-11 offset-1 mt-5 mb-5\">\r\n            <span className=\"container-auctions--description\">\r\n              Contaremos con una gran variedad de piezas únicas en distintas categorías:{' '}\r\n            </span>\r\n          </div>\r\n        </div>\r\n        <div className=\"row justify-content-center container-auctions-row\">{props.children}</div>\r\n\r\n        <div className=\"row justify-content-sm-center container__auctions--types\">\r\n          <AuctionsItem productName=\"Relojes\" img=\"resources/SV-343.jpg\" idAuction={state.idAuction} category={'02'} class={''} />\r\n          <AuctionsItem\r\n            productName=\"Alhajas\"\r\n            img=\"resources/SV-010.jpg\"\r\n            idAuction={state.idAuction}\r\n            category={'01'}\r\n            class={'container-auctions-items--ml offset-xxl-2'}\r\n          />\r\n          <AuctionsItem\r\n            productName=\"Artículos personales\"\r\n            img=\"resources/SV-231.jpg\"\r\n            idAuction={state.idAuction}\r\n            category={'03'}\r\n            class={'container-auctions-items--ml offset-xxl-2'}\r\n          />\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n  return (\r\n    <div className=\"container-fluid container-auctions mb-4 pb-4\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12 text-center\">\r\n          <h2>\r\n            <span className=\"container-auctions--title\"> Espera nuestras próximas Subastas.</span>\r\n          </h2>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default Auctions;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nexport const AuctionsCarousel = (props) => {\r\n  const [state, setState] = useState({\r\n    name: '',\r\n    idAuction: '',\r\n    auctionDate: new Date(),\r\n    pallet: 0,\r\n    isStreaming: false,\r\n    idPallet: '',\r\n    idType: '',\r\n    idStatus: '',\r\n    title: '',\r\n  });\r\n\r\n  const { userStatusLastCatalog } = props;\r\n  const {\r\n    validate: { registeredAuctions },\r\n  } = useContext(DataContext);\r\n\r\n  const idStreaming = getIdStreaming();\r\n  const execution = getExecution();\r\n\r\n  const getIsStreaming = (idAuction) => {\r\n    const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n    if (auctionValue) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        pallet: parseInt(auctionValue.pallet, 10),\r\n        isStreaming: auctionValue.streaming,\r\n        idPallet: auctionValue.idPallet,\r\n      }));\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    const data = props.data;\r\n    if (data) {\r\n      getIsStreaming(data.id);\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        name: data.id ? data.name : '',\r\n        idAuction: data.id,\r\n        auctionDate: convertToDate(data.auctionDate),\r\n        idType: data.idType,\r\n        idStatus: data.idStatus,\r\n      }));\r\n    }\r\n  }, [props]);\r\n\r\n  if (state.idAuction) {\r\n    return (\r\n      <div className=\"container-fluid container-auctions mb-4 pb-4 container__auctions--types\">\r\n        <div className=\"row\">\r\n          <div className=\"col-12\">\r\n            <h2>\r\n              <span className=\"container-auctions--title\">Próxima</span> subasta\r\n            </h2>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 text-center-mobile\">\r\n            <span className=\"container-auctions--subtitle\">{state.name}</span>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 text-center-mobile\">\r\n            <span className=\"container-auctions--subtitle2\">{state.auctionDate}</span>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 mt-2 mb-2 text-center-mobile\">\r\n            <span className=\"container-auctions--description\">\r\n              Contaremos con una gran variedad de piezas únicas en distintas categorías:\r\n            </span>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 text-center-mobile\">\r\n            {state.pallet > 0 && state.idType === idStreaming && state.idStatus === execution && (\r\n              <ButtonToStreaming streaming={state.isStreaming} idAuction={state.idAuction} userStatusLastCatalog={userStatusLastCatalog} />\r\n            )}\r\n            {state.pallet <= 0 && <ButtonRegister idAuction={state.idAuction} nameAuction={state.name} dateAuction={state.auctionDate} />}\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctions-row\">\r\n          <div className=\"col-12 mb-5 text-center-mobile\">\r\n            <WatchCatalog idAuction={state.idAuction} modal={false} clasStyle={'watch-catalog'} />\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row\">\r\n          <div className=\"col-12\">\r\n            <div id=\"carouselAuction\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\">\r\n              <div className=\"carousel-indicators auctionsCarousel-indicators\">\r\n                <button\r\n                  type=\"button\"\r\n                  data-bs-target=\"#carouselAuction\"\r\n                  data-bs-slide-to=\"0\"\r\n                  className=\"rounded-circle active\"\r\n                  aria-current=\"true\"\r\n                ></button>\r\n\r\n                <button\r\n                  type=\"button\"\r\n                  data-bs-target=\"#carouselAuction\"\r\n                  data-bs-slide-to=\"1\"\r\n                  className=\"rounded-circle\"\r\n                  aria-current=\"false\"\r\n                ></button>\r\n\r\n                <button\r\n                  type=\"button\"\r\n                  data-bs-target=\"#carouselAuction\"\r\n                  data-bs-slide-to=\"2\"\r\n                  className=\"rounded-circle\"\r\n                  aria-current=\"false\"\r\n                ></button>\r\n              </div>\r\n              <div className=\"carousel-inner\">\r\n                <div className=\"carousel-item active\">\r\n                  <div className=\"row justify-content-center\">\r\n                    <div className=\"col-8\">\r\n                      <Link to={`/catalogo?id=${state.idAuction}&categoria=02`}>\r\n                        <div className=\"card\">\r\n                          <div className=\"container-auctions-items--img\">\r\n                            <img src=\"resources/SV-343.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n                          </div>\r\n                          <div className=\"card-body\">\r\n                            <h5 className=\"card-title container-auctions-items--title\">Relojes</h5>\r\n                          </div>\r\n                        </div>\r\n                      </Link>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n\r\n                <div className=\"carousel-item\">\r\n                  <div className=\"row justify-content-center\">\r\n                    <div className=\"col-8\">\r\n                      <Link to={`/catalogo?id=${state.idAuction}&categoria=01`}>\r\n                        <div className=\"card\">\r\n                          <div className=\"container-auctions-items--img\">\r\n                            <img src=\"resources/SV-010.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n                          </div>\r\n                          <div className=\"card-body\">\r\n                            <h5 className=\"card-title container-auctions-items--title\">Alhajas</h5>\r\n                          </div>\r\n                        </div>\r\n                      </Link>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n\r\n                <div className=\"carousel-item\">\r\n                  <div className=\"row justify-content-center\">\r\n                    <div className=\"col-8\">\r\n                      <Link to={`/catalogo?id=${state.idAuction}&categoria=03`}>\r\n                        <div className=\"card\">\r\n                          <div className=\"container-auctions-items--img\">\r\n                            <img src=\"resources/SV-231.jpg\" className=\"card-img-top\" alt=\"...\" />\r\n                          </div>\r\n                          <div className=\"card-body\">\r\n                            <h5 className=\"card-title container-auctions-items--title\">Artículos personales</h5>\r\n                          </div>\r\n                        </div>\r\n                      </Link>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAuction\" data-bs-slide=\"prev\">\r\n                <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n              <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAuction\" data-bs-slide=\"next\">\r\n                <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n  return (\r\n    <div className=\"container-fluid container-auctions mb-4 pb-4 container__auctions--types\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12 text-center\">\r\n          <h2>\r\n            <span className=\"container-auctions--title\"> Espera nuestras próximas Subastas.</span>\r\n          </h2>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { getAvailableLot, getRetiredLot } from '../../helpers/getConstants';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nexport const Offer = ({\r\n  offerLot,\r\n  format,\r\n  offer,\r\n  setOffer,\r\n  offerSelected,\r\n  setOfferSelected,\r\n  confirm,\r\n  setConfirm,\r\n  handleScroll,\r\n  handleOffer,\r\n  loading,\r\n  handleConfirm,\r\n  idType,\r\n  idStatus,\r\n  auctionTypes,\r\n  auctionStatus,\r\n  idLoteStatus,\r\n  addCartItem,\r\n  enablePostSale,\r\n  clicked,\r\n  setClicked,\r\n  idLot,\r\n}) => {\r\n  const available = getAvailableLot();\r\n  const retired = getRetiredLot();\r\n  useEffect(() => {\r\n    const onClick = (e) => {\r\n      setClicked('');\r\n    };\r\n    document.addEventListener('click', onClick);\r\n\r\n    if (clicked === idLot) {\r\n      setOffer(true);\r\n      setConfirm(false);\r\n    } else if (clicked !== idLot) {\r\n      setOffer(false);\r\n    }\r\n  }, [clicked, idLot, setOffer, setConfirm, setClicked]);\r\n\r\n  const hideDropdown = (e, item, idLot) => {\r\n    const dropdown = 'dropdown_' + idLot;\r\n    const ul = 'ul_dropdown_' + idLot;\r\n    const elementDrop = document.getElementById(dropdown);\r\n    const elementUl = document.getElementById(ul);\r\n    elementDrop.classList.remove('show');\r\n    elementUl.classList.remove('show');\r\n    setOfferSelected(item.precio);\r\n    setClicked(idLot);\r\n    e.stopPropagation();\r\n  };\r\n\r\n  return (\r\n    <div className=\"row justify-content-center \">\r\n      {idType === auctionTypes.idGoldenMinutes &&\r\n        idStatus === auctionStatus.directSale &&\r\n        (idLoteStatus === available || idLoteStatus === retired) &&\r\n        enablePostSale === true && (\r\n          <div className=\"col-12\">\r\n            <button\r\n              className={`btn button-danger-offerted ${format !== 1 ? ' button-eye-2' : ' button-eye'} `}\r\n              onClick={(e) => addCartItem()}\r\n              disabled={loading}\r\n            >\r\n              <i className=\"fas fa-shopping-cart\"></i>\r\n              <span> Comprar</span>\r\n            </button>\r\n          </div>\r\n        )}\r\n      {(confirm && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n      (confirm &&\r\n        idType === auctionTypes.idStreaming &&\r\n        idLoteStatus === available &&\r\n        (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n        <div className=\"col-12\">\r\n          <button\r\n            className={`btn button-danger-offerted ${format !== 1 ? ' button-eye-2' : ' button-eye'} `}\r\n            disabled={loading}\r\n            onClick={(e) => [setOffer(true), setConfirm(false)]}\r\n          >\r\n            <i className=\"fas fa-clock\"></i>\r\n            <span> Ofertado</span>\r\n          </button>\r\n        </div>\r\n      ) : null}\r\n\r\n      <div className={`align-buttons col-12`}>\r\n        {(!confirm && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n        (!confirm &&\r\n          idType === auctionTypes.idStreaming &&\r\n          idLoteStatus === available &&\r\n          (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n          <button\r\n            className={`btn ${!offer ? 'btn-outline-danger' : ' button-danger-offerted'} button-eye align-buttons-items`}\r\n            onClick={(e) => [!offer ? handleOffer(e) : handleConfirm(), setClicked(idLot)]}\r\n            disabled={loading}\r\n          >\r\n            {!offer ? <img src=\"./resources/Ofertar@2x.png\" alt=\"\" width=\"20px\" /> : null}\r\n            <strong>{!offer ? ' Ofertar' : ' Confirmar'}</strong>\r\n          </button>\r\n        ) : null}\r\n        {(!confirm && offer && idType === auctionTypes.idGoldenMinutes && idStatus === auctionStatus.execution) ||\r\n        (!confirm &&\r\n          offer &&\r\n          idType === auctionTypes.idStreaming &&\r\n          (idStatus === auctionStatus.scheduled || idStatus === auctionStatus.execution)) ? (\r\n          <div className=\"dropdown shadow-0 align-buttons-items buttons-offer\">\r\n            <button\r\n              className={`btn dropdown-toggle ${format !== 1 ? 'drop-element-offer-2' : 'drop-element-offer'} shadow-0`}\r\n              data-mdb-toggle=\"dropdown\"\r\n              id={'dropdown_' + idLot}\r\n              aria-expanded=\"false\"\r\n              onClick={(e) => e.stopPropagation()}\r\n            >\r\n              {formatCurrency(offerSelected)}\r\n            </button>\r\n            <ul\r\n              id={'ul_dropdown_' + idLot}\r\n              className=\"dropdown-menu drop-scroll\"\r\n              aria-labelledby={'dropdown_' + idLot}\r\n              onScroll={handleScroll}\r\n            >\r\n              {offerLot.map((item, i) => {\r\n                return (\r\n                  <li key={i}>\r\n                    <button\r\n                      className={`dropdown-item  ${format !== 1 ? 'drop-items-2' : 'drop-items'} `}\r\n                      onClick={(e) => hideDropdown(e, item, idLot)}\r\n                    >\r\n                      {formatCurrency(item.precio)}\r\n                    </button>\r\n                  </li>\r\n                );\r\n              })}\r\n            </ul>\r\n          </div>\r\n        ) : null}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { Offer } from '../Register/Offer';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nfunction AuctionsHighlightItem(props) {\r\n  return (\r\n    <div className={'col-3 col-xxl-2 mb-5 ' + props.nameClass}>\r\n      <div className=\"card h-100\">\r\n        <div className=\"row h-100\">\r\n          <div className=\"container-products-items--img\">\r\n            <img src={props.url} className=\"card-img-top \" alt=\"...\" />\r\n          </div>\r\n\r\n          <div className=\"card-body text-center\">\r\n            <p className=\"container-products-items--title\">{props.title}</p>\r\n            <p className=\"product-text\">\r\n              Lote <span>{props.reference}</span>\r\n            </p>\r\n            <span className=\"product-text\">\r\n              PRECIO DE SALIDA: <span className=\"price-text\">{formatCurrency(props.price)}</span>\r\n            </span>\r\n          </div>\r\n          {props.registered && (\r\n            <div className=\"card-footer text-center article-footer\">\r\n              <Offer offerLot={props.offerLot} format={props.format} />\r\n            </div>\r\n          )}\r\n          <div className=\"card-footer text-center\">\r\n            <button className=\"btn btn-outline-secondary\" data-mdb-toggle=\"modal\" data-mdb-target={`#modal${props.id}`}>\r\n              <i className=\"fas fa-eye\"></i>\r\n              <strong> Detalles</strong>\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"modal fade\" id={`modal${props.id}`} aria-hidden=\"true\">\r\n        <div className=\"modal-dialog\">\r\n          <div className=\"modal-content\">\r\n            <div className=\"modal-body\">\r\n              <img src={props.url} alt=\"\" className=\"img-fluid\" />\r\n            </div>\r\n            <h4 className=\"text-desc text-center\">{props.description}</h4>\r\n            <div className=\"modal-footer\">\r\n              <button type=\"button\" className=\"btn btn-outline-danger\" data-mdb-dismiss=\"modal\">\r\n                Cerrar\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default AuctionsHighlightItem;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nfunction AuctionsHighlight(props) {\r\n  return (\r\n    <div className=\"container-fluid container-auctionsHighlight\">\r\n      <div className=\"row\">\r\n        <div className=\"col-11 offset-1 text-uppercase\">\r\n          <h2>\r\n            {' '}\r\n            <span className=\"container-auctionsHighlight--title\">{props.title}</span> {props.title2}\r\n          </h2>\r\n        </div>\r\n      </div>\r\n      <div className=\"row container-auctionsHighlight-row\">\r\n        <div className=\"col-7 offset-1\">\r\n          <span className=\"container-auctionsHighlight--description\">\r\n            Contaremos con una gran variedad de piezas únicas en distintas categorías:{' '}\r\n          </span>\r\n        </div>\r\n      </div>\r\n      <div className=\"row container-auctionsHighlight-row\">\r\n        <div className=\"col-11 container-auctionsHighlight-col container-auctionsHighlight-btn2 text-end\">\r\n          <Link to=\"/catalogo\">\r\n            <button className=\"btn btn-outline-danger btn-lg\">Catálogo completo</button>\r\n          </Link>\r\n        </div>\r\n      </div>\r\n      <div className=\"container-auctionsHighlight-row container__auctionsHighlight--types\">{props.children}</div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default AuctionsHighlight;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { renderToString } from 'react-dom/server';\r\n\r\nimport AuctionsHighlightItem from './AuctionsHighlightItem';\r\nimport AuctionsHighlight from './AuctionsHighlight';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { convertToDate } from '../Utilities/General';\r\n\r\nexport const AuctionsHighlightSection = (props) => {\r\n  const [state, setState] = useState({\r\n    articles: [],\r\n    auctionName: '',\r\n    auctionDate: new Date(),\r\n    idAuction: '',\r\n    rowsItems: '',\r\n  });\r\n  const itemsArray = [];\r\n\r\n  const setAuctionsHigh = () => {\r\n    let index = 0;\r\n    state.articles.map((article, i) => {\r\n      if (i % 3 === 0) {\r\n        itemsArray.push([]);\r\n        index++;\r\n      }\r\n\r\n      let item = renderToString(\r\n        <AuctionsHighlightItem\r\n          id={article.idLot}\r\n          idAuction={props.idAuction}\r\n          title={article.name}\r\n          description={article.description}\r\n          reference={article.order}\r\n          url={\r\n            article.lstImageLote && article.lstImageLote.length > 0 && article.lstImageLote[0] ? article.lstImageLote[0] : getImgDefault()\r\n          }\r\n          price={article.startingPrice}\r\n          key={article.idLot}\r\n          offerLot={article.lstOffertsLot}\r\n          nameClass={i === 0 || i % 3 === 0 ? '' : 'col-xxl-2 container-auctionsHighlight-items--ml offset-xxl-2'}\r\n        />\r\n      );\r\n      itemsArray[index - 1].push(item);\r\n      return ''; //asi esta bien que regrese vacio\r\n    });\r\n\r\n    let divRow = '';\r\n    for (let i = 0; i < itemsArray.length; i++) {\r\n      divRow += '<div class=\"row justify-content-center\">';\r\n      for (let j = 0; j < itemsArray[i].length; j++) {\r\n        divRow += itemsArray[i][j];\r\n      }\r\n      //se acomodan a 3 columnas siempre, va de acuerdo a la seccion de \"Proxima Subasta\" del home\r\n      //los estilos van de acuerdo a los que se encuentran en el componente AuctionsHighlightItem\r\n      for (let k = itemsArray[i].length; k < 3; k++) {\r\n        divRow += '<div class=\"col-3 col-xxl-2 mb-5 container-auctionsHighlight-items--ml offset-xxl-2\" ></div>';\r\n      }\r\n      divRow += '</div>';\r\n    }\r\n    return divRow;\r\n  };\r\n\r\n  useEffect(() => {\r\n    const data = props.data;\r\n    if (data) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        name: data.id ? data.name : '',\r\n        idAuction: data.id,\r\n        auctionDate: convertToDate(data.auctionDate),\r\n      }));\r\n    }\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      articles: [],\r\n    }));\r\n    if (props.articles) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        articles: props.articles,\r\n      }));\r\n      const div = document.getElementById('AuctionsHighlightDiv');\r\n      if (div && props.articles.length > 0) {\r\n        div.classList.remove('visually-hidden');\r\n      }\r\n    }\r\n  }, [props]);\r\n\r\n  if (state.idAuction) {\r\n    return (\r\n      <div id=\"AuctionsHighlightDiv\" className=\"visually-hidden\">\r\n        <AuctionsHighlight title=\"Destacados\" title2=\"de subasta\">\r\n          <div dangerouslySetInnerHTML={{ __html: setAuctionsHigh() }}></div>\r\n          <div className=\"row\">\r\n            <div className=\"col text-center container-auctions-button\">\r\n              <ButtonRegister\r\n                idAuction={state.idAuction}\r\n                nameAuction={state.name}\r\n                dateAuction={state.auctionDate}\r\n                classStyle={'btn-carousel-secondary'}\r\n              />\r\n            </div>\r\n          </div>\r\n        </AuctionsHighlight>\r\n      </div>\r\n    );\r\n  }\r\n  return null;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { convertToDate, formatCurrency } from '../Utilities/General';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const AuctionsHighlightCarousel = (props) => {\r\n  const [state, setState] = useState({\r\n    articles: [],\r\n    auctionName: '',\r\n    auctionDate: new Date(),\r\n    idAuction: '',\r\n  });\r\n\r\n  useEffect(() => {\r\n    const data = props.data;\r\n    if (data) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        name: data.id ? data.name : '',\r\n        idAuction: data.id,\r\n        auctionDate: convertToDate(data.auctionDate),\r\n      }));\r\n    }\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      articles: [],\r\n    }));\r\n    if (props.articles) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        articles: props.articles,\r\n      }));\r\n    }\r\n  }, [props]);\r\n\r\n  if (state.idAuction && state.articles.length > 0) {\r\n    return (\r\n      <div className=\"container-fluid container-auctionsHighlight container__auctionsHighlight--types\">\r\n        <div className=\"row\">\r\n          <div className=\"col-12 text-uppercase text-center-mobile\">\r\n            <h2>\r\n              <span className=\"container-auctionsHighlight--title\">destacados</span> de subasta\r\n            </h2>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row container-auctionsHighlight-row\">\r\n          <div className=\"col-12 text-center-mobile\">\r\n            <span className=\"container-auctionsHighlight--description\">\r\n              Contaremos con una gran variedad de piezas únicas en distintas categorías:{' '}\r\n            </span>\r\n          </div>\r\n        </div>\r\n        <div className=\"row container-auctionsHighlight-row mb-5\">\r\n          <div className=\"col-12 container-auctionsHighlight-col container-auctionsHighlight-btn2 text-center-mobile\">\r\n            <Link to=\"/catalogo\">\r\n              <button className=\"btn btn-outline-danger btn-lg\">Catálogo completo</button>\r\n            </Link>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row justify-content-center\">\r\n          <div className=\"col-12\">\r\n            <div id=\"carouselAuctionHighlight\" className=\"carousel carousel-dark slide\" data-bs-ride=\"carousel\">\r\n              <div className=\"carousel-indicators auctionsCarousel-indicators\">\r\n                {state.articles.map((item, i) => (\r\n                  <button\r\n                    type=\"button\"\r\n                    data-bs-target=\"#carouselAuctionHighlight\"\r\n                    data-bs-slide-to={i}\r\n                    className={i === 0 ? 'rounded-circle active' : 'rounded-circle'}\r\n                    aria-current={i === 0 ? 'true' : ''}\r\n                    key={i}\r\n                  ></button>\r\n                ))}\r\n              </div>\r\n              <div className=\"carousel-inner\">\r\n                {state.articles.map((item, i) => (\r\n                  <div className={i === 0 ? 'carousel-item active' : 'carousel-item'} key={i}>\r\n                    <div className=\"row justify-content-center\">\r\n                      <div className=\"col-8\">\r\n                        <div className=\"card\">\r\n                          <div className=\"container-products-items--img\">\r\n                            <img\r\n                              src={\r\n                                item.lstImageLote && item.lstImageLote.length > 0 && item.lstImageLote[0]\r\n                                  ? item.lstImageLote[0]\r\n                                  : getImgDefault()\r\n                              }\r\n                              className=\"card-img-top \"\r\n                              alt=\"...\"\r\n                            />\r\n                          </div>\r\n\r\n                          <div className=\"card-body text-center\">\r\n                            <p className=\"container-products-items--title\">{item.name}</p>\r\n                            <p className=\"product-text\">\r\n                              Lote <span>{item.order}</span>\r\n                            </p>\r\n                            <span className=\"product-text\">\r\n                              PRECIO DE SALIDA: <span className=\"price-text\">{formatCurrency(item.startingPrice)}</span>\r\n                            </span>\r\n                          </div>\r\n                          <div className=\"card-footer text-center\">\r\n                            <button className=\"btn btn-outline-secondary\" data-mdb-toggle=\"modal\" data-mdb-target={`#modal${item.idLot}`}>\r\n                              <i className=\"fas fa-eye\"></i>\r\n                              <strong> Detalles</strong>\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                ))}\r\n              </div>\r\n\r\n              <button className=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAuctionHighlight\" data-bs-slide=\"prev\">\r\n                <span className=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n              <button className=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAuctionHighlight\" data-bs-slide=\"next\">\r\n                <span className=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row\">\r\n          <div className=\"col-12\">\r\n            {state.articles.map((item, i) => (\r\n              <div\r\n                className=\"modal\"\r\n                id={`modal${item.idLot}`}\r\n                data-bs-backdrop=\"static\"\r\n                data-bs-keyboard=\"false\"\r\n                aria-modal=\"true\"\r\n                role=\"dialog\"\r\n                key={i}\r\n              >\r\n                <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n                  <div className=\"modal-content\">\r\n                    <div className=\"modal-body\">\r\n                      <img src={item.lstImageLote[0]} alt=\"\" className=\"img-fluid\" />\r\n                    </div>\r\n                    <h4 className=\"text-desc text-center\">{item.name}</h4>\r\n                    <div className=\"modal-footer\">\r\n                      <button type=\"button\" className=\"btn btn-outline-danger\" data-mdb-dismiss=\"modal\">\r\n                        Cerrar\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            ))}\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row\">\r\n          <div className=\"col text-center container-auctions-button\">\r\n            <ButtonRegister\r\n              idAuction={state.idAuction}\r\n              nameAuction={state.name}\r\n              dateAuction={state.auctionDate}\r\n              classStyle={'btn-carousel-secondary'}\r\n            />\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n  return null;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { getConfig } from '../../helpers/getConfig';\r\n\r\nfunction Video() {\r\n  const [data, setData] = useState([]);\r\n\r\n  useEffect(() => {\r\n    getConfig('video.json').then((data) => {\r\n      setData(data);\r\n    });\r\n    const video = document.getElementById('videoAuction');\r\n    if (video) {\r\n      video.controls = true;\r\n      video.preload = 'auto';\r\n      video.autoPlay = true;\r\n      video.muted = true;\r\n      video.loop = true;\r\n      video.playsInline = true;\r\n    }\r\n  }, []);\r\n\r\n  const { title = '', text1 = '', url = '', text2 = '' } = data;\r\n\r\n  return (\r\n    <div className=\"container-fluid container-video\">\r\n      <div className=\"row\">\r\n        <div className=\"col\">\r\n          <div dangerouslySetInnerHTML={{ __html: title }} />\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center container-video--description\">\r\n        <div className=\"col-10\">\r\n          <div dangerouslySetInnerHTML={{ __html: text1 }} />\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-10\">\r\n          <div className=\"embed-responsive embed-responsive-16by9\">\r\n            <video\r\n              id=\"videoAuction\"\r\n              src={url}\r\n              width=\"960\"\r\n              height=\"480\"\r\n              controls\r\n              preload=\"auto\"\r\n              autoPlay\r\n              muted\r\n              loop\r\n              playsInline\r\n              type=\"video/mp4\"\r\n            >\r\n              <source src={url} type=\"video/mp4\" />\r\n              Your browser does not support the video tag.\r\n            </video>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center container-video--description\">\r\n        <div className=\"col\">\r\n          <div dangerouslySetInnerHTML={{ __html: text2 }} />\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col\">\r\n          <Link to=\"/contacto\">\r\n            <button className=\"btn btn-outline-secondary btn-lg btn-video--footer\">Contáctanos</button>\r\n          </Link>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default Video;\r\n","const PAGE = window.innerHeight - 100;\r\nexport const setSlideIn = (selector) => {\r\n  const element = document.querySelector(selector);\r\n  if (element) {\r\n    const elementTop = element.getBoundingClientRect().top;\r\n    if (!element.classList.contains('slidein')) {\r\n      element.style = 'opacity: 0';\r\n      //element.classList.remove('slidein');\r\n      if (elementTop <= PAGE) {\r\n        element.style = '';\r\n        element.classList.add('slidein');\r\n      }\r\n    }\r\n  }\r\n};\r\n","import React, { useLayoutEffect, useState, useEffect, useContext } from 'react';\r\n//componentes\r\nimport { Carousel } from './Carousel';\r\nimport Auctions from './Auctions';\r\nimport { AuctionsCarousel } from './AuctionsCarousel';\r\nimport { AuctionsHighlightSection } from './AuctionsHighlightSection';\r\nimport { AuctionsHighlightCarousel } from './AuctionsHighlightCarousel';\r\nimport Video from './Video';\r\n\r\n//Servicios\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceLastCatalog, ServiceCatalog, ServiceAuctionCustomerStatus } from '../../helpers/getURL';\r\n\r\n//Animaciones\r\nimport { setSlideIn } from '../Utilities/Animation';\r\n\r\n//CSS Index\r\nimport '../../css/index.css';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\nexport const Home = () => {\r\n  const [mobile, setMobile] = useState([]);\r\n  const [lastCatalog, setLastCatalog] = useState({});\r\n  const [articles, setArticles] = useState([]);\r\n  const [auctions, setAuctions] = useState([]);\r\n  const [userStatusLastCatalog, setUserStatusLastCatalog] = useState('');\r\n  const {\r\n    validate: { valid, idPallet },\r\n  } = useContext(DataContext);\r\n  const getArticles = (idAuction) => {\r\n    if (!idAuction) {\r\n      return;\r\n    }\r\n    const URLCatalog = ServiceCatalog();\r\n    let url = new URL(URLCatalog);\r\n    let params = {\r\n      idAuction,\r\n      PageNumber: 1,\r\n      Destacado: true,\r\n      Order: '03',\r\n    };\r\n\r\n    Object.keys(params).forEach((key) => {\r\n      if (!params[key]) {\r\n        delete params[key];\r\n      }\r\n    });\r\n    Object.keys(params).forEach((key) => {\r\n      url.searchParams.append(key, params[key]);\r\n    });\r\n\r\n    GET(url).then(({ lots = [] }) => {\r\n      if (lots.length === 0) {\r\n        setArticles([]);\r\n      } else {\r\n        setArticles(lots);\r\n      }\r\n    });\r\n  };\r\n\r\n  useLayoutEffect(() => {\r\n    const handleResize = () => {\r\n      setMobile(window.innerWidth);\r\n    };\r\n    window.addEventListener('resize', handleResize);\r\n    handleResize();\r\n    return () => {window.removeEventListener('resize',handleResize)};\r\n  }, []);\r\n\r\n  useLayoutEffect(() => {\r\n    const handleScroll = () => {\r\n      setSlideIn('.container__auctions--types');\r\n      setSlideIn('.container__auctionsHighlight--types');\r\n    }\r\n    window.addEventListener('scroll', handleScroll);\r\n    return () => {window.removeEventListener(\"scroll\", handleScroll)};\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    getData();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if(idPallet){\r\n      getData();\r\n    }\r\n  }, [valid]);\r\n\r\n  const getData = () => {\r\n    const id = localStorage.getItem('id');\r\n    const URLLastCatalog = ServiceLastCatalog();\r\n    if (id) {\r\n      const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n      GET(URLAuctionCustomerStatus).then((response) => {\r\n        if (response) {\r\n          setAuctions(response);\r\n          GET(URLLastCatalog).then((data) => {\r\n            if (data) {\r\n              const users = response.find((auction) => auction.idAuction === data.id);\r\n              if (users) {\r\n                setUserStatusLastCatalog(users.idAuctionCustomerStatus);\r\n              }\r\n              setLastCatalog(data);\r\n              getArticles(data.id);\r\n            }\r\n          });\r\n        }\r\n      });\r\n    } else {\r\n      GET(URLLastCatalog).then((data) => {\r\n        if (data) {\r\n          setLastCatalog(data);\r\n          getArticles(data.id);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  if (mobile <= 576) {\r\n    return (\r\n      <div>\r\n        <Carousel auctions={auctions} />\r\n        <AuctionsCarousel data={lastCatalog} userStatusLastCatalog={userStatusLastCatalog} />\r\n        <AuctionsHighlightCarousel data={lastCatalog} articles={articles} />\r\n        <Video />\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div>\r\n        <Carousel auctions={auctions} />\r\n        <Auctions title=\"Próxima\" title2=\"subasta\" data={lastCatalog} userStatusLastCatalog={userStatusLastCatalog} />\r\n        <AuctionsHighlightSection data={lastCatalog} articles={articles} />\r\n        <Video />\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React from 'react';\r\n\r\nexport const CloseModalIcon = ({ onHandleClick }) => {\r\n  return (\r\n    <label type='button' onClick={onHandleClick} aria-label='Close'>\r\n      <img src='/resources/close.png' alt='close' className='w-50' />\r\n    </label>\r\n  );\r\n};\r\n","import { createContext, useState } from 'react'\r\n\r\nexport const CaptchaContext = createContext(null)\r\n\r\nexport const CaptchaProvider = ({ children }) => {\r\n  const [captchaSiteKey, setCaptchaSiteKey] = useState('')\r\n  return (\r\n    <CaptchaContext.Provider value={{\r\n      captchaSiteKey,\r\n      setCaptchaSiteKey,\r\n    }}>\r\n      {children}\r\n    </CaptchaContext.Provider>\r\n  )\r\n}\r\n","import React, { useContext, useRef, useState } from 'react'\r\n\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceLogin } from '../../helpers/getURL';\r\nimport {\r\n  CloseModal,\r\n  OpenMessage,\r\n  restoreInputs,\r\n  verifyFieldsRequerid,\r\n  validEmail,\r\n  setSession,\r\n  onlyMail,\r\n  changePasswordText,\r\n} from '../Utilities/General';\r\n\r\nimport '../../css/Login/Login.css';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport ReCAPTCHA from 'react-google-recaptcha'\r\nimport { CaptchaContext } from '../../context/CaptchaContext'\r\n\r\nconst Login = () => {\r\n  const [inputMail, setinputMail] = useState('');\r\n  const [inputPassword, setinputPassword] = useState('');\r\n  const [disabledBtn, setdisabledBtn] = useState(false);\r\n  const URLLogin = ServiceLogin();\r\n  let history = useHistory();\r\n  const { pathname = '/', search = '' } = history.location;\r\n  const inputs = ['input-mail', 'input-password'];\r\n  const { setValidate } = useContext(DataContext);\r\n  const { captchaSiteKey } = useContext(CaptchaContext);\r\n  const captchaRef = useRef(null);\r\n\r\n  const clearState = () => {\r\n    setinputMail('');\r\n    setinputPassword('');\r\n    restoreInputs(inputs);\r\n    captchaRef.current?.reset();\r\n    CloseModal('modalLogin');\r\n  };\r\n\r\n  const Logueo = () => {\r\n    const validFields = verifyFieldsRequerid(inputs);\r\n\r\n    if (!validFields) {\r\n      OpenMessage('error', 'Campos obligatorios');\r\n      return false;\r\n    }\r\n    if (!validEmail(inputMail)) {\r\n      document.getElementById('input-mail').classList.add('is-invalid');\r\n      OpenMessage('error', 'El formato del correo electrónico no es válido');\r\n      return false;\r\n    }\r\n\r\n    const captchaValue = captchaRef.current?.getValue();\r\n    if (!captchaValue) {\r\n      OpenMessage('error', 'Debe aceptar el captcha');\r\n      captchaRef.current.reset();\r\n      return false\r\n    }\r\n    captchaRef.current.reset();\r\n\r\n    setdisabledBtn(true);\r\n    const params = {\r\n      email: inputMail,\r\n      password: inputPassword,\r\n      captcha: captchaValue,\r\n    };\r\n    POST(URLLogin, params).then((data) => {\r\n      setdisabledBtn(false);\r\n      if (data.token) {\r\n        setValidate({\r\n          valid: false,\r\n          registeredAuctions: data.auctions,\r\n          idAuction: '',\r\n          nameAuction: '',\r\n          dateAuction: ' ',\r\n          palletAuction: '',\r\n          idPallet: '',\r\n          onPaymentValidate: false,\r\n        });\r\n        clearState();\r\n        setSession(true, data);\r\n        document.getElementById('refreshToken').value = '0';\r\n        history.push(`${pathname}${search}`);\r\n      } else {\r\n        OpenMessage('error', data);\r\n      }\r\n    });\r\n  };\r\n\r\n  const enterKey = (keyCode) => {\r\n    if (keyCode === 13) {\r\n      Logueo();\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div className=\"modal\" id=\"modalLogin\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n      <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header modal-header-login mt-2 justify-content-end\">\r\n            <CloseModalIcon onHandleClick={clearState} />\r\n          </div>\r\n          <div className=\"modal-body\">\r\n            <div className=\"text-center mt-2\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n            </div>\r\n            <div className=\"text-center mb-4 mt-4\">\r\n              <h4 className=\"modal-title fw-bold text-uppercase\">Iniciar Sesión</h4>\r\n            </div>\r\n            <div className=\"mb-3 form-outline container-input-login\">\r\n              <input\r\n                type=\"text\"\r\n                className=\"form-control\"\r\n                id=\"input-mail\"\r\n                value={inputMail}\r\n                onChange={(e) => setinputMail(e.target.value)}\r\n                maxLength=\"80\"\r\n                onInput={(e) => onlyMail(e)}\r\n                onKeyUp={(e) => enterKey(e.keyCode)}\r\n                autoComplete=\"off\"\r\n              />\r\n              <label htmlFor=\"input-mail\" className=\"form-label\">\r\n                Correo electrónico:\r\n              </label>\r\n              <div className=\"form-notch\">\r\n                <div className=\"form-notch-leading\"></div>\r\n                <div className=\"form-notch-middle\"></div>\r\n                <div className=\"form-notch-trailing\"></div>\r\n              </div>\r\n            </div>\r\n            <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n              <input\r\n                type=\"password\"\r\n                className=\"form-control\"\r\n                id=\"input-password\"\r\n                value={inputPassword}\r\n                onChange={(e) => setinputPassword(e.target.value)}\r\n                maxLength=\"50\"\r\n                aria-describedby=\"icon-eyes-login\"\r\n                onKeyUp={(e) => enterKey(e.keyCode)}\r\n              />\r\n              <i className=\"fas fa-eye-slash\" id=\"icon-eyes-login\" onClick={(e) => changePasswordText('input-password', e)}></i>\r\n\r\n              <label htmlFor=\"input-password\" className=\"form-label\">\r\n                Contraseña:\r\n              </label>\r\n              <div className=\"form-notch\">\r\n                <div className=\"form-notch-leading\"></div>\r\n                <div className=\"form-notch-middle\"></div>\r\n                <div className=\"form-notch-trailing\"></div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"row mb-3 mt-4 justify-content-center\">\r\n            <div className=\"col-10 container-captcha\">\r\n              {captchaSiteKey && (\r\n                <ReCAPTCHA ref={captchaRef} sitekey={captchaSiteKey} />\r\n              )}\r\n            </div>\r\n          </div>\r\n          <div className=\"modal-footer modal-header-login\">\r\n            <div className=\"container-fluid\">\r\n              <div className=\"row\">\r\n                <div className=\"col text-center mb-3\">\r\n                  <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={Logueo} disabled={disabledBtn}>\r\n                    Iniciar sesión\r\n                  </button>\r\n                </div>\r\n              </div>\r\n              <div className=\"row\">\r\n                <div className=\"col text-center mb-3\">\r\n                  <a href=\"/recuperarpwd\">¿Olvidó su contraseña?</a>\r\n                </div>\r\n              </div>\r\n              <div className=\"row\">\r\n                <div className=\"col text-center mb-4\">\r\n                  <label>\r\n                    ¿No eres miembro?&nbsp;\r\n                    <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\" onClick={clearState}>\r\n                      Registrate\r\n                    </a>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport Select, { components } from 'react-select';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n  CloseModal,\r\n  OpenMessage,\r\n  verifyFieldsRequerid,\r\n  validEmail,\r\n  validMinMaxDate,\r\n  restoreInputs,\r\n  validPassword,\r\n  setMinMaxDate,\r\n  onlyText,\r\n  onlyMail,\r\n  changePasswordText,\r\n} from '../Utilities/General';\r\nimport { \r\n  ServiceClients, \r\n  ServiceAllianceCompany\r\n} from '../../helpers/getURL';\r\n\r\nimport '../../css/CheckIn/CheckIn.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\n\r\nfunction CheckIn() {\r\n  const [inputName, setinputName] = useState('');\r\n  const [inputLastName, setinputLastName] = useState('');\r\n  const [inputSecondLastName, setinputSecondLastName] = useState('');\r\n  const [inputBirthday, setinputBirthday] = useState('');\r\n  const [inputMail, setinputMail] = useState('');\r\n  const [inputPhone, setinputPhone] = useState('');\r\n  const [inputPassword, setinputPassword] = useState('');\r\n  const [inputVerifyPassword, setinputVerifyPassword] = useState('');\r\n  const [disabledBtn, setdisabledBtn] = useState(true);\r\n  const [checked, setChecked] = useState(false);\r\n  const URL = ServiceClients();\r\n  const [captcha, setCaptcha] = useState(false);\r\n  const captchaContact = useRef(null);\r\n  const [options, setOptions] = useState([]);\r\n  const [alliance, setAlliance] = useState(null);\r\n\r\n  useEffect(() => {\r\n    setMinMaxDate('input-birthday');\r\n    loadAllianceCompanyCatalog();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    enableBtn();\r\n  }, [alliance]);\r\n\r\n  const inputs = [\r\n    'input-nameCheckIn',\r\n    'input-firtsName',\r\n    'input-lastName',\r\n    'input-birthday',\r\n    'input-emailCheckIn',\r\n    'input-phoneCheckIn',\r\n    'input-passwordCheck',\r\n    'input-passwordCheck2',\r\n  ];\r\n\r\n  const loadAllianceCompanyCatalog = ()=> {\r\n    const URLAllianceCompany = ServiceAllianceCompany();\r\n    GET(URLAllianceCompany).then((data) => { \r\n      if (data === '401') {\r\n        return;\r\n      }\r\n\r\n      let localOptions = [];\r\n      data.map((item) => {\r\n        localOptions.push({ value: item.id, label: item.name });\r\n        return '';\r\n      });\r\n      //\r\n      setOptions(localOptions);\r\n    });\r\n  }\r\n\r\n  const enableBtn = () => {\r\n    console.log('Alianza ', alliance);\r\n    setdisabledBtn(true);\r\n    const chk = document.getElementById('CheckCondition').checked;\r\n\r\n    if (\r\n      inputName &&\r\n      inputLastName &&\r\n      inputSecondLastName &&\r\n      inputBirthday &&\r\n      inputMail &&\r\n      inputPhone &&\r\n      inputPassword &&\r\n      inputVerifyPassword &&\r\n      alliance?.value &&\r\n      chk\r\n    ) {\r\n      setdisabledBtn(false);\r\n    }\r\n  };\r\n\r\n  const clearState = () => {\r\n    setMinMaxDate('input-birthday');\r\n    setinputBirthday('');\r\n    setinputName('');\r\n    setinputLastName('');\r\n    setinputSecondLastName('');\r\n    setinputMail('');\r\n    setinputPhone('');\r\n    setinputPassword('');\r\n    setinputVerifyPassword('');\r\n    setChecked(false);\r\n    restoreInputs(inputs);\r\n    CloseModal('modalCheckIn');\r\n    setCaptcha(false);\r\n    setdisabledBtn(true);\r\n    setAlliance(null);\r\n    document.getElementById('input-birthday').classList.add('active');\r\n  };\r\n\r\n  const verifyFields = () => {\r\n    const validFields = verifyFieldsRequerid(inputs);\r\n    if (!validFields) {\r\n      OpenMessage('error', 'Campos obligatorios');\r\n      return false;\r\n    } else {\r\n      if (!validEmail(inputMail)) {\r\n        document.getElementById('input-emailCheckIn').classList.add('is-invalid');\r\n        OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n        return false;\r\n      }\r\n      if (!validMinMaxDate('input-birthday')) {\r\n        document.getElementById('input-birthday').classList.add('is-invalid');\r\n        OpenMessage('error', 'La fecha de nacimiento no es válida');\r\n        return false;\r\n      }\r\n      if (!verifyPassword()) {\r\n        return false;\r\n      }\r\n      return true;\r\n    }\r\n  };\r\n\r\n  const verifyPassword = () => {\r\n    const password = ['input-passwordCheck', 'input-passwordCheck2'];\r\n    const validFields = verifyFieldsRequerid(password);\r\n    if (!validFields) {\r\n      return false;\r\n    }\r\n    const msg = validPassword(inputPassword);\r\n\r\n    if (msg) {\r\n      OpenMessage('error', msg);\r\n      document.getElementById('input-passwordCheck').classList.add('is-invalid');\r\n      return false;\r\n    }\r\n    if (inputPassword !== inputVerifyPassword) {\r\n      password.forEach((id) => {\r\n        let element = document.getElementById(id);\r\n        element.classList.add('is-invalid');\r\n      });\r\n      OpenMessage('error', 'Las contraseñas no coinciden');\r\n      return false;\r\n    }\r\n\r\n    return true;\r\n  };\r\n\r\n  const onChange = () => {\r\n    setCaptcha(true);\r\n    enableBtn();\r\n  };\r\n\r\n  const createUser = () => {\r\n    const validFields = verifyFields();\r\n    if (!validFields) {\r\n      return false;\r\n    }\r\n\r\n    if (!captcha) {\r\n      OpenMessage('error', 'Debe aceptar el captcha');\r\n      return false;\r\n    }\r\n\r\n    if (!checked) {\r\n      OpenMessage('error', 'Debe aceptar los términos y condiciones');\r\n      return false;\r\n    }\r\n\r\n    const params = {\r\n      Name: inputName,\r\n      LastName: inputLastName,\r\n      SecondLastName: inputSecondLastName,\r\n      Birthdate: inputBirthday,\r\n      Phone: inputPhone,\r\n      Email: inputMail,\r\n      Password: inputPassword,\r\n      IdAllianceCompany: alliance.value\r\n    };\r\n\r\n    POST(URL, params).then((data) => {\r\n      setdisabledBtn(true);\r\n      if (data === true) {\r\n        clearState();\r\n        captchaContact.current.props.grecaptcha.reset();\r\n        setCaptcha(false);\r\n        OpenMessage('success', 'Operación exitosa. Favor de validar su correo para continuar con su registro');\r\n      } else {\r\n        if (data && data.errors && data.errors.Password.length > 0) {\r\n          OpenMessage('error', data.errors.Password[0]);\r\n        } else {\r\n          OpenMessage('error', data);\r\n        }\r\n        captchaContact.current.props.grecaptcha.reset();\r\n        setCaptcha(false);\r\n      }\r\n      setdisabledBtn(false);\r\n    });\r\n  };\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <div className=\"modal\" id=\"modalCheckIn\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n      <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header modal-header-login mt-2 justify-content-end\">\r\n            <CloseModalIcon onHandleClick={clearState} />\r\n          </div>\r\n          <div className=\"modal-body\">\r\n            <div className=\"text-center mb-5\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n            </div>\r\n            <div className=\"text-center mb-4 mt-4\">\r\n              <h4 className=\"modal-title fw-bold text-uppercase\">Registrarse</h4>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <input\r\n                  type=\"text\"\r\n                  className=\"form-control\"\r\n                  id=\"input-nameCheckIn\"\r\n                  value={inputName}\r\n                  onKeyUp={enableBtn}\r\n                  onInput={(e) => onlyText(e)}\r\n                  onChange={(e) => setinputName(e.target.value)}\r\n                  maxLength=\"50\"\r\n                  autoComplete=\"off\"\r\n                />\r\n                <label htmlFor=\"input-nameCheckIn\" className=\"col-form-label form-label\">\r\n                  Nombre(s):\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <input\r\n                  type=\"text\"\r\n                  className=\"form-control\"\r\n                  id=\"input-firtsName\"\r\n                  value={inputLastName}\r\n                  onKeyUp={enableBtn}\r\n                  onInput={(e) => onlyText(e)}\r\n                  onChange={(e) => setinputLastName(e.target.value)}\r\n                  maxLength=\"50\"\r\n                  autoComplete=\"off\"\r\n                />\r\n                <label htmlFor=\"input-firtsName\" className=\"col-form-label form-label\">\r\n                  Apellido Paterno:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <input\r\n                  type=\"text\"\r\n                  className=\"form-control\"\r\n                  id=\"input-lastName\"\r\n                  value={inputSecondLastName}\r\n                  onChange={(e) => setinputSecondLastName(e.target.value)}\r\n                  onInput={(e) => onlyText(e)}\r\n                  onKeyUp={enableBtn}\r\n                  maxLength=\"50\"\r\n                  autoComplete=\"off\"\r\n                />\r\n                <label htmlFor=\"input-lastName\" className=\"col-form-label form-label\">\r\n                  Apellido Materno:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <input\r\n                  type=\"date\"\r\n                  className=\"form-control active\"\r\n                  id=\"input-birthday\"\r\n                  value={inputBirthday}\r\n                  onKeyUp={enableBtn}\r\n                  onChange={(e) => setinputBirthday(e.target.value)}\r\n                  onBlur={(e) => e.target.classList.add('active')}\r\n                />\r\n                <label htmlFor=\"input-birthday\" className=\"col-form-label form-label\">\r\n                  Fecha de Nacimiento:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\" style={{ width: '112.8px' }}>\r\n                    {/* Se deja fijo el estilo porque tiene valor por defecto */}\r\n                  </div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <input\r\n                  type=\"text\"\r\n                  className=\"form-control\"\r\n                  id=\"input-emailCheckIn\"\r\n                  value={inputMail}\r\n                  onKeyUp={enableBtn}\r\n                  onChange={(e) => setinputMail(e.target.value)}\r\n                  maxLength=\"80\"\r\n                  onInput={(e) => onlyMail(e)}\r\n                  autoComplete=\"off\"\r\n                />\r\n                <label htmlFor=\"input-emailCheckIn\" className=\"col-form-label form-label\">\r\n                  Correo electrónico:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin\">\r\n                <NumberFormat\r\n                  format=\"(##) ####-####\"\r\n                  mask=\"\"\r\n                  className=\"form-control form-contact\"\r\n                  id=\"input-phoneCheckIn\"\r\n                  onKeyUp={enableBtn}\r\n                  onValueChange={(e) => setinputPhone(e.value)}\r\n                  value={inputPhone}\r\n                  autoComplete=\"off\"\r\n                />\r\n                <label htmlFor=\"input-phoneCheckIn\" className=\"col-form-label form-label\">\r\n                  Teléfono:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline input-group input-password container-input-checkin\">\r\n                <input\r\n                  type=\"password\"\r\n                  className=\"form-control\"\r\n                  id=\"input-passwordCheck\"\r\n                  value={inputPassword}\r\n                  onKeyUp={enableBtn}\r\n                  onChange={(e) => setinputPassword(e.target.value)}\r\n                  maxLength=\"50\"\r\n                  aria-describedby=\"icon-eyes-checkin\"\r\n                />\r\n                <i className=\"fas fa-eye-slash\" id=\"icon-eyes-checkin\" onClick={(e) => changePasswordText('input-passwordCheck', e)}></i>\r\n                <label htmlFor=\"input-passwordCheck\" className=\"col-form-label form-label\">\r\n                  Contraseña:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            <div className=\"row mb-3\">\r\n              <div className=\"col-10 form-outline container-input-checkin input-group input-password\">\r\n                <input\r\n                  type=\"password\"\r\n                  className=\"form-control\"\r\n                  id=\"input-passwordCheck2\"\r\n                  value={inputVerifyPassword}\r\n                  onKeyUp={enableBtn}\r\n                  onChange={(e) => setinputVerifyPassword(e.target.value)}\r\n                  maxLength=\"50\"\r\n                  aria-describedby=\"icon-eyes-checkin2\"\r\n                />\r\n                <i className=\"fas fa-eye-slash\" id=\"icon-eyes-checkin2\" onClick={(e) => changePasswordText('input-passwordCheck2', e)}></i>\r\n                <label htmlFor=\"input-passwordCheck2\" className=\"col-form-label form-label\">\r\n                  Verificar Contraseña:\r\n                </label>\r\n                <div className=\"form-notch\">\r\n                  <div className=\"form-notch-leading\"></div>\r\n                  <div className=\"form-notch-middle\"></div>\r\n                  <div className=\"form-notch-trailing\"></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3\" id=\"AQUI\">\r\n            \r\n              <span className=\"dropdown shadow-0 col-10 p-0 form-outline input-password container-input-checkin\">\r\n                <Select\r\n                  options={options}\r\n                  isSearchable={true}\r\n                  onChange={ setAlliance }\r\n                  placeholder=\"¿Tienes convenio con alguna empresa?\"\r\n                  value={alliance}\r\n                  //isDisabled={props.disabled}\r\n                  //styles={style}\r\n                  components={{ DropdownIndicator }}\r\n                />\r\n              </span>\r\n            </div>\r\n\r\n            <div className=\"mb-3\"></div>\r\n          </div>\r\n          <div className=\"modal-footer modal-header-login\">\r\n            <div className=\"container-fluid\">\r\n              <div className=\"row\">\r\n                <div className=\"col-9 container-input-checkin\">\r\n                  <div className=\"form-check\">\r\n                    <input\r\n                      className=\"form-check-input\"\r\n                      type=\"checkbox\"\r\n                      id=\"CheckCondition\"\r\n                      onClick={(e) => {\r\n                        setChecked(e.target.checked);\r\n                        enableBtn();\r\n                      }}\r\n                      checked={checked}\r\n                      onChange={(e) => {}}\r\n                      onKeyUp={enableBtn}\r\n                    />\r\n                    <label className=\"form-check-label\" htmlFor=\"CheckCondition\">\r\n                      Acepto todos los &nbsp;\r\n                      <a href=\"/resources/terminos-y-condiciones-subasta-2021.pdf\" target=\"_blank\" rel=\"noreferrer\">\r\n                        Términos y condiciones\r\n                      </a>\r\n                    </label>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row mb-3 mt-4 justify-content-center\">\r\n                <div className=\"col-10 container-captcha\">\r\n                  <ReCAPTCHA ref={captchaContact} sitekey=\"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI\" onChange={onChange} />\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"row\">\r\n                <div className=\"col text-center mb-3 mt-4\">\r\n                  <button type=\"button\" className=\"btn btn-outline-danger btn-lg\" onClick={createUser} disabled={disabledBtn}>\r\n                    Crear Cuenta\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default CheckIn;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link, useLocation, useHistory } from 'react-router-dom';\r\n\r\n//Componentes\r\nimport Login from '../Login/Login';\r\nimport CheckIn from '../CheckIn/CheckIn';\r\n\r\n//CSS\r\nimport '../../css/menu.css';\r\n\r\n//helpers\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { setSession, validSession, closeMenuMobile, OpenCloseStreaming } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { getBillingUrl } from '../../helpers/getConstants';\r\nimport { getDiamondUrl } from '../../helpers/getConstants';\r\n\r\nconst Header = () => {\r\n  const [data, setData] = useState([]);\r\n  const history = useHistory();\r\n  const { search } = useLocation();\r\n  const { setValidate } = useContext(DataContext);\r\n  const isHome = new URLSearchParams(search).get('home');\r\n  const { pathname } = history.location;\r\n  const IdAuction = new URLSearchParams(search).get('id');\r\n  const billingUrl = getBillingUrl();\r\n  const diamondUrl = getDiamondUrl();\r\n\r\n  if (isHome) {\r\n    window.location.href = '/';\r\n  }\r\n\r\n  useEffect(() => {\r\n    getConfig('header.json').then((data) => {\r\n      setData(data);\r\n    });\r\n\r\n    getConfig('constants.json').then((response) => {\r\n      if (response) {\r\n        const constants = JSON.stringify(response);\r\n        sessionStorage.setItem('constants', constants);\r\n        const PROTOCOL = window.location.protocol;\r\n        if (response.redirectSSL && PROTOCOL === 'http:') {\r\n          const URL = 'https://' + window.location.host + window.location.pathname;\r\n          window.location.href = URL;\r\n        }\r\n      }\r\n    });\r\n\r\n    const urlServices = sessionStorage.getItem('URLServices');\r\n    if (!urlServices || urlServices.length >= 2) {\r\n      getConfig('urlServices.json').then((response) => {\r\n        const url = JSON.stringify(response);\r\n        sessionStorage.setItem('URLServices', url);\r\n      });\r\n    }\r\n  }, []);\r\n\r\n  const LOCATION = useLocation();\r\n  let aboutActive = '',\r\n    auctionActive = '',\r\n    catalogActive = '',\r\n    servicesActive = '',\r\n    contactActive = '',\r\n    hideMenu = '',\r\n    btnExitStreaming = 'hide';\r\n\r\n  const menuActive = () => {\r\n    switch (LOCATION.pathname.toLowerCase()) {\r\n      case '/quienes-somos':\r\n        aboutActive = 'active';\r\n        break;\r\n      case '/subastas':\r\n        auctionActive = 'active';\r\n        break;\r\n      case '/catalogo':\r\n        catalogActive = 'active';\r\n        break;\r\n      case '/servicios':\r\n        servicesActive = 'active';\r\n        break;\r\n      case '/contacto':\r\n        contactActive = 'active';\r\n        break;\r\n      case '/streaming':\r\n        hideMenu = 'hide';\r\n        btnExitStreaming = 'show menu__streaming';\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  };\r\n\r\n  const closeSession = () => {\r\n    setValidate({\r\n      valid: false,\r\n      registeredAuctions: [],\r\n      idAuction: '',\r\n      nameAuction: '',\r\n      dateAuction: '',\r\n      palletAuction: '',\r\n      idPallet: '',\r\n      onPaymentValidate: false,\r\n    });\r\n    setSession(false, '');\r\n    history.push('/?home=true');\r\n  };\r\n\r\n  const exitStreaming = (path) => {\r\n    if (pathname === '/streaming') {\r\n      if (path === 'perfil') {\r\n        history.push({\r\n          search: `?id=${IdAuction}&profile=true`,\r\n        });\r\n      }\r\n      OpenCloseStreaming();\r\n    } else {\r\n      history.push(`/${path}`);\r\n    }\r\n  };\r\n  const exitStreamingLogOut = (path) => {\r\n    if (pathname === '/streaming') {\r\n      if (path === 'logout') {\r\n        history.push({\r\n          search: `?id=${IdAuction}&logout=true`,\r\n        });\r\n      }\r\n      OpenCloseStreaming();\r\n    } else {\r\n      closeSession();\r\n    }\r\n  };\r\n\r\n  /*useLayoutEffect(() => {\r\n    const validToken = () => {\r\n      const id = localStorage.getItem('id');\r\n      const element = document.getElementById('refreshToken');\r\n      const dateExpire = validDateExpire();\r\n\r\n      if (dateExpire === -1 && element.value === '0' && id) {\r\n        //actualizar TOKEN\r\n        element.value = '1'; //valor cambia en el login y en APIServices hay validacion\r\n        refreshToken().then((token) => {\r\n          if (token === 2) {\r\n            setSession(false, '');\r\n            OpenMessage('warning', 'Su sesión ha expirado, favor de ingresar nuevamente sus credenciales');\r\n            setTimeout(function () {\r\n              window.location = './?home=true';\r\n            }, 5000);\r\n          }\r\n        });\r\n      }\r\n    };\r\n\r\n    validToken();\r\n  }, []);*/\r\n\r\n  validSession();\r\n\r\n  menuActive();\r\n  const { logo = '' } = data;\r\n\r\n  return (\r\n    <div className=\"container-header\">\r\n      <nav className=\"navbar-expand-sm navbar-light container-menu-primary\">\r\n        <div className=\"collapse navbar-collapse justify-content-end\" id=\"menuPrimary\">\r\n          <ul className=\"navbar-nav mr-auto container__users\">\r\n            <li className=\"nav-item container__users--item hide\">\r\n              <a\r\n                className=\"nav-link text-uppercase container-menu-primary--login\"\r\n                href=\"!#\"\r\n                data-bs-toggle=\"modal\"\r\n                data-bs-target=\"#modalLogin\"\r\n              >\r\n                Iniciar sesión\r\n              </a>\r\n            </li>\r\n            <li className=\"nav-item container__users--item hide\">\r\n              <a className=\"nav-link\" href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\">\r\n                <button className=\"btn btn-outline-danger\" type=\"button\">\r\n                  Registrarse\r\n                </button>\r\n              </a>\r\n            </li>\r\n            <li className=\"nav-item container__users--login hide\">\r\n              <div className=\"dropdown dropdown-account\">\r\n                <a\r\n                  className=\"btn btn-user dropdown-toggle\"\r\n                  href=\"!#\"\r\n                  role=\"button\"\r\n                  id=\"dropdownMenuLogin\"\r\n                  data-bs-toggle=\"dropdown\"\r\n                  aria-expanded=\"false\"\r\n                >\r\n                  <i className=\"fas fa-user-circle\"></i>\r\n                  <span id=\"userName\">Usuario</span>\r\n                </a>\r\n\r\n                <ul className=\"dropdown-menu\" aria-labelledby=\"dropdownMenuLogin\">\r\n                  <li>\r\n                    <a\r\n                      href=\"!#\"\r\n                      className=\"dropdown-item\"\r\n                      onClick={(e) => {\r\n                        exitStreaming('perfil');\r\n                        e.preventDefault();\r\n                      }}\r\n                    >\r\n                      Mi cuenta\r\n                    </a>\r\n                  </li>\r\n                  <li>\r\n                    <a\r\n                      href=\"!#\"\r\n                      className=\"dropdown-item\"\r\n                      onClick={(e) => {\r\n                        exitStreamingLogOut('logout');\r\n                        e.preventDefault();\r\n                      }}\r\n                    >\r\n                      Cerrar Sesión\r\n                    </a>\r\n                  </li>\r\n                </ul>\r\n              </div>\r\n            </li>\r\n          </ul>\r\n        </div>\r\n      </nav>\r\n\r\n      <nav className=\"navbar-expand-sm navbar-light\">\r\n        <div className=\"navbar-brand\">\r\n          <img src={logo} alt=\"logo MLS\" className=\"img-fluid\" onClick={() => exitStreaming('?home=true')} />\r\n        </div>\r\n        <button id=\"navbarMenu\" className=\"navbar-toggler\" data-bs-toggle=\"collapse\" data-bs-target=\"#menu\">\r\n          <i className=\"fas fa-bars\"></i>\r\n        </button>\r\n        <div className=\"navbar-collapse collapse justify-content-end container-menu\" id=\"menu\">\r\n          {/*MENU MOBILE*/}\r\n          <div className=\"row mt-4 mb-5 container__menu--secondLogin\">\r\n            <div className=\"col-6 text-end container__menu--secondLogin-login loginMobile\">\r\n              <a\r\n                className=\"nav-link text-uppercase container-menu-primary--login\"\r\n                href=\"!#\"\r\n                data-bs-toggle=\"modal\"\r\n                data-bs-target=\"#modalLogin\"\r\n              >\r\n                Iniciar sesión\r\n              </a>\r\n            </div>\r\n            <div className=\"col-6 text-start container__menu--secondLogin-register loginMobile\">\r\n              <a className=\"nav-link\" href=\"!#\" data-bs-toggle=\"modal\" data-bs-target=\"#modalCheckIn\">\r\n                <button className=\"btn btn-outline-danger\" type=\"button\">\r\n                  Registrarse\r\n                </button>\r\n              </a>\r\n            </div>\r\n          </div>\r\n          <div className=\"row container__users--secondUser\">\r\n            <div className=\"col-12 text-center btn-user loginMobile--items hide\">\r\n              <i className=\"fas fa-user-circle\"></i>\r\n              <span id=\"userName2\">Usuario</span>\r\n            </div>\r\n          </div>\r\n          <div className=\"row container__users--secondUser\">\r\n            <div className=\"col-6 loginMobile--items hide\">\r\n              <a\r\n                href=\"!#\"\r\n                className=\"nav-link text-uppercase container-menu-primary--login\"\r\n                onClick={(e) => {\r\n                  exitStreaming('perfil');\r\n                  e.preventDefault();\r\n                }}\r\n              >\r\n                Mi perfil\r\n              </a>\r\n            </div>\r\n            <div className=\"col-6 text-start loginMobile--items hide\">\r\n              <a\r\n                href=\"!#\"\r\n                className=\"nav-link text-uppercase container-menu-primary--login\"\r\n                onClick={(e) => {\r\n                  exitStreamingLogOut('logout');\r\n                  e.preventDefault();\r\n                }}\r\n              >\r\n                Cerrar Sesión\r\n              </a>\r\n            </div>\r\n          </div>\r\n          {/*FIN MENU MOBILE*/}\r\n          <ul className=\"navbar-nav\">\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <Link className={'nav-link text-uppercase fw-bold ' + aboutActive} to=\"/quienes-somos\" onClick={() => closeMenuMobile()}>\r\n                Quiénes somos\r\n              </Link>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <Link className={'nav-link text-uppercase fw-bold ' + auctionActive} to=\"/subastas\" onClick={() => closeMenuMobile()}>\r\n                Subastas\r\n              </Link>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <Link className={'nav-link text-uppercase fw-bold ' + catalogActive} to=\"/catalogo\" onClick={() => closeMenuMobile()}>\r\n                Catálogo\r\n              </Link>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <a className='nav-link text-uppercase fw-bold' href={diamondUrl} target=\"_blank\" rel='noreferrer'>\r\n                Consignación\r\n              </a>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <Link className={'nav-link text-uppercase fw-bold ' + servicesActive} to=\"/servicios\" onClick={() => closeMenuMobile()}>\r\n                Servicios\r\n              </Link>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <a className='nav-link text-uppercase fw-bold' href={billingUrl} target=\"_blank\" rel='noreferrer'>\r\n                Facturación\r\n              </a>\r\n            </li>\r\n            <li className={'nav-item ' + hideMenu}>\r\n              <Link className={'nav-link text-uppercase fw-bold ' + contactActive} to=\"/contacto\" onClick={() => closeMenuMobile()}>\r\n                Contacto\r\n              </Link>\r\n            </li>\r\n            <li className={'nav-item ' + btnExitStreaming}>\r\n              <button className=\"btn btn-outline-danger btn-lg btn-out-streaming\" onClick={() => exitStreaming('?home=true')}>\r\n                <i className=\"fas fa-sign-out-alt\"></i>Salir del streaming\r\n              </button>\r\n            </li>\r\n          </ul>\r\n        </div>\r\n      </nav>\r\n      <Login />\r\n      <CheckIn />\r\n      <input type=\"hidden\" id=\"refreshToken\" value=\"0\" />\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/footer.css';\r\n\r\nconst FooterMain = () => {\r\n  const [data, setData] = useState([]);\r\n  const LOCATION = useLocation();\r\n  let email = '',\r\n    phone1 = '',\r\n    phone2 = '',\r\n    phone3 = '',\r\n    phone4 = '',\r\n    desc1 = '',\r\n    desc2 = '',\r\n    desc3 = '',\r\n    desc4 = '',\r\n    days = '',\r\n    schedule = '',\r\n    address = '',\r\n    socialMedia = [],\r\n    socialKey = 0,\r\n    hideFooter = '';\r\n\r\n  useEffect(() => {\r\n    getConfig('footer2.json').then((data) => setData(data));\r\n  }, []);\r\n\r\n  if (data && data.footer) {\r\n    email = data.footer.email;\r\n    phone1 = data.footer.phone1;\r\n    phone2 = data.footer.phone2;\r\n    phone3 = data.footer.phone3;\r\n    phone4 = data.footer.phone4;\r\n    desc1 = data.footer.desc1;\r\n    desc2 = data.footer.desc2;\r\n    desc3 = data.footer.desc3;\r\n    desc4 = data.footer.desc4;\r\n    days = data.footer.days;\r\n    schedule = data.footer.schedule;\r\n    address = data.footer.address;\r\n    socialMedia = data.footer.socialMedia;\r\n  }\r\n\r\n  const viewFooter = () => {\r\n    if (LOCATION.pathname.toLowerCase() === '/streaming') {\r\n      hideFooter = 'hide';\r\n    }\r\n  };\r\n\r\n  viewFooter();\r\n\r\n  return (\r\n    <footer>\r\n      <div className=\"row\">\r\n        <section className={hideFooter}>\r\n          <div className=\"container text-center text-md-start\">\r\n            <div className=\"row container-footer\">\r\n              <div className=\"col-12 col-md-4 col-footer\">\r\n                <div className=\"row\">\r\n                  <div className=\"col mb-9\">\r\n                    <img src=\"./resources/LogoBlanco.svg\" alt=\"logo MLS\" className=\"img-logo-footer img-fluid\" width=\"220px\" />\r\n                  </div>\r\n                </div>\r\n                <div className=\"row mb-5\">\r\n                  <div className=\"col\">\r\n                    <img src=\"./resources/MLSLogoBlanco.svg\" alt=\"logo MLS\" className=\"img-logo-footer img-fluid\" width=\"220px\" />\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-12 col-md-4 col-footer\">\r\n                <div className=\"row mb-4 container-footer__align\">\r\n                  <div className=\"col-xl-4 col-12\">\r\n                    <h2 className=\"container-footer-tel\">\r\n                      <a href={'tel:' + phone1} rel=\"noreferrer\">\r\n                        <b>{phone1}</b>\r\n                      </a>\r\n                    </h2>\r\n                  </div>\r\n                  <div className=\"col-xl-8 col-12\">\r\n                    <h2 className=\"container-footer-tel\">{desc1}</h2>\r\n                  </div>\r\n                </div>\r\n\r\n                <div className=\"row mb-4 container-footer__align\">\r\n                  <div className=\"col-xl-4 col-12\">\r\n                    <h2 className=\"container-footer-tel\">\r\n                      <a href={'tel:' + phone2} rel=\"noreferrer\">\r\n                        <b>{phone2}</b>\r\n                      </a>\r\n                    </h2>\r\n                  </div>\r\n                  <div className=\"col-xl-8 col-12\">\r\n                    <h2 className=\"container-footer-tel\">{desc2}</h2>\r\n                  </div>\r\n                </div>\r\n                <div className=\"row mb-4 container-footer__align\">\r\n                  <div className=\"col-xl-4 col-12\">\r\n                    <h2 className=\"container-footer-tel\">\r\n                      <a href={'tel:' + phone3} rel=\"noreferrer\">\r\n                        <b>{phone3}</b>\r\n                      </a>\r\n                    </h2>\r\n                  </div>\r\n                  <div className=\"col-xl-8 col-12\">\r\n                    <h2 className=\"container-footer-tel\">{desc3}</h2>\r\n                  </div>\r\n                </div>\r\n                <div className=\"row mb-4 container-footer__align\">\r\n                  <div className=\"col-xl-4 col-12\">\r\n                    <h2 className=\"container-footer-tel\">\r\n                      <a href={'tel:' + phone4} rel=\"noreferrer\">\r\n                        <b>{phone4}</b>\r\n                      </a>\r\n                    </h2>\r\n                  </div>\r\n                  <div className=\"col-xl-8 col-12\">\r\n                    <h2 className=\"container-footer-tel\">{desc4}</h2>\r\n                  </div>\r\n                </div>\r\n                <p className=\"text-center\">\r\n                  <a href={`mailto:${email}`} rel=\"noreferrer\" className=\"hover-footer\">\r\n                    {email}\r\n                  </a>\r\n                </p>\r\n                <p className=\"mb-4 fst-italic text-center\">\r\n                  <label className=\"lbl-direction\">{address}</label>\r\n                </p>\r\n\r\n                <p className=\"text-center\">\r\n                  <label>{days}</label>\r\n                </p>\r\n                <p className=\"text-center\">\r\n                  <label>{schedule}</label>\r\n                </p>\r\n              </div>\r\n\r\n              <div className=\"col-12 col-md-4 col-footer\">\r\n                <a href=\"/resources/terminos-y-condiciones-subasta-2021.pdf\" target=\"_blank\" rel=\"noreferrer\" className=\"hover-footer\">\r\n                  <h2 className=\"text-center mb-4\">Términos y condiciones</h2>\r\n                </a>\r\n                <p className=\"text-center\">\r\n                  <label className=\"mb-4 text-uppercase fw-bold\">Siguenos en:</label>\r\n                </p>\r\n                <p className=\"text-center\">\r\n                  {socialMedia.map(({ url, icon }) => {\r\n                    socialKey++;\r\n                    return (\r\n                      <span className=\"mb-4\" key={socialKey}>\r\n                        <a href={url} target=\"_blank\" rel=\"noreferrer\">\r\n                          <i className={icon}></i>\r\n                        </a>\r\n                      </span>\r\n                    );\r\n                  })}\r\n                </p>\r\n              </div>\r\n            </div>\r\n            <div className=\"row\">\r\n              <div className=\"col-12 text-center\"></div>\r\n            </div>\r\n          </div>\r\n        </section>\r\n\r\n        <div className=\"text-center container-footer2\">\r\n          Todos los derechos reservados por Montepío Luz Saviñón, I.A.P. | &nbsp;\r\n          <a className=\"text-reset fw-bold\" href=\"/resources/aviso-de-privacidad-subastas-2023.pdf\" target=\"_blank\" rel=\"noreferrer\">\r\n            Aviso de privacidad\r\n          </a>\r\n        </div>\r\n      </div>\r\n    </footer>\r\n  );\r\n};\r\n\r\nexport default FooterMain;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { OpenOfferSuccess } from '../Utilities/General';\r\n\r\nexport const CountDownCatalog = ({\r\n  startAuctionDate,\r\n  endAuctionDate,\r\n  classAuction,\r\n  onCourseCountDown,\r\n  onEndCountDown,\r\n  textStatusAuction,\r\n  titleColor,\r\n  scheduled,\r\n  statusAuction\r\n}) => {\r\n  const [timerHours, setTimerHours] = useState('00');\r\n  const [timerMinutes, setTimerMinutes] = useState('00');\r\n  const [timerSeconds, setTimerSeconds] = useState('00');\r\n\r\n  let interval = useRef();\r\n\r\n  const startTimer = () => {\r\n    let countDownDate = startAuctionDate.getTime();\r\n\r\n    interval = setInterval(() => {\r\n      const now = new Date().getTime();\r\n      const status = Math.sign(countDownDate - now);\r\n      if (status < 0) {\r\n        countDownDate = endAuctionDate;\r\n        onCourseCountDown();\r\n      }\r\n      const distance = countDownDate - now;\r\n      let days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n      let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)) + days * 24;\r\n      let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n      let seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n      if (distance < 0) {\r\n        clearInterval(interval);\r\n        onEndCountDown();\r\n      } else {\r\n        if (hours === 0 && minutes === 20 && seconds === 0 && statusAuction === scheduled) {\r\n          const message = '<h2>LA SUBASTA ESTÁ A PUNTO</h2><h2>DE COMENZAR</h2>';\r\n          OpenOfferSuccess(message);\r\n        }\r\n        if (hours < 10) {\r\n          hours = '0' + hours;\r\n        }\r\n        if (minutes < 10) {\r\n          minutes = '0' + minutes;\r\n        }\r\n        if (seconds < 10) {\r\n          seconds = '0' + seconds;\r\n        }\r\n        setTimerHours(hours);\r\n        setTimerMinutes(minutes);\r\n        setTimerSeconds(seconds);\r\n      }\r\n    }, 1000);\r\n  };\r\n\r\n  useEffect(() => {\r\n    startTimer();\r\n    return () => {\r\n      clearInterval(interval);\r\n    };\r\n  }, []);\r\n  return (\r\n    <>\r\n      <h4 className={`text-center ${titleColor}`}>{textStatusAuction}</h4>\r\n      <div className={classAuction}>\r\n        <section>\r\n          <p>\r\n            <img src=\"./resources/Timer@2x.png\" alt=\"\" width=\"30px\" />\r\n          </p>\r\n        </section>\r\n        <section>\r\n          <p>{timerHours}</p>\r\n          <p>\r\n            <small>HORAS</small>\r\n          </p>\r\n        </section>\r\n        <span className=\"separator\">:</span>\r\n        <section>\r\n          <p>{timerMinutes}</p>\r\n          <p>\r\n            <small>MINUTOS</small>\r\n          </p>\r\n        </section>\r\n        <span className=\"separator\">:</span>\r\n        <section>\r\n          <p>{timerSeconds}</p>\r\n          <p>\r\n            <small>SEGUNDOS</small>\r\n          </p>\r\n        </section>\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable jsx-a11y/no-redundant-roles */\r\nimport React, { useState } from 'react';\r\n\r\nexport const OrderCatalog = (props) => {\r\n  const [orders] = useState([\r\n    { label: 'Ordenar por', value: '' },\r\n    { label: 'Precio: de menor a mayor', value: '01' },\r\n    { label: 'Precio: de mayor a menor', value: '02' },\r\n    { label: 'Lote: ascendente', value: '03' },\r\n    { label: 'Lote: descendente', value: '04' },\r\n    { label: 'Categoría: ascendente', value: '05' },\r\n    { label: 'Categoría: descendente', value: '06' },\r\n  ]);\r\n\r\n  return (\r\n    <form>\r\n      <div className='dropdown shadow-0'>\r\n        <button\r\n          className='btn dropdown-toggle drop-element-2 shadow-0'\r\n          role='button'\r\n          data-mdb-toggle='dropdown'\r\n          id='dropdownMenuButton'\r\n          aria-expanded='false'\r\n        >\r\n          {props.searchOrder}\r\n        </button>\r\n        <ul className='dropdown-menu' aria-labelledby='dropdownMenuButton'>\r\n          {orders.map((item, i) => {\r\n            return (\r\n              <li key={i}>\r\n                <a\r\n                  href='#'\r\n                  className='dropdown-item drop-items'\r\n                  onClick={props.handleSelectOrder}\r\n                >\r\n                  {item.label}\r\n                </a>\r\n              </li>\r\n            );\r\n          })}\r\n        </ul>\r\n      </div>\r\n    </form>\r\n  );\r\n};\r\n","import React from \"react\";\r\n\r\nexport const PaginationCatalog = (props) => {\r\n  let pageLinks = [];\r\n  for (let i = 1; i <= props.pages; i++) {\r\n    let active = props.currentPage === i ? \"page-active\" : \"\";\r\n    pageLinks.push(\r\n      <li\r\n        className={`page-item`}\r\n        key={i}\r\n        onClick={(e) => props.nextPage(i)}\r\n      >\r\n        <button className={`page-link num-pages ${active}`}>{i}</button>\r\n      </li>\r\n    );\r\n  }\r\n  if(props.pages > 5 && window.innerWidth < 500){\r\n    pageLinks = pageLinks.filter(\r\n      (page) =>\r\n        parseInt(page.key) >= props.currentPage - 1 &&\r\n        parseInt(page.key) <= props.currentPage + 1\r\n    );\r\n  }\r\n  else if (props.pages > 7) {\r\n    pageLinks = pageLinks.filter(\r\n      (page) =>\r\n        parseInt(page.key) >= props.currentPage - 3 &&\r\n        parseInt(page.key) <= props.currentPage + 3\r\n    );\r\n  }\r\n  return (\r\n    <nav aria-label=\"...\">\r\n      <ul className=\"pagination\">\r\n        {props.currentPage > 1 ? (\r\n          <li\r\n            className={`page-item prev-pag`}\r\n            onClick={(e) => props.nextPage(props.currentPage - 1)}\r\n          >\r\n            <button className={`page-link num-pages`} aria-label=\"Previous\">\r\n              <i className=\"fas fa-caret-left\"></i>\r\n            </button>\r\n          </li>\r\n        ) : (\r\n          \"\"\r\n        )}\r\n        {props.currentPage > 4 && props.pages > 7&& window.innerWidth > 500 &&  <li><i className=\"fas fa-ellipsis-h  ellipsis\"></i></li>}\r\n        {props.currentPage > 2 && props.pages > 5 && window.innerWidth < 500 && <li><i className=\"fas fa-ellipsis-h  ellipsis\"></i></li>}\r\n        {pageLinks}\r\n        {props.currentPage < props.pages - 3 && props.pages > 7 && window.innerWidth > 500 && (\r\n          <li><i className=\"fas fa-ellipsis-h ellipsis\"></i></li>\r\n        )}\r\n        {props.currentPage < props.pages - 1 && props.pages > 5 && window.innerWidth < 500 && (\r\n          <li><i className=\"fas fa-ellipsis-h  ellipsis\"></i></li>\r\n        )}\r\n        {props.currentPage < props.pages ? (\r\n          <li\r\n            className={`page-item next-pag`}\r\n            onClick={(e) => props.nextPage(props.currentPage + 1)}\r\n          >\r\n            <button className={`page-link num-pages`} aria-label=\"Next\">\r\n              <i className=\"fas fa-caret-right\"></i>\r\n            </button>\r\n          </li>\r\n        ) : (\r\n          \"\"\r\n        )}\r\n      </ul>\r\n    </nav>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n  formatCurrency,\r\n  OpenMessage,\r\n  OpenOfferSuccess,\r\n  setCart,\r\n  validSession,\r\n} from '../Utilities/General';\r\nimport { POST, DELETE, GET } from '../../helpers/APIServices';\r\nimport {\r\n  ServiceFavoritesDeletetById,\r\n  ServiceFavoritesPost,\r\n  ServiceGetNextLotOffer,\r\n  ServicePostMaxOfert,\r\n} from '../../helpers/getURL';\r\nimport { Offer } from '../Register/Offer';\r\nimport {\r\n  getIdGoldenMinutes,\r\n  getUserRejectedStatus,\r\n  getAwardLot,\r\n  getAvailableLot,\r\n  getRetiredLot,\r\n  getPaidLot,\r\n} from '../../helpers/getConstants';\r\n\r\nexport const ProductGridItem = (props) => {\r\n  const [loading, setLoading] = useState(false);\r\n  const [offer, setOffer] = useState(false);\r\n  const [offerLot, setOfferLot] = useState(props.offerLot);\r\n  const [offerSelected, setOfferSelected] = useState(\r\n    props.offerLot?.length > 0 ? props.offerLot[0].precio : props.price\r\n  );\r\n  const [confirm, setConfirm] = useState(false);\r\n  const [statusDescription, setStatusDescription] = useState('');\r\n  const [cardColor, setCardColor] = useState('');\r\n  const [headerCard, setheaderCard] = useState('');\r\n  const [iconLot, setIconLot] = useState('');\r\n  const statusRejected = getUserRejectedStatus();\r\n  const awardID = getAwardLot().toLowerCase();\r\n  const availableID = getAvailableLot();\r\n  const retiredID = getRetiredLot();\r\n  const paidID = getPaidLot();\r\n  const IdCustomer = localStorage.getItem('id');\r\n  const actual = 'ACTUAL';\r\n  const {\r\n    id,\r\n    price,\r\n    url,\r\n    title,\r\n    reference,\r\n    description,\r\n    idAuction,\r\n    registered,\r\n    favorities,\r\n    idPaleta,\r\n    idType,\r\n    idStatus,\r\n    auctionTypes,\r\n    auctionStatus,\r\n    format,\r\n    idLoteStatus,\r\n    enablePostSale,\r\n    statusCustomer,\r\n    clicked,\r\n    setClicked,\r\n    consigna,\r\n    consignaSAP,\r\n    finalPrice,\r\n    actualLotID,\r\n    idClient,\r\n  } = props;\r\n\r\n  useEffect(() => {\r\n    const statusLot =\r\n      id === actualLotID &&\r\n      idType === auctionTypes.idStreaming &&\r\n      idStatus === auctionStatus.execution\r\n        ? actual\r\n        : idLoteStatus;\r\n    //console.log('Lote', id, id =='0fbca6af-7c9b-40f3-a510-72cec305ef9c')\r\n    if(id =='0fbca6af-7c9b-40f3-a510-72cec305ef9c') {\r\n      console.log('Lote', id)\r\n      console.log('statusLot', statusLot)\r\n      console.log('idLoteStatus', idLoteStatus)\r\n      console.log('Variable', paidID)\r\n      console.log('Comparacion', idLoteStatus === paidID)\r\n    }\r\n\r\n\r\n    switch (statusLot) {\r\n      case actual:\r\n        setStatusDescription('Estatus: Ahora');\r\n        setCardColor('lot-now');\r\n        setheaderCard('now-bg');\r\n        setIconLot('info2');\r\n        break;\r\n      case awardID:\r\n        if (idClient === IdCustomer) {\r\n          setStatusDescription('Estatus: Ganado');\r\n          setCardColor('lot-won');\r\n          setheaderCard('won-bg');\r\n          setIconLot('done2');\r\n        } else {\r\n          setStatusDescription('Estatus: Vendido');\r\n          setCardColor('lot-sold');\r\n          setheaderCard('sold-bg');\r\n          setIconLot('Group 18329');\r\n        }\r\n        break;\r\n      case availableID:\r\n        setStatusDescription('Lote ' + reference);\r\n        setCardColor('lot-next');\r\n        setheaderCard('next-bg');\r\n        setIconLot('minus');\r\n        break;\r\n      case retiredID:\r\n        setStatusDescription('Estatus: Retirado');\r\n        setCardColor('lot-retired');\r\n        setheaderCard('retired-bg');\r\n        setIconLot('cross2');\r\n        break;\r\n      case paidID:\r\n        setStatusDescription('Estatus: Pagado');\r\n        setCardColor('lot-paid');\r\n        setheaderCard('paid-bg');\r\n        setIconLot('done2');\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  }, []);\r\n\r\n  const addFavorite = (e) => {\r\n    const item = document.getElementById(`favoriteItem-${id}`);\r\n    let isFavorite = item.getAttribute('isfavorite');\r\n    const idCustomer = localStorage.getItem('id');\r\n    if (isFavorite === 'true' ? true : false) {\r\n      item.src = './resources/Star6.svg';\r\n      item.setAttribute('isfavorite', 'false');\r\n      const URLFavoritesDelete = ServiceFavoritesDeletetById(idCustomer);\r\n      let url = new URL(URLFavoritesDelete);\r\n      let params = {\r\n        idLot: id,\r\n      };\r\n      Object.keys(params).forEach((key) => {\r\n        if (!params[key]) {\r\n          delete params[key];\r\n        }\r\n      });\r\n      Object.keys(params).forEach((key) => {\r\n        url.searchParams.append(key, params[key]);\r\n      });\r\n      DELETE(url)\r\n        .then((data) => {\r\n          if (data && typeof data !== 'boolean') {\r\n            item.src = './resources/Star4.svg';\r\n            item.setAttribute('isfavorite', 'true');\r\n            OpenMessage('error', 'Por favor intente nuevamente');\r\n          }\r\n        })\r\n        .catch((err) => {\r\n          item.src = './resources/Star4.svg';\r\n          item.setAttribute('isfavorite', 'true');\r\n          OpenMessage('error', 'Por favor intente nuevamente');\r\n        });\r\n    } else {\r\n      item.src = './resources/Star4.svg';\r\n      item.setAttribute('isFavorite', 'true');\r\n      const URLFavoritesPost = ServiceFavoritesPost(id);\r\n      const params = {\r\n        idAuction: idAuction,\r\n        idCustomer: idCustomer,\r\n        idLot: id,\r\n      };\r\n\r\n      POST(URLFavoritesPost, params)\r\n        .then((data) => {\r\n          if (data && typeof data !== 'object') {\r\n            item.src = './resources/Star6.svg';\r\n            item.setAttribute('isfavorite', 'false');\r\n            OpenMessage('error', 'Por favor intente nuevamente');\r\n          }\r\n        })\r\n        .catch((err) => {\r\n          item.src = './resources/Star6.svg';\r\n          item.setAttribute('isfavorite', 'false');\r\n          OpenMessage('error', 'Por favor intente nuevamente');\r\n        });\r\n    }\r\n  };\r\n  const handleOffer = (e) => {\r\n    e.stopPropagation();\r\n    if (statusCustomer.toLowerCase() === statusRejected) {\r\n      OpenMessage(\r\n        'warning',\r\n        'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n      );\r\n    } else {\r\n      if (offerLot.length <= 0) {\r\n        nextLotOffer(price);\r\n      } else {\r\n        setOfferSelected(offerLot[0].precio);\r\n        setOffer(true);\r\n      }\r\n    }\r\n  };\r\n  const handleConfirm = () => {\r\n    const URLMaxOfert = ServicePostMaxOfert();\r\n    const idCliente = localStorage.getItem('id');\r\n    const json = {\r\n      idAuction,\r\n      idLote: id,\r\n      idCliente,\r\n      idPaleta,\r\n      monto: offerSelected,\r\n      validado: true,\r\n    };\r\n    setLoading(true);\r\n    POST(URLMaxOfert, json).then((resp) => {\r\n      if (resp && typeof resp === 'boolean') {\r\n        const message =\r\n          '<h2>SU OFERTA HA SIDO</h2><h2>REALIZADA CON ÉXITO.</h2>';\r\n        OpenOfferSuccess(message, false);\r\n        setConfirm(true);\r\n        setLoading(false);\r\n      } else if (resp && typeof resp === 'object') {\r\n        OpenMessage('error', 'Por favor intente nuevamente.');\r\n        setLoading(false);\r\n      } else {\r\n        OpenMessage('error', resp);\r\n        setLoading(false);\r\n      }\r\n    });\r\n  };\r\n  const nextLotOffer = (price) => {\r\n    setLoading(true);\r\n    const lastElement = price ? price : offerLot[offerLot.length - 1].precio;\r\n    const URLGetNextOffert = ServiceGetNextLotOffer(\r\n      idAuction,\r\n      id,\r\n      lastElement,\r\n      30\r\n    );\r\n    GET(URLGetNextOffert).then((data) => {\r\n      if (data) {\r\n        const nextOfferLot = data.map((price) => {\r\n          price.idLote = id;\r\n          price.idSubasta = idAuction;\r\n          price.incremento = price.increment;\r\n          price.precio = price.newPrice;\r\n          return price;\r\n        });\r\n        setOfferLot((prevState) => [...prevState, ...nextOfferLot]);\r\n        setOfferSelected(nextOfferLot[0].precio);\r\n        setOffer(true);\r\n        setLoading(false);\r\n      } else {\r\n        OpenMessage('error', data);\r\n      }\r\n    });\r\n  };\r\n  let img = './resources/Star6.svg';\r\n  if (favorities.length > 0)\r\n    img = favorities.includes(id)\r\n      ? './resources/Star4.svg'\r\n      : './resources/Star6.svg';\r\n\r\n  const favorite =\r\n    validSession() && props.idType !== getIdGoldenMinutes() ? (\r\n      <img\r\n        src={img}\r\n        onClick={() => addFavorite(id)}\r\n        isfavorite={favorities.includes(id).toString()}\r\n        id={`favoriteItem-${id}`}\r\n        alt='favorite'\r\n        className='img-fluid'\r\n        width='22px'\r\n      />\r\n    ) : (\r\n      ''\r\n    );\r\n\r\n  const handleScroll = (event) => {\r\n    var node = event.target;\r\n    const value = node.scrollHeight - node.scrollTop;\r\n    const bottom =\r\n      Math.floor(value) === node.clientHeight ||\r\n      Math.floor(value) === node.clientHeight - 1;\r\n    if (bottom && !loading) {\r\n      nextLotOffer();\r\n    }\r\n  };\r\n\r\n  const addCartItem = () => {\r\n    if (statusCustomer === statusRejected) {\r\n      OpenMessage(\r\n        'warning',\r\n        'Su cuenta se encuentra bloqueada, favor de contactarnos.'\r\n      );\r\n    } else {\r\n      let cart = {\r\n        IdLot: id,\r\n        Order: reference,\r\n        Name: title,\r\n        Description: description,\r\n        Price: price,\r\n        Image: url,\r\n        consigna: consigna,\r\n        consignaSAP: consignaSAP,\r\n        IdAuction: idAuction,\r\n      };\r\n      console.log('cartItem', cart);\r\n      props.addCartItem(cart);\r\n      setCart(cart);\r\n    }\r\n  };\r\n  if (props.format === 1) {\r\n    return (\r\n      <div className='col w-md-90 mt-5 slidein'>\r\n        <div className={`card h-100 card-products-items ${cardColor}`}>\r\n          <div\r\n            className={`text-white ${headerCard} d-flex justify-content-center head-lots`}\r\n          >\r\n            <img\r\n              className='py-3'\r\n              src={`./resources/${iconLot}.png`}\r\n              alt='won'\r\n            />\r\n            <h4 className='pt-4 px-5 text-uppercase'>{statusDescription}</h4>\r\n          </div>\r\n          <div className='d-flex justify-content-end p-4'>{favorite}</div>\r\n          <div className='container-products-items--img p-0 '>\r\n            <img src={url} className='card-img-top img-lot' alt='...' />\r\n          </div>\r\n          <div className='card-body text-center'>\r\n            <p className='container-products-items--title'>{title}</p>\r\n            <p className='product-text'>\r\n              Lote <span className='article-reference'>{reference}</span>\r\n            </p>\r\n            {(idLoteStatus === awardID || idLoteStatus === paidID ) && finalPrice >= price ? (\r\n              <span className='product-text'>\r\n                PRECIO DE VENTA:{' '}\r\n                <span className='price-text article-reference'>\r\n                  {formatCurrency(finalPrice)}\r\n                </span>\r\n              </span>\r\n            ) : (\r\n              <span className='product-text'>\r\n                PRECIO DE SALIDA:{' '}\r\n                <span className='price-text article-reference'>\r\n                  {formatCurrency(price)}\r\n                </span>\r\n              </span>\r\n            )}\r\n          </div>\r\n          {registered && (\r\n            <div className='card-footer text-center article-footer'>\r\n              <Offer\r\n                offerLot={offerLot}\r\n                format={format}\r\n                offer={offer}\r\n                setOffer={setOffer}\r\n                offerSelected={offerSelected}\r\n                setOfferSelected={setOfferSelected}\r\n                confirm={confirm}\r\n                setConfirm={setConfirm}\r\n                handleScroll={handleScroll}\r\n                handleOffer={handleOffer}\r\n                handleConfirm={handleConfirm}\r\n                loading={loading}\r\n                idType={idType}\r\n                idStatus={idStatus}\r\n                auctionTypes={auctionTypes}\r\n                auctionStatus={auctionStatus}\r\n                idLoteStatus={idLoteStatus}\r\n                addCartItem={addCartItem}\r\n                enablePostSale={enablePostSale}\r\n                clicked={clicked}\r\n                setClicked={setClicked}\r\n                idLot={id}\r\n              />\r\n            </div>\r\n          )}\r\n          <div className='card-footer text-center article-footer'>\r\n            <button\r\n              className='btn btn-outline-secondary button-eye'\r\n              data-mdb-toggle='modal'\r\n              data-mdb-target={`#modal${id}`}\r\n              onClick={(e) => e.stopPropagation()}\r\n            >\r\n              <i className='fas fa-eye'></i>\r\n              <strong> Detalles</strong>\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div\r\n          className='modal fade modal-top modal-lot'\r\n          id={`modal${id}`}\r\n          aria-labelledby='exampleModalLabel'\r\n          aria-hidden='true'\r\n        >\r\n          <div className='modal-dialog modal-dialog-centered'>\r\n            <div className='modal-content'>\r\n              <div className='modal-body text-center'>\r\n                <img src={url} alt='' className='img-fluid h-100' />\r\n              </div>\r\n              <h4 className='text-desc'>{description}</h4>\r\n              <div className='modal-footer'>\r\n                <button\r\n                  type='button'\r\n                  className='btn btn-outline-danger'\r\n                  data-mdb-dismiss='modal'\r\n                  onClick={(e) => e.stopPropagation()}\r\n                >\r\n                  Cerrar\r\n                </button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    );\r\n  }\r\n  return (\r\n    <div className='col w-md-90 mt-5 slidein'>\r\n      <div className={`card mb-3 ${cardColor}`}>\r\n        <div\r\n          className={`text-white ${headerCard} d-flex justify-content-center head-lots`}\r\n        >\r\n          <img className='py-3' src={`./resources/${iconLot}.png`} alt='won' />\r\n          <h4 className='pt-4 px-5 text-uppercase'>{statusDescription}</h4>\r\n        </div>\r\n        <div className='row g-0 card-dimension h-100'>\r\n          <div className='col-md-4 image-list'>\r\n            <img src={url} alt='...' className='img-lot-2' />\r\n          </div>\r\n          <div className='col-md-8 card-dimension'>\r\n            <div className='card-body card-left'>\r\n              <div className='d-flex justify-content-end p-4'>{favorite}</div>\r\n              <h5 className='text-bottom'>{title}</h5>\r\n              <p className='product-text'>\r\n                Lote <span className='article-reference'>{reference}</span>\r\n              </p>\r\n              {idLoteStatus === awardID && finalPrice >= price ? (\r\n                <span className='product-text'>\r\n                  PRECIO DE VENTA:{' '}\r\n                  <span className='price-text article-reference'>\r\n                    {formatCurrency(finalPrice)}\r\n                  </span>\r\n                </span>\r\n              ) : (\r\n                <span className='product-text'>\r\n                  PRECIO DE SALIDA:{' '}\r\n                  <span className='price-text article-reference'>\r\n                    {formatCurrency(price)}\r\n                  </span>\r\n                </span>\r\n              )}\r\n              <div className='card-body d-flex justify-content-end align-items-center'>\r\n                {registered && (\r\n                  <Offer\r\n                    offerLot={offerLot}\r\n                    format={format}\r\n                    offer={offer}\r\n                    setOffer={setOffer}\r\n                    offerSelected={offerSelected}\r\n                    setOfferSelected={setOfferSelected}\r\n                    confirm={confirm}\r\n                    setConfirm={setConfirm}\r\n                    handleScroll={handleScroll}\r\n                    handleOffer={handleOffer}\r\n                    handleConfirm={handleConfirm}\r\n                    loading={loading}\r\n                    idType={idType}\r\n                    idStatus={idStatus}\r\n                    auctionTypes={auctionTypes}\r\n                    auctionStatus={auctionStatus}\r\n                    idLoteStatus={idLoteStatus}\r\n                    addCartItem={addCartItem}\r\n                    enablePostSale={enablePostSale}\r\n                    clicked={clicked}\r\n                    setClicked={setClicked}\r\n                    idLot={id}\r\n                  />\r\n                )}\r\n                <button\r\n                  className='btn btn-outline-secondary button-eye float-right'\r\n                  data-mdb-toggle='modal'\r\n                  data-mdb-target={`#modal${id}`}\r\n                  onClick={(e) => e.stopPropagation()}\r\n                >\r\n                  <i className='fas fa-eye'></i>\r\n                  <strong> Detalles</strong>\r\n                </button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div\r\n        className='modal fade modal-top modal-lot'\r\n        id={`modal${id}`}\r\n        aria-labelledby='exampleModalLabel'\r\n        aria-hidden='true'\r\n      >\r\n        <div className='modal-dialog modal-dialog-centered'>\r\n          <div className='modal-content'>\r\n            <div className='modal-body text-center'>\r\n              <img src={url} alt='' className='img-fluid h-100' />\r\n            </div>\r\n            <h4 className='text-desc'>{description}</h4>\r\n            <div className='modal-footer'>\r\n              <button\r\n                type='button'\r\n                className='btn btn-outline-danger'\r\n                data-mdb-dismiss='modal'\r\n                onClick={(e) => e.stopPropagation()}\r\n              >\r\n                Cerrar\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { ProductGridItem } from './ProductGridItem';\r\n\r\nexport const ProductGrid = (props) => {\r\n  const handdleAddCartItem = (data) => {\r\n    props.addCartItem(data);\r\n  };\r\n\r\n  const [clicked, setClicked] = useState('');\r\n  const [numCards, setNumCards] = useState('row-cols-md-3 g-3');\r\n\r\n  const url = getImgDefault();\r\n  useEffect(() => {\r\n    resizing();\r\n  }, []);\r\n\r\n  const resizing = () => {\r\n    const intFrameWidth = window.innerWidth;\r\n\r\n    if (intFrameWidth < 1261) {\r\n      setNumCards('row-cols-md-2 g-4');\r\n    } else {\r\n      setNumCards('row-cols-md-3 g-3');\r\n    }\r\n  };\r\n\r\n  window.onresize = resizing;\r\n\r\n  if (props.articles.length > 0) {\r\n    return (\r\n      <div\r\n        className={`row row-cols-1 ${\r\n          props.format === 1 ? numCards : 'row-cols-md-12'\r\n        }`}\r\n      >\r\n        {props.articles.map((article) => (\r\n          <ProductGridItem\r\n            id={article.idLot}\r\n            idAuction={props.idAuction}\r\n            title={article.name}\r\n            description={article.description}\r\n            reference={article.order}\r\n            consigna={article.consignacion}\r\n            consignaSAP={article.consignacionSAP}\r\n            url={\r\n              article?.imageLote && article?.imageLote\r\n                ? article.imageLote\r\n                : url\r\n            }\r\n            price={article.startingPrice}\r\n            finalPrice={article.finalPrice}\r\n            key={article.idLot}\r\n            offerLot={article.lstOffertsLot ? article.lstOffertsLot?.sort(\r\n              (a, b) => a.precio - b.precio\r\n            ) : []}\r\n            format={props.format}\r\n            favorities={props.favorities}\r\n            registered={props.registered}\r\n            idPaleta={props.idPallet}\r\n            idType={props.idType}\r\n            idStatus={props.idStatus}\r\n            auctionTypes={props.auctionTypes}\r\n            auctionStatus={props.auctionStatus}\r\n            idLoteStatus={article.idLoteStatus}\r\n            addCartItem={handdleAddCartItem}\r\n            enablePostSale={article.enablePostSale}\r\n            statusCustomer={props.statusCustomer}\r\n            clicked={clicked}\r\n            setClicked={setClicked}\r\n            actualLotID={props.actualLotID}\r\n            idClient={article.idClient}\r\n          />\r\n        ))}\r\n      </div>\r\n    );\r\n  } else {\r\n    return <h5>No hay registros...</h5>;\r\n  }\r\n};\r\n","import React from 'react';\r\n\r\nexport const SearchDescription = (props) => {\r\n  return (\r\n    <form className='example' action='' onSubmit={props.handleSubmit}>\r\n      <input\r\n        className='input-element'\r\n        type='text'\r\n        placeholder='BÚSQUEDA RÁPIDA'\r\n        onChange={props.handleChange}\r\n        value={props.searchTerm}\r\n      />\r\n      <button type='submit'>\r\n        <i className='fa fa-search'></i>\r\n      </button>\r\n    </form>\r\n  );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { pullCart } from '../Utilities/General';\r\nimport { formatCurrency } from '../Utilities/General';\r\n\r\nexport const CartGridItem = (props) => {\r\n  const { item } = props;\r\n\r\n  const dellCartItem = () => {\r\n    props.delCartItem(item);\r\n    pullCart(item);\r\n  };\r\n\r\n  return (\r\n    <Fragment>\r\n      <div className=\"card mb-3\">\r\n        <div className=\"row\">\r\n          <div className=\"col-5 col-full text-center-mobile\">\r\n            <span className=\"cart-img-center\"></span>\r\n            <img src={item.Image} alt=\"...\" className=\"img-fluid cart-img\" />\r\n          </div>\r\n          <div className=\"col-7 col-full\">\r\n            <div className=\"card-body card-left text-center-mobile\">\r\n              <h5 className=\"text-bottom\">{item.Name}</h5>\r\n              <p className=\"product-text\">\r\n                Lote <span className=\"article-reference\">{item.Order}</span>\r\n              </p>\r\n              <p className=\"product-text\">PRECIO DE SALIDA:</p>\r\n              <p className=\"price-text article-reference\">{formatCurrency(item.Price)}</p>\r\n              <div className=\"card-footer text-end\">\r\n                <i className=\"far fa-trash-alt icon-danger\" onClick={() => dellCartItem()}></i>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { CartGridItem } from './CartGridItem';\r\n\r\n\r\nexport const CartGrid = (props) => {\r\n    \r\n  const handdleDeleteCartItem = (data) => {\r\n    props.delCartItem(data)\r\n  }\r\n\r\n    return(\r\n        <Fragment>\r\n            <div>\r\n                {props.items.map((item, index) => (\r\n                    <Fragment key={index}>\r\n                    { index > 0 && <hr/> }\r\n                    <CartGridItem\r\n                        item = { item }\r\n                        delCartItem = {handdleDeleteCartItem}\r\n                    />\r\n                    </Fragment>\r\n                ))}\r\n            </div>\r\n        </Fragment>\r\n    );\r\n}","import React, { Fragment } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { CartGrid } from './CartGrid';\r\n\r\nimport '../../css/Menu/Cart.css';\r\nimport { formatCurrency, validDataComplementary } from '../Utilities/General';\r\n\r\nexport const Cart = (props) => {\r\n  let history = useHistory();\r\n  let cart = props.ShoppingCart;\r\n  let idAuction = props.idAuction;\r\n\r\n  let total = 0;\r\n\r\n  const calculaTotal = () => {\r\n    cart.forEach((item) => {\r\n      total = total + item.Price;\r\n    });\r\n    return total;\r\n  };\r\n\r\n  const handdleDeleteCartItem = (data) => {\r\n    props.delCartItem(data);\r\n  };\r\n\r\n  const shoppingCart = () => {\r\n    const valid = validDataComplementary(props.clientData);\r\n    props.visible('hide');\r\n    if (valid > 0) {\r\n      document.getElementById('btnCloseCanvas').click();\r\n      const collapseOne = document.getElementById('collapseOne');\r\n      const collapseTwo = document.getElementById('collapseTwo');\r\n      const headingOne = document.querySelector('#headingOne > button');\r\n      const headingTwo = document.querySelector('#headingTwo > button');\r\n\r\n      setTimeout(() => {\r\n        collapseOne.classList.remove('show');\r\n        headingOne.classList.add('collapsed');\r\n        collapseTwo.classList.remove('show');\r\n        headingTwo.classList.add('collapsed');\r\n      }, 500);\r\n\r\n      props.visible('show');\r\n      let btnDataComplementary = document.getElementById('btnDataComplementary');\r\n      btnDataComplementary.click();\r\n    } else {\r\n      let params = [];\r\n      //Los parametros van de acuerdo a los datos que regresa el servicio: /Auctions/Awards/:idAuction\r\n      let data = {\r\n        descripcionLote: '',\r\n        //fechaSubasta: '',\r\n        lot: 0,\r\n        idLote: '',\r\n        idSubasta: idAuction,\r\n        images: [],\r\n        nombreLote: '',\r\n        //nombreSubasta: '',\r\n        precioSalida: 0,\r\n        consigna: true,\r\n        consignaSAP: true,\r\n        origin: 'directSale', //campo para diferenciar el origen, si es por catalogo o por adjudicaciones activas\r\n        //statusLote: ''\r\n      };\r\n      for (let i = 0; i < cart.length; i++) {\r\n        data.descripcionLote = cart[i].Description;\r\n        data.idLote = cart[i].IdLot;\r\n        data.images.push(cart[i].Image);\r\n        data.nombreLote = cart[i].Name;\r\n        data.precioSalida = cart[i].Price;\r\n        data.lot = cart[i].Order;\r\n        data.consigna = cart[i].consigna;\r\n        data.consignaSAP = cart[i].consignaSAP;\r\n        params.push(data);\r\n        data = {\r\n          descripcionLote: '',\r\n          lot: 0,\r\n          idLote: '',\r\n          idSubasta: idAuction,\r\n          images: [],\r\n          nombreLote: '',\r\n          precioSalida: 0,\r\n          consigna: true,\r\n          consignaSAP: true,\r\n          origin: 'directSale',\r\n        };\r\n      }\r\n\r\n      history.push({\r\n        pathname: '/carrito-compras',\r\n        search: `?modulo=catalogo&id=${idAuction}`,\r\n        state: { detail: params, enableInvoice: props.enableInvoice },\r\n      });\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Fragment>\r\n      <div className=\"container container__cart\">\r\n        <div className=\"row\">\r\n          <div className=\"col-12 text-end\">\r\n            <button\r\n              id=\"btnCloseCanvas\"\r\n              type=\"button\"\r\n              className=\"btn-close text-reset cart-close\"\r\n              data-bs-dismiss=\"offcanvas\"\r\n              aria-label=\"Close\"\r\n            ></button>\r\n          </div>\r\n        </div>\r\n        <div className=\"row\">\r\n          <div className=\"col-12\">\r\n            <h2 className=\"title-sections title-cart text-center\">\r\n              &nbsp;\r\n              <i className=\"fas fa-cart-arrow-down cart-icon\"></i> Agregado al carrito\r\n            </h2>\r\n          </div>\r\n        </div>\r\n\r\n        <hr />\r\n        <div>\r\n          <div className=\"container-fluid overflow-auto cart-container\">\r\n            <CartGrid items={cart} delCartItem={handdleDeleteCartItem} />\r\n          </div>\r\n        </div>\r\n        <hr />\r\n        <div className=\"row\">\r\n          <div className=\"col-6\">\r\n            <p className=\"title-sections cart-text text-end\"> CANTIDAD </p>\r\n          </div>\r\n          <div className=\"col-6\">\r\n            <p className=\"title-sections cart-text text-start\">\r\n              <span className=\"text-destkop\">{cart.length} ARTÍCULOS</span> <span className=\"text-mobile\">{cart.length} ART.</span>\r\n            </p>\r\n          </div>\r\n        </div>\r\n\r\n        <div className=\"row\">\r\n          <div className=\"col-6\">\r\n            <p className=\"title-sections cart-text title-subtotal text-end\"> SUBTOTAL </p>\r\n          </div>\r\n          <div className=\"col-6\">\r\n            <p className=\"price-text title-sections cart-text text-start\"> {formatCurrency(calculaTotal())} </p>\r\n          </div>\r\n        </div>\r\n        <br />\r\n        <div className=\"row text-center mb-5\">\r\n          <div className=\"col-12\">\r\n            <button\r\n              type=\"button\"\r\n              disabled={cart.length <= 0 ? true : false}\r\n              className=\"btn btn-outline-danger\"\r\n              onClick={(e) => shoppingCart()}\r\n            >\r\n              <i className=\"fas fa-dollar-sign\"></i>\r\n              &nbsp; Proceder al pago\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { OpenMessage, validPassword, changePasswordText, setAttributePassword } from '../../Utilities/General';\r\nimport { ServiceChangePassword } from '../../../helpers/getURL';\r\nimport { PUT } from '../../../helpers/APIServices';\r\n\r\nexport const CustomerChangePassword = () => {\r\n  const [dataPassword, setDataPassword] = useState('');\r\n  const [dataPassword2, setDataPassword2] = useState('');\r\n  const [dataShow, setDataShow] = useState('hide');\r\n\r\n  const [classInput, setClassInput] = useState('form-control');\r\n  const [classPassword, setClassPassword] = useState('fas fa-eye-slash hide');\r\n  const [disableInput, setDisableInput] = useState(true);\r\n  const [disableCancel, setDisableCancel] = useState(true);\r\n  const URLChangePassword = ServiceChangePassword();\r\n\r\n  const getData = () => {\r\n    setDataPassword('');\r\n    setDataPassword2('');\r\n    setAttributePassword('input-passwordAccount');\r\n    setAttributePassword('input-passwordAccount2');\r\n    setDataShow('hide');\r\n  };\r\n\r\n  useEffect(() => {\r\n    getData();\r\n  }, []);\r\n\r\n  const verifyFieldsRequerid = (elements) => {\r\n    let error = false;\r\n    elements.forEach((id) => {\r\n      let element = document.getElementById(id);\r\n      if (!element.value.trim()) {\r\n        error = true;\r\n        element.classList.add('is-invalid');\r\n      } else {\r\n        element.classList.remove('is-invalid');\r\n      }\r\n    });\r\n    if (error) {\r\n      return false;\r\n    }\r\n    return true;\r\n  };\r\n\r\n  const verifyPassword = () => {\r\n    const password = ['input-passwordAccount', 'input-passwordAccount2'];\r\n    const validFields = verifyFieldsRequerid(password);\r\n    if (!validFields) {\r\n      OpenMessage('error', 'Campos obligatorios');\r\n      return false;\r\n    }\r\n    const msg = validPassword(dataPassword);\r\n\r\n    if (msg) {\r\n      OpenMessage('error', msg);\r\n      document.getElementById('input-passwordAccount').classList.add('is-invalid');\r\n      return false;\r\n    }\r\n    if (dataPassword !== dataPassword2) {\r\n      password.forEach((id) => {\r\n        let element = document.getElementById(id);\r\n        element.classList.add('is-invalid');\r\n      });\r\n      OpenMessage('error', 'Las contraseñas no coinciden');\r\n      return false;\r\n    }\r\n\r\n    return true;\r\n  };\r\n\r\n  const save = () => {\r\n    if (!verifyPassword()) {\r\n      return false;\r\n    }\r\n    const password = {\r\n      NewPassword: dataPassword,\r\n    };\r\n    PUT(URLChangePassword, password).then((response) => {\r\n      if (response === true) {\r\n        OpenMessage('success');\r\n        cancel();\r\n      } else {\r\n        OpenMessage('error', response);\r\n      }\r\n    });\r\n  };\r\n\r\n  const edit = (event) => {\r\n    setDataShow('show');\r\n    setDisableCancel(false);\r\n    let btnEdit = document.getElementById('btnEditPass');\r\n    if (btnEdit.innerText === 'GUARDAR') {\r\n      save();\r\n    } else {\r\n      btnEdit.innerHTML = '<i class=\"fas fa-edit\"></i>Guardar';\r\n      setDisableInput(false);\r\n      setClassInput('form-control enable');\r\n      setClassPassword('fas fa-eye-slash');\r\n    }\r\n  };\r\n\r\n  const cancel = () => {\r\n    setDisableCancel(true);\r\n    setDisableInput(true);\r\n    setClassInput('form-control');\r\n    let btnEdit = document.getElementById('btnEditPass');\r\n    btnEdit.innerHTML = '<i class=\"fas fa-edit\"></i>Cambiar';\r\n    setClassPassword('fas fa-eye-slash hide');\r\n    getData();\r\n  };\r\n\r\n  return (\r\n    <div>\r\n      <br />\r\n      <div className=\"mb-3 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Contraseña</label>\r\n        <div className=\"col-sm-6\">\r\n          <div className=\"input-group input-password\">\r\n            <input\r\n              id=\"input-passwordAccount\"\r\n              type=\"password\"\r\n              disabled={disableInput}\r\n              value={dataPassword}\r\n              onChange={(e) => setDataPassword(e.target.value)}\r\n              className={classInput}\r\n              maxLength=\"50\"\r\n              aria-describedby=\"icon-eyes-account\"\r\n            />\r\n            <i className={classPassword} id=\"icon-eyes-account\" onClick={(e) => changePasswordText('input-passwordAccount', e)}></i>\r\n          </div>\r\n        </div>\r\n        <div className=\"col-sm-3\">\r\n          <button id=\"btnEditPass\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n            <i className=\"fas fa-edit\"></i>\r\n            Cambiar\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className={dataShow}>\r\n        <div className=\"mb-3 row inputs-form\">\r\n          <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Verificar Contraseña</label>\r\n          <div className=\"col-sm-6\">\r\n            <div className=\"input-group input-password\">\r\n              <input\r\n                id=\"input-passwordAccount2\"\r\n                type=\"password\"\r\n                disabled={disableInput}\r\n                value={dataPassword2}\r\n                onChange={(e) => setDataPassword2(e.target.value)}\r\n                className={classInput}\r\n                maxLength=\"50\"\r\n                aria-describedby=\"icon-eyes-account2\"\r\n              />\r\n              <i className={classPassword} id=\"icon-eyes-account2\" onClick={(e) => changePasswordText('input-passwordAccount2', e)}></i>\r\n            </div>\r\n          </div>\r\n          <div className=\"col-sm-3\">\r\n            <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n              <i className=\"fas fa-times\"></i>\r\n              Cancelar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\n\r\nimport {\r\n  convertToDateFormatEnglish,\r\n  setMinMaxDate,\r\n  onlyText,\r\n  OpenMessage,\r\n  validMinMaxDate,\r\n  verifyFieldsRequerid,\r\n  onlyMail,\r\n  validEmail,\r\n} from '../Utilities/General';\r\nimport { ServiceClientData, ServiceUpdateClientData } from '../../helpers/getURL';\r\nimport { GET, PUT } from '../../helpers/APIServices';\r\n\r\nimport { CustomerChangePassword } from './customerData/CustomerChangePass';\r\n\r\nexport const ConfigurationAccount = (props) => {\r\n  const [dataName, setDataName] = useState('');\r\n  const [dataLastName, setDataLastName] = useState('');\r\n  const [dataSecondLastName, setDataSecondLastName] = useState('');\r\n  const [dataBirthday, setDataBirthday] = useState('');\r\n  const [dataTelefono, setDataTelefono] = useState('');\r\n  const [dataCorreo, setDataCorreo] = useState('');\r\n\r\n  const [classInput, setClassInput] = useState('form-control');\r\n  const [disableInput, setDisableInput] = useState(true);\r\n  const [disableCancel, setDisableCancel] = useState(true);\r\n\r\n  const URL = ServiceClientData();\r\n  const URLClients = ServiceUpdateClientData();\r\n\r\n  const getData = () => {\r\n    GET(URL).then((data) => {\r\n      if (data === '401') {\r\n        getData();\r\n        return '';\r\n      }\r\n\r\n      if (data && data.customerGeneralData) {\r\n        const generalData = data.customerGeneralData;\r\n        const birthday = convertToDateFormatEnglish(generalData.birthday);\r\n        setDataName(generalData.name ? generalData.name : '');\r\n        setDataLastName(generalData.lastName ? generalData.lastName : '');\r\n        setDataSecondLastName(generalData.secondLastName ? generalData.secondLastName : '');\r\n        setDataBirthday(birthday ? birthday : '');\r\n        setDataCorreo(generalData.email ? generalData.email : '');\r\n        setDataTelefono(generalData.phoneNumber ? generalData.phoneNumber : '');\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      getData();\r\n      setMinMaxDate('input-birthdayAccount');\r\n    }\r\n  }, [props.visible]);\r\n\r\n  const verifyFields = () => {\r\n    const inputs = [\r\n      'input-nameAccount',\r\n      'input-lastnameAccount',\r\n      'input-secondlastnameAccount',\r\n      'input-birthdayAccount',\r\n      'input-phoneAccount',\r\n      'input-emailAccount',\r\n    ];\r\n\r\n    const validFields = verifyFieldsRequerid(inputs);\r\n    if (!validFields) {\r\n      OpenMessage('error', 'Campos obligatorios');\r\n      return false;\r\n    } else {\r\n      if (!validMinMaxDate('input-birthdayAccount')) {\r\n        document.getElementById('input-birthdayAccount').classList.add('is-invalid');\r\n        OpenMessage('error', 'La fecha de nacimiento no es válida');\r\n        return false;\r\n      }\r\n\r\n      if (!validEmail(dataCorreo)) {\r\n        document.getElementById('input-emailAccount').classList.add('is-invalid');\r\n        OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n        return false;\r\n      }\r\n    }\r\n    return true;\r\n  };\r\n\r\n  const updateProfile = () => {\r\n    const name = dataName + ' ' + dataLastName;\r\n    document.getElementById('userName').innerHTML = name;\r\n    localStorage.setItem('userName', name);\r\n  };\r\n\r\n  const save = () => {\r\n    const params = {\r\n      idCustomer: localStorage.getItem('id'),\r\n      customerGeneralData: {\r\n        name: dataName,\r\n        lastName: dataLastName,\r\n        secondLastName: dataSecondLastName,\r\n        birthday: dataBirthday,\r\n        phoneNumber: dataTelefono,\r\n        email: dataCorreo,\r\n      },\r\n    };\r\n\r\n    if (!verifyFields()) {\r\n      return false;\r\n    }\r\n\r\n    PUT(URLClients, params).then((data) => {\r\n      if (data === true) {\r\n        OpenMessage('success');\r\n        updateProfile();\r\n        cancel();\r\n        if (props.parent === 'Modal') {\r\n          props.close();\r\n        }\r\n      } else {\r\n        OpenMessage('error', data);\r\n      }\r\n    });\r\n  };\r\n\r\n  const edit = (event) => {\r\n    setDisableCancel(false);\r\n    let btnEdit = document.getElementById('btnEdit');\r\n    if (btnEdit.innerText === 'GUARDAR') {\r\n      save();\r\n    } else {\r\n      btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Guardar';\r\n      setDisableInput(false);\r\n      setClassInput('form-control enable');\r\n    }\r\n  };\r\n\r\n  const cancel = () => {\r\n    setDisableCancel(true);\r\n    setDisableInput(true);\r\n    setClassInput('form-control');\r\n    let btnEdit = document.getElementById('btnEdit');\r\n    btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Editar';\r\n    getData();\r\n  };\r\n\r\n  return (\r\n    <div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Nombre*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-nameAccount\"\r\n            type=\"text\"\r\n            onInput={(e) => onlyText(e)}\r\n            disabled={disableInput}\r\n            value={dataName}\r\n            onChange={(e) => setDataName(e.target.value)}\r\n            className={classInput}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Apellido paterno*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-lastnameAccount\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataLastName}\r\n            onChange={(e) => setDataLastName(e.target.value)}\r\n            className={classInput}\r\n            onInput={(e) => onlyText(e)}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Apellido materno*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-secondlastnameAccount\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataSecondLastName}\r\n            onChange={(e) => setDataSecondLastName(e.target.value)}\r\n            className={classInput}\r\n            onInput={(e) => onlyText(e)}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Fecha de nacimiento*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-birthdayAccount\"\r\n            type=\"date\"\r\n            disabled={disableInput}\r\n            value={dataBirthday}\r\n            onChange={(e) => setDataBirthday(e.target.value)}\r\n            className={classInput}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Teléfono*</label>\r\n        <div className=\"col-sm-8\">\r\n          <NumberFormat\r\n            id=\"input-phoneAccount\"\r\n            format=\"(##) ####-####\"\r\n            mask=\"\"\r\n            disabled={disableInput}\r\n            value={dataTelefono}\r\n            onValueChange={(e) => setDataTelefono(e.value)}\r\n            className={classInput}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Correo electrónico*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-emailAccount\"\r\n            name=\"input-emailAccount\"\r\n            type=\"text\"\r\n            disabled\r\n            value={dataCorreo}\r\n            onChange={(e) => setDataCorreo(e.target.value)}\r\n            className={classInput}\r\n            maxLength=\"80\"\r\n            onInput={(e) => onlyMail(e)}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className={props.parent === 'Modal' ? 'hide' : 'show'}>\r\n        <CustomerChangePassword />\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <div className=\"col-sm-12 text-end\">\r\n          <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n            <i className=\"fas fa-times\"></i>\r\n            Cancelar\r\n          </button>\r\n          &nbsp;&nbsp;&nbsp;\r\n          <button id=\"btnEdit\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n            <i className=\"fas fa-edit\"></i>\r\n            Editar\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Select, { components } from 'react-select';\r\n\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceNationality } from '../../helpers/getURL';\r\n\r\nexport const SelectNationality = (props) => {\r\n  const [style, setStyle] = useState('');\r\n  useEffect(() => {\r\n    if (props.errors.nationality) {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.nationality]);\r\n\r\n  const [nationalities, setNationalities] = useState([]);\r\n\r\n  useEffect(() => {\r\n    const URL = ServiceNationality();\r\n    if (URL && props.visible === 'show' && props.mountNationality === true) {\r\n      const getData = () => {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          props.setMountNationality(false);\r\n          if (data) {\r\n            setNationalities(data);\r\n          } else {\r\n            setNationalities([]);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.visible, props.mountNationality]);\r\n\r\n  const nationality = (e) => {\r\n    props.setNationality(e);\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'Nacionalidad:' });\r\n  nationalities.map((item) => {\r\n    options.push({ value: item.id, label: item.nacionalidad });\r\n    return '';\r\n  });\r\n  const value = options.length === 0 ? { value: '', label: 'Nacionalidad:' } : options.find((obj) => obj.value === props.nacionalidad);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => nationality(e.value)}\r\n        placeholder=\"Nacionalidad:\"\r\n        value={value}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n        isDisabled={props.disabled}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetCountries } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectCountry = (props) => {\r\n  const [countries, setCountries] = useState([]);\r\n  const [style, setStyle] = useState('');\r\n\r\n  useEffect(() => {\r\n    const getData = () => {\r\n      let URLCountries = ServiceGetCountries();\r\n      if (URLCountries) {\r\n        GET(URLCountries).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setCountries(data);\r\n          } else {\r\n            setCountries([]);\r\n          }\r\n        });\r\n      }\r\n    };\r\n    getData();\r\n  }, [props.address.idPais]);\r\n\r\n  useEffect(() => {\r\n    if (props.errors.country) {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.country]);\r\n\r\n  const address = (e) => {\r\n    props.setAddress({\r\n      ...props.address,\r\n      idPais: e,\r\n      idEdo: '',\r\n      idMun: '',\r\n      idCol: '',\r\n    });\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'País:' });\r\n  countries.map((item) => {\r\n    options.push({ value: item.idState, label: item.name });\r\n    return '';\r\n  });\r\n\r\n  const value = options.length === 0 ? { value: '', label: 'País:' } : options.find((obj) => obj.value === props.address.idPais);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        id={props.id}\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => address(e.value)}\r\n        placeholder=\"País:\"\r\n        value={value}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n        isDisabled={props.disabled ?? true}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetState } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectState = (props) => {\r\n  const [style, setStyle] = useState('');\r\n  useEffect(() => {\r\n    if (props.errors.state && props.address.idEdo === '') {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.state, props.address.idEdo]);\r\n\r\n  const [states, setStates] = useState([]);\r\n\r\n  useEffect(() => {\r\n    if (props.address.idPais !== 'MX') {\r\n      setStates([]);\r\n      return;\r\n    }\r\n    const getData = () => {\r\n      let URL = ServiceGetState(props.address.idPais);\r\n      if (URL) {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setStates(data);\r\n          } else {\r\n            setStates([]);\r\n          }\r\n        });\r\n      }\r\n    };\r\n    getData();\r\n  }, [props.address.idPais]);\r\n\r\n  const address = (e) => {\r\n    props.setAddress({\r\n      ...props.address,\r\n      idEdo: e,\r\n      idMun: '',\r\n      idCol: '',\r\n    });\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'Estado:' });\r\n  states.map((item) => {\r\n    options.push({ value: item.idState, label: item.sState });\r\n    return '';\r\n  });\r\n  const value = options.length === 0 ? { value: '', label: 'Estado:' } : options.find((obj) => obj.value === props.address.idEdo);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => address(e.value)}\r\n        placeholder=\"Estado:\"\r\n        value={value}\r\n        isDisabled={props.disabled}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { capitalize } from '../Utilities/General';\r\nimport { ServiceGetTown } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectTown = (props) => {\r\n  const [style, setStyle] = useState('');\r\n  useEffect(() => {\r\n    if (props.errors.town && props.address.idMun === '') {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.town, props.address.idMun]);\r\n\r\n  const [towns, setTowns] = useState([]);\r\n  useEffect(() => {\r\n    if (props.address.idPais !== 'MX' || props.address.idEdo === '') {\r\n      setTowns([]);\r\n      return;\r\n    }\r\n\r\n    const getData = () => {\r\n      let URL = ServiceGetTown(props.address.idEdo);\r\n      if (URL) {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data.length > 0) {\r\n            setTowns(data);\r\n          }\r\n        });\r\n      }\r\n    };\r\n    getData();\r\n  }, [props.address.idPais, props.address.idEdo]);\r\n\r\n  const address = (e) => {\r\n    props.setAddress({\r\n      ...props.address,\r\n      idMun: e.value,\r\n      colonia: e.label,\r\n      idCol: '',\r\n    });\r\n    props.setListCities([]);\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'Municipio:' });\r\n  towns.map((item) => {\r\n    options.push({ value: item.idTown, label: capitalize(item.sTown) });\r\n    return '';\r\n  });\r\n  const value = options.length === 0 ? { value: '', label: 'Municipio:' } : options.find((obj) => obj.value === props.address.idMun);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => address(e)}\r\n        placeholder=\"Municipio:\"\r\n        value={value}\r\n        isDisabled={props.disabled}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { capitalize } from '../Utilities/General';\r\nimport { ServiceGetCity } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectCity = (props) => {\r\n  const [style, setStyle] = useState('');\r\n  useEffect(() => {\r\n    if (props.errors.city && props.address.idCol === '') {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.city, props.address.idCol]);\r\n\r\n  const [cities, setCities] = useState([]);\r\n  useEffect(() => {\r\n    if (props.address.idPais !== 'MX' || props.address.idEdo === '' || props.address.idMun === '') {\r\n      setCities([]);\r\n      return;\r\n    }\r\n    let URL = ServiceGetCity(props.address.idEdo, props.address.idMun);\r\n    if (URL) {\r\n      const getData = () => {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setCities(data);\r\n          } else {\r\n            setCities([]);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.address.idPais, props.address.idEdo, props.address.idMun]);\r\n\r\n  const address = (e) => {\r\n    props.setAddress({\r\n      ...props.address,\r\n      idCol: e.value,\r\n      col: e.label\r\n    });\r\n  };\r\n\r\n  let value;\r\n  let options = [];\r\n\r\n  options.push({ value: '', label: 'Colonia:' });\r\n  if (props.listCities.length > 0) {\r\n    props.listCities.map((item) => {\r\n      options.push({ value: item.idCity, label: capitalize(item.sCity) });\r\n      return '';\r\n    });\r\n  } else {\r\n    cities.map((item) => {\r\n      options.push({ value: item.idCity, label: capitalize(item.sCity) });\r\n      return '';\r\n    });\r\n  }\r\n\r\n  value = options.length === 0 ? { value: '', label: 'Colonia:' } : options.find((obj) => obj.value === props.address.idCol);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        id={props.id}\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => address(e)}\r\n        placeholder=\"Colonia:\"\r\n        value={value}\r\n        isDisabled={props.disabled}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceEconomicActivity } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectEconomicActivity = (props) => {\r\n  const [style, setStyle] = useState('');\r\n\r\n  useEffect(() => {\r\n    if (props.errors.economicActivity) {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.economicActivity]);\r\n\r\n  const [activity, setActivity] = useState([]);\r\n  useEffect(() => {\r\n    const URL = ServiceEconomicActivity();\r\n    if (URL && props.visible === 'show' && props.mountEconomicActivity === true) {\r\n      const getData = () => {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          props.setMountEconomicActivity(false);\r\n          if (data) {\r\n            setActivity(data);\r\n          } else {\r\n            setActivity([]);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.visible, props.mountEconomicActivity]);\r\n\r\n  const economicActivity = (e) => {\r\n    props.setActEconomica(e);\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'Actividad Economica:' });\r\n  activity.map((item) => {\r\n    options.push({ value: item.id, label: item.actividadEconomica });\r\n    return '';\r\n  });\r\n  const value =\r\n    options.length === 0 ? { value: '', label: 'Actividad Economica:' } : options.find((obj) => obj.value === props.actEconomica);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        id={props.id}\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => economicActivity(e.value)}\r\n        placeholder=\"Actividad Economica:\"\r\n        value={value}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n        isDisabled={props.disabled ?? true}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ServiceGetCountries } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport Select, { components } from 'react-select';\r\n\r\nexport const SelectJustCountry = (props) => {\r\n  const [countries, setCountries] = useState([]);\r\n  const [style, setStyle] = useState('');\r\n\r\n  useEffect(() => {\r\n    const getData = () => {\r\n      let URLCountries = ServiceGetCountries();\r\n      if (URLCountries) {\r\n        GET(URLCountries).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setCountries(data);\r\n          } else {\r\n            setCountries([]);\r\n          }\r\n        });\r\n      }\r\n    };\r\n    getData();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (props.errors.countryBirth) {\r\n      const styleError = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'var(--color-error)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-error)',\r\n        }),\r\n      };\r\n      setStyle(styleError);\r\n    } else {\r\n      const styleDefault = {\r\n        control: (base, state) => ({\r\n          ...base,\r\n          borderColor: 'hsl(0, 0%, 80%)',\r\n        }),\r\n        singleValue: (provided) => ({\r\n          ...provided,\r\n          color: 'var(--color-text)',\r\n        }),\r\n      };\r\n      setStyle(styleDefault);\r\n    }\r\n  }, [props.errors.countryBirth]);\r\n\r\n  const country = (e) => {\r\n    props.setCountry(e);\r\n  };\r\n\r\n  let options = [];\r\n  options.push({ value: '', label: 'País:' });\r\n  countries.map((item) => {\r\n    options.push({ value: item.idState, label: item.name });\r\n    return '';\r\n  });\r\n\r\n  const value = options.length === 0 ? { value: '', label: 'País:' } : options.find((obj) => obj.value === props.country);\r\n\r\n  const DropdownIndicator = (props) => {\r\n    let icon = 'fas fa-angle-down';\r\n    if (props.selectProps.menuIsOpen) {\r\n      icon = 'fas fa-search';\r\n    }\r\n    return (\r\n      components.DropdownIndicator && (\r\n        <components.DropdownIndicator {...props}>\r\n          <i className={icon}></i>\r\n        </components.DropdownIndicator>\r\n      )\r\n    );\r\n  };\r\n\r\n  return (\r\n    <span className=\"dropdown shadow-0 col-12\">\r\n      <Select\r\n        id={props.id}\r\n        options={options}\r\n        isSearchable={true}\r\n        onChange={(e) => country(e.value)}\r\n        placeholder=\"País:\"\r\n        value={value}\r\n        styles={style}\r\n        components={{ DropdownIndicator }}\r\n        isDisabled={props.disabled ?? true}\r\n      />\r\n    </span>\r\n  );\r\n};\r\n","import React, { Fragment, useState, useEffect } from 'react';\r\nimport NumberFormat from 'react-number-format';\r\nimport {\r\n  onlyMail,\r\n  OpenMessage,\r\n  validEmail,\r\n  onlyNumber,\r\n  onlyTextNumber,\r\n  verifyFieldsRequerid,\r\n  validRFC,\r\n  validCURP,\r\n  onlyTextNumber2,\r\n  calcRFC,\r\n} from '../../Utilities/General';\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\nimport { ServiceClientData, ServiceUpdateClientData } from '../../../helpers/getURL';\r\nimport { GET, PUT } from '../../../helpers/APIServices';\r\nimport { SelectNationality } from '../SelectNationality';\r\nimport { SelectCountry } from '../SelectCountry';\r\nimport { SelectState } from '../SelectState';\r\nimport { SelectTown } from '../SelectTown';\r\nimport { SelectCity } from '../SelectCity';\r\nimport { SelectEconomicActivity } from '../SelectEconomicActivity';\r\nimport { SelectJustCountry } from '../SelectJustCountry';\r\nimport { ServiceGetByZipCode } from '../../../helpers/getURL';\r\n\r\nexport const CustomerComplementaryData = (props) => {\r\n  //const [clientData, setClientData] = useState();\r\n  const [mountNationality, setMountNationality] = useState(false);\r\n  const [dataNationality, setDataNationality] = useState('');\r\n  const [dataCURP, setDataCURP] = useState('');\r\n  const [dataRFC, setDataRFC] = useState('');\r\n  const [dataCalle, setDataCalle] = useState('');\r\n  const [dataNumero, setDataNumero] = useState('');\r\n  const [dataNumeroInt, setDataNumeroInt] = useState('');\r\n\r\n  const [dataTelefonoSec, setDataTelefonoSec] = useState('');\r\n  const [dataCorreoSec, setDataCorreoSec] = useState('');\r\n\r\n  const [mountEconomicActivity, setMountEconomicActivity] = useState(false);\r\n  const [dataActEconomica, setDataActEconomica] = useState('');\r\n  const [dataPaisNac, setDataPaisNac] = useState('');\r\n\r\n  const [classInput, setClassInput] = useState('form-control');\r\n  const [disableInput, setDisableInput] = useState(true);\r\n  const [disableCancel, setDisableCancel] = useState(true);\r\n  const [errors, setErrors] = useState({});\r\n\r\n  const [listCities, setListCities] = useState([]);\r\n  const idCustomer = localStorage.getItem('id');\r\n\r\n  const [address, setAddress] = useState({\r\n    id: '00000000-0000-0000-0000-000000000000',\r\n    idCustomer: idCustomer,\r\n    idPais: 'MX',\r\n    idEdo: '',\r\n    idMun: '',\r\n    idCol: '',\r\n    scp: '',\r\n    numero: '',\r\n    numeroInt: '',\r\n    razonSocial: '',\r\n    colonia: '',\r\n    calle: '',\r\n    rfc: '',\r\n    alias: '',\r\n    referencia: '',\r\n    esFisicoMoral: false,\r\n  });\r\n  const changeCP = (e) => {\r\n    setAddress({\r\n      ...address,\r\n      scp: e.target.value,\r\n    });\r\n  };\r\n\r\n  const verifyCurpRfc = () => {\r\n    const inputs = ['input-nameAccount', 'input-lastnameAccount', 'input-secondlastnameAccount', 'input-birthdayAccount'];\r\n    let error = false;\r\n    inputs.forEach((id) => {\r\n      let element = document.getElementById(id).hasAttribute('disabled');\r\n      if (!element) {\r\n        error = true;\r\n      }\r\n    });\r\n    if (error) {\r\n      return;\r\n    }\r\n    const name = document.getElementById('input-nameAccount').value;\r\n    const lastname = document.getElementById('input-lastnameAccount').value;\r\n    const secondlastname = document.getElementById('input-secondlastnameAccount').value;\r\n    const birthday = document.getElementById('input-birthdayAccount').value;\r\n    const value = calcRFC(name, lastname, secondlastname, birthday);\r\n    if (value !== dataCURP.substr(0, 10)) {\r\n      setDataCURP(value);\r\n    }\r\n    if (value !== dataRFC.substr(0, 10)) {\r\n      setDataRFC(value);\r\n    }\r\n  };\r\n\r\n  const getData = () => {\r\n    const URL = ServiceClientData();\r\n    GET(URL).then((data) => {\r\n      if (data === '401') {\r\n        getData();\r\n        return '';\r\n      }\r\n      //setClientData(data);\r\n      const { customerContactData } = data;\r\n      if (customerContactData) {\r\n        setDataNationality(customerContactData.idNationality ? customerContactData.idNationality : '');\r\n        setDataRFC(customerContactData.rfc ? customerContactData.rfc : '');\r\n        setDataCURP(customerContactData.curp ? customerContactData.curp : '');\r\n        setDataTelefonoSec(customerContactData.secondaryPhoneNumber ? customerContactData.secondaryPhoneNumber : '');\r\n        setDataCorreoSec(customerContactData.secondaryEmail ? customerContactData.secondaryEmail : '');\r\n        setDataCalle(customerContactData.street ? customerContactData.street : '');\r\n        setDataNumero(customerContactData.number ? customerContactData.number : '');\r\n        setDataNumeroInt(customerContactData.numberInt ? customerContactData.numberInt : '');\r\n\r\n        setAddress({\r\n          ...address,\r\n          id: customerContactData.id ? customerContactData.id : '',\r\n          idPais: customerContactData.country ? customerContactData.country : '',\r\n          idMun: customerContactData.idTown ? customerContactData.idTown : '',\r\n          idEdo: customerContactData.idState ? customerContactData.idState : '',\r\n          idCol: customerContactData.idCity ? customerContactData.idCity : '',\r\n          colonia: customerContactData.city ? customerContactData.city : '',\r\n          scp: customerContactData.zipCode ? customerContactData.zipCode : '',\r\n          numero: customerContactData.number ? customerContactData.number : '',\r\n          numeroInt: customerContactData.numberInt ? customerContactData.numberInt : '',\r\n          calle: customerContactData.street ? customerContactData.street : '',\r\n        });\r\n        setDataActEconomica(customerContactData.idEconomicActivity !== getGuidEmpty() ? customerContactData.idEconomicActivity : '');\r\n        setDataPaisNac(customerContactData.idCountryOfBirth ? customerContactData.idCountryOfBirth : '');\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show' && props.load) {\r\n      getData();\r\n      setMountEconomicActivity(true);\r\n      setMountNationality(true);\r\n      verifyCurpRfc();\r\n    }\r\n  }, [props.visible, props.load]);\r\n\r\n  const verifySelect = () => {\r\n    let valid = true;\r\n    let errorSelect = {\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n      economicActivity: false,\r\n      countryBirth: false,\r\n      nationality: false,\r\n    };\r\n\r\n    if (!address.idPais) {\r\n      errorSelect.country = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!address.idEdo) {\r\n      errorSelect.state = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!address.idMun) {\r\n      errorSelect.town = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!address.idCol) {\r\n      errorSelect.city = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!dataActEconomica) {\r\n      errorSelect.economicActivity = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!dataPaisNac) {\r\n      errorSelect.countryBirth = true;\r\n      valid = false;\r\n    }\r\n\r\n    if (!dataNationality) {\r\n      errorSelect.nationality = true;\r\n      valid = false;\r\n    }\r\n\r\n    setErrors(errorSelect);\r\n    return valid;\r\n  };\r\n\r\n  const verifyFields = () => {\r\n    const inputs = ['input-cp', 'input-calle', 'input-numero', 'input-curp', 'input-rfc'];\r\n    const validSelect = verifySelect();\r\n    const validFields = verifyFieldsRequerid(inputs);\r\n\r\n    if (!validFields || !validSelect) {\r\n      OpenMessage('error', 'Campos obligatorios');\r\n      return false;\r\n    } else {\r\n      if (dataCorreoSec && !validEmail(dataCorreoSec)) {\r\n        let emailAccountSec = document.getElementById('input-emailAccountSec');\r\n        emailAccountSec.classList.add('is-invalid');\r\n        OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n        return false;\r\n      }\r\n      const curp = document.getElementById('input-curp');\r\n      if (!validCURP(curp)) {\r\n        return false;\r\n      }\r\n\r\n      const rfc = document.getElementById('input-rfc');\r\n      if (!validRFC(rfc, false)) {\r\n        return false;\r\n      }\r\n    }\r\n    return true;\r\n  };\r\n\r\n  const save = () => {\r\n    const params = {\r\n      idCustomer: idCustomer,\r\n      customerContactData: {\r\n        zipCode: address.scp,\r\n        country: address.idPais,\r\n        idState: address.idEdo,\r\n        idTown: address.idMun,\r\n        idCity: address.idCol,\r\n        street: dataCalle,\r\n        number: dataNumero,\r\n        numberInt: dataNumeroInt,\r\n        secondaryEmail: dataCorreoSec,\r\n        secondaryPhoneNumber: dataTelefonoSec,\r\n        idEconomicActivity: dataActEconomica,\r\n        idCountryOfBirth: dataPaisNac,\r\n        curp: dataCURP,\r\n        rfc: dataRFC,\r\n        idNationality: dataNationality,\r\n      },\r\n    };\r\n    if (!verifyFields()) {\r\n      return false;\r\n    }\r\n\r\n    const URLUpdate = ServiceUpdateClientData();\r\n    PUT(URLUpdate, params).then((data) => {\r\n      if (data === true) {\r\n        if (props.parent === 'Modal') {\r\n          OpenMessage('success');\r\n          cancel();\r\n          props.close();\r\n        } else {\r\n          OpenMessage('success');\r\n          cancel();\r\n        }\r\n      } else {\r\n        OpenMessage('error', data.title);\r\n      }\r\n    });\r\n  };\r\n\r\n  const edit = (event) => {\r\n    setDisableCancel(false);\r\n    let btnEdit = document.getElementById('btnEditComplementary');\r\n    if (btnEdit.innerText === 'GUARDAR') {\r\n      save();\r\n    } else {\r\n      btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Guardar';\r\n      setDisableInput(false);\r\n      setClassInput('form-control enable');\r\n    }\r\n  };\r\n\r\n  const cancel = () => {\r\n    const errorSelect = {\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n      economicActivity: false,\r\n      countryBirth: false,\r\n      nationality: false,\r\n    };\r\n    setErrors(errorSelect);\r\n    setDisableCancel(true);\r\n    setDisableInput(true);\r\n    setClassInput('form-control');\r\n    let btnEdit = document.getElementById('btnEditComplementary');\r\n    btnEdit.innerHTML = '<i className=\"fas fa-edit\"></i>Editar';\r\n    getData();\r\n  };\r\n\r\n  const getZipCode = () => {\r\n    if (address.scp === '') {\r\n      return;\r\n    }\r\n    const URL = ServiceGetByZipCode(address.scp);\r\n    GET(URL, address).then((data) => {\r\n      if (data === '401') {\r\n        getZipCode();\r\n        return '';\r\n      }\r\n      if (data) {\r\n        setAddress({\r\n          ...address,\r\n          idPais: data.state.idCountry,\r\n          idMun: data.town.idTown,\r\n          idEdo: data.state.idState,\r\n          idCol: '',\r\n        });\r\n        setListCities(data.cities);\r\n      } else {\r\n        OpenMessage('error', 'Código postal no encontrado');\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <Fragment>\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Nacionalidad*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectNationality\r\n            setNationality={setDataNationality}\r\n            nacionalidad={dataNationality}\r\n            id={'select-nationality'}\r\n            errors={errors}\r\n            disabled={disableInput}\r\n            visible={props.visible}\r\n            setMountNationality={setMountNationality}\r\n            mountNationality={mountNationality}\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">CURP*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-curp\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataCURP}\r\n            onChange={(e) => setDataCURP(e.target.value.toUpperCase())}\r\n            className={'text-uppercase ' + classInput}\r\n            onInput={(e) => onlyTextNumber2(e)}\r\n            maxLength=\"18\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">RFC*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-rfc\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataRFC}\r\n            onChange={(e) => setDataRFC(e.target.value.toUpperCase())}\r\n            className={'text-uppercase ' + classInput}\r\n            onInput={(e) => onlyTextNumber2(e)}\r\n            maxLength=\"15\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">País*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectCountry setAddress={setAddress} address={address} id={'select-country'} errors={errors} disabled={disableInput} />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form \">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">C.P.*</label>\r\n        <div className=\"col-sm-7\">\r\n          <input\r\n            id=\"input-cp\"\r\n            type=\"text\"\r\n            onInput={(e) => onlyNumber(e)}\r\n            disabled={disableInput}\r\n            value={address.scp}\r\n            onChange={(e) => changeCP(e)}\r\n            className={classInput}\r\n            maxLength=\"10\"\r\n          />\r\n        </div>\r\n        <div className=\"col-sm-1\">\r\n          <div className=\"form-outline\">\r\n            <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()} disabled={disableInput}>\r\n              <i className=\"fas fa-search\"></i>\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Estado*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectState setAddress={setAddress} address={address} id={'select-state'} errors={errors} disabled={disableInput} />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Municipio*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectTown\r\n            setAddress={setAddress}\r\n            address={address}\r\n            id={'select-town'}\r\n            setListCities={setListCities}\r\n            errors={errors}\r\n            disabled={disableInput}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Colonia*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectCity\r\n            setAddress={setAddress}\r\n            address={address}\r\n            id={'select-city'}\r\n            listCities={listCities}\r\n            errors={errors}\r\n            disabled={disableInput}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Calle*</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-calle\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataCalle}\r\n            onChange={(e) => setDataCalle(e.target.value)}\r\n            className={classInput}\r\n            onInput={(e) => onlyTextNumber(e)}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Numero Ext.*</label>\r\n        <div className=\"col-sm-3\">\r\n          <input\r\n            id=\"input-numero\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataNumero}\r\n            onChange={(e) => setDataNumero(e.target.value)}\r\n            className={classInput}\r\n            onInput={(e) => onlyTextNumber(e)}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n        <label className=\"col-sm-2 col-form-label configuration-profile-labels\">Numero Int.</label>\r\n        <div className=\"col-sm-3\">\r\n          <input\r\n            id=\"input-numero-int\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataNumeroInt}\r\n            onChange={(e) => setDataNumeroInt(e.target.value)}\r\n            className={classInput}\r\n            onInput={(e) => onlyTextNumber(e)}\r\n            maxLength=\"50\"\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Teléfono Secundario</label>\r\n        <div className=\"col-sm-8\">\r\n          <NumberFormat\r\n            id=\"input-phoneAccountSec\"\r\n            format=\"(##) ####-####\"\r\n            mask=\"\"\r\n            disabled={disableInput}\r\n            value={dataTelefonoSec}\r\n            onValueChange={(e) => setDataTelefonoSec(e.value)}\r\n            className={classInput}\r\n          />\r\n        </div>\r\n      </div>\r\n      <br />\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Correo electrónico Secundario</label>\r\n        <div className=\"col-sm-8\">\r\n          <input\r\n            id=\"input-emailAccountSec\"\r\n            name=\"input-emailAccountSec\"\r\n            type=\"text\"\r\n            disabled={disableInput}\r\n            value={dataCorreoSec}\r\n            onChange={(e) => setDataCorreoSec(e.target.value)}\r\n            className={classInput}\r\n            maxLength=\"80\"\r\n            onInput={(e) => onlyMail(e)}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Actividad Economica*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectEconomicActivity\r\n            setActEconomica={setDataActEconomica}\r\n            actEconomica={dataActEconomica}\r\n            id={'select-economic-activity'}\r\n            errors={errors}\r\n            disabled={disableInput}\r\n            visible={props.visible}\r\n            mountEconomicActivity={mountEconomicActivity}\r\n            setMountEconomicActivity={setMountEconomicActivity}\r\n          />\r\n        </div>\r\n      </div>\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <label className=\"col-sm-3 col-form-label configuration-profile-labels\">Pais de Nacimiento*</label>\r\n        <div className=\"col-sm-8\">\r\n          <SelectJustCountry\r\n            setCountry={setDataPaisNac}\r\n            country={dataPaisNac}\r\n            id={'select-birth-coutry'}\r\n            errors={errors}\r\n            disabled={disableInput}\r\n          />\r\n        </div>\r\n      </div>\r\n\r\n      <div className=\"mb-5 row inputs-form\">\r\n        <div className=\"col-sm-12 text-end\">\r\n          <button className=\"btn btn-outline-danger\" disabled={disableCancel} onClick={cancel}>\r\n            <i className=\"fas fa-times\"></i>\r\n            Cancelar\r\n          </button>\r\n          &nbsp;&nbsp;&nbsp;\r\n          <button id=\"btnEditComplementary\" className=\"btn btn-outline-secondary\" onClick={(e) => edit(e)}>\r\n            <i className=\"fas fa-edit\"></i>\r\n            Editar\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { ConfigurationAccount } from '../ConfigurationAccount';\r\nimport { CustomerComplementaryData } from './CustomerComplementaryData';\r\n\r\nexport const CustomerData = (props) => {\r\n  const [load, setLoad] = useState(false);\r\n  const cerrarModal = () => {\r\n    props.close();\r\n  };\r\n  useEffect(() => {\r\n    const collapseOne = document.getElementById('collapseOne');\r\n    const collapseTwo = document.getElementById('collapseTwo');\r\n    const headingOne = document.querySelector('#headingOne > button');\r\n    const headingTwo = document.querySelector('#headingTwo > button');\r\n\r\n    collapseOne.classList.add('show');\r\n    headingOne.classList.remove('collapsed');\r\n    collapseTwo.classList.remove('show');\r\n    headingTwo.classList.add('collapsed');\r\n  }, [props]);\r\n\r\n  return (\r\n    <div className={props.visible}>\r\n      <div className=\"accordion\" id={props.parent}>\r\n        <div className=\"accordion-item\">\r\n          <h1 className=\"accordion-header\" id=\"headingOne\">\r\n            <button\r\n              className=\"accordion-button profile-title\"\r\n              type=\"button\"\r\n              data-bs-toggle=\"collapse\"\r\n              data-bs-target=\"#collapseOne\"\r\n              aria-expanded=\"true\"\r\n              aria-controls=\"collapseOne\"\r\n              onClick={(e) => setLoad(false)}\r\n            >\r\n              Datos Generales\r\n            </button>\r\n          </h1>\r\n          <div\r\n            id=\"collapseOne\"\r\n            className=\"accordion-collapse collapse show\"\r\n            aria-labelledby=\"headingOne\"\r\n            data-bs-parent={'#' + props.parent}\r\n          >\r\n            <ConfigurationAccount parent={props.parent} close={cerrarModal} visible={props.visible} />\r\n          </div>\r\n        </div>\r\n        <div className=\"accordion-item\">\r\n          <h1 className=\"accordion-header\" id=\"headingTwo\">\r\n            <button\r\n              className=\"accordion-button profile-title\"\r\n              type=\"button\"\r\n              data-bs-toggle=\"collapse\"\r\n              data-bs-target=\"#collapseTwo\"\r\n              aria-expanded=\"false\"\r\n              aria-controls=\"collapseTwo\"\r\n              onClick={(e) => setLoad(!load)}\r\n            >\r\n              Datos Complementarios\r\n            </button>\r\n          </h1>\r\n          <div id=\"collapseTwo\" className=\"accordion-collapse collapse\" aria-labelledby=\"headingTwo\" data-bs-parent={'#' + props.parent}>\r\n            <div className=\"accordion-body\">\r\n              <CustomerComplementaryData parent={props.parent} close={cerrarModal} visible={props.visible} load={load} />\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { CloseModal } from '../../Utilities/General';\r\n\r\nimport { CustomerData } from './CustomerData';\r\n\r\nexport const ModalCustomerData = (props) => {\r\n  const clearForm = (e) => {\r\n    props.updateData();\r\n    CloseModal('modalCustomerData');\r\n  };\r\n\r\n  return (\r\n    <div className=\"modal container__modaladress\" id=\"modalCustomerData\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n      <div className=\"modal-dialog modal-lg modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header modal-header-login \">\r\n            <button type=\"button\" className=\"btn-close\" aria-label=\"Close\" onClick={(e) => clearForm(e)}></button>\r\n          </div>\r\n          <div className=\"modal-header modal-header-login \">\r\n            <strong>Complete su informacion personal para continuar con su proceso</strong>\r\n          </div>\r\n          <div className=\"modal-body\">\r\n            <CustomerData visible={props.visible} parent=\"Modal\" close={clearForm} />\r\n          </div>\r\n          <div className=\"modal-footer\">\r\n            <div className=\"container-fluid\">\r\n              <div className=\"mb-3 row inputs-form\">\r\n                <div className=\"col-7 text-end\"></div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nexport const FiltersCatalog = ({\r\n  idSection = '',\r\n  title = '',\r\n  filters = [],\r\n  getByChecks,\r\n}) => {\r\n  const [displayed, setDisplayed] = useState(true);\r\n  const [arrayFilters, setArrayFilters] = useState(filters);\r\n\r\n  const onCheckFilter = (idFilter) => {\r\n    const filterSections = arrayFilters.map((filter) => {\r\n      if (idFilter === filter.id) {\r\n        filter.value = filter.value ? null : true;\r\n      }\r\n      return filter;\r\n    });\r\n    setArrayFilters(filterSections);\r\n    getByChecks(filterSections, idSection, arrayFilters);\r\n  };\r\n\r\n  useEffect(() => {\r\n    setArrayFilters(filters);\r\n  }, [arrayFilters]);\r\n\r\n  if (filters.length > 0) {\r\n    return (\r\n      <div className='mt-5'>\r\n        <div\r\n          className='row d-flex justify-content-center pt-5 pb-3 title-cat-section'\r\n          onClick={(e) => setDisplayed(!displayed)}\r\n        >\r\n          <div className='col'>\r\n            <h3 className='title-cats'>{title}</h3>\r\n          </div>\r\n          <div className='col text-end'>\r\n            <img\r\n              src={`./resources/arrow_drop_${displayed ? 'down' : 'up'}.png`}\r\n              alt='arrow'\r\n              className='arrows'\r\n            />\r\n          </div>\r\n        </div>\r\n        {displayed && (\r\n          <div className='row mt-4 px-3 scroll-cats'>\r\n            {arrayFilters.map((filter) => (\r\n              <div className='form-check d-flex' key={filter.id}>\r\n                <input\r\n                  id={filter.id}\r\n                  className='form-check-input input-check-cat'\r\n                  type='checkbox'\r\n                  onClick={(e) => onCheckFilter(filter.id)}\r\n                  checked={filter.value ? true : false}\r\n                  onChange={(e) => {}}\r\n                />\r\n                <label\r\n                  className='form-check-label filter-label'\r\n                  htmlFor='flexCheckDefault'\r\n                >\r\n                  {filter.description}{' '}\r\n                  <span className='font-weight-normal'>({filter.items})</span>\r\n                </label>\r\n              </div>\r\n            ))}\r\n          </div>\r\n        )}\r\n      </div>\r\n    );\r\n  }\r\n  return null;\r\n};\r\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport '../../css/Menu/PriceFilter.css';\r\nimport CurrencyInput from 'react-currency-input-field';\r\n\r\nexport const PriceFilter = ({ min, max, getByPrice, cleanPrice }) => {\r\n  const [displayed, setDisplayed] = useState(true);\r\n  const [minVal, setMinVal] = useState(min);\r\n  const [maxVal, setMaxVal] = useState(max);\r\n\r\n  const minValRef = useRef(null);\r\n  const maxValRef = useRef(null);\r\n  const range = useRef(null);\r\n\r\n  // Convertir a porcentaje\r\n  const getPercent = useCallback(\r\n    (value) => Math.round(((value - min) / (max - min)) * 100),\r\n    [min, max]\r\n  );\r\n  useEffect(() => {\r\n    cleanPrice.current = clean;\r\n  }, []);\r\n\r\n  const clean = () => {\r\n    setMinVal(min);\r\n    setMaxVal(max);\r\n  };\r\n\r\n  // Establecer el ancho del rango para disminuir desde el lado izquierdo\r\n  useEffect(() => {\r\n    if (maxValRef.current) {\r\n      const minPercent = getPercent(minVal);\r\n      const maxPercent = getPercent(+maxValRef.current.value); // Precediendo con '+' Convierte el valor de tipo string a numero\r\n\r\n      if (range.current) {\r\n        range.current.style.left = `${minPercent}%`;\r\n        range.current.style.width = `${maxPercent - minPercent}%`;\r\n      }\r\n    }\r\n  }, [minVal, getPercent]);\r\n\r\n  //Establecer el ancho del rango para disminuir del lado derecho\r\n  useEffect(() => {\r\n    if (minValRef.current) {\r\n      const minPercent = getPercent(+minValRef.current.value);\r\n      const maxPercent = getPercent(maxVal);\r\n\r\n      if (range.current) {\r\n        range.current.style.width = `${maxPercent - minPercent}%`;\r\n      }\r\n    }\r\n  }, [maxVal, getPercent]);\r\n\r\n  return (\r\n    <div className='mt-5'>\r\n      <div\r\n        className='row d-flex justify-content-center pt-5 pb-3 title-cat-section mb-5'\r\n        onClick={() => setDisplayed(!displayed)}\r\n      >\r\n        <div className='col'>\r\n          <h3 className='title-cats'>Precio</h3>\r\n        </div>\r\n        <div className='col text-end'>\r\n          <img\r\n            src={`./resources/arrow_drop_${displayed ? 'down' : 'up'}.png`}\r\n            alt='arrow'\r\n            className='arrows'\r\n          />\r\n        </div>\r\n      </div>\r\n      {displayed && (\r\n        <div>\r\n          <input\r\n            type='range'\r\n            min={min}\r\n            max={max}\r\n            value={minVal}\r\n            ref={minValRef}\r\n            onChange={(event) => {\r\n              const value = Math.min(+event.target.value, maxVal - 1);\r\n              setMinVal(value);\r\n              event.target.value = value.toString();\r\n            }}\r\n            onMouseUp={(e) => getByPrice(e.target.value, maxVal)}\r\n            className={classnames('thumb thumb--zindex-3', {\r\n              'thumb--zindex-5': minVal > max - 100,\r\n            })}\r\n          />\r\n          <input\r\n            type='range'\r\n            min={min}\r\n            max={max}\r\n            value={maxVal}\r\n            ref={maxValRef}\r\n            onChange={(event) => {\r\n              const value = Math.max(+event.target.value, minVal + 1);\r\n              setMaxVal(value);\r\n              event.target.value = value.toString();\r\n            }}\r\n            onMouseUp={(e) => getByPrice(minVal, e.target.value)}\r\n            className='thumb thumb--zindex-4'\r\n          />\r\n          <div className='slider'>\r\n            <div className='slider__track' />\r\n            <div ref={range} className='slider__range' />\r\n          </div>\r\n          <div className='row pt-5 text-center fw-bold price-container'>\r\n            <CurrencyInput\r\n              id='start-currency-filter'\r\n              name='input-currency'\r\n              className='price-box price-item'\r\n              prefix='$'\r\n              placeholder='Precio mínimo'\r\n              defaultValue={minVal}\r\n              value={minVal}\r\n              decimalsLimit={2}\r\n              maxLength={9}\r\n              onValueChange={(value) =>\r\n                value === '0' ? setMinVal(1) : setMinVal(value)\r\n              }\r\n              allowNegativeValue={false}\r\n            />\r\n            <div className='fs-4 pt-3 price-item'>A</div>{' '}\r\n            <CurrencyInput\r\n              id='end-currency-filter'\r\n              name='input-currency'\r\n              className='price-box price-item'\r\n              prefix='$'\r\n              placeholder='Precio máximo'\r\n              defaultValue={maxVal}\r\n              value={maxVal}\r\n              decimalsLimit={2}\r\n              maxLength={9}\r\n              onValueChange={(value) =>\r\n                value === '0' ? setMaxVal(1) : setMaxVal(value)\r\n              }\r\n              allowNegativeValue={false}\r\n            />\r\n          </div>\r\n          <div className='row mt-3'>\r\n            <button\r\n              className='btn btn-outline-gold fs-5'\r\n              onClick={(e) => getByPrice(minVal, maxVal)}\r\n            >\r\n              <i className={'fas fa-check-circle'}></i>\r\n              <strong> Aplicar</strong>\r\n            </button>\r\n          </div>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nPriceFilter.propTypes = {\r\n  min: PropTypes.number.isRequired,\r\n  max: PropTypes.number.isRequired,\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, {\r\n  Fragment,\r\n  useContext,\r\n  useEffect,\r\n  useState,\r\n  useRef,\r\n} from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\n//CSS\r\nimport '../../css/Menu/Catalog.css';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n  ServiceAuctionById,\r\n  ServiceAuctionCustomerStatus,\r\n  ServiceFavoritesGetById,\r\n  ServiceLastCatalog,\r\n  ServiceClientData,\r\n  ServiceGenericParameters,\r\n  ServiceLotCatalogByAuctionFilter,\r\n} from '../../helpers/getURL';\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\nimport {\r\n  convertToDate,\r\n  OpenOfferSuccess,\r\n  validSession,\r\n  getCart,\r\n  OpenMessage,\r\n} from '../Utilities/General';\r\nimport { CountDownCatalog } from './CountDownCatalog';\r\nimport {\r\n  getIdStreaming,\r\n  getExecution,\r\n  getIdGoldenMinutes,\r\n  getScheduled,\r\n  getDirectSale,\r\n  getPartialClosure,\r\n  getPartialTotal,\r\n  getPriceFilterID,\r\n} from '../../helpers/getConstants';\r\n\r\n//Componentes\r\nimport { OrderCatalog } from './OrderCatalog';\r\nimport { PaginationCatalog } from './PaginationCatalog';\r\nimport { ProductGrid } from './ProductGrid';\r\nimport { SearchDescription } from './SearchDescription';\r\nimport { Cart } from './Cart';\r\nimport { ModalCustomerData } from '../Profile/customerData/ModalCustomerData';\r\nimport { FiltersCatalog } from './FiltersCatalog';\r\nimport { PriceFilter } from './PriceFilter';\r\n\r\nconst Catalog = (props) => {\r\n  const [visibleModal, setVisibleModal] = useState('hide');\r\n  const [clientData, setClientData] = useState({});\r\n  const [state, setState] = useState({\r\n    articles: [],\r\n    auctionName: '',\r\n    auctionDate: new Date(),\r\n    searchTerm: '',\r\n    searchCategory: 'Categoría',\r\n    searchOrder: 'Ordenar por', //por default\r\n    selectedCategory: '',\r\n    selectedOrder: '00',\r\n    totalResults: 0,\r\n    filterItems: 0,\r\n    numberPages: 0,\r\n    currentPage: 1,\r\n    itemsPerPage: 50,\r\n    catalog: {},\r\n    filsers: {},\r\n    perPageOptions: [\r\n      { value: 50 },\r\n      { value: 100 },\r\n      { value: 200 },\r\n      { value: 500 },\r\n    ],\r\n    format: 1,\r\n    pallet: 0,\r\n    isStreaming: false,\r\n    idPallet: '',\r\n    exibitionDate: new Date(),\r\n    eventEndDate: new Date(),\r\n    textStatusAuction: 'COMIENZA EN:',\r\n    classAuction: 'timer-course',\r\n    titleColor: 'title-auction-start',\r\n    idType: '',\r\n    idStatus: '',\r\n    idAuction: '',\r\n    shopingCart: [],\r\n    minPrice: 0,\r\n    maxPrice: 0,\r\n    filterSections: [],\r\n    priceSection: {},\r\n    atualLot: '',\r\n  });\r\n  const [favorities, setFavorities] = useState([]);\r\n  const [loading, setLoading] = useState(true);\r\n  const [statusCustomer, setStatusCustomer] = useState('');\r\n  const [enableInvoice, setEnableInvoice] = useState(true);\r\n\r\n  const IdCustomer = localStorage.getItem('id');\r\n  const {\r\n    validate: { registeredAuctions, idPallet },\r\n  } = useContext(DataContext);\r\n  const auctionTypes = {\r\n    idStreaming: getIdStreaming(),\r\n    idGoldenMinutes: getIdGoldenMinutes(),\r\n  };\r\n\r\n  const auctionStatus = {\r\n    scheduled: getScheduled(),\r\n    execution: getExecution(),\r\n    directSale: getDirectSale(),\r\n    partialClosure: getPartialClosure(),\r\n    partialTotal: getPartialTotal(),\r\n  };\r\n\r\n  const priceFilterID = getPriceFilterID();\r\n  const cleanPrice = useRef(null);\r\n\r\n  const getIsStreaming = (idAuction) => {\r\n    const auctionValue = registeredAuctions.find(\r\n      (auction) => auction.idAuction === idAuction\r\n    );\r\n    if (auctionValue) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        pallet: auctionValue.pallet,\r\n        isStreaming: auctionValue.streaming,\r\n        idPallet: auctionValue.idPallet,\r\n      }));\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    getClientData();\r\n    if (idPallet) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        idStatus: '',\r\n      }));\r\n      getCatalog();\r\n    }\r\n  }, [idPallet]);\r\n\r\n  useEffect(() => {\r\n    if (IdCustomer) {\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        idStatus: '',\r\n      }));\r\n      getCatalog();\r\n    }\r\n  }, [IdCustomer]);\r\n\r\n  useEffect(() => {\r\n    const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n    if (constants && constants.enableInvoice) {\r\n      const URL = ServiceGenericParameters(constants.enableInvoice);\r\n      GET(URL).then((data) => {\r\n        if (data && data.value) {\r\n          const isTrue = data.value.toLowerCase() === 'true';\r\n          setEnableInvoice(isTrue);\r\n        }\r\n      });\r\n    }\r\n  }, []);\r\n\r\n  const checkStatus = (auctions, id) => {\r\n    let value = '';\r\n    if (auctions.length > 0) {\r\n      const users = auctions.find((auction) => auction.idAuction === id);\r\n      if (users) {\r\n        value = users.idAuctionCustomerStatus;\r\n      }\r\n    }\r\n    return value;\r\n  };\r\n\r\n  const getBySP = (auctions = []) => {\r\n    let textStatusAuction = 'COMIENZA EN:';\r\n    let classAuction = 'timer-course';\r\n    let titleColor = 'title-auction-start';\r\n    if (props.location.search === '') {\r\n      const URLLastCatalog = ServiceLastCatalog();\r\n      GET(URLLastCatalog).then(\r\n        ({\r\n          id,\r\n          name,\r\n          auctionDate,\r\n          idType,\r\n          idStatus,\r\n          exibitionDate,\r\n          eventEndDate,\r\n          saleEndDate,\r\n          saleStartDate,\r\n        }) => {\r\n          const status = checkStatus(auctions, id);\r\n          if (status) {\r\n            setStatusCustomer(status);\r\n          }\r\n          getIsStreaming(id);\r\n          if (\r\n            idType === auctionTypes.idGoldenMinutes &&\r\n            idStatus === auctionStatus.directSale\r\n          ) {\r\n            exibitionDate = saleEndDate;\r\n            eventEndDate = saleStartDate;\r\n            textStatusAuction = 'TERMINA EN:';\r\n            classAuction = 'timer-start';\r\n            titleColor = 'title-auction-course';\r\n          }\r\n          setState((prevState) => ({\r\n            ...prevState,\r\n            name: id ? name : '',\r\n            idAuction: id,\r\n            auctionDate,\r\n            idType,\r\n            idStatus,\r\n            textStatusAuction: textStatusAuction,\r\n            classAuction: classAuction,\r\n            titleColor: titleColor,\r\n            exibitionDate: new Date(exibitionDate),\r\n            eventEndDate: new Date(eventEndDate),\r\n          }));\r\n          getFavorities(id);\r\n          itemsCartAuction(id);\r\n        }\r\n      );\r\n    } else {\r\n      const { search } = props.location;\r\n      const idAuction = search.substr(4, 36);\r\n      let category = search.includes('categoria');\r\n      category ? (category = search.substr(-2)) : (category = '');\r\n      const URLAuctionById = ServiceAuctionById(idAuction);\r\n      GET(URLAuctionById).then(\r\n        ({\r\n          id,\r\n          name,\r\n          eventDate,\r\n          idTypeAuction,\r\n          idStatus,\r\n          eventEndDate,\r\n          saleEndDate,\r\n          saleStartDate,\r\n        }) => {\r\n          const status = checkStatus(auctions, id);\r\n          if (status) {\r\n            setStatusCustomer(status);\r\n          }\r\n          getIsStreaming(id);\r\n          const auctionDate = eventDate;\r\n          if (\r\n            idTypeAuction === auctionTypes.idGoldenMinutes &&\r\n            idStatus === auctionStatus.directSale\r\n          ) {\r\n            eventDate = saleEndDate;\r\n            eventEndDate = saleStartDate;\r\n            textStatusAuction = 'TERMINA EN:';\r\n            classAuction = 'timer-start';\r\n            titleColor = 'title-auction-course';\r\n          }\r\n          setState((prevState) => ({\r\n            ...prevState,\r\n            name: id ? name : '',\r\n            idAuction: id,\r\n            auctionDate: auctionDate,\r\n            idType: idTypeAuction,\r\n            idStatus,\r\n            textStatusAuction: textStatusAuction,\r\n            classAuction: classAuction,\r\n            titleColor: titleColor,\r\n            exibitionDate: new Date(eventDate),\r\n            eventEndDate: new Date(eventEndDate),\r\n          }));\r\n          getFavorities(idAuction, category);\r\n          itemsCartAuction(id);\r\n        }\r\n      );\r\n    }\r\n  };\r\n\r\n  const itemsCartAuction = (idAuction) => {\r\n    let sessionCart = getCart();\r\n    if (sessionCart === null || sessionCart === undefined) {\r\n      sessionCart = [];\r\n    }\r\n    sessionCart = sessionCart.filter((item) => item.IdAuction === idAuction);\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      shopingCart: sessionCart,\r\n    }));\r\n  };\r\n\r\n  const getCatalog = () => {\r\n    const { id } = localStorage;\r\n    if (id) {\r\n      const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n      GET(URLAuctionCustomerStatus).then((response) => {\r\n        if (response) {\r\n          getBySP(response);\r\n        }\r\n      });\r\n    } else {\r\n      getBySP();\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    getCatalog();\r\n  }, []);\r\n\r\n  const handleSubmit = (e) => {\r\n    e.preventDefault();\r\n    setState((prevState) => ({ ...prevState, currentPage: 1 }));\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      1,\r\n      state.itemsPerPage,\r\n      state.filterSections,\r\n      state.priceSection,\r\n      state.selectedOrder,\r\n      state.searchTerm,\r\n      false,\r\n      true\r\n    );\r\n  };\r\n\r\n  const handleChange = (e) => {\r\n    setState((prevState) => ({ ...prevState, searchTerm: e.target.value }));\r\n  };\r\n\r\n  const handleSelectOrder = (e) => {\r\n    const { innerText } = e.target;\r\n    let value = '';\r\n    switch (innerText) {\r\n      case 'PRECIO: DE MENOR A MAYOR':\r\n        value = '01';\r\n        break;\r\n      case 'PRECIO: DE MAYOR A MENOR':\r\n        value = '02';\r\n        break;\r\n      case 'LOTE: ASCENDENTE':\r\n        value = '03';\r\n        break;\r\n      case 'LOTE: DESCENDENTE':\r\n        value = '04';\r\n        break;\r\n      case 'CATEGORÝA: ASCENDENTE':\r\n        value = '05';\r\n        break;\r\n      case 'CATEGORÝA: DESCENDENTE':\r\n        value = '06';\r\n        break;\r\n      default:\r\n        value = '';\r\n        break;\r\n    }\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      searchOrder: innerText,\r\n      selectedOrder: value,\r\n      currentPage: 1,\r\n    }));\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      1,\r\n      state.itemsPerPage,\r\n      state.filterSections,\r\n      state.priceSection,\r\n      value,\r\n      state.searchTerm,\r\n      true,\r\n      false\r\n    );\r\n  };\r\n  const nextPage = (pageNumber) => {\r\n    setState((prevState) => ({ ...prevState, currentPage: pageNumber }));\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      pageNumber,\r\n      state.itemsPerPage,\r\n      state.filterSections,\r\n      state.priceSection,\r\n      state.selectedOrder,\r\n      state.searchTerm,\r\n      true,\r\n      false\r\n    );\r\n  };\r\n  const onItemsPerPage = (value) => {\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      1,\r\n      value,\r\n      state.filterSections,\r\n      state.priceSection,\r\n      state.selectedOrder,\r\n      state.searchTerm,\r\n      true,\r\n      false\r\n    );\r\n  };\r\n\r\n  const getFavorities = (idAuction, category = '') => {\r\n    if (!idAuction) {\r\n      return;\r\n    }\r\n    let value = '';\r\n    switch (category) {\r\n      case '01':\r\n        value = 'ALHAJAS';\r\n        break;\r\n      case '02':\r\n        value = 'RELOJES';\r\n        break;\r\n      case '03':\r\n        value = 'ARTÝCULOS PERSONALES';\r\n        break;\r\n      default:\r\n        value = 'CATEGORÝA';\r\n        break;\r\n    }\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      searchCategory: value,\r\n      selectedCategory: category,\r\n    }));\r\n    const idCustomer = localStorage.getItem('id');\r\n    if (validSession()) {\r\n      const URLFavoritesGet = ServiceFavoritesGetById(idAuction);\r\n      let url = new URL(URLFavoritesGet);\r\n      let params = {\r\n        idCustomer,\r\n      };\r\n      Object.keys(params).forEach((key) => {\r\n        if (!params[key]) {\r\n          delete params[key];\r\n        }\r\n      });\r\n      Object.keys(params).forEach((key) => {\r\n        url.searchParams.append(key, params[key]);\r\n      });\r\n      GET(url)\r\n        .then((data) => {\r\n          if (data) setFavorities(data);\r\n          getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n        })\r\n        .catch((err) => {\r\n          getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n        });\r\n    } else {\r\n      getLotCatalogFilter(idAuction, state.currentPage, state.itemsPerPage);\r\n    }\r\n  };\r\n  const getByChecks = (checks, idSection) => {\r\n    const arrayFilters = state.filterSections.map((filter) => {\r\n      if (idSection === filter.id) {\r\n        filter.filters = checks;\r\n      }\r\n      return filter;\r\n    });\r\n\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      filterSections: arrayFilters,\r\n      currentPage: 1,\r\n    }));\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      1,\r\n      state.itemsPerPage,\r\n      arrayFilters,\r\n      state.priceSection,\r\n      state.selectedOrder,\r\n      state.searchTerm\r\n    );\r\n  };\r\n  const getLotCatalogFilter = (\r\n    idAuction,\r\n    pageNumber,\r\n    itemsPerPage,\r\n    filterSections = undefined,\r\n    priceSection,\r\n    order = 0,\r\n    search,\r\n    byPrice = false,\r\n    bySearch = false\r\n  ) => {\r\n    let priceJson = priceSection;\r\n    const auxFilters = filterSections;\r\n    if (!byPrice && priceJson) {\r\n      priceJson.maxPrice = null;\r\n      priceJson.minprice = null;\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        filterSections: [],\r\n      }));\r\n    }\r\n    if (bySearch) {\r\n      priceJson = undefined;\r\n      filterSections = undefined;\r\n    }\r\n    const jsonLots = {\r\n      idAuction,\r\n      pageNumber,\r\n      itemsPerPage,\r\n      filterSections: filterSections,\r\n      priceSection: priceJson,\r\n      order: order === '' ? '00' : order,\r\n      search: search === '' ? null : search,\r\n    };\r\n    const URLLOTCATALOG = ServiceLotCatalogByAuctionFilter();\r\n    POST(URLLOTCATALOG, jsonLots)\r\n      .then(({ lots = [], filter, lotActual = {} }) => {\r\n        setState((prevState) => ({\r\n          ...prevState,\r\n          articles: [],\r\n          totalResults: 0,\r\n          numberPages: 0,\r\n          filterItems: 0,\r\n          actualLot: '',\r\n        }));\r\n        setLoading(false);\r\n        const numberPages = Math.ceil(filter.filterItems / filter.itemsPerPage);\r\n\r\n        setState((prevState) => ({\r\n          ...prevState,\r\n          articles: [...lots],\r\n          totalResults: filter.maxItems,\r\n          filterItems: filter.filterItems,\r\n          numberPages,\r\n          minPrice: filter.priceSection.minprice,\r\n          maxPrice: filter.priceSection.maxPrice,\r\n          filterSections: filter.filterSections,\r\n          priceSection: byPrice ? state.priceSection : filter.priceSection,\r\n          actualLot: lotActual?.idLotActual,\r\n        }));\r\n\r\n        window.scrollTo(0, 0);\r\n      })\r\n      .catch((err) => {\r\n        setLoading(false);\r\n        if(auxFilters)OpenMessage('warning', 'No se encontraron registros con los filtros seleccionados.');\r\n        setState((prevState) => ({\r\n          ...prevState,\r\n          articles: [],\r\n          filterSections: auxFilters,\r\n          totalResults: 0,\r\n          filterItems: 0,\r\n        }));\r\n      });\r\n  };\r\n  const { auctionDate = new Date(), name = '', idAuction } = state;\r\n  const date = convertToDate(auctionDate);\r\n  const onCourseCountDown = () => {\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      textStatusAuction: 'TERMINA EN:',\r\n      classAuction: 'timer-start',\r\n      titleColor: 'title-auction-course',\r\n      idStatus: auctionStatus.execution,\r\n    }));\r\n  };\r\n  const onEndCountDown = () => {\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      idStatus: auctionStatus.partialTotal,\r\n      textStatusAuction: '',\r\n      classAuction: 'timer-start',\r\n      titleColor: '',\r\n    }));\r\n    let message =\r\n      \"<h2>LA SUBASTA HA TERMINADO</h2><h5>PARA CONSULTAR EL ESTATUS DE LAS PIEZAS ADJUDICADAS REVISE SU CORREO ELECTRÓNICO O ACCEDA DIRECTAMENTE A <span>'MI CUENTA'</span>.</h5>\";\r\n    if (state.idStatus === auctionStatus.directSale) {\r\n      message =\r\n        \"<h2>LA VENTA HA TERMINADO</h2><h5>EN CASO DE HABER REALIZADO COMPRAS, FAVOR DE REVISAR EN <span>'MI CUENTA'</span>.</h5>\";\r\n    }\r\n    OpenOfferSuccess(message, true);\r\n  };\r\n\r\n  const handdleAddCartItem = (data) => {\r\n    let shoppingCart = state.shopingCart;\r\n    if (\r\n      shoppingCart.filter((item) => {\r\n        return item.IdLot === data.IdLot;\r\n      }).length === 0\r\n    ) {\r\n      OpenMessage(\r\n        'success',\r\n        'El producto se ha agregado al carrito de compras'\r\n      );\r\n      shoppingCart.push(data);\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        shopingCart: shoppingCart,\r\n      }));\r\n    }\r\n  };\r\n\r\n  const handdleDeleteCartItem = (data) => {\r\n    let shoppingCart = state.shopingCart;\r\n    if (\r\n      shoppingCart.filter((item) => {\r\n        return item.IdLot === data.IdLot;\r\n      }).length > 0\r\n    ) {\r\n      shoppingCart = shoppingCart.filter((lot) => {\r\n        return lot.IdLot !== data.IdLot;\r\n      });\r\n      setState((prevState) => ({\r\n        ...prevState,\r\n        shopingCart: shoppingCart,\r\n      }));\r\n    }\r\n  };\r\n\r\n  const getClientData = () => {\r\n    const URLClientData = ServiceClientData();\r\n    GET(URLClientData).then((data) => {\r\n      if (data === '401') {\r\n        getClientData();\r\n        return '';\r\n      }\r\n      setClientData(data);\r\n    });\r\n  };\r\n\r\n  const handleSetVisibleModal = (visible) => {\r\n    setVisibleModal(visible);\r\n  };\r\n\r\n  const getByPrice = (minVal, maxVal) => {\r\n    let priceSection = state.priceSection;\r\n    priceSection.minprice = minVal;\r\n    priceSection.maxPrice = maxVal;\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      priceSection,\r\n    }));\r\n    getLotCatalogFilter(\r\n      state.idAuction,\r\n      1,\r\n      state.itemsPerPage,\r\n      state.filterSections,\r\n      priceSection,\r\n      state.selectedOrder,\r\n      state.searchTerm,\r\n      true\r\n    );\r\n  };\r\n\r\n  const cleanFilters = () => {\r\n    if(state.filterSections)cleanPrice.current();\r\n    getLotCatalogFilter(idAuction, 1, 50);\r\n    setState((prevState) => ({\r\n      ...prevState,\r\n      searchTerm: '',\r\n      currentPage: 1,\r\n      itemsPerPage: 50,\r\n      searchCategory: 'Categoría',\r\n      searchOrder: 'Ordenar por',\r\n      selectedCategory: '',\r\n      selectedOrder: '',\r\n      filterSections: [],\r\n      priceSection: {},\r\n    }));\r\n  };\r\n  return (\r\n    <Fragment>\r\n      <div className='container-fluid container-catalog'>\r\n        <div className='row '>\r\n          <div className='col-12'>\r\n            <h2 className='title-sections'>\r\n              Catálogo <span className='gold-text'>{name}</span>\r\n            </h2>\r\n          </div>\r\n        </div>\r\n        <div className='row'>\r\n          <h3 className='time-auction'>{date}</h3>\r\n          <div className='col-md-4 col-sm-12 offset-md-8 offset-sm-0 pallet-section'>\r\n            {state.idType &&\r\n              state.idType === auctionTypes.idGoldenMinutes &&\r\n              (state.idStatus === auctionStatus.scheduled ||\r\n                state.idStatus === auctionStatus.execution ||\r\n                state.idStatus === auctionStatus.directSale) && (\r\n                <CountDownCatalog\r\n                  startAuctionDate={state.exibitionDate}\r\n                  endAuctionDate={state.eventEndDate}\r\n                  classAuction={state.classAuction}\r\n                  onCourseCountDown={onCourseCountDown}\r\n                  onEndCountDown={onEndCountDown}\r\n                  textStatusAuction={state.textStatusAuction}\r\n                  titleColor={state.titleColor}\r\n                  scheduled={auctionStatus.scheduled}\r\n                  statusAuction={state.idStatus}\r\n                />\r\n              )}\r\n          </div>\r\n          {state.pallet <= 0 && !loading && (\r\n            <div className='col pallet-section'>\r\n              <ButtonRegister\r\n                idAuction={idAuction}\r\n                nameAuction={name}\r\n                dateAuction={date}\r\n                classStyle={'button-reg'}\r\n              />\r\n            </div>\r\n          )}\r\n        </div>\r\n        <div className='row'>\r\n          {' '}\r\n          <div className='col-12 order-sm-2 pallet-section'>\r\n            {state.pallet <= 0 ? null : (\r\n              <h3>\r\n                Paleta asignada:{' '}\r\n                <span className='price-text'>{state.pallet}</span>\r\n              </h3>\r\n            )}\r\n          </div>\r\n          <div className='col-12 order-sm-1 pallet-section'>\r\n            {state.pallet > 0 &&\r\n              state.idType === auctionTypes.idStreaming &&\r\n              state.idStatus === auctionStatus.execution && (\r\n                <ButtonToStreaming\r\n                  idAuction={idAuction}\r\n                  streaming={state.isStreaming}\r\n                  classStyle={'buttons-auctions'}\r\n                  userStatusLastCatalog={statusCustomer}\r\n                />\r\n              )}\r\n          </div>\r\n        </div>\r\n        <div className='row'>\r\n          {''}\r\n          <div className='col-12 order-sm-2 pallet-section'>\r\n            {state.pallet > 0 &&\r\n              state.idType === auctionTypes.idGoldenMinutes &&\r\n              state.idStatus === auctionStatus.directSale && (\r\n                <h1>\r\n                  <a\r\n                    data-bs-toggle='offcanvas'\r\n                    href='#CartCanvas'\r\n                    className='cart-icon'\r\n                    role='button'\r\n                    aria-controls='CartCanvas'\r\n                  >\r\n                    <i className='bi bi-cart-check-fill'></i>Carrito(\r\n                    {state.shopingCart.length})\r\n                  </a>\r\n                </h1>\r\n              )}\r\n          </div>\r\n        </div>\r\n        <div className='row justify-content-end'>\r\n          <div className='col-md-3 col-sm-12'>\r\n            <OrderCatalog\r\n              handleSelectOrder={handleSelectOrder}\r\n              searchOrder={state.searchOrder}\r\n            />\r\n          </div>\r\n        </div>\r\n\r\n        <div className='row offset-xl-3 offset-md-1'>\r\n          <div className='col-md-6 col-sm-12 '>\r\n            <div className='row'>\r\n              <div className='col-4 text-end'>\r\n                <h5 className='show-perpag '>Mostrar</h5>\r\n              </div>\r\n              <div className='col-3 text-center'>\r\n                <h5 className='dropdown shadow-0 drop-perPage'>\r\n                  <a\r\n                    href='#'\r\n                    className='btn btn-link dropdown-toggle items-per-page'\r\n                    role='button'\r\n                    data-mdb-toggle='dropdown'\r\n                    aria-expanded='false'\r\n                  >\r\n                    {state.itemsPerPage}\r\n                  </a>\r\n                  <ul\r\n                    className='dropdown-menu'\r\n                    aria-labelledby='dropdownMenuLink'\r\n                  >\r\n                    {state.perPageOptions.map((item) => {\r\n                      return (\r\n                        <li key={item.value}>\r\n                          <a\r\n                            href='#'\r\n                            className='dropdown-item drop-items'\r\n                            onClick={(e) => {\r\n                              setState((prevState) => ({\r\n                                ...prevState,\r\n                                itemsPerPage: item.value,\r\n                                currentPage: 1,\r\n                              }));\r\n                              onItemsPerPage(item.value);\r\n                            }}\r\n                          >\r\n                            {item.value}\r\n                          </a>\r\n                        </li>\r\n                      );\r\n                    })}\r\n                  </ul>\r\n                </h5>{' '}\r\n              </div>\r\n              <div className='col-5'>\r\n                <h5 className='show-perpag'>resultados por página</h5>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className='col pagination-section'>\r\n            <PaginationCatalog\r\n              pages={state.numberPages}\r\n              nextPage={nextPage}\r\n              currentPage={state.currentPage}\r\n            />\r\n          </div>\r\n          <div className='col mt-0'>\r\n            <div className='card-body d-flex justify-content-end p-1 show-options'>\r\n              <button\r\n                className={`${state.format === 1 ? 'box-items' : 'box-items2'}`}\r\n                onClick={(e) =>\r\n                  setState((prevState) => ({ ...prevState, format: 1 }))\r\n                }\r\n              >\r\n                <i className='fas fa-th-large'></i>\r\n              </button>\r\n              <button\r\n                className={`${state.format === 1 ? 'box-items2' : 'box-items'}`}\r\n                onClick={(e) =>\r\n                  setState((prevState) => ({ ...prevState, format: 2 }))\r\n                }\r\n              >\r\n                <i className='fas fa-bars'></i>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div className='row justify-content-md-center grid-items'>\r\n          <div className='col-md-3 text-uppercase filters'>\r\n            <h5>Mostrando</h5>\r\n            <h4>\r\n              {state.filterItems} de {state.totalResults} <span>lotes</span>\r\n            </h4>\r\n            <SearchDescription\r\n              handleSubmit={handleSubmit}\r\n              handleChange={handleChange}\r\n              searchTerm={state.searchTerm}\r\n            />\r\n            {state.filterSections && state.filterSections.map((item) => {\r\n              if (item.id === priceFilterID) {\r\n                return (\r\n                  <PriceFilter\r\n                    key={item.id}\r\n                    min={state.minPrice}\r\n                    max={state.maxPrice}\r\n                    getByPrice={getByPrice}\r\n                    cleanPrice={cleanPrice}\r\n                  />\r\n                );\r\n              }\r\n              return (\r\n                <FiltersCatalog\r\n                  key={item.id}\r\n                  idSection={item.id}\r\n                  title={item.description}\r\n                  filters={item.filters}\r\n                  getByChecks={getByChecks}\r\n                />\r\n              );\r\n            })}\r\n            <div className='row mt-3'>\r\n              <button\r\n                className='btn btn-outline-secondary fs-5'\r\n                onClick={(e) => cleanFilters(e)}\r\n              >\r\n                <img src='./resources/Frame.png' alt='Frame' />\r\n                <strong> Limpiar filtros</strong>\r\n              </button>\r\n            </div>\r\n          </div>\r\n\r\n          <div className='col-md-9'>\r\n            {!loading && (\r\n              <ProductGrid\r\n                articles={state.articles}\r\n                format={state.format}\r\n                idAuction={state.idAuction}\r\n                favorities={favorities}\r\n                registered={state.pallet > 0 ? true : false}\r\n                idPallet={state.idPallet}\r\n                idType={state.idType}\r\n                idStatus={state.idStatus}\r\n                auctionTypes={auctionTypes}\r\n                auctionStatus={auctionStatus}\r\n                addCartItem={handdleAddCartItem}\r\n                statusCustomer={statusCustomer}\r\n                actualLotID={state.actualLot}\r\n              />\r\n            )}\r\n          </div>\r\n        </div>\r\n        <div className='row justify-content-center pagination-section mt-5'>\r\n          <div className='col-auto'>\r\n            <PaginationCatalog\r\n              pages={state.numberPages}\r\n              nextPage={nextPage}\r\n              currentPage={state.currentPage}\r\n            />\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div\r\n        className='offcanvas offcanvas-end cart-canvas'\r\n        tabIndex='-1'\r\n        id='CartCanvas'\r\n      >\r\n        <Cart\r\n          clientData={clientData}\r\n          visible={handleSetVisibleModal}\r\n          idAuction={state.idAuction}\r\n          ShoppingCart={state.shopingCart}\r\n          delCartItem={handdleDeleteCartItem}\r\n          enableInvoice={enableInvoice}\r\n        />\r\n      </div>\r\n      <button\r\n        id='btnDataComplementary'\r\n        className='hide'\r\n        data-bs-toggle='modal'\r\n        data-bs-target='#modalCustomerData'\r\n      />\r\n      <div className='form-profile'>\r\n        <ModalCustomerData updateData={getClientData} visible={visibleModal} />\r\n      </div>\r\n    </Fragment>\r\n  );\r\n};\r\n\r\nexport default Catalog;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/Menu/AboutUs.css';\r\n\r\nexport const AboutUs = () => {\r\n  const [data, setData] = useState([]);\r\n\r\n  useEffect(() => {\r\n    getConfig('aboutUs.json').then((data) => setData(data));\r\n  }, []);\r\n\r\n  let title1 = '',\r\n    title2 = '',\r\n    paragraph1 = '',\r\n    paragraph2 = '',\r\n    paragraph3 = '',\r\n    paragraph4 = '';\r\n\r\n  if (data) {\r\n    title1 = data.title1;\r\n    title2 = data.title2;\r\n    paragraph1 = data.paragraph1;\r\n    paragraph2 = data.paragraph2;\r\n    paragraph3 = data.paragraph3;\r\n    paragraph4 = data.paragraph4;\r\n  }\r\n\r\n  return (\r\n    <div className=\"container-fluid container-about-us slidein\">\r\n      <div className=\"row \">\r\n        <div className=\"col-12 col-md-6\">\r\n          <h2 className=\"title-section-s mb-5\">\r\n            <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n          </h2>\r\n          <div className=\"we-platform mb-5\">\r\n            <div dangerouslySetInnerHTML={{ __html: paragraph1 }} />\r\n            <div dangerouslySetInnerHTML={{ __html: paragraph2 }} />\r\n          </div>\r\n          <h2 className=\"title-section-s mb-5\">\r\n            <div dangerouslySetInnerHTML={{ __html: title2 }} />\r\n          </h2>\r\n          <div className=\"we-platform\">\r\n            <div dangerouslySetInnerHTML={{ __html: paragraph3 }} />\r\n            <div dangerouslySetInnerHTML={{ __html: paragraph4 }} />\r\n          </div>\r\n        </div>\r\n        <div className=\"col-12 col-md-6 image-container slidein\">\r\n          <img src=\"/resources/quienes_somos.jpg\" alt=\"\" className=\"about-us-image\" />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useContext, useEffect, useState, useLayoutEffect } from 'react';\r\n\r\nimport { ServiceAuctionCustomerStatus, ServiceCarousel } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault, getIdStreaming, getExecution } from '../../helpers/getConstants';\r\n\r\nimport { ButtonRegister } from '../Register/ButtonRegister';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { ButtonToStreaming } from '../Register/ButtonToStreaming';\r\n\r\nimport { convertToDate } from '../Utilities/General';\r\nimport { DataContext } from '../../context/DataContext';\r\n\r\n//Animaciones\r\nimport { setSlideIn } from '../Utilities/Animation';\r\n\r\n//CSS\r\nimport '../../css/Menu/Auctions.css';\r\n\r\nexport const AuctionsMenu = (props) => {\r\n  const [auctions, setAuctions] = useState([]);\r\n  const [loading, setLoading] = useState(true);\r\n  const idStreaming = getIdStreaming();\r\n  const execution = getExecution();\r\n  const { id } = localStorage;\r\n  const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(id);\r\n  const {\r\n    validate: { valid, registeredAuctions, idPallet },\r\n  } = useContext(DataContext);\r\n\r\n  useEffect(() => {\r\n    if (id) {\r\n      GET(URLAuctionCustomerStatus).then((response) => {\r\n        getAuctions(response);\r\n      });\r\n    } else {\r\n      getAuctions();\r\n    }\r\n  }, [URLAuctionCustomerStatus, id]);\r\n\r\n  useEffect(() => {\r\n    if (idPallet) {\r\n      GET(URLAuctionCustomerStatus).then((response) => {\r\n        getAuctions(response);\r\n      });\r\n    }\r\n  }, [valid, URLAuctionCustomerStatus, idPallet]);\r\n\r\n  const checkStatus = (item, auctions) => {\r\n    let value = '';\r\n    if (auctions.length > 0) {\r\n      const users = auctions.find((auction) => auction.idAuction === item.id);\r\n      if (users) {\r\n        value = users.idAuctionCustomerStatus;\r\n      }\r\n    }\r\n    return value;\r\n  };\r\n  const getAuctions = (auctionsList = []) => {\r\n    const URLCarousel = ServiceCarousel();\r\n    GET(URLCarousel).then((response) => {\r\n      if (response && response.length > 0) {\r\n        const auctions = response.map((auction) => {\r\n          auction.auctionCustomerStatus = checkStatus(auction, auctionsList);\r\n          auction.auctionRegistered = getIsStreaming(auction.id);\r\n          if (!auction.url[0]) {\r\n            auction.url[0] = getImgDefault();\r\n          }\r\n          return auction;\r\n        });\r\n        setAuctions(auctions);\r\n      }\r\n      setLoading(false);\r\n    });\r\n  };\r\n  const getIsStreaming = (idAuction) => {\r\n    let auctionRegistered = {\r\n      pallet: 0,\r\n      streaming: false,\r\n      idPallet: '',\r\n    };\r\n    const auctionValue = registeredAuctions.find((auction) => auction.idAuction === idAuction);\r\n    if (auctionValue) {\r\n      auctionRegistered.pallet = auctionValue.pallet;\r\n      auctionRegistered.streaming = auctionValue.streaming;\r\n      auctionRegistered.idPallet = auctionValue.idPallet;\r\n    }\r\n\r\n    return auctionRegistered;\r\n  };\r\n\r\n  useLayoutEffect(() => {\r\n    const handleScroll = () => {\r\n      auctions.forEach((item) => {\r\n        setSlideIn('.container__auctionMenu--' + item.id);\r\n      });\r\n    }\r\n    window.addEventListener('scroll', handleScroll);\r\n    return () => window.removeEventListener('scroll', handleScroll);\r\n  }, [auctions]);\r\n\r\n  return (\r\n    <div className=\"container-fluid container-auctions-menu\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12\">\r\n          <h2 className=\"title-section-auc\">\r\n            <span className=\"auctions2\">Nuestras</span> subastas\r\n          </h2>\r\n        </div>\r\n      </div>\r\n      {!loading && (\r\n        <div>\r\n          {auctions.length > 0 ? (\r\n            <div>\r\n              {auctions.map(\r\n                (\r\n                  {\r\n                    id,\r\n                    name = '',\r\n                    auctionDate = new Date(),\r\n                    url,\r\n                    auctionRegistered: { pallet, streaming },\r\n                    idType,\r\n                    idStatus,\r\n                    description,\r\n                    place,\r\n                    auctionCustomerStatus,\r\n                  },\r\n                  index\r\n                ) => (\r\n                  <div className={index === 0 ? 'card mb-8 slidein' : 'card mb-8 container__auctionMenu--' + id} key={index}>\r\n                    <div className=\"row g-0\">\r\n                      <div className=\"col-12 col-sm-6\">\r\n                        <div className=\"card-body \">\r\n                          <h2 className=\"auction-text1 text-center-mobile\">Subasta</h2>\r\n                          <h2 className=\"auction-text2 text-center-mobile\">{name}</h2>\r\n                          <h4 className=\"auction-text3 text-center-mobile\">{convertToDate(auctionDate)}</h4>\r\n                          <div className=\"row\">\r\n                            <div className=\"col-12 text-center-mobile\">\r\n                              <WatchCatalog idAuction={id} modal={false} clasStyle={'buttons-auctions btnAuction'} />\r\n                            </div>\r\n                          </div>\r\n                          <br />\r\n                          {pallet > 0 && idType === idStreaming && idStatus === execution && (\r\n                            <div className=\"row\">\r\n                              <div className=\"col-12 text-center-mobile\">\r\n                                <ButtonToStreaming\r\n                                  streaming={streaming}\r\n                                  idAuction={id}\r\n                                  classStyle={'buttons-auctions btnAuction'}\r\n                                  userStatusLastCatalog={auctionCustomerStatus}\r\n                                />\r\n                              </div>\r\n                            </div>\r\n                          )}\r\n                          {pallet <= 0 && (\r\n                            <div className=\"row\">\r\n                              <div className=\"col-12 text-center-mobile\">\r\n                                <ButtonRegister\r\n                                  idAuction={id}\r\n                                  nameAuction={name}\r\n                                  dateAuction={convertToDate(auctionDate)}\r\n                                  classStyle={'buttons-auctions btnAuction'}\r\n                                />\r\n                              </div>\r\n                            </div>\r\n                          )}\r\n                          <p className=\"note-auction text-center-mobile\">{description}</p>\r\n                          <p className=\"note-auction text-center-mobile\">{place}</p>\r\n                        </div>\r\n                      </div>\r\n                      <div className=\"col-12 col-sm-6 image-col text-center\">\r\n                        <img src={url} className=\"auction-image rounded-start\" alt=\"...\" />\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                )\r\n              )}\r\n            </div>\r\n          ) : (\r\n            <h4>No hay registros...</h4>\r\n          )}\r\n        </div>\r\n      )}\r\n      <div className=\"row card-bottom\">\r\n        <div className=\"col-12\">\r\n          <h2 className=\"title-section-auc\">\r\n            <span className=\"auctions2\">métodos de</span> pago\r\n          </h2>\r\n        </div>\r\n      </div>\r\n      <div className=\"row\">\r\n        <div className=\"col-12 text-methods\">\r\n          <span>Conoce nuestros distintos métodos con los que podrás realizar tus pagos:</span>\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center text-center container_payment_methods\">\r\n        <div className=\"col-2 container_payment_methods--box\">\r\n          <img className=\"transfer\" src=\"./resources/svg/Transferencia.svg\" alt=\"Transferencia\" />\r\n          <p>Transferencia</p>\r\n        </div>\r\n        <div className=\"col-2 container_payment_methods--box\">\r\n          <img className=\"cash\" src=\"./resources/svg/Efectivo.svg\" alt=\"Efectivo\" />\r\n          <p>Efectivo</p>\r\n        </div>\r\n        <div className=\"col-2 container_payment_methods--box\">\r\n          <img className=\"amex\" src=\"./resources/svg/AmericanExpress.svg\" alt=\"American Express\" />\r\n        </div>\r\n        <div className=\"col-2 container_payment_methods--box\">\r\n          <img className=\"visa\" src=\"./resources/svg/Visa.svg\" alt=\"Visa\" />\r\n        </div>\r\n        <div className=\"col-2 container_payment_methods--box\">\r\n          <img className=\"mastercard\" src=\"./resources/svg/Mastercard.svg\" alt=\"Mastercard\" />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport '../../css/Menu/Services.css';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const Services = () => {\r\n  const [data, setData] = useState([]);\r\n\r\n  useEffect(() => {\r\n    getConfig('services.json').then((data) => setData(data));\r\n  }, []);\r\n\r\n  let title1 = '',\r\n    title2 = '',\r\n    title3 = '',\r\n    paragraph1 = '',\r\n    paragraph2 = '',\r\n    paragraph3 = '',\r\n    paragraph4 = '',\r\n    phone1 = '',\r\n    phone2 = '',\r\n    phone3 = '',\r\n    phone4 = '',\r\n    desc1 = '',\r\n    desc2 = '',\r\n    desc3 = '',\r\n    desc4 = '',\r\n    email = '';\r\n\r\n  if (data) {\r\n    title1 = data.title1;\r\n    title2 = data.title2;\r\n    title3 = data.title3;\r\n    paragraph1 = data.paragraph1;\r\n    paragraph2 = data.paragraph2;\r\n    paragraph3 = data.paragraph3;\r\n    paragraph4 = data.paragraph4;\r\n    phone1 = data.phone1;\r\n    phone2 = data.phone2;\r\n    phone3 = data.phone3;\r\n    phone4 = data.phone4;\r\n    desc1 = data.desc1;\r\n    desc2 = data.desc2;\r\n    desc3 = data.desc3;\r\n    desc4 = data.desc4;\r\n    email = data.email;\r\n  }\r\n\r\n  return (\r\n    <div className=\"container-fluid container-services slidein\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12 col-sm-6\">\r\n          <div className=\"row\">\r\n            <div className=\"col-12\">\r\n              <h2 className=\"title-services\">\r\n                <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n              </h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 mb-5 text-center-mobile\">\r\n              <div dangerouslySetInnerHTML={{ __html: title2 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 consig-section mb-5\">\r\n              <div dangerouslySetInnerHTML={{ __html: paragraph1 }} />\r\n              <div dangerouslySetInnerHTML={{ __html: paragraph2 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 mb-5 text-center-mobile\">\r\n              <div dangerouslySetInnerHTML={{ __html: title3 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 consig-section mb-4\">\r\n              <div dangerouslySetInnerHTML={{ __html: paragraph3 }} />\r\n              <div dangerouslySetInnerHTML={{ __html: paragraph4 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-lg-4 col-12 container-services__align\">\r\n              <h2>\r\n                <a href={'tel:' + phone1} className=\"phone-number\" rel=\"noreferrer\">\r\n                  <b>{phone1}</b>\r\n                </a>\r\n              </h2>\r\n            </div>\r\n            <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n              <h2 className='desc'>&nbsp;&nbsp;{desc1}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-lg-4 col-12 container-services__align\">\r\n              <h2>\r\n                <a href={'tel:' + phone2} className=\"phone-number\" rel=\"noreferrer\">\r\n                  <b>{phone2}</b>\r\n                </a>\r\n              </h2>\r\n            </div>\r\n            <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n              <h2 className='desc'>&nbsp;&nbsp;{desc2}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-lg-4 col-12 container-services__align\">\r\n              <h2>\r\n                <a href={'tel:' + phone3} className=\"phone-number\" rel=\"noreferrer\">\r\n                  <b>{phone3}</b>\r\n                </a>\r\n              </h2>\r\n            </div>\r\n            <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n              <h2 className='desc'>&nbsp;&nbsp;{desc3}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-lg-4 col-12 container-services__align\">\r\n              <h2>\r\n                <a href={'tel:' + phone4} className=\"phone-number\" rel=\"noreferrer\">\r\n                  <b>{phone4}</b>\r\n                </a>\r\n              </h2>\r\n            </div>\r\n            <div className=\"col-lg-8 col-12 container-services__alignDesc\">\r\n              <h2 className='desc'>&nbsp;&nbsp;{desc4}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 text-center\">\r\n              <p className=\"email-contact\">\r\n                <Link to=\"/contacto\">\r\n                  <u>{email}</u>\r\n                </Link>\r\n              </p>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div className=\"col-12 col-sm-6 text-center content-vertical-align\">\r\n          <img src=\"./resources/servicios.jpg\" alt=\"...\" className=\"img-fluid\"></img>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport NumberFormat from 'react-number-format';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\n\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceContact } from '../../helpers/getURL';\r\nimport { OpenMessage, verifyFieldsRequerid, validEmail, restoreInputs, onlyText, onlyMail } from '../Utilities/General';\r\n//CSS\r\nimport '../../css/Menu/Contact.css';\r\n\r\nexport const Contact = () => {\r\n  const [fullName, setFullName] = useState('');\r\n  const [postEmail, setPostEmail] = useState('');\r\n  const [tel, setTel] = useState('');\r\n  const [message, setMessage] = useState('');\r\n  const [termsConditions, setTermsConditions] = useState(false);\r\n  const [captcha, setCaptcha] = useState(false);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [data, setData] = useState([]);\r\n  const URL = ServiceContact();\r\n  let history = useHistory();\r\n  const inputs = ['input-nameContact', 'input-emailContact', 'input-telContact', 'input-messageContact'];\r\n  const captchaContact = useRef(null);\r\n  const checkContact = useRef(null);\r\n\r\n  const enableBtn = () => {\r\n    setDisabledBtn(true);\r\n    const chk = document.getElementById('checkBoxContact').checked;\r\n    const chkCaptcha = captchaContact.current.getValue();\r\n    if (fullName && postEmail && tel && message && chk && chkCaptcha) {\r\n      setDisabledBtn(false);\r\n    }\r\n  };\r\n\r\n  const onChange = () => {\r\n    if (captchaContact.current.getValue()) {\r\n      setCaptcha(true);\r\n      enableBtn();\r\n    }\r\n  };\r\n\r\n  const verifyFields = () => {\r\n    const validFields = verifyFieldsRequerid(inputs);\r\n    if (!validFields) {\r\n      OpenMessage('error', 'Faltan campos por llenar');\r\n      return false;\r\n    } else {\r\n      if (!validEmail(postEmail)) {\r\n        document.getElementById('input-emailContact').classList.add('is-invalid');\r\n        OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n        return false;\r\n      }\r\n      return true;\r\n    }\r\n  };\r\n  useEffect(() => {\r\n    getConfig('contact.json').then((data) => {\r\n      setData(data);\r\n    });\r\n  }, []);\r\n\r\n  const {\r\n    title1 = '',\r\n    text1 = '',\r\n    text2 = '',\r\n    text3 = '',\r\n    text4 = '',\r\n    text5 = '',\r\n    phone1 = '',\r\n    phone2 = '',\r\n    phone3 = '',\r\n    phone4 = '',\r\n    desc1 = '',\r\n    desc2 = '',\r\n    desc3 = '',\r\n    desc4 = '',\r\n    email = '',\r\n    facebook = '#',\r\n    twitter = '#',\r\n  } = data;\r\n\r\n  const onSendContact = () => {\r\n    const validFields = verifyFields();\r\n    if (!validFields) {\r\n      return false;\r\n    }\r\n    if (!termsConditions) {\r\n      OpenMessage('error', 'Debe aceptar los términos y condiciones');\r\n      return false;\r\n    }\r\n    if (!captcha) {\r\n      OpenMessage('error', 'Debe aceptar el captcha');\r\n      return false;\r\n    }\r\n    setDisabledBtn(true);\r\n    const json = {\r\n      name: fullName,\r\n      email: postEmail,\r\n      phone: tel,\r\n      message: message,\r\n    };\r\n    POST(URL, json)\r\n      .then((data) => {\r\n        if (data === true) {\r\n          OpenMessage('success', 'Agradecemos su comentario, nuestro equipo se pondrá en contacto para resolver sus dudas.');\r\n          captchaContact.current.props.grecaptcha.reset();\r\n          setDisabledBtn(false);\r\n          setFullName('');\r\n          setPostEmail('');\r\n          setTel('');\r\n          setMessage('');\r\n          setTermsConditions(false);\r\n          setCaptcha(false);\r\n          restoreInputs(inputs);\r\n          history.push('/');\r\n        } else {\r\n          OpenMessage('error', data);\r\n          setDisabledBtn(false);\r\n          captchaContact.current.props.grecaptcha.reset();\r\n        }\r\n      })\r\n      .catch((error) => {\r\n        OpenMessage('error', 'Intentar nuevamente');\r\n        setDisabledBtn(false);\r\n        captchaContact.current.props.grecaptcha.reset();\r\n      });\r\n  };\r\n\r\n  const openPDF = () => {\r\n    window.open('/resources/terminos-y-condiciones-subasta-2021.pdf');\r\n  };\r\n  return (\r\n    <div className=\"container-fluid container-contact\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12 text-center-mobile\">\r\n          <div dangerouslySetInnerHTML={{ __html: title1 }} />\r\n        </div>\r\n      </div>\r\n      <div className=\"row form-section justify-content-around\">\r\n        <div className=\"col-12 col-md-6\">\r\n          <div className=\"card\">\r\n            <div className=\"card-body\">\r\n              <div dangerouslySetInnerHTML={{ __html: text1 }} />\r\n\r\n              <div className=\"row mb-3\">\r\n                <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n                  <input\r\n                    type=\"text\"\r\n                    className=\"form-control form-contact\"\r\n                    id=\"input-nameContact\"\r\n                    onChange={(e) => setFullName(e.target.value)}\r\n                    onInput={(e) => onlyText(e)}\r\n                    maxLength=\"150\"\r\n                    onKeyUp={enableBtn}\r\n                    value={fullName}\r\n                    autoComplete=\"off\"\r\n                  />\r\n                  <label htmlFor=\"input-name\" className=\"col-form-label form-label holder-border\">\r\n                    Nombre completo*\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row mb-3\">\r\n                <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n                  <input\r\n                    type=\"email\"\r\n                    className=\"form-control form-contact\"\r\n                    id=\"input-emailContact\"\r\n                    value={postEmail}\r\n                    onChange={(e) => setPostEmail(e.target.value)}\r\n                    onKeyUp={enableBtn}\r\n                    maxLength=\"80\"\r\n                    onInput={(e) => onlyMail(e)}\r\n                    autoComplete=\"off\"\r\n                  />\r\n                  <label htmlFor=\"input-email\" className=\"col-form-label form-label holder-border\">\r\n                    Correo*\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row mb-3\">\r\n                <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n                  <NumberFormat\r\n                    format=\"(###) ###-####\"\r\n                    mask=\"\"\r\n                    name=\"phoneNumberInput\"\r\n                    className=\"form-control form-contact\"\r\n                    id=\"input-telContact\"\r\n                    onValueChange={(e) => setTel(e.value)}\r\n                    onKeyUp={enableBtn}\r\n                    value={tel}\r\n                    autoComplete=\"off\"\r\n                  />\r\n                  <label htmlFor=\"input-tel\" className=\"col-form-label form-label holder-border\">\r\n                    Teléfono*\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row mb-3\">\r\n                <div className=\"col-10 form-outline container-input-checkin form-inputs-space\">\r\n                  <textarea\r\n                    className=\"form-control form-contact\"\r\n                    id=\"input-messageContact\"\r\n                    rows=\"6\"\r\n                    value={message}\r\n                    onChange={(e) => setMessage(e.target.value)}\r\n                    onKeyUp={enableBtn}\r\n                    maxLength=\"500\"\r\n                  ></textarea>\r\n                  <label htmlFor=\"input-message\" className=\"col-form-label form-label holder-border message-contact\">\r\n                    Mensaje*\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row mb-3\">\r\n                <div className=\"container-fluid\">\r\n                  <div className=\"row form-inputs-space\">\r\n                    <div className=\"col-10 container-input-checkin\">\r\n                      <div className=\"form-check\">\r\n                        <input\r\n                          className=\"form-check-input\"\r\n                          type=\"checkbox\"\r\n                          id=\"checkBoxContact\"\r\n                          ref={checkContact}\r\n                          checked={termsConditions}\r\n                          onClick={(e) => {\r\n                            setTermsConditions(e.target.checked);\r\n                            enableBtn();\r\n                          }}\r\n                          onChange={(e) => {}}\r\n                        />\r\n                        <label className=\"form-check-label\" htmlFor=\"checkBoxContact\">\r\n                          Acepto todos los &nbsp;\r\n                          <span className=\"terms-conditions\" onClick={(e) => openPDF(e)}>\r\n                            Términos y condiciones\r\n                          </span>\r\n                        </label>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3 mt-4 justify-content-center\">\r\n                    <div className=\"col-12 col-sm-8 col-md-12 col-lg-8 col-xl-6 container-captcha\">\r\n                      <ReCAPTCHA ref={captchaContact} sitekey=\"6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI\" onChange={onChange} />\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row\">\r\n                    <div className=\"col text-center mb-3 mt-4\">\r\n                      <button\r\n                        type=\"button\"\r\n                        className=\"btn btn-outline-secondary btn-lg btn-send\"\r\n                        onClick={(e) => onSendContact(e)}\r\n                        disabled={disabledBtn}\r\n                      >\r\n                        ENVIAR\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div className=\"col-12 col-md-6\">\r\n          <div className=\"row\">\r\n            <div className=\"col-12\">\r\n              <div dangerouslySetInnerHTML={{ __html: text2 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 details-contact\">\r\n              <div className=\"icons-contact\">\r\n                <i className=\"fas fa-phone-alt icons-align\"></i>\r\n                <a href={'tel:' + phone1} rel=\"noreferrer\">\r\n                  <h4 className=\"phone-contact\">\r\n                    <b>{phone1}</b> <label>{desc1}</label>\r\n                  </h4>\r\n                </a>\r\n              </div>\r\n              <div className=\"icons-contact\">\r\n                <i className=\"fas fa-phone-alt icons-align\"></i>\r\n                <a href={'tel:' + phone2} rel=\"noreferrer\">\r\n                  <h4 className=\"phone-contact\">\r\n                    <b>{phone2}</b> <label>{desc2}</label>\r\n                  </h4>\r\n                </a>\r\n              </div>\r\n              <div className=\"icons-contact\">\r\n                <i className=\"fas fa-phone-alt icons-align\"></i>\r\n                <a href={'tel:' + phone3} rel=\"noreferrer\">\r\n                  <h4 className=\"phone-contact\">\r\n                    <b>{phone3}</b> <label>{desc3}</label>\r\n                  </h4>\r\n                </a>\r\n              </div>\r\n              <div className=\"icons-contact\">\r\n                <i className=\"fas fa-phone-alt icons-align\"></i>\r\n                <a href={'tel:' + phone4} rel=\"noreferrer\">\r\n                  <h4 className=\"phone-contact\">\r\n                    <b>{phone4}</b> <label>{desc4}</label>\r\n                  </h4>\r\n                </a>\r\n              </div>\r\n              <div className=\"icons-contact\">\r\n                <i className=\"fas fa-envelope icons-align\"></i>\r\n                <a href={`mailto:${email}`} rel=\"noreferrer\">\r\n                  <h4 className=\"email-contact\">{email}</h4>\r\n                </a>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12\">\r\n              <div dangerouslySetInnerHTML={{ __html: text3 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 mt-3\">\r\n              <div dangerouslySetInnerHTML={{ __html: text4 }} />\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 mt-3 container-icon-social\">\r\n              <div className=\"icons-contact\">\r\n                <a href={facebook} target=\"_blank\" rel=\"noreferrer\">\r\n                  <i className=\"fab fa-facebook-square facebook-icon\"></i>\r\n                </a>\r\n                <a href={facebook} target=\"_blank\" rel=\"noreferrer\" className=\"acution-social\">\r\n                  <div dangerouslySetInnerHTML={{ __html: text5 }} />\r\n                </a>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"row\">\r\n            <div className=\"col-12 container-icon-social\">\r\n              <div className=\"icons-contact\">\r\n                <a href={twitter} target=\"_blank\" rel=\"noreferrer\">\r\n                  <i className=\"fab fa-twitter-square twitter-icon\"></i>\r\n                </a>\r\n                <a href={twitter} target=\"_blank\" rel=\"noreferrer\" className=\"acution-social\">\r\n                  <div dangerouslySetInnerHTML={{ __html: text5 }} />\r\n                </a>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nfunction ToTop() {\r\n  const { pathname } = useLocation();\r\n\r\n  useEffect(() => {\r\n    window.scrollTo(0, 0);\r\n  }, [pathname]);\r\n\r\n  return null;\r\n}\r\n\r\nexport default ToTop;\r\n","import React from 'react';\r\n\r\nconst Loading = () => {\r\n  return (\r\n    <div id=\"loading\" className=\"row container-loading hide\">\r\n      <div className=\"col-12 text-center\">\r\n        <img src=\"./resources/loading.gif\" alt=\"loading...\" width=\"15%\" />\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Loading;\r\n","import React, { useContext } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\n//import { useContext } from 'react/cjs/react.development';\r\nimport { DataContext } from '../../../context/DataContext';\r\nimport { CloseModalIcon } from '../../Home/CloseModalIcon';\r\nimport { CloseModal, setSession } from '../../Utilities/General';\r\n\r\nexport const ClosingModal = () => {\r\n  const { setValidate } = useContext(DataContext);\r\n  const history = useHistory();\r\n  const { search } = useLocation();\r\n  const url = new URLSearchParams(search);\r\n  const exitStreaming = () => {\r\n    const isGoAccount = url.has('profile');\r\n    const isLogOut = url.has('logout');\r\n    if (isGoAccount) {\r\n      CloseModal('modalCloseStreaming');\r\n      history.push('/perfil?profile=true');\r\n    } else if (isLogOut) {\r\n      setValidate({\r\n        valid: false,\r\n        registeredAuctions: [],\r\n        idAuction: '',\r\n        nameAuction: '',\r\n        dateAuction: '',\r\n        palletAuction: '',\r\n        idPallet: '',\r\n        onPaymentValidate: false,\r\n      });\r\n      setSession(false, '');\r\n      history.push('/?home=true');\r\n    } else {\r\n      history.push('?home=true');\r\n    }\r\n  };\r\n  const cancelExit = () => {\r\n    history.push(`/streaming?id=${url.get('id')}`);\r\n    CloseModal('modalCloseStreaming');\r\n  };\r\n  return (\r\n    <div\r\n      className=\"modal fade \"\r\n      id=\"modalCloseStreaming\"\r\n      aria-labelledby=\"closeStreamingModalLabel\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header justify-content-end border-0\">\r\n            <CloseModalIcon onHandleClick={cancelExit} />\r\n          </div>\r\n          <div className=\"modal-body text-center mb-3\">\r\n            <div className=\"closing-accept\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n            </div>\r\n            <h3 className=\"text-uppercase px-5 pb-5\">¿Está seguro que desea salir del streaming?</h3>\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-outline-danger w- btn-lg me-2\"\r\n              data-bs-dismiss=\"modal\"\r\n              aria-label=\"Close\"\r\n              onClick={(e) => exitStreaming()}\r\n            >\r\n              Sí\r\n            </button>\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-outline-secondary w-auto btn-lg ms-2\"\r\n              data-bs-dismiss=\"modal\"\r\n              aria-label=\"Close\"\r\n              onClick={() => cancelExit()}\r\n            >\r\n              No\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport '../../css/Mesage.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { ClosingModal } from '../streaming/MiniPlayer/ClosingModal';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const Message = () => {\r\n  const {\r\n    validate: { registeredAuctions },\r\n    setValidate,\r\n  } = useContext(DataContext);\r\n\r\n  const onClear = () => {\r\n    setValidate({\r\n      valid: false,\r\n      registeredAuctions: [...registeredAuctions],\r\n      idAuction: '',\r\n      nameAuction: '',\r\n      dateAuction: '',\r\n      palletAuction: '',\r\n      idPallet: '',\r\n      onPaymentValidate: false,\r\n    });\r\n  };\r\n  return (\r\n    <div\r\n      className='modal fade container__message__parent'\r\n      id='modalMessage'\r\n      aria-hidden='true'\r\n    >\r\n      <div className='modal-dialog modal-dialog-centered modal-sm'>\r\n        <div className='modal-content'>\r\n          <div className='modal-header'>\r\n            <h4 id='headerTitle'> </h4>\r\n            <CloseModalIcon onHandleClick={() => CloseModal('modalMessage')} />\r\n          </div>\r\n          <div className='modal-body group-items'>\r\n            <div className='col-2 col-md-3'>\r\n              <span>\r\n                <i id='messageType' className='icon-element'></i>\r\n              </span>\r\n            </div>\r\n            <div className='col-10 col-md-9 text-items'>\r\n              <p id='messageText'></p>\r\n              <p id='messageSubText' style={{fontSize:'1rem'}}></p>\r\n              <Link\r\n                to={'/contacto'}\r\n                id='messageContact'\r\n                className={`button-contact-error`}\r\n                onClick={(e) => {\r\n                  onClear();\r\n                  CloseModal('modalRegisterToOffer');\r\n                  CloseModal('modalMessage');\r\n                }}\r\n              ></Link>\r\n            </div>\r\n          </div>\r\n          <div className='modal-footer footer-buttons'>\r\n            <button\r\n              id='buttonClose'\r\n              type='button'\r\n              className='btn btn-lg'\r\n              data-bs-dismiss='modal'\r\n            >\r\n              Cerrar\r\n            </button>\r\n\r\n            <button\r\n              id='messageText2'\r\n              type='button'\r\n              className='btn btn-lg btn-outline-success'\r\n            ></button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { CloseModal } from '../Utilities/General';\r\nimport { WatchCatalog } from './WatchCatalog';\r\n\r\nexport const StreamingRegisterMessage = () => {\r\n  const {\r\n    validate: {\r\n      idAuction,\r\n      registeredAuctions,\r\n      nameAuction,\r\n      dateAuction,\r\n      palletAuction,\r\n    },\r\n    setValidate,\r\n  } = useContext(DataContext);\r\n\r\n  const onClear = () => {\r\n    setValidate({\r\n      valid: false,\r\n      registeredAuctions: [...registeredAuctions],\r\n      idAuction: '',\r\n      nameAuction: '',\r\n      dateAuction: '',\r\n      palletAuction: '',\r\n      idPallet: '',\r\n      onPaymentValidate: false,\r\n    });\r\n    CloseModal('modalStreamingReisterMesage');\r\n  };\r\n  const convertToDate = (i) => {\r\n    const strings = dateAuction.split('|');\r\n    return strings[i];\r\n  };\r\n  return (\r\n    <div>\r\n      <div\r\n        className='modal fade '\r\n        id='modalStreamingReisterMesage'\r\n        aria-labelledby='streamingReisterModalLabel'\r\n        aria-hidden='true'\r\n        data-bs-backdrop='static'\r\n        data-bs-keyboard='false'\r\n      >\r\n        <div className='modal-dialog modal-dialog-centered'>\r\n          <div className='modal-content'>\r\n            <div className='modal-header header-streaming-mesagge'>\r\n              <h4\r\n                className='modal-title auction-streaming'\r\n                id='streamingReisterModalLabel'\r\n              >\r\n                REGISTRO A LA SUBASTA\r\n              </h4>\r\n              <CloseModalIcon onHandleClick={onClear} />\r\n            </div>\r\n            <div className='modal-body text-center body-streaming-message'>\r\n              <p>\r\n                El registro a la subasta{' '}\r\n                <span className='auction-streaming'>{nameAuction}</span> ha sido\r\n                realizado con éxito\r\n              </p>\r\n              <i className='far fa-check-circle check-streaming'></i>\r\n              <br />\r\n              <br />\r\n              <span className='date-register'>\r\n                Fecha: {convertToDate(0)}\r\n                <p> Hora: {convertToDate(1)}</p>\r\n              </span>\r\n              <h4 className='auction-streaming'>\r\n                PALETA ASIGNADA:{' '}\r\n                <span className='pallet-streaming'>{palletAuction}</span>\r\n              </h4>\r\n              <p className='text-center'>\r\n                <WatchCatalog\r\n                  idAuction={idAuction}\r\n                  modal={true}\r\n                  goCatalog={onClear}\r\n                  clasStyle={'watch-catalog'}\r\n                />\r\n              </p>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const OfferSuccess = () => {\r\n  const history = useHistory();\r\n\r\n  const closeOfferSuccess = () => {\r\n    const redirect = document.getElementById('redirectHome').value;\r\n    CloseModal('modalOfferSuccess');\r\n    if (redirect === 'true') {\r\n      history.push('/?home=true');\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div\r\n      className=\"modal fade \"\r\n      id=\"modalOfferSuccess\"\r\n      aria-labelledby=\"offerSuccessModalLabel\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header justify-content-end border-0\">\r\n            <CloseModalIcon onHandleClick={() => closeOfferSuccess()} />\r\n          </div>\r\n          <div className=\"modal-body text-center\">\r\n            <div className=\"text-center closing-accept\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n            </div>\r\n            <div className=\"text-center closing-accept\" id=\"textMessageSection\"></div>\r\n            <input type=\"hidden\" id=\"redirectHome\" value=\"false\" />\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n              data-bs-dismiss=\"modalOfferSuccess\"\r\n              aria-label=\"Close\"\r\n              onClick={(e) => closeOfferSuccess()}\r\n            >\r\n              Aceptar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { ServiceRequestPassword } from '../../helpers/getURL';\r\nimport { OpenMessage, validEmail, onlyMail } from '../Utilities/General';\r\n\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nexport const RecoveryPassword = () => {\r\n  const [disabledBtn, setdisabledBtn] = useState(true);\r\n  const [inputMail, setinputMail] = useState('');\r\n  const URL = ServiceRequestPassword();\r\n  const history = useHistory();\r\n\r\n  const changeMail = (value) => {\r\n    setinputMail(value);\r\n    setdisabledBtn(false);\r\n    if (value.trim() === '') {\r\n      setdisabledBtn(true);\r\n    }\r\n  };\r\n\r\n  const recovery = () => {\r\n    if (!validEmail(inputMail)) {\r\n      document.getElementById('input-mail').classList.add('is-invalid');\r\n      OpenMessage('error', 'El formato del correo eléctronico no es válido');\r\n      return false;\r\n    }\r\n    setdisabledBtn(true);\r\n    const params = {\r\n      email: inputMail,\r\n    };\r\n    POST(URL, params).then((data) => {\r\n      setdisabledBtn(false);\r\n      if (data === true) {\r\n        OpenMessage('success', 'En breve recibira un correo para restaurar su contraseña');\r\n        setinputMail('');\r\n        setTimeout(() => history.push('/'), 3000);\r\n      } else {\r\n        OpenMessage('error', data);\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div className=\"container-fluid container__recoverypwd\">\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-8 col-sm-6 col-lg-4\">\r\n          <div className=\"card\">\r\n            <div className=\"card-body\">\r\n              <div className=\"row\">\r\n                <div className=\"col-12 mb-5\">\r\n                  <h5 className=\"card-title\">\r\n                    <i className=\"far fa-gem\"></i>Recuperar contraseña\r\n                  </h5>\r\n                </div>\r\n              </div>\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n                  <div className=\"mb-3 form-outline\">\r\n                    <input\r\n                      type=\"text\"\r\n                      id=\"input-mailRecovery\"\r\n                      className=\"form-control\"\r\n                      value={inputMail}\r\n                      onChange={(e) => changeMail(e.target.value)}\r\n                      maxLength=\"80\"\r\n                      onInput={(e) => onlyMail(e)}\r\n                    />\r\n                    <label htmlFor=\"input-mailRecovery\" className=\"form-label\">\r\n                      Correo electrónico:\r\n                    </label>\r\n                    <div className=\"form-notch\">\r\n                      <div className=\"form-notch-leading\"></div>\r\n                      <div className=\"form-notch-middle\"></div>\r\n                      <div className=\"form-notch-trailing\"></div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-8 text-center mt-3\">\r\n                  <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={recovery} disabled={disabledBtn}>\r\n                    Enviar\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport { ServiceValidateTokenPasswordReset, ServiceResetPasswordReset } from '../../helpers/getURL';\r\nimport { OpenMessage, validPassword, changePasswordText } from '../Utilities/General';\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nlet id = '';\r\nlet token = '';\r\nexport const ResetPassword = () => {\r\n  const [inputPasswordReset, setinputPasswordReset] = useState('');\r\n  const [inputVerifyPasswordReset, setinputVerifyPasswordReset] = useState('');\r\n  const [disabledBtnReset, setdisabledBtnReset] = useState(true);\r\n\r\n  const history = useHistory();\r\n  const { search } = useLocation();\r\n\r\n  let URLReset = ServiceResetPasswordReset();\r\n\r\n  useEffect(() => {\r\n    let URL = ServiceValidateTokenPasswordReset();\r\n    if (!search) {\r\n      history.push('/');\r\n    }\r\n    if (URL) {\r\n      URL += search;\r\n      GET(URL).then((data) => {\r\n        if (!data) {\r\n          history.push('/expire');\r\n        }\r\n        id = data.id;\r\n        token = data.token;\r\n        const element = document.getElementsByClassName('container__recoverypwd');\r\n        if (element && element.length === 1) {\r\n          element[0].classList.remove('hidden');\r\n        }\r\n      });\r\n    }\r\n  }, [search, history]);\r\n\r\n  const verifyPassword = () => {\r\n    const msg = validPassword(inputPasswordReset);\r\n    if (msg) {\r\n      OpenMessage('error', msg);\r\n      document.getElementById('input-passwordReset').classList.add('is-invalid');\r\n      return false;\r\n    }\r\n    if (inputPasswordReset !== inputVerifyPasswordReset) {\r\n      const password = ['input-passwordReset', 'input-passwordVerifyReset'];\r\n      password.forEach((id) => {\r\n        let element = document.getElementById(id);\r\n        element.classList.add('is-invalid');\r\n      });\r\n      OpenMessage('error', 'Las contraseñas no coinciden');\r\n      return false;\r\n    }\r\n\r\n    return true;\r\n  };\r\n\r\n  const enableBtnReset = () => {\r\n    setdisabledBtnReset(true);\r\n    if (inputPasswordReset && inputVerifyPasswordReset) {\r\n      setdisabledBtnReset(false);\r\n    }\r\n  };\r\n\r\n  const resetPassword = () => {\r\n    if (verifyPassword()) {\r\n      setdisabledBtnReset(true);\r\n      const params = {\r\n        id: id,\r\n        token: token,\r\n        newpassword: inputPasswordReset,\r\n      };\r\n      POST(URLReset, params).then((data) => {\r\n        OpenMessage('success', data);\r\n        setinputPasswordReset('');\r\n        setinputVerifyPasswordReset('');\r\n\r\n        setTimeout(() => history.push('/'), 3000);\r\n      });\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div className=\"container-fluid container__recoverypwd hidden\">\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-8 col-sm-6 col-lg-4\">\r\n          <div className=\"card\">\r\n            <div className=\"card-body\">\r\n              <div className=\"row\">\r\n                <div className=\"col-12 mb-5\">\r\n                  <h5 className=\"card-title\">\r\n                    <i className=\"far fa-gem\"></i>Restaurar contraseña\r\n                  </h5>\r\n                </div>\r\n              </div>\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n                  <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n                    <input\r\n                      type=\"password\"\r\n                      className=\"form-control\"\r\n                      id=\"input-passwordReset\"\r\n                      value={inputPasswordReset}\r\n                      onKeyUp={enableBtnReset}\r\n                      onChange={(e) => setinputPasswordReset(e.target.value)}\r\n                      maxLength=\"50\"\r\n                      aria-describedby=\"icon-eyes-login\"\r\n                    />\r\n                    <i className=\"fas fa-eye-slash\" id=\"icon-eyes-login\" onClick={(e) => changePasswordText('input-passwordReset', e)}></i>\r\n\r\n                    <label htmlFor=\"input-passwordReset\" className=\"form-label\">\r\n                      Nueva contraseña:\r\n                    </label>\r\n                    <div className=\"form-notch\">\r\n                      <div className=\"form-notch-leading\"></div>\r\n                      <div className=\"form-notch-middle\"></div>\r\n                      <div className=\"form-notch-trailing\"></div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-md-11 col-lg-10 col-xxl-8\">\r\n                  <div className=\"mb-3 form-outline input-group input-password container-input-login\">\r\n                    <input\r\n                      type=\"password\"\r\n                      className=\"form-control\"\r\n                      id=\"input-passwordVerifyReset\"\r\n                      onKeyUp={enableBtnReset}\r\n                      value={inputVerifyPasswordReset}\r\n                      onChange={(e) => setinputVerifyPasswordReset(e.target.value)}\r\n                      maxLength=\"50\"\r\n                      aria-describedby=\"icon-eyes-login\"\r\n                    />\r\n                    <i\r\n                      className=\"fas fa-eye-slash\"\r\n                      id=\"icon-eyes-login\"\r\n                      onClick={(e) => changePasswordText('input-passwordVerifyReset', e)}\r\n                    ></i>\r\n\r\n                    <label htmlFor=\"input-passwordReset\" className=\"form-label\">\r\n                      Confirmar contraseña:\r\n                    </label>\r\n                    <div className=\"form-notch\">\r\n                      <div className=\"form-notch-leading\"></div>\r\n                      <div className=\"form-notch-middle\"></div>\r\n                      <div className=\"form-notch-trailing\"></div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-8 text-center mt-3\">\r\n                  <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" disabled={disabledBtnReset} onClick={resetPassword}>\r\n                    Cambiar\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\n\r\nimport '../../css/Login/TokenNotValid.css';\r\n\r\nexport const TokenNotValid = () => {\r\n  return (\r\n    <div className=\"row container-fluid container__expire justify-content-center\">\r\n      <div className=\"col-8 col-sm-6 col-lg-5 col-xxl-4 text-center container__expire-content\">\r\n        <i className=\"fas fa-times\"></i>\r\n        <label>Enlace no válido</label>\r\n        <i className=\"fas fa-times\"></i>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\n\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceConfirmEmailNewUser } from '../../helpers/getURL';\r\n\r\nimport '../../css/CheckIn/VerifyUser.css';\r\n\r\nexport const VerifyUser = () => {\r\n  const history = useHistory();\r\n  const { search } = useLocation();\r\n  if (!search) {\r\n    history.push('/?home=true');\r\n  }\r\n\r\n  useEffect(() => {\r\n    let URLConfirm = ServiceConfirmEmailNewUser();\r\n\r\n    if (URLConfirm) {\r\n      URLConfirm += search;\r\n      GET(URLConfirm).then((data) => {\r\n        if (data !== true) {\r\n          history.push('/expire');\r\n        }\r\n        const element = document.getElementsByClassName('container__VerifyUser');\r\n        if (element && element.length === 1) {\r\n          element[0].classList.remove('hidden');\r\n          setTimeout(() => history.push('/'), 10000);\r\n        }\r\n      });\r\n    }\r\n  }, [search, history]);\r\n\r\n  return (\r\n    <div className=\"row container-fluid container__VerifyUser justify-content-center hidden\">\r\n      <div className=\"col-10 col-sm-8 col-md-6 col-lg-5 text-center container__VerifyUser-content\">\r\n        <i className=\"fas fa-check\"></i>\r\n        <label>Usuario verificado</label>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { ServiceGetLastAuctions } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { WatchCatalog } from '../Register/WatchCatalog';\r\nimport { convertToDate } from '../Utilities/General';\r\n\r\nexport const ActionAccount = (props) => {\r\n  const [dataAuction, setDataAuction] = useState([]);\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      const getData = () => {\r\n        const URL = ServiceGetLastAuctions();\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setDataAuction(data);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.visible]);\r\n\r\n  if (dataAuction.length === 0) {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Subastas</div>\r\n        </div>\r\n        <div className=\"mb-3 row inputs-form\">\r\n          <div className=\"col-12 text-center\">No existen registros</div>\r\n        </div>\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Subastas</div>\r\n        </div>\r\n        {dataAuction.map((item) => {\r\n          return (\r\n            <div className=\"mb-3 row inputs-form border-title\" key={item.idAuction}>\r\n              <div className=\"col-8\">\r\n                <h4>\r\n                  {item.name} | {convertToDate(item.date)}\r\n                </h4>\r\n              </div>\r\n              <div className=\"col-4 auctions-account\">\r\n                <WatchCatalog idAuction={item.idAuction} modal={false} />\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React from 'react';\r\n\r\nexport const AdressConfirmDelete = ({ deleteAddress, id, modalType }) => {\r\n  return (\r\n    <div\r\n      className='modal fade '\r\n      id={`modalDeleteAddress${modalType}`}\r\n      aria-labelledby='deleteAddress'\r\n      aria-hidden='true'\r\n    >\r\n      <div className='modal-dialog modal-dialog-centered'>\r\n        <div className='modal-content'>\r\n          <div className='modal-body text-center mb-3'>\r\n            <h3 className='text-uppercase px-5 pb-5'>\r\n              ¿Está seguro que desea eliminar esta dirección?\r\n            </h3>\r\n            <button\r\n              type='button'\r\n              className='btn btn-outline-danger w- btn-lg me-2'\r\n              data-bs-dismiss='modal'\r\n              aria-label='Close'\r\n              onClick={(e) => deleteAddress(id)}\r\n            >\r\n              Sí, Eliminar\r\n            </button>\r\n            <button\r\n              type='button'\r\n              className='btn btn-outline-secondary w-auto btn-lg ms-2'\r\n              data-bs-dismiss='modal'\r\n              aria-label='Close'\r\n            >\r\n              Cancelar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { DELETE, GET } from '../../helpers/APIServices';\r\nimport { ServiceInfoAddressBillingById } from '../../helpers/getURL';\r\nimport { verifyFieldsRequerid } from '../Utilities/General';\r\nimport { AdressConfirmDelete } from './paymentProcess/AdressConfirmDelete';\r\n\r\nexport const AddressBilling = (props) => {\r\n  const deleteAddress = (id) => {\r\n    const URL = ServiceInfoAddressBillingById(id);\r\n    DELETE(URL, props.address).then((data) => {\r\n      props.AddressRefresh(true);\r\n    });\r\n  };\r\n\r\n  const getAddress = (e, id) => {\r\n    e.preventDefault();\r\n    const URL = ServiceInfoAddressBillingById(id);\r\n    props.setTitleModal('Editar');\r\n    GET(URL, props.address).then((data) => {\r\n      if (data === '401') {\r\n        getAddress();\r\n        return '';\r\n      }\r\n      props.setAddress(data[0]);\r\n\r\n      const inputs = [\r\n        'input-Calle-i',\r\n        'input-Numero-i',\r\n        'input-NumeroInt-i',\r\n        'input-Rfc-i',\r\n        'input-RazonSocial-i',\r\n        'input-emailBilling',\r\n        'input-Scp-i',\r\n      ];\r\n\r\n      inputs.forEach((item) => {\r\n        const element = document.getElementById(item);\r\n        element.classList.remove('is-invalid');\r\n        element.focus();\r\n      });\r\n\r\n      const inputsTwo = ['input-Scp-i', 'input-Calle-i', 'input-Numero-i', 'input-Rfc-i', 'input-RazonSocial-i'];\r\n\r\n      verifyFieldsRequerid(inputsTwo);\r\n\r\n      const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n      esFiscoMoral.forEach((x) => {\r\n        if (data[0].esFisicoMoral && x.id === 'moral') {\r\n          x.checked = true;\r\n        }\r\n      });\r\n    });\r\n  };\r\n\r\n  let list = '';\r\n  if (props.listAddress.length > 0) {\r\n    list = props.listAddress.map((item) => {\r\n      const value = `${item.rfc}, ${item.razonSocial}, ${item.calle} No. Ext. ${item.numero}${\r\n        item.numeroInt !== '' ? ` No. Int ${item.numeroInt}` : ''\r\n      }, ${item.colonia}, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n      return (\r\n        <div className=\"mb-3 row inputs-form\" key={item.id}>\r\n          <div className=\"col-10 col-sm-10\">\r\n            <p>{value}</p>\r\n          </div>\r\n          <div className=\"col-6 col-sm-1 text-end\">\r\n            <a href=\"!#\" onClick={(e) => getAddress(e, item.id)} data-bs-toggle=\"modal\" data-bs-target={`#${props.modal}`}>\r\n              Editar\r\n            </a>\r\n          </div>\r\n          <div className=\"col-6 col-sm-1 text-start\">\r\n            <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target={'#modalDeleteAddressBilling_' + item.id}>\r\n              <i className=\"far fa-trash-alt\"></i>\r\n            </a>\r\n          </div>\r\n          <AdressConfirmDelete id={item.id} deleteAddress={deleteAddress} modalType={'Billing_' + item.id} />\r\n        </div>\r\n      );\r\n    });\r\n  } else {\r\n    list = (\r\n      <div className=\"mb-3 row inputs-form\">\r\n        <div className=\"col-12 text-center\">No existen registros</div>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  return <Fragment>{list}</Fragment>;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { POST, PUT, GET } from '../../helpers/APIServices';\r\nimport { ServiceCustomerInfoAddressBilling } from '../../helpers/getURL';\r\nimport { SelectCountry } from './SelectCountry';\r\nimport { SelectState } from './SelectState';\r\nimport { SelectTown } from './SelectTown';\r\nimport { SelectCity } from './SelectCity';\r\nimport {\r\n  CloseModal,\r\n  verifyFieldsRequerid,\r\n  OpenMessage,\r\n  onlyNumber,\r\n  onlyTextNumber,\r\n  onlyTextNumber2,\r\n  validRFC,\r\n  onlyMail,\r\n  validEmail,\r\n} from '../Utilities/General';\r\nimport { ServiceGetByZipCode } from '../../helpers/getURL';\r\n\r\nimport '../../css/Login/RecoveryPassword.css';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\n\r\nconst ModalAddressBilling = (props) => {\r\n  const [errors, setErrors] = useState({});\r\n  const clearForm = () => {\r\n    props.setAddress({\r\n      id: '00000000-0000-0000-0000-000000000000',\r\n      idCustomer: localStorage.getItem('id'),\r\n      nombreCompleto: '',\r\n      idPais: 'MX',\r\n      idEdo: '',\r\n      idMun: '',\r\n      idCol: '',\r\n      scp: '',\r\n      numero: '',\r\n      numeroInt: '',\r\n      razonSocial: '',\r\n      colonia: '',\r\n      calle: '',\r\n      rfc: '',\r\n      referencia: '',\r\n      esFisicoMoral: false,\r\n      correo: '',\r\n    });\r\n\r\n    const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n    esFiscoMoral.forEach((x) => {\r\n      if (x.id === 'fisica') {\r\n        x.checked = true;\r\n      }\r\n    });\r\n\r\n    setErrors({\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n    });\r\n\r\n    CloseModal('modalAddressInvoice');\r\n  };\r\n\r\n  const verifyFields = () => {\r\n    const inputs = ['input-Scp-i', 'input-Calle-i', 'input-Numero-i', 'input-Rfc-i', 'input-RazonSocial-i', 'input-emailBilling'];\r\n\r\n    let flag = true;\r\n    let validFields = verifyFieldsRequerid(inputs);\r\n    if (!validFields) {\r\n      OpenMessage('warning', 'Por favor ingrese todos los campos obligatorios.');\r\n      flag = false;\r\n    }\r\n\r\n    let errorSet = {\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n    };\r\n\r\n    if (props.address.idPais === '') {\r\n      errorSet.country = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idEdo === '') {\r\n      errorSet.state = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idMun === '') {\r\n      errorSet.town = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idCol === '') {\r\n      errorSet.city = true;\r\n      flag = false;\r\n    }\r\n\r\n    setErrors(errorSet);\r\n    return flag;\r\n  };\r\n\r\n  const getZipCode = () => {\r\n    if (props.address.scp === '') {\r\n      return;\r\n    }\r\n    const URL = ServiceGetByZipCode(props.address.scp);\r\n    GET(URL, props.address).then((data) => {\r\n      if (data === '401') {\r\n        getZipCode();\r\n        return '';\r\n      }\r\n      if (data) {\r\n        props.setAddress({\r\n          ...props.address,\r\n          idPais: data.state.idCountry,\r\n          idMun: data.town.idTown,\r\n          idEdo: data.state.idState,\r\n          idCol: '',\r\n        });\r\n\r\n        props.setListCities(data.cities);\r\n      } else {\r\n        OpenMessage('error', 'Código postal no encontrado');\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    const { idPais, idEdo, idMun } = props.address;\r\n    if (idPais === '' || idEdo === '' || idMun === '') {\r\n      props.setListCities([]);\r\n    }\r\n  }, []);\r\n\r\n  const Send = (e) => {\r\n    e.preventDefault();\r\n    if (!verifyFields()) {\r\n      return;\r\n    }\r\n\r\n    const rfc = document.getElementById('input-Rfc-i');\r\n    const esFiscoMoral = document.getElementsByName('esfiscoMoral-i');\r\n    let bandera = false;\r\n    esFiscoMoral.forEach((x) => {\r\n      bandera = x.checked && x.id === 'moral';\r\n    });\r\n\r\n    if (!validRFC(rfc, bandera)) {\r\n      return;\r\n    }\r\n    const email = document.getElementById('input-emailBilling');\r\n    email.classList.remove('is-invalid');\r\n    if (props.address.correo && !validEmail(props.address.correo)) {\r\n      email.classList.add('is-invalid');\r\n      OpenMessage('warning', 'El formato del correo eléctronico no es válido');\r\n      return;\r\n    }\r\n\r\n    const URL = ServiceCustomerInfoAddressBilling();\r\n\r\n    if (props.address.id === '00000000-0000-0000-0000-000000000000') {\r\n      POST(URL, props.address).then((data) => {\r\n        if (data.success === true) {\r\n          clearForm();\r\n          props.AddressRefresh();\r\n        } else {\r\n          OpenMessage('error', data.message);\r\n        }\r\n      });\r\n      return;\r\n    }\r\n\r\n    PUT(URL, props.address).then((data) => {\r\n      if (data.success === true) {\r\n        clearForm();\r\n        props.AddressRefresh();\r\n      } else {\r\n        OpenMessage('error', data.message);\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div\r\n      className=\"modal container__modaladress\"\r\n      id=\"modalAddressInvoice\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header modal-header-login justify-content-end\">\r\n            <CloseModalIcon onHandleClick={(e) => clearForm(e)} />\r\n          </div>\r\n          <div className=\"modal-body\">\r\n            <div className=\"text-center mt-2\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n            </div>\r\n            <div className=\"text-center mb-4 mt-4\">\r\n              <h4 className=\"modal-title fw-bold text-uppercase\">{props.titleModal} datos fiscales</h4>\r\n            </div>\r\n            <div className=\"row justify-content-center\">\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Rfc-i\"\r\n                    className=\"form-control text-uppercase\"\r\n                    maxLength=\"15\"\r\n                    value={props.address.rfc}\r\n                    onInput={(e) => onlyTextNumber2(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        rfc: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Rfc-i\" className=\"form-label\">\r\n                    RFC:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-RazonSocial-i\"\r\n                    className=\"form-control\"\r\n                    value={props.address.razonSocial}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        razonSocial: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-RazonSocial-i\" className=\"form-label\">\r\n                    Razón social:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-9\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Scp-i\"\r\n                    className=\"form-control\"\r\n                    maxLength='5'\r\n                    value={props.address.scp}\r\n                    onInput={(e) => onlyNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        scp: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Scp-i\" className=\"form-label\">\r\n                    Código Postal:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-3\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()}>\r\n                    <i className=\"fas fa-search\"></i>\r\n                  </button>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectCountry setAddress={props.setAddress} address={props.address} id={'select-country-i'} errors={errors} />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectState setAddress={props.setAddress} address={props.address} id={'select-state-i'} errors={errors} />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectTown\r\n                  setAddress={props.setAddress}\r\n                  address={props.address}\r\n                  id={'select-town-i'}\r\n                  setListCities={props.setListCities}\r\n                  errors={errors}\r\n                />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectCity\r\n                  setAddress={props.setAddress}\r\n                  address={props.address}\r\n                  id={'select-city-i'}\r\n                  listCities={props.listCities}\r\n                  errors={errors}\r\n                />\r\n              </div>\r\n\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Calle-i\"\r\n                    className=\"form-control\"\r\n                    value={props.address.calle}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        calle: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Calle-i\" className=\"form-label\">\r\n                    Calle:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Numero-i\"\r\n                    className=\"form-control\"\r\n                    value={props.address.numero}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        numero: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Numero-i\" className=\"form-label\">\r\n                    N° Exterior:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-NumeroInt-i\"\r\n                    className=\"form-control\"\r\n                    value={props.address.numeroInt}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        numeroInt: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-NumeroInt-i\" className=\"form-label\">\r\n                    N° Interior:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-emailBilling\"\r\n                    className=\"form-control\"\r\n                    value={props.address.correo}\r\n                    onInput={(e) => onlyMail(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        correo: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-emailBilling\" className=\"form-label\">\r\n                    Correo:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"form-check align-terms \">\r\n                  <label className=\"form-check-label\" htmlFor=\"fisica\">\r\n                    Física\r\n                  </label>\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    id=\"fisica\"\r\n                    name=\"esfiscoMoral-i\"\r\n                    value=\"false\"\r\n                    onClick={(e) => {\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        esFisicoMoral: true,\r\n                      });\r\n                    }}\r\n                  />\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"form-check align-terms \">\r\n                  <label className=\"form-check-label\" htmlFor=\"moral\">\r\n                    Moral\r\n                  </label>\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    id=\"moral\"\r\n                    name=\"esfiscoMoral-i\"\r\n                    value=\"true\"\r\n                    onClick={(e) => {\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        esFisicoMoral: false,\r\n                      });\r\n                    }}\r\n                  />\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"modal-footer\">\r\n            <div className=\"container-fluid\">\r\n              <div className=\"mb-3 row inputs-form\">\r\n                <div className=\"col-7 text-end\">\r\n                  <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => clearForm()}>\r\n                    <i className=\"fas fa-times\"></i>\r\n                    Cancelar\r\n                  </button>\r\n                </div>\r\n                <div className=\"col-5\">\r\n                  <button className=\"btn btn-outline-secondary\" onClick={(e) => Send(e)}>\r\n                    Guardar\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ModalAddressBilling;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { AddressBilling } from './AddressBilling';\r\nimport { CloseModal, validSession } from '../Utilities/General';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetAddressBillingByIdCustomer, ServiceGetGeneralParameterById } from '../../helpers/getURL';\r\nimport { getLimitShippingInvoice } from '../../helpers/getConstants';\r\nimport ModalAddressBilling from './ModalAddressBilling';\r\n\r\nexport const AddressBillingAccount = (props) => {\r\n  const [titleModal, setTitleModal] = useState('');\r\n  const [listAddress, setListAddress] = useState([]);\r\n  const [maxAddress, setMaxAddress] = useState(false);\r\n  const [listCities, setListCities] = useState([]);\r\n  const [address, setAddress] = useState({\r\n    id: '00000000-0000-0000-0000-000000000000',\r\n    idCustomer: localStorage.getItem('id'),\r\n    idPais: 'MX',\r\n    idEdo: '',\r\n    idMun: '',\r\n    idCol: '',\r\n    scp: '',\r\n    numero: '',\r\n    numeroInt: '',\r\n    razonSocial: '',\r\n    colonia: '',\r\n    calle: '',\r\n    rfc: '',\r\n    alias: '',\r\n    referencia: '',\r\n    esFisicoMoral: false,\r\n    correo: '',\r\n  });\r\n\r\n  const addressClick = () => {\r\n    setTitleModal('Agregar');\r\n    const inputs = [\r\n      'input-Calle-i',\r\n      'input-Numero-i',\r\n      'input-NumeroInt-i',\r\n      'input-Rfc-i',\r\n      'input-RazonSocial-i',\r\n      'input-Scp-i',\r\n      'input-emailBilling',\r\n    ];\r\n\r\n    inputs.forEach((item) => {\r\n      const element = document.getElementById(item);\r\n      element.classList.remove('active');\r\n      element.classList.remove('is-invalid');\r\n    });\r\n  };\r\n\r\n  const AddressRefresh = (flagDelete) => {\r\n    if (!validSession()) {\r\n      return;\r\n    }\r\n    const idCustomer = localStorage.getItem('id');\r\n    const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n    GET(URL).then((data) => {\r\n      if (data === '401') {\r\n        AddressRefresh();\r\n        return '';\r\n      }\r\n      if (flagDelete) {\r\n        CloseModal('modalDeleteAddressBilling');\r\n      }\r\n      if (data) {\r\n        setListAddress(data);\r\n        const id = getLimitShippingInvoice();\r\n        const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n        GET(URLParameter).then((response) => {\r\n          if (response === '401') {\r\n            AddressRefresh();\r\n            return '';\r\n          }\r\n          if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n            setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n          } else {\r\n            setMaxAddress(false);\r\n          }\r\n        });\r\n      } else {\r\n        setListAddress([]);\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      const Address = () => {\r\n        const idCustomer = localStorage.getItem('id');\r\n        if (!validSession()) {\r\n          return;\r\n        }\r\n        const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            Address();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setListAddress(data);\r\n\r\n            const id = getLimitShippingInvoice();\r\n            const URLParameter = ServiceGetGeneralParameterById(id);\r\n            GET(URLParameter).then((response) => {\r\n              if (response === '401') {\r\n                Address();\r\n                return '';\r\n              }\r\n              if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n                setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n              } else {\r\n                setMaxAddress(false);\r\n              }\r\n            });\r\n          }\r\n        });\r\n      };\r\n\r\n      Address();\r\n    }\r\n  }, [props.visible]);\r\n\r\n  return (\r\n    <div className={'container__addressAccount ' + props.visible}>\r\n      <div className=\"border-title\">\r\n        <div>Datos fiscales</div>\r\n      </div>\r\n      <AddressBilling\r\n        listAddress={listAddress}\r\n        setAddress={setAddress}\r\n        address={address}\r\n        AddressRefresh={AddressRefresh}\r\n        modal={'modalAddressInvoice'}\r\n        setTitleModal={setTitleModal}\r\n      />\r\n      <div className=\"mb-3 row inputs-form justify-content-center\">\r\n        <div className=\"col-12 text-center\">\r\n          <button\r\n            disabled={maxAddress}\r\n            type=\"button\"\r\n            className=\"btn btn-outline-secondary btn-profile\"\r\n            data-bs-toggle=\"modal\"\r\n            data-bs-target=\"#modalAddressInvoice\"\r\n            onClick={(e) => addressClick()}\r\n          >\r\n            Agregar datos fiscales\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <ModalAddressBilling\r\n        setAddress={setAddress}\r\n        address={address}\r\n        AddressRefresh={AddressRefresh}\r\n        setListCities={setListCities}\r\n        listCities={listCities}\r\n        titleModal={titleModal}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport { DELETE, GET } from '../../helpers/APIServices';\r\nimport { ServiceInfoAddressShippingById } from '../../helpers/getURL';\r\nimport { verifyFieldsRequerid } from '../Utilities/General';\r\nimport { AdressConfirmDelete } from './paymentProcess/AdressConfirmDelete';\r\n\r\nexport const AddressShipping = (props) => {\r\n  const deleteAddress = (id) => {\r\n    const URL = ServiceInfoAddressShippingById(id);\r\n    DELETE(URL, props.address).then((data) => {\r\n      props.AddressRefresh(true);\r\n    });\r\n  };\r\n\r\n  const getAddress = (e, id) => {\r\n    e.preventDefault();\r\n    props.setTitleModal('Editar');\r\n    const URL = ServiceInfoAddressShippingById(id);\r\n    GET(URL, props.address).then((data) => {\r\n      if (data === '401') {\r\n        getAddress();\r\n        return '';\r\n      }\r\n      props.setAddress(data[0]);\r\n\r\n      const inputs = ['input-Calle', 'input-Numero', 'input-Alias', 'input-NumeroInt', 'input-referenceAddress', 'input-Scp'];\r\n\r\n      inputs.forEach((item) => {\r\n        document.getElementById(item).focus();\r\n      });\r\n\r\n      const inputsTwo = ['input-Scp', 'input-Calle', 'input-Numero', 'input-Alias'];\r\n\r\n      verifyFieldsRequerid(inputsTwo);\r\n    });\r\n  };\r\n\r\n  let list = '';\r\n\r\n  if (props.listAddress.length > 0) {\r\n    list = props.listAddress.map((item, i) => {\r\n      let alias = '';\r\n      if (item.alias !== undefined) {\r\n        alias = (\r\n          <div className=\"col-2\">\r\n            <label className=\"col-form-label configuration-profile-labels\">\r\n              {item.alias.length > 10 ? item.alias.substring(0, 11) + '...' : item.alias}\r\n            </label>\r\n            <br />\r\n            {item.predeterminado && (\r\n              <i className=\"far fa-check-square address-default\" data-toggle=\"tooltip\" title=\"Dirección predeterminada\"></i>\r\n            )}\r\n          </div>\r\n        );\r\n      }\r\n\r\n      const value = `${item.calle} No. Ext. ${item.numero}${item.numeroInt !== '' ? ` No. Int ${item.numeroInt}` : ''}, ${\r\n        item.colonia\r\n      }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n\r\n      return (\r\n        <div className=\"mb-3 row inputs-form\" key={i}>\r\n          {alias}\r\n          <div className=\"col-10 col-sm-8\">\r\n            <p>{value}</p>\r\n          </div>\r\n          <div className=\"col-6 col-sm-1 text-end\">\r\n            <a href=\"!#\" onClick={(e) => getAddress(e, item.id)} data-bs-toggle=\"modal\" data-bs-target={`#${props.modal}`}>\r\n              Editar\r\n            </a>\r\n          </div>\r\n          <div className=\"col-6 col-sm-1 text-start\">\r\n            <a href=\"!#\" data-bs-toggle=\"modal\" data-bs-target={'#modalDeleteAddressShipping_' + item.id}>\r\n              <i className=\"far fa-trash-alt\"></i>\r\n            </a>\r\n          </div>\r\n          <AdressConfirmDelete id={item.id} deleteAddress={deleteAddress} modalType={'Shipping_' + item.id} />\r\n        </div>\r\n      );\r\n    });\r\n  } else {\r\n    list = (\r\n      <div className=\"mb-3 row inputs-form\">\r\n        <div className=\"col-12 text-center\">No existen registros</div>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  return <Fragment>{list}</Fragment>;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { POST, PUT, GET } from '../../helpers/APIServices';\r\nimport { ServiceCustomerInfoAddressShipping } from '../../helpers/getURL';\r\nimport { SelectCountry } from './SelectCountry';\r\nimport { SelectState } from './SelectState';\r\nimport { SelectTown } from './SelectTown';\r\nimport { SelectCity } from './SelectCity';\r\nimport { CloseModal, verifyFieldsRequerid, OpenMessage, onlyNumber, onlyTextNumber } from '../Utilities/General';\r\nimport { ServiceGetByZipCode } from '../../helpers/getURL';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport '../../css/Login/RecoveryPassword.css';\r\n\r\nconst ModalAddressShipping = (props) => {\r\n  const [errors, setErrors] = useState({});\r\n  const clearForm = () => {\r\n    props.setAddress({\r\n      id: '00000000-0000-0000-0000-000000000000',\r\n      idCustomer: localStorage.getItem('id'),\r\n      nombreCompleto: '',\r\n      idPais: 'MX',\r\n      idEdo: '',\r\n      idMun: '',\r\n      idCol: '',\r\n      scp: '',\r\n      numero: '',\r\n      numeroInt: '',\r\n      razonSocial: '',\r\n      colonia: '',\r\n      calle: '',\r\n      rfc: '',\r\n      alias: '',\r\n      referencia: '',\r\n      esFisicoMoral: true,\r\n      predeterminado: false,\r\n    });\r\n\r\n    setErrors({\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n    });\r\n\r\n    CloseModal('modalAddress');\r\n  };\r\n\r\n  const verifyFields = () => {\r\n    const inputs = ['input-Scp', 'input-Calle', 'input-Alias', 'input-Numero'];\r\n\r\n    let flag = true;\r\n    let validFields = verifyFieldsRequerid(inputs);\r\n    if (!validFields) {\r\n      OpenMessage('warning', 'Por favor ingrese todos los campos obligatorios.');\r\n      flag = false;\r\n    }\r\n\r\n    let errorSet = {\r\n      country: false,\r\n      state: false,\r\n      town: false,\r\n      city: false,\r\n    };\r\n\r\n    if (props.address.idPais === '') {\r\n      errorSet.country = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idEdo === '') {\r\n      errorSet.state = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idMun === '') {\r\n      errorSet.town = true;\r\n      flag = false;\r\n    }\r\n    if (props.address.idCol === '') {\r\n      errorSet.city = true;\r\n      flag = false;\r\n    }\r\n\r\n    setErrors(errorSet);\r\n    return flag;\r\n  };\r\n\r\n  const getZipCode = () => {\r\n    if (props.address.scp === '') {\r\n      return;\r\n    }\r\n    const URL = ServiceGetByZipCode(props.address.scp);\r\n    GET(URL, props.address).then((data) => {\r\n      if (data === '401') {\r\n        getZipCode();\r\n        return '';\r\n      }\r\n      if (data) {\r\n        props.setAddress({\r\n          ...props.address,\r\n          idPais: data.state.idCountry,\r\n          idMun: data.town.idTown,\r\n          idEdo: data.state.idState,\r\n          idCol: '',\r\n          colonia: '',\r\n        });\r\n        props.setListCities(data.cities);\r\n      } else {\r\n        OpenMessage('warning', 'Código postal no encontrado');\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    const { idPais, idEdo, idMun } = props.address;\r\n    if (idPais === '' || idEdo === '' || idMun === '') {\r\n      props.setListCities([]);\r\n    }\r\n  }, []);\r\n\r\n  const Send = (e) => {\r\n    e.preventDefault();\r\n\r\n    if (!verifyFields()) {\r\n      return;\r\n    }\r\n\r\n    const URL = ServiceCustomerInfoAddressShipping();\r\n\r\n    if (props.address.id === '00000000-0000-0000-0000-000000000000') {\r\n      POST(URL, props.address).then((data) => {\r\n        if (data.success) {\r\n          clearForm();\r\n          props.AddressRefresh();\r\n        } else {\r\n          OpenMessage('error', data.message);\r\n        }\r\n      });\r\n      return;\r\n    }\r\n    PUT(URL, props.address).then((data) => {\r\n      if (data.success) {\r\n        clearForm();\r\n        props.AddressRefresh();\r\n      } else {\r\n        OpenMessage('error', data.message);\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div className=\"modal container__modaladress\" id=\"modalAddress\" aria-hidden=\"true\" data-bs-backdrop=\"static\" data-bs-keyboard=\"false\">\r\n      <div className=\"modal-dialog modal-sm modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-header modal-header-login justify-content-end\">\r\n            <CloseModalIcon onHandleClick={(e) => clearForm(e)}/>\r\n          </div>\r\n          <div className=\"modal-body\">\r\n            <div className=\"text-center mt-2\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"65%\" />\r\n            </div>\r\n            <div className=\"text-center mb-4 mt-4\">\r\n              <h4 className=\"modal-title fw-bold text-uppercase mb-3\">{props.titleModal} dirección</h4>\r\n            </div>\r\n            <div className=\"row justify-content-center\">\r\n              <div className=\"col-9\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Scp\"\r\n                    className=\"form-control\"\r\n                    value={props.address.scp}\r\n                    maxLength='5'\r\n                    onInput={(e) => onlyNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        scp: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Scp\" className=\"form-label\">\r\n                    Código Postal:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-3\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <button className=\"btn btn-outline-secondary btn-lg\" type=\"button\" onClick={() => getZipCode()}>\r\n                    <i className=\"fas fa-search\"></i>\r\n                  </button>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectCountry setAddress={props.setAddress} address={props.address} id={'select-country'} errors={errors} />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectState setAddress={props.setAddress} address={props.address} id={'select-state'} errors={errors} />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectTown\r\n                  setAddress={props.setAddress}\r\n                  address={props.address}\r\n                  id={'select-town'}\r\n                  setListCities={props.setListCities}\r\n                  errors={errors}\r\n                />\r\n              </div>\r\n\r\n              <div className=\"mb-3 col-12\">\r\n                <SelectCity\r\n                  setAddress={props.setAddress}\r\n                  address={props.address}\r\n                  id={'select-city'}\r\n                  listCities={props.listCities}\r\n                  errors={errors}\r\n                />\r\n              </div>\r\n\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Calle\"\r\n                    className=\"form-control\"\r\n                    value={props.address.calle}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        calle: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Calle\" className=\"form-label\">\r\n                    Calle:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Numero\"\r\n                    className=\"form-control\"\r\n                    value={props.address.numero}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        numero: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Numero\" className=\"form-label\">\r\n                    N° Exterior:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div className=\"col-6\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-NumeroInt\"\r\n                    className=\"form-control\"\r\n                    value={props.address.numeroInt}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        numeroInt: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-NumeroInt\" className=\"form-label\">\r\n                    N° interior:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-referenceAddress\"\r\n                    className=\"form-control\"\r\n                    value={props.address.referencia}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        referencia: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-referenceAddress\" className=\"form-label\">\r\n                    Referencia:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"col-12\">\r\n                <div className=\"mb-3 form-outline\">\r\n                  <input\r\n                    type=\"text\"\r\n                    id=\"input-Alias\"\r\n                    className=\"form-control\"\r\n                    value={props.address.alias}\r\n                    onInput={(e) => onlyTextNumber(e)}\r\n                    onChange={(e) =>\r\n                      props.setAddress({\r\n                        ...props.address,\r\n                        alias: e.target.value,\r\n                      })\r\n                    }\r\n                  />\r\n                  <label htmlFor=\"input-Alias\" className=\"form-label\">\r\n                    Alias:\r\n                  </label>\r\n                  <div className=\"form-notch\">\r\n                    <div className=\"form-notch-leading\"></div>\r\n                    <div className=\"form-notch-middle\"></div>\r\n                    <div className=\"form-notch-trailing\"></div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className=\"col-12\">\r\n                <label htmlFor=\"checkBoxDefault\" className=\"text-capitalize\">\r\n                  Predeterminada:{' '}\r\n                </label>{' '}\r\n                <input\r\n                  className=\"form-check-input mt-2\"\r\n                  type=\"checkbox\"\r\n                  id=\"checkBoxDefault\"\r\n                  checked={props.address.predeterminado}\r\n                  onChange={(e) => {}}\r\n                  onClick={(e) =>\r\n                    props.setAddress({\r\n                      ...props.address,\r\n                      predeterminado: e.target.checked,\r\n                    })\r\n                  }\r\n                />\r\n                <br />\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div className=\"modal-footer\">\r\n            <div className=\"container-fluid\">\r\n              <div className=\"mb-3 row inputs-form\">\r\n                <div className=\"col-7 text-end\">\r\n                  <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => clearForm()}>\r\n                    <i className=\"fas fa-times\"></i>\r\n                    Cancelar\r\n                  </button>\r\n                </div>\r\n                <div className=\"col-5\">\r\n                  <button className=\"btn btn-outline-secondary\" onClick={(e) => Send(e)}>\r\n                    Guardar\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ModalAddressShipping;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { AddressShipping } from './AddressShipping';\r\nimport ModalAddressShipping from './ModalAddressShipping';\r\n//import { getAddresShipping } from '../../helpers/getConstants';\r\nimport { validSession, CloseModal, OpenMessage } from '../Utilities/General';\r\nimport { ServiceGetAddressShippingByIdCustomer, ServiceGetGeneralParameterById, ServiceGenericParameters } from '../../helpers/getURL';\r\nimport { getLimitShipping } from '../../helpers/getConstants';\r\n\r\nexport const AddressShippingAccount = (props) => {\r\n  const [titleModal, setTitleModal] = useState('');\r\n  const [listAddress, setListAddress] = useState([]);\r\n  const [listCities, setListCities] = useState([]);\r\n  const [maxAddress, setMaxAddress] = useState(false);\r\n  const [address, setAddress] = useState({\r\n    id: '00000000-0000-0000-0000-000000000000',\r\n    idCustomer: localStorage.getItem('id'),\r\n    idPais: 'MX',\r\n    idEdo: '',\r\n    idMun: '',\r\n    idCol: '',\r\n    scp: '',\r\n    numero: '',\r\n    numeroInt: '',\r\n    razonSocial: '',\r\n    colonia: '',\r\n    calle: '',\r\n    rfc: '',\r\n    alias: '',\r\n    referencia: '',\r\n    esFisicoMoral: false,\r\n    predeterminado: false,\r\n  });\r\n\r\n  const AddressRefresh = (flagDelete) => {\r\n    const idCustomer = localStorage.getItem('id');\r\n    if (!validSession()) {\r\n      return;\r\n    }\r\n    const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n    GET(URL).then((data) => {\r\n      if (data === '401') {\r\n        AddressRefresh();\r\n        return '';\r\n      }\r\n      if (flagDelete) {\r\n        CloseModal('modalDeleteAddressShipping');\r\n      }\r\n      if (data) {\r\n        setListAddress(data);\r\n        const id = getLimitShipping();\r\n        const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n        GET(URLParameter).then((response) => {\r\n          if (response === '401') {\r\n            AddressRefresh();\r\n            return '';\r\n          }\r\n          if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n            setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n          } else {\r\n            setMaxAddress(false);\r\n          }\r\n        });\r\n      } else {\r\n        setListAddress([]);\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      const Address = () => {\r\n        const idCustomer = localStorage.getItem('id');\r\n        if (!validSession()) {\r\n          return;\r\n        }\r\n\r\n        const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            Address();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setListAddress(data);\r\n\r\n            const id = getLimitShipping();\r\n            const URLParameter = ServiceGetGeneralParameterById(id);\r\n\r\n            GET(URLParameter).then((response) => {\r\n              if (response === '401') {\r\n                Address();\r\n                return '';\r\n              }\r\n              if (response && response.valor !== undefined && !isNaN(response.valor)) {\r\n                setMaxAddress(parseInt(data.length) >= parseInt(response.valor));\r\n              } else {\r\n                setMaxAddress(false);\r\n              }\r\n            });\r\n          }\r\n        });\r\n      };\r\n\r\n      Address();\r\n    }\r\n  }, [props.visible]);\r\n\r\n  const NDirectionsValidation = () => {\r\n    const URL = ServiceGenericParameters(getLimitShipping());\r\n    setTitleModal('Agregar');\r\n    const inputs = ['input-Calle', 'input-Numero', 'input-referenceAddress', 'input-Alias', 'input-NumeroInt', 'input-Scp'];\r\n\r\n    inputs.forEach((item) => {\r\n      document.getElementById(item).classList.remove('active');\r\n    });\r\n    GET(URL).then((data) => {\r\n      if (data === '401') {\r\n        NDirectionsValidation();\r\n        return '';\r\n      }\r\n      if (data) {\r\n        if (listAddress.length >= data.value) {\r\n          CloseModal('modalAddress');\r\n          OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envío');\r\n        }\r\n      } else {\r\n        OpenMessage('warning', 'No es posible registrar una dirección de envío');\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div className={'container__addressAccount ' + props.visible}>\r\n      <div className=\"border-title\">\r\n        <div>Direcciones de envío</div>\r\n      </div>\r\n      <AddressShipping\r\n        listAddress={listAddress}\r\n        setAddress={setAddress}\r\n        address={address}\r\n        AddressRefresh={AddressRefresh}\r\n        modal={'modalAddress'}\r\n        setTitleModal={setTitleModal}\r\n      />\r\n      <div className=\"mb-3 row inputs-form justify-content-center\">\r\n        <div className=\"col-12 text-center\">\r\n          <button\r\n            disabled={maxAddress}\r\n            type=\"button\"\r\n            className=\"btn btn-outline-secondary btn-profile\"\r\n            data-bs-toggle=\"modal\"\r\n            data-bs-target=\"#modalAddress\"\r\n            onClick={() => NDirectionsValidation()}\r\n          >\r\n            Agregar dirección\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <ModalAddressShipping\r\n        setAddress={setAddress}\r\n        address={address}\r\n        AddressRefresh={AddressRefresh}\r\n        setListCities={setListCities}\r\n        listCities={listCities}\r\n        titleModal={titleModal}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { GET } from \"../../helpers/APIServices\";\r\nimport {\r\n  ServiceGetAwardsActive,\r\n  ServiceClientData,\r\n  ServiceGenericParameters,\r\n} from \"../../helpers/getURL\";\r\nimport {\r\n  convertToDate,\r\n  formatCurrency,\r\n  convertToDatePenaltyDay,\r\n  OpenMessage,\r\n} from \"../Utilities/General\";\r\nimport {\r\n  getImgDefault,\r\n  getPenaltyDays,\r\n  getPenaltyDaysDefault,\r\n  getDisableCheckoutMessageID,\r\n} from \"../../helpers/getConstants\";\r\n\r\nimport { ModalCustomerData } from \"./customerData/ModalCustomerData\";\r\n\r\nexport const AwardActive = (props) => {\r\n  const [awardActive, setAwardActive] = useState([]);\r\n  const [clientData, setClientData] = useState({});\r\n  const [visibleModal, setVisibleModal] = useState(\"hide\");\r\n  const history = useHistory();\r\n  const idCustomer = localStorage.getItem(\"id\");\r\n  const URL = ServiceClientData();\r\n  const [disabelCheckoutMessage, setMessage] = useState(\"\");\r\n\r\n  const getData = () => {\r\n    GET(URL).then((data) => {\r\n      if (data === \"401\") {\r\n        getData();\r\n        return \"\";\r\n      }\r\n      setClientData(data);\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    const deliveryLimitID = getDisableCheckoutMessageID();\r\n    const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n    const getData = () => {\r\n      GET(URLDeliveryLimit).then((data) => {\r\n        if (data === \"401\") {\r\n          getData();\r\n          return \"\";\r\n        }\r\n        if (data.value) {\r\n          setMessage(data.value);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (props.visible === \"show\") {\r\n      setVisibleModal(\"hide\");\r\n      const getAwardActive = () => {\r\n        GET(URL).then((data) => {\r\n          if (data === \"401\") {\r\n            getAwardActive();\r\n            return \"\";\r\n          }\r\n          setClientData(data);\r\n\r\n          const URLGetAwardsActive = ServiceGetAwardsActive(idCustomer);\r\n          GET(URLGetAwardsActive).then((data) => {\r\n            if (data === \"401\") {\r\n              getAwardActive();\r\n              return \"\";\r\n            }\r\n            if (data) {\r\n              const URLPenaltyDays = ServiceGenericParameters(getPenaltyDays());\r\n              GET(URLPenaltyDays).then((response) => {\r\n                if (response === \"401\") {\r\n                  getAwardActive();\r\n                  return \"\";\r\n                }\r\n                let days;\r\n                if (response && response.value) {\r\n                  days = parseInt(response.value);\r\n                  if (isNaN(days)) {\r\n                    days = getPenaltyDaysDefault();\r\n                  }\r\n                } else {\r\n                  days = getPenaltyDaysDefault();\r\n                }\r\n\r\n                let arrayGrouped;\r\n                let index = 0;\r\n\r\n                const groupBy = (\r\n                  array,\r\n                  key = \"idSubasta\",\r\n                  kay = \"nombreSubasta\",\r\n                  koy = \"fechaSubasta\"\r\n                ) => {\r\n                  const grouped = {};\r\n\r\n                  array.forEach((el) => {\r\n                    grouped[el[key]] = {\r\n                      idSubasta: el[key],\r\n                      nombreSubasta: el[kay],\r\n                      fechaSubasta: el[koy],\r\n                      index,\r\n                      awards: [],\r\n                      datePenalty: convertToDatePenaltyDay(el[koy], days),\r\n                    };\r\n                    index++;\r\n                  });\r\n\r\n                  array.forEach((el) => {\r\n                    if (grouped[el[key]]) {\r\n                      grouped[el[key]].awards.push(el);\r\n                    }\r\n                  });\r\n                  arrayGrouped = Object.values(grouped);\r\n                };\r\n                groupBy(data);\r\n                setAwardActive(arrayGrouped);\r\n              });\r\n            }\r\n          });\r\n        });\r\n      };\r\n      getAwardActive();\r\n    }\r\n  }, [props.visible, idCustomer, URL]);\r\n\r\n  const validaDatos = () => {\r\n    let GeneralData = [\r\n      \"customerName\",\r\n      \"customerLastname\",\r\n      \"customerSecondLastname\",\r\n      \"customerBirthday\",\r\n      \"customerCURP\",\r\n      \"customerRFC\",\r\n      \"customerNationalityId\",\r\n    ];\r\n    let ContactData = [\r\n      \"country\",\r\n      \"idState\",\r\n      \"idTown\",\r\n      \"idCity\",\r\n      \"street\",\r\n      \"zipCode\",\r\n      \"number\",\r\n      \"phoneNumber\",\r\n      \"email\",\r\n    ];\r\n    let EconomicActivityData = [\"idActEconomica\", \"idPais\"];\r\n    let contador = 0;\r\n    let key;\r\n    for (key in clientData) {\r\n      if (key === \"customerGeneralData\") {\r\n        for (let customerGeneralData in clientData[key]) {\r\n          let campo = GeneralData.find((item) => {\r\n            return item === customerGeneralData;\r\n          });\r\n          if (campo) {\r\n            if (!clientData[key][customerGeneralData]) {\r\n              contador++;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      if (key === \"customerContactData\") {\r\n        for (let customerContactData in clientData[key]) {\r\n          let campo = ContactData.find((item) => {\r\n            return item === customerContactData;\r\n          });\r\n          if (campo) {\r\n            if (\r\n              !clientData[key][customerContactData] &&\r\n              !clientData[key][customerContactData] !== \"\"\r\n            ) {\r\n              contador++;\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      if (key === \"customerEconomicActivity\") {\r\n        for (let customerEconomicActivity in clientData[key]) {\r\n          let campo = EconomicActivityData.find((item) => {\r\n            return item === customerEconomicActivity;\r\n          });\r\n          if (campo) {\r\n            if (!clientData[key][customerEconomicActivity]) {\r\n              contador++;\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return contador;\r\n  };\r\n\r\n  const shoppingCartError = () => {\r\n    OpenMessage(\"warning\", disabelCheckoutMessage);\r\n  };\r\n\r\n  const shoppingCart = (data) => {\r\n    let contador = validaDatos();\r\n    if (contador === 0)\r\n      history.push({\r\n        pathname: \"/carrito-compras\",\r\n        state: { detail: data, enableInvoice: props.enableInvoice },\r\n      });\r\n    else {\r\n      const collapseOne = document.getElementById(\"collapseOne\");\r\n      const collapseTwo = document.getElementById(\"collapseTwo\");\r\n      const headingOne = document.querySelector(\"#headingOne > button\");\r\n      const headingTwo = document.querySelector(\"#headingTwo > button\");\r\n\r\n      collapseOne.classList.add(\"show\");\r\n      headingOne.classList.remove(\"collapsed\");\r\n      collapseTwo.classList.remove(\"show\");\r\n      headingTwo.classList.add(\"collapsed\");\r\n      setVisibleModal(\"show\");\r\n      let btnFinalizarCompra = document.getElementById(\"btnFinalizarCompra\");\r\n      btnFinalizarCompra.click();\r\n    }\r\n  };\r\n\r\n  if (awardActive.length === 0) {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className='border-title'>\r\n          <div>Mis adjudicaciones activas</div>\r\n        </div>\r\n        <div className='mb-3 row inputs-form'>\r\n          <div className='col-12 text-center'>No existen registros</div>\r\n        </div>\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div className={\"container__awardActive \" + props.visible}>\r\n        <div className='border-title'>\r\n          <div>Mis adjudicaciones activas</div>\r\n        </div>\r\n        {awardActive.map((item, x) => {\r\n          return (\r\n            <div key={x}>\r\n              {\" \"}\r\n              <div className='mb-3 row inputs-form '>\r\n                <label className='col-12 col-form-label configuration-profile-labels'>\r\n                  {item.awards.length} adjudicaciones\r\n                </label>\r\n              </div>\r\n              <div className='mb-3 row inputs-form border-bottom'>\r\n                <div className='col-12 col-sm-6 col-lg-7 col-xl-8 text-center-mobile'>\r\n                  <h5>\r\n                    {item.nombreSubasta} {convertToDate(item.fechaSubasta)}\r\n                    <br />\r\n                    Fecha máxima de pago {item.datePenalty}\r\n                  </h5>\r\n                </div>\r\n                <div className='col-12 col-sm-6 col-lg-5 col-xl-4 text-end text-center-mobile'>\r\n                  {/* \r\n                  ToDo: Se debe cambiar el metodo shoppingCartError() por  shoppingCart(item.awards) \r\n                    Cuando se habilite de nuevo actnet\r\n                  */}\r\n                  <button\r\n                    className='btn btn-outline-secondary btn-profile'\r\n                    onClick={(e) => shoppingCart(item.awards)}\r\n                  >\r\n                    Finalizar compra\r\n                  </button>\r\n                  <button\r\n                    id='btnFinalizarCompra'\r\n                    className='hide'\r\n                    data-bs-toggle='modal'\r\n                    data-bs-target='#modalCustomerData'\r\n                  >\r\n                    Finalizar compra\r\n                  </button>\r\n                </div>\r\n                <br />\r\n                <br />\r\n              </div>\r\n              {item.awards.map((award, i) => {\r\n                return (\r\n                  <div className='mb-3 row inputs-form border-title' key={i}>\r\n                    <div className='col-12'>\r\n                      <div className='card mb-3'>\r\n                        <div className='row g-0 align-items-center'>\r\n                          <div className='col-4'>\r\n                            <img\r\n                              src={\r\n                                award.images[0]\r\n                                  ? award.images[0]\r\n                                  : getImgDefault()\r\n                              }\r\n                              className='img-fluid rounded-start'\r\n                              alt={award.descripcionLote}\r\n                            />\r\n                          </div>\r\n                          <div className='col-8'>\r\n                            <div className='card-body'>\r\n                              <h5 className='card-title'>Lote: {award.lot}</h5>\r\n                              <p className='card-text'>\r\n                                {award.nombreLote} <br />{\" \"}\r\n                                {award.descripcionLote}\r\n                              </p>\r\n\r\n                              <div className='row'>\r\n                                <div className='col-12 col-sm-6 col-lg-7 col-xl-8 text-center-mobile'>\r\n                                  <small className='text-muted'>\r\n                                    Precio final:{\" \"}\r\n                                    {formatCurrency(award.precioSalida)}\r\n                                  </small>\r\n                                </div>\r\n                                <div className='col-12 col-sm-6 col-lg-5 col-xl-4 text-center'>\r\n                                  <button\r\n                                    className='btn btn-outline-secondary button-eye float-right'\r\n                                    data-mdb-toggle='modal'\r\n                                    data-mdb-target={`#modal${award.idLote}`}\r\n                                  >\r\n                                    Ver detalle\r\n                                  </button>\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                    <div\r\n                      className='modal fade modal-top'\r\n                      id={`modal${award.idLote}`}\r\n                      aria-labelledby='exampleModalLabel'\r\n                      aria-hidden='true'\r\n                    >\r\n                      <div className='modal-dialog modal-dialog-centered'>\r\n                        <div className='modal-content'>\r\n                          <div className='modal-body'>\r\n                            <img\r\n                              src={\r\n                                award.images[0]\r\n                                  ? award.images[0]\r\n                                  : getImgDefault()\r\n                              }\r\n                              alt=''\r\n                              className='img-fluid w-100'\r\n                            />\r\n                          </div>\r\n                          <h4 className='text-desc'>{award.descripcionLote}</h4>\r\n                          <div className='modal-footer'>\r\n                            <button\r\n                              type='button'\r\n                              className='btn btn-outline-danger'\r\n                              data-mdb-dismiss='modal'\r\n                            >\r\n                              Cerrar\r\n                            </button>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                );\r\n              })}\r\n            </div>\r\n          );\r\n        })}\r\n        <ModalCustomerData updateData={getData} visible={visibleModal} />\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetAwardsHistory } from '../../helpers/getURL';\r\nimport { convertToDate, formatCurrency } from '../Utilities/General';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const AwardHistory = (props) => {\r\n  const [awardHistory, setAwardHistory] = useState([]);\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      const getData = () => {\r\n        const idCustomer = localStorage.getItem('id');\r\n        const URL = ServiceGetAwardsHistory(idCustomer);\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            let arrayGrouped;\r\n            let index = 0;\r\n\r\n            const groupBy = (array, key = 'idSubasta', kay = 'nombreSubasta', koy = 'fechaSubasta') => {\r\n              const grouped = {};\r\n\r\n              array.forEach((el) => {\r\n                grouped[el[key]] = {\r\n                  idSubasta: el[key],\r\n                  nombreSubasta: el[kay],\r\n                  fechaSubasta: el[koy],\r\n                  index,\r\n                  awards: [],\r\n                };\r\n                index++;\r\n              });\r\n\r\n              array.forEach((el) => {\r\n                if (grouped[el[key]]) {\r\n                  grouped[el[key]].awards.push(el);\r\n                }\r\n              });\r\n              arrayGrouped = Object.values(grouped);\r\n            };\r\n            groupBy(data);\r\n            setAwardHistory(arrayGrouped);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.visible]);\r\n\r\n  if (awardHistory.length === 0) {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Historial de adjudicaciones</div>\r\n        </div>\r\n        <div className=\"mb-3 row inputs-form\">\r\n          <div className=\"col-12 text-center\">No existen registros</div>\r\n        </div>\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Historial de adjudicaciones</div>\r\n        </div>\r\n        {awardHistory.map((item, x) => {\r\n          return (\r\n            <div key={x}>\r\n              {' '}\r\n              <div className=\"mb-3 row inputs-form \">\r\n                <label className=\"col-12 col-form-label configuration-profile-labels\">{item.awards.length} adjudicaciones</label>\r\n              </div>\r\n              <div className=\"mb-3 row inputs-form border-bottom\">\r\n                <div className=\"col-9\">\r\n                  <h5>\r\n                    {item.nombreSubasta} {convertToDate(item.fechaSubasta)}\r\n                  </h5>\r\n                </div>\r\n                <br />\r\n                <br />\r\n              </div>\r\n              {item.awards.map((award, i) => {\r\n                return (\r\n                  <div className=\"mb-3 row inputs-form\" key={i}>\r\n                    <div className=\"col-12\">\r\n                      <div className=\"card mb-3\">\r\n                        <div className=\"row g-0 align-items-center\">\r\n                          <div className=\"col-4\">\r\n                            <img src={award.images[0] ? award.images[0] : getImgDefault()} className=\"img-fluid rounded-start\" alt=\"...\" />\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <div className=\"card-body\">\r\n                              <h5 className=\"card-title\">Lote: {award.lot}</h5>\r\n                              <p className=\"card-text\">\r\n                                {award.nombreLote} <br /> {award.descripcionLote}\r\n                              </p>\r\n\r\n                              <div className=\"row\">\r\n                                <div className=\"col-8\">\r\n                                  <small className=\"text-muted\">Precio final {formatCurrency(award.precioSalida)}</small>\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                );\r\n              })}\r\n            </div>\r\n          );\r\n        })}\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { getactnetID, getBillPocketID, getMercadoPagoId } from '../../../helpers/getConstants'\r\nimport { CloseModalIcon } from '../../Home/CloseModalIcon';\r\nimport { CloseModal } from '../../Utilities/General';\r\n\r\nexport const PaymentGateways = ({ retryPAyment, hideBillPocket, hideActnet, hideMercadoPago }) => {\r\n  const [data, setData] = useState({});\r\n  const [sure, setSure] = useState(false);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const BILLPOCKETID = getBillPocketID();\r\n  const ACTNETID = getactnetID();\r\n  const MERCADOPAGOID = getMercadoPagoId();\r\n\r\n  const closeOfferSuccess = () => {\r\n    CloseModal('modalPaymentGateways');\r\n    setDisabledBtn(true);\r\n    setData({});\r\n  };\r\n  const clickRadio = (value, data) => {\r\n    const selectItem = {\r\n      payment: {\r\n        id: value,\r\n        name: data,\r\n      },\r\n    };\r\n    setData(selectItem);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  return (\r\n    <div\r\n      className=\"modal fade \"\r\n      id=\"modalPaymentGateways\"\r\n      aria-labelledby=\"paymentGatewaysModalLabel\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-body\">\r\n            <div className=\"card-header text-center\">\r\n              <div className=\"modal-header justify-content-end border-0\">\r\n                <CloseModalIcon onHandleClick={() => closeOfferSuccess()} />\r\n              </div>\r\n              <h3>Método de pago</h3>\r\n            </div>\r\n            <div className=\"row my-4\">\r\n              <div className={`col-12 ${sure && 'text-center'}`}>\r\n                <h5 className=\"card-text card-title\">\r\n                  {sure\r\n                    ? 'Ya se había generado un pago anteriormente. ¿Está seguro de continuar?'\r\n                    : 'Seleccione un método de pago de las opciones disponibles:'}\r\n                </h5>\r\n              </div>\r\n            </div>\r\n            {!sure && (\r\n              <div className=\"d-flex mb-2 justify-content-start\">\r\n                {!hideBillPocket && (\r\n                  <div className=\"col-6\">\r\n                    <div className=\"form-check\">\r\n                      <input\r\n                        className=\"form-check-input mt-5\"\r\n                        type=\"radio\"\r\n                        name=\"PaymentRadios\"\r\n                        id=\"Payment1Radios\"\r\n                        value={BILLPOCKETID}\r\n                        checked={data.payment?.id === BILLPOCKETID ? true : false}\r\n                        onClick={(e) => clickRadio(e.target.value, 'Bill Pocket')}\r\n                      />\r\n                      <label className=\"form-check-label\" htmlFor=\"Payment1Radios\">\r\n                        <img className=\"img-Payment\" src=\"./resources/img/bill_pocket.jpg\" alt=\"Bill Pocket\" width=\"80%\" />\r\n                      </label>\r\n                    </div>\r\n                  </div>\r\n                )}\r\n                {\r\n                  !hideActnet && (\r\n                    <div className=\"col-6\">\r\n                      <div className=\"form-check\">\r\n                        <input\r\n                          className=\"form-check-input mt-5\"\r\n                          type=\"radio\"\r\n                          name=\"PaymentRadios\"\r\n                          id=\"Payment2Radios\"\r\n                          value={ACTNETID}\r\n                          checked={data.payment?.id === ACTNETID ? true : false}\r\n                          onClick={(e) => clickRadio(e.target.value, 'Actnet')}\r\n                        />\r\n                        <label className=\"form-check-label\" htmlFor=\"Payment2Radios\">\r\n                          <img className=\"img-Payment\" src=\"./resources/img/actnet.png\" alt=\"Actnet\" width=\"100%\"/>\r\n                        </label>\r\n                      </div>\r\n                    </div>\r\n                  )\r\n                }\r\n                {\r\n                  !hideMercadoPago && (\r\n                    <div className=\"col-6\">\r\n                      <div className=\"form-check\">\r\n                        <input\r\n                          className=\"form-check-input mt-5\"\r\n                          type=\"radio\"\r\n                          name=\"PaymentRadios\"\r\n                          id=\"Payment3Radios\"\r\n                          value={MERCADOPAGOID}\r\n                          checked={data.payment?.id === MERCADOPAGOID ? true : false}\r\n                          onClick={(e) => clickRadio(e.target.value, 'Mercado Pago')}\r\n                        />\r\n                        <label className=\"form-check-label\" htmlFor=\"Payment3Radios\">\r\n                          <img className=\"img-Payment\" src=\"/resources/img/mercado_pago.png\" alt=\"MercadoPago\" width=\"100%\"/>\r\n                        </label>\r\n                      </div>\r\n                    </div>\r\n                  )\r\n                }\r\n              </div>\r\n            )}\r\n            {!sure ? (\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-3\">\r\n                  <button type=\"button\" className=\"btn btn-outline-secondary btn-lg\" onClick={(e) => setSure(true)} disabled={disabledBtn}>\r\n                    Continuar\r\n                  </button>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                  <button\r\n                    type=\"button\"\r\n                    className=\"btn btn-outline-danger btn-lg closin-accept\"\r\n                    data-bs-dismiss=\"modalOfferSuccess\"\r\n                    aria-label=\"Close\"\r\n                    onClick={(e) => closeOfferSuccess()}\r\n                  >\r\n                    Cancelar\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            ) : (\r\n              <div className=\"row justify-content-center\">\r\n                <div className=\"col-3\">\r\n                  <button\r\n                    type=\"button\"\r\n                    className=\"btn btn-outline-secondary btn-lg w-100\"\r\n                    data-bs-dismiss=\"modalOfferSuccess\"\r\n                    aria-label=\"Close\"\r\n                    onClick={(e) => [retryPAyment(data), setSure(false), closeOfferSuccess()]}\r\n                  >\r\n                    Sí\r\n                  </button>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                  <button type=\"button\" className=\"btn btn-outline-danger btn-lg w-100\" onClick={(e) => setSure(false)}>\r\n                    No\r\n                  </button>\r\n                </div>\r\n              </div>\r\n            )}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { GET, POST } from '../../helpers/APIServices';\r\nimport {\r\n  getnoteCancelled,\r\n  getOrderPendingStatus,\r\n  getDisableCheckoutMessageID,\r\n  getOrderPendingPaymentStatus, getOrderCompletedStatus\r\n} from '../../helpers/getConstants'\r\nimport { ServicePaymentRetry, ServiceGetOrdersByUser, ServiceGenericParameters } from '../../helpers/getURL';\r\n\r\nimport { formatCurrency, convertToDate, OpenMessage } from '../Utilities/General';\r\n\r\nimport { PaymentGateways } from '../Profile/paymentProcess/PaymentGateways';\r\nimport { getConfig } from '../../helpers/getConfig';\r\n\r\nexport const Orders = (props) => {\r\n  const [data, setData] = useState([]);\r\n  const [idOrder, setIdOrder] = useState('');\r\n  const [hideBillPocket, setHideBillPocket] = useState(false);\r\n  const [hideActnet, setHideActnet] = useState(false);\r\n  const [hideMercadoPago, setHideMercadoPago] = useState(false);\r\n  const history = useHistory();\r\n  const pending = getOrderPendingStatus();\r\n  const pendingPayment = getOrderPendingPaymentStatus();\r\n  const completedtStatus = getOrderCompletedStatus();\r\n  const noteCancelled = getnoteCancelled();\r\n  const [disabelCheckoutMessage, setMessage] = useState('');\r\n  const openOrderDetail = (idOrder) => {\r\n    history.push({\r\n      pathname: '/detalle-orden',\r\n      state: { idOrder: idOrder },\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    const deliveryLimitID = getDisableCheckoutMessageID();\r\n    const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n    const getData = () => {\r\n      GET(URLDeliveryLimit).then((data) => {\r\n        if (data === '401') {\r\n          getData();\r\n          return '';\r\n        }\r\n        if(data.value){\r\n          setMessage(data.value);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    getOrders()\r\n  }, [props.visible]);\r\n\r\n  const getOrders = () => {\r\n    return new Promise((resolve, reject) => {\r\n      if (props.visible === 'show') {\r\n        const getData = () => {\r\n          const URL = ServiceGetOrdersByUser();\r\n          GET(URL).then((data) => {\r\n            if (data === '401') {\r\n              getData();\r\n              return;\r\n            }\r\n            const result = data || [];\r\n            setData(result);\r\n            resolve(result);\r\n          }).catch((error) => {\r\n            setData([]);\r\n            reject([]);\r\n          });\r\n        };\r\n        getData();\r\n      } else {\r\n        resolve([]);\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n    if (!constants || !constants.hideBillPocket) {\r\n      getConfig('constants.json').then((response) => {\r\n        if (response && response.hideBillPocket) {\r\n          setHideBillPocket(response.hideBillPocket);\r\n        }\r\n        if (response && response['hideActnet']) {\r\n          setHideActnet(response['hideActnet']);\r\n        }\r\n        if (response && response['hideMercadoPago']) {\r\n          setHideMercadoPago(response['hideMercadoPago']);\r\n        }\r\n      });\r\n    } else {\r\n      setHideBillPocket(constants.hideBillPocket);\r\n      setHideActnet(constants['hideActnet']);\r\n      setHideMercadoPago(constants['hideMercadoPago']);\r\n    }\r\n  }, []);\r\n\r\n  const shoppingCartError = () => {\r\n    OpenMessage(\r\n      'warning',\r\n      disabelCheckoutMessage\r\n    );\r\n  };\r\n\r\n  const retryPAyment = ({ payment }) => {\r\n    const URL = ServicePaymentRetry();\r\n    const params = {\r\n      idNota: idOrder,\r\n      idTpv: payment.id,\r\n    };\r\n    POST(URL, params).then((data) => {\r\n      if (data === '401') {\r\n        retryPAyment(payment);\r\n        return '';\r\n      }\r\n      if (data.success && data.urlRedirect) {\r\n        window.open(data.urlRedirect, '_self');\r\n      } else {\r\n        OpenMessage('error', 'Ha ocurrido un error al reintentar el pago. Por favor intente nuevamente');\r\n      }\r\n    });\r\n  };\r\n\r\n  function  getPendingOrder (order) {\r\n    getOrders().then((data) => {\r\n      const updatedOrders = data;\r\n      console.log('updatedOrders', updatedOrders);\r\n      const updatedOrder = updatedOrders.find((item) => item.idOrder === order.idOrder);\r\n      if (!updatedOrder) {\r\n        return;\r\n      }\r\n      if (updatedOrder.idOrderStatus === pendingPayment) {\r\n        OpenMessage('warning', 'Pago en proceso de validación por su banco, intente más tarde.');\r\n        return;\r\n      }\r\n      if (updatedOrder.idOrderStatus === pending) {\r\n        OpenMessage('warning', 'Hubo un problema con su pago. por favor reintente el pago');\r\n        return;\r\n      }\r\n      if (updatedOrder.idOrderStatus === completedtStatus) {\r\n        OpenMessage('success', 'Pago validado con éxito.');\r\n      }\r\n    }).catch((error) => {\r\n      console.log('error', error);\r\n    });\r\n  }\r\n\r\n    if (!data || data.length === 0) {\r\n    return (\r\n      <div className={props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Mis Órdenes</div>\r\n        </div>\r\n        <div className=\"mb-3 row inputs-form\">\r\n          <div className=\"col-12 text-center\">No existen registros</div>\r\n        </div>\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div className={'container__orders ' + props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Mis Órdenes</div>\r\n        </div>\r\n        {data.map((item, i) => {\r\n          return (\r\n            <div className=\"mt-5 row\" key={i}>\r\n              <div className=\"col-12\">\r\n                <div className=\"card\">\r\n                  <div className=\"row\">\r\n                    <div className=\"col-12\">\r\n                      <div className=\"card-body\">\r\n                        <h5 className=\"card-title\">No. de orden: {item.folio}</h5>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Estado de la orden: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-value\">{item.status}</label>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-2\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Fecha de compra: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-value\"> {convertToDate(item.created)}</label>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Total: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-value\">{formatCurrency(item.amount)}</label>\r\n                    </div>\r\n                    <div className=\"col-12 col-sm-4 container-fluid text-center\">\r\n                      <div className=\"row\">\r\n                        <div className=\"col\">\r\n                          <button className=\"btn btn-outline-secondary\" onClick={(e) => openOrderDetail(item.idOrder)}>\r\n                            Ver detalle\r\n                          </button>\r\n                        </div>\r\n                        {item.idOrderStatus === pending && (\r\n                          <div className=\"col\">\r\n                            <button\r\n                              className=\"btn btn-outline-danger retry-payment\"\r\n                              data-bs-target=\"#modalPaymentGateways\"\r\n                              data-bs-toggle=\"modal\"\r\n                              /* \r\n                              ToDo: Se debe cambiar el metodo shoppingCartError() por  setIdOrder(item.idOrder)\r\n                                Cuando se habilite de nuevo actnet. \r\n                                Se deben descomentar data-bs-target, data-bs-toggle\r\n                              */\r\n                              onClick={(e) => setIdOrder(item.idOrder) }\r\n                              disabled={item.amount > 0 ? false : true}\r\n                            >\r\n                              Reintentar pago\r\n                            </button>\r\n                          </div>\r\n                        )}\r\n                        {item.idOrderStatus === pendingPayment && (\r\n                          <div className=\"col\">\r\n                            <button\r\n                              className=\"btn btn-outline-danger retry-payment\"\r\n                              onClick={(e) => getPendingOrder(item) }>\r\n                              Verificar pago\r\n                            </button>\r\n                          </div>\r\n                        )}\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <PaymentGateways retryPAyment={retryPAyment} hideBillPocket={hideBillPocket} hideActnet={hideActnet} hideMercadoPago={hideMercadoPago} />\r\n            </div>\r\n          );\r\n        })}\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { ServiceGetListBids, ServiceGetListBidsDetails } from '../../helpers/getURL';\r\nimport { OpenModal, CloseAllModal, formatCurrency, convertToDate } from '../Utilities/General';\r\n\r\nexport const Bids = (props) => {\r\n  const [clientDataBids, setDataBids] = useState([]);\r\n  const [clientDataDetailsBids, setDataDetailsBids] = useState([]);\r\n  const [auctionName, setAuctionName] = useState('');\r\n  const URL = ServiceGetListBids();\r\n\r\n  const openDetailBids = (idAuction, nameAuction) => {\r\n    const URLDetail = ServiceGetListBidsDetails(idAuction);\r\n    GET(URLDetail).then((data) => {\r\n      setDataDetailsBids([]);\r\n      if (data && data.length > 0) {\r\n        setDataDetailsBids(data);\r\n      }\r\n      setAuctionName(nameAuction);\r\n      OpenModal('modalBids');\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      const getData = () => {\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data && data.length > 0) {\r\n            setDataBids(data);\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [props.visible, URL]);\r\n\r\n  const formatDate = (date, time) => {\r\n    if(date && time){\r\n      let converDate = date.split(/\\//);\r\n      converDate = [ converDate[1], converDate[0], converDate[2] ].join('/')\r\n      let dateTime = new Date(converDate + ' ' + time);\r\n      dateTime = convertToDate(dateTime)\r\n      return dateTime;\r\n    }\r\n\r\n    return '';\r\n  }\r\n\r\n  if (!clientDataBids || clientDataBids.length === 0) {\r\n    return (\r\n      <div className={'container__orders ' + props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Mis pujas</div>\r\n        </div>\r\n        <div className=\"mb-3 row inputs-form\">\r\n          <div className=\"col-12 text-center\">No existen registros</div>\r\n        </div>\r\n      </div>\r\n    );\r\n  } else {\r\n    return (\r\n      <div className={'container__orders ' + props.visible}>\r\n        <div className=\"border-title\">\r\n          <div>Mis pujas</div>\r\n        </div>\r\n        {/* Datos */}\r\n        {clientDataBids.map((item, x) => {\r\n          return (\r\n            <div className=\"mt-5 row\" key={x}>\r\n              <div className=\"col-12\">\r\n                <div className=\"card\">\r\n                  <div className=\"row\">\r\n                    <div className=\"col-12\">\r\n                      <div className=\"card-body\">\r\n                        <h5 className=\"card-title\">{item.nameAuction}</h5>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Nombre: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-value\">{item.nameAuction}</label>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Descripción: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-7\">\r\n                      <label className=\"container__orders-value label-value\">{item.description}</label>\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row mb-3\">\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-title\"> Fecha: </label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4\">\r\n                      <label className=\"container__orders-value\">{formatDate(item.fecha, item.hora)}</label>\r\n                    </div>\r\n                    <div className=\"col-6 col-sm-4 container-fluid text-center\">\r\n                      <button className=\"btn btn-outline-secondary\" onClick={(e) => openDetailBids(item.idAuction, item.nameAuction)}>\r\n                        Ver detalle\r\n                      </button>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n\r\n        {/* MODAL */}\r\n        <div className=\"modal fade modal-top\" id=\"modalBids\" aria-hidden=\"true\">\r\n          <div className=\"modal-dialog modal-dialog-centered\">\r\n            <div className=\"modal-content\">\r\n              <div className=\"modal-title\">\r\n                <div className=\"row\">\r\n                  <div className=\"col-12 text-center mt-3 mb-3\">\r\n                    <b>Mis pujas - {auctionName}</b>\r\n                  </div>\r\n                </div>\r\n                <h4 className=\"text-desc\"> </h4>\r\n              </div>\r\n              <div className=\"modal-body modal-body__bids\">\r\n                {(!clientDataDetailsBids || clientDataDetailsBids.length === 0) && (\r\n                  <div className=\"card mt-4\">\r\n                    <div className=\"card-body\">\r\n                      <h6 className=\"card-title text-center\"> No hay registros </h6>\r\n                    </div>\r\n                  </div>\r\n                )}\r\n\r\n                {clientDataDetailsBids.map((item, x) => {\r\n                  return (\r\n                    <div className=\"card mt-4\" key={x}>\r\n                      <div className=\"card-body\">\r\n                        <h6 className=\"card-title\">Lote: {item.numberLot}</h6>\r\n                        <div className=\"row mb-3\">\r\n                          <div className=\"col-4\">\r\n                            <label className=\"container__orders-title\"> Descripción: </label>\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <label className=\"container__orders-value\">{item.description}</label>\r\n                          </div>\r\n                        </div>\r\n                        <div className=\"row mb-3\">\r\n                          <div className=\"col-4\">\r\n                            <label className=\"container__orders-title\"> Precio salida: </label>\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <label className=\"container__orders-value\">{formatCurrency(item.price)}</label>\r\n                          </div>\r\n                        </div>\r\n                        <div className=\"row mb-3\">\r\n                          <div className=\"col-4\">\r\n                            <label className=\"container__orders-title\"> Oferta cliente: </label>\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <label className=\"container__orders-value\">{formatCurrency(item.clientBid)}</label>\r\n                          </div>\r\n                        </div>\r\n                        <div className=\"row mb-3\">\r\n                          <div className=\"col-4\">\r\n                            <label className=\"container__orders-title\"> Fecha: </label>\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <label className=\"container__orders-value\">{formatDate(item.fecha, item.hora)}</label>\r\n                          </div>\r\n                        </div>\r\n                        <div className=\"row mb-3\">\r\n                          <div className=\"col-4\">\r\n                            <label className=\"container__orders-title\"> Tipo oferta: </label>\r\n                          </div>\r\n                          <div className=\"col-8\">\r\n                            <label className=\"container__orders-value\">{item.typeOffert}</label>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  );\r\n                })}\r\n              </div>\r\n              <h4 className=\"text-desc\"> </h4>\r\n              <div className=\"modal-footer\">\r\n                <button type=\"button\" className=\"btn btn-outline-danger\" onClick={() => CloseAllModal()}>\r\n                  Cerrar\r\n                </button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        {/* Datos */}\r\n      </div>\r\n    );\r\n  }\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\n\r\n//import { ConfigurationAccount } from './ConfigurationAccount';\r\nimport { ActionAccount } from './AuctionAccount';\r\nimport { AddressBillingAccount } from './AddressBillingAccount';\r\nimport { AddressShippingAccount } from './AddressShippingAccount';\r\nimport { AwardActive } from './AwardActive';\r\nimport { AwardHistory } from './AwardHistory';\r\nimport { Orders } from './Orders';\r\nimport { CustomerData } from './customerData/CustomerData';\r\nimport { Bids } from './Bids';\r\nimport { validSession, setSession } from '../Utilities/General';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getConfig } from '../../helpers/getConfig';\r\nimport { ServiceGenericParameters } from '../../helpers/getURL';\r\n\r\nimport '../../css/Profile/ProfileGrid.css';\r\n\r\nexport const ProfileGrid = () => {\r\n  const history = useHistory();\r\n\r\n  if (!validSession()) {\r\n    history.push('/?home=true');\r\n  }\r\n\r\n  const [dataGeneral, setDataGeneral] = useState('show');\r\n  const [dataAuction, setDataAuction] = useState('hide');\r\n  const [dataAwardActive, setDataAwardActive] = useState('hide');\r\n  const [dataAwardHistory, setDataAwardHistory] = useState('hide');\r\n  const [dataBid, setBid] = useState('hide');\r\n  const [dataOrders, setDataOrders] = useState('hide');\r\n  const [dataAddress, setDataAdress] = useState('hide');\r\n  const [dataAddressInvoice, setDataAdressInvoice] = useState('hide');\r\n  const [enableInvoice, setEnableInvoice] = useState(true);\r\n\r\n  const { search } = useLocation();\r\n  const option = new URLSearchParams(search).get('opcion');\r\n  const isProfile = new URLSearchParams(search).get('profile');\r\n\r\n  if (isProfile) {\r\n    window.location.href = '/perfil';\r\n  }\r\n\r\n  const removeMenuActive = () => {\r\n    let elements = document.getElementsByClassName('list-group-item-action');\r\n    elements.forEach((element) => {\r\n      element.classList.remove('active');\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (option) {\r\n      removeMenuActive();\r\n      setDataGeneral('hide');\r\n      switch (option) {\r\n        case '3':\r\n          setDataAwardActive('show');\r\n          document.getElementById('liAwardActive').classList.add('active');\r\n          break;\r\n        case '5':\r\n          setDataOrders('show');\r\n          document.getElementById('liOrders').classList.add('active');\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n  }, [option]);\r\n\r\n  useEffect(() => {\r\n    const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n    if (constants && constants.enableInvoice) {\r\n      const URL = ServiceGenericParameters(constants.enableInvoice);\r\n      GET(URL).then((data) => {\r\n        if (data && data.value) {\r\n          const isTrue = data.value.toLowerCase() === 'true';\r\n          setEnableInvoice(isTrue);\r\n        }\r\n      });\r\n    }\r\n  }, []);\r\n\r\n  const closeSession = () => {\r\n    setSession(false, '');\r\n    history.push('/?home=true');\r\n  };\r\n\r\n  const openTab = (form, option) => {\r\n    removeMenuActive();\r\n\r\n    setDataGeneral('hide');\r\n    setDataAuction('hide');\r\n    setDataAwardActive('hide');\r\n    setDataAwardHistory('hide');\r\n    setBid('hide');\r\n    setDataOrders('hide');\r\n    setDataAdress('hide');\r\n    setDataAdressInvoice('hide');\r\n\r\n    option.classList.add('active');\r\n\r\n    switch (form) {\r\n      case 'GENERAL':\r\n        setDataGeneral('show');\r\n        break;\r\n      case 'AUCTION':\r\n        setDataAuction('show');\r\n        break;\r\n      case 'AWARDACTIVE':\r\n        setDataAwardActive('show');\r\n        break;\r\n      case 'BID':\r\n        setBid('show');\r\n        break;\r\n      case 'AWARDHISTORY':\r\n        setDataAwardHistory('show');\r\n        break;\r\n      case 'ORDERS':\r\n        setDataOrders('show');\r\n        break;\r\n      case 'ADDRESS':\r\n        setDataAdress('show');\r\n        break;\r\n      case 'ADDRESSINVOICE':\r\n        setDataAdressInvoice('show');\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div className=\"container container__profile\">\r\n      <div className=\"row\">\r\n        <div className=\"col-12 col-sm-8 text-center-mobile\">\r\n          <h3 className=\"profile-title\">Mi cuenta</h3>\r\n        </div>\r\n        <div className=\"col-12 col-sm-4 text-end text-center-mobile\">\r\n          <button className=\"btn btn-outline-danger btn-logout\" onClick={closeSession}>\r\n            <strong>\r\n              <i className=\"fas fa-sign-out-alt\"></i> Cerrar sesión\r\n            </strong>\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <div className=\"row\">\r\n        <div className=\"col-12 col-md-4\">\r\n          <ul className=\"list-group menu-profile\">\r\n            <li className=\"list-group-item menu-profile__title\">\r\n              <div>Configuración</div>\r\n            </li>\r\n            <li id=\"liGeneral\" className=\"list-group-item list-group-item-action active\" onClick={(e) => openTab('GENERAL', e.target)}>\r\n              General\r\n            </li>\r\n            <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AUCTION', e.target)}>\r\n              Subastas\r\n            </li>\r\n            <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('BID', e.target)}>\r\n              Mis Pujas\r\n            </li>\r\n            <li id=\"liAwardActive\" className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AWARDACTIVE', e.target)}>\r\n              Mis Adjudicaciones Activas\r\n            </li>\r\n            <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('AWARDHISTORY', e.target)}>\r\n              Historial de Adjudicaciones\r\n            </li>\r\n            <li id=\"liOrders\" className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ORDERS', e.target)}>\r\n              Mis Órdenes\r\n            </li>\r\n            <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ADDRESS', e.target)}>\r\n              Direcciones de envío\r\n            </li>\r\n            {enableInvoice && (\r\n              <li className=\"list-group-item list-group-item-action\" onClick={(e) => openTab('ADDRESSINVOICE', e.target)}>\r\n                Datos fiscales\r\n              </li>\r\n            )}\r\n          </ul>\r\n        </div>\r\n        <div className=\"col-12 col-md-8 form-profile\">\r\n          {/* <ConfigurationAccount visible={dataGeneral} /> */}\r\n          {dataGeneral === 'show' ? <CustomerData visible={dataGeneral} parent={'ProfileGrid'} close={null} /> : null}\r\n\r\n          <ActionAccount visible={dataAuction} />\r\n          <AddressShippingAccount visible={dataAddress} />\r\n          <AddressBillingAccount visible={dataAddressInvoice} />\r\n          <AwardActive visible={dataAwardActive} enableInvoice={enableInvoice} />\r\n          <AwardHistory visible={dataAwardHistory} />\r\n          <Bids visible={dataBid} />\r\n          <Orders visible={dataOrders} />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { formatCurrency, OpenMessage, CloseBackdrops, ResetStyleBody } from '../../Utilities/General';\r\nimport { getImgDefault } from '../../../helpers/getConstants';\r\n\r\nexport const ShoppingCart = (props) => {\r\n  const [items, setItems] = useState([]);\r\n  const detail = props.data;\r\n\r\n  useEffect(() => {\r\n    CloseBackdrops();\r\n    ResetStyleBody();\r\n    const consiga = detail ? detail.filter((x) => x.consigna) : [];\r\n    const sap = detail ? detail.filter((x) => !x.consigna && !x.consignaSAP) : [];\r\n    const consignaSap = detail ? detail.filter((x) => !x.consigna && x.consignaSAP) : [];\r\n\r\n    let data = [];\r\n\r\n    if (sap.length > 0) {\r\n      data.push({\r\n        title: 'Lotes Gama',\r\n        details: sap,\r\n        consigna: false,\r\n        consignaSAP: false,\r\n      });\r\n    }\r\n\r\n    if (consiga.length > 0) {\r\n      data.push({\r\n        title: 'Lotes Plus',\r\n        details: consiga,\r\n        consigna: true,\r\n        consignaSAP: false,\r\n      });\r\n    }\r\n    \r\n    if (consignaSap.length > 0) {\r\n      data.push({\r\n        title: 'Lotes Plus CS',\r\n        details: consignaSap,\r\n        consigna: false,\r\n        consignaSAP: true,\r\n      });\r\n    }\r\n\r\n    setItems(data);\r\n    if (data.length > 1) { \r\n      OpenMessage('warning', 'No es posible seleccionar lotes Plus, lotes Gama y lotes Plus CS en una misma orden. Deben pagarse por separado.');\r\n    }\r\n  }, [detail]);\r\n\r\n    useEffect(() => {\r\n      if(items.length === 1 && items[0].details.length === 1){\r\n        props.addAllCart(true, items[0].consigna, items[0].consignaSAP, 'checkAll_0')\r\n      }\r\n    }, [items])\r\n    \r\n  return (\r\n    <div className={props.visible}>\r\n      {items.map((item, i) => {\r\n        const idCheckAll = 'checkAll_' + i;\r\n        return (\r\n          <div key={i}>\r\n            <div className=\"row inputs-form\">\r\n              <div className=\"col-12 mb-3\">\r\n                <div className=\"card\">\r\n                  <div className=\"card-header text-center text-uppercase\">\r\n                    <h3>{item.title}</h3>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div className=\"row mb-3 inputs-form\">\r\n              <div className=\"col-12\">\r\n                <div className=\"card mb-3\">\r\n                  <div className=\"row g-0 align-items-center\">\r\n                    <div className=\"col-1 text-center\">\r\n                      <input\r\n                        id={idCheckAll}\r\n                        className=\"checkAll form-check-input\"\r\n                        type=\"checkbox\"\r\n                        onChange={(e) => props.addAllCart(e.target.checked, item.consigna, item.consignaSAP, idCheckAll)}\r\n                      />\r\n                    </div>\r\n                    <div className=\"col-2\">\r\n                      <p className=\"card-text text-uppercase text-center\">Imagen</p>\r\n                    </div>\r\n                    <div className=\"col-9\">\r\n                      <div className=\"card-body\">\r\n                        <div className=\"row\">\r\n                          <div className=\"col-3\">\r\n                            <p className=\"card-text text-uppercase\">No. Lote</p>\r\n                          </div>\r\n                          <div className=\"col-6\">\r\n                            <p className=\"card-text text-uppercase\">Descripción</p>\r\n                          </div>\r\n                          <div className=\"col-3\">\r\n                            <p className=\"card-text text-uppercase\">Precio</p>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n\r\n            {item.details.map((element, j) => {\r\n              return (\r\n                <div key={j}>\r\n                  <div className=\"mb-3 row inputs-form\">\r\n                    <div className=\"col-12\">\r\n                      <div className=\"card mb-3\">\r\n                        <div className=\"row g-0 align-items-center\">\r\n                          <div className=\"col-1 text-center\">\r\n                            <input\r\n                              className=\"form-check-input\"\r\n                              type=\"checkbox\"\r\n                              id={element.idLote}\r\n                              onChange={(e) => props.addCart(element.idLote, e.target.checked, element.precioSalida, item.consigna, item.consignaSAP, idCheckAll)}\r\n                            />\r\n                          </div>\r\n                          <div className=\"col-2\">\r\n                            <img\r\n                              src={element.images[0] ? element.images[0] : getImgDefault()}\r\n                              className=\"img-fluid rounded-start\"\r\n                              alt={element.descripcionLote}\r\n                            />\r\n                          </div>\r\n                          <div className=\"col-9\">\r\n                            <div className=\"card-body\">\r\n                              <div className=\"row\">\r\n                                <div className=\"col-3\">\r\n                                  <p className=\"card-text\">{element.lot}</p>\r\n                                </div>\r\n                                <div className=\"col-6\">\r\n                                  <p className=\"card-text\">\r\n                                    {element.nombreLote} <br /> {element.descripcionLote}\r\n                                  </p>\r\n                                </div>\r\n                                <div className=\"col-3\">\r\n                                  <small className=\"text-muted\">{formatCurrency(element.precioSalida)}</small>\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              );\r\n            })}\r\n          </div>\r\n        );\r\n      })}\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { getDeliveryLimitID, getActivateMessagingID, getIdGoldenMinutes, getIdStreaming } from '../../../helpers/getConstants';\r\nimport { ServiceGenericParameters } from '../../../helpers/getURL';\r\nimport { resetRadios } from '../../Utilities/General';\r\n\r\nexport const Send = (props) => {\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [step, setStep] = useState(0);\r\n  const [data, setData] = useState([]);\r\n  const [message, setMessage] = useState('');\r\n  const [officeDelivery, setOfficeDelivery] = useState(true);\r\n  const idGoldenMinutes = getIdGoldenMinutes();\r\n  const  { idTypeAuction = '' } = props;\r\n\r\n  useEffect(() => {\r\n    setStep(props.step + 1); //siempre es el siguiente paso\r\n  }, [props.step]);\r\n\r\n  useEffect(() => {\r\n    const deliveryLimitID = getDeliveryLimitID();\r\n    const URLDeliveryLimit = ServiceGenericParameters(deliveryLimitID);\r\n    const getData = () => {\r\n      GET(URLDeliveryLimit).then((data) => {\r\n        if (data === '401') {\r\n          getData();\r\n          return '';\r\n        }\r\n        if(data.value){\r\n          setMessage(data.value);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, [])\r\n\r\n  useEffect(() => {\r\n    const activateMessagingID = getActivateMessagingID();\r\n    const URLActivateMessagingID = ServiceGenericParameters(activateMessagingID);\r\n    const getActivate = () => {\r\n      GET(URLActivateMessagingID).then((data) => {\r\n        if (data === '401') {\r\n          getActivate();\r\n          return '';\r\n        }\r\n        if(data.value){\r\n          const isOffice = data.value.trim().toLowerCase() === \"true\" ? true : false;\r\n          if(!isOffice){\r\n            clickRadio(\"2\", 'Mensajería')\r\n          }\r\n          setOfficeDelivery(isOffice);\r\n        }\r\n      });\r\n    };\r\n    getActivate();\r\n  }, [])\r\n  \r\n  useEffect(() => {\r\n    if (props.lastStep && props.visible === 'show') {\r\n      resetRadios('SendRadios');\r\n      setDisabledBtn(true);\r\n      setStep(props.step + 1);\r\n\r\n    }\r\n  }, [props.step, props.lastStep, props.visible]);\r\n\r\n  const clickRadio = (value, name) => {\r\n    const send = {\r\n      send: {\r\n        type: value,\r\n        name: name,\r\n      },\r\n    };\r\n    setData(send);\r\n    if (parseInt(value) === 1) {\r\n      if (props.lastStep) {\r\n        setStep(8); //Ultima pantalla\r\n      } else {\r\n        setStep(5); //Facturacion\r\n      }\r\n    } else {\r\n      setStep(props.step + 1);\r\n    }\r\n    props.setOrigen(2);\r\n    props.setOrigen2(2);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  return (\r\n    <div className={'card ' + props.visible}>\r\n      <div className=\"card-header text-center\">\r\n        <h3>Método de envío</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-6\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Seleccione un método de envío de las opciones disponibles:</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12\">\r\n            {((officeDelivery && idTypeAuction === idGoldenMinutes) || idTypeAuction !== idGoldenMinutes) && <div className=\"form-check\">\r\n              <input\r\n                className=\"form-check-input\"\r\n                type=\"radio\"\r\n                name=\"SendRadios\"\r\n                id=\"OfficeRadios\"\r\n                value=\"1\"\r\n                onClick={(e) => clickRadio(e.target.value, 'Entrega en oficina')}\r\n                checked={data?.send?.type === \"1\" ? true : false}\r\n                onChange={(e)=> {}}\r\n              />\r\n              <label className=\"form-check-label\" htmlFor=\"OfficeRadios\">\r\n                Entrega en oficina\r\n              </label>\r\n            </div>}\r\n            <div className=\"form-check\">\r\n              <input\r\n                className=\"form-check-input\"\r\n                type=\"radio\"\r\n                name=\"SendRadios\"\r\n                id=\"MailRadios\"\r\n                value=\"2\"\r\n                onClick={(e) => clickRadio(e.target.value, 'Mensajería')}\r\n                checked={data?.send?.type === \"2\" ? true : false}\r\n                onChange={(e)=> {}}\r\n              />\r\n              <label className=\"form-check-label\" htmlFor=\"MailRadios\">\r\n                Mensajería\r\n              </label>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        {data?.send?.type === \"2\" && <div className=\"row mb-2 px-5\">\r\n          <div className=\"col-12\">\r\n            <h5>{message}. </h5>\r\n          </div>\r\n        </div>}\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-6 text-end\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-danger\"\r\n              disabled={disabledBtn}\r\n              onClick={(e) => props.eventButton(true, step, data)}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className=\"col-6 text-start\">\r\n            <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(false, 1, data)}>\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { formatCurrency, OpenMessage } from \"../../Utilities/General\";\r\nimport {\r\n  ServiceAddOrder,\r\n  ServiceGenericParameters,\r\n  ServiceAddDirectSale,\r\n} from \"../../../helpers/getURL\";\r\nimport { POST, GET } from \"../../../helpers/APIServices\";\r\nimport {\r\n  getDeliveryMail,\r\n  getDeliveryOffice,\r\n  getGuidEmpty,\r\n  getLotPaymentLimit,\r\n  getLotPaymentLimitDefault,\r\n} from \"../../../helpers/getConstants\";\r\n\r\nexport const OrderPanel = (props) => {\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const count = props.count ? props.count : 0;\r\n  const subTotal = props.subTotal ? props.subTotal : 0;\r\n  const send = props.send ? props.send : 0;\r\n  const total = subTotal + send;\r\n  const step = props.step ? props.step : 2; //siempre es el siguiente paso\r\n  const history = useHistory();\r\n  const data = props.data ? props.data : null;\r\n  const [lotPaymentLimit, setLotPaymentLimit] = useState(\r\n    getLotPaymentLimitDefault()\r\n  );\r\n  const id = getLotPaymentLimit();\r\n  const URLParameter = ServiceGenericParameters(id);\r\n  const [cart, setCart] = useState([]);\r\n\r\n  useEffect(() => {\r\n    const shoppingCart = JSON.parse(localStorage.getItem(\"cart\"));\r\n    if (shoppingCart && shoppingCart.length > 0) {\r\n      setCart(shoppingCart);\r\n    }\r\n\r\n    if (count > lotPaymentLimit) {\r\n      setDisabledBtn(true);\r\n    } else {\r\n      setDisabledBtn(props.disabledBtn);\r\n    }\r\n  }, [props.disabledBtn, count, lotPaymentLimit]);\r\n\r\n  useEffect(() => {\r\n    const NLotPaymentLimitValidation = () => {\r\n      GET(URLParameter).then((response) => {\r\n        if (response === \"401\") {\r\n          NLotPaymentLimitValidation();\r\n          return \"\";\r\n        }\r\n        if (\r\n          response &&\r\n          response.value !== undefined &&\r\n          !isNaN(response.value)\r\n        ) {\r\n          setLotPaymentLimit(response.value);\r\n        }\r\n      });\r\n    };\r\n\r\n    NLotPaymentLimitValidation();\r\n  }, [URLParameter]);\r\n\r\n  const getParams = () => {\r\n    if (props.lastStep === true) {\r\n      let orderDetails = [];\r\n\r\n      let isDeliveryRequired = false;\r\n      let idDeliveryType = getDeliveryOffice();\r\n      let rateDelivery = \"0\";\r\n      let idRateDelivery = getGuidEmpty();\r\n      let nombreMensajeria = \"\";\r\n      let montoMensajeria = 0;\r\n      let idDireccionEnvio = getGuidEmpty();\r\n\r\n      let isBillingRequired = false;\r\n      let idBillingAdress = getGuidEmpty();\r\n      let rfc = \"\";\r\n\r\n      let montoSeguro = 0;\r\n\r\n      if (data) {\r\n        for (let i = 0; i < data.selectItem.length; i++) {\r\n          let arr = {\r\n            idAuction: data.selectItem[i].idSubasta,\r\n            idLot: data.selectItem[i].idLote,\r\n            precioVenta: data.selectItem[i].precioSalida,\r\n            lotName: data.selectItem[i].nombreLote,\r\n          };\r\n          orderDetails.push(arr);\r\n        }\r\n\r\n        if (data.send && data.send.type === \"2\") {\r\n          isDeliveryRequired = true;\r\n          idDeliveryType = getDeliveryMail();\r\n        }\r\n\r\n        if (data.mail) {\r\n          rateDelivery = data.mail.id;\r\n          nombreMensajeria = data.mail.carrier;\r\n          montoMensajeria = data.mail.rate;\r\n          idRateDelivery = data.mail.idRateDelivery;\r\n          montoSeguro = data.mail.amountInsurance;\r\n        }\r\n\r\n        if (data.addressMail) {\r\n          idDireccionEnvio = data.addressMail.id;\r\n        }\r\n\r\n        if (\r\n          props.enableInvoice === true &&\r\n          data.invoice.name.toLowerCase() === \"si\"\r\n        ) {\r\n          isBillingRequired = true;\r\n        }\r\n\r\n        if (data.addressInvoice) {\r\n          idBillingAdress = data.addressInvoice.id;\r\n          rfc = data.addressInvoice.rfc;\r\n        }\r\n      }\r\n\r\n      const id = localStorage.getItem(\"id\");\r\n      const params = {\r\n        idClient: id,\r\n        tipoPasarelaTPV: data.payment?.paymentGateway,\r\n        orderDetails: orderDetails,\r\n        isDeliveryRequired: isDeliveryRequired,\r\n        idDeliveryType: idDeliveryType,\r\n        deliveryService: {\r\n          nombreMensajeria: nombreMensajeria,\r\n          rateDelivery: rateDelivery,\r\n          idRateDelivery: idRateDelivery,\r\n          montoMensajeria: montoMensajeria,\r\n          idDireccionEnvio: idDireccionEnvio,\r\n          montoSeguro: montoSeguro,\r\n        },\r\n        isBillingRequired: isBillingRequired,\r\n        billing: {\r\n          idBillingUser: idBillingAdress,\r\n          rfc: rfc,\r\n        },\r\n      };\r\n      return params;\r\n    }\r\n    return \"\";\r\n  };\r\n\r\n  const deleteCart = (idLote) => {\r\n    let index = -1;\r\n    cart.filter((item, i) => {\r\n      if (item && item.IdLot === idLote) {\r\n        index = i;\r\n      }\r\n      return i;\r\n    });\r\n    if (index !== -1) {\r\n      let item = [];\r\n      delete cart[index];\r\n      localStorage.removeItem(\"cart\");\r\n      for (let i = 0; i < cart.length; i++) {\r\n        if (cart[i]) {\r\n          item.push(cart[i]);\r\n        }\r\n      }\r\n      if (item.length > 0) {\r\n        localStorage.setItem(\"cart\", JSON.stringify(item));\r\n      }\r\n    }\r\n  };\r\n\r\n  const saveOrder = () => {\r\n    const directSale =\r\n      data && data.selectItem\r\n        ? data.selectItem.filter((x) => x.origin === \"directSale\")\r\n        : [];\r\n    const params = getParams();\r\n    console.log(\"params\", params);\r\n    if (params) {\r\n      const URL =\r\n        directSale.length > 0 ? ServiceAddDirectSale() : ServiceAddOrder();\r\n      POST(URL, params).then((data) => {\r\n        if (data.errors) {\r\n          OpenMessage(\"error\", data.title);\r\n        } else if (!data.success) {\r\n          //solo en venta directa existe el carrito de compras\r\n          if (directSale.length > 0 && params && params.orderDetails) {\r\n            params.orderDetails.forEach((element) => {\r\n              deleteCart(element.idLot);\r\n            });\r\n          }\r\n          OpenMessage(\"error\", data.description);\r\n        } else if (data.urlRedirect) {\r\n          window.open(data.urlRedirect, \"_self\");\r\n        }\r\n      });\r\n    }\r\n  };\r\n\r\n  let limitPayment = \"\";\r\n  if (count > lotPaymentLimit) {\r\n    limitPayment = (\r\n      <div className='col-12'>\r\n        <p className='text-notice fw-bolder'>\r\n          Superaste el límite de lotes a pagar. El límite de lotes por pagar es\r\n          de: {lotPaymentLimit}.\r\n        </p>\r\n      </div>\r\n    );\r\n  }\r\n\r\n  const backTo = () => {\r\n    const isCatalog = new URLSearchParams(history.location.search).get(\r\n      \"modulo\"\r\n    );\r\n    if (isCatalog === \"catalogo\") {\r\n      const idAuction = new URLSearchParams(history.location.search).get(\"id\");\r\n      history.push(`/catalogo?id=${idAuction}`);\r\n    } else {\r\n      history.push(\"/perfil?opcion=3\");\r\n    }\r\n  };\r\n  return (\r\n    <div className='card'>\r\n      <div className='card-header text-center'>\r\n        <h3>Tu pedido</h3>\r\n      </div>\r\n      <div className='card-body'>\r\n        <div className='row mb-4'>\r\n          <div className='col-5'>\r\n            <h5 className='card-text text-end text-uppercase'>Cantidad</h5>\r\n          </div>\r\n          <div className='col-7'>\r\n            <h5 className='card-text text-end'>{count}</h5>\r\n          </div>\r\n        </div>\r\n\r\n        <div className='row mb-4'>\r\n          <div className='col-5'>\r\n            <h5 className='card-text text-end text-uppercase'>SubTotal</h5>\r\n          </div>\r\n          <div className='col-7'>\r\n            <h5 className='card-text text-end'>{formatCurrency(subTotal)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-4'>\r\n          <div className='col-5'>\r\n            <h5 className='card-text text-end text-uppercase'>Envío</h5>\r\n          </div>\r\n          <div className='col-7'>\r\n            <h5 className='card-text text-end'>{formatCurrency(send)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-4'>\r\n          <div className='col-5'>\r\n            <h5 className='card-text text-end text-uppercase'>Total</h5>\r\n          </div>\r\n          <div className='col-7'>\r\n            <h5 className='card-text text-end'>{formatCurrency(total)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-2 mt-5'>\r\n          <div className='col-6 text-end'>\r\n            <button\r\n              type='button'\r\n              className='btn btn-lg btn-outline-secondary'\r\n              onClick={(e) =>\r\n                props.lastStep === false\r\n                  ? props.eventButton(!disabledBtn, step)\r\n                  : saveOrder()\r\n              }\r\n              disabled={disabledBtn}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className='col-6 text-start'>\r\n            <button\r\n              type='button'\r\n              className='btn btn-lg btn-outline-danger'\r\n              onClick={() => backTo()}\r\n            >\r\n              Cancelar\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className='row mt-5'>\r\n          <div className='col-12'>\r\n            <p className='text-notice'>\r\n              El costo del envío se calcula durante el proceso\r\n            </p>\r\n          </div>\r\n          {limitPayment}\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\n\r\nimport { POST } from \"../../../helpers/APIServices\";\r\nimport { ServiceQuotationMail } from \"../../../helpers/getURL\";\r\nimport {\r\n  formatCurrency,\r\n  resetRadios,\r\n  OpenMessage,\r\n} from \"../../Utilities/General\";\r\nimport {\r\n  getIdGoldenMinutes,\r\n  getIdPresential,\r\n  getIdStreaming,\r\n  getIdSystem,\r\n  getReferenceObject,\r\n  getZipCodeOrigenMO,\r\n  getZipCodeOrigenPresential,\r\n  getZipCodeOrigenStreaming,\r\n} from \"../../../helpers/getConstants\";\r\n\r\nexport const Mail = (props) => {\r\n  let [step, setStep] = useState(props.step + 1);\r\n  const URL = ServiceQuotationMail();\r\n  const idGoldenMinutes = getIdGoldenMinutes();\r\n  const idStreaming = getIdStreaming();\r\n  const idPresential = getIdPresential();\r\n  const [data, setData] = useState([]);\r\n  const [listMail, setListMail] = useState([]);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n\r\n  useEffect(() => {\r\n    if (props.lastStep && props.visible === \"show\") {\r\n      setStep(8);\r\n      resetRadios(\"MailRadios\");\r\n      setDisabledBtn(true);\r\n      setListMail([]);\r\n    }\r\n  }, [props.lastStep, props.visible]);\r\n\r\n  useEffect(() => {\r\n    if (\r\n      props.visible === \"show\" &&\r\n      props.data &&\r\n      props.data.addressMail &&\r\n      props.data.addressMail.zipCode\r\n    ) {\r\n      const params = {\r\n        idSystem: getIdSystem(),\r\n        referenceObject: getReferenceObject(),\r\n        packageList: {\r\n          description: \"Subastas streaming\",\r\n          contentValue: props.subTotal ? props.subTotal : 1,\r\n          weight: 1,\r\n          length: 1,\r\n          height: 1,\r\n          width: 1,\r\n        },\r\n        originAddress: {\r\n          zipCode: getZipCodeOrigen(),\r\n        },\r\n        destinationAddress: {\r\n          zipCode: props.data.addressMail.zipCode,\r\n        },\r\n      };\r\n\r\n      POST(URL, params).then((response) => {\r\n        if (response && response.length > 0 && response[0].shippingOptions) {\r\n          setListMail(response[0].shippingOptions);\r\n        } else {\r\n          OpenMessage(\"warning\", response);\r\n          setListMail([]);\r\n          props.eventButton(true, 2, data);\r\n        }\r\n      });\r\n    }\r\n  }, [URL, props.visible, props.data, props.subTotal, step, data]);\r\n\r\n  const getZipCodeOrigen = () => {\r\n    let zipCode = \"\";\r\n\r\n    switch (props.idTypeAuction) {\r\n      case idGoldenMinutes:\r\n        zipCode = getZipCodeOrigenMO();\r\n        break;\r\n      case idStreaming:\r\n        zipCode = getZipCodeOrigenStreaming();\r\n        break;\r\n      case idPresential:\r\n        zipCode = getZipCodeOrigenPresential();\r\n        break;\r\n      default:\r\n        zipCode = \"\";\r\n        break;\r\n    }\r\n\r\n    return zipCode;\r\n  };\r\n\r\n  const clickRadio = (value, data, rate, carrier, idRate, AmountInsurance) => {\r\n    const selectItem = {\r\n      mail: {\r\n        id: value,\r\n        name: data,\r\n        rate: rate,\r\n        carrier: carrier,\r\n        idRateDelivery: idRate,\r\n        amountInsurance: AmountInsurance,\r\n      },\r\n    };\r\n    console.log(\"SELECT ITEM : \", selectItem);\r\n    setData(selectItem);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  return (\r\n    <div className={\"card \" + props.visible}>\r\n      <div className='card-header text-center'>\r\n        <h3>Método de envío</h3>\r\n      </div>\r\n      <div className='card-body'>\r\n        <div className='row mb-6'>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>\r\n              Seleccione un método de envío de las opciones disponibles:\r\n            </h5>\r\n          </div>\r\n        </div>\r\n        {listMail.map((item, i) => {\r\n          console.log(\"currency ->\", item);\r\n          const totalRate = item.rate + item.amountInsurance;\r\n          const value = `${item.carrier} - ${item.description} ${formatCurrency(\r\n            totalRate\r\n          )} ${item.currency}`;\r\n          return (\r\n            <div className='row mb-2' key={i}>\r\n              <div className='col-12'>\r\n                <div className='form-check'>\r\n                  <input\r\n                    className='form-check-input'\r\n                    type='radio'\r\n                    name='MailRadios'\r\n                    id={item.rateId}\r\n                    value={item.rateId}\r\n                    onClick={(e) =>\r\n                      clickRadio(\r\n                        e.target.value,\r\n                        value,\r\n                        totalRate,\r\n                        item.carrier,\r\n                        item.idRate,\r\n                        item.amountInsurance\r\n                      )\r\n                    }\r\n                  />\r\n                  <label className='form-check-label' htmlFor={item.rateId}>\r\n                    <p>{value}</p>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n        <div className='row mb-2'>\r\n          <div className='col-6 text-end'>\r\n            <button\r\n              type='button'\r\n              className='btn btn-lg btn-outline-danger'\r\n              onClick={(e) => [\r\n                props.eventButton(true, step, data),\r\n                props.setOrigen(4),\r\n                props.setOrigen2(4),\r\n              ]}\r\n              disabled={disabledBtn}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className='col-6 text-start'>\r\n            <button\r\n              type='button'\r\n              className='btn btn-lg btn-outline-secondary'\r\n              onClick={(e) => props.eventButton(true, step - 2, data)}\r\n            >\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { resetRadios } from '../../Utilities/General';\r\n\r\nexport const Invoice = (props) => {\r\n  const [data, setData] = useState([]);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [step, setStep] = useState(props.step + 1); //siempre es el siguiente paso\r\n\r\n  useEffect(() => {\r\n    if (props.lastStep && props.visible === 'show') {\r\n      resetRadios('InvoiceRadios');\r\n      setDisabledBtn(true);\r\n      //setStep(props.step + 1); //siempre es el siguiente paso\r\n    }\r\n  }, [props.step, props.lastStep, props.visible]);\r\n\r\n  const clickRadio = (value, data) => {\r\n    const selectItem = {\r\n      invoice: {\r\n        id: value,\r\n        name: data,\r\n      },\r\n    };\r\n    setData(selectItem);\r\n    if (parseInt(value) === 2) {\r\n      if (props.lastStep) {\r\n        setStep(8); //Ultima pantalla\r\n      } else {\r\n        setStep(7); //Forma de pago\r\n        props.setOrigen2(5);\r\n      }\r\n    } else {\r\n      setStep(6);\r\n      props.setOrigen2(6);\r\n    }\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  return (\r\n    <div className={'card ' + props.visible}>\r\n      <div className=\"card-header text-center\">\r\n        <h3>Factura</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-6\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">¿Requiere factura?</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12\">\r\n            <div className=\"form-check\">\r\n              <input\r\n                className=\"form-check-input\"\r\n                type=\"radio\"\r\n                name=\"InvoiceRadios\"\r\n                id=\"Invoice1Radios\"\r\n                value=\"1\"\r\n                onClick={(e) => clickRadio(e.target.value, 'Si')}\r\n              />\r\n              <label className=\"form-check-label\" htmlFor=\"Invoice1Radios\">\r\n                Si\r\n              </label>\r\n            </div>\r\n            <div className=\"form-check\">\r\n              <input\r\n                className=\"form-check-input\"\r\n                type=\"radio\"\r\n                name=\"InvoiceRadios\"\r\n                id=\"Invoice2Radios\"\r\n                value=\"2\"\r\n                onClick={(e) => clickRadio(e.target.value, 'No')}\r\n              />\r\n              <label className=\"form-check-label\" htmlFor=\"Invoice2Radios\">\r\n                No\r\n              </label>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-6 text-end\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-danger\"\r\n              disabled={disabledBtn}\r\n              onClick={(e) => props.eventButton(true, step, data)}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className=\"col-6 text-start\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-secondary\"\r\n              onClick={(e) => props.eventButton(true, props.originStep, data)}\r\n            >\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport ModalAddressBilling from '../ModalAddressBilling';\r\nimport { resetRadios, CloseModal, OpenMessage } from '../../Utilities/General';\r\nimport { ServiceGenericParameters, ServiceGetAddressBillingByIdCustomer } from '../../../helpers/getURL';\r\nimport { getLimitShippingInvoice } from '../../../helpers/getConstants';\r\n\r\nexport const AddressBilling = (props) => {\r\n  let [step, setStep] = useState(props.step + 1);\r\n  const idCustomer = localStorage.getItem('id');\r\n  const URL = ServiceGetAddressBillingByIdCustomer(idCustomer);\r\n  const [data, setData] = useState([]);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [listAddress, setListAddress] = useState([]);\r\n  const [listCities, setListCities] = useState([]);\r\n  const [address, setAddress] = useState({\r\n    id: '00000000-0000-0000-0000-000000000000',\r\n    idCustomer: localStorage.getItem('id'),\r\n    idPais: 'MX',\r\n    idEdo: '',\r\n    idMun: '',\r\n    idCol: '',\r\n    scp: '',\r\n    numero: '',\r\n    numeroInt: '',\r\n    razonSocial: '',\r\n    colonia: '',\r\n    calle: '',\r\n    rfc: '',\r\n    alias: '',\r\n    referencia: '',\r\n    esFisicoMoral: false,\r\n  });\r\n\r\n  const AddressRefresh = () => {\r\n    GET(URL).then((data) => {\r\n      if (data) {\r\n        setListAddress(data);\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.lastStep && props.visible === 'show') {\r\n      setStep(8);\r\n      resetRadios('AddressMailInvoiceRadios');\r\n      setDisabledBtn(true);\r\n    }\r\n  }, [props.lastStep, props.visible]);\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      GET(URL).then((data) => {\r\n        if (data) {\r\n          setListAddress(data);\r\n        }\r\n      });\r\n    }\r\n  }, [URL, props.visible]);\r\n\r\n  const clickRadio = (value, data, rfc, title) => {\r\n    const selectItem = {\r\n      addressInvoice: {\r\n        id: value,\r\n        name: data,\r\n        rfc: rfc,\r\n        title: title,\r\n      },\r\n    };\r\n    setData(selectItem);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  const NDirectionsValidation = () => {\r\n    const URL = ServiceGenericParameters(getLimitShippingInvoice());\r\n    GET(URL).then((data) => {\r\n      if (data) {\r\n        if (listAddress.length >= data.value) {\r\n          CloseModal('modalAddressInvoice');\r\n          OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envío');\r\n        }\r\n      } else {\r\n        OpenMessage('warning', 'No es posible registrar una dirección de envío');\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div className={'card ' + props.visible}>\r\n      <div className=\"card-header text-center\">\r\n        <h3>Factura</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-6\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Seleccione una dirección de facturación de las opciones disponibles:</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\"></div>\r\n        {listAddress.map((item, i) => {\r\n          const title = `${item.rfc}, ${item.razonSocial}`;\r\n          const value = `${item.calle} No. Ext. ${item.numero} ${item.numeroInt !== '' ? `No. Int. ${item.numeroInt}` : ''}, ${\r\n            item.colonia\r\n          }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n          return (\r\n            <div className=\"row mb-2\" key={i}>\r\n              <div className=\"col-12 title-rfc\">\r\n                <label className=\"form-check-label\" htmlFor={item.id}>\r\n                  <p>{title}</p>\r\n                </label>\r\n              </div>\r\n              <div className=\"col-12\">\r\n                <div className=\"form-check\">\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    name=\"AddressMailInvoiceRadios\"\r\n                    id={item.id}\r\n                    value={item.id}\r\n                    onClick={(e) => clickRadio(e.target.value, value, item.rfc, title)}\r\n                  />\r\n                  <label className=\"form-check-label\" htmlFor={item.id}>\r\n                    <p>{value}</p>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12 text-center\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-secondary btn-profile\"\r\n              data-bs-toggle=\"modal\"\r\n              data-bs-target=\"#modalAddressInvoice\"\r\n              onClick={() => NDirectionsValidation()}\r\n            >\r\n              Agregar datos fiscales\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <br />\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-6 text-end\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-danger\"\r\n              onClick={(e) => props.eventButton(true, step, data)}\r\n              disabled={disabledBtn}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className=\"col-6 text-start\">\r\n            <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(true, step - 2, data)}>\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <ModalAddressBilling\r\n        setAddress={setAddress}\r\n        address={address}\r\n        setListCities={setListCities}\r\n        listCities={listCities}\r\n        AddressRefresh={AddressRefresh}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport ModalAddressShipping from '../ModalAddressShipping';\r\nimport { resetRadios, CloseModal, OpenMessage } from '../../Utilities/General';\r\nimport { ServiceGenericParameters, ServiceGetAddressShippingByIdCustomer } from '../../../helpers/getURL';\r\nimport { getLimitShipping } from '../../../helpers/getConstants';\r\n\r\nexport const AddressShipping = (props) => {\r\n  const idCustomer = localStorage.getItem('id');\r\n  const URL = ServiceGetAddressShippingByIdCustomer(idCustomer);\r\n  const [data, setData] = useState([]);\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [listAddress, setListAddress] = useState([]);\r\n  const [listCities, setListCities] = useState([]);\r\n  const [address, setAddress] = useState({\r\n    id: '00000000-0000-0000-0000-000000000000',\r\n    idCustomer: localStorage.getItem('id'),\r\n    idPais: 'MX',\r\n    idEdo: '',\r\n    idMun: '',\r\n    idCol: '',\r\n    scp: '',\r\n    numero: '',\r\n    numeroInt: '',\r\n    razonSocial: '',\r\n    colonia: '',\r\n    calle: '',\r\n    rfc: '',\r\n    alias: '',\r\n    referencia: '',\r\n    esFisicoMoral: true,\r\n  });\r\n  let step = props.step + 1;\r\n\r\n  if (props.lastStep && props.data.mail) {\r\n    step = 8;\r\n  }\r\n\r\n  const AddressRefresh = () => {\r\n    GET(URL).then((data) => {\r\n      if (data) {\r\n        setListAddress(data);\r\n      }\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (props.visible === 'show') {\r\n      GET(URL).then((data) => {\r\n        if (data) {\r\n          setListAddress(data);\r\n        }\r\n      });\r\n    }\r\n  }, [URL, props.visible]);\r\n\r\n  useEffect(() => {\r\n    if (props.lastStep && props.visible === 'show') {\r\n      resetRadios('AddressMailRadios');\r\n      setDisabledBtn(true);\r\n    }\r\n  }, [props.lastStep, props.visible]);\r\n\r\n  const clickRadio = (value, data, zipCode) => {\r\n    const selectItem = {\r\n      addressMail: {\r\n        id: value,\r\n        name: data,\r\n        zipCode: zipCode,\r\n      },\r\n    };\r\n    setData(selectItem);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  const NDirectionsValidation = () => {\r\n    const URL = ServiceGenericParameters(getLimitShipping());\r\n    GET(URL).then((data) => {\r\n      if (data) {\r\n        if (listAddress.length >= data.value) {\r\n          CloseModal('modalAddress');\r\n          OpenMessage('warning', 'No se pueden registrar más de ' + data.value + ' direcciones de envío');\r\n        }\r\n      } else {\r\n        OpenMessage('warning', 'No es posible registrar una dirección de envío');\r\n      }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <div className={'card ' + props.visible}>\r\n      <div className=\"card-header text-center\">\r\n        <h3>Método de envío</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-6\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Seleccione una dirección de envío de las opciones disponibles:</h5>\r\n          </div>\r\n        </div>\r\n        {listAddress.map((item, i) => {\r\n          const value = `${item.calle} No. Ext. ${item.numero} ${item.numeroInt !== '' ? `No. Int. ${item.numeroInt}` : ''}, ${\r\n            item.colonia\r\n          }, C.P. ${item.scp}, ${item.municipio}, ${item.estado}, ${item.idPais}`;\r\n          return (\r\n            <div className=\"row mb-2\" key={i}>\r\n              <div className=\"col-12\">\r\n                <div className=\"form-check\">\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    name=\"AddressMailRadios\"\r\n                    id={item.id}\r\n                    value={item.id}\r\n                    onClick={(e) => clickRadio(e.target.value, value, item.scp)}\r\n                  />\r\n                  <label className=\"form-check-label\" htmlFor={item.id}>\r\n                    <p>{value}</p>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12 text-center\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-secondary btn-profile\"\r\n              data-bs-toggle=\"modal\"\r\n              data-bs-target=\"#modalAddress\"\r\n              onClick={() => NDirectionsValidation()}\r\n            >\r\n              Agregar dirección\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <br />\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-6 text-end\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-danger\"\r\n              disabled={disabledBtn}\r\n              onClick={(e) => props.eventButton(true, step, data)}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className=\"col-6 text-start\">\r\n            <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => props.eventButton(true, step - 2, data)}>\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <ModalAddressShipping\r\n        setAddress={setAddress}\r\n        address={address}\r\n        setListCities={setListCities}\r\n        listCities={listCities}\r\n        AddressRefresh={AddressRefresh}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { resetRadios } from '../../Utilities/General';\r\nimport { getactnetID, getBillPocketID, getMercadoPagoId } from '../../../helpers/getConstants'\r\n\r\nexport const Payment = ({\r\n  visible,\r\n  eventButton,\r\n  externStep,\r\n  lastStep,\r\n  originStep2,\r\n  hideBillPocket,\r\n  hideActnet,\r\n  hideMercadoPago\r\n}) => {\r\n  const [disabledBtn, setDisabledBtn] = useState(true);\r\n  const [data, setData] = useState({});\r\n  let [step, setStep] = useState(externStep + 1);\r\n  const BILLPOCKETID = getBillPocketID();\r\n  const ACTNETID = getactnetID();\r\n  const MERCADOPAGOID = getMercadoPagoId();\r\n\r\n  useEffect(() => {\r\n    if (lastStep && visible === 'show') {\r\n      setStep(8);\r\n      resetRadios('PaymentRadios');\r\n      setDisabledBtn(true);\r\n    }\r\n  }, [lastStep, visible]);\r\n\r\n  const clickRadio = (value, data, paymentGateway) => {\r\n    const selectItem = {\r\n      payment: {\r\n        id: value,\r\n        name: data,\r\n        paymentGateway: paymentGateway,\r\n      },\r\n    };\r\n    setData(selectItem);\r\n    setDisabledBtn(false);\r\n  };\r\n\r\n  return (\r\n    <div className={'card ' + visible}>\r\n      <div className=\"card-header text-center\">\r\n        <h3>Método de pago</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-6\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Seleccione un método de pago de las opciones disponibles:</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          {!hideBillPocket && (\r\n            <div className=\"col-md-3 col-sm-6\">\r\n              <div className=\"form-check\">\r\n                <input\r\n                  className=\"form-check-input\"\r\n                  type=\"radio\"\r\n                  name=\"PaymentRadios\"\r\n                  id=\"Payment1Radios\"\r\n                  value=\"1\"\r\n                  onClick={(e) => clickRadio(e.target.value, 'Bill Pocket', BILLPOCKETID)}\r\n                />\r\n                <label className=\"form-check-label\" htmlFor=\"Payment1Radios\">\r\n                  <img className=\"img-Payment\" src=\"./resources/img/bill_pocket.jpg\" alt=\"Bill Pocket\" width=\"80%\" />\r\n                </label>\r\n              </div>\r\n            </div>\r\n          )}\r\n          {\r\n            !hideActnet && (\r\n              <div className=\"col-md-3 col-sm-6\">\r\n                <div className=\"form-check\">\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    name=\"PaymentRadios\"\r\n                    id=\"Payment2Radios\"\r\n                    value=\"2\"\r\n                    onClick={(e) => clickRadio(e.target.value, 'Actnet', ACTNETID)}\r\n                  />\r\n                  <label className=\"form-check-label\" htmlFor=\"Payment2Radios\">\r\n                    <img className=\"img-Payment2\" src=\"./resources/img/actnet.png\" alt=\"Actnet\" width=\"90%\"/>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            )\r\n          }\r\n          {\r\n            !hideMercadoPago && (\r\n              <div className=\"col-md-3 col-sm-6\">\r\n                <div className=\"form-check\">\r\n                  <input\r\n                    className=\"form-check-input\"\r\n                    type=\"radio\"\r\n                    name=\"PaymentRadios\"\r\n                    id=\"Payment3Radios\"\r\n                    value=\"3\"\r\n                    onClick={(e) => clickRadio(e.target.value, 'MercadoPago', MERCADOPAGOID)}\r\n                  />\r\n                  <label className=\"form-check-label\" htmlFor=\"Payment3Radios\">\r\n                    <img className=\"img-Payment3\" src=\"/resources/img/mercado_pago.png\" alt=\"Actnet\" width=\"90%\"/>\r\n                  </label>\r\n                </div>\r\n              </div>\r\n            )\r\n          }\r\n\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-6 text-end\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-danger\"\r\n              disabled={disabledBtn}\r\n              onClick={(e) => eventButton(true, step, data)}\r\n            >\r\n              Continuar\r\n            </button>\r\n          </div>\r\n          <div className=\"col-6 text-start\">\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-lg btn-outline-secondary\"\r\n              onClick={(e) => eventButton(true, originStep2, data)}\r\n            >\r\n              Regresar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { formatCurrency } from \"../../Utilities/General\";\r\nimport { getImgDefault } from \"../../../helpers/getConstants\";\r\n\r\nimport { getMessageInsuranceID } from \"../../../helpers/getConstants\";\r\nimport { GET } from \"../../../helpers/APIServices\";\r\nimport { ServiceGenericParameters } from \"../../../helpers/getURL\";\r\n\r\nexport const ConfirmOrder = (props) => {\r\n  const [mail, setMail] = useState(\"\");\r\n  const [addressInvoice, setAddressInvoice] = useState(\"\");\r\n  const [addressInvoiceTitle, setAddressInvoiceTitle] = useState(\"\");\r\n  const [addressMail, setAddressMail] = useState(\"\");\r\n  const [payment, setPayment] = useState(\"\");\r\n  const [items, setItems] = useState([]);\r\n  const [hideInvoice, setHideInvoice] = useState(\"\");\r\n  const [hideMail, setHideMail] = useState(\"\");\r\n  const [stepSend, setStepSend] = useState();\r\n  const [messageInsurance, setMessageInsurance] = useState(\"\");\r\n\r\n  useEffect(() => {\r\n    if (props.visible === \"show\" && props.data) {\r\n      const data = props.data;\r\n      let value = \"\";\r\n\r\n      value = data.addressInvoice ? data.addressInvoice.name : \"\";\r\n      setAddressInvoice(value);\r\n      value = data.addressInvoice ? data.addressInvoice.title : \"\";\r\n      setAddressInvoiceTitle(value);\r\n\r\n      value = data.addressMail ? data.addressMail.name : data.send.name;\r\n      setAddressMail(value);\r\n      value = data.mail ? data.mail.name : data.send.name;\r\n      setMail(value);\r\n\r\n      value = data.payment ? data.payment.name : \"\";\r\n      setPayment(value);\r\n\r\n      setItems(data.selectItem);\r\n\r\n      if (\r\n        !props.enableInvoice ||\r\n        props.dataConsigna ||\r\n        data.invoice.id === \"2\"\r\n      ) {\r\n        setHideInvoice(\"hide\");\r\n      }\r\n      if (data.send.type === \"1\") {\r\n        //entrega en oficina\r\n        setHideMail(\"hide\");\r\n        setStepSend(2); //metodo de envio\r\n      } else {\r\n        setHideMail(\"\");\r\n        setStepSend(3); //direcciones de envio\r\n      }\r\n    }\r\n  }, [props.visible, props.data, props.dataConsigna, props.enableInvoice]);\r\n\r\n  useEffect(() => {\r\n    const messageInsuranceID = getMessageInsuranceID();\r\n    const URLMessageInsurance = ServiceGenericParameters(messageInsuranceID);\r\n    const getData = () => {\r\n      GET(URLMessageInsurance).then((data) => {\r\n        if (data === \"401\") {\r\n          getData();\r\n          return \"\";\r\n        }\r\n        if (data.value) {\r\n          setMessageInsurance(data.value);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, []);\r\n\r\n  return (\r\n    <div className={\"card \" + props.visible}>\r\n      <div className='card-header text-center'>\r\n        <h3>Confirmación de Orden</h3>\r\n      </div>\r\n      <div className='card-body'>\r\n        <div className={\"row mb-2 \" + hideMail}>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Método de envío</h5>\r\n          </div>\r\n        </div>\r\n        <div className={\"row mb-5 \" + hideMail}>\r\n          <div className='col-8'>\r\n            <p>{mail}</p>\r\n          </div>\r\n          <div className='col-4 text-end'>\r\n            <button\r\n              className='btn btn-link'\r\n              onClick={(e) => props.eventButton(true, 2)}\r\n            >\r\n              Cambiar\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-2'>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Dirección de envío</h5>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-5'>\r\n          <div className='col-8'>\r\n            <p>{addressMail}</p>\r\n          </div>\r\n          <div className='col-4 text-end'>\r\n            <button\r\n              className='btn btn-link'\r\n              onClick={(e) => props.eventButton(true, stepSend)}\r\n            >\r\n              Cambiar\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className={\"row mb-2 \" + hideMail}>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Seguro</h5>\r\n          </div>\r\n        </div>\r\n        <div className={\"row mb-5 \" + hideMail}>\r\n          <div className='col-12'>\r\n            <p>{messageInsurance}</p>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-2'>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Método de pago</h5>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-5'>\r\n          <div className='col-8'>\r\n            <p>{payment}</p>\r\n          </div>\r\n          <div className='col-4 text-end'>\r\n            <button\r\n              className='btn btn-link'\r\n              onClick={(e) => props.eventButton(true, 7)}\r\n            >\r\n              Cambiar\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className={\"row mb-2 \" + hideInvoice}>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Dirección de facturación</h5>\r\n          </div>\r\n        </div>\r\n        <div className={\"row mb-5 \" + hideInvoice}>\r\n          <div className='col-8'>\r\n            <p>{addressInvoiceTitle}</p>\r\n            <p>{addressInvoice}</p>\r\n          </div>\r\n          <div className='col-4 text-end'>\r\n            <button\r\n              className='btn btn-link'\r\n              onClick={(e) => props.eventButton(true, 5)}\r\n            >\r\n              Cambiar\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className='row mb-2'>\r\n          <div className='col-12'>\r\n            <h5 className='card-text card-title'>Materiales:</h5>\r\n          </div>\r\n        </div>\r\n        {items.map((item, i) => {\r\n          return (\r\n            <div key={i}>\r\n              <div className='mb-3 row inputs-form'>\r\n                <div className='col-12'>\r\n                  <div className='mb-3'>\r\n                    <div className='row g-0 align-items-center'>\r\n                      <div className='col-2'>\r\n                        <img\r\n                          src={\r\n                            item.images[0] ? item.images[0] : getImgDefault()\r\n                          }\r\n                          className='img-fluid rounded-start'\r\n                          alt={item.descripcionLote}\r\n                        />\r\n                      </div>\r\n                      <div className='col-md-10'>\r\n                        <div className='card-body'>\r\n                          <div className='row'>\r\n                            <div className='col-3'>\r\n                              <p className='card-text'>{item.nombreLote}</p>\r\n                            </div>\r\n                            <div className='col-6'>\r\n                              <p className='card-text'>\r\n                                {item.descripcionLote}\r\n                              </p>\r\n                            </div>\r\n                            <div className='col-3'>\r\n                              <small className='text-muted'>\r\n                                {formatCurrency(item.precioSalida)}\r\n                              </small>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { validSession } from '../../Utilities/General';\r\n\r\nimport { ShoppingCart } from './ShoppingCart';\r\nimport { Send } from './Send';\r\nimport { OrderPanel } from './OrderPanel';\r\nimport { Mail } from './Mail';\r\nimport { Invoice } from './Invoice';\r\nimport { AddressBilling } from './AddressBilling';\r\nimport { AddressShipping } from './AddressShipping';\r\nimport { Payment } from './Payment';\r\nimport { ConfirmOrder } from './ConfirmOrder';\r\nimport { getConfig } from '../../../helpers/getConfig';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceAuctionById } from '../../../helpers/getURL';\r\n\r\nexport const PaymentProcessGrid = (props) => {\r\n  //Variables Generales\r\n  const [visibleShopping, setVisibleShopping] = useState('hide');\r\n  const [visibleSend, setVisibleSend] = useState('hide');\r\n  const [visibleAddressBilling, setVisibleAddressBilling] = useState('hide');\r\n  const [visibleMail, setVisibleMail] = useState('hide');\r\n  const [visibleInvoice, setVisibleInvoice] = useState('hide');\r\n  const [visibleAddressShipping, setVisibleAddressShipping] = useState('hide');\r\n  const [visiblePayment, setVisiblePayment] = useState('hide');\r\n  const [visibleConfirmOrder, setVisibleConfirmOrder] = useState('hide');\r\n  const [lastStep, setLastStep] = useState(false);\r\n  const [rate, setRate] = useState(0);\r\n  const [originStep, setOrigenStep] = useState(0); //pantalla origen envio\r\n  const [originStep2, setOrigenStep2] = useState(0); //pantalla origen factura\r\n  const [hideBillPocket, setHideBillPocket] = useState(false);\r\n  const [hideActnet, setHideActnet] = useState(false);\r\n  const [hideMercadoPago, setHideMercadoPago] = useState(false);\r\n  const [idTypeAuction, setIdTypeAuction] = useState('');\r\n\r\n  //ShoppingCart\r\n  const [dataSubTotal, setDataSubTotal] = useState(0);\r\n  const [dataCount, setDataCount] = useState(0);\r\n  const [dataConsigna, setDataConsigna] = useState(false); //true = lotes plus, false = lotes gama (SAP)\r\n  let [dataInformation, setDataInformation] = useState([]);\r\n\r\n  const history = useHistory();\r\n  const detail = props.location.state ? props.location.state.detail : null;\r\n  const idAuction = props.location.state && props.location.state.detail.length > 0 ? props.location.state.detail[0].idSubasta : '';\r\n  const enableInvoice = props.location.state ? props.location.state.enableInvoice : null;\r\n\r\n  //OrderPanel\r\n  const [disabledBtnOrderPanel, setDisabledBtnOrderPanel] = useState(true);\r\n\r\n  \r\n  useEffect(() => {\r\n    if (!validSession()) {\r\n      history.push('/?home=true');\r\n    }\r\n    if (!detail) {\r\n      history.push('/perfil');\r\n    }\r\n    setVisibleShopping('show');\r\n  }, [history, detail]);\r\n\r\n  useEffect(() => {\r\n    const constants = JSON.parse(sessionStorage.getItem('constants'));\r\n    if (!constants || !constants.hideBillPocket) {\r\n      getConfig('constants.json').then((response) => {\r\n        if (response && response.hideBillPocket) {\r\n          setHideBillPocket(response.hideBillPocket);\r\n        }\r\n        if (response && response['hideActnet']) {\r\n          setHideActnet(response['hideActnet']);\r\n        }\r\n        if (response && response['hideMercadoPago']) {\r\n          setHideMercadoPago(response['hideMercadoPago']);\r\n        }\r\n      });\r\n    } else {\r\n      setHideBillPocket(constants.hideBillPocket);\r\n      setHideActnet(constants['hideActnet']);\r\n      setHideMercadoPago(constants['hideMercadoPago']);\r\n    }\r\n  }, [hideBillPocket]);\r\n\r\n  useEffect(() => {\r\n    const URL = ServiceAuctionById(idAuction);\r\n    const getData = () => {\r\n      GET(URL).then((data) => {\r\n        if (data === '401') {\r\n          getData();\r\n          return '';\r\n        }\r\n        if(data.idTypeAuction){\r\n          setIdTypeAuction(data.idTypeAuction);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, []);\r\n\r\n  const addAllCart = (check, consigna, consignaSAP, idElement) => {\r\n    console.log('addAllCart-onChange', check, consigna, consignaSAP, idElement);\r\n    const checkAll = document.getElementsByClassName('checkAll');\r\n    document.getElementById(idElement).checked = check;\r\n    setDataSubTotal(0);\r\n    setDataCount(0);\r\n    setDisabledBtnOrderPanel(false);\r\n    setDataConsigna(consigna);\r\n    let total = 0;\r\n    let count = 0;\r\n\r\n    for (let i = 0; i < checkAll.length; i++) {\r\n      checkAll[i].disabled = check;\r\n      if (checkAll[i].id !== idElement) {\r\n        checkAll[i].checked = false;\r\n      } else {\r\n        checkAll[i].disabled = false;\r\n      }\r\n    }\r\n\r\n    detail.forEach((element) => {\r\n      if (element.consigna === consigna && element.consignaSAP === consignaSAP) {\r\n        document.getElementById(element.idLote).checked = check;\r\n        document.getElementById(element.idLote).disabled = false;\r\n        if (check) {\r\n          total += element.precioSalida;\r\n          count++;\r\n        } else {\r\n          total -= element.precioSalida;\r\n          count--;\r\n        }\r\n      } else {\r\n        document.getElementById(element.idLote).checked = false;\r\n        document.getElementById(element.idLote).disabled = check;\r\n      }\r\n    });\r\n\r\n    if (total <= 0) {\r\n      total = 0;\r\n      count = 0;\r\n      setDisabledBtnOrderPanel(true);\r\n    }\r\n    setDataSubTotal(total);\r\n    setDataCount(count);\r\n  };\r\n\r\n  const addCart = (idLot, check, price, consigna, consignaSAP, idElement) => {\r\n    console.log('check individual', idLot, consigna, consignaSAP, idElement);\r\n\r\n    const checkAll = document.getElementsByClassName('checkAll');\r\n    const totalItems = detail.filter((x) => x.consigna === consigna && x.consignaSAP === consignaSAP).length;\r\n    let item = 0;\r\n    let total = dataSubTotal;\r\n    let count = dataCount;\r\n    setDisabledBtnOrderPanel(false);\r\n    setDataConsigna(consigna);\r\n    if (check) {\r\n      total += price;\r\n      count++;\r\n    } else {\r\n      total -= price;\r\n      count--;\r\n    }\r\n    if (count <= 0) {\r\n      setDisabledBtnOrderPanel(true);\r\n    }\r\n    setDataSubTotal(total);\r\n    setDataCount(count);\r\n\r\n    //Controla disabled de cada checkbox\r\n    detail.forEach((element) => {\r\n      const el = document.getElementById(element.idLote);\r\n      if (element.consigna === consigna && element.consignaSAP === consignaSAP) {\r\n        el.disabled = false;\r\n        if (el.checked) {\r\n          item++;\r\n        } else {\r\n          item = item > 0 ? item-- : 0;\r\n        }\r\n      } else {\r\n        el.disabled = true;\r\n      }\r\n      //ToDo: Validar si esta variable se controla con un useState o similar\r\n      if(count == 0){\r\n        el.disabled = false;\r\n      }\r\n    });\r\n\r\n    //Controla check / unchek de checkbox select all\r\n    for (let i = 0; i < checkAll.length; i++) {\r\n      //disabled\r\n      if (checkAll[i].id === idElement) {\r\n        checkAll[i].disabled = false;\r\n      } else {\r\n        checkAll[i].disabled = true;\r\n      }\r\n      //ToDo: Validar si esta variable se controla con un useState o similar\r\n      if(count == 0){\r\n        checkAll[i].disabled = false;\r\n      }\r\n\r\n      // checkall\r\n      if (item === totalItems && checkAll[i].id === idElement) {\r\n        checkAll[i].checked = true;\r\n      } else {\r\n        checkAll[i].checked = false;\r\n      }\r\n    }\r\n  };\r\n\r\n  const continueOrderPanel = (disabledBtn, step, data) => {\r\n    setVisibleShopping('hide');\r\n    setVisibleSend('hide');\r\n    setVisibleAddressBilling('hide');\r\n    setVisibleMail('hide');\r\n    setVisibleInvoice('hide');\r\n    setVisibleAddressShipping('hide');\r\n    setVisiblePayment('hide');\r\n    setVisibleConfirmOrder('hide');\r\n    setDisabledBtnOrderPanel(disabledBtn);\r\n\r\n    if (dataConsigna && (step === 5 || step === 6)) {\r\n      //lotes gama no tiene derecho a factura\r\n      data = {\r\n        ...data,\r\n        invoice: {\r\n          id: 2,\r\n          name: 'no',\r\n        },\r\n      };\r\n      step = 7;\r\n    }\r\n    //inhabilita la facturacion desde la tabla de paremetros del SPMLS\r\n    if (!enableInvoice && (step === 5 || step === 6)) {\r\n      step = 7;\r\n    }\r\n\r\n    if (step === 8 && data.payment && data.payment.name !== ''){\r\n      step = 8;\r\n    }else if(step === 8 && !dataInformation.payment){\r\n      setLastStep(false);\r\n      step = 7;\r\n    }\r\n\r\n    switch (step) {\r\n      case 1:\r\n        setVisibleShopping('show');\r\n        setLastStep(false)\r\n        break;\r\n      case 2:\r\n        setVisibleSend('show');\r\n        let selectItem = [];\r\n        detail.forEach((element) => {\r\n          let check = document.getElementById(element.idLote).checked;\r\n          if (check) {\r\n            selectItem.push(element);\r\n          }\r\n        });\r\n        const select = {\r\n          selectItem: selectItem,\r\n          allItem: detail,\r\n        };\r\n        deletePropertie('selectItem');\r\n        deletePropertie('allItem');\r\n        deletePropertie('AddressBilling');\r\n        deletePropertie('mail');\r\n        deletePropertie('addressMail');\r\n        assignInformation(select, 'send');\r\n        break;\r\n      case 3:\r\n        setVisibleAddressShipping('show');\r\n        assignInformation(data, 'addressShipping');\r\n        break;\r\n      case 4:\r\n        setVisibleMail('show');\r\n        assignInformation(data, 'mail');\r\n        break;\r\n      case 5:\r\n        setVisibleInvoice('show');\r\n        deletePropertie('addressShipping');\r\n        assignInformation(data, 'invoice');\r\n        break;\r\n      case 6:\r\n        setVisibleAddressBilling('show');\r\n        assignInformation(data, 'addressBilling');\r\n        break;\r\n      case 7:\r\n        setVisiblePayment('show');\r\n        assignInformation(data, 'payment');\r\n        break;\r\n      case 8:\r\n        setVisibleConfirmOrder('show');\r\n        assignInformation(data);\r\n        setLastStep(true);\r\n        setDisabledBtnOrderPanel(false);\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n  };\r\n\r\n  const assignInformation = (data, propertie) => {\r\n    if (propertie) {\r\n      deletePropertie(propertie);\r\n    }\r\n    data = {\r\n      ...data,\r\n      ...dataInformation,\r\n    };\r\n    setDataInformation(data);\r\n    if (data && data.mail) {\r\n      setRate(data.mail.rate);\r\n    } else {\r\n      setRate(0);\r\n    }\r\n  };\r\n\r\n  const deletePropertie = (name) => {\r\n    if (dataInformation && dataInformation[name]) {\r\n      delete dataInformation[name];\r\n    }\r\n  };\r\n\r\n  const setOrigen = (step) => {\r\n    setOrigenStep(step);\r\n  };\r\n\r\n  const setOrigen2 = (step) => {\r\n    setOrigenStep2(step);\r\n  };\r\n\r\n  return (\r\n    <div className=\"container-fluid container__shoppingCart\">\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-12 col-md-9 mb-4\">\r\n          <ShoppingCart\r\n            data={detail}\r\n            addCart={addCart}\r\n            addAllCart={addAllCart}\r\n            visible={visibleShopping}\r\n            eventButton={continueOrderPanel}\r\n            step={1}\r\n          />\r\n          <Send\r\n            visible={visibleSend}\r\n            eventButton={continueOrderPanel}\r\n            step={2}\r\n            lastStep={lastStep}\r\n            setOrigen={setOrigen}\r\n            setOrigen2={setOrigen2}\r\n            idTypeAuction={idTypeAuction}\r\n          />\r\n          <AddressShipping\r\n            visible={visibleAddressShipping}\r\n            eventButton={continueOrderPanel}\r\n            step={3}\r\n            lastStep={lastStep}\r\n            data={dataInformation}\r\n          />\r\n          <Mail\r\n            visible={visibleMail}\r\n            eventButton={continueOrderPanel}\r\n            step={4}\r\n            lastStep={lastStep}\r\n            data={dataInformation}\r\n            setOrigen={setOrigen}\r\n            setOrigen2={setOrigen2}\r\n            subTotal={dataSubTotal}\r\n            idTypeAuction={idTypeAuction}\r\n          />\r\n          <Invoice\r\n            visible={visibleInvoice}\r\n            eventButton={continueOrderPanel}\r\n            step={5}\r\n            lastStep={lastStep}\r\n            originStep={originStep}\r\n            setOrigen2={setOrigen2}\r\n          />\r\n          <AddressBilling \r\n            visible={visibleAddressBilling} \r\n            eventButton={continueOrderPanel} \r\n            step={6} \r\n            lastStep={lastStep} \r\n          />\r\n          <Payment\r\n            visible={visiblePayment}\r\n            eventButton={continueOrderPanel}\r\n            externStep={7}\r\n            lastStep={lastStep}\r\n            originStep2={originStep2}\r\n            hideBillPocket={hideBillPocket}\r\n            hideActnet={hideActnet}\r\n            hideMercadoPago={hideMercadoPago}\r\n          />\r\n          <ConfirmOrder\r\n            visible={visibleConfirmOrder}\r\n            eventButton={continueOrderPanel}\r\n            step={8}\r\n            data={dataInformation}\r\n            dataConsigna={dataConsigna}\r\n            enableInvoice={enableInvoice}\r\n          />\r\n        </div>\r\n        <div className=\"col-7 col-sm-6 col-md-3\">\r\n          <OrderPanel\r\n            count={dataCount}\r\n            subTotal={dataSubTotal}\r\n            eventButton={continueOrderPanel}\r\n            disabledBtn={disabledBtnOrderPanel}\r\n            send={rate}\r\n            data={dataInformation}\r\n            lastStep={lastStep}\r\n            enableInvoice={enableInvoice}\r\n          />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { OpenMessage } from '../../Utilities/General';\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceCompleteOrder } from '../../../helpers/getURL';\r\n\r\nexport const ReceivePay = () => {\r\n  const { search } = useLocation();\r\n  const [loading, setLoading] = useState('show');\r\n\r\n  useEffect(() => {\r\n    let userName = localStorage.getItem('userName');\r\n    userName = userName ? userName : '';\r\n\r\n    const URL = ServiceCompleteOrder();\r\n    const PARAMS = search + '&NameCustomer=' + userName;\r\n\r\n    const getData = () => {\r\n      GET(URL + PARAMS).then((data) => {\r\n        if (data === '401') {\r\n          getData();\r\n          return '';\r\n        }\r\n        if (data.successOrder) {\r\n          setTimeout(() => {\r\n            setLoading('hide');\r\n            const idOrder = new URLSearchParams(search).get('externalId');\r\n            window.open('/detalle-orden?id=' + idOrder, '_self');\r\n          }, 2000);\r\n          \r\n        } else {\r\n          setLoading('hide');\r\n          OpenMessage('error', data.orderMessage);\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, [search]);\r\n\r\n  return (\r\n    <div className=\"row container-fluid container__expire justify-content-center\">\r\n      <div id='loading2' className={'row container-back container-loading ' + loading }>\r\n          <div className='col-12 text-center'>\r\n            <img src='./resources/loading.gif' alt='loading...' width='15%' />\r\n          </div>\r\n        </div>\r\n      <div className=\"col-8 col-sm-6 col-lg-5 col-xxl-4 text-center\">\r\n        <label>Validando pago</label>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { formatCurrency } from '../../Utilities/General';\r\n\r\nexport const SummaryOrder = (props) => {\r\n  const [quantity, setQuantity] = useState(0);\r\n  const [subTotal, setSubtotal] = useState(0);\r\n  const [delivery, setDelivery] = useState(0);\r\n  const [total, setTotal] = useState(0);\r\n\r\n  const history = useHistory();\r\n\r\n  const openOrder = () => {\r\n    history.push('./perfil?opcion=5');\r\n  };\r\n\r\n  useEffect(() => {\r\n    const data = props.data;\r\n    if (data) {\r\n      setQuantity(data.quantity);\r\n      setSubtotal(data.subtotal);\r\n      setDelivery(data.deliveryPrice);\r\n      setTotal(data.total);\r\n    }\r\n  }, [props]);\r\n\r\n  return (\r\n    <div className=\"card\">\r\n      <div className=\"card-header text-center\">\r\n        <h3>Resumen de su pedido</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className=\"row mb-4\">\r\n          <div className=\"col-5\">\r\n            <h5 className=\"card-text text-end text-uppercase\">Cantidad</h5>\r\n          </div>\r\n          <div className=\"col-7\">\r\n            <h5 className=\"card-text text-end\">{quantity}</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-4\">\r\n          <div className=\"col-5\">\r\n            <h5 className=\"card-text text-end text-uppercase\">SubTotal</h5>\r\n          </div>\r\n          <div className=\"col-7\">\r\n            <h5 className=\"card-text text-end\">{formatCurrency(subTotal)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-4\">\r\n          <div className=\"col-5\">\r\n            <h5 className=\"card-text text-end text-uppercase\">Envío</h5>\r\n          </div>\r\n          <div className=\"col-7\">\r\n            <h5 className=\"card-text text-end\">{formatCurrency(delivery)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-4\">\r\n          <div className=\"col-5\">\r\n            <h5 className=\"card-text text-end text-uppercase\">Total</h5>\r\n          </div>\r\n          <div className=\"col-7\">\r\n            <h5 className=\"card-text text-end\">{formatCurrency(total)}</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2 mt-5\">\r\n          <div className=\"col-12 text-center\">\r\n            <button type=\"button\" className=\"btn btn-lg btn-outline-secondary\" onClick={(e) => openOrder()}>\r\n              Mis órdenes\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport { getImgDefault } from '../../../helpers/getConstants';\r\nimport { formatCurrency } from '../../Utilities/General';\r\n\r\nexport const OrderDetail = (props) => {\r\n  const [addressBilling, setAddressBilling] = useState('');\r\n  const [addressBillingTitle, setAddressBillingTitle] = useState('');\r\n  const [address, setAddress] = useState('');\r\n  const [delivery, setDelivery] = useState('');\r\n  const [lots, setLots] = useState([]);\r\n  const [payment, setPayment] = useState('Bill Pocket');\r\n  const [hideInvoice, setHideInvoice] = useState('hide');\r\n  const [hideDelivery, setHideDelivery] = useState('hide');\r\n  const [cart, setCart] = useState([]);\r\n\r\n  useEffect(() => {\r\n    const shoppingCart = JSON.parse(localStorage.getItem('cart'));\r\n    if (shoppingCart && shoppingCart.length > 0) {\r\n      setCart(shoppingCart);\r\n    }\r\n    if (props.addressBilling && props.addressBillingTitle && !props.consiga) {\r\n      setAddressBillingTitle(props.addressBillingTitle);\r\n      setAddressBilling(props.addressBilling);\r\n      setHideInvoice('');\r\n    }\r\n    if (!props.addressBilling) {\r\n      setHideInvoice('hide');\r\n    }\r\n    if (props.address) {\r\n      setAddress(props.address);\r\n    }\r\n    if (props.delivery) {\r\n      setDelivery(props.delivery);\r\n      setHideDelivery('');\r\n    }\r\n    if (props.lots) {\r\n      setLots(props.lots);\r\n    }\r\n    if (props.payment) {\r\n      setPayment(props.payment);\r\n    }\r\n  }, [props.addressBilling, props.address, props.lots, props.delivery, props.consiga, props.addressBillingTitle, props.payment]);\r\n\r\n  const deleteCart = (idLote) => {\r\n    let index = -1;\r\n    cart.filter((item, i) => {\r\n      if (item && item.IdLot === idLote) {\r\n        index = i;\r\n      }\r\n      return i;\r\n    });\r\n    if (index !== -1) {\r\n      let item = [];\r\n      delete cart[index];\r\n      localStorage.removeItem('cart');\r\n      for (let i = 0; i < cart.length; i++) {\r\n        if (cart[i]) {\r\n          item.push(cart[i]);\r\n        }\r\n      }\r\n      if (item.length > 0) {\r\n        localStorage.setItem('cart', JSON.stringify(item));\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div className=\"card\">\r\n      <div className=\"card-header text-center\">\r\n        <h3>Número de pedido</h3>\r\n      </div>\r\n      <div className=\"card-body\">\r\n        <div className={'row mb-2 ' + hideDelivery}>\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Método de envío</h5>\r\n          </div>\r\n        </div>\r\n        <div className={'row mb-5 ' + hideDelivery}>\r\n          <div className=\"col-8\">\r\n            <p>{delivery}</p>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Dirección de envío</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-5\">\r\n          <div className=\"col-8\">\r\n            <p>{address}</p>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Método de pago</h5>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-5\">\r\n          <div className=\"col-8\">\r\n            <p>{payment}</p>\r\n          </div>\r\n        </div>\r\n        <div className={'row mb-2 ' + hideInvoice}>\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Dirección de facturación</h5>\r\n          </div>\r\n        </div>\r\n        <div className={'row mb-5 ' + hideInvoice}>\r\n          <div className=\"col-8\">\r\n            <p>{addressBillingTitle}</p>\r\n            <p>{addressBilling}</p>\r\n          </div>\r\n        </div>\r\n        <div className=\"row mb-2\">\r\n          <div className=\"col-12\">\r\n            <h5 className=\"card-text card-title\">Materiales:</h5>\r\n          </div>\r\n        </div>\r\n\r\n        {lots.map((lot, i) => {\r\n          const img = lot.firstImageLote ? lot.firstImageLote : getImgDefault();\r\n          deleteCart(lot.idLote);\r\n          return (\r\n            <div key={i}>\r\n              <div className=\"mb-3 row inputs-form\">\r\n                <div className=\"col-12\">\r\n                  <div className=\"mb-3\">\r\n                    <div className=\"row g-0 align-items-center\">\r\n                      <div className=\"col-2\">\r\n                        <img src={img} className=\"img-fluid rounded-start\" alt={''} />\r\n                      </div>\r\n                      <div className=\"col-md-10\">\r\n                        <div className=\"card-body\">\r\n                          <div className=\"row\">\r\n                            <div className=\"col-3\">\r\n                              <p className=\"card-text\">{lot.nameLote}</p>\r\n                            </div>\r\n                            <div className=\"col-6\">\r\n                              <p className=\"card-text\">{lot.descriptionLote}</p>\r\n                            </div>\r\n                            <div className=\"col-3\">\r\n                              <small className=\"text-muted\">{formatCurrency(lot.priceLote)}</small>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        })}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { SummaryOrder } from './SummaryOrder';\r\nimport { OrderDetail } from './OrderDetail';\r\n\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceGetOrderById, ServiceInfoAddressShippingByCustomer, ServiceInfoAddressBillingByCustomer } from '../../../helpers/getURL';\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\n\r\nexport const OrderDetailGrid = (props) => {\r\n  const [data, setData] = useState();\r\n  const [delivery, setDelivery] = useState('');\r\n  const [billing, setBilling] = useState('');\r\n  const [billingTitle, setBillingTitle] = useState('');\r\n  const [address, setAddress] = useState('Entrega en oficina');\r\n  const [payment, setPayment] = useState('');\r\n  const [lots, setLots] = useState([]);\r\n  const [cardClass, setCardClass] = useState('hide');\r\n  const [consiga, setConsiga] = useState(false);\r\n  const { search } = useLocation();\r\n  const id = new URLSearchParams(search).get('id');\r\n  const idOrder = props.location.state ? props.location.state.idOrder : id;\r\n\r\n  useEffect(() => {\r\n    if (id) {\r\n      setCardClass('');\r\n    }\r\n    if (idOrder) {\r\n      const getData = () => {\r\n        const URL = ServiceGetOrderById(idOrder);\r\n        GET(URL).then((data) => {\r\n          if (data === '401') {\r\n            getData();\r\n            return '';\r\n          }\r\n          if (data) {\r\n            setData(data);\r\n            setDelivery(data.deliveryServiceName);\r\n            setConsiga(data.consignation);\r\n            setPayment(data.typePayment);\r\n\r\n            const GuidEmpty = getGuidEmpty();\r\n            if (data.idDeliveryAddress && data.idDeliveryAddress !== GuidEmpty) {\r\n              const URLAddressShipping = ServiceInfoAddressShippingByCustomer(data.idDeliveryAddress);\r\n              GET(URLAddressShipping).then((addressShipping) => {\r\n                if (addressShipping === '401') {\r\n                  getData();\r\n                  return '';\r\n                }\r\n                if (addressShipping && addressShipping.length > 0) {\r\n                  const address = addressShipping[0];\r\n                  const value = `${address.calle} No. Ext. ${address.numero} ${\r\n                    address.numeroInt !== '' ? `No. Int. ${address.numeroInt}` : ''\r\n                  }, ${address.colonia}, C.P. ${address.scp}, ${address.municipio}, ${address.estado}, ${address.idPais}`;\r\n                  setAddress(value);\r\n                }\r\n              });\r\n            }\r\n            if (data.idBillingClient !== GuidEmpty) {\r\n              const URLAddressBilling = ServiceInfoAddressBillingByCustomer(data.idBillingClient);\r\n              GET(URLAddressBilling).then((addressBilling) => {\r\n                if (addressBilling === '401') {\r\n                  getData();\r\n                  return '';\r\n                }\r\n                if (addressBilling && addressBilling.length > 0) {\r\n                  const address = addressBilling[0];\r\n                  const title = `${address.rfc}, ${address.razonSocial}`;\r\n                  const value = `${address.calle} No. Ext. ${address.numero} ${\r\n                    address.numeroInt !== '' ? `No. Int. ${address.numeroInt}` : ''\r\n                  }, ${address.colonia}, C.P. ${address.scp}, ${address.municipio}, ${address.estado}, ${address.idPais}`;\r\n                  setBilling(value);\r\n                  setBillingTitle(title);\r\n                }\r\n              });\r\n            }\r\n            if (data.idLotList && data.idLotList.length > 0) {\r\n              setLots(data.idLotList);\r\n            }\r\n          }\r\n        });\r\n      };\r\n      getData();\r\n    }\r\n  }, [idOrder, id]);\r\n\r\n  return (\r\n    <div className=\"container-fluid container__shoppingCart\">\r\n      <div className={'card mb-5 ' + cardClass}>\r\n        <div className=\"card-body\">\r\n          <div className=\"row justify-content-center\">\r\n            <div className=\"col-2 text-end\">\r\n              <i className=\"fas fa-cart-arrow-down\"></i>\r\n            </div>\r\n            <div className=\"col-10\">\r\n              <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                  <label className=\"title__thanks\">Gracias ha realizado su pedido</label>\r\n                </div>\r\n              </div>\r\n              <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                  <label className=\"subtile__thanks\">En breve recibirá un correo electrónico con la información de su pedido</label>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-12 col-md-9 mb-4\">\r\n          <OrderDetail\r\n            delivery={delivery}\r\n            address={address}\r\n            addressBilling={billing}\r\n            addressBillingTitle={billingTitle}\r\n            lots={lots}\r\n            consiga={consiga}\r\n            payment={payment}\r\n          />\r\n        </div>\r\n\r\n        <div className=\"col-7 col-sm-6 col-md-3\">\r\n          <SummaryOrder data={data} />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\n\r\nexport const Carousel = (props) => {\r\n  const [dataCarousel, setDataCarousel] = useState([]);\r\n  const { watchLot, carouselMovil, announcement } = props;\r\n  useEffect(() => {\r\n    if (props.dataCarousel && props.dataCarousel.length > 0) {\r\n      let carousel = props.dataCarousel;\r\n      setDataCarousel(carousel);\r\n      const index = carousel.findIndex((item) => item.statusSubasta.toUpperCase() === 'ACTUAL');\r\n      setTimeout(() => {\r\n        let container = document.getElementById('carousel-lots');\r\n        container.scrollLeft -= (index - 1) * 175;\r\n        if (carousel[1].statusSubasta.toUpperCase() === 'ACTUAL') {\r\n          container.scrollLeft += 30;\r\n        } else if (index > 1) {\r\n          container.scrollLeft += (index - 1) * 170;\r\n        }\r\n      }, 800);\r\n    }\r\n  }, [props.dataCarousel]);\r\n  const titleStatus = (status, order) => {\r\n    let title = '';\r\n    switch (status) {\r\n      case 'DISPONIBLE':\r\n      case 'ACTUAL':\r\n        title = `LOTE ${order}`;\r\n        break;\r\n      case 'GANADO':\r\n      case 'RETIRADO':\r\n        title = status;\r\n        break;\r\n      case 'ADJUDICADO':\r\n      case 'PERDIDO':\r\n      case 'PAGADO':\r\n        title = 'ADJUDICADO';\r\n        break;\r\n      default:\r\n        title = '';\r\n        break;\r\n    }\r\n    return title;\r\n  };\r\n\r\n  return (\r\n    <div className=\"row container__streaming--carousel\" id=\"carousel-lots\">\r\n      {dataCarousel.map((item, i) => {\r\n        let img = item.imagesList && item.imagesList[0] ? item.imagesList[0] : getImgDefault();\r\n        const title = titleStatus(item.statusSubasta.toUpperCase(), item.order);\r\n        let headerClass;\r\n        let borderClass;\r\n\r\n        switch (item.statusSubasta.toUpperCase()) {\r\n          case 'ADJUDICADO':\r\n          case 'PERDIDO':\r\n          case 'PAGADO':\r\n            headerClass = 'header__adjudge';\r\n            borderClass = 'orange__border';\r\n            break;\r\n          case 'GANADO':\r\n            headerClass = 'header__win';\r\n            borderClass = 'blue__border';\r\n            break;\r\n          case 'DISPONIBLE':\r\n            headerClass = 'card-header-next';\r\n            borderClass = 'gray__border';\r\n            break;\r\n          default:\r\n            headerClass = '';\r\n            borderClass = 'gray__border';\r\n            break;\r\n        }\r\n\r\n        if (item.statusSubasta.toUpperCase() === 'ACTUAL') {\r\n          return (\r\n            <div\r\n              className={`col-3 mt-4 container__streaming--carousel__item_now ${\r\n                i === dataCarousel.length - 1 && carouselMovil ? 'last-lot' : ''\r\n              }`}\r\n              key={i}\r\n            >\r\n              <div className=\"card card__next\" onClick={(e) => watchLot(item.idLot)}>\r\n                <div className=\"row header-now\">\r\n                  <h3 className=\"card-text text-center\">{announcement ? 'Preparando' : 'Ahora'}</h3>\r\n                </div>\r\n                <div className=\"row\">\r\n                  <div className={`${carouselMovil ? 'col-12' : 'col-4 ps-4'}`}>\r\n                    <img src={img} className=\"card-img-top img-now\" alt={item.name} width=\"75px\" height=\"75px\" />\r\n                  </div>\r\n                  <div className={`${carouselMovil ? 'col-12 container-titles' : 'col-8'}`}>\r\n                    <div className=\"card-body\">\r\n                      <p className={`text-center card__next--title fw-bold ${carouselMovil ? 'fs-5' : 'fs-4'} `}>{title}</p>\r\n                      <p\r\n                        data-bs-toggle=\"tooltip\"\r\n                        data-bs-placement=\"bottom\"\r\n                        title={item.description}\r\n                        className={`card-text text-center fw-bold desc-ellipsis ${carouselMovil ? 'fs-6' : 'fs-4'}`}\r\n                      >\r\n                        {item.description}\r\n                      </p>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        } else {\r\n          let favorite = '';\r\n          if (item.favorite === true) {\r\n            favorite = 'fas fa-star bookmark';\r\n          }\r\n          return (\r\n            <div className=\"col-1 mt-4 text-center container__streaming--carousel__item\" key={i}>\r\n              <div className=\"card card__carousel\" onClick={(e) => watchLot(item.idLot)}>\r\n                <div className={`card-header ${headerClass}`}>{title}</div>\r\n                <div className={`card-body ${borderClass}`}>\r\n                  <i className={favorite}></i>\r\n                  <img src={img} className=\"card-img-top\" alt={item.name} width=\"75px\" height=\"75px\" />\r\n                  {carouselMovil && (\r\n                    <div>\r\n                      <p className=\"card-text text-center card__next--title fw-bold fs-5\">{title}</p>\r\n                      <p\r\n                        data-bs-toggle=\"tooltip\"\r\n                        data-bs-placement=\"bottom\"\r\n                        title={item.description}\r\n                        className=\"card-text text-center fw-bold fs-6 desc-ellipsis\"\r\n                      >\r\n                        {item.description}\r\n                      </p>\r\n                    </div>\r\n                  )}\r\n                </div>\r\n              </div>\r\n            </div>\r\n          );\r\n        }\r\n      })}\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\r\n\r\n//import MiniPlayer from './MiniPlayer/MiniPlayer';\r\n//import { POSITION } from './MiniPlayer/config';\r\n\r\nimport { convertToTime, formatCurrency, OpenMessage, OpenOfferSuccess, OpenWaitNextAuction, OpenDeclineClient  } from '../Utilities/General';\r\nimport { ServiceConnectionSignalr, ServiceGetCurrentBid, ServiceMakeBids, ServiceBidsStreaming } from '../../helpers/getURL';\r\nimport { ConnectionSignalr, GET } from '../../helpers/APIServices';\r\nimport {\r\n  getAvailableLot,\r\n  //getAwardLot,\r\n  //getRetiredLot,\r\n  getStreamPlayBackUrlQA,\r\n  //getStreamPlayBackUrlUAT,\r\n  getUserRejectedStatus,\r\n} from '../../helpers/getConstants';\r\n\r\nconst STREAM_PLAYBACK_URL = getStreamPlayBackUrlQA();\r\n// const STREAM_PLAYBACK_URL = getStreamPlayBackUrlUAT();\r\n\r\nexport const Video = (props) => {\r\n  const [mobile, setMobile] = useState([]);\r\n  const dataContent = JSON.parse(localStorage.getItem('dataContent'));\r\n  const IdAuction = props.IdAuction;\r\n  const IdLot = props.IdLot;\r\n  const IdCustomer = props.IdCustomer;\r\n  const {\r\n    updateCarousel,\r\n    update,\r\n    setUpdate,\r\n    updateNotice,\r\n    streaming,\r\n    streamingText,\r\n    annoucement,\r\n    dataCarousel,\r\n    statusCustomer = '',\r\n    streamingFinish,\r\n  } = props;\r\n  let pallet = 0;\r\n  const [connection, setConnection] = useState(null);\r\n  const [offer, setOffer] = useState(false);\r\n  const [adviceOffer, setAdviceOffer] = useState('');\r\n  const [bid, setBid] = useState([]);\r\n  const [confirm, setConfirm] = useState(false);\r\n  const [nextLot, setNextLot] = useState(false);\r\n  const [waitingStreaming, setWaitingStreaming] = useState(false);\r\n  const [waitingText, setWaitingText] = useState('');\r\n  const [lastLot, setLastLot] = useState(false);\r\n  const [currentBid, setCurrentBid] = useState({\r\n    oldPrice: 0.0,\r\n    newPrice: 0.0,\r\n    increment: 0.0,\r\n  });\r\n  const statusRejected = getUserRejectedStatus();\r\n  const SIGNALR = ServiceConnectionSignalr();\r\n  const URLMakeBids = ServiceMakeBids();\r\n  const URLGetCurrentBid = ServiceGetCurrentBid();\r\n  let URLBids = ServiceBidsStreaming();\r\n  const latestBid = useRef(null);\r\n  const token = localStorage.getItem('token');\r\n  const available = getAvailableLot();\r\n  latestBid.current = bid;\r\n  if (dataContent && dataContent.registeredAuctions.length > 0) {\r\n    dataContent.registeredAuctions.map((item) => {\r\n      if (item.idAuction === IdAuction) {\r\n        pallet = item.pallet;\r\n      }\r\n      return 0;\r\n    });\r\n  }\r\n\r\n  useLayoutEffect(() => {\r\n    const handleResize = () => {\r\n      setMobile(window.innerWidth);\r\n    };\r\n    window.addEventListener('resize', handleResize);\r\n    handleResize();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (streamingFinish) {\r\n      setWaitingStreaming(true);\r\n      setWaitingText('Espera nuestra próxima subasta');\r\n      setTimeout(() => {\r\n        OpenWaitNextAuction();\r\n      }, 800);\r\n    }\r\n    setWaitingStreaming(streaming);\r\n    setWaitingText(streamingText);\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    startConnection();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (currentBid.newPrice === 0 && IdLot) {\r\n      getCurrentBid();\r\n    }\r\n    if (IdLot && bid.length === 0) {\r\n      getBids();\r\n    }\r\n    if (update) {\r\n      getCurrentBid();\r\n      setUpdate(false);\r\n      setNextLot(false);\r\n    }\r\n    const lastLotStatus = dataCarousel.length > 0 ? dataCarousel[dataCarousel.length - 1].idStatus : '';\r\n    const lastLotStatusSubasta = dataCarousel.length > 0 ? dataCarousel[dataCarousel.length - 1].statusSubasta : '';\r\n    if (lastLotStatus !== available && lastLotStatusSubasta === 'Actual') {\r\n      setLastLot(true);\r\n      setWaitingText('Espera nuestra próxima subasta');\r\n    }\r\n    setNextLot(false);\r\n  }, [props.IdLot]);\r\n\r\n  useEffect(() => {\r\n    getCurrentBid();\r\n  }, [update]);\r\n\r\n  useEffect(() => {\r\n    if (connection) {\r\n      connection\r\n        .start()\r\n        .then((result) => {\r\n          registerToAuctionLot(IdAuction); \r\n          connection.on('ReceiveMessage', (message) => {\r\n            onReceiveNotification(message);\r\n          });\r\n        })\r\n        .catch(function (err) {\r\n          return console.error(err.toString());\r\n        });\r\n      connection.onclose(() => {\r\n        onClose();\r\n      });\r\n      connection.onreconnecting((error) => {\r\n        openToastNotification('toastStartConnect');\r\n      });\r\n      connection.onreconnected((connectionId) => {\r\n        openToastNotification('toastConnectionStablished');\r\n        onReload();\r\n      });\r\n    }\r\n  }, [connection]);\r\n\r\n  const openToastNotification = (id) => {\r\n    var x = document.getElementById(id);\r\n    x.className = 'show';\r\n    setTimeout(() => {\r\n      x.className = x.className.replace('show', '');\r\n    }, 6000);\r\n  };\r\n\r\n  const startConnection = () => {\r\n    const connect = ConnectionSignalr(SIGNALR);\r\n    if (connect) {\r\n      setConnection(connect);\r\n    }\r\n  };\r\n\r\n  const onClose = () => {\r\n    openToastNotification('toastTryingConnect');\r\n    startConnection();\r\n  };\r\n\r\n  const getBids = () => {\r\n    const params = '?IdAuction=' + IdAuction + '&IdLot=' + IdLot;\r\n    URLBids += params;\r\n    if (IdAuction && IdLot) {\r\n      GET(URLBids).then((data) => {\r\n        if (data && Array.isArray(data)) {\r\n          setBid(data);\r\n        }\r\n      });\r\n    }\r\n  };\r\n\r\n  const adviceWin = (idUser, message) => {\r\n    if (idUser === IdCustomer) {\r\n      if (message) {\r\n        const text = `<i class=\"fas fa-trophy win-trophy\"></i> <h3>¡${message}!</h3>`;\r\n        OpenOfferSuccess(text, false);\r\n        const backdrops = document.getElementsByClassName('modal-backdrop fade').length - 1;\r\n        for (let i = 0; i < backdrops; i++) {\r\n          document.getElementsByClassName('modal-backdrop fade')[i].remove();\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  const onReload = () => {\r\n    setOffer(false);\r\n    updateCarousel();\r\n  };\r\n\r\n  const onReceiveNotification = ({\r\n    actionCode,\r\n    timestamp,\r\n    bidAmount,\r\n    userPallette,\r\n    idUser,\r\n    message,\r\n    onBidCancelled = {},\r\n    counterOfferMessage = null,\r\n    increment,\r\n    newAmount,\r\n    idBid,\r\n  }) => {\r\n    switch (actionCode) {\r\n      case 0:\r\n        updateNotice(message);\r\n        break;\r\n      case 1:\r\n        getCurrentBid();\r\n        break;\r\n      case 2:\r\n        setNextLot(true);\r\n        setBid([]);\r\n        updateCarousel();\r\n        adviceWin(idUser, message);\r\n        break;\r\n      case 3:\r\n        insertBid(userPallette, timestamp, bidAmount, counterOfferMessage, increment, bidAmount, newAmount, idUser, idBid);\r\n        break;\r\n      case 4:\r\n        if (onBidCancelled && onBidCancelled.bidId) {\r\n          let bids = latestBid.current;\r\n          const newBids = bids.filter((bid) => bid.idBid !== onBidCancelled.bidId);\r\n          setBid(newBids);\r\n        }\r\n        if (onBidCancelled && onBidCancelled.clientId === IdCustomer) {\r\n          const text = `<h3>¡SU OFERTA SE HA CANCELADO!</h3>`;\r\n          OpenOfferSuccess(text, false);\r\n        }\r\n        onReload(actionCode);\r\n        break;\r\n      case 7:\r\n        getCurrentBid();\r\n        setWaitingStreaming(false);\r\n        break;\r\n      case 8:\r\n        setWaitingStreaming(true);\r\n        setWaitingText('Por favor espere, la transmisión continuará en breve');\r\n        break;\r\n      case 9:\r\n        setWaitingStreaming(true);\r\n        setWaitingText('Espera nuestra próxima subasta');\r\n        setTimeout(() => {\r\n          OpenWaitNextAuction();\r\n        }, 800);\r\n        break;\r\n      case 13:\r\n        setLastLot(true);\r\n        setWaitingText('Espera nuestra próxima subasta');\r\n        break;\r\n\r\n      case 14:\r\n        //agregar validacion para el id usuario\r\n        if (idUser === IdCustomer)\r\n        {\r\n          OpenDeclineClient();\r\n        }\r\n        break;\r\n      default:\r\n        getCurrentBid();\r\n        setWaitingStreaming(false);\r\n        break;\r\n    }\r\n  };\r\n\r\n  const insertBid = (paleta, hora, oferta, counterOfferMessage, incremento, actual, ofertar, idUser, idPuja) => {\r\n    let bids = latestBid.current;\r\n    if (paleta) {\r\n      if (counterOfferMessage) {\r\n        const { timestamp, bidAmount, userPallette, newAmount, increment, idBid } = counterOfferMessage;\r\n        const lastBid = {\r\n          hora: timestamp,\r\n          oferta: bidAmount,\r\n          paleta: userPallette,\r\n          idBid,\r\n        };\r\n        bids = [lastBid, ...bids];\r\n        setCurrentBid({\r\n          idUser: idUser,\r\n          oldPrice: bidAmount,\r\n          newPrice: newAmount,\r\n          increment: increment,\r\n        });\r\n      }\r\n      const newBid = {\r\n        hora,\r\n        oferta,\r\n        paleta,\r\n        idBid: idPuja,\r\n      };\r\n      bids = [newBid, ...bids];\r\n      setBid(bids);\r\n      setAdviceOffer('');\r\n      if (idUser === IdCustomer) {\r\n        setAdviceOffer('Usted está ganando');\r\n      }\r\n      setCurrentBid({\r\n        idUser: idUser,\r\n        oldPrice: actual,\r\n        newPrice: ofertar,\r\n        increment: incremento,\r\n      });\r\n    } else {\r\n      updateCarousel();\r\n    }\r\n  };\r\n\r\n  const registerToAuctionLot = async (IdAuction) => {\r\n    if (connection && connection.connectionStarted) {\r\n      connection.send('RegisterToAuctionLot', IdAuction);\r\n    }\r\n  };\r\n\r\n  const getCurrentBid = async () => {\r\n    if (IdLot) {\r\n      const json = {\r\n        IdAuction,\r\n        IdLot: IdLot,\r\n      };\r\n\r\n      let jsonContent = JSON.stringify(json);\r\n      try {\r\n        await fetch(URLGetCurrentBid, {\r\n          method: 'POST',\r\n          body: jsonContent,\r\n          headers: {\r\n            'Content-Type': 'application/json',\r\n            'Access-Control-Allow-Origin': '*',\r\n            Authorization: 'Bearer ' + token,\r\n          },\r\n        })\r\n          .then((response) => response.json())\r\n          .then((data) => {\r\n            if (data.idUser === IdCustomer) {\r\n              setAdviceOffer('Usted está ganando');\r\n            } else {\r\n              setAdviceOffer('');\r\n            }\r\n            setCurrentBid(data);\r\n          });\r\n      } catch (e) {\r\n        console.log('Failed to get current bid.', e);\r\n      }\r\n    }\r\n  };\r\n\r\n  const confirmOffert = async (user, amount, auction) => {\r\n    setConfirm(true);\r\n    const objMessage = {\r\n      IdAuction: auction,\r\n      IdCustomer: user,\r\n      Amount: amount,\r\n      IdLot,\r\n    };\r\n\r\n    let jsonMessage = JSON.stringify(objMessage);\r\n    try {\r\n      await fetch(URLMakeBids, {\r\n        method: 'POST',\r\n        body: jsonMessage,\r\n        headers: {\r\n          'Content-Type': 'application/json',\r\n          'Access-Control-Allow-Origin': '*',\r\n          Authorization: 'Bearer ' + token,\r\n        },\r\n      })\r\n        .then((response) => response.json())\r\n        .then((data) => {\r\n          if (!data.bidSuccess) {\r\n            setAdviceOffer('HAY UNA PUJA MÁS ALTA QUE LA DE USTED');\r\n          }\r\n          setOffer(false);\r\n          setConfirm(false);\r\n        });\r\n    } catch (e) {\r\n      console.log('Sending message failed.', e);\r\n    }\r\n  };\r\n\r\n  const sendBid = (e) => {\r\n    if (statusCustomer === statusRejected) {\r\n      OpenMessage('warning', 'Su cuenta se encuentra bloqueada, favor de contactarnos.');\r\n    } else {\r\n      e.preventDefault();\r\n      const amount = currentBid.newPrice;\r\n      const isUserProvided = IdCustomer;\r\n      const isLoteProvided = IdLot;\r\n      const isAmountProvided = amount;\r\n\r\n      if (isUserProvided && isAmountProvided && isLoteProvided && connection && connection.connectionStarted) {\r\n        confirmOffert(IdCustomer, amount, IdAuction);\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div className=\"container__video\">\r\n      {waitingStreaming || lastLot ? (\r\n        <div>\r\n          <h1 className=\"text-center fw-5 pt-5 text-uppercase fw-bold\">{waitingText}</h1>\r\n        </div>\r\n      ) : (\r\n        <div className=\"row justify-content-center\">\r\n          {nextLot || annoucement ? (\r\n            <div className=\"col\">\r\n              <h1 className=\"text-center fw-5 pt-5 text-uppercase fw-bold\">Preparando siguiente lote...</h1>\r\n            </div>\r\n          ) : (\r\n            <div>\r\n              <div className=\"grid-video\">\r\n                <div className=\"col-video1\">\r\n                  <div className=\"grid-video\">\r\n                    <div className=\"col-offer1\">\r\n                      <h3 className=\"fw-bold\">Oferta actual:</h3>\r\n                    </div>\r\n                    <div className=\"col-offer2\">\r\n                      <label className=\"container__video--offer fw-bold\">{formatCurrency(currentBid.oldPrice)}</label>\r\n                    </div>\r\n                    <div className=\"col-offer3\">\r\n                      <h5>Incremento de oferta:</h5>\r\n                    </div>\r\n                    <div className=\"col-offer4\">\r\n                      <label className=\"container__video--rise\">{formatCurrency(currentBid.increment)}</label>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n                <div className=\"col-video2\">\r\n                  <div className=\"row\">\r\n                    <div className=\"col-12 text-center\">\r\n                      {confirm ? (\r\n                        <button className=\"btn btn-outline-danger btn-lg btn-lot\" disabled>\r\n                          <span className=\"spinner-border spinner-border-smn fs-2\" role=\"status\" aria-hidden=\"true\"></span>\r\n                          <span> Ofertando...</span>\r\n                        </button>\r\n                      ) : (\r\n                        <button\r\n                          id=\"btnOffer\"\r\n                          className=\"btn btn-outline-danger btn-lg btn-confirm\"\r\n                          disabled={currentBid.idUser === IdCustomer ? true : false}\r\n                          onClick={(e) =>\r\n                            offer ? sendBid(e) : [setOffer(true), setAdviceOffer('Al ofertar usted acepta pagar el precio indicado')]\r\n                          }\r\n                        >\r\n                          {offer ? (\r\n                            <span>\r\n                              Confirmar <span>oferta:</span>\r\n                            </span>\r\n                          ) : (\r\n                            'Ofertar: '\r\n                          )}\r\n                          <span> {formatCurrency(currentBid.newPrice)}</span>\r\n                        </button>\r\n                      )}\r\n                    </div>\r\n                  </div>\r\n                  <div className=\"row\">\r\n                    <div className=\"col-12 text-center\">\r\n                      <label className=\"container__video--warning\">{adviceOffer}</label>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          )}\r\n        </div>\r\n      )}\r\n      <div className=\"row justify-content-center\">\r\n        <div className=\"col-12 text-center\">\r\n          <div className=\"videoStreaming\">\r\n            {waitingStreaming && !nextLot && mobile > 992 ? (\r\n              <i className=\"fab fa-youtube icon-youtube\"></i>\r\n            ) : (\r\n              <div>\r\n                <iframe\r\n                  id=\"videoStreaming\"\r\n                  name=\"videoStreaming\"\r\n                  title=\"videoStreaming\"\r\n                  width=\"100%\"\r\n                  height=\"315\"\r\n                  src={STREAM_PLAYBACK_URL}\r\n                  frameBorder=\"0\"\r\n                  allowFullScreen\r\n                  allow=\"autoplay\"\r\n                />\r\n                <h4>\r\n                  Para iniciar la transmisión de nuestra subasta,\r\n                  <br /> favor de darle play <i className=\"far fa-hand-point-right\"></i> <i className=\"far fa-play-circle\"></i>{' '}\r\n                  <b>...¡Bienvenido!</b>\r\n                </h4>\r\n              </div>\r\n            )}\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div className=\"row container\">\r\n        <div className=\"col-1 text-center border__Palet--title\">\r\n          <i className=\"fas fa-circle\"></i>\r\n        </div>\r\n        <div className=\"col-11 border__Palet--title\">\r\n          <span>Paleta:</span>\r\n          <span className=\"numberPalet\">{pallet}</span>\r\n        </div>\r\n      </div>\r\n      <div className=\"row container\">\r\n        {bid.length > 0 && (\r\n          <div className=\"col-12 bids-scroll\">\r\n            <table className=\"table table-striped\">\r\n              <tbody>\r\n                {bid.map((item, i) => {\r\n                  return (\r\n                    <tr key={i}>\r\n                      <td>\r\n                        Paleta <strong className=\"fw-bold\">{item.paleta}</strong> ofertó\r\n                      </td>\r\n                      <td>\r\n                        <strong className=\"fw-bold\">{formatCurrency(item.oferta)}</strong>\r\n                      </td>\r\n                      <td>{convertToTime(item.hora)}</td>\r\n                    </tr>\r\n                  );\r\n                })}\r\n              </tbody>\r\n            </table>\r\n          </div>\r\n        )}\r\n      </div>\r\n      <div className=\"tryingConnect\" id=\"toastTryingConnect\">\r\n        <div className=\"progress bar-width\">\r\n          <div\r\n            className=\"progress-bar progress-bar-striped bg-danger toast-error\"\r\n            role=\"progressbar\"\r\n            aria-valuenow=\"100\"\r\n            aria-valuemin=\"0\"\r\n            aria-valuemax=\"100\"\r\n          ></div>\r\n        </div>\r\n        <h2>La conexión se perdió</h2>\r\n        <br />\r\n        <h2>Intentando Reconectar...</h2>\r\n      </div>\r\n      <div className=\"connectionStablished toast-error\" id=\"toastConnectionStablished\">\r\n        <div className=\"progress bar-width\">\r\n          <div\r\n            className=\"progress-bar progress-bar-striped bg-success toast-error\"\r\n            role=\"progressbar\"\r\n            aria-valuenow=\"100\"\r\n            aria-valuemin=\"0\"\r\n            aria-valuemax=\"100\"\r\n          ></div>\r\n        </div>\r\n        <h2>¡Conexión restablecida!.</h2>\r\n        <br />\r\n        <h2>El sistema se actualizará automáticamente.</h2>\r\n      </div>\r\n      <div className=\"startConnect tryingConnect toast-error\" id=\"toastStartConnect\">\r\n        <div className=\"progress bar-width\">\r\n          <div\r\n            className=\"progress-bar progress-bar-striped bg-danger toast-error\"\r\n            role=\"progressbar\"\r\n            aria-valuenow=\"100\"\r\n            aria-valuemin=\"0\"\r\n            aria-valuemax=\"100\"\r\n          ></div>\r\n        </div>\r\n        <h2>La conexión se perdió.</h2>\r\n        <br />\r\n        <h2>Inicia proceso de reconexión.</h2>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\n//Servicios\r\nimport { ServiceAwardsStreaming } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { getImgDefault } from '../../helpers/getConstants';\r\nimport { PaginationCatalog } from '../Menu/PaginationCatalog';\r\n\r\nexport const Information = (props) => {\r\n  const [dataAwards, setDataAwards] = useState([]);\r\n  const [pages, setPages] = useState(0);\r\n  const [maxReg, setMaxReg] = useState(10);\r\n  const [currentPage, setCurrentPage] = useState(1);\r\n  const [perPageOptions] = useState([\r\n    { value: 1 },\r\n    { value: 10 },\r\n    { value: 20 },\r\n    { value: 30 },\r\n    { value: 50 },\r\n  ]);\r\n  const {\r\n    CurrentLot,\r\n    idCurrentLot,\r\n    watchLot,\r\n    displayActualLot,\r\n    displayAwards,\r\n    carouselMovil,\r\n    announcement,\r\n  } = props;\r\n  const imgLot =\r\n    CurrentLot.imagesList && CurrentLot.imagesList.length > 0\r\n      ? CurrentLot.imagesList[0]\r\n      : getImgDefault();\r\n  const viewfavorite = CurrentLot.favorite === true ? '' : 'hide';\r\n  const URLAwards = ServiceAwardsStreaming();\r\n\r\n  useEffect(() => {\r\n    getAwards(1, 10);\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (props.update) {\r\n      getAwards(1, 10);\r\n    }\r\n  }, [props.update]);\r\n  const getAwards = (Pagina, TamanioPagina) => {\r\n    let url = new URL(URLAwards);\r\n    let params = {\r\n      IdAuction: props.IdAuction,\r\n      IdCustomer: props.IdCustomer,\r\n      Pagina,\r\n      TamanioPagina,\r\n    };\r\n\r\n    Object.keys(params).forEach((key) => {\r\n      if (!params[key]) {\r\n        delete params[key];\r\n      }\r\n    });\r\n    Object.keys(params).forEach((key) => {\r\n      url.searchParams.append(key, params[key]);\r\n    });\r\n    GET(url).then((data) => {\r\n      if (data) {\r\n        const numberPages = Math.ceil(data[0].totalRecords / TamanioPagina);\r\n        setDataAwards(data);\r\n        setPages(numberPages);\r\n        props.setUpdate(false);\r\n      } else {\r\n        setDataAwards([]);\r\n        setPages(0);\r\n        props.setUpdate(false);\r\n      }\r\n    });\r\n  };\r\n  const nextPage = (pageNumber) => {\r\n    setCurrentPage(pageNumber);\r\n    getAwards(pageNumber, maxReg);\r\n  };\r\n  const onItemsPerPage = (value) => {\r\n    getAwards(1, value);\r\n  };\r\n  const tabActive = (event) => {\r\n    const elements = document.querySelectorAll('#tabs_information > li');\r\n    const id = 'li_' + event.id;\r\n    for (let element of elements) {\r\n      if (id === element.id) {\r\n        element.classList.add('active');\r\n      } else {\r\n        element.classList.remove('active');\r\n      }\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div\r\n      className={`container__information ${\r\n        !displayActualLot && !displayAwards ? 'no-border' : ''\r\n      }`}\r\n    >\r\n      {!carouselMovil && (\r\n        <div className='row'>\r\n          <div className='col-12'>\r\n            <ul\r\n              id='tabs_information'\r\n              className='nav nav-tabs nav-fill'\r\n              role='tablist'\r\n            >\r\n              <li\r\n                id='li_CLot'\r\n                className='nav-item active'\r\n                role='presentation'\r\n                onClick={(e) => tabActive(e.target)}\r\n              >\r\n                <a\r\n                  id='CLot'\r\n                  className='nav-link active fw-bold'\r\n                  aria-current='page'\r\n                  href='#CurrentLot'\r\n                  data-mdb-toggle='tab'\r\n                  role='tab'\r\n                  aria-controls='CurrentLot'\r\n                  aria-selected='true'\r\n                >\r\n                  {CurrentLot.anuncio ? 'Anuncio' : 'Lote Actual'}\r\n                </a>\r\n              </li>\r\n              <li\r\n                id='li_CAwards'\r\n                className='nav-item'\r\n                role='presentation'\r\n                onClick={(e) => tabActive(e.target)}\r\n              >\r\n                <a\r\n                  id='CAwards'\r\n                  className='nav-link fw-bold'\r\n                  href='#CurrentAwards'\r\n                  data-mdb-toggle='tab'\r\n                  role='tab'\r\n                  aria-controls='CurrentAwards'\r\n                  aria-selected='false'\r\n                >\r\n                  Adjudicaciones\r\n                </a>\r\n              </li>\r\n            </ul>\r\n          </div>\r\n        </div>\r\n      )}\r\n\r\n      {/* CONTENIDO */}\r\n\r\n      <div className='tab-content'>\r\n        {CurrentLot && (\r\n          <div\r\n            className={`tab-pane fade ${displayActualLot ? 'show active' : ''}`}\r\n            id='CurrentLot'\r\n            role='tabpanel'\r\n            aria-labelledby='CLot'\r\n          >\r\n            <div className='container-fluid container__CurrentLot'>\r\n              {!CurrentLot.anuncio && (\r\n                <div className='row'>\r\n                  <div className='col-1'>\r\n                    <i\r\n                      className={\r\n                        'fas fa-star bookmark-CurrentLot ' + viewfavorite\r\n                      }\r\n                    ></i>\r\n                  </div>\r\n                  <div className='col-11'>\r\n                    <label>\r\n                      Lote &nbsp;{' '}\r\n                      <span className='fw-bold'>{CurrentLot.order}</span>\r\n                    </label>\r\n                  </div>\r\n                </div>\r\n              )}\r\n              <div className='row'>\r\n                <div className='col-12'>\r\n                  <label className='fw-bold'>{CurrentLot.name}</label>\r\n                </div>\r\n              </div>\r\n              <div className='row'>\r\n                <div className='col-12'>\r\n                  <div className='card'>\r\n                    <img\r\n                      src={imgLot}\r\n                      className='card-img-top img-fluid w-100'\r\n                      alt={CurrentLot.name}\r\n                    />\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className='row'>\r\n                <div className='col-12'>\r\n                  <label className='fw-bold'>Descripción:</label>\r\n                </div>\r\n              </div>\r\n              <div className='row'>\r\n                <div className='col-12'>\r\n                  <p>{CurrentLot.description}</p>\r\n                </div>\r\n              </div>\r\n              {CurrentLot.idLot !== idCurrentLot && (\r\n                <div className='row mt-5'>\r\n                  <div className='col-auto'>\r\n                    <button\r\n                      className='btn btn-outline-danger fs-4'\r\n                      onClick={(e) => watchLot(idCurrentLot)}\r\n                    >\r\n                      <i className='fas fa-eye'></i>\r\n                      <span>\r\n                        {' '}\r\n                        Ver {announcement ? 'anuncio' : 'lote actual'}\r\n                      </span>\r\n                    </button>\r\n                  </div>\r\n                </div>\r\n              )}\r\n            </div>\r\n          </div>\r\n        )}\r\n        <div\r\n          className={`tab-pane fade ${displayAwards ? 'show active' : ''}`}\r\n          id='CurrentAwards'\r\n          role='tabpanel'\r\n          aria-labelledby='CAwards'\r\n        >\r\n          <div className='container-fluid container__awards'>\r\n            <div className='row'>\r\n              <div className='col-md-12 '>\r\n                <div className='row'>\r\n                  <div className='col-4 text-end'>\r\n                    <h5 className='show-perpag '>Mostrar</h5>\r\n                  </div>\r\n                  <div className='col-3 text-center'>\r\n                    <h5 className='dropdown shadow-0 drop-perPage'>\r\n                      <a\r\n                        href='#'\r\n                        className='btn btn-link dropdown-toggle items-per-page'\r\n                        role='button'\r\n                        data-mdb-toggle='dropdown'\r\n                        aria-expanded='false'\r\n                      >\r\n                        {maxReg}\r\n                      </a>\r\n                      <ul\r\n                        className='dropdown-menu'\r\n                        aria-labelledby='dropdownMenuLink'\r\n                      >\r\n                        {perPageOptions.map((item) => {\r\n                          return (\r\n                            <li key={item.value}>\r\n                              <a\r\n                                href='#'\r\n                                className='dropdown-item drop-items'\r\n                                onClick={(e) => {\r\n                                  setMaxReg(item.value);\r\n                                  setCurrentPage(1);\r\n                                  onItemsPerPage(item.value);\r\n                                }}\r\n                              >\r\n                                {item.value}\r\n                              </a>\r\n                            </li>\r\n                          );\r\n                        })}\r\n                      </ul>\r\n                    </h5>{' '}\r\n                  </div>\r\n                  <div className='col-5'>\r\n                    <h5 className='show-perpag'>resultados por página</h5>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div className='col-12 tableScroll'>\r\n                <table className='table table-striped'>\r\n                  <thead>\r\n                    <tr>\r\n                      <th>No. Lote</th>\r\n                      <th>Descripción</th>\r\n                      <th>Estatus</th>\r\n                    </tr>\r\n                  </thead>\r\n                  <tbody>\r\n                    {dataAwards.map((item, i) => {\r\n                      let hidden = item.favorite === false ? 'hidden' : '';\r\n                      let colorStatus;\r\n                      switch (item.statusSubasta.toUpperCase()) {\r\n                        case 'GANADO':\r\n                          colorStatus = 'statusAwardsWin';\r\n                          break;\r\n                        case 'PERDIDO':\r\n                          colorStatus = 'statusAwardsLost';\r\n                          break;\r\n                        default:\r\n                          colorStatus = '';\r\n                          break;\r\n                      }\r\n                      return (\r\n                        <tr key={i}>\r\n                          <td>\r\n                            <i\r\n                              className={\r\n                                'fas fa-star bookmark-CurrentAwards ' + hidden\r\n                              }\r\n                            ></i>{' '}\r\n                            {item.order}\r\n                          </td>\r\n                          <td>{item.name}</td>\r\n                          <td className={colorStatus}>{item.statusSubasta}</td>\r\n                        </tr>\r\n                      );\r\n                    })}\r\n                  </tbody>\r\n                </table>\r\n              </div>\r\n              <div className='row justify-content-center pagination-section mt-5'>\r\n                <div className='col-auto'>\r\n                  <PaginationCatalog\r\n                    pages={pages}\r\n                    nextPage={nextPage}\r\n                    currentPage={currentPage}\r\n                  />\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\n\r\nexport const MenuStreaming = ({\r\n  displayVideo,\r\n  displayActualLot,\r\n  displayAwards,\r\n  setDisplayActualLot,\r\n  setDisplayAwards,\r\n  position,\r\n}) => {\r\n  return (\r\n    <div\r\n      className={`row mb-5 menu-stream-movil ${\r\n        position === 'bottom' ? 'menu-bottom' : ''\r\n      }`}\r\n    >\r\n      <div className='col-4 text-center'>\r\n        <label\r\n          className={`text-uppercase text_icons ${\r\n            displayVideo ? 'displayed' : ''\r\n          }`}\r\n        >\r\n          <img\r\n            src='/resources/streaming2.png'\r\n            alt='streaming'\r\n            className='icons_streaming icons_streaming--border'\r\n          />{' '}\r\n          streaming\r\n        </label>\r\n      </div>\r\n      <div\r\n        className='col-4  text-center'\r\n        onClick={(e) => [setDisplayActualLot(true), setDisplayAwards(false)]}\r\n      >\r\n        <label\r\n          className={`text-uppercase text_icons ${\r\n            displayActualLot ? 'displayed' : ''\r\n          }`}\r\n        >\r\n          <img\r\n            src={`/resources/actualLot${displayActualLot ? '2' : ''}.png`}\r\n            alt='Actual lot'\r\n            className={`icons_streaming ${\r\n              displayActualLot ? 'icons_streaming--border' : ''\r\n            }`}\r\n          />{' '}\r\n          lote actual\r\n        </label>\r\n      </div>\r\n      <div\r\n        className='col-4  text-center'\r\n        onClick={(e) => [setDisplayActualLot(false), setDisplayAwards(true)]}\r\n      >\r\n        <label\r\n          className={`text-uppercase text_icons ${\r\n            displayAwards ? 'displayed' : ''\r\n          }`}\r\n        >\r\n          <img\r\n            src={`/resources/awards${displayAwards ? '2' : ''}.png`}\r\n            alt='Awards'\r\n            className={`icons_streaming ${\r\n              displayAwards ? 'icons_streaming--border' : ''\r\n            }`}\r\n          />{' '}\r\n          adjudicaciones\r\n        </label>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useHistory } from 'react-router-dom';\r\n\r\n//Servicios\r\nimport { ServiceCarouselStreaming, ServiceAuctionById, ServiceAuctionCustomerStatus } from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\n\r\n//Componentes\r\nimport { Carousel } from './Carousel';\r\nimport { Video } from './Video';\r\nimport { Information } from './Information';\r\n\r\n//Utiles\r\nimport { convertToDate, OpenCloseStreaming } from '../Utilities/General';\r\n\r\n//CSS\r\nimport '../../css/streaming/streaming.css';\r\nimport { getStreamingEnded, getStreamingInPause, getStreamingInProcess, getStreamingToStart } from '../../helpers/getConstants';\r\nimport { MenuStreaming } from './MenuStreaming';\r\n\r\nexport const Streaming = () => {\r\n  const history = useHistory();\r\n  const [dataCarousel, setDataCarousel] = useState([]);\r\n  const [allCarousel, setAllCarousel] = useState([]);\r\n  const [dataAuction, setDataAuction] = useState({});\r\n  const [dataCurrentLot, setDataCurrentLot] = useState('');\r\n  const [lotToShow, setLotToShow] = useState('');\r\n  const [notice, setNotice] = useState('');\r\n  const [carouselMovil, setCarouselMovil] = useState(false);\r\n  const [waitingStreaming, setWaitingStreaming] = useState(false);\r\n  const [waitingText, setWaitingText] = useState('');\r\n  const { search } = useLocation();\r\n  const IdAuction = new URLSearchParams(search).get('id');\r\n  const IdCustomer = localStorage.getItem('id');\r\n  const URLAuction = ServiceAuctionById(IdAuction);\r\n  let URL = ServiceCarouselStreaming();\r\n  const [update, setUpdate] = useState(false);\r\n  const [updateOffer, setUpdateOffer] = useState(false);\r\n  const [displayVideo, setDisplayVideo] = useState(true);\r\n  const [displayActualLot, setDisplayActualLot] = useState(true);\r\n  const [displayAwards, setDisplayAwards] = useState(true);\r\n  const [statusCustomer, setStatusCustomer] = useState('');\r\n  const streamingToStart = getStreamingToStart();\r\n  const streamingInPause = getStreamingInPause();\r\n  const streamingInProcess = getStreamingInProcess();\r\n  const streamingEnded = getStreamingEnded();\r\n  const [streamingFinish, setStreamingFinish] = useState(false);\r\n  const params = '?IdAuction=' + IdAuction + '&IdCustomer=' + IdCustomer + '&Before=2&After=5';\r\n  URL += params;\r\n\r\n  if (!IdCustomer) {\r\n    history.push('/?home=true');\r\n  }\r\n\r\n  useEffect(() => {\r\n    const URLAuctionCustomerStatus = ServiceAuctionCustomerStatus(IdCustomer);\r\n    if (IdCustomer) {\r\n      GET(URLAuctionCustomerStatus).then((response) => {\r\n        const users = response.find((auction) => auction.idAuction === IdAuction);\r\n        if (users) {\r\n          setStatusCustomer(users.idAuctionCustomerStatus);\r\n        }\r\n        if (response) {\r\n          GET(URL).then((data) => {\r\n            if (data) {\r\n              const lots = data.filter((lot) => !lot.anuncio);\r\n              setDataCarousel(lots);\r\n              setAllCarousel(data);\r\n              getCurrentLot(data);\r\n            }\r\n          });\r\n          GET(URLAuction).then((data) => {\r\n            if (data) {\r\n              checkStatusStreaming(data.statusStreaming);\r\n              setDataAuction(data);\r\n            }\r\n          });\r\n        }\r\n      });\r\n    } else {\r\n      GET(URL).then((data) => {\r\n        if (data) {\r\n          const lots = data.filter((lot) => !lot.anuncio);\r\n          setDataCarousel(lots);\r\n          setAllCarousel(data);\r\n          getCurrentLot(data);\r\n        }\r\n      });\r\n      GET(URLAuction).then((data) => {\r\n        if (data) {\r\n          checkStatusStreaming(data.statusStreaming);\r\n          setDataAuction(data);\r\n        }\r\n      });\r\n    }\r\n  }, [URL, URLAuction]);\r\n  useEffect(() => {\r\n    const intFrameWidth = window.innerWidth;\r\n    if (intFrameWidth < 573) {\r\n      setCarouselMovil(true);\r\n      setDisplayVideo(true);\r\n      setDisplayActualLot(true);\r\n      setDisplayAwards(false);\r\n    } else {\r\n      setCarouselMovil(false);\r\n      setDisplayVideo(true);\r\n      setDisplayActualLot(true);\r\n      setDisplayAwards(false);\r\n    }\r\n  }, []);\r\n  const checkStatusStreaming = (status) => {\r\n    switch (status) {\r\n      case streamingToStart:\r\n        setWaitingStreaming(true);\r\n        setWaitingText('Por favor espere, la transmisión iniciará en breve');\r\n        break;\r\n      case streamingInPause:\r\n        setWaitingStreaming(true);\r\n        setWaitingText('Por favor espere, la transmisión continuará en breve');\r\n        break;\r\n      case streamingInProcess:\r\n        setWaitingStreaming(false);\r\n        break;\r\n      case streamingEnded:\r\n        setWaitingStreaming(true);\r\n        setStreamingFinish(true);\r\n        setWaitingText('Espera nuestra próxima subasta');\r\n        break;\r\n      default:\r\n        setWaitingStreaming(false);\r\n        break;\r\n    }\r\n  };\r\n  const updateCarousel = () => {\r\n    GET(URL).then((data) => {\r\n      if (data) {\r\n        const lots = data.filter((lot) => !lot.anuncio);\r\n        setDataCarousel(lots);\r\n        setAllCarousel(data);\r\n        setDataCurrentLot('');\r\n        getCurrentLot(data, true);\r\n        setUpdateOffer(true);\r\n      }\r\n    });\r\n  };\r\n  useEffect(() => {\r\n    if (updateOffer) {\r\n      setUpdateOffer(true);\r\n    }\r\n  }, [dataCurrentLot]);\r\n\r\n  const getCurrentLot = (data, update) => {\r\n    let haveCurrentLot = false;\r\n    if (data.length > 0) {\r\n      const actual = data.find((item) => item.statusSubasta.toUpperCase() === 'ACTUAL');\r\n      if (actual) {\r\n        setLotToShow(actual);\r\n        setNotice(actual.notice);\r\n        setDataCurrentLot(actual);\r\n        haveCurrentLot = true;\r\n        if (update) {\r\n          setUpdate(true);\r\n        }\r\n      }\r\n      if (!haveCurrentLot && dataCarousel.length > 0) {\r\n        dataCurrentLot = dataCarousel[0];\r\n      }\r\n    }\r\n  };\r\n\r\n  const updateNotice = (message) => {\r\n    if (message) {\r\n      setNotice(message);\r\n    }\r\n  };\r\n\r\n  const openCatalog = () => {\r\n    window.open('/catalogo?id=' + IdAuction, '_blank');\r\n  };\r\n\r\n  const watchLot = (idClicked) => {\r\n    const lot = allCarousel.find((lot) => lot.idLot === idClicked);\r\n    setLotToShow(lot);\r\n  };\r\n  const exitStreaming = () => {\r\n    OpenCloseStreaming();\r\n  };\r\n\r\n  const resizing = () => {\r\n    const intFrameWidth = window.innerWidth;\r\n\r\n    if (intFrameWidth < 576 && !carouselMovil) {\r\n      setCarouselMovil(true);\r\n      setDisplayVideo(true);\r\n      setDisplayActualLot(true);\r\n      setDisplayAwards(false);\r\n    } else if (intFrameWidth >= 576) {\r\n      setCarouselMovil(false);\r\n      setDisplayVideo(true);\r\n      setDisplayActualLot(true);\r\n      setDisplayAwards(false);\r\n    }\r\n  };\r\n\r\n  window.onresize = resizing;\r\n\r\n  return (\r\n    <>\r\n      <div className=\"container container__Streaming\">\r\n        <MenuStreaming\r\n          displayVideo={displayVideo}\r\n          displayActualLot={displayActualLot}\r\n          displayAwards={displayAwards}\r\n          setDisplayActualLot={setDisplayActualLot}\r\n          setDisplayAwards={setDisplayAwards}\r\n          position={'top'}\r\n        />\r\n        <div className=\"row\">\r\n          <div className=\"col-9 container__Streaming--title fw-bold\">\r\n            Subasta de <span>{dataAuction.name}</span> - {dataAuction.numberOfLots + ' Lotes'}\r\n          </div>\r\n          <div className=\"col-3 exit-lotes\">\r\n            <button className=\"btn btn-outline-danger btn-lg mb-3 btn-lot\" onClick={exitStreaming}>\r\n              <img src=\"/resources/exit.png\" alt=\"exit\" /> Salir\r\n            </button>\r\n            <button className=\"btn btn-outline-secondary btn-lg btn-lot\" onClick={openCatalog}>\r\n              <i className=\"fas fa-eye\"></i> <span> Todos los</span> lotes\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div className=\"row\">\r\n          {dataAuction.eventDate && (\r\n            <div className=\"col-10 container__Streaming--subtitle fw-bold\">{convertToDate(dataAuction.eventDate)}</div>\r\n          )}\r\n        </div>\r\n        {notice && (\r\n          <div className=\"row advice-streaming my-3\">\r\n            <div className=\"col-md-1 col-sm-2 text-center m-auto my-3\">\r\n              <img src=\"/resources/speaker.png\" alt=\"speaker\" />\r\n            </div>\r\n            <div className=\"col-md-11 col-sm-10 text-justify p-3\">\r\n              <span>{notice}</span>\r\n            </div>\r\n          </div>\r\n        )}\r\n\r\n        <Carousel dataCarousel={dataCarousel} announcement={dataCurrentLot.anuncio} watchLot={watchLot} carouselMovil={carouselMovil} />\r\n        <div className=\"row\">\r\n          <div className=\"col-md-6 col-sm-12\">\r\n            {Object.keys(dataAuction).length > 0 && displayVideo && (\r\n              <Video\r\n                IdLot={dataCurrentLot.idLot}\r\n                IdAuction={IdAuction}\r\n                IdCustomer={IdCustomer}\r\n                updateCarousel={updateCarousel}\r\n                update={updateOffer}\r\n                setUpdate={setUpdateOffer}\r\n                updateNotice={updateNotice}\r\n                auctionDate={dataAuction.eventDate}\r\n                streaming={waitingStreaming}\r\n                streamingText={waitingText}\r\n                annoucement={dataCurrentLot.anuncio}\r\n                statusCustomer={statusCustomer}\r\n                dataCarousel={dataCarousel}\r\n                streamingFinish={streamingFinish}\r\n              />\r\n            )}\r\n          </div>\r\n\r\n          <div className=\"col-md-6 col-sm-12 margin_information\">\r\n            <Information\r\n              carouselMovil={carouselMovil}\r\n              displayActualLot={displayActualLot}\r\n              displayAwards={displayAwards}\r\n              idCurrentLot={dataCurrentLot.idLot}\r\n              announcement={dataCurrentLot.anuncio}\r\n              IdAuction={IdAuction}\r\n              IdCustomer={IdCustomer}\r\n              CurrentLot={lotToShow}\r\n              update={update}\r\n              setUpdate={setUpdate}\r\n              watchLot={watchLot}\r\n            />\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <MenuStreaming\r\n        displayVideo={displayVideo}\r\n        displayActualLot={displayActualLot}\r\n        displayAwards={displayAwards}\r\n        setDisplayActualLot={setDisplayActualLot}\r\n        setDisplayAwards={setDisplayAwards}\r\n        position={'bottom'}\r\n      />\r\n    </>\r\n  );\r\n};\r\n","import React, { useContext, useEffect, useMemo, useState } from 'react'\r\nimport { POST, PUT } from '../../../helpers/APIServices'\r\nimport { ServicePaymentTokenMercadoPago } from '../../../helpers/getURL'\r\nimport {\r\n  OpenMessage,\r\n  getIP,\r\n} from '../../Utilities/General';\r\n\r\nimport { getGuidEmpty } from '../../../helpers/getConstants';\r\n\r\nimport { CardPayment } from '@mercadopago/sdk-react/bricks';\r\nimport { TokenStatusContext } from '../../../context/TokenStatusContext'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nexport const CardFormToken = (props) => {\r\n  const idAuction = props.idAuction ? props.idAuction : getGuidEmpty();\r\n  const [IPAddress, setIPAddress] = useState('');\r\n  const [browser, setBrowser] = useState('');\r\n\r\n  const history = useHistory();\r\n\r\n  const {\r\n    tokenStatus,\r\n    mercadoPagoInitialized,\r\n    paymentFormError,\r\n    renderMpPaymentForm,\r\n    tokenAmount,\r\n  } = useContext(TokenStatusContext)\r\n\r\n  const { id = '' } = localStorage;\r\n\r\n  useEffect(() => {\r\n    getIP().then((resp) => {\r\n      setIPAddress(resp);\r\n    });\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    let sBrowser = 'Unknown',\r\n      sUsrAg = navigator.userAgent;\r\n    if (sUsrAg.indexOf('Chrome') > -1) {\r\n      sBrowser = 'Google Chrome';\r\n    } else if (sUsrAg.indexOf('Safari') > -1) {\r\n      sBrowser = 'Apple Safari';\r\n    } else if (sUsrAg.indexOf('Opera') > -1) {\r\n      sBrowser = 'Opera';\r\n    } else if (sUsrAg.indexOf('Firefox') > -1) {\r\n      sBrowser = 'Mozilla Firefox';\r\n    } else if (sUsrAg.indexOf('MSIE') > -1) {\r\n      sBrowser = 'Microsoft Internet Explorer';\r\n    }\r\n    setBrowser(sBrowser);\r\n  }, []);\r\n\r\n  const responsePayment = (data, success, message) => {\r\n    const msg =\r\n      'Ocurrio un error al registrar su tarjeta, por favor intente más tarde o con una tarjeta diferente.';\r\n    if (success) {\r\n      if (data.pendingChallenge) {\r\n        history.push(data.redirectUrl, {\r\n          pendingChallenge: data.pendingChallenge,\r\n          creq: data.creq,\r\n          externalResourceUrl: data.externalResourceUrl\r\n        })\r\n      }\r\n      else {\r\n        window.open(data.redirectUrl, '_self');\r\n      }\r\n      props.clearState();\r\n    } else if (!success && message && message.includes('400')) {\r\n\r\n      const regex = /Bad Request\\.\\s*(.*?)\\s*JSON:/;\r\n      const match = message.match(regex);\r\n      if (match && match[1]) {\r\n        const extractedText = match[1];\r\n        OpenMessage('warning', msg, false, extractedText);\r\n      } else {\r\n        OpenMessage('warning', msg, true);\r\n      }\r\n    } else {\r\n      OpenMessage('warning', message ? message : msg);\r\n    }\r\n    props.setDisabledActions(false);\r\n  };\r\n  \r\n  const createPayment = () => {\r\n    if (props.disabledActions) {\r\n      return;\r\n    }\r\n    props.setDisabledActions(true);\r\n    window\r\n      .cardPaymentBrickController\r\n      .getFormData()\r\n      .then((cardFormData) => {\r\n        if (cardFormData === null) {\r\n          props.setDisabledActions(false);\r\n          OpenMessage('warning', 'Favor de verificar sus datos.');\r\n          return;\r\n        }\r\n        const json = {\r\n          idCustomer: id,\r\n          idAuction: idAuction,\r\n          customer_username: 'na',\r\n          first_name: 'na',\r\n          last_name: 'na',\r\n          email: 'na',\r\n          phone: 'na',\r\n          country: 'na',\r\n          state: 'na',\r\n          city: 'na',\r\n          address: 'na',\r\n          zip_code: 'na',\r\n          name_on_card: 'na',\r\n          card_number: 'na',\r\n          expiration_year: 'na',\r\n          expiration_month: 'na',\r\n          cvv: 'na',\r\n          browserUserAgent: browser,\r\n          ipAddress: IPAddress,\r\n          cardFormData: cardFormData,\r\n        };\r\n        const URLTokenPayment = ServicePaymentTokenMercadoPago();\r\n        if (tokenStatus === 2) {\r\n          PUT(URLTokenPayment, json).then(({ data, success, message }) => {\r\n            responsePayment(data, success, message);\r\n          });\r\n        } else {\r\n          POST(URLTokenPayment, json).then(({ data, success, message }) => {\r\n            responsePayment(data, success, message);\r\n          });\r\n        }\r\n      })\r\n      .catch((error) => {console.error('Error getting card form data', error); props.setDisabledActions(false);});\r\n  }\r\n\r\nconst renderPaymentForm = useMemo(function renderPaymentForm () {\r\n  if (mercadoPagoInitialized && !paymentFormError && renderMpPaymentForm && tokenAmount > 0) {\r\n    return (\r\n      <CardPayment\r\n        initialization={{ amount: tokenAmount }}\r\n        customization={{ paymentMethods: { maxInstallments: 1 }, visual: { hidePaymentButton: true } }}\r\n        onSubmit={event => {}}\r\n        onReady={() => {console.log('MercadoPago Ready'); }}\r\n        onError={(erro) => {console.log('BrickError', erro)}}>\r\n      </CardPayment>\r\n    )\r\n  }\r\n  return null;\r\n\r\n}, [mercadoPagoInitialized, paymentFormError, renderMpPaymentForm, tokenAmount])\r\n\r\n  return (\r\n    <div className='container__cardForm'>\r\n      <h5 className='validation-section'>{props.message}</h5>\r\n      <h5 className='validation-section'>{props.warrantyMessage}</h5>\r\n      <div>\r\n        {renderPaymentForm}\r\n        <div className='modal-footer'>\r\n          <button\r\n            id=\"btnSaveFormToken\"\r\n            type=\"button\"\r\n            className=\"btn btn-outline-secondary button-validation\"\r\n            onClick={(e) => createPayment()}\r\n            disabled={props.disabledActions}>\r\n            Validar\r\n          </button>\r\n\r\n          <button\r\n            id=\"btnCancelFormToken\"\r\n            type=\"button\"\r\n            className=\"btn btn-outline-danger button-validation\"\r\n            data-mdb-dismiss=\"modalRegisterToOffer\"\r\n            onClick={(e) => {\r\n              props.clearState()\r\n            }}\r\n            disabled={props.disabledActions}>\r\n            Cancelar\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { DataContext } from '../../context/DataContext';\r\nimport {\r\n  CloseModal,\r\n  formatCurrency\r\n} from '../Utilities/General'\r\nimport {\r\n  getWarrantyID,\r\n  getPaymentBillPocketID,\r\n} from '../../helpers/getConstants';\r\nimport { CardFormToken } from './MePago/CardFormToken';\r\nimport '../../css/Register/RegisterToOffer.css';\r\nimport {\r\n  ServiceGenericParameters,\r\n} from '../../helpers/getURL';\r\nimport { GET } from '../../helpers/APIServices';\r\nimport { CloseModalIcon } from '../Home/CloseModalIcon';\r\nimport { TokenStatusContext } from '../../context/TokenStatusContext'\r\n\r\nexport const RegisterToOffer = () => {\r\n  const {\r\n    validate: {\r\n      registeredAuctions,\r\n      idAuction,\r\n      nameAuction,\r\n    },\r\n    setValidate,\r\n  } = useContext(DataContext);\r\n\r\n  const {\r\n    mercadoPagoInitialized,\r\n    paymentFormError,\r\n    renderMpPaymentForm,\r\n    setRenderMpPaymentForm,\r\n    setTokenAmount,\r\n  } = useContext(TokenStatusContext)\r\n\r\n  const [message, setMessage] = useState(\r\n    'Para participar en la subasta, se requiere validar la cuenta con sus datos bancarios, favor de ingresar los datos de su tarjeta.'\r\n  );\r\n  const [warrantyMessage, setWarrantyMessage] = useState('');\r\n\r\n  const [disabledActions, setDisabledActions] = useState(false);\r\n\r\n  const clearState = () => {\r\n    if (disabledActions) {\r\n      return;\r\n    }\r\n    CloseModal('modalRegisterToOffer');\r\n    setTimeout(() => {\r\n      setValidate({\r\n        valid: false,\r\n        registeredAuctions: [...registeredAuctions],\r\n        idAuction: '',\r\n        nameAuction: '',\r\n        dateAuction: '',\r\n        palletAuction: '',\r\n        idPallet: '',\r\n      });\r\n      setRenderMpPaymentForm(false);\r\n    }, 200);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (!renderMpPaymentForm && mercadoPagoInitialized && !paymentFormError) {\r\n      setTimeout(() => {\r\n        setRenderMpPaymentForm(true);\r\n      }, 200);\r\n    }\r\n  }, [renderMpPaymentForm]);\r\n\r\n  useEffect(() => {\r\n    getWarrantyMesage();\r\n  }, []);\r\n\r\n  const getWarrantyMesage = () => {\r\n    const warrantyID = getWarrantyID();\r\n    const URLWarrantyMessage = ServiceGenericParameters(warrantyID);\r\n    const getDataWarranty = () => {\r\n      GET(URLWarrantyMessage).then((data) => {\r\n        if (data === '401') {\r\n          getDataWarranty();\r\n          return '';\r\n        }\r\n        if (data.value) {\r\n          getBillPocketPayment(data.value);\r\n        }\r\n      });\r\n    };\r\n    getDataWarranty();\r\n  };\r\n\r\n  const getBillPocketPayment = (value) => {\r\n    const paymentBillPocketID = getPaymentBillPocketID();\r\n    const URLWarrantyMessage = ServiceGenericParameters(paymentBillPocketID);\r\n    const getDataBillPocketPayment = () => {\r\n      GET(URLWarrantyMessage).then((data) => {\r\n        if (data === '401') {\r\n          getDataBillPocketPayment();\r\n          return '';\r\n        }\r\n        if (data.value) {\r\n          setTokenAmount(parseFloat(data.value));\r\n          let text = value;\r\n          text = text.replace('${0}', formatCurrency(data.value));\r\n          setWarrantyMessage(text);\r\n        }\r\n      });\r\n    };\r\n    getDataBillPocketPayment();\r\n  };\r\n\r\n  return (\r\n    <div\r\n      className={`modal fade`}\r\n      id='modalRegisterToOffer'\r\n      aria-hidden='true'\r\n      data-bs-backdrop='static'\r\n      data-bs-keyboard='false'\r\n    >\r\n      <div className='modal-dialog modal-dialog-centered'>\r\n        <div className='modal-content'>\r\n          <div className='modal-header modal-header-login justify-content-end'>\r\n            <CloseModalIcon onHandleClick={() => clearState()} />\r\n          </div>\r\n          <div className='modal-body'>\r\n            <div className='text-center mt-2'>\r\n              <img\r\n                src='./resources/logo.svg'\r\n                alt='logo MLS'\r\n                className='img-fluid'\r\n                width='50%'\r\n              />\r\n            </div>\r\n            <div className='text-center mb-4 mt-4'>\r\n              <h4 className='modal-title fw-bold text-uppercase'>\r\n                Registro a subasta\r\n              </h4>\r\n            </div>\r\n          </div>\r\n          <CardFormToken\r\n            idAuction={idAuction}\r\n            nameAuction={nameAuction}\r\n            message={message}\r\n            warrantyMessage={warrantyMessage}\r\n            clearState={clearState}\r\n            disabledActions={disabledActions}\r\n            setDisabledActions={setDisabledActions}\r\n          />\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WaitNextAuctions = () => {\r\n  const history = useHistory();\r\n  return (\r\n    <div\r\n      className=\"modal fade \"\r\n      id=\"modalWaitNextAuction\"\r\n      aria-labelledby=\"waitNextAuctionModalLabel\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-body text-center\">\r\n            <div className=\"text-center closing-accept mt-5\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n            </div>\r\n            <div className=\"text-center closing-accept\">\r\n              <h2 className=\"text-uppercase\" id=\"textMessage\">Espera nuestra próxima subasta.</h2>\r\n            </div>\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n              data-bs-dismiss=\"modalOfferSuccess\"\r\n              aria-label=\"Close\"\r\n              onClick={(e) => [history.push('/?home=true'), CloseModal('modalWaitNextAuction')]}\r\n            >\r\n              Aceptar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CloseModal } from '../Utilities/General';\r\n\r\nexport const WaitNextAuctionsDeclineClient = () => {\r\n  const history = useHistory();\r\n  return (\r\n    <div\r\n      className=\"modal fade \"\r\n      id=\"modalDeclineClient\"\r\n      aria-labelledby=\"waitNextAuctionModalDeclineClientLabel\"\r\n      aria-hidden=\"true\"\r\n      data-bs-backdrop=\"static\"\r\n      data-bs-keyboard=\"false\"\r\n    >\r\n      <div className=\"modal-dialog modal-dialog-centered\">\r\n        <div className=\"modal-content\">\r\n          <div className=\"modal-body text-center\">\r\n            <div className=\"text-center closing-accept mt-5\">\r\n              <img src=\"./resources/logo.svg\" alt=\"logo MLS\" className=\"img-fluid\" width=\"50%\" />\r\n            </div>\r\n            <div className=\"text-center closing-accept\">\r\n              <h2 className=\"text-uppercase\" id=\"textMessage\">Estimado Cliente le informamos que su participación en la subasta ha sido bloqueada</h2>\r\n            </div>\r\n            <button\r\n              type=\"button\"\r\n              className=\"btn btn-outline-secondary btn-lg success-offer-items closin-accept\"\r\n              data-bs-dismiss=\"modalOfferSuccess\"\r\n              aria-label=\"Close\"\r\n              onClick={(e) => [history.push('/?home=true'), CloseModal('modalDeclineClient')]}\r\n            >\r\n              Aceptar\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState, useContext } from 'react';\r\nimport { ServiceMePagoPaymentValidate } from '../../helpers/getURL'\r\nimport { POST } from '../../helpers/APIServices';\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\nimport { DataContext } from '../../context/DataContext';\r\nimport { OpenStreamingRegisterMessage, CloseModal, CloseBackdrops, convertToDate } from '../Utilities/General'\r\nimport { Home } from '../Home/Home';\r\n\r\n\r\nexport const ReceivePayToken = (props) => {\r\n\r\n  const { href = '' } = window.location;\r\n  const external_transaction_id = new URL(href).searchParams.get(\r\n    'external_transaction_id'\r\n  );\r\n  const transaction_id = new URL(href).searchParams.get('transaction_id');\r\n  const status_code = new URL(href).searchParams.get('status_code');\r\n  const error_code = new URL(href).searchParams.get('error_code');\r\n  const error_message = new URL(href).searchParams.get('error_message');\r\n  const [message, setMessage] = useState('Validando Tóken...');\r\n  const [loading, setLoading] = useState('show');\r\n  const [redirect, setRedirect] = useState(false);\r\n  const [validToken, setValidToken] = useState(false);\r\n  const [error, setError] = useState(false);\r\n  const { pathname = '', state } = useLocation();\r\n  const history  = useHistory();\r\n  const location = useLocation();\r\n  const {\r\n    validate: { registeredAuctions },\r\n    setValidate,\r\n  } = useContext(DataContext);\r\n\r\n  useEffect(() => {\r\n    const URLValidate = ServiceMePagoPaymentValidate();\r\n    const json = {\r\n      external_transaction_id,\r\n      transaction_id,\r\n      status_code,\r\n      error_code,\r\n      error_message,\r\n    };\r\n    const validateData = () => {\r\n      if (!transaction_id || transaction_id === \"null\") {\r\n        history.push('/perfil?opcion=5')\r\n        return;\r\n      }\r\n      POST(URLValidate, json).then((data) => {\r\n        if (data === '401') {\r\n          validateData();\r\n          return '';\r\n        }\r\n        setLoading('hide');\r\n        if (data.success) {\r\n          if (data.data.pendingChallenge === true) {\r\n            history.push('/confirmarTokenPago', {\r\n              creq: state.creq,\r\n              externalResourceUrl: state.externalResourceUrl,\r\n              status: \"pending\",\r\n              statusDetail: \"pending_challenge\",\r\n              id: transaction_id,\r\n              redirectUrl: `${location.pathname}${location.search}`,\r\n            });\r\n          }\r\n          else {\r\n            const response = data.data;\r\n            const existRegisteredAuction = registeredAuctions.some((element) => {\r\n              return element.idAuction === response.auctionId;\r\n            });\r\n            const auctions = [...registeredAuctions];\r\n            if (!existRegisteredAuction) {\r\n              auctions.push({\r\n                idAuction: response.auctionId,\r\n                pallet: response.description,\r\n                streaming: response.streaming,\r\n                idPallet: response.idPalette,\r\n              });\r\n            }\r\n            setMessage('Tóken Validado.');\r\n            setValidate({\r\n              valid: false,\r\n              registeredAuctions: [\r\n                ...auctions\r\n              ],\r\n              idAuction: data.data.auctionId,\r\n              nameAuction: data.data.auctionName,\r\n              dateAuction: convertToDate(data.data.auctionDate),\r\n              palletAuction: data.data.description,\r\n              idPallet: data.data.idPalette,\r\n            });\r\n            OpenStreamingRegisterMessage();\r\n            setValidToken(true);\r\n            setTimeout(() => setRedirect(true), 2000);\r\n          }\r\n        } else {\r\n          if (data.message) {\r\n            setMessage(data.message);\r\n          }\r\n          else {\r\n            setMessage('Ha ocurrido un error al validar tu pago. Por favor reintenta recargando la pagina, si el problema persiste contacta a soporte.');\r\n          }\r\n          setError(true);\r\n          CloseModal('modalStreamingReisterMesage');\r\n          CloseBackdrops();\r\n          setTimeout(() => history.push('/subastas'), 5000);\r\n        }\r\n      }).catch(err => {\r\n          setError(true);\r\n          setMessage('Ha ocurrido un error al validar tu pago. Por favor reintenta recargando la pagina, si el problema persiste contacta a soporte.');\r\n          CloseModal('modalStreamingReisterMesage');\r\n          CloseBackdrops();\r\n      })\r\n    };\r\n    validateData();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (validToken && redirect){\r\n      if (pathname === '/validarTokenPago') {\r\n        history.push('/subastas');\r\n      }\r\n      return <Home />;\r\n    }\r\n  }, [redirect, validToken])\r\n\r\n  return (\r\n    <div className='row container-fluid container__expire justify-content-center'>\r\n      {!error && (\r\n        <div id='loading' className={'row container-back container-loading ' + loading}>\r\n          <div className='col-12 text-center'>\r\n            <img src='/resources/loading.gif' alt='loading...' width='15%'/>\r\n          </div>\r\n        </div>\r\n      )}\r\n      <div className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'>\r\n        <label>{message}</label>\r\n        {error && (\r\n          <button\r\n            id='errorGoHome'\r\n            className='btn btn-outline-danger btn-lg mt-4'\r\n            onClick={() => history.push('/subastas')}\r\n          >\r\n            Ir a Subastas\r\n          </button>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\n\r\nimport { GET } from '../../../helpers/APIServices';\r\nimport { ServiceCompleteOrder } from '../../../helpers/getURL';\r\n\r\nexport const ReceiveActnetPay = () => {\r\n  const { search } = useLocation();\r\n  const { href = '' } = window.location;\r\n  const [message, setMessage] = useState('Validando pago...');\r\n  const [error, setError] = useState(false);\r\n  const [externalTransactionId, setExternalTransactionId] = useState(null);\r\n  const [transactionId, setTransactionId] = useState(null);\r\n\r\n  const history = useHistory();\r\n\r\n  useEffect(() => {\r\n\r\n    let external_transaction_id = new URL(href).searchParams.get('external_transaction_id');\r\n    if (external_transaction_id === null) {\r\n      external_transaction_id = new URL(href).searchParams.get('external_reference');\r\n    }\r\n\r\n    let transaction_id = new URL(href).searchParams.get('transaction_id');\r\n    if (transaction_id === null) {\r\n      transaction_id = new URL(href).searchParams.get('payment_id');\r\n    }\r\n    setExternalTransactionId(external_transaction_id);\r\n    setTransactionId(transaction_id);\r\n\r\n    let urlCompleteOrder = ServiceCompleteOrder();\r\n\r\n    urlCompleteOrder = `${urlCompleteOrder}?externalId=${external_transaction_id}&checkout=${external_transaction_id}&authorization=${transaction_id}&maskedPAN=0000`;\r\n\r\n    const getData = () => {\r\n      if (!transaction_id || transaction_id === \"null\") {\r\n        history.push('/perfil?opcion=5')\r\n        return;\r\n      }\r\n      GET(urlCompleteOrder).then((data) => {\r\n        if (data === '401') {\r\n          getData();\r\n          return '';\r\n        }\r\n\r\n        if (data.successOrder) {\r\n          window.open('/detalle-orden?id=' + external_transaction_id, '_self');\r\n        } else {\r\n          setError(true);\r\n          if (data.showOrderMessage === true){\r\n            setMessage(data.orderMessage);\r\n          }\r\n          else {\r\n            setMessage(\r\n              'Ha ocurrido un error al procesar la solicitud. Por favor intente nuevamente.'\r\n            );\r\n          }\r\n\r\n        }\r\n      });\r\n    };\r\n    getData();\r\n  }, []);\r\n\r\n  return (\r\n    <div className='row container-fluid container__expire justify-content-center'>\r\n      {!error && (\r\n        <div id='loading' className={'row container-back container-loading show' }>\r\n          <div className='col-12 text-center'>\r\n            <img src='./resources/loading.gif' alt='loading...' width='15%' />\r\n          </div>\r\n        </div>\r\n      )}\r\n      <div className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'>\r\n        <label>{message}</label>\r\n      </div>\r\n      {error && (\r\n        <div className='col-12 text-center'>\r\n          <button\r\n            className='btn btn-outline-danger btn-lg'\r\n            id='errorGoOrders'\r\n            onClick={() => window.open('/perfil?opcion=5', '_self')}\r\n          >\r\n            Ir a mis órdenes\r\n          </button>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n","import './../../../css/Register/ChallengePayToken.css';\r\n\r\nimport {useLocation, useHistory} from \"react-router-dom\";\r\nimport {useEffect, useState} from \"react\";\r\n\r\nexport default function ChallengePayToken() {\r\n\r\n  const location = useLocation();\r\n  const history = useHistory();\r\n  const {state} = location;\r\n\r\n  const [id, setId] = useState(0);\r\n  const [status, setStatus] = useState(\"\");\r\n  const [statusDetail, setStatusDetail] = useState(\"\");\r\n  const [creq, setCreq] = useState(null);\r\n  const [externalResourceUrl, setExternalResourceUrl] = useState(null);\r\n  const [redirectUrl, setRedirectUrl] = useState(\"\");\r\n  const [complete, setComplete] = useState(false);\r\n\r\n\r\n  useEffect(() => {\r\n    if(complete){\r\n      setTimeout(() => {\r\n        history.push(redirectUrl);\r\n      }, 3000);\r\n    }\r\n  }, [complete]);\r\n\r\n  useEffect(() => {\r\n    const receiveMessage = (e) => {\r\n      if (e.data.status === \"COMPLETE\") {\r\n        console.log(\"COMPLETE\", e);\r\n        if (complete === false){\r\n          setComplete(true);\r\n        }\r\n      }\r\n    }\r\n\r\n    window.addEventListener(\"message\", receiveMessage);\r\n    return () => {\r\n      window.removeEventListener('message', receiveMessage);\r\n    };\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if(id !== 0 && status !== \"\" && statusDetail !== \"\" && creq !== null && externalResourceUrl !== null && redirectUrl !== \"\"){\r\n      doChallenge({status, statusDetail, creq, externalResourceUrl})\r\n    }\r\n  }, [creq, externalResourceUrl, id, redirectUrl, status, statusDetail]);\r\n\r\n  useEffect(() => {\r\n    if (state !== undefined) {\r\n      const {\r\n        creq: localCreq = null,\r\n        externalResourceUrl: localExternalResourceUrl = null,\r\n        id: localId = null,\r\n        status: localStatus = null,\r\n        statusDetail: localStatusDetail = null,\r\n        redirectUrl: localRedirectUrl = \"\"\r\n      } = state;\r\n      if (localCreq !== null && localExternalResourceUrl !== null && localId !== null && localStatus !== null && localStatusDetail !== null && localRedirectUrl !== \"\") {\r\n        if (id === 0) {\r\n          setId(localId);\r\n        }\r\n        if (status === \"\") {\r\n          setStatus(localStatus);\r\n        }\r\n        if (statusDetail === \"\") {\r\n          setStatusDetail(localStatusDetail);\r\n        }\r\n        if (creq === null) {\r\n          setCreq(localCreq);\r\n        }\r\n        if (externalResourceUrl === null) {\r\n          setExternalResourceUrl(localExternalResourceUrl);\r\n        }\r\n        if (redirectUrl === \"\") {\r\n          setRedirectUrl(localRedirectUrl);\r\n        }\r\n      }\r\n    }\r\n  }, [creq, externalResourceUrl, id, state, status, statusDetail]);\r\n\r\n  function doChallenge({status, statusDetail, creq, externalResourceUrl}) {\r\n    try {\r\n      if (status === \"pending\" && statusDetail === \"pending_challenge\") {\r\n\r\n        const iframeName = \"myframe\";\r\n        const iframeRootName = \"iframeValidation\";\r\n        const formName = \"myform\";\r\n\r\n        const root = document.getElementById(iframeRootName);\r\n        const existingIframe = root.querySelector(`#${iframeName}`);\r\n        if (existingIframe) {\r\n          root.removeChild(existingIframe);\r\n        }\r\n        var iframe = document.createElement(\"iframe\");\r\n        iframe.name = iframeName;\r\n        iframe.id = iframeName;\r\n\r\n        root.appendChild(iframe);\r\n\r\n        var idocument = iframe.contentWindow.document;\r\n\r\n        var myform = idocument.createElement(\"form\");\r\n        myform.name = formName;\r\n        myform.setAttribute(\"target\", iframeName);\r\n        myform.setAttribute(\"method\", \"post\");\r\n        myform.setAttribute(\"action\", externalResourceUrl);\r\n\r\n        var hiddenField = idocument.createElement(\"input\");\r\n        hiddenField.setAttribute(\"type\", \"hidden\");\r\n        hiddenField.setAttribute(\"name\", \"creq\");\r\n        hiddenField.setAttribute(\"value\", creq);\r\n        myform.appendChild(hiddenField);\r\n        iframe.appendChild(myform);\r\n\r\n        myform.submit();\r\n      }\r\n    } catch (error) {\r\n      console.log(error);\r\n      alert(\"Error doing challenge, try again later.\");\r\n    }\r\n  }\r\n\r\n  return (\r\n    <div className='row container-fluid container__expire justify-content-center'>\r\n      <div id=\"iframeValidation\" className='col-8 col-sm-6 col-lg-5 col-xxl-4 text-center'></div>\r\n    </div>\r\n  );\r\n}\r\n","import { Fragment, useContext, useEffect } from 'react'\r\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\r\n\r\n//Componentes\r\nimport { Home } from './components/Home/Home';\r\nimport Header from './components/Home/Header';\r\nimport FooterMain from './components/Home/FooterMain';\r\n//MENU\r\nimport Catalog from './components/Menu/Catalog';\r\nimport { AboutUs } from './components/Menu/AboutUs';\r\nimport { AuctionsMenu } from './components/Menu/AuctionsMenu';\r\nimport { Services } from './components/Menu/Services';\r\nimport { Contact } from './components/Menu/Contact';\r\n//Utilidades\r\nimport ToTop from './components/Utilities/ToTop';\r\nimport Loading from './components/Utilities/Loading';\r\nimport { Message } from './components/Message/Message';\r\nimport { StreamingRegisterMessage } from './components/Register/StreamingRegisterMessage';\r\nimport { OfferSuccess } from './components/Menu/OfferSuccess';\r\n//Recuperar contraseña\r\nimport { RecoveryPassword } from './components/Login/RecoveryPassword';\r\nimport { ResetPassword } from './components/Login/ResetPassword';\r\nimport { TokenNotValid } from './components/Login/TokenNotValid';\r\nimport { VerifyUser } from './components/CheckIn/VerifyUser';\r\n\r\n//Perfil\r\nimport { ProfileGrid } from './components/Profile/ProfileGrid';\r\nimport { PaymentProcessGrid } from './components/Profile/paymentProcess/PaymentProcessGrid';\r\nimport { ReceivePay } from './components/Profile/paymentProcess/ReceivePay';\r\nimport { OrderDetailGrid } from './components/Profile/orderDetail/OrderDetailGrid';\r\n\r\n//Straming\r\nimport { Streaming } from './components/streaming/Streaming';\r\n\r\n//helpers\r\nimport { getConfig } from './helpers/getConfig';\r\n\r\n//CSS de la aplicacion\r\nimport './css/App.css' //reset de estilos y variables de colores\r\nimport './css/Animations.css' //animaciones\r\nimport { RegisterToOffer } from './components/Register/RegisterToOffer'\r\nimport { DataProvider } from './context/DataContext'\r\nimport { ClosingModal } from './components/streaming/MiniPlayer/ClosingModal'\r\nimport { WaitNextAuctions } from './components/streaming/WaitNextAuctions'\r\nimport { WaitNextAuctionsDeclineClient } from './components/streaming/WaitNextAuctionsDeclineClient'\r\nimport { ReceivePayToken } from './components/Register/ReceivePayToken'\r\nimport { ReceiveActnetPay } from './components/Profile/paymentProcess/ReceiveActnetPay'\r\nimport { TokenStatusContext } from './context/TokenStatusContext'\r\nimport { getCaptchaSiteKeyId, getMercadoPagoPublicKey } from './helpers/getConstants'\r\nimport { ServiceGenericParameters } from './helpers/getURL'\r\nimport { GET } from './helpers/APIServices'\r\nimport { initMercadoPago } from '@mercadopago/sdk-react'\r\nimport ChallengePayToken from './components/Register/MePago/ChallengePayToken'\r\nimport { CaptchaContext } from './context/CaptchaContext'\r\n\r\nfunction App () {\r\n  const { setMercadoPagoInitialized } = useContext(TokenStatusContext)\r\n  const { captchaSiteKey, setCaptchaSiteKey } = useContext(CaptchaContext)\r\n\r\n  useEffect(() => {\r\n    const urlServices = sessionStorage.getItem('URLServices')\r\n    if (!urlServices || urlServices.length <= 2) {\r\n      getConfig('urlServices.json').then((response) => {\r\n        const url = JSON.stringify(response)\r\n        sessionStorage.setItem('URLServices', url)\r\n        window.location.reload()\r\n      })\r\n    }\r\n    else {\r\n      const mercadoPagoPublicKey = sessionStorage.getItem('MercadoPagoPublicKey')\r\n      if (!mercadoPagoPublicKey) {\r\n        const idMercadoPagoPublicKey = getMercadoPagoPublicKey();\r\n        const endpointMercadoPagoPublicKey = ServiceGenericParameters(idMercadoPagoPublicKey);\r\n        GET(endpointMercadoPagoPublicKey).then((data) => {\r\n          if (data && data.value) {\r\n            sessionStorage.setItem('MercadoPagoPublicKey', data.value);\r\n            initMercadoPago(data.value, {locale: \"es-MX\"});\r\n            setMercadoPagoInitialized(true);\r\n          }\r\n        });\r\n      }\r\n      else {\r\n        initMercadoPago(mercadoPagoPublicKey, {locale: \"es-MX\"});\r\n        setMercadoPagoInitialized(true);\r\n      }\r\n\r\n      if (!captchaSiteKey) {\r\n        const captchaSiteKey = sessionStorage.getItem('CaptchaSiteKey')\r\n        if (!captchaSiteKey) {\r\n          const captchaSiteKeyId = getCaptchaSiteKeyId()\r\n          const endpointCaptchaSiteKey = ServiceGenericParameters(captchaSiteKeyId);\r\n          GET(endpointCaptchaSiteKey).then((data) => {\r\n            if (data && data.value) {\r\n              setCaptchaSiteKey(data.value);\r\n              sessionStorage.setItem('CaptchaSiteKey', data.value);\r\n            }\r\n          });\r\n        }\r\n        else {\r\n          setCaptchaSiteKey(captchaSiteKey);\r\n        }\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <DataProvider>\r\n      <Router>\r\n        <Fragment>\r\n          <Header />\r\n          <ToTop />\r\n          <Loading />\r\n          <Message />\r\n          <Switch>\r\n            <Route path=\"/\" exact component={Home} />\r\n            <Route path=\"/quienes-somos\" exact component={AboutUs} />\r\n            <Route path=\"/subastas\" exact component={AuctionsMenu} />\r\n            <Route path=\"/catalogo\" exact component={Catalog} />\r\n            <Route path=\"/servicios\" exact component={Services} />\r\n            <Route path=\"/contacto\" exact component={Contact} />\r\n            <Route path=\"/recuperarpwd\" exact component={RecoveryPassword} />\r\n            <Route path=\"/resetpwd\" exact component={ResetPassword} />\r\n            <Route path=\"/expire\" exact component={TokenNotValid} />\r\n            <Route path=\"/perfil\" exact component={ProfileGrid} />\r\n            <Route path=\"/verificar-usuario\" exact component={VerifyUser} />\r\n            <Route path=\"/streaming\" exact component={Streaming} />\r\n            <Route path=\"/carrito-compras\" exact component={PaymentProcessGrid} />\r\n            <Route path=\"/validarPago\" exact component={ReceivePay} />\r\n            <Route path=\"/detalle-orden\" exact component={OrderDetailGrid} />\r\n            <Route path=\"/validarTokenPago\" exact component={ReceivePayToken} />\r\n            <Route path=\"/confirmarTokenPago\" exact component={ChallengePayToken} />\r\n            <Route path=\"/validatePaymentGateway\" exact component={ReceiveActnetPay} />\r\n            {/* DEFAULT */}\r\n            <Route exact component={Home} />\r\n          </Switch>\r\n          <FooterMain />\r\n          <RegisterToOffer />\r\n          <StreamingRegisterMessage />\r\n          <OfferSuccess />\r\n          <ClosingModal />\r\n          <WaitNextAuctions />\r\n          <WaitNextAuctionsDeclineClient />\r\n        </Fragment>\r\n      </Router>\r\n    </DataProvider>\r\n  );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n  if (onPerfEntry && onPerfEntry instanceof Function) {\r\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n      getCLS(onPerfEntry);\r\n      getFID(onPerfEntry);\r\n      getFCP(onPerfEntry);\r\n      getLCP(onPerfEntry);\r\n      getTTFB(onPerfEntry);\r\n    });\r\n  }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { TokenStatusProvider } from './context/TokenStatusContext'\r\nimport { CaptchaProvider } from './context/CaptchaContext'\r\n\r\nReactDOM.render(\r\n  <React.StrictMode>\r\n    <TokenStatusProvider>\r\n      <CaptchaProvider>\r\n        <App />\r\n      </CaptchaProvider>\r\n    </TokenStatusProvider>\r\n  </React.StrictMode>,\r\n  document.getElementById('root')\r\n);\r\nreportWebVitals();\r\n"],"sourceRoot":""}