{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/img/icons/freight.svg","webpack:///./src/services/PaymentNotificator.js","webpack:///./src/assets/img/payment-types/multi-card.svg","webpack:///./src/helpers/routerHelper.js","webpack:///./src/router.js","webpack:///./src/store/modules/pipelines/pipeline.js","webpack:///./src/store/modules/pipelines/pipelineV2.js","webpack:///./src/store/modules/customer.js","webpack:///./src/store/modules/payment.js","webpack:///./src/store/modules/payments/payment-types.js","webpack:///./src/mockedPreorder.js","webpack:///./src/store/modules/preorder.js","webpack:///./src/store/modules/shopping-cart.js","webpack:///./src/store/modules/antifraud.js","webpack:///./src/helpers/mpiHelper.js","webpack:///./src/helpers/mpiFieldMapper.js","webpack:///./src/models/MpiPaymentMethods.js","webpack:///./src/store/modules/mpi.js","webpack:///./src/store/modules/cart.js","webpack:///./src/store/modules/discount.js","webpack:///./src/mockedOrderStatus.js","webpack:///./src/store/modules/orderStatus.js","webpack:///./src/store/modules/payments/recurrentPayment.js","webpack:///./src/helpers/binQueryErrorHelper.js","webpack:///./src/store/modules/payments/card-payment.js","webpack:///./src/store/modules/payments/boletoPayment.js","webpack:///./src/store/modules/payments/pixPayment.js","webpack:///./src/store/modules/payments/qrCodePayment.js","webpack:///./src/store/modules/payments/clickToPayPayment.js","webpack:///./src/store/modules/payments/googlePayPayment.js","webpack:///./src/store/modules/payments/wallet-types.js","webpack:///./src/store/modules/shipping/shippingAddress.js","webpack:///./src/store/modules/shipping/shippingType.js","webpack:///./src/store/modules/billingAddress.js","webpack:///./src/store/modules/merchantLayout.js","webpack:///./src/store/index.js","webpack:///./src/App.vue?00ea","webpack:///./src/assets/img/payment-types/card-v2.svg","webpack:///./src/assets/img/payment-types/c2p.svg","webpack:///./src/helpers/cieloLogger.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue?a938","webpack:///./src/config/lang/en.js","webpack:///./src/config/lang/pt-br.js","webpack:///./src/config/lang/es-es.js","webpack:///./src/multiLanguage.js","webpack:///./src/filters/capitalize.js","webpack:///./src/config/datadog.js","webpack:///./src/main.js","webpack:///./src/assets/img/payment-types/qrcode-v2.svg","webpack:///./src/models/ShippingTypes.js","webpack:///./src/assets/img/payment-types/boleto-v2.svg","webpack:///./src/config/axios.config.js","webpack:///./src/helpers/clickToPayHelper.js","webpack:///./src/config/vars.js","webpack:///./src/models/CardBrands.js","webpack:///./src/helpers/moneyHelper.js","webpack:///./src/models/PaymentTypes.js","webpack:///./src/assets/img/payment-types/pix-v2.svg","webpack:///./src/assets/img/shipping-type-card-loggi.svg","webpack:///./src/helpers/stringHelper.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","connection","CreateConnection","HubConnectionBuilder","withUrl","vars","PAYMENT_NOTIFICATION_HUB_URL","build","StartConnection","_x","_StartConnection","_asyncToGenerator","regeneratorRuntime","mark","_callee","orderId","wrap","_context","prev","next","start","withCredentials","this","RegisterForNotification","stop","arguments","_x2","_RegisterForNotification","_callee2","_context2","invoke","OnStatusChange","callback","on","CloseConnection","PreorderIsRequiredButItHasNotBeenGiven","routeTo","preorderRequired","matched","find","meta","store","state","preorder","IsLoaded","StopNavigationAndRedirectToMainPage","to","query","id","Vue","use","Router","NotFoundView","InvalidLinkView","InvalidOrder","InvalidUrl","MainPageView","ChangePaymentTypeView","CardPaymentView","CardPaymentInstallmentsView","ShippingAddressView","PersonalDataView","PaymentSuccessView","PixFinalizeView","QrCodePayView","QrCodePayFinalizeView","ClickToPayView","UserValidationC2PView","CardListC2PView","IdLookUpAuthenticationC2PView","UnifiedCardPaymentC2PView","CardDataView","GooglePayCardInstallmentsView","GooglePayBillingAddressView","OrderStatusView","routes","path","component","alias","title","children","propBeingEdited","router","beforeEach","from","routerHelper","logPageView","commit","beforeResolve","namespaced","actualPipeline","actualStep","actions","pushNext","_ref","rootState","actualStepIndex","indexOf","nextStepIndex","Id","pushPrevious","_ref2","pushTo","_ref3","routeName","pushToFirstStep","_ref4","firstStep","mutations","setPipeline","newPipeline","setActualStep","pipelineKeys","keys","shouldRenderView","pushToOrderStatus","_ref5","_objectDestructuringEmpty","nextStep","when","Name","Email","Phone","Identity","IdentityType","PhoneCountry","CountryCode","AcceptAds","UserAgent","navigator","userAgent","getters","getSubmitModel","rootGetters","Guest","FullName","getCustomerFirstDigits","getCustomerName","setName","setEmail","email","setPhone","phone","setIdentity","identity","setIdentityType","identityType","setPhoneCountry","phoneCountry","setCountryCode","countryCode","setAcceptAds","acceptAds","setFromRequest","PaymentType","PaymentMethodId","NumberOfInstallments","TotalPrice","Discount","ShippingPrice","PaymentMethods","MinimumInstallmentAmount","FixedInstallments","SelectedPaymentMethodInstallmentIsAbleToBeFixed","getInstallmentNumberOfPayments","getTotalPrice","rootstate","shippingPrice","subtotal","discountAmount","total","getTotalPriceWithoutShipping","getInstallmentListForPaymentMethodSelected","selectedPaymentMethod","getInstallmentListByPaymentMethodId","paymentMethodId","paymentMethod","filter","item","maxNumberOfPayments","MaxNumberOfPayments","calcMaxInstallments","Math","max","floor","min","accumulator","fixedInstallments","quantity","installmentPrice","moneyHelper","formatToPrice","Value","allowedPaymentTypes","PaymentTypes","CREDIT_CARD","QRCODE","CLICK_TO_PAY","GOOGLE_PAY","isAbleToBeFixed","includes","getFormattedInstallmentPrice","numberOfPayments","totalPrice","getFormattedPrice","getFormattedSubtotalPrice","getPaymentMethodById","getPaymentTypeNameById","BOLETO","ONLINE_DEBIT","DEBIT_CARD","PAT_ELO_VOUCHER","getSelectedPaymentMethod","_objectSpread","TypeName","PaymentMethod","getSelectedCardBrand","Image","getSelectedPaymentTypeId","isRecurringPayment","installments","paymentType","Number","Installments","getDiscount","getSelectedPaymentMethodInstallmentIsAbleToBeFixed","updateTotalPrice","cartTotalPrice","formattedPrice","setPaymentMethod","setShippingPrice","setTotalPrice","setNumberOfInstallments","numberOfInstallments","setPaymentMethodNumberOfInstallments","payload","setPaymentType","setDiscount","discount","resetPaymentMethod","resetMethod","Types","Title","Icon","CreditCard","Available","StartView","Text","DebitCard","BoletoIcon","PIX","PixIcon","QrCodePay","VOUCHER","VoucherCard","QRCODE_DEBIT","MultiCard","TypesFromPreorder","getAll","getAvailable","types","payment","some","map","isCreditOrDebit","preorderPaymentType","Type","AccessTokenMpiVersionTwo","MpiDataOnly","EnvironmentToMpi","DebugMpiScript","MpiCreditAuthenticationEnabled","MpiDebitAuthenticationEnabled","WalletMethodInformation","AffiliationCodeAmex","SupportedCardBrands","IsCredit","IsDebit","Wallets","MerchantName","OrderNumber","TestModeEnabled","TransactionIsFinalized","TransactionResponse","DebitCardAleloPaymentMethod","HasPreorder","fetchPreorder","_fetchPreorder","preorderId","dispatch","response","USE_SIMULATED_MODE","mocked","sent","axios","concat","root","ShippingAddress","ShippingMethod","ShippingType","MerchantLayoutConfiguration","Customer","logEvent","category","action","label","t0","getMerchantTextLogo","getOrderNumber","getOrderDate","CreatedDate","hasPreorderBeenFetched","hasPreorder","PreorderId","setTransactionAsFinalized","setTransactionSuccessfulResponse","setIsLoaded","Items","CartItemsTotalPrice","getCardItemsTotalPrice","forEach","UnitPrice","Quantity","getSourceZipCode","index","ZipCode","getTotalWeight","Weight","ShoppingCartItens","OrgId","BrowserFingerPrint","BrowserIdentifier","GatewayFingerprint","AntifraudOrgId","loadAntifraudScript","fingerprintUrlQuery","antifraudScript","appendCyberNoscriptToBody","noscriptTag","noscriptIframe","body","addMpiField","className","existingField","getElementsByClassName","mpiInput","getMpiField","fieldName","field","setMpiCallbacks","isDataOnly","bpmpi_config","onReady","logMpiEvent","bpmpi_authenticate","onSuccess","Cavv","Xid","Eci","Version","ReferenceId","mpi","MpiPromiseCallback","onFailure","AutomaticCancellationWhenUnauthenticated","multiLanguage","onUnenrolled","onDisabled","onError","ReturnCode","ReturnMessage","onUnsupportedBrand","Environment","Debug","mpiEvent","brand","isCreditAuthEnabled","CreditAuthenticationEnabled","isDebitAuthEnabled","DebitAuthenticationEnabled","logLabel","formatDateToDDMMYYYY","date","day","String","getDate","padStart","month","getMonth","year","getFullYear","mapOrderData","mpiHelper","round","parsePaymentType","cardPayment","CardNumber","Expiration","Month","Year","mapOrderDetails","interval","recurrentPayment","Interval","frequencyMap","frequency","occurrenceMap","occurrence","originalPurchaseDate","Date","recurringType","preOrderId","amountType","mapBillingAddress","billingAddress","SameAsShippingAddress","customer","Street","Complement","City","State","mapShippingAddress","shippingAddress","mapCartItems","cart","Description","Sku","mapUserData","mapDeviceData","_mapDeviceData","getUserIP","userIP","fetch","json","abrupt","ip","logException","antifraud","mapEnrollmentData","AUTHENTICATION","DEV","SDB","PRD","DATAONLY","Accesstoken","ReferenceID","DataOnly","MpiIsReady","setCavv","setXid","setEci","setVersion","setReferenceID","setReturnCode","setReturnMessage","setMpiIsReady","ExternalAuthentication","MpiVersionTwoIsEnabled","MpiDataOnlyIsEnabled","shouldAuthenticate","cardBrand","isAmex","CardBrands","AMEX","activePaymentType","shouldUseMpi","paymentMethodIsAuthenticable","shouldUseDataOnly","dataOnlyIsEnabled","brandCanUseDataOnly","paymentMethodCanUseDataOnly","GetAutomaticCancellationWhenUnauthenticated","authenticate","_authenticate","initMpiProcess","mpiFieldMapper","mpiScript","MPI_SCRIPT_URL","supportedMethods","MpiPaymentMethods","ENVIRONMENT","parseInt","getCartDiscount","getCartDiscountAmount","cartDiscount","cartDiscountAmount","isCartDiscountPercentage","discountCartPercentage","getCartDiscountPercentage","getDiscountAmount","getPaymentMethodDiscountAmount","paymentMethodDiscountAmount","paymentMethoddiscountPercentage","amountWithCardDiscount","TypeId","Percentage","Amount","amount","discountPercentage","OrderId","Status","District","Price","Brand","InstallmentsNumber","InstallmentPrice","CardLastFour","IsRecurringPayment","ShoppingCartItems","FirstItemDescription","CartDiscount","DiscountPercentage","DiscountPrice","ShortUrl","HasOrderStatusData","IdPayLink","pollingFetchOrderStatus","_pollingFetchOrderStatus","status","paymentStatus","toLowerCase","location","reload","fetchOrderStatus","_x3","_x4","_fetchOrderStatus","mountOrderStatus","shippingMethod","orderNumber","merchantName","customerName","customerPhone","customerIdentity","shippingZipCode","shippingStreet","shippingNumber","shippingComplement","shippingDistrict","shippingCity","shippingState","installmentsNumber","description","price","shippingType","items","createdDate","totalAmount","getOrderId","getStatus","getMerchantName","getCustomer","getShippingAddress","getShippingMethod","getShoppingCartItems","getFirstItemDescription","getPaymentMethod","getCreatedDate","getShortUrl","hasOrderStatusData","getIdPayLink","setHasOrderStatusData","cardLastFour","shortUrl","idPayLink","setOrderId","setStatus","EndDate","getEndDate","getIntervalText","intervalSwitch","RecurrentPayment","getBinQueryErrorMsg","Holder","SecurityCode","BinQueryError","idPayDeviceID","getLast4DigitsFromCardNumber","getCardHolderName","Card","getCardBin","substring","getBinQueryError","setCardNumber","cardNumber","setHolder","cardHolder","setExpirationMonth","expirationMonth","setExpirationYear","expirationYear","setSecurityCode","securityCode","resetState","setBinQueryError","binQueryErrorHelper","fetchCardBrand","_fetchCardBrand","cardBin","buildAleloResponse","buildSimulatedResponse","Success","ReasonError","InstallmentsInfo","Response","BoletoNumber","BoletoViewUrl","boletoSuccessResponse","Data","BoletoViewerUrl","QrCodeBase64Image","QrCodeString","pixSuccessResponse","qrCodePaySuccessResponse","dpaId","dpaName","isClickToPayEnabled","initialized","availableCardBrands","cards","consumer","nationalIdentification","fullName","consumerPresent","networkId","maskedValidationChannel","supportedValidationChannels","rememberMeAgreement","otpValidation","disableElements","isSuccessful","errorReason","checkoutResponse","actionCode","correlationId","merchantTransactionId","xSrcCxFlowId","cardPanLastFour","cardArtUri","maskedFullName","cardBrandError","recognitionToken","supportedBrandCards","submitModel","IsForeign","clickToPay","billingModel","BillingAddress","isBillingValidForClickToPay","IsBillingAddressSameAsShipping","getCard","_splitNames","splitNames","firstName","lastName","line1","line2","city","zip","panExpirationMonth","toString","panExpirationYear","primaryAccountNumber","cardSecurityCode","cardholderFirstName","cardholderLastName","getConsumerFirstDigitsC2p","getConsumerName","getRecognitionToken","c2pCredentials","supportedCardBrands","obj","WalletCredentials","DpaId","Nickname","setCards","setConsumer","setRememberMe","rememberMe","setValidationChannels","validationChannel","supportedChannels","setOtpValidationCode","setOtpValidationDisableElements","setOtpValidationIsSuccessful","success","setOtpValidationError","reason","clearOtpValidationError","clearOtpStates","setCheckoutResponse","checkoutActionCode","checkoutResponseData","srcCorrelationId","headers","maskedCard","panLastFour","digitalCardData","artUri","maskedConsumer","setCardBrandError","errorCode","clearErrors","setRecognitionToken","checkoutWithNewCard","_checkoutWithNewCard","_splitNames2","consumerPayload","card","emailAddress","mobileNumber","phoneNumber","nationalIdentifier","encryptAndCheckoutWithNewCard","checkoutWithCard","_checkoutWithCard2","srcDigitalCardId","idLookup","_x5","_idLookup","_callee3","getIdLookupResult","_context3","mcCheckoutService","validateOtp","_x6","_validateOtp","_callee4","_ref6","validationResult","_context4","validate","handleCheckoutResult","_ref7","post","token","initiateValidation","_x7","_initiateValidation","_callee5","_ref8","getInitiateValidationResult","_args5","_context5","requestedValidationChannelId","network","_ref9","_x8","_x9","_callee6","_ref10","isVisaAvailable","isMasterAvailable","_context6","b","isGooglePayEnabled","isReadyToPay","environment","selectedCard","info","cardNetwork","cardDetails","address1","address2","address3","administrativeArea","locality","postalCode","sortingCode","tokenizationData","PaymentMethodToken","WalletKey","encryptedMessage","ephemeralPublicKey","AdditionalData","Signature","hasPhoneNumber","paymentRequest","apiVersion","apiVersionMinor","allowedPaymentMethods","parameters","allowedAuthMethods","allowedCardNetworks","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","tokenizationSpecification","gateway","gatewayMerchantId","merchantInfo","merchantId","transactionInfo","totalPriceStatus","totalPriceLabel","currencyCode","emailRequired","shippingOptionRequired","shippingAddressRequired","shippingOption","Wallet","isBillingValidForGooglePay","getEnvironment","getSelectedCard","getSelectedCardDescription","getPaymentRequest","getBillingAddressCountryCode","getState","getHasPhoneNumber","gpayCredentials","GatewayMerchantId","MerchantId","toUpperCase","setFromPaymentData","jsonString","paymentMethodData","JSON","parse","signedMessage","signature","setIsReadyToPay","setIntentCallbackWithShippingValues","callbackIntents","shippingAddressParameters","allowedCountryCodes","set","setShippingOptionParameters","shippingMethods","shippingOptionParameters","defaultSelectedOptionId","shippingOptions","FormattedPrice","setShippingAddress","setShippingOption","setDefaultSelectedOptionId","clearSelectedCard","methods","selectedShippingMethod","method","setBillingAddress","WalletName","ClickToPay","IsNew","LogCategory","LogAction","LogLabel","matchedTypeFromPreorder","typeFromPreorder","clickToPayPayment","getDefaultState","FetchedFields","Compl","getTargetZipCode","setZipCode","zipCode","setStreet","street","setNumber","number","setComplement","complement","setDistrict","district","setCity","setState","_state","MapAddress","MapCommonFetchedFields","isNullOrWhitespace","ADDRESS_UPDATED","assign","validateAndSplitValue","maxLength","v","Validator","_v$verify","verify","valid","Methods","ShippingMethodId","ShippingChecksum","ShippingDeadline","ShowShippingMethod","ShippingMethods","getMethods","getMethod","getType","getShowShippingMethod","setShippingMethodId","setShippingType","setShippingDeadline","deadline","setShowShippingMethod","show","carrierId","CarrierId","deadLine","DeadLine","img","shippingTypeLoggi","observation","isLoggi","RegExp","test","ShippingTypes","LOGGI","CORREIOS","require","setChecksumFromShippingApiRequest","checksum","calculateShipping","_calculateShipping","sourceZipCode","targetZipCode","weight","_rootState$shippingAd","ShippingMethodsCorreios","AddressLine2","getSameAsShippingAddress","getIsNational","setSameAsShippingAddress","sameAsShippingAddress","setType","setAddressLine2","addressLine2","setFromGooglePay","HasLogo","BackgroundColor","IsCustomizationEnabled","getLogoUrl","logoId","CIELO_CHECKOUT_URL","getNewLogoUrl","Vuex","Store","strict","pipeline","pipelineV2","paymentTypes","shoppingCart","boletoPayment","pixPayment","qrCodePayment","googlePayPayment","merchantLayout","orderStatus","walletTypes","isInDevMode","initializeLogging","loggingToken","ga","params","gaWrapper","hitType","eventCategory","eventAction","eventLabel","page","errorMessage","stack","exDescription","render","_vm","_c","_self","staticClass","attrs","staticRenderFns","MLanguage","_MLanguage$create","safeEnvironment","safeEnvironmentSuffix","developedBy","securePayment","linkInfo","delivery","deliveryAddress","purchaseSummary","productOrServiceDescription","showDescription","hideDescription","more","showLess","seeAllItems","hideItems","within2Hours","withinOneBusinessDay","withinAnyBusinessDays","free","of","off","discountOn","zipcode","addressLine1","province","cpf","cnpj","foreign","foreigner","continue","confirmPayment","back","cancel","thanks","notAvailable","copyCode","retry","copied","identityConfirmation","confirmIdentity","chooseYourState","chooseYourProvince","forgotIt","selectDeliveryType","shippingAddressInfo","freight","freightDefined","chooseHowYouWantToPay","orChooseOtherWays","otherPaymentMethods","expressPayment","personalDataSubtitle","cellPhone","identityC2P","termsPreffix","termsSuffix","privacyPreffix","privacySuffix","completePurchase","sameAddressOption","nationalAddress","internationalAddress","national","international","paymentByCreditCard","paymentByDebitCard","paymentByVoucherCard","paymentByEloVoucherCard","paymentByGooglePay","cardName","expiration","cardNameHolder","cardNameHolderValidation","paymentSuccessTitle","paymentSuccessDetail","paymentSuccessButtonLabel","loggiThanksMessage","loggiSuccessTitle","loggiSuccessBody","requestNumber","boletoSuccessBody","barcode","openBoleto","pixSuccessBody","qrcodeExplanation","paywithPixSuccessFooter","advertisingPixSuccessFooter","creditCard","creditCardText","debitCard","debitCardText","boleto","pix","pixText","qrCodePay","qrCodePayText","voucher","qrCodeDebit","qrCodeDebitText","patEloVoucher","patEloVoucher2","patEloVouchetText","patEloVouchetText2","googlePay","chooseInstallmentsNumber","installmentsItem","installment","installmentSupportText","addressSearchZipcode","addressZipcodeNotFound","addressUnderstood","warning","paymentProviderPurchaseError","wait","unexpectedError","withoutMessage","qrCodeGenerationError","finalizingPaymentError","unknownPaymentError","_defineProperty","MLInstaller","MLCreate","initial","save","process","languages","EnLang","PtBrLang","EsLang","charAt","URLS","Vars","url","startsWith","DATADOG","applicationId","APPLICATION_ID","clientToken","CLIENT_TOKEN","site","service","DATADOG_SERVICE","env","DATADOG_ENV","version","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","allowedTracingUrls","config","productionTip","VeeValidate","VueTheMask","Clipboard","GOOGLE_ANALYTICS_TRACKING_ID","errorHandler","datadogRum","init","startSessionReplayRecording","h","App","mounted","$ml","$mount","PaymentNotificator","UNDEFINED","FIXED_AMOUNT","FREE","WITHOUT_SHIPPING_PICKUP","WITHOUT_SHIPPING","defaultHeaders","axiosConfig","baseURL","API_GATEWAY_URL","afterLoadHandler","recognitionTokenResponse","promiseResolvedPayload","srcDpaId","dpaData","dpaTransactionOptions","dpaLocale","dpaBillingPreference","paymentOptions","dynamicDataType","cardBrands","checkoutExperience","MastercardCheckoutServices","getCards","t1","initClickToPayScript","c2pScr","clickToPayScript","scriptLoading","addEventListener","createiFrame","isIframeCreated","querySelector","iframeContainer","classList","add","iframe","appRoot","closeiFrame","remove","checkoutWithVisaCard","visaConsumerPayload","sandboxBillingAddress","encryptCardResult","checkoutWithNewCardResult","encryptCard","encryptedCard","windowRef","contentWindow","recognitionTokenRequested","consumerEmailAddressRequested","consumerPhoneNumberRequested","consumerNameRequested","complianceSettings","privacy","acceptedVersion","latestVersion","latestVersionUri","tnc","_checkoutWithNewCardResult","checkoutWithCardResult","names","split","APP_VERSION","SIMULATED_MODE","isInProdMode","ELO_VOUCHER_BIN_LIST","MINUTES_TO_CLOSE_HUB_CONNECTION","AURA","DINERS","DISCOVER","ELO","HIPERCARD","JCB","MASTERCARD","VISA","ALELO","PATELOVOUCHER","toLocaleString","minimumFractionDigits","maximumFractionDigits","trim"],"mappings":"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","file":"js/app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"cielo-layout\":\"cielo-layout\",\"cielo-button\":\"cielo-button\",\"cielo-input-v2\":\"cielo-input-v2\",\"cielo-input\":\"cielo-input\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-01ef4f81\":1,\"chunk-0b72a775\":1,\"chunk-1d60d688\":1,\"chunk-01e18d08\":1,\"chunk-03e9b95e\":1,\"chunk-58f72deb\":1,\"chunk-0fe6fad7\":1,\"chunk-3761b7f2\":1,\"chunk-3fe80b16\":1,\"chunk-505095c3\":1,\"chunk-31e3c80e\":1,\"chunk-5ce41262\":1,\"chunk-0e4ad3de\":1,\"chunk-2a201fe9\":1,\"chunk-3324948e\":1,\"chunk-286a2559\":1,\"chunk-395a6c3c\":1,\"chunk-baeb5ca0\":1,\"chunk-58fdd672\":1,\"chunk-4bbfa46e\":1,\"chunk-c14379e8\":1,\"chunk-31f5917e\":1,\"chunk-350baa5e\":1,\"chunk-3852bf47\":1,\"chunk-52505c93\":1,\"chunk-12459d04\":1,\"chunk-76f76f37\":1,\"chunk-0b05e52d\":1,\"chunk-e6dee28c\":1,\"chunk-6604ceb3\":1,\"chunk-fba2186e\":1,\"cielo-button\":1,\"cielo-input-v2\":1,\"cielo-input\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"cielo-layout\":\"cielo-layout\",\"cielo-button\":\"cielo-button\",\"cielo-input-v2\":\"cielo-input-v2\",\"cielo-input\":\"cielo-input\"}[chunkId]||chunkId) + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/freight.svg\";","import { HubConnectionBuilder } from '@microsoft/signalr';\r\nimport vars from '@/config/vars';\r\n\r\nlet connection;\r\n\r\nexport default {\r\n CreateConnection() {\r\n connection = new HubConnectionBuilder()\r\n .withUrl(vars.PAYMENT_NOTIFICATION_HUB_URL)\r\n .build();\r\n },\r\n\r\n async StartConnection(orderId) {\r\n await connection.start({ withCredentials: false });\r\n await this.RegisterForNotification(orderId);\r\n },\r\n\r\n async RegisterForNotification(orderId) {\r\n await connection.invoke('RegisterOrder', orderId);\r\n },\r\n\r\n OnStatusChange(callback) {\r\n connection.on('StatusUpdated', callback);\r\n },\r\n\r\n CloseConnection() {\r\n connection.stop();\r\n }\r\n};\r\n","module.exports = __webpack_public_path__ + \"img/multi-card.svg\";","import store from '@/store';\r\n\r\nexport default {\r\n PreorderIsRequiredButItHasNotBeenGiven(routeTo) {\r\n let preorderRequired = routeTo.matched.find(m => m.meta.preorderRequired);\r\n if (!preorderRequired)\r\n return false;\r\n\r\n return preorderRequired.meta.preorderRequired && \r\n store.state.preorder.IsLoaded == false;\r\n },\r\n\r\n StopNavigationAndRedirectToMainPage(to, next) {\r\n next(false); // Cancela a navegação\r\n\r\n if (to.name == 'MainPage') return;\r\n\r\n next({ name: 'MainPage', query: { id: to.query.id } });\r\n }\r\n};","import Vue from 'vue';\r\nimport Router from 'vue-router';\r\nimport store from './store';\r\nimport routerHelper from '@/helpers/routerHelper';\r\nimport { logPageView } from '@/helpers/cieloLogger';\r\n\r\nVue.use(Router);\r\n\r\n// Error views\r\nconst NotFoundView = () => import('@/views/Errors/NotFound');\r\nconst InvalidLinkView = () => import('@/views/Errors/InvalidLink');\r\nconst InvalidOrder = () => import('@/views/Errors/InvalidOrder');\r\nconst InvalidUrl = () => import('@/views/Errors/InvalidUrl');\r\n\r\n/**\r\n * Lazy views\r\n */\r\nconst MainPageView = () => import('@/views/MainPage');\r\nconst ChangePaymentTypeView = () => import('@/views/ChangePaymentType');\r\nconst CardPaymentView = () => import('@/views/CardPayment/CardPayment');\r\nconst CardPaymentInstallmentsView = () => import('@/views/CardInstallments');\r\nconst ShippingAddressView = () => import('@/views/ShippingAddress');\r\nconst PersonalDataView = () => import('@/views/PersonalData');\r\nconst PaymentSuccessView = () => import('@/views/PaymentSuccess/PaymentSuccess');\r\nconst PixFinalizeView = () => import('@/views/PixFinalize');\r\nconst QrCodePayView = () => import('@/views/QrCodePay/QrCodePay');\r\nconst QrCodePayFinalizeView = () => import('@/views/QrCodePayFinalize');\r\nconst ClickToPayView = () => import('@/views/ClickToPay/ClickToPay');\r\nconst UserValidationC2PView = () => import('@/views/ClickToPay/steps/UserValidation');\r\nconst CardListC2PView = () => import('@/views/ClickToPay/steps/CardList');\r\nconst IdLookUpAuthenticationC2PView = () => import('@/views/ClickToPay/steps/IdLookUpAuthentication');\r\nconst PaymentSummaryC2PView = () => import('@/views/ClickToPay/steps/PaymentSummary');\r\nconst UnifiedCardPaymentC2PView = () => import('@/views/ClickToPay/steps/UnifiedCardPayment');\r\nconst CardDataView = () => import('@/views/CardPayment/steps/CardData');\r\nconst GooglePayCardInstallmentsView = () => import('@/views/GooglePay/CardInstallments');\r\nconst GooglePayBillingAddressView = () => import('@/views/GooglePay/BillingAddress');\r\nconst OrderStatusView = () => import('@/views/OrderStatus');\r\n\r\nconst routes = [\r\n { path: '*', name: 'NotFound', component: NotFoundView },\r\n { path: '/invalid-link', name: 'InvalidLink', component: InvalidLinkView },\r\n { path: '/', name: 'MainPage', alias: '/main', component: MainPageView },\r\n { path: '/invalid-url/', name: 'InvalidUrl', component: InvalidUrl },\r\n { path: '/order-status-error/', name: 'InvalidOrder', component: InvalidOrder },\r\n {\r\n path: '/order-status',\r\n meta: {\r\n title: 'orderStatus',\r\n },\r\n name: 'OrderStatus',\r\n component: OrderStatusView\r\n },\r\n { path: '/change-payment-type', name: 'ChangePaymentType', component: ChangePaymentTypeView, meta: { preorderRequired: true } },\r\n {\r\n path: '/payment-method/credit-card',\r\n meta: {\r\n title: 'paymentByCreditCard',\r\n preorderRequired: true\r\n },\r\n component: CardPaymentView,\r\n children: [\r\n { path: 'card-data-cred', alias: '/', name: 'CardDataCred', component: CardDataView },\r\n ]\r\n },\r\n {\r\n path: '/payment-method/debit-card',\r\n meta: {\r\n title: 'paymentByDebitCard',\r\n preorderRequired: true\r\n },\r\n component: CardPaymentView,\r\n children: [\r\n { path: 'card-data-debit', alias: '/', name: 'CardDataDebit', component: CardDataView },\r\n ]\r\n },\r\n {\r\n path: '/payment-method/voucher',\r\n meta: {\r\n title: 'paymentByVoucherCard',\r\n preorderRequired: true\r\n },\r\n component: CardPaymentView,\r\n children: [\r\n { path: 'card-data-voucher', alias: '/', name: 'CardDataVoucher', component: CardDataView },\r\n ]\r\n },\r\n {\r\n path: '/payment-method/qr-code-pay',\r\n meta: {\r\n title: 'Pagamento por QR Code Pay',\r\n preorderRequired: true\r\n },\r\n component: QrCodePayView,\r\n children: [\r\n { path: 'installments', name: 'QrCodePayInstallments', component: CardPaymentInstallmentsView, meta: { propBeingEdited: 'pay-installments' } }\r\n ]\r\n },\r\n { path: '/shipping-address', name: 'ShippingAddress', component: ShippingAddressView, meta: { preorderRequired: true } },\r\n { path: '/personal-data', name: 'PersonalData', component: PersonalDataView, meta: { preorderRequired: true } },\r\n { path: '/payment-success', name: 'PaymentSuccess', component: PaymentSuccessView, meta: { preorderRequired: true } },\r\n { path: '/pix/waiting-payment', name: 'PixFinalizeScreen', component: PixFinalizeView, meta: { preorderRequired: true } },\r\n { path: '/qr-code-pay/waiting-payment', name: 'QrCodePayFinalizeScreen', component: QrCodePayFinalizeView, meta: { preorderRequired: true } },\r\n\r\n {\r\n path: '/click-pay',\r\n name: 'ClickToPay',\r\n component: ClickToPayView,\r\n meta: { preorderRequired: true },\r\n children: [\r\n { path: 'user-validation', alias: '/', name: 'UserValidationC2P', component: UserValidationC2PView },\r\n { path: 'card-list', name: 'CardListC2P', component: CardListC2PView },\r\n { path: 'lookup-contacts', name: 'IdLookUpAuthenticationC2P', component: IdLookUpAuthenticationC2PView },\r\n { path: 'new-card', name: 'UnifiedCardPaymentC2P', component: UnifiedCardPaymentC2PView },\r\n ]\r\n },\r\n\r\n {\r\n path: '/payment-method/elo-voucher-card',\r\n meta: {\r\n title: 'paymentByEloVoucherCard',\r\n preorderRequired: true\r\n },\r\n component: CardPaymentView,\r\n children: [\r\n { path: 'card-data-elo-voucher', alias: '/', name: 'CardDataEloVoucher', component: CardDataView },\r\n ]\r\n },\r\n \r\n {\r\n path: '/payment-method/google-pay',\r\n meta: {\r\n title: 'paymentByGooglePay',\r\n preorderRequired: true\r\n },\r\n component: CardPaymentView,\r\n children: [\r\n { path: 'card-installments', alias: '/', name: 'GooglePayCardInstallments', component: GooglePayCardInstallmentsView },\r\n { path: 'billing-address', alias: '/', name: 'GooglePayBillingAddress', component: GooglePayBillingAddressView },\r\n ]\r\n },\r\n];\r\n\r\nconst router = new Router({\r\n mode: 'hash',\r\n routes\r\n});\r\n\r\n/**\r\n * Guardiões de rota.\r\n */\r\nrouter.beforeEach((to, from, next) => {\r\n if (routerHelper.PreorderIsRequiredButItHasNotBeenGiven(to))\r\n return routerHelper.StopNavigationAndRedirectToMainPage(to, next); // Cancela a navegação\r\n\r\n if(to.path !== '/' ) {\r\n logPageView(to.path);\r\n }\r\n\r\n // Caso nenhuma condição acima execute, atualiza o pipeline e segue para a próxima rota\r\n store.commit('pipelineV2/setActualStep', to.name);\r\n next();\r\n});\r\n\r\nrouter.beforeResolve((to, from, next) => {\r\n next();\r\n});\r\n\r\nexport default router;\r\n","import Router from '@/router';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n actualPipeline: [],\r\n actualStep: '',\r\n },\r\n\r\n actions: {\r\n /**\r\n * Navega para o próximo item do pipeline.\r\n */\r\n pushNext({\r\n state,\r\n commit,\r\n rootState\r\n }) {\r\n // Actual Step\r\n let actualStepIndex = state.actualPipeline.indexOf(state.actualStep);\r\n if (!state.actualPipeline[actualStepIndex])\r\n return;\r\n\r\n // Next Step\r\n let nextStepIndex = ++actualStepIndex;\r\n if (!state.actualPipeline[nextStepIndex])\r\n return;\r\n\r\n commit('setActualStep', state.actualPipeline[actualStepIndex]);\r\n\r\n // Navigates to the next item in the pipeline\r\n Router.push({ name: state.actualPipeline[nextStepIndex], query: { id: rootState.preorder.Id } }); \r\n },\r\n\r\n /**\r\n * Navega para o item anterior do pipeline.\r\n */\r\n pushPrevious({\r\n state,\r\n commit,\r\n rootState\r\n }) {\r\n // Actual Step\r\n let actualStepIndex = state.actualPipeline.indexOf(state.actualStep);\r\n if (!state.actualPipeline[actualStepIndex])\r\n return;\r\n\r\n // Previous Step\r\n let nextStepIndex = --actualStepIndex;\r\n if (!state.actualPipeline[nextStepIndex])\r\n return;\r\n\r\n commit('setActualStep', state.actualPipeline[actualStepIndex]);\r\n\r\n\r\n // Navigates to the previous item in the pipeline\r\n Router.push({ name: state.actualPipeline[nextStepIndex], query: { id: rootState.preorder.Id } });\r\n },\r\n\r\n /**\r\n * Navega para uma rota que pode não estar incluída no pipeline.\r\n * @param {String} routeName Nome da rota a ser navegada.\r\n */\r\n pushTo({\r\n commit,\r\n rootState\r\n }, routeName) {\r\n commit('setActualStep', routeName);\r\n\r\n // Navigates to the desired route\r\n Router.push( { name: routeName, query: { id: rootState.preorder.Id } } );\r\n },\r\n\r\n /**\r\n * Navega para a primeira rota do pipeline.\r\n */\r\n pushToFirstStep({\r\n commit,\r\n state,\r\n rootState\r\n }) {\r\n let firstStep = state.actualPipeline[0];\r\n commit('setActualStep', firstStep);\r\n\r\n // Navigates to the desired route\r\n Router.push( { name: firstStep, query: { id: rootState.preorder.Id } } );\r\n }\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Define um novo pipeline\r\n * @param {String} newPipeline Novo pipeline a ser executado.\r\n */\r\n setPipeline(state, newPipeline, actualStep) {\r\n state.actualPipeline = newPipeline;\r\n state.actualStep = actualStep || newPipeline[0];\r\n },\r\n\r\n /**\r\n * Define o step atual\r\n * @param {string} actualStep Step atual do pipeline\r\n */\r\n setActualStep(state, actualStep) {\r\n state.actualStep = actualStep; \r\n }\r\n }\r\n};","import Router from '@/router';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n actualPipeline: {},\r\n actualStep: '',\r\n },\r\n\r\n actions: {\r\n /**\r\n * Navega para o próximo item do pipeline.\r\n */\r\n pushNext({\r\n state,\r\n commit,\r\n rootState\r\n }) {\r\n // Actual Step\r\n let pipelineKeys = Object.keys(state.actualPipeline);\r\n\r\n if (!state.actualPipeline[state.actualStep])\r\n return;\r\n\r\n let actualStepIndex = pipelineKeys.indexOf(state.actualStep);\r\n \r\n // Next Step\r\n let nextStepIndex = ++actualStepIndex;\r\n\r\n while (shouldRenderView(state, pipelineKeys[nextStepIndex]) == false)\r\n {\r\n if (!state.actualPipeline[pipelineKeys[nextStepIndex]])\r\n break;\r\n\r\n nextStepIndex++;\r\n }\r\n\r\n if (!state.actualPipeline[pipelineKeys[nextStepIndex]])\r\n return;\r\n\r\n commit('setActualStep', pipelineKeys[actualStepIndex]);\r\n\r\n // Navigates to the next item in the pipeline\r\n Router.push({ name: pipelineKeys[nextStepIndex], query: { id: rootState.preorder.Id } });\r\n },\r\n\r\n /**\r\n * Navega para o item anterior do pipeline.\r\n */\r\n pushPrevious({\r\n state,\r\n commit,\r\n rootState\r\n }) {\r\n // Actual Step\r\n let pipelineKeys = Object.keys(state.actualPipeline);\r\n\r\n if (!state.actualPipeline[state.actualStep])\r\n return;\r\n\r\n let actualStepIndex = pipelineKeys.indexOf(state.actualStep);\r\n \r\n // Next Step\r\n let nextStepIndex = --actualStepIndex;\r\n\r\n while (shouldRenderView(state, pipelineKeys[nextStepIndex]) == false)\r\n {\r\n if (!state.actualPipeline[pipelineKeys[nextStepIndex]])\r\n break;\r\n\r\n nextStepIndex--;\r\n }\r\n\r\n if (!state.actualPipeline[pipelineKeys[nextStepIndex]])\r\n return;\r\n\r\n commit('setActualStep', pipelineKeys[actualStepIndex]);\r\n\r\n // Navigates to the next item in the pipeline\r\n Router.push({ name: pipelineKeys[nextStepIndex], query: { id: rootState.preorder.Id } });\r\n },\r\n\r\n /**\r\n * Navega para uma rota que pode não estar incluída no pipeline.\r\n * @param {String} routeName Nome da rota a ser navegada.\r\n */\r\n pushTo({\r\n commit,\r\n rootState\r\n }, routeName) {\r\n commit('setActualStep', routeName);\r\n\r\n // Navigates to the desired route\r\n Router.push( { name: routeName, query: { id: rootState.preorder.Id } } );\r\n },\r\n \r\n /**\r\n * Navega para a primeira rota do pipeline.\r\n */\r\n pushToFirstStep({\r\n commit,\r\n state,\r\n rootState\r\n }) {\r\n // Actual Step\r\n let pipelineKeys = Object.keys(state.actualPipeline);\r\n let firstStep = Object.keys(state.actualPipeline)[0];\r\n \r\n commit('setActualStep', firstStep);\r\n\r\n let actualStepIndex = pipelineKeys.indexOf(state.actualStep);\r\n\r\n let nextStepIndex = 0;\r\n while (shouldRenderView(state, pipelineKeys[nextStepIndex]) == false)\r\n {\r\n if (!state.actualPipeline[pipelineKeys[nextStepIndex]])\r\n break;\r\n\r\n nextStepIndex++;\r\n }\r\n\r\n commit('setActualStep', pipelineKeys[actualStepIndex]);\r\n\r\n // Navigates to the desired route\r\n Router.push( { name: pipelineKeys[nextStepIndex], query: { id: rootState.preorder.Id } } );\r\n },\r\n\r\n pushToOrderStatus({}, orderId) {\r\n Router.push( { name: 'OrderStatus', query: { orderId: orderId } } );\r\n },\r\n\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Define um novo pipeline\r\n * @param {String} newPipeline Novo pipeline a ser executado.\r\n */\r\n setPipeline(state, newPipeline, actualStep) {\r\n state.actualPipeline = newPipeline;\r\n state.actualStep = actualStep || newPipeline[0];\r\n },\r\n\r\n /**\r\n * Define o step atual\r\n * @param {string} actualStep Step atual do pipeline\r\n */\r\n setActualStep(state, actualStep) {\r\n state.actualStep = actualStep; \r\n }\r\n }\r\n};\r\n\r\nfunction shouldRenderView(state, nextStep)\r\n{\r\n if (!state.actualPipeline[nextStep])\r\n return false;\r\n\r\n if (state.actualPipeline[nextStep].when == null)\r\n return true;\r\n \r\n if (!state.actualPipeline[nextStep].when())\r\n return false;\r\n\r\n return true;\r\n}","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Name: null,\r\n Email: null,\r\n Phone: null,\r\n Identity: null,\r\n IdentityType: null,\r\n PhoneCountry: null,\r\n CountryCode: null,\r\n AcceptAds: false,\r\n UserAgent: window.navigator.userAgent ? window.navigator.userAgent : null,\r\n },\r\n\r\n getters: {\r\n /**\r\n\t\t * Monta o contrato de autorização\r\n\t\t */\r\n getSubmitModel(state, getters, rootState, rootGetters) {\r\n return {\r\n Guest: {\r\n FullName: state.Name,\r\n Email: state.Email,\r\n Phone: state.Phone,\r\n Identity: state.Identity,\r\n IdentityType: state.IdentityType,\r\n PhoneCountry: state.PhoneCountry,\r\n CountryCode: state.CountryCode,\r\n AcceptAds: state.AcceptAds,\r\n UserAgent: state.UserAgent\r\n }\r\n };\r\n },\r\n\r\n getCustomerFirstDigits(state) {\r\n return state.Identity? state.Identity.slice(0, 3): '***';\r\n },\r\n\r\n getCustomerName(state) {\r\n return state.Name? state.Name: '';\r\n },\r\n },\r\n\r\n mutations: {\r\n setName: (state, name) => (state.Name = name),\r\n setEmail: (state, email) => (state.Email = email),\r\n setPhone: (state, phone) => (state.Phone = phone),\r\n setIdentity: (state, identity) => (state.Identity = identity),\r\n setIdentityType: (state, identityType) => (state.IdentityType = identityType),\r\n setPhoneCountry: (state, phoneCountry) => (state.PhoneCountry = phoneCountry),\r\n setCountryCode: (state, countryCode) => (state.CountryCode = countryCode),\r\n setAcceptAds: (state, acceptAds) => (state.AcceptAds = acceptAds),\r\n\r\n setFromRequest(state, data) {\r\n if (!data) return;\r\n state.Name = data.Name || data.FullName || null;\r\n state.Email = data.Email || null;\r\n state.Phone = data.Phone || null;\r\n state.Identity = data.Identity || null;\r\n state.IdentityType = data.IdentityType || 'CPF';\r\n state.PhoneCountry = data.PhoneCountry || null;\r\n state.CountryCode = data.CountryCode || null;\r\n state.AcceptAds = data.AcceptAds || false;\r\n }\r\n }\r\n};\r\n","import moneyHelper from '@/helpers/moneyHelper';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n PaymentType: null,\r\n PaymentMethodId: null,\r\n NumberOfInstallments: null,\r\n TotalPrice: null,\r\n Discount: null,\r\n ShippingPrice: null,\r\n PaymentMethods: null,\r\n MinimumInstallmentAmount: null,\r\n FixedInstallments: null,\r\n SelectedPaymentMethodInstallmentIsAbleToBeFixed: false\r\n },\r\n\r\n getters: {\r\n /**\r\n * Retorna o número de parcelas.\r\n */\r\n getInstallmentNumberOfPayments: state => state.NumberOfInstallments || 0,\r\n\r\n /**\r\n * Retorna o preço total já removendo o desconto\r\n */\r\n getTotalPrice: (state, getters, rootstate, rootGetters) => { \r\n const shippingPrice = state.ShippingPrice || 0;\r\n const subtotal = (state.TotalPrice || 0) + shippingPrice;\r\n let discountAmount = rootGetters['discount/getDiscountAmount'] || 0;\r\n const total = subtotal - discountAmount;\r\n\r\n return total; \r\n },\r\n\r\n /**\r\n * Retorna o preço total sem o frete já removendo o desconto\r\n */\r\n getTotalPriceWithoutShipping: (state, getters, rootstate, rootGetters) => { \r\n const subtotal = (state.TotalPrice || 0);\r\n let discountAmount = rootGetters['discount/getDiscountAmount'] || 0;\r\n const total = subtotal - discountAmount;\r\n\r\n return total; \r\n },\r\n\r\n /**\r\n * Retorna a lista de installments para o meio de pagamento selecionado\r\n */\r\n getInstallmentListForPaymentMethodSelected(state, getters) {\r\n let selectedPaymentMethod = state.PaymentMethodId || 0;\r\n return getters.getInstallmentListByPaymentMethodId(selectedPaymentMethod);\r\n },\r\n\r\n /**\r\n * Retorna a lista de installments para um determinado meio de pagamento\r\n */\r\n getInstallmentListByPaymentMethodId: (state, getters) => (paymentMethodId) => {\r\n if (!state.PaymentMethods) return;\r\n if (!paymentMethodId) return;\r\n\r\n let paymentMethod = state.PaymentMethods.filter(item => item.Id == paymentMethodId)[0];\r\n let maxNumberOfPayments = paymentMethod.MaxNumberOfPayments;\r\n let calcMaxInstallments = Math.max(1, Math.floor(getters.getTotalPriceWithoutShipping / (state.MinimumInstallmentAmount / 100)));\r\n maxNumberOfPayments= Math.min(maxNumberOfPayments, calcMaxInstallments);\r\n \r\n let accumulator = [];\r\n let fixedInstallments = state.FixedInstallments;\r\n\r\n // Calcula o preço das parcelas\r\n for (let quantity = 1; quantity <= maxNumberOfPayments; quantity++) { \r\n let installmentPrice = moneyHelper.formatToPrice(getters.getTotalPrice / quantity);\r\n accumulator.push({\r\n Value: quantity,\r\n installmentPrice: installmentPrice\r\n });\r\n }\r\n\r\n if(accumulator.length === 1) state.NumberOfInstallments = 1;\r\n\r\n if(fixedInstallments) {\r\n const allowedPaymentTypes = [\r\n PaymentTypes.CREDIT_CARD,\r\n PaymentTypes.QRCODE,\r\n PaymentTypes.CLICK_TO_PAY,\r\n PaymentTypes.GOOGLE_PAY\r\n ];\r\n\r\n let isAbleToBeFixed = allowedPaymentTypes.includes(paymentMethod.PaymentType);\r\n\r\n if(isAbleToBeFixed && accumulator.length >= fixedInstallments) {\r\n state.SelectedPaymentMethodInstallmentIsAbleToBeFixed = true;\r\n state.NumberOfInstallments = fixedInstallments;\r\n accumulator = accumulator.filter(item => item.Value === fixedInstallments);\r\n } else {\r\n state.SelectedPaymentMethodInstallmentIsAbleToBeFixed = false;\r\n }\r\n }\r\n\r\n return accumulator;\r\n },\r\n\r\n /**\r\n * Retorna o valor das parcelas.\r\n */\r\n getFormattedInstallmentPrice(state, getters) {\r\n let numberOfPayments = state.NumberOfInstallments || 1;\r\n let totalPrice = getters.getTotalPrice;\r\n\r\n if (totalPrice == 0)\r\n return moneyHelper.formatToPrice(0);\r\n\r\n return moneyHelper.formatToPrice(totalPrice / numberOfPayments);\r\n },\r\n\r\n /**\r\n * Retorna o preço total formatando as casas decimais.\r\n */\r\n getFormattedPrice: (state, getters) => moneyHelper.formatToPrice(getters.getTotalPrice),\r\n\r\n /**\r\n * Retorna o subtotal formatando as casas decimais.\r\n */\r\n getFormattedSubtotalPrice: (state) => moneyHelper.formatToPrice(state.TotalPrice),\r\n\r\n /**\r\n * Retorna um meio de pagamento pelo ID\r\n */\r\n getPaymentMethodById: (state) => (paymentMethodId) => {\r\n if (!state.PaymentMethods)\r\n return null;\r\n\r\n return state.PaymentMethods.filter(item => item.Id == paymentMethodId)[0];\r\n },\r\n\r\n /**\r\n * Retorna o nome de um tipo de pagamento pelo id\r\n */\r\n getPaymentTypeNameById: (state) => (paymentMethodId) => {\r\n switch (paymentMethodId) {\r\n case PaymentTypes.CREDIT_CARD:\r\n return 'Cartão de crédito';\r\n case PaymentTypes.BOLETO:\r\n return 'Boleto';\r\n case PaymentTypes.ONLINE_DEBIT:\r\n return 'Débito Online';\r\n case PaymentTypes.DEBIT_CARD:\r\n return 'Cartão de débito';\r\n case PaymentTypes.QRCODE:\r\n return 'QR Code™';\r\n case PaymentTypes.CLICK_TO_PAY:\r\n return 'Click To Pay™';\r\n case PaymentTypes.PAT_ELO_VOUCHER:\r\n return 'Voucher Elo';\r\n case PaymentTypes.GOOGLE_PAY:\r\n return 'Google Pay™';\r\n default:\r\n return 'Não identificado';\r\n }\r\n },\r\n\r\n /**\r\n * Retorna o meio de pagamento selecionado\r\n */\r\n getSelectedPaymentMethod(state, getters) {\r\n const selectedPaymentMethod = state.PaymentMethodId || 0;\r\n const paymentMethod = getters.getPaymentMethodById(selectedPaymentMethod);\r\n \r\n if (paymentMethod) {\r\n return {\r\n ...paymentMethod,\r\n Discount: state.Discount,\r\n TypeName: getters.getPaymentTypeNameById(paymentMethod.PaymentType),\r\n PaymentMethod: paymentMethod\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Retorna a bandeira do meio de pagamento selecionado, ou nulo caso não tenha\r\n */\r\n getSelectedCardBrand(state, getters) {\r\n return getters['getSelectedPaymentMethod'].Image || null;\r\n },\r\n\r\n /**\r\n * Retorna o id do meio de pagamento selecionado, ou nulo caso não tenha\r\n */\r\n getSelectedPaymentTypeId(state, getters) {\r\n return getters['getSelectedPaymentMethod'].PaymentMethod.PaymentType || null;\r\n },\r\n\r\n /**\r\n * Monta o contrato de autorização\r\n */\r\n getSubmitModel(state, getters, rootState, rootGetters) {\r\n const isRecurringPayment = rootGetters['recurrentPayment/isRecurringPayment'];\r\n const installments = getters['getInstallmentNumberOfPayments'];\r\n\r\n const paymentType = Number(state.PaymentType);\r\n\r\n return {\r\n Installments: isRecurringPayment || paymentType === 6 || paymentType === 2 || paymentType === 7 || paymentType === 4 || paymentType === 8 ? 1 : installments,\r\n PaymentType: state.PaymentType,\r\n PaymentMethodId: state.PaymentMethodId\r\n };\r\n },\r\n\r\n getDiscount(state) {\r\n return state.Discount || 0;\r\n },\r\n\r\n /**\r\n * Retorna se o método de pagamento selecionado tem parcela fixa\r\n */\r\n getSelectedPaymentMethodInstallmentIsAbleToBeFixed(state) {\r\n return state.SelectedPaymentMethodInstallmentIsAbleToBeFixed;\r\n }\r\n },\r\n\r\n actions: {\r\n updateTotalPrice({ commit, rootGetters }) {\r\n let cartTotalPrice = rootGetters['shoppingCart/getCardItemsTotalPrice'];\r\n let formattedPrice = cartTotalPrice / 100; // Divide por 100 para adicionar os centavos.\r\n\r\n commit('setTotalPrice', formattedPrice);\r\n },\r\n\r\n setPaymentMethod({ state, getters }, paymentMethodId) {\r\n let paymentMethod = getters.getPaymentMethodById(paymentMethodId);\r\n if (!paymentMethod)\r\n throw new Error('Meio de pagamento não suportado');\r\n\r\n state.PaymentType = paymentMethod.PaymentType;\r\n state.PaymentMethodId = paymentMethod.Id;\r\n },\r\n\r\n setShippingPrice({ commit }, shippingPrice) {\r\n commit('setShippingPrice', shippingPrice);\r\n },\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.PaymentMethods = data.PaymentMethods;\r\n state.MinimumInstallmentAmount = data.MinimumInstallmentAmount;\r\n state.FixedInstallments = data.FixedInstallments;\r\n },\r\n\r\n setTotalPrice: (state, totalPrice) => state.TotalPrice = totalPrice,\r\n setNumberOfInstallments: (state, numberOfInstallments) => state.NumberOfInstallments = numberOfInstallments,\r\n\r\n setPaymentMethodNumberOfInstallments: (state, payload) => {\r\n state.PaymentMethods.filter(item => item.Id == payload.paymentMethodId)[0].MaxNumberOfPayments = payload.maxNumberOfPayments || 1;\r\n },\r\n\r\n setShippingPrice(state, shippingPrice) {\r\n state.ShippingPrice = 0;\r\n state.ShippingPrice = shippingPrice / 100;\r\n },\r\n\r\n setPaymentType(state, paymentType) {\r\n state.PaymentType = paymentType;\r\n },\r\n\r\n setDiscount(state, discount) {\r\n state.Discount = discount || 0;\r\n },\r\n\r\n resetPaymentMethod(state) {\r\n state.PaymentType = null;\r\n state.PaymentMethodId = null;\r\n state.Discount = null;\r\n },\r\n resetMethod(state) {\r\n state.PaymentMethodId = null;\r\n }\r\n } \r\n};\r\n","// Import icons\r\nimport CreditCard from '@/assets/img/payment-types/card-v2.svg';\r\nimport DebitCard from '@/assets/img/payment-types/card-v2.svg';\r\nimport BoletoIcon from '@/assets/img/payment-types/boleto-v2.svg';\r\nimport PixIcon from '@/assets/img/payment-types/pix-v2.svg';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\nimport QrCodePay from '@/assets/img/payment-types/qrcode-v2.svg';\r\nimport VoucherCard from '@/assets/img/payment-types/card-v2.svg';\r\nimport MultiCard from '@/assets/img/payment-types/multi-card.svg';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n Types: [\r\n {\r\n Id: PaymentTypes.CREDIT_CARD,\r\n Title: 'Cartão de crédito',\r\n Icon: CreditCard,\r\n Available: true,\r\n StartView: 'CardDataCred',\r\n Text: 'creditCardText'\r\n },\r\n {\r\n Id: PaymentTypes.DEBIT_CARD,\r\n Title: 'Cartão de débito',\r\n Icon: DebitCard,\r\n Available: true,\r\n StartView: 'CardDataDebit',\r\n Text: 'debitCardText'\r\n },\r\n {\r\n Id: PaymentTypes.BOLETO,\r\n Title: 'Boleto Bancário',\r\n Icon: BoletoIcon,\r\n Available: true,\r\n StartView: 'PersonalData',\r\n Text: ''\r\n },\r\n {\r\n Id: PaymentTypes.PIX,\r\n Title: 'Pix',\r\n Icon: PixIcon,\r\n Available: true,\r\n StartView: 'PersonalData',\r\n Text: 'pixText'\r\n },\r\n {\r\n Id: PaymentTypes.QRCODE,\r\n Title: 'QR Code Crédito',\r\n Icon: QrCodePay,\r\n Available: true,\r\n StartView: 'QrCodePayInstallments',\r\n Text: 'qrCodePayText'\r\n },\r\n {\r\n Id: PaymentTypes.VOUCHER,\r\n Title: 'Alimentação / Refeição',\r\n Icon: VoucherCard,\r\n Available: true,\r\n StartView: 'CardDataVoucher',\r\n Text: ''\r\n },\r\n {\r\n Id: PaymentTypes.QRCODE_DEBIT,\r\n Title: 'QR Code Débito',\r\n Icon: QrCodePay,\r\n Available: true,\r\n StartView: 'PersonalData',\r\n Text: 'qrCodeDebitText'\r\n },\r\n {\r\n Id: PaymentTypes.PAT_ELO_VOUCHER,\r\n Title: 'Cartão multibenefícios',\r\n Icon: MultiCard,\r\n Available: true,\r\n StartView: 'CardDataEloVoucher',\r\n Text: 'patEloVouchetText'\r\n },\r\n \r\n ],\r\n\r\n /**\r\n * Payment types that are mapped from the preorder get response.\r\n */\r\n TypesFromPreorder: []\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Map the api response to the module\r\n */\r\n setFromRequest(state, data) {\r\n state.TypesFromPreorder = data;\r\n }\r\n },\r\n\r\n getters: {\r\n /**\r\n * Retorna todos os tipos de pagamento\r\n */\r\n getAll: state => state.Types,\r\n\r\n /**\r\n * Retorna os tipos de pagamento disponíveis para a loja\r\n * \r\n * Obs:\r\n * Caso o pagamento não seja por crédito nem débito, precisamos\r\n * retornar também o id do meio de pagamento, já que nos pagamentos\r\n * por catão, o id do meio de pagamento vem pela consulta bin, e\r\n * como nesses outros meios de pagamento não existe essa consulta,\r\n * o id precisa ser retornado na hora da seleção, para que o módulo\r\n * da storage possa saber o id na hora do processamento.\r\n */\r\n getAvailable: (state, getters, rootState) => {\r\n const types = state.Types.filter(paymentType =>\r\n rootState.payment.PaymentMethods.some(\r\n paymentMethod => paymentMethod.PaymentType == paymentType.Id\r\n )\r\n ).map(paymentType => {\r\n const isCreditOrDebit =\r\n\t\t\t\t\t paymentType.Id == PaymentTypes.CREDIT_CARD ||\r\n paymentType.Id == PaymentTypes.DEBIT_CARD ||\r\n paymentType.Id == PaymentTypes.VOUCHER ||\r\n paymentType.Id == PaymentTypes.PAT_ELO_VOUCHER ||\r\n paymentType.Id == PaymentTypes.GOOGLE_PAY;\r\n \r\n const paymentMethod =\r\n\t\t\t\t\trootState.payment.PaymentMethods.find(\r\n\t\t\t\t\t paymentMethod =>\r\n\t\t\t\t\t paymentMethod.PaymentType == paymentType.Id\r\n\t\t\t\t\t);\r\n \r\n const preorderPaymentType = state.TypesFromPreorder.find(\r\n preorderPaymentType => {\r\n return preorderPaymentType.Type == paymentType.Id;\r\n }\r\n ) || {};\r\n \r\n return {\r\n ...paymentType,\r\n paymentMethodId:\r\n isCreditOrDebit === false \r\n && paymentMethod\r\n && (paymentMethod.Id || null),\r\n discount: preorderPaymentType.Discount\r\n };\r\n });\r\n\r\n return types;\r\n }\r\n }\r\n};\r\n","export default {\r\n 'PreorderId': 'e6cfa046-299c-4969-86b7-000b40cba6d3',\r\n 'MerchantName': 'MeuCheckout Master Key',\r\n 'OrderNumber': '2782019112223135',\r\n 'MerchantLayoutConfiguration': {\r\n 'Id': 12,\r\n 'TestModeEnabled': false,\r\n 'HasLogo': true,\r\n 'BackgroundColor': '246ec1',\r\n 'IsCustomizationEnabled': false\r\n },\r\n 'ShoppingCartItens': [{\r\n 'UnitPrice': 100,\r\n 'Quantity': 3,\r\n 'Name': 'Bala Halls',\r\n 'Description': null,\r\n 'TypeId': 1,\r\n 'Sku': null,\r\n 'ZipCode': '20020080',\r\n 'Weight': 554,\r\n 'ShowDescription': false\r\n }, {\r\n 'UnitPrice': 1000,\r\n 'Quantity': 3,\r\n 'Name': 'Galaxy SIII',\r\n 'Description': null,\r\n 'TypeId': 1,\r\n 'Sku': null,\r\n 'ZipCode': '20020080',\r\n 'Weight': 855,\r\n 'ShowDescription': false\r\n }, {\r\n 'UnitPrice': 800,\r\n 'Quantity': 2,\r\n 'Name': 'Cerveja Hoegaarden',\r\n 'Description': null,\r\n 'TypeId': 1,\r\n 'Sku': null,\r\n 'ZipCode': '20020080',\r\n 'Weight': 216,\r\n 'ShowDescription': false\r\n }],\r\n 'PaymentMethods': [{\r\n 'PaymentType': 4,\r\n 'Id': 10,\r\n 'Image': 'visa',\r\n 'Description': 'Cartão de Débito Visa',\r\n 'MaxNumberOfPayments': 12\r\n },\r\n {\r\n 'PaymentType': 1,\r\n 'Id': 2,\r\n 'Image': 'master',\r\n 'Description': 'Cartão de Crédito Master',\r\n 'MaxNumberOfPayments': 12\r\n },\r\n {\r\n 'Description': 'Boleto BB',\r\n 'Id': 5,\r\n 'Image': 'bb',\r\n 'MaxNumberOfPayments': 1,\r\n 'PaymentType': 2\r\n },\r\n {\r\n 'Description': 'Pix',\r\n 'Id': 50,\r\n 'Image': 'pix',\r\n 'MaxNumberOfPayments': 1,\r\n 'PaymentType': 6\r\n },\r\n {\r\n 'Description': 'QR Code Crédito',\r\n 'Id': 36,\r\n 'Image': 'qrcode',\r\n 'MaxNumberOfPayments': 12,\r\n 'PaymentType': 5\r\n },\r\n {\r\n 'Description': 'Cartão de Débito Elo (Alimentação/Refeição)',\r\n 'Id': 39,\r\n 'Image': 'Alelo',\r\n 'MaxNumberOfPayments': 1,\r\n 'PaymentType': 99\r\n },\r\n {\r\n 'Description': 'Cartão de Crédito PAT Elo Voucher (Alimentação/Refeição)',\r\n 'Id': 41,\r\n 'Image': 'PatEloVoucher',\r\n 'MaxNumberOfPayments': 1,\r\n 'PaymentType': 8\r\n },\r\n ],\r\n 'PaymentType':[\r\n {\r\n 'Type':1,\r\n 'Description':'Cartão de Crédito',\r\n 'Discount':0\r\n },\r\n {\r\n 'Type':4,\r\n 'Description':'Cartão de Débito',\r\n 'Discount':0\r\n },\r\n {\r\n 'Type':5,\r\n 'Description':'QR Code Pay',\r\n 'Discount':0\r\n },\r\n {\r\n 'Type':2,\r\n 'Description':'Boleto',\r\n 'Discount':10\r\n },\r\n {\r\n 'Type': 6,\r\n 'Description':'Pix',\r\n 'Discount':0\r\n },\r\n {\r\n 'Type': 8,\r\n 'Description':'Alimentação e Refeição',\r\n 'Discount':0\r\n },\r\n {\r\n 'Type': 99,\r\n 'Description':'Alimentação / Refeição',\r\n 'Discount':0\r\n },\r\n ],\r\n // 'Customer': {\r\n // 'Name': 'William',\r\n // 'Email': 'wmoura@braspag.com.br',\r\n // 'Phone': '19999999999',\r\n // 'Identity': '123456789'\r\n // },\r\n 'Customer': {\r\n 'Name': null,\r\n 'Email': null,\r\n 'Phone': null,\r\n 'Identity': null,\r\n 'AcceptAds': false\r\n },\r\n 'ShippingAddress': {\r\n 'ZipCode': '99010010',\r\n 'Street': 'Avenida Marechal Câmara',\r\n 'Number': '23',\r\n 'Complement': 'torre 1',\r\n 'District': 'Centro',\r\n 'City': 'Rio de Janeiro',\r\n 'State': 'RJ'\r\n },\r\n // 'ShippingAddress': {\r\n // 'Street': null,\r\n // 'Number': null,\r\n // 'Complement': null,\r\n // 'ZipCode': null,\r\n // 'City': null,\r\n // 'State': null,\r\n // 'Country': null\r\n // },\r\n // 'ShippingType': 1,\r\n 'ShippingMethodsCorreios': [\r\n {\r\n 'Id': '3fd572b7-8873-4fab-9184-8ccca8685173',\r\n 'Description': 'Sedex 10',\r\n 'Price': 1500,\r\n 'DeadLine': 3,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 15,00'\r\n },\r\n {\r\n 'Id': '4fd572b7-8873-4fab-9184-8ccca8685174',\r\n 'Description': 'PAC',\r\n 'Price': 3400,\r\n 'DeadLine': 7,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 34,00'\r\n }\r\n ],\r\n // 'ShippingType': 2,\r\n 'ShippingMethods': [\r\n {\r\n 'Id': 'b93f156a-9dbc-4379-9dc0-a103611029b0',\r\n 'Description': 'Entrega Loggi',\r\n 'Price': 2730,\r\n 'DeadLine': null,\r\n 'CarrierId': 1,\r\n 'FormattedPrice': 'R$ 27,30'\r\n },\r\n {\r\n 'Id': 'e82046f0-9146-40d8-8649-526bffb45161',\r\n 'Description': 'Serviço de entrega próprio',\r\n 'Price': 1200,\r\n 'DeadLine': null,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 12,00'\r\n },\r\n {\r\n 'Id': 'fd2a37bd-b370-4e01-957e-a074eb1ed311',\r\n 'Description': 'UPS Express',\r\n 'Price': 2000,\r\n 'DeadLine': null,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 20,00'\r\n }\r\n ],\r\n 'ShippingType': 3,\r\n 'ShippingMethod': [\r\n {\r\n 'Id': '15812efe-5ec1-4732-8f20-5c852757a18c',\r\n 'Description': 'Frete Grátis',\r\n 'Price': 0,\r\n 'DeadLine': null,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 00,00'\r\n },\r\n {\r\n 'Id': 'fd2a37bd-b370-4e01-957e-a074eb1ed311',\r\n 'Description': 'UPS Express',\r\n 'Price': 2000,\r\n 'DeadLine': null,\r\n 'CarrierId': 0,\r\n 'FormattedPrice': 'R$ 20,00'\r\n }\r\n ],\r\n 'Discount': {\r\n 'TypeId': 2,\r\n 'Amount': 0,\r\n 'Percentage': 20\r\n },\r\n // 'RecurrentPayment': {\r\n // 'Interval': 0,\r\n // 'EndDate': '20/01/2050'\r\n // },\r\n AccessTokenMpiVersionTwo: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ims5SmpxWlJ1cW1xdHdBQzRwV1hub3RLMmxBayJ9.eyJjbGllbnRfbmFtZSI6IlFBXzNEU19BdXRoZW50aWNhdG9yIiwiY2xpZW50X2lkIjoiZGJhM2E4ZGItZmE1NC00MGUwLThiYWItN2JmYjliNmYyZTJlIiwic2NvcGVzIjoie1wiU2NvcGVcIjpcIkJyYXNwYWczRFNBdXRoZW50aWNhdG9yXCIsXCJDbGFpbXNcIjpbe1wiTmFtZVwiOlwiTWVyY2hhbnROYW1lXCIsXCJWYWx1ZXNcIjpbXCJNUEkgUUEgU3RvcmVcIl19LHtcIk5hbWVcIjpcIkVzdGFibGlzaG1lbnRDb2RlXCIsXCJWYWx1ZXNcIjpbXCIxMDA1NTVcIl19LHtcIk5hbWVcIjpcIk1DQ1wiLFwiVmFsdWVzXCI6W1wiNTU1NVwiXX0se1wiTmFtZVwiOlwiUmVmZXJlbmNlSWRcIixcIlZhbHVlc1wiOltcImU4ZTFhYmIyLWM1OTQtNDVmYi1hODFmLTVjMGY5NDkyMWRiOVwiXX1dfSIsImlzcyI6Imh0dHBzOi8vYXV0aHNhbmRib3guYnJhc3BhZy5jb20uYnIiLCJhdWQiOiJVVlF4Y1VBMmNTSjFma1EzSVVFbk9pSTNkbTl0Zm1sNWVsQjVKVVV1UVdnPSIsImV4cCI6MTYyOTIxMTA3NywibmJmIjoxNjI5MTI0Njc3fQ.Tgjv3Y4l24nTqDcnXLbtGLgVtDzldzt20bki5oL4_8GBRhj8OXQ65tOJymMJA_yvkIF1V9kgUOuC5HJ8nylaZx4G9o01K1nzML6LQpIp9glGZe7HNwFVJzSp3j-ar5SxVXUCX1VodalCLNeP-vK5fU88cWbyjHKK0cT8pA7p3mA8-MiHdB3wZykZ1NcsFnC0yKti9TjPEIP543u60GLvMN4KHoj3h_CrVFN31hrIEaTKPYacUPSv2YQKSK9RrhmpW3Y-gwJVOz1j6ykFVvZZvxFlbjCrsG0WkW2cBa2WWr2JI-R0deSqJQKWnb7cys7mi4b8jhnEj7xgPEcMYFI0gg',\r\n MpiDataOnly: false,\r\n EnvironmentToMpi: 'SDB',\r\n DebugMpiScript: true,\r\n MpiCreditAuthenticationEnabled: false,\r\n MpiDebitAuthenticationEnabled: false,\r\n MinimumInstallmentAmount: 1,\r\n WalletMethodInformation: [\r\n {\r\n 'Id': 1,\r\n 'Name': 'Google Pay',\r\n 'Description': 'Integração com Wallet - Google Pay. Apenas transação de crédito',\r\n 'ImageName': 'googlepay.gif',\r\n 'WalletCredentials': {\r\n 'GatewayMerchantId': 'A6E88921-C8CB-49F2-974B-DC3694AB0047',\r\n 'MerchantId': 'BCR2DN4TWWP5DYZY'\r\n }\r\n },\r\n {\r\n 'Id': 2,\r\n 'Name': 'ClickToPay',\r\n 'Description': 'Implementação de Click to Pay (apesar de não ser necessariamente uma Wallet, segue o mesmo padrão',\r\n 'ImageName': 'clicktopay.gif',\r\n 'WalletCredentials': {\r\n 'DpaId': '265D98D2-FB2C-446C-BC3A-6A1E5C41D8B8'\r\n }\r\n }\r\n ],\r\n AffiliationCodeAmex: '',\r\n FixedInstallments: 5,\r\n SupportedCardBrands: [\r\n {\r\n Name: 'Undefined',\r\n IsCredit: false,\r\n IsDebit: false\r\n },\r\n {\r\n Name: 'Visa',\r\n IsCredit: false,\r\n IsDebit: true\r\n },\r\n {\r\n Name: 'Mastercard',\r\n IsCredit: true,\r\n IsDebit: true,\r\n Wallets: [\r\n 'GooglePay',\r\n 'ClickToPay'\r\n ]\r\n },\r\n {\r\n Name: 'Amex',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: [\r\n 'GooglePay'\r\n ]\r\n },\r\n {\r\n Name: 'Diners',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: []\r\n },\r\n {\r\n Name: 'Elo',\r\n IsCredit: true,\r\n IsDebit: true,\r\n Wallets: []\r\n },\r\n {\r\n Name: 'Aura',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: []\r\n },\r\n {\r\n Name: 'Jcb',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: []\r\n },\r\n {\r\n Name: 'Discover',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: [\r\n 'GooglePay'\r\n ]\r\n },\r\n {\r\n Name: 'HiperCard',\r\n IsCredit: true,\r\n IsDebit: false,\r\n Wallets: []\r\n }\r\n ]\r\n};\r\n","import axios from '@/config/axios.config';\r\nimport { logEvent } from '@/helpers/cieloLogger';\r\nimport vars from '@/config/vars';\r\n\r\nimport mocked from '@/mockedPreorder';\r\n\r\nexport default {\r\n namespaced: true,\r\n \r\n state: {\r\n Id: null,\r\n MerchantName: null,\r\n OrderNumber: null,\r\n TestModeEnabled: null,\r\n TransactionIsFinalized: false,\r\n TransactionResponse: null,\r\n IsLoaded: false,\r\n DebitCardAleloPaymentMethod: null,\r\n HasPreorder: false\r\n },\r\n\r\n actions: {\r\n async fetchPreorder({\r\n commit,\r\n dispatch\r\n }, preorderId) {\r\n commit('setIsLoaded', false);\r\n\r\n try {\r\n let response;\r\n\r\n if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve({data: mocked}), 3000));\r\n else\r\n response = await axios.get(`/preorder/${preorderId}`);\r\n\r\n let data = response.data;\r\n \r\n // Atualiza os módulos com base no response.\r\n commit('preorder/setFromRequest', data, { root: true });\r\n commit('antifraud/setFromRequest', data, { root: true });\r\n commit('payment/setFromRequest', data, { root: true });\r\n commit('recurrentPayment/setFromRequest', data, { root: true });\r\n commit('cart/setFromRequest', data, { root: true });\r\n commit('shoppingCart/setFromRequest', data, { root: true });\r\n commit('shippingAddress/setFromRequest', data.ShippingAddress, { root: true });\r\n commit('shippingType/setFromRequest', data.ShippingMethod, { root: true });\r\n commit('shippingType/setShippingType', data.ShippingType, { root: true });\r\n commit('mpi/setFromRequest', data, { root: true }); \r\n commit('paymentTypes/setFromRequest', data.PaymentType, { root: true });\r\n commit('merchantLayout/setFromRequest', data.MerchantLayoutConfiguration, { root: true });\r\n commit('customer/setFromRequest', data.Customer, { root: true });\r\n\r\n //Custom wallets\r\n commit('googlePayPayment/setFromRequest', data, { root: true });\r\n commit('clickToPayPayment/setFromRequest', data, { root: true });\r\n \r\n //Default wallets buttons\r\n commit('walletTypes/setFromRequest', data, { root: true });\r\n\r\n // Inicia o script do fingerprint antifraud\r\n dispatch('antifraud/loadAntifraudScript', null, { root: true });\r\n\r\n // Atualiza o preço total, deve sempre vir por último.\r\n dispatch('payment/updateTotalPrice', null, { root: true });\r\n commit('setIsLoaded', true);\r\n\r\n logEvent({\r\n category: 'Preorder',\r\n action: 'Fetch Preorder',\r\n label: 'Preorder carregada com sucesso'\r\n });\r\n }\r\n catch (error) {\r\n logEvent({\r\n category: 'Preorder',\r\n action: 'Fetch Preorder',\r\n label: `[ERROR]: ${error}`\r\n });\r\n\r\n throw error;\r\n }\r\n }\r\n },\r\n\r\n getters: {\r\n /**\r\n * Pega a primeira letra do nome do merchant para montar o logo\r\n */\r\n getMerchantTextLogo: state => (state.MerchantName) ? state.MerchantName[0] : '',\r\n\r\n /**\r\n * Retorna o OrderId que veio na resposta da transação\r\n */\r\n getOrderNumber: state => state.TransactionResponse? state.TransactionResponse.OrderNumber : '',\r\n\r\n /**\r\n * Retorna o CreatedDate que veio na resposta da transação\r\n */\r\n getOrderDate: state => state.TransactionResponse? state.TransactionResponse.CreatedDate : '',\r\n\r\n /**\r\n * Verifica se a preordem já foi buscada no servidor\r\n */\r\n hasPreorderBeenFetched: state => (state.Id != null) && (state.MerchantName != null),\r\n\r\n /**\r\n * Monta o contrato de autorização\r\n */\r\n getSubmitModel(state) {\r\n return {\r\n preorderId: state.Id\r\n };\r\n },\r\n\r\n hasPreorder: state => state.HasPreorder\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.Id = data.PreorderId;\r\n state.MerchantName = data.MerchantName;\r\n state.OrderNumber = data.OrderNumber;\r\n state.TestModeEnabled = data.MerchantLayoutConfiguration.TestModeEnabled;\r\n state.DebitCardAleloPaymentMethod = data.DebitCardAleloPaymentMethod;\r\n state.HasPreorder = true;\r\n },\r\n\r\n setTransactionAsFinalized(state) {\r\n state.TransactionIsFinalized = true;\r\n },\r\n\r\n setTransactionSuccessfulResponse(state, response) {\r\n state.TransactionResponse = {\r\n ...response\r\n };\r\n },\r\n\r\n setIsLoaded(state, data) {\r\n state.IsLoaded = data;\r\n }\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Items: [],\r\n CartItemsTotalPrice: null\r\n },\r\n\r\n getters: {\r\n getCardItemsTotalPrice(state) {\r\n if (!state.Items)\r\n return 0;\r\n\r\n let accumulator = 0;\r\n state.Items.forEach(item => accumulator += (item.UnitPrice * item.Quantity));\r\n\r\n return accumulator;\r\n },\r\n\r\n /**\r\n * Retorna o cep de origem\r\n */\r\n getSourceZipCode(state) {\r\n const data = state.Items.map((item, index) => {\r\n if (state.Items.indexOf(item) === index)\r\n return item.ZipCode;\r\n });\r\n\r\n return data.filter((item, index) => {\r\n return data.indexOf(item) === index;\r\n })[0];\r\n },\r\n\r\n /**\r\n * Retorna o peso total dos itens no carrinho\r\n */\r\n getTotalWeight(state) {\r\n let accumulator = 0;\r\n state.Items.forEach(item => accumulator += item.Weight);\r\n\r\n return accumulator;\r\n },\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.Items = data.ShoppingCartItens;\r\n }\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n OrgId: null,\r\n BrowserFingerPrint: null,\r\n BrowserIdentifier: null\r\n },\r\n\r\n getters: {\r\n /**\r\n * Monta o contrato do subtmit\r\n */\r\n getSubmitModel(state) {\r\n return {\r\n GatewayFingerprint: state.BrowserFingerPrint,\r\n BrowserIdentifier: state.BrowserIdentifier\r\n };\r\n },\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.OrgId = data.AntifraudOrgId;\r\n state.BrowserFingerPrint = data.BrowserFingerPrint;\r\n state.BrowserIdentifier = data.BrowserIdentifier;\r\n }\r\n },\r\n\r\n actions: {\r\n /**\r\n * Carrega o script de fingerprint do antifraud\r\n */\r\n loadAntifraudScript({ state }) {\r\n let fingerprintUrlQuery = `?org_id=${state.OrgId}&session_id=${state.BrowserFingerPrint}`;\r\n let antifraudScript = document.createElement('script');\r\n antifraudScript.setAttribute('src', `//h.online-metrix.net/fp/tags.js${fingerprintUrlQuery}`);\r\n document.head.appendChild(antifraudScript);\r\n\r\n appendCyberNoscriptToBody(fingerprintUrlQuery);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Cria um fallback noscript para o fingerprint da cyber.\r\n * @param {string} fingerprintUrlQuery Query url com os parâmetros para carregar o fingerprint\r\n */\r\nfunction appendCyberNoscriptToBody(fingerprintUrlQuery)\r\n{\r\n let noscriptTag = document.createElement('noscript');\r\n let noscriptIframe = document.createElement('iframe');\r\n noscriptIframe.setAttribute('style', 'width: 100px; height: 100px; border: 0; position:absolute; top: -5000px;');\r\n noscriptIframe.setAttribute('src', `//h.online-metrix.net/fp/tags${fingerprintUrlQuery}`);\r\n\r\n noscriptTag.appendChild(noscriptIframe);\r\n document.body.appendChild(noscriptTag);\r\n}","import { logEvent } from '@/helpers/cieloLogger';\r\nimport store from '@/store';\r\n\r\nexport default {\r\n /**\r\n * Cria um novo campo no DOM para o mpi, caso o campo exista o mesmo é re-criado\r\n * @param {String} className Classe do mpi a ser criada\r\n * @param {String} value Valor da classe do mpi\r\n */\r\n addMpiField(className, value) {\r\n let existingField = document.getElementsByClassName(className);\r\n if (existingField.length > 0)\r\n document.body.removeChild(existingField[0]);\r\n\r\n let mpiInput = document.createElement('input');\r\n mpiInput.className = className;\r\n mpiInput.type = 'hidden';\r\n mpiInput.value = value;\r\n\r\n document.body.appendChild(mpiInput);\r\n },\r\n\r\n /**\r\n * Retorna um campo do Mpi já registrado\r\n * @param {string} fieldName Nome do campo a ser retornado, sem o prefixo bpmpi_\r\n */\r\n getMpiField(fieldName) {\r\n let field = document.getElementsByClassName(`bpmpi_${fieldName}`)[0];\r\n return field.value;\r\n },\r\n\r\n /**\r\n * Configura os callbacks do mpi\r\n */\r\n setMpiCallbacks() {\r\n let isDataOnly = this.getMpiField('auth_notifyonly') == 'true';\r\n\r\n // Função de configuração do MPI\r\n window.bpmpi_config = function() {\r\n return {\r\n /**\r\n * Script carregado, pronto para autenticar.\r\n */\r\n onReady: () => {\r\n logMpiEvent('onReady', 'Script carregado, iniciando processo de autenticação', isDataOnly);\r\n\r\n store.commit('mpi/setMpiIsReady', true);\r\n bpmpi_authenticate();\r\n },\r\n\r\n /**\r\n * Cartão elegível para autenticação, e portador autenticou com sucesso.\r\n * @param {string} e.Cavv Dado que representa assinatura da autenticação\r\n * @param {string} e.Xid ID que representa a requisição da autenticação\r\n * @param {string} e.Eci Código indicador do e-commerce, que representa o resultado da autenticação\r\n * @param {string} e.Version Versão do 3DS aplicado\r\n * @param {string} e.ReferenceId ID que representa a requisição de autenticação\r\n */\r\n onSuccess: function (e) {\r\n store.commit('mpi/setCavv', e.Cavv);\r\n store.commit('mpi/setXid', e.Xid);\r\n store.commit('mpi/setEci', e.Eci);\r\n store.commit('mpi/setVersion', e.Version);\r\n store.commit('mpi/setReferenceID', e.ReferenceId);\r\n\r\n logMpiEvent('onSuccess', 'Cartão elegível para autenticação, e portador autenticou com sucesso', isDataOnly);\r\n\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n },\r\n\r\n /**\r\n * Cartão elegível para autenticação, porém o portador finalizou com falha.\r\n * @param {string} e.Cavv Dado que representa assinatura da autenticação\r\n * @param {string} e.Xid ID que representa a requisição da autenticação\r\n * @param {string} e.Eci Código indicador do e-commerce, que representa o resultado da autenticação\r\n * @param {string} e.Version Versão do 3DS aplicado\r\n * @param {string} e.ReferenceId ID que representa a requisição de autenticação\r\n */\r\n onFailure: function (e) {\r\n store.commit('mpi/setCavv', e.Cavv);\r\n store.commit('mpi/setXid', e.Xid);\r\n store.commit('mpi/setEci', e.Eci);\r\n store.commit('mpi/setVersion', e.Version);\r\n store.commit('mpi/setReferenceID', e.ReferenceId);\r\n \r\n logMpiEvent('onFailure', 'Cartão elegível para autenticação, porém o portador finalizou com falha', isDataOnly);\r\n\r\n if (isDataOnly && store.state.mpi.AutomaticCancellationWhenUnauthenticated == false)\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n else\r\n store.state.mpi.MpiPromiseCallback.reject(store.state.mpi.multiLanguage.get('cardAuthenticationError'));\r\n },\r\n \r\n /**\r\n * Cartão não elegível para autenticação (não autenticável).\r\n * @param {string} e.Cavv Dado que representa assinatura da autenticação\r\n * @param {string} e.Xid ID que representa a requisição da autenticação\r\n * @param {string} e.Eci Código indicador do e-commerce, que representa o resultado da autenticação\r\n * @param {string} e.Version Versão do 3DS aplicado\r\n * @param {string} e.ReferenceId ID que representa a requisição de autenticação\r\n */\r\n onUnenrolled: function (e) {\r\n store.commit('mpi/setCavv', e.Cavv);\r\n store.commit('mpi/setXid', e.Xid);\r\n store.commit('mpi/setEci', e.Eci);\r\n store.commit('mpi/setVersion', e.Version);\r\n store.commit('mpi/setReferenceID', e.ReferenceId);\r\n\r\n logMpiEvent('onUnenrolled', 'Cartão não elegível para autenticação (não autenticável)', isDataOnly);\r\n\r\n if(store.state.mpi.AutomaticCancellationWhenUnauthenticated == true)\r\n store.state.mpi.MpiPromiseCallback.reject(store.state.mpi.multiLanguage.get('cardAuthenticationError'));\r\n else if (isDataOnly)\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n else\r\n store.state.mpi.MpiPromiseCallback.reject(store.state.mpi.multiLanguage.get('notAuthenticableCardError'));\r\n },\r\n \r\n /**\r\n * Loja não requer autenticação do portador (classe \"bpmpi_auth\" false -> autenticação desabilitada).\r\n */\r\n onDisabled: function () {\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n },\r\n\r\n /**\r\n * Erro no processo de autenticação.\r\n * @param {string} e.Cavv Dado que representa assinatura da autenticação\r\n * @param {string} e.Xid ID que representa a requisição da autenticação\r\n * @param {string} e.Eci Código indicador do e-commerce, que representa o resultado da autenticação\r\n * @param {string} e.ReturnCode Código de retorno da requisição de autenticação\r\n * @param {string} e.ReturnMessage Mensagem de retorno da requisição de autenticação\r\n * @param {string} e.Version Versão do 3DS aplicado\r\n * @param {string} e.ReferenceId ID que representa a requisição de autenticação\r\n */\r\n onError: function (e) {\r\n store.commit('mpi/setCavv', e.Cavv);\r\n store.commit('mpi/setXid', e.Xid);\r\n store.commit('mpi/setEci', e.Eci);\r\n store.commit('mpi/setReturnCode', e.ReturnCode);\r\n store.commit('mpi/setReturnMessage', e.ReturnMessage);\r\n store.commit('mpi/setReferenceID', e.ReferenceId);\r\n\r\n logMpiEvent('onError', 'Erro no processo de autenticação', isDataOnly);\r\n\r\n if (isDataOnly && store.state.mpi.AutomaticCancellationWhenUnauthenticated == false)\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n else\r\n store.state.mpi.MpiPromiseCallback.reject(store.state.mpi.multiLanguage.get('unexpectedAuthenticationError'), isDataOnly);\r\n },\r\n\r\n /**\r\n * Bandeira não suportada para autenticação.\r\n * @param {string} e.ReturnCode Código de retorno da requisição de autenticação\r\n * @param {string} e.ReturnMessage Mensagem de retorno da requisição de autenticação\r\n */\r\n onUnsupportedBrand: function (e) {\r\n store.commit('mpi/setReturnCode', e.ReturnCode);\r\n store.commit('mpi/setReturnMessage', e.ReturnMessage);\r\n \r\n logMpiEvent('onUnsupportedBrand', 'Bandeira não suportada para autenticação', isDataOnly);\r\n\r\n if (isDataOnly && store.state.mpi.AutomaticCancellationWhenUnauthenticated == false)\r\n store.state.mpi.MpiPromiseCallback.resolve();\r\n else\r\n store.state.mpi.MpiPromiseCallback.reject(store.state.mpi.multiLanguage.get('flagDoesNotSupport'));\r\n },\r\n Environment: store.state.mpi.Environment,\r\n Debug: store.state.mpi.Debug\r\n };\r\n };\r\n }\r\n};\r\n\r\nfunction logMpiEvent(mpiEvent, message, isDataOnly)\r\n{\r\n let brand = store.getters['payment/getSelectedPaymentMethod'].Image || 'Indisponível';\r\n let isCreditAuthEnabled = store.state.mpi.CreditAuthenticationEnabled;\r\n let isDebitAuthEnabled = store.state.mpi.DebitAuthenticationEnabled;\r\n let logLabel = `Resultado: [${mpiEvent || 'sem evento'}] | ${message} | Brand: ${brand} | DataOnly: ${isDataOnly} | CreditAuth: ${isCreditAuthEnabled} | DebitAuth: ${isDebitAuthEnabled}`;\r\n\r\n logEvent({\r\n category: 'MPI',\r\n action: 'BPMPI_CONFIG',\r\n label: logLabel\r\n });\r\n};\r\n","import PaymentTypes from '@/models/PaymentTypes';\r\nimport mpiHelper from '@/helpers/mpiHelper';\r\nimport { logException } from '@/helpers/cieloLogger';\r\n\r\nfunction formatDateToDDMMYYYY(date) {\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = date.getFullYear();\r\n return `${day}/${month}/${year}`;\r\n}\r\n\r\nexport default {\r\n /**\r\n * Mapeia os dados do pedido\r\n * @param {Object} rootState Estado global do módulo Vuex da aplicação\r\n\t * @param {Object} rootGetters Métodos computados do módulo Vuex da aplicação\r\n */\r\n mapOrderData(rootState, rootGetters) {\r\n mpiHelper.addMpiField('bpmpi_ordernumber', rootState.preorder.OrderNumber);\r\n mpiHelper.addMpiField('bpmpi_currency', '986'); // 986 - BRL\r\n mpiHelper.addMpiField('bpmpi_totalamount', Math.round(rootGetters['payment/getTotalPrice']*100)); // valor com centavos\r\n mpiHelper.addMpiField('bpmpi_installments', rootState.payment.NumberOfInstallments);\r\n mpiHelper.addMpiField('bpmpi_paymentmethod', parsePaymentType(rootState.payment));\r\n mpiHelper.addMpiField('bpmpi_cardnumber', rootState.cardPayment.CardNumber);\r\n mpiHelper.addMpiField('bpmpi_cardexpirationmonth', rootState.cardPayment.Expiration.Month);\r\n mpiHelper.addMpiField('bpmpi_cardexpirationyear', rootState.cardPayment.Expiration.Year);\r\n // mpiHelper.addMpiField('bpmpi_cardalias', '2021');\r\n // mpiHelper.addMpiField('bpmpi_default_card', '2021');\r\n },\r\n\r\n /**\r\n * Mapeia as características do pedido\r\n * @param {*} rootState Estado global do módulo Vuex da aplicação\r\n */\r\n mapOrderDetails(rootState, rootGetters) {\r\n let isRecurringPayment = rootGetters['recurrentPayment/isRecurringPayment'];\r\n\r\n if (isRecurringPayment) {\r\n\r\n // let endDate = rootGetters['recurrentPayment/getEndDate'] || '2050-01-16';\r\n // mpiHelper.addMpiField('bpmpi_recurring_enddate', endDate);\r\n\r\n let interval = rootState.recurrentPayment.Interval || '0';\r\n let frequencyMap = {\r\n '0': 1, // mensalmente\r\n '1': 2, // bimestralmente\r\n '2': 3, // trimestralmente\r\n '3': 6, // semestralmente\r\n '4': 12 // anualmente\r\n };\r\n let frequency = frequencyMap[interval];\r\n mpiHelper.addMpiField('bpmpi_recurring_frequency', frequency);\r\n\r\n let occurrenceMap = {\r\n '0': '06', // mensalmente\r\n '1': '07', // bimestralmente\r\n '2': '08', // trimestralmente\r\n '3': '10', // semestral\r\n '4': '11' // anualmente\r\n };\r\n let occurrence = occurrenceMap[interval];\r\n mpiHelper.addMpiField('bpmpi_recurring_occurrence', occurrence);\r\n\r\n let originalPurchaseDate = formatDateToDDMMYYYY(new Date());\r\n mpiHelper.addMpiField('bpmpi_recurring_originalpurchasedate', originalPurchaseDate);\r\n\r\n mpiHelper.addMpiField('bpmpi_order_recurrence', true);\r\n\r\n let recurringType = 1;\r\n mpiHelper.addMpiField('bpmpi_recurring_type', recurringType);\r\n\r\n mpiHelper.addMpiField('bpmpi_recurring_validationIndicator', null || 'undefined');\r\n\r\n // Comentado: Valor máximo acordado pelo titular do cartão\r\n // mpiHelper.addMpiField('bpmpi_recurring_maximumAmount', '');\r\n\r\n // Comentado: Número total de pagamentos durante a assinatura recorrente\r\n // mpiHelper.addMpiField('bpmpi_recurring_numberOfPayments', '');\r\n\r\n let preOrderId = rootState.preorder.Id;\r\n mpiHelper.addMpiField('bpmpi_recurring_referenceNumber', preOrderId);\r\n\r\n let amountType = 1;\r\n mpiHelper.addMpiField('bpmpi_recurring_amountType', amountType);\r\n\r\n mpiHelper.addMpiField('bpmpi_order_recurrence', false);\r\n\r\n mpiHelper.addMpiField('bpmpi_recurring_validationIndicator', null);\r\n }\r\n // mpiHelper.addMpiField('bpmpi_recurring_enddate', '');\r\n // mpiHelper.addMpiField('bpmpi_recurring_frequency', '');\r\n // mpiHelper.addMpiField('bpmpi_recurring_originalpurchasedate', '');\r\n // mpiHelper.addMpiField('bpmpi_order_recurrence\t', '');\r\n\r\n /**\r\n * Iremos forçar o productCode PHY\r\n */\r\n\r\n mpiHelper.addMpiField('bpmpi_order_productcode', 'PHY');\r\n // mpiHelper.addMpiField('bpmpi_order_countlast24hours', '');\r\n // mpiHelper.addMpiField('bpmpi_order_countlast6months', '');\r\n // mpiHelper.addMpiField('bpmpi_order_countlast1year', '');\r\n // mpiHelper.addMpiField('bpmpi_order_cardattemptslast24hours', '');\r\n // mpiHelper.addMpiField('bpmpi_order_marketingoptin', '');\r\n // mpiHelper.addMpiField('bpmpi_order_marketingsource', '');\r\n // mpiHelper.addMpiField('bpmpi_transaction_mode', '');\r\n // mpiHelper.addMpiField('bpmpi_merchant_url', 'http://www.loja.com.br');\r\n },\r\n\r\n mapBillingAddress(rootState) {\r\n if (!rootState.billingAddress.SameAsShippingAddress) {\r\n // mpiHelper.addMpiField('bpmpi_billto_customerid', 'http://www.loja.com.br');\r\n // mpiHelper.addMpiField('bpmpi_billto_contactname', 'http://www.loja.com.br');\r\n mpiHelper.addMpiField('bpmpi_billto_phonenumber', rootState.customer.Phone);\r\n mpiHelper.addMpiField('bpmpi_billto_email', rootState.customer.Email);\r\n mpiHelper.addMpiField('bpmpi_shipto_street1', rootState.billingAddress.Street);\r\n mpiHelper.addMpiField('bpmpi_shipto_street2', rootState.billingAddress.Complement);\r\n mpiHelper.addMpiField('bpmpi_shipto_city', rootState.billingAddress.City);\r\n mpiHelper.addMpiField('bpmpi_shipto_state', rootState.billingAddress.State);\r\n mpiHelper.addMpiField('bpmpi_shipto_zipcode', rootState.billingAddress.ZipCode);\r\n // mpiHelper.addMpiField('bpmpi_billto_country', 'http://www.loja.com.br');\r\n }\r\n },\r\n\r\n mapShippingAddress(rootState) {\r\n mpiHelper.addMpiField('bpmpi_shipto_sameasbillto', rootState.billingAddress.SameAsShippingAddress);\r\n // mpiHelper.addMpiField(\"bpmpi_shipto_addressee\", \"http://www.loja.com.br\");\r\n mpiHelper.addMpiField('bpmpi_shipto_phonenumber', rootState.customer.Phone);\r\n mpiHelper.addMpiField('bpmpi_shipto_email', rootState.customer.Email);\r\n mpiHelper.addMpiField('bpmpi_shipto_street1', rootState.shippingAddress.Street);\r\n mpiHelper.addMpiField('bpmpi_shipto_street2', rootState.shippingAddress.Complement);\r\n mpiHelper.addMpiField('bpmpi_shipto_city', rootState.shippingAddress.City);\r\n mpiHelper.addMpiField('bpmpi_shipto_state', rootState.shippingAddress.State);\r\n mpiHelper.addMpiField('bpmpi_shipto_zipcode', rootState.shippingAddress.ZipCode);\r\n mpiHelper.addMpiField('bpmpi_shipto_country', 'BR'); //TODO: quando tiver o estrangeiro colocar o pais correto do pagador\r\n // mpiHelper.addMpiField(\"bpmpi_shipTo_shippingmethod\", '');\r\n // mpiHelper.addMpiField(\"bpmpi_shipto_firstusagedate\", '');\r\n },\r\n\r\n mapCartItems(rootState) {\r\n if (rootState.cart.Items.length > 0) {\r\n rootState.cart.Items.forEach((item, index) => {\r\n mpiHelper.addMpiField(`bpmpi_cart_${index}_description`, item.Description);\r\n mpiHelper.addMpiField(`bpmpi_cart_${index}_name`, item.Name);\r\n mpiHelper.addMpiField(`bpmpi_cart_${index}_sku`, item.Sku);\r\n mpiHelper.addMpiField(`bpmpi_cart_${index}_quantity`, item.Quantity);\r\n mpiHelper.addMpiField(`bpmpi_cart_${index}_unitprice`, item.UnitPrice);\r\n });\r\n }\r\n },\r\n\r\n mapUserData(rootState) {\r\n // mpiHelper.addMpiField('bpmpi_useraccount_guest', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_createddate', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_changeddate', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_passwordchangeddate', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_authenticationmethod', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_authenticationprotocol', '');\r\n // mpiHelper.addMpiField('bpmpi_useraccount_authenticationtimestamp', '');\r\n // mpiHelper.addMpiField('bpmpi_merchant_newcustomer', '');\r\n },\r\n\r\n mapDeviceData: async function(rootState) {\r\n const getUserIP = async () => {\r\n try {\r\n const response = await fetch('https://api.ipify.org?format=json');\r\n const data = await response.json();\r\n return data.ip;\r\n } catch (error) {\r\n logException(error);\r\n return null;\r\n }\r\n };\r\n\r\n const userIP = await getUserIP();\r\n mpiHelper.addMpiField('bpmpi_device_ipaddress', userIP);\r\n mpiHelper.addMpiField('bpmpi_device_1_fingerprint', rootState.antifraud.BrowserFingerPrint);\r\n mpiHelper.addMpiField('bpmpi_device_1_provider', rootState.antifraud.BrowserIdentifier);\r\n mpiHelper.addMpiField('bpmpi_device_channel', 'Browser');\r\n },\r\n\r\n mapEnrollmentData(){\r\n mpiHelper.addMpiField('bpmpi_challenge_window_size', '250x400');\r\n }\r\n};\r\n\r\nfunction parsePaymentType(payment) {\r\n if (payment.PaymentType == PaymentTypes.CREDIT_CARD)\r\n return 'Credit';\r\n else if(payment.PaymentType == PaymentTypes.DEBIT_CARD)\r\n return 'Debit';\r\n\r\n return '';\r\n}\r\n","export default {\r\n AUTHENTICATION: {\r\n DEV: [\r\n 11, // Mastercard crédito\r\n 10, // Visa crédito\r\n 25, // Mastercard\r\n 20, // Elo crédito\r\n 36, // Elo débito\r\n 24, // Visa débito\r\n 18 // Amex crédito\r\n ],\r\n SDB: [\r\n 2, // Mastercard crédito\r\n 1, // Visa crédito\r\n 29, // Mastercard\r\n 28, // Visa débito\r\n 9, // Elo crédito\r\n 37, // Elo débito\r\n 7 // Amex crédito\r\n ],\r\n PRD: [\r\n 1, //Visa crédito \r\n 2, // Mastercard crédito\r\n 13, // Visa débito\r\n 14, // Mastercard\r\n 9, // Elo crédito\r\n 19, // Elo débito\r\n 7 // Amex crédito\r\n ]\r\n },\r\n\r\n DATAONLY: {\r\n DEV: [\r\n 11, // Mastercard crédito\r\n 25, // Mastercard\r\n 10, // Visa crédito\r\n ],\r\n SDB: [\r\n 2, // Mastercard crédito\r\n 29, // Mastercard\r\n 1, // Visa crédito\r\n ],\r\n PRD: [\r\n 2, // Mastercard crédito\r\n 14, // Mastercard\r\n 1, //Visa crédito\r\n ]\r\n }\r\n};\r\n","import mpiHelper from '@/helpers/mpiHelper';\r\nimport mpiFieldMapper from '@/helpers/mpiFieldMapper';\r\nimport vars from '@/config/vars';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\nimport CardBrands from '@/models/CardBrands';\r\nimport MpiPaymentMethods from '@/models/MpiPaymentMethods';\r\nimport store from '@/store';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n Accesstoken: null,\r\n Cavv: null,\r\n Xid: null,\r\n Eci: null,\r\n Version: null,\r\n ReferenceID: null,\r\n ReturnCode: null,\r\n ReturnMessage: null,\r\n DataOnly: null,\r\n Environment: 'SDB',\r\n Debug: true,\r\n CreditAuthenticationEnabled: false,\r\n DebitAuthenticationEnabled: false,\r\n MpiIsReady: false,\r\n MpiPromiseCallback: {\r\n resolve: null,\r\n reject: null\r\n },\r\n multiLanguage: null,\r\n AutomaticCancellationWhenUnauthenticated: false,\r\n AffiliationCodeAmex: null\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.Accesstoken = data.AccessTokenMpiVersionTwo;\r\n state.DataOnly = data.MpiDataOnly;\r\n state.Environment = data.EnvironmentToMpi;\r\n state.Debug = data.DebugMpiScript;\r\n state.CreditAuthenticationEnabled = data.MpiCreditAuthenticationEnabled;\r\n state.DebitAuthenticationEnabled = data.MpiDebitAuthenticationEnabled;\r\n state.AutomaticCancellationWhenUnauthenticated = data.AutomaticCancellationWhenUnauthenticated;\r\n state.AffiliationCodeAmex = data.AffiliationCodeAmex;\r\n },\r\n\r\n setCavv: (state, value) => state.Cavv = value,\r\n setXid: (state, value) => state.Xid = value,\r\n setEci: (state, value) => state.Eci = value,\r\n setVersion: (state, value) => state.Version = value,\r\n setReferenceID: (state, value) => state.ReferenceID = value,\r\n setReturnCode: (state, value) => state.ReturnCode = value,\r\n setReturnMessage: (state, value) => state.ReturnMessage = value,\r\n setMpiIsReady: (state, value) => state.MpiIsReady = value\r\n },\r\n\r\n getters: {\r\n /**\r\n * Monta o contrato de submit\r\n */\r\n getSubmitModel(state, getters, rootState) {\r\n return {\r\n ExternalAuthentication: {\r\n Cavv: state.Cavv,\r\n Xid: state.Xid,\r\n Eci: state.Eci,\r\n Version: state.Version,\r\n ReferenceID: state.ReferenceID,\r\n DataOnly: state.DataOnly,\r\n },\r\n MpiVersionTwoIsEnabled: getters['shouldAuthenticate'],\r\n MpiDataOnlyIsEnabled: getters['shouldUseDataOnly']\r\n };\r\n },\r\n\r\n shouldAuthenticate(state, getters, rootState) {\r\n const cardBrand = store.getters['payment/getSelectedCardBrand'];\r\n const isAmex = cardBrand === CardBrands.AMEX;\r\n\r\n let activePaymentType = store.state.payment.PaymentType;\r\n\r\n let shouldUseMpi = (activePaymentType == PaymentTypes.CREDIT_CARD ||\r\n activePaymentType == PaymentTypes.DEBIT_CARD);\r\n\r\n if (shouldUseMpi === false)\r\n return false;\r\n\r\n if(isAmex && !state.AffiliationCodeAmex)\r\n return false;\r\n\r\n let shouldAuthenticate = state.CreditAuthenticationEnabled && activePaymentType == PaymentTypes.CREDIT_CARD\r\n || activePaymentType == PaymentTypes.DEBIT_CARD;\r\n\r\n if(shouldAuthenticate && state.AutomaticCancellationWhenUnauthenticated == true)\r\n return true;\r\n\r\n return shouldAuthenticate && paymentMethodIsAuthenticable(rootState.payment.PaymentMethodId);\r\n },\r\n\r\n shouldUseDataOnly(state, getters, rootState) {\r\n let dataOnlyIsEnabled = state.DataOnly;\r\n let shouldAuthenticate = getters['shouldAuthenticate'];\r\n let brandCanUseDataOnly = paymentMethodCanUseDataOnly(rootState.payment.PaymentMethodId);\r\n\r\n if(dataOnlyIsEnabled &&\r\n shouldAuthenticate == false &&\r\n state.AutomaticCancellationWhenUnauthenticated == true)\r\n return true;\r\n\r\n return dataOnlyIsEnabled\r\n && shouldAuthenticate == false\r\n && brandCanUseDataOnly;\r\n },\r\n\r\n GetAutomaticCancellationWhenUnauthenticated(state, getters, rootState) {\r\n return state.AutomaticCancellationWhenUnauthenticated;\r\n }\r\n },\r\n\r\n actions: {\r\n /**\r\n * Mapeia se é dataonly ou não e inicia a autenticação.\r\n */\r\n async authenticate({ state, dispatch, rootState, getters }) {\r\n if (getters['shouldAuthenticate'])\r\n mpiHelper.addMpiField('bpmpi_auth_notifyonly', 'false');\r\n else if(getters['shouldUseDataOnly'])\r\n mpiHelper.addMpiField('bpmpi_auth_notifyonly', 'true');\r\n else\r\n return;\r\n\r\n await dispatch('initMpiProcess');\r\n },\r\n\r\n /**\r\n * Inicia o processo de autenticação junto ao MPI.\r\n */\r\n initMpiProcess({ state, rootState, rootGetters }) {\r\n const cardBrand = store.getters['payment/getSelectedCardBrand'];\r\n const isAmex = cardBrand === CardBrands.AMEX;\r\n\r\n return new Promise((resolve, reject) => {\r\n mpiHelper.addMpiField('bpmpi_auth', 'true');\r\n mpiHelper.addMpiField('bpmpi_accesstoken', state.Accesstoken);\r\n\r\n if(isAmex) {\r\n mpiHelper.addMpiField('bpmpi_brand_establishment_code', state.AffiliationCodeAmex);\r\n }\r\n\r\n // Map MPI fields\r\n mpiFieldMapper.mapOrderData(rootState, rootGetters);\r\n mpiFieldMapper.mapOrderDetails(rootState, rootGetters);\r\n mpiFieldMapper.mapDeviceData(rootState);\r\n mpiFieldMapper.mapBillingAddress(rootState);\r\n mpiFieldMapper.mapShippingAddress(rootState);\r\n mpiFieldMapper.mapCartItems(rootState);\r\n mpiFieldMapper.mapUserData(rootState);\r\n mpiFieldMapper.mapEnrollmentData();\r\n\r\n state.MpiPromiseCallback = {\r\n resolve,\r\n reject\r\n };\r\n\r\n if (state.MpiIsReady == false)\r\n {\r\n // Função de configuração do MPI\r\n mpiHelper.setMpiCallbacks();\r\n\r\n // Importa o script do MPI de forma dinâmica\r\n let mpiScript = document.createElement('script');\r\n mpiScript.src = vars.MPI_SCRIPT_URL;\r\n document.head.appendChild(mpiScript);\r\n }\r\n else {\r\n bpmpi_authenticate();\r\n }\r\n });\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Verifica se um determinado meio de pagamento é autenticável.\r\n * O arquivo MpiPaymentMethods contém as configurações\r\n * @param {Number} paymentMethod Código do meio de pagamento\r\n */\r\nfunction paymentMethodIsAuthenticable(paymentMethod) {\r\n let supportedMethods = MpiPaymentMethods.AUTHENTICATION.DEV;\r\n\r\n if (vars.ENVIRONMENT == 'PRD')\r\n supportedMethods = MpiPaymentMethods.AUTHENTICATION.PRD;\r\n else if (vars.ENVIRONMENT == 'SDB')\r\n supportedMethods = MpiPaymentMethods.AUTHENTICATION.SDB;\r\n\r\n let paymentMethodId = parseInt(paymentMethod, 10);\r\n\r\n return supportedMethods.indexOf(paymentMethodId) !== -1;\r\n};\r\n\r\n/**\r\n * Verifica se um determinado meio de pagamento pode passar dataonly.\r\n * O arquivo MpiPaymentMethods contém as configurações\r\n * @param {Number} paymentMethod Código do meio de pagamento\r\n */\r\nfunction paymentMethodCanUseDataOnly(paymentMethod) {\r\n let supportedMethods = MpiPaymentMethods.DATAONLY.DEV;\r\n\r\n if (vars.ENVIRONMENT == 'PRD')\r\n supportedMethods = MpiPaymentMethods.DATAONLY.PRD;\r\n else if (vars.ENVIRONMENT == 'SDB')\r\n supportedMethods = MpiPaymentMethods.DATAONLY.SDB;\r\n\r\n let paymentMethodId = parseInt(paymentMethod, 10);\r\n\r\n return supportedMethods.indexOf(paymentMethodId) !== -1;\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n /**\r\n * Itens do carrinho\r\n * @param {number} Item.UnitPrice\r\n * @param {number} Item.Quantity\r\n * @param {string} Item.Name\r\n * @param {string} Item.Description\r\n * @param {number} Item.TypeId\r\n * @param {string} Item.Sku\r\n * @param {string} Item.ZipCode\r\n * @param {number} Item.Weight\r\n * @param {boolean} Item.ShowDescription\r\n */\r\n Items: [],\r\n Discount: null\r\n },\r\n getters:{\r\n getCartDiscount: state => state.Discount || null\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.Items = data.ShoppingCartItens;\r\n state.Discount = data.Discount;\r\n }\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n \r\n getters: {\r\n getCartDiscountAmount(state, getters, rootState) { \r\n const cartDiscount = rootState.cart.Discount; \r\n let cartDiscountAmount = 0;\r\n\r\n if(!cartDiscount) return cartDiscountAmount; \r\n\r\n const total = rootState.payment.TotalPrice || 0;\r\n\r\n if(isCartDiscountPercentage(cartDiscount) == true)\r\n {\r\n const discountCartPercentage = getCartDiscountPercentage(cartDiscount);\r\n\r\n cartDiscountAmount = getDiscountAmount(total, discountCartPercentage);\r\n\r\n }else\r\n { \r\n cartDiscountAmount = getCartDiscountAmount(cartDiscount); \r\n } \r\n return cartDiscountAmount || 0; \r\n },\r\n\r\n getPaymentMethodDiscountAmount(state, getters, rootState, rootGetters) {\r\n let paymentMethodDiscountAmount = 0;\r\n const cartDiscount = getters.getCartDiscountAmount; \r\n let paymentMethoddiscountPercentage = rootGetters['payment/getDiscount'];\r\n\r\n let amountWithCardDiscount = (rootState.payment.TotalPrice || 0) - cartDiscount;\r\n\r\n paymentMethodDiscountAmount = getDiscountAmount(amountWithCardDiscount, paymentMethoddiscountPercentage);\r\n return paymentMethodDiscountAmount || 0;\r\n },\r\n\r\n getDiscountAmount(state, getters) {\r\n return getters.getCartDiscountAmount + getters.getPaymentMethodDiscountAmount; \r\n } \r\n } \r\n};\r\n\r\nfunction isCartDiscountPercentage(cartDiscount) {\r\n return cartDiscount.TypeId == 2;\r\n}\r\n\r\nfunction getCartDiscountPercentage(cartDiscount) { \r\n return cartDiscount.Percentage || 0;\r\n}\r\n\r\nfunction getCartDiscountAmount(cartDiscount) { \r\n return cartDiscount.Amount / 100 || 0; \r\n}\r\nfunction getDiscountAmount(amount, discountPercentage) {\r\n return ((amount * discountPercentage) / 100) || 0;\r\n}","export default {\r\n 'orderId': '15e020f2-8b34-4e7e-a820-91954b4c17c0',\r\n 'orderNumber': '92fc4932723e4811a7d4a0a3e26e92b4',\r\n 'paymentStatus': 'authorizedidpaypending',\r\n 'idPayLink': 'https://meucheckoutsandbox.braspag.com.br/backoffice?l=cielo',\r\n 'merchantName': 'Loja Testes Cielo',\r\n 'shippingZipCode': '25260107',\r\n 'shippingState': 'RJ',\r\n 'shippingCity': 'Duque de Caxias',\r\n 'shippingDistrict': 'Vila Santa Cruz',\r\n 'shippingNumber': '581',\r\n 'shippingStreet': 'Rua São Félix',\r\n 'shippingComplement': 'loja',\r\n 'shippingType': 'Free',\r\n 'shippingMethod': 'Frete grátis',\r\n 'shippingPrice': 0,\r\n 'totalAmount': 100,\r\n 'paymentType': 1,\r\n 'cardBrand': 'Visa',\r\n 'installmentsNumber': 1,\r\n 'installmentPrice': 100,\r\n 'cardLastFour': '1091',\r\n 'isRecurringPayment': false,\r\n 'customerName': 'william frazao',\r\n 'customerPhone': '21983671150',\r\n 'customerIdentity': '134********',\r\n 'discountAmount': 0,\r\n 'createdDate': '2024-06-19T17:48:37.363',\r\n 'shortUrl': 'https://cielolink.com.br/3xrFeTM',\r\n 'items': [\r\n {\r\n 'unitPrice': 100,\r\n 'quantity': 1,\r\n 'name': 'camisa do descendents',\r\n 'description': 'camisa da banda punk descendents'\r\n }\r\n ]\r\n};\r\n","import axios from '@/config/axios.config';\r\nimport vars from '@/config/vars';\r\nimport mocked from '@/mockedOrderStatus';\r\nimport { logEvent } from '@/helpers/cieloLogger';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n OrderId: null,\r\n OrderNumber: null,\r\n Status: null,\r\n MerchantName: null,\r\n Customer: {\r\n Name: null,\r\n Phone: null,\r\n Identity: null\r\n },\r\n ShippingAddress: {\r\n ZipCode: null,\r\n Street: null,\r\n Number: null,\r\n Complement: null,\r\n District: null,\r\n City: null,\r\n State: null\r\n },\r\n ShippingMethod: {\r\n Description: null,\r\n Price: null,\r\n Type: null\r\n },\r\n TotalPrice: null,\r\n PaymentMethod: {\r\n Type: null,\r\n Brand: null,\r\n InstallmentsNumber: null,\r\n InstallmentPrice: null,\r\n CardLastFour: null,\r\n IsRecurringPayment: false\r\n },\r\n /**\r\n * Itens do carrinho\r\n * @param {number} Item.unitPrice\r\n * @param {number} Item.quantity\r\n * @param {string} Item.name\r\n * @param {string} Item.description\r\n */\r\n ShoppingCartItems: [],\r\n FirstItemDescription: null,\r\n CartDiscount: {\r\n DiscountPercentage: null,\r\n DiscountPrice: null\r\n },\r\n CreatedDate: null,\r\n ShortUrl: null,\r\n HasOrderStatusData: false,\r\n IdPayLink: null\r\n },\r\n\r\n actions: {\r\n async pollingFetchOrderStatus({commit}, orderId) {\r\n try {\r\n let response;\r\n\r\n if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve({data: mocked}), 3000));\r\n else\r\n response = await axios.get(`/OrderStatus/${orderId}`);\r\n\r\n let status = response.data.paymentStatus.toLowerCase();\r\n \r\n // 'authorizedidpaypending' é o valor que vem da api antes de passar pelo nosso de/para\r\n if(status !== 'authorizedidpaypending') {\r\n window.location.reload();\r\n }\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n },\r\n async fetchOrderStatus({\r\n state,\r\n commit,\r\n dispatch\r\n }, orderId) {\r\n try {\r\n let response;\r\n\r\n if(!state.orderId || state.orderId !== orderId) {\r\n commit('orderStatus/setOrderId', orderId, { root: true });\r\n }\r\n\r\n if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve({data: mocked}), 3000));\r\n else\r\n response = await axios.get(`/OrderStatus/${orderId}`);\r\n\r\n let data = response.data;\r\n\r\n commit('orderStatus/setStatus', data.paymentStatus, { root: true });\r\n // TODO: esse if de redirect para tela de erro precisa ser revisado quando novos\r\n // cenários além pagamento por cartão de crédito/débito existirem\r\n if(!state.Status || !data.cardBrand || data.cardBrand.toLowerCase() === 'undefined') return dispatch('pipelineV2/pushTo', 'InvalidUrl', { root: true });\r\n commit('orderStatus/setFromRequest', data, { root: true });\r\n commit('orderStatus/setHasOrderStatusData', true, { root: true });\r\n }\r\n catch (error) {\r\n throw error;\r\n }\r\n },\r\n\r\n mountOrderStatus({\r\n state,\r\n commit,\r\n dispatch,\r\n rootState,\r\n rootGetters\r\n }) {\r\n const selectedPaymentMethod = rootGetters['payment/getSelectedPaymentMethod'];\r\n const shippingMethod = rootGetters['shippingType/getMethod'];\r\n\r\n let data = {\r\n orderNumber: rootState.preorder.OrderNumber,\r\n merchantName: rootState.preorder.MerchantName,\r\n customerName: rootState.customer.Name,\r\n customerPhone: rootState.customer.Phone,\r\n customerIdentity: rootState.customer.Identity,\r\n shippingZipCode: rootState.shippingAddress.ZipCode,\r\n shippingStreet: rootState.shippingAddress.Street,\r\n shippingNumber: rootState.shippingAddress.Number,\r\n shippingComplement: rootState.shippingAddress.Complement,\r\n shippingDistrict: rootState.shippingAddress.District,\r\n shippingCity: rootState.shippingAddress.City,\r\n shippingState: rootState.shippingAddress.State,\r\n paymentType: rootState.payment.PaymentType,\r\n cardBrand: selectedPaymentMethod.Image,\r\n installmentsNumber: rootState.payment.NumberOfInstallments,\r\n installmentPrice: rootState.payment.TotalPrice/rootState.payment.NumberOfInstallments,\r\n CardLastFour: rootGetters['cardPayment/getLast4DigitsFromCardNumber'],\r\n isRecurringPayment: rootGetters['recurrentPayment/isRecurringPayment'],\r\n shippingMethod: shippingMethod.description,\r\n shippingPrice: shippingMethod.price,\r\n shippingType: shippingMethod.id,\r\n items: rootState.cart.Items,\r\n discountAmount: rootGetters['discount/getDiscountAmount'],\r\n createdDate: rootGetters['preorder/getOrderDate'],\r\n totalAmount: rootState.payment.TotalPrice,\r\n };\r\n\r\n if(!state.Status || data.cardBrand === 'Undefined') return dispatch('pipelineV2/pushTo', 'InvalidUrl', { root: true });\r\n commit('orderStatus/setFromRequest', data, { root: true });\r\n },\r\n },\r\n\r\n getters: {\r\n getOrderId: state => state.OrderId,\r\n getOrderNumber: state => state.OrderNumber,\r\n getStatus: state => state.Status,\r\n getMerchantName: state => state.MerchantName,\r\n getCustomer: state => state.Customer,\r\n getShippingAddress: state => state.ShippingAddress,\r\n getShippingMethod: state => state.ShippingMethod,\r\n getTotalPrice: state => state.TotalPrice,\r\n getShoppingCartItems: state => state.ShoppingCartItems,\r\n getFirstItemDescription: state => state.FirstItemDescription,\r\n getCartDiscount: state => state.CartDiscount,\r\n getPaymentMethod: state => state.PaymentMethod,\r\n getCreatedDate: state => state.CreatedDate,\r\n getShortUrl: state => state.ShortUrl,\r\n hasOrderStatusData: state => state.HasOrderStatusData,\r\n getIdPayLink: state => state.IdPayLink\r\n },\r\n\r\n mutations: {\r\n setHasOrderStatusData(state, value) {\r\n state.HasOrderStatusData = value;\r\n },\r\n setFromRequest(state, data) {\r\n const { description } = data.items.find((item) => item.description) || {};\r\n\r\n state.OrderNumber = data.orderNumber;\r\n\r\n state.MerchantName = data.merchantName;\r\n\r\n state.Customer = {\r\n Name: data.customerName,\r\n Phone: data.customerPhone,\r\n Identity: data.customerIdentity,\r\n };\r\n\r\n state.ShippingAddress = {\r\n ZipCode: data.shippingZipCode || null,\r\n Street: data.shippingStreet || null,\r\n Number: data.shippingNumber || null,\r\n Complement: data.shippingComplement || null,\r\n District: data.shippingDistrict || null,\r\n City: data.shippingCity || null,\r\n State: data.shippingState || null\r\n };\r\n\r\n state.PaymentMethod = {\r\n Type: data.paymentType,\r\n Brand: data.cardBrand.toLowerCase(),\r\n InstallmentsNumber: data.installmentsNumber,\r\n InstallmentPrice: data.installmentPrice,\r\n CardLastFour: data.cardLastFour,\r\n IsRecurringPayment: data.isRecurringPayment\r\n };\r\n\r\n state.ShippingMethod = {\r\n Description: data.shippingMethod,\r\n Price: data.shippingPrice,\r\n Type: data.shippingType\r\n };\r\n\r\n state.ShoppingCartItems = data.items;\r\n state.FirstItemDescription = description;\r\n\r\n state.CartDiscount = {\r\n DiscountPrice: data.discountAmount,\r\n DiscountPercentage: data.discountPercentage,\r\n };\r\n\r\n state.CreatedDate = data.createdDate;\r\n state.ShortUrl = data.shortUrl;\r\n state.TotalPrice = data.totalAmount;\r\n\r\n if(data.idPayLink) {\r\n state.IdPayLink = data.idPayLink;\r\n }\r\n\r\n logEvent({\r\n category: 'checkout',\r\n action: 'finalizacao_pedido',\r\n label: `OrderStatus: ${state.Status}`\r\n });\r\n },\r\n setOrderId(state, value) {\r\n state.OrderId = value;\r\n },\r\n setStatus(state, value) {\r\n const status = value.toLowerCase();\r\n\r\n switch (status) {\r\n case 'paid':\r\n state.Status = 'paid';\r\n break;\r\n case 'denied':\r\n case 'voided':\r\n case 'notfinalized':\r\n state.Status = 'denied';\r\n break;\r\n case 'pending':\r\n case 'authorized':\r\n state.Status = 'pending';\r\n break;\r\n case 'authorizedidpaypending':\r\n state.Status = 'idpay_pending';\r\n break;\r\n default:\r\n state.Status = '';\r\n break;\r\n }\r\n },\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Interval: null,\r\n EndDate: null\r\n },\r\n\r\n getters: {\r\n /**\r\n * Verifica se o pagamento é recorrente\r\n */\r\n isRecurringPayment: state => state.Interval !== null,\r\n\r\n /**\r\n * Devolve a data final da recorrência\r\n */\r\n getEndDate: state => state.EndDate,\r\n\r\n /**\r\n * Devolve o interval por extenso\r\n */\r\n getIntervalText: state => {\r\n const intervalSwitch = (item) => ({\r\n '0': 'mensalmente',\r\n '1': 'bimestralmente',\r\n '2': 'trimestralmente',\r\n '3': 'semestralmente',\r\n '4': 'anualmente'\r\n })[item];\r\n\r\n return intervalSwitch(state.Interval);\r\n },\r\n\r\n /**\r\n * Monta o contrato de autorização\r\n */\r\n getSubmitModel(state) {\r\n return {\r\n 'RecurrentPayment': {\r\n 'Interval': state.Interval\r\n }\r\n };\r\n },\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n if (data.RecurrentPayment) {\r\n state.Interval = data.RecurrentPayment.Interval;\r\n state.EndDate = data.RecurrentPayment.EndDate;\r\n }\r\n }\r\n }\r\n};\r\n","export default {\r\n getBinQueryErrorMsg(value) {\r\n switch (value) {\r\n case 'InvalidPatVoucherCard':\r\n return 'wrongFlowPatEloError';\r\n case 'InvalidPatVoucherTransaction':\r\n return 'verifyCardPatEloError';\r\n default:\r\n return 'cardBrandNotSupported';\r\n }\r\n }\r\n};","import vars from '@/config/vars';\r\nimport store from '@/store';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\nimport axios from '@/config/axios.config';\r\nimport binQueryErrorHelper from '@/helpers/binQueryErrorHelper';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n CardNumber: null,\r\n Holder: null,\r\n Expiration: {\r\n Month: null,\r\n Year: null\r\n },\r\n SecurityCode: null,\r\n BinQueryError: null,\r\n idPayDeviceID: null\r\n },\r\n\r\n getters: {\r\n /**\r\n * Retorna os 4 últimos dígitos do cartão ou um pleceholder caso null.\r\n */\r\n getLast4DigitsFromCardNumber: state => (state.CardNumber) ? state.CardNumber.slice(-4) : '****',\r\n\r\n /**\r\n * Retorna o nome do portador do cartão.\r\n */\r\n getCardHolderName: state => state.Holder || 'Sem nome',\r\n\r\n /**\r\n * Monta o contrato de autorização\r\n */\r\n getSubmitModel(state) {\r\n return {\r\n Card: {\r\n Number: state.CardNumber,\r\n Holder: state.Holder,\r\n Month: state.Expiration.Month,\r\n Year: `20${state.Expiration.Year}`,\r\n SecurityCode: state.SecurityCode,\r\n ...store.getters['mpi/getSubmitModel'],\r\n ...store.getters['billingAddress/getSubmitModel'],\r\n },\r\n idPayDeviceID: state.idPayDeviceID\r\n };\r\n },\r\n\r\n /**\r\n * Retorna o Bin do cartão\r\n */\r\n getCardBin: state => (state.CardNumber) ? state.CardNumber.substring(0, 8) : 0,\r\n\r\n /**\r\n * retorna a msg de erro da consulta de bandeira\r\n */\r\n getBinQueryError: state => state.BinQueryError,\r\n },\r\n\r\n mutations: {\r\n setCardNumber: (state, cardNumber) => state.CardNumber = cardNumber,\r\n setHolder: (state, cardHolder) => state.Holder = cardHolder,\r\n setExpirationMonth: (state, expirationMonth) => state.Expiration.Month = expirationMonth,\r\n setExpirationYear: (state, expirationYear) => state.Expiration.Year = expirationYear,\r\n setSecurityCode: (state, securityCode) => state.SecurityCode = securityCode,\r\n \r\n resetState(state) {\r\n state.CardNumber = null,\r\n state.Holder = null,\r\n state.Expiration = {\r\n Month: null,\r\n Year: null\r\n };\r\n state.SecurityCode = null;\r\n },\r\n\r\n /**\r\n * setta a msg de erro da consulta de bandeira\r\n */\r\n setBinQueryError: (state, value) => state.BinQueryError = binQueryErrorHelper.getBinQueryErrorMsg(value),\r\n },\r\n\r\n actions: {\r\n async fetchCardBrand({ getters, dispatch, commit, rootState }) {\r\n let cardBin = getters.getCardBin;\r\n let paymentType = store.state.payment.PaymentType;\r\n let preorderId = rootState.preorder.Id;\r\n \r\n let response;\r\n\r\n if (paymentType == PaymentTypes.VOUCHER)\r\n response = buildAleloResponse(rootState);\r\n else if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve(buildSimulatedResponse()), 1000));\r\n else\r\n response = await axios.get(`brand/${preorderId}/${paymentType}/${cardBin}`);\r\n \r\n if(!response.data.Success) {\r\n commit('setBinQueryError', response.data.ReasonError || '');\r\n }\r\n\r\n // TODO: Verificar se resposta for vazia, meio de pagamento não suportado\r\n let paymentMethodId = response.data.PaymentMethodId;\r\n let maxNumberOfPayments = 0;\r\n\r\n if(response.data.InstallmentsInfo !== null && response.data.InstallmentsInfo.length > 0)\r\n maxNumberOfPayments = response.data.InstallmentsInfo.length;\r\n\r\n commit(\r\n 'payment/setPaymentMethodNumberOfInstallments', \r\n {\r\n paymentMethodId, \r\n maxNumberOfPayments\r\n },\r\n { root: true });\r\n dispatch('payment/setPaymentMethod', paymentMethodId, { root: true });\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * ATENÇÃO!!\r\n * Neste primeiro momento só teremos voucher alelo, \r\n * em um momento em que mais vouchers precisarem ser \r\n * implementados, essa validação precisa sair daqui \r\n * e talvez realizar uma consulta bin na cielo para \r\n * saber se é um voucher e qual a bandeira\r\n */\r\nfunction buildAleloResponse(rootState) {\r\n return {\r\n data: {\r\n PaymentMethodId: rootState.preorder.DebitCardAleloPaymentMethod,\r\n InstallmentsInfo: [\r\n { Installments: 1 }\r\n ]\r\n }\r\n };\r\n}\r\n\r\nfunction buildSimulatedResponse() {\r\n return {\r\n data: {\r\n Brand:'Master',\r\n PaymentMethodId: 2,\r\n Success: true,\r\n ReasonError: null,\r\n InstallmentsInfo: [\r\n { Installments: 1 },\r\n { Installments: 2 },\r\n { Installments: 3 },\r\n { Installments: 4 },\r\n { Installments: 5 },\r\n { Installments: 6 },\r\n { Installments: 7 },\r\n { Installments: 8 }\r\n ]\r\n }\r\n };\r\n}","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Response: {\r\n BoletoNumber: null,\r\n BoletoViewUrl: null\r\n }\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response de sucesso do autorizador\r\n */\r\n boletoSuccessResponse(state, response) {\r\n state.Response.BoletoViewUrl = response.Data.BoletoViewerUrl;\r\n state.Response.BoletoNumber = response.Data.BoletoNumber;\r\n }\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Response: {\r\n QrCodeBase64Image: null,\r\n QrCodeString: null\r\n }\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response de sucesso do autorizador\r\n */\r\n pixSuccessResponse(state, response) {\r\n state.Response.QrCodeBase64Image = response.Data.QrCodeBase64Image;\r\n state.Response.QrCodeString = response.Data.QrCodeString;\r\n }\r\n }\r\n};\r\n","export default {\r\n namespaced: true,\r\n\r\n state: {\r\n Response: {\r\n QrCodeBase64Image: null,\r\n QrCodeString: null\r\n }\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response de sucesso do autorizador\r\n */\r\n qrCodePaySuccessResponse(state, response) {\r\n state.Response.QrCodeBase64Image = response.Data.QrCodeBase64Image;\r\n state.Response.QrCodeString = response.Data.QrCodeString;\r\n }\r\n }\r\n};\r\n","import { checkoutWithCard, encryptAndCheckoutWithNewCard, splitNames } from '@/helpers/clickToPayHelper';\r\nimport vars from '@/config/vars';\r\nimport axios from '@/config/axios.config';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\nimport { logException } from '@/helpers/cieloLogger';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n dpaId: '',\r\n dpaName: '',\r\n isClickToPayEnabled: false,\r\n initialized: false,\r\n availableCardBrands: [],\r\n cards: null,\r\n consumer: {\r\n email: '',\r\n phone: '',\r\n nationalIdentification: '',\r\n fullName: '',\r\n countryCode: '55'\r\n },\r\n consumerPresent: false,\r\n networkId: '',\r\n maskedValidationChannel: '',\r\n supportedValidationChannels: [],\r\n rememberMeAgreement: false,\r\n otpValidation: {\r\n code: '',\r\n disableElements: false,\r\n isSuccessful: false,\r\n error: '',\r\n errorReason: '',\r\n },\r\n checkoutResponse: {\r\n actionCode: '',\r\n correlationId: '',\r\n merchantTransactionId: '',\r\n xSrcCxFlowId: '',\r\n cardPanLastFour: '',\r\n cardArtUri: '',\r\n maskedFullName: '',\r\n },\r\n cardBrandError: '',\r\n recognitionToken: '',\r\n supportedBrandCards: [],\r\n },\r\n\r\n getters: {\r\n getSubmitModel(state, getters, rootState, rootGetters) {\r\n const submitModel = {\r\n ...rootGetters['cardPayment/getSubmitModel'],\r\n PaymentType: PaymentTypes.CREDIT_CARD,\r\n Guest: {\r\n FullName: state.consumer.fullName,\r\n Email: state.consumer.email,\r\n Phone: state.consumer.phone,\r\n Identity: state.consumer.nationalIdentification,\r\n AcceptAds: rootState.customer.AcceptAds,\r\n IsForeign:\r\n\t\t\t\t\t\t rootGetters['billingAddress/getIsNational'] == false,\r\n UserAgent: rootState.customer.UserAgent\r\n },\r\n clickToPay: {\r\n correlationId: state.checkoutResponse.correlationId,\r\n merchantTransactionId: state.checkoutResponse.merchantTransactionId,\r\n xSrcCxFlowId: state.checkoutResponse.xSrcCxFlowId,\r\n dpaId: state.dpaId,\r\n }\r\n };\r\n\r\n const billingModel = rootGetters['billingAddress/getSubmitModel'];\r\n if(!billingModel.BillingAddress) {\r\n return submitModel;\r\n }\r\n\r\n const isBillingValidForClickToPay = billingModel.BillingAddress.IsBillingAddressSameAsShipping\r\n || (billingModel.BillingAddress.ZipCode && billingModel.BillingAddress.City);\r\n\r\n if(!isBillingValidForClickToPay) {\r\n submitModel.Card.BillingAddress = null;\r\n }\r\n\r\n return submitModel;\r\n },\r\n getCard(state, getters, rootState) {\r\n const { firstName, lastName } = splitNames(rootState.cardPayment.Holder);\r\n const billingAddress = rootState.billingAddress.SameAsShippingAddress ? {\r\n name: rootState.cardPayment.Holder,\r\n line1: rootState.shippingAddress.Street,\r\n line2: rootState.shippingAddress.Number,\r\n city: rootState.shippingAddress.City,\r\n state: rootState.shippingAddress.State,\r\n zip: rootState.shippingAddress.ZipCode,\r\n countryCode: 'BR',\r\n } : {\r\n name: rootState.cardPayment.Holder,\r\n line1: rootState.billingAddress.Street,\r\n line2: rootState.billingAddress.Number,\r\n city: rootState.billingAddress.City,\r\n state: rootState.billingAddress.State,\r\n zip: rootState.billingAddress.ZipCode,\r\n countryCode: rootState.billingAddress.Type === 'national' ? 'BR': '',\r\n };\r\n return {\r\n panExpirationMonth: rootState.cardPayment.Expiration.Month.toString(),\r\n panExpirationYear: rootState.cardPayment.Expiration.Year.toString(),\r\n primaryAccountNumber: rootState.cardPayment.CardNumber.toString(),\r\n cardSecurityCode: rootState.cardPayment.SecurityCode.toString(),\r\n cardholderFirstName: firstName,\r\n cardholderLastName: lastName,\r\n billingAddress,\r\n };\r\n },\r\n\r\n getConsumerFirstDigitsC2p(state) {\r\n return state.consumer.nationalIdentification ? state.consumer.nationalIdentification.slice(0, 3): '***';\r\n },\r\n\r\n getConsumerName(state) {\r\n return state.consumer.fullName ? state.consumer.fullName: '';\r\n },\r\n\r\n getRecognitionToken: (state) => state.recognitionToken,\r\n },\r\n\r\n mutations: {\r\n setFromRequest(state, data) {\r\n if(data.WalletMethodInformation && data.SupportedCardBrands) {\r\n const c2pCredentials = data.WalletMethodInformation.find(item => item.Name === 'ClickToPay') || null;\r\n const supportedCardBrands = data.SupportedCardBrands.filter(obj => obj.Wallets && obj.Wallets.includes('ClickToPay')).map(obj => obj.Name) || [];\r\n\r\n if(c2pCredentials && supportedCardBrands.length) {\r\n state.dpaId = c2pCredentials.WalletCredentials.DpaId;\r\n state.isClickToPayEnabled = true;\r\n state.dpaName = data.MerchantLayoutConfiguration? \r\n data.MerchantLayoutConfiguration.Nickname: '';\r\n state.supportedBrandCards = supportedCardBrands.map(brand => brand.toLowerCase());\r\n }\r\n }\r\n },\r\n setCards(state, cards) {\r\n state.cards = cards;\r\n },\r\n setConsumer(state, { email, phone, nationalIdentification, fullName }) {\r\n state.consumer.email = email;\r\n state.consumer.phone = phone;\r\n state.consumer.nationalIdentification = nationalIdentification;\r\n state.consumer.fullName = fullName;\r\n },\r\n setRememberMe(state, rememberMe) {\r\n state.rememberMeAgreement = rememberMe;\r\n },\r\n setValidationChannels(state, { validationChannel, supportedChannels, networkId }) {\r\n state.networkId = networkId;\r\n state.maskedValidationChannel = validationChannel;\r\n state.supportedValidationChannels = supportedChannels;\r\n },\r\n setOtpValidationCode(state, code) {\r\n state.otpValidation.code = code;\r\n },\r\n setOtpValidationDisableElements(state, disableElements) {\r\n state.otpValidation.disableElements = disableElements;\r\n },\r\n setOtpValidationIsSuccessful(state, success) {\r\n state.otpValidation.isSuccessful = success;\r\n },\r\n setOtpValidationError(state, error) {\r\n if(!error.reason) {\r\n state.otpValidation.error = 'otpUnknownError';\r\n state.otpValidation.errorReason = 'INVALID_ERROR_REASON';\r\n return;\r\n }\r\n\r\n state.otpValidation.errorReason = error.reason;\r\n\r\n if(error.reason === 'CODE_INVALID') {\r\n state.otpValidation.error = 'otpInvalidCodeError';\r\n return;\r\n }\r\n\r\n if(error.reason === 'ACCT_INACCESSIBLE') {\r\n state.otpValidation.error = 'otpInaccessibleError';\r\n return;\r\n }\r\n\r\n if(error.reason === 'RETRIES_EXCEEDED') {\r\n state.otpValidation.error = 'otpRetriesExceededError';\r\n return;\r\n }\r\n\r\n state.otpValidation.error = 'otpUnknownError';\r\n },\r\n clearOtpValidationError(state) {\r\n state.otpValidation.error = '';\r\n state.otpValidation.errorReason = '';\r\n },\r\n clearOtpStates(state) {\r\n state.otpValidation.code = '';\r\n state.otpValidation.disableElements = false;\r\n state.otpValidation.isSuccessful = false;\r\n state.otpValidation.error = '';\r\n state.otpValidation.errorReason = '';\r\n },\r\n setCheckoutResponse(state, result) {\r\n state.checkoutResponse.actionCode = result.checkoutActionCode;\r\n\r\n if(result.checkoutActionCode !== 'COMPLETE') {\r\n return;\r\n }\r\n\r\n state.checkoutResponse.correlationId = result.checkoutResponseData.srcCorrelationId;\r\n state.checkoutResponse.merchantTransactionId = result.headers['merchant-transaction-id'];\r\n state.checkoutResponse.xSrcCxFlowId = result.headers['x-src-cx-flow-id'];\r\n\r\n const maskedCard = result.checkoutResponseData.maskedCard;\r\n if(maskedCard) {\r\n state.checkoutResponse.cardPanLastFour = maskedCard.panLastFour;\r\n state.checkoutResponse.cardArtUri = \r\n maskedCard.digitalCardData ? maskedCard.digitalCardData.artUri : '';\r\n }\r\n\r\n if(result.checkoutResponseData.maskedConsumer) {\r\n state.checkoutResponse.maskedFullName = result.checkoutResponseData.maskedConsumer.maskedFullName;\r\n }\r\n },\r\n setCardBrandError(state, errorCode) {\r\n state.cardBrandError = errorCode;\r\n },\r\n clearErrors(state) {\r\n state.cardBrandError = '';\r\n },\r\n setRecognitionToken(state, recognitionToken) {\r\n state.recognitionToken = recognitionToken;\r\n }\r\n },\r\n\r\n actions: {\r\n async checkoutWithNewCard({ dispatch, getters, state }) {\r\n const { firstName, lastName } = splitNames(state.consumer.fullName);\r\n const consumerPayload = {\r\n emailAddress: state.consumer.email,\r\n mobileNumber: {\r\n phoneNumber: state.consumer.phone,\r\n countryCode: state.consumer.countryCode\r\n },\r\n nationalIdentifier: state.consumer.nationalIdentification,\r\n firstName,\r\n lastName,\r\n };\r\n\r\n const card = getters['getCard'];\r\n const result = await encryptAndCheckoutWithNewCard({\r\n ...card\r\n }, consumerPayload, state.rememberMeAgreement);\r\n\r\n dispatch('handleCheckoutResult', result);\r\n },\r\n\r\n async checkoutWithCard({ dispatch, state }, srcDigitalCardId) {\r\n const result = await checkoutWithCard(srcDigitalCardId, state.rememberMeAgreement);\r\n dispatch('handleCheckoutResult', result);\r\n },\r\n\r\n async idLookup({ dispatch, state }, email) {\r\n const getIdLookupResult = await window.mcCheckoutService.idLookup({\r\n email,\r\n });\r\n\r\n state.consumerPresent = getIdLookupResult.consumerPresent;\r\n if(getIdLookupResult.consumerPresent === false) {\r\n return;\r\n }\r\n },\r\n\r\n async validateOtp({ commit, state }) {\r\n try {\r\n commit('setOtpValidationDisableElements', true);\r\n commit('clearOtpValidationError');\r\n \r\n const validationResult = await window.mcCheckoutService.validate({\r\n value: state.otpValidation.code\r\n });\r\n \r\n commit('setCards', validationResult);\r\n commit('setOtpValidationIsSuccessful', true);\r\n } catch (error) {\r\n commit('setOtpValidationIsSuccessful', false);\r\n commit('setOtpValidationDisableElements', false);\r\n commit('setOtpValidationError', error);\r\n }\r\n },\r\n\r\n handleCheckoutResult({ commit, dispatch }, result) {\r\n if(!result) {\r\n commit('setCheckoutResponse', {\r\n checkoutActionCode: 'NULL_RESPONSE'\r\n });\r\n return;\r\n }\r\n\r\n if(result.recognitionToken) {\r\n try {\r\n axios.post('/recognitionToken/saveToken', {token: result.recognitionToken});\r\n } catch (error) {\r\n logException(error);\r\n }\r\n }\r\n\r\n commit('setCheckoutResponse', result);\r\n },\r\n\r\n async initiateValidation({ commit }, validationChannel = null) {\r\n const getInitiateValidationResult = validationChannel? \r\n await window.mcCheckoutService.initiateValidation({\r\n requestedValidationChannelId: validationChannel\r\n }): \r\n await window.mcCheckoutService.initiateValidation();\r\n\r\n commit('setValidationChannels', { \r\n networkId: getInitiateValidationResult.network,\r\n validationChannel: getInitiateValidationResult.maskedValidationChannel, \r\n supportedChannels: getInitiateValidationResult.supportedValidationChannels \r\n });\r\n },\r\n\r\n setPaymentMethod({ rootGetters, rootState }, paymentMethodId) {\r\n let paymentMethod = rootGetters['payment/getPaymentMethodById'](paymentMethodId);\r\n if (!paymentMethod)\r\n throw new Error('Meio de pagamento não suportado');\r\n\r\n rootState.payment.PaymentMethodId = paymentMethod.Id;\r\n },\r\n\r\n async fetchCardBrand({ dispatch, commit, rootState, state }, cardBin) {\r\n commit('clearErrors');\r\n let paymentType = PaymentTypes.CREDIT_CARD;\r\n let preorderId = rootState.preorder.Id;\r\n\r\n let response;\r\n \r\n if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve(buildSimulatedResponse()), 1000));\r\n else\r\n response = await axios.get(`brand/${preorderId}/${paymentType}/${cardBin}`);\r\n \r\n if(!response || !response.data) {\r\n commit('setCardBrandError', 'cardBrandNotSupported');\r\n throw Error('cardBrandNotSupported');\r\n }\r\n\r\n const isVisaAvailable = state.availableCardBrands.find(b => b === 'visa');\r\n if(!isVisaAvailable && response.data.Brand === 'Visa') {\r\n commit('setCardBrandError', 'cardBrandNotSupported');\r\n throw Error('cardBrandNotSupported');\r\n }\r\n\r\n const isMasterAvailable = state.availableCardBrands.find(b => b === 'mastercard');\r\n if(!isMasterAvailable && response.data.Brand === 'Master') {\r\n commit('setCardBrandError', 'cardBrandNotSupported');\r\n throw Error('cardBrandNotSupported');\r\n }\r\n\r\n if(response.data.Brand !== 'Master' && response.data.Brand !== 'Visa') {\r\n commit('setCardBrandError', 'cardBrandNotSupported');\r\n throw Error('cardBrandNotSupported');\r\n }\r\n\r\n let paymentMethodId = response.data.PaymentMethodId;\r\n let maxNumberOfPayments = 0;\r\n\r\n if(response.data.InstallmentsInfo !== null && response.data.InstallmentsInfo.length > 0)\r\n maxNumberOfPayments = response.data.InstallmentsInfo.length;\r\n\r\n commit(\r\n 'payment/setPaymentMethodNumberOfInstallments', \r\n {\r\n paymentMethodId, \r\n maxNumberOfPayments\r\n },\r\n { root: true });\r\n dispatch('setPaymentMethod', paymentMethodId);\r\n }\r\n }\r\n};\r\n\r\nfunction buildSimulatedResponse() {\r\n return {\r\n data: {\r\n Brand:'Visa',\r\n PaymentMethodId: 10, \r\n InstallmentsInfo: [\r\n { Installments: 1 },\r\n { Installments: 2 },\r\n { Installments: 3 },\r\n { Installments: 4 },\r\n { Installments: 5 },\r\n { Installments: 6 },\r\n { Installments: 7 },\r\n { Installments: 8 }\r\n ]\r\n }\r\n };\r\n}","import PaymentTypes from '@/models/PaymentTypes';\r\nimport axios from '@/config/axios.config';\r\nimport vars from '@/config/vars';\r\nimport Vue from 'vue';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n isGooglePayEnabled: false,\r\n isReadyToPay: false,\r\n environment: '',\r\n selectedCard: {\r\n type: 'CARD',\r\n description: '',\r\n info: {\r\n cardNetwork: '',\r\n cardDetails: '',\r\n billingAddress: {\r\n address1: '',\r\n address2: '',\r\n address3: '',\r\n administrativeArea: '',\r\n countryCode: '',\r\n locality: '',\r\n name: '',\r\n postalCode: '',\r\n sortingCode: '',\r\n }\r\n },\r\n tokenizationData: {\r\n type: 'PAYMENT_GATEWAY',\r\n token: ''\r\n }\r\n },\r\n consumer: {\r\n email: '',\r\n phone: '',\r\n fullName: '',\r\n },\r\n billingAddress: {\r\n address1: '',\r\n address2: '',\r\n address3: '',\r\n administrativeArea: '',\r\n countryCode: '',\r\n locality: '',\r\n name: '',\r\n postalCode: '',\r\n sortingCode: '',\r\n },\r\n PaymentMethodToken: {\r\n Type: 'AndroidPay',\r\n WalletKey: {\r\n encryptedMessage: '',\r\n ephemeralPublicKey: '',\r\n tag: ''\r\n },\r\n AdditionalData: {\r\n Signature: ''\r\n }\r\n },\r\n hasPhoneNumber: false,\r\n \r\n //Atributo principal para a prop do web component google-pay-button\r\n paymentRequest: {\r\n apiVersion: 2,\r\n apiVersionMinor: 0,\r\n allowedPaymentMethods: [\r\n {\r\n type: 'CARD',\r\n parameters: {\r\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\r\n allowedCardNetworks: [],\r\n billingAddressRequired: true,\r\n billingAddressParameters: {\r\n format: 'FULL',\r\n phoneNumberRequired: true\r\n }\r\n },\r\n tokenizationSpecification: {\r\n type: 'PAYMENT_GATEWAY',\r\n parameters: {\r\n gateway: 'cielo',\r\n gatewayMerchantId: 'exampleGatewayMerchantId',\r\n },\r\n },\r\n },\r\n ],\r\n merchantInfo: {\r\n merchantId: '',\r\n merchantName: '',\r\n },\r\n transactionInfo: {\r\n totalPriceStatus: 'FINAL',\r\n totalPriceLabel: 'Total',\r\n totalPrice: '0.00',\r\n currencyCode: 'BRL',\r\n countryCode: 'BR',\r\n },\r\n emailRequired: true,\r\n shippingOptionRequired: false,\r\n shippingAddressRequired: false,\r\n },\r\n\r\n shippingAddress: {\r\n countryCode: '',\r\n postalCode: '',\r\n locality: '',\r\n administrativeArea: ''\r\n },\r\n shippingOption: {\r\n id: '',\r\n },\r\n },\r\n \r\n getters: {\r\n getSubmitModel(state, getters, rootState, rootGetters) {\r\n const submitModel = {\r\n ...rootGetters['cardPayment/getSubmitModel'],\r\n PaymentType: PaymentTypes.CREDIT_CARD,\r\n Guest: {\r\n FullName: state.consumer.fullName,\r\n Email: state.consumer.email,\r\n Phone: state.consumer.phone,\r\n Identity: rootState.customer.Identity,\r\n IdentityType: rootState.customer.IdentityType,\r\n AcceptAds: rootState.customer.AcceptAds,\r\n UserAgent: rootState.customer.UserAgent\r\n },\r\n Wallet: state.PaymentMethodToken,\r\n };\r\n\r\n const billingModel = rootGetters['billingAddress/getSubmitModel'];\r\n\r\n if(!billingModel.BillingAddress) {\r\n return submitModel;\r\n }\r\n\r\n const isBillingValidForGooglePay = billingModel.BillingAddress.IsBillingAddressSameAsShipping\r\n || (billingModel.BillingAddress.ZipCode && billingModel.BillingAddress.City);\r\n\r\n if(!isBillingValidForGooglePay) {\r\n submitModel.Card.BillingAddress = null;\r\n }\r\n\r\n return submitModel;\r\n },\r\n\r\n getEnvironment: state => state.environment,\r\n\r\n getSelectedCard: state => state.selectedCard,\r\n\r\n getSelectedCardDescription: state => state.selectedCard.description,\r\n\r\n getPaymentRequest: state => state.paymentRequest,\r\n\r\n getBillingAddressCountryCode: state => state.billingAddress.countryCode,\r\n\r\n getState: state => state,\r\n\r\n getHasPhoneNumber: state => state.hasPhoneNumber,\r\n },\r\n\r\n mutations: {\r\n setFromRequest(state, data) {\r\n if(data.WalletMethodInformation && data.SupportedCardBrands) {\r\n const gpayCredentials = data.WalletMethodInformation.find(item => item.Name === 'Google Pay') || null;\r\n const supportedCardBrands = data.SupportedCardBrands.filter(obj => obj.Wallets && obj.Wallets.includes('GooglePay')).map(obj => obj.Name) || [];\r\n\r\n if(gpayCredentials && supportedCardBrands.length) {\r\n state.isGooglePayEnabled = true;\r\n state.paymentRequest.allowedPaymentMethods[0].tokenizationSpecification.parameters.gatewayMerchantId = gpayCredentials.WalletCredentials.GatewayMerchantId;;\r\n state.paymentRequest.merchantInfo.merchantName = data.MerchantName;\r\n state.paymentRequest.merchantInfo.merchantId = gpayCredentials.WalletCredentials.MerchantId;\r\n state.environment = vars.ENVIRONMENT === 'PRD' ? 'PRODUCTION' : 'TEST';\r\n state.paymentRequest.allowedPaymentMethods[0].parameters.allowedCardNetworks = supportedCardBrands.map(brand => brand.toUpperCase());\r\n // state.environment = vars.USE_SIMULATED_MODE ? 'TEST' : 'PRODUCTION';\r\n }\r\n }\r\n\r\n },\r\n\r\n setFromPaymentData(state, data) {\r\n const jsonString = data.paymentMethodData.tokenizationData.token;\r\n const obj = JSON.parse(jsonString);\r\n\r\n state.selectedCard = data.paymentMethodData;\r\n state.consumer.fullName = data.paymentMethodData.info.billingAddress.name;\r\n state.consumer.phone = data.paymentMethodData.info.billingAddress.phoneNumber;\r\n state.consumer.email = data.email;\r\n state.billingAddress = data.paymentMethodData.info.billingAddress;\r\n state.PaymentMethodToken.WalletKey = obj.signedMessage;\r\n state.PaymentMethodToken.AdditionalData.Signature = obj.signature;\r\n state.hasPhoneNumber = !!data.paymentMethodData.info.billingAddress.phoneNumber;\r\n },\r\n\r\n setTotalPrice(state, totalPrice) {\r\n state.paymentRequest.transactionInfo.totalPrice = totalPrice;\r\n },\r\n\r\n setIsReadyToPay(state, isReadyToPay) {\r\n state.isReadyToPay = isReadyToPay;\r\n },\r\n\r\n // fluxo com entrega descartado\r\n setIntentCallbackWithShippingValues: (state) => {\r\n state.paymentRequest.shippingAddressRequired = true;\r\n state.paymentRequest.callbackIntents = ['PAYMENT_AUTHORIZATION', 'SHIPPING_ADDRESS'];\r\n\r\n let shippingAddressParameters = {\r\n allowedCountryCodes: ['BR'],\r\n };\r\n \r\n Vue.set(state.paymentRequest, 'shippingAddressParameters', shippingAddressParameters);\r\n },\r\n\r\n // fluxo com opção de envio descartado\r\n setShippingOptionParameters(state, shippingMethods) {\r\n state.paymentRequest.shippingOptionRequired = true;\r\n state.paymentRequest.callbackIntents = ['PAYMENT_AUTHORIZATION', 'SHIPPING_ADDRESS', 'SHIPPING_OPTION'];\r\n\r\n let shippingOptionParameters = {\r\n defaultSelectedOptionId: shippingMethods[0].Id,\r\n shippingOptions: shippingMethods.map(shippingMethod => {\r\n return {\r\n id: shippingMethod.Id,\r\n label: shippingMethod.Description,\r\n description: shippingMethod.FormattedPrice,\r\n };\r\n })\r\n };\r\n\r\n Vue.set(state.paymentRequest, 'shippingOptionParameters', shippingOptionParameters);\r\n },\r\n\r\n setShippingAddress(state, shippingAddress) {\r\n state.shippingAddress = shippingAddress;\r\n },\r\n\r\n setShippingOption(state, shippingOption) {\r\n state.shippingOption = shippingOption;\r\n },\r\n\r\n setDefaultSelectedOptionId(state, defaultSelectedOptionId) {\r\n state.paymentRequest.shippingOptionParameters.defaultSelectedOptionId = defaultSelectedOptionId;\r\n },\r\n\r\n setPhone(state, phone) {\r\n state.consumer.phone = phone;\r\n },\r\n\r\n clearSelectedCard(state) {\r\n state.selectedCard = {\r\n type: 'CARD',\r\n description: '',\r\n info: {\r\n cardNetwork: '',\r\n cardDetails: '',\r\n billingAddress: {\r\n address1: '',\r\n address2: '',\r\n address3: '',\r\n administrativeArea: '',\r\n countryCode: '',\r\n locality: '',\r\n name: '',\r\n postalCode: '',\r\n sortingCode: '',\r\n }\r\n },\r\n tokenizationData: {\r\n type: 'PAYMENT_GATEWAY',\r\n token: ''\r\n }\r\n };\r\n }\r\n },\r\n\r\n actions: {\r\n setPaymentMethod({ rootGetters, rootState }, paymentMethodId) {\r\n let paymentMethod = rootGetters['payment/getPaymentMethodById'](paymentMethodId);\r\n if (!paymentMethod)\r\n throw new Error('Meio de pagamento não suportado');\r\n\r\n rootState.payment.PaymentMethodId = paymentMethod.Id;\r\n },\r\n\r\n async fetchCardBrand({ dispatch, commit, rootState, state }, cardBin) {\r\n let paymentType = PaymentTypes.CREDIT_CARD;\r\n let preorderId = rootState.preorder.Id;\r\n\r\n let response;\r\n \r\n if (vars.USE_SIMULATED_MODE)\r\n response = await new Promise(resolve => setTimeout(() => resolve(buildSimulatedResponse()), 1000));\r\n else\r\n response = await axios.get(`brand/${preorderId}/${paymentType}/${cardBin}`);\r\n\r\n let paymentMethodId = response.data.PaymentMethodId;\r\n let maxNumberOfPayments = 0;\r\n\r\n if(response.data.InstallmentsInfo !== null && response.data.InstallmentsInfo.length > 0)\r\n maxNumberOfPayments = response.data.InstallmentsInfo.length;\r\n\r\n commit(\r\n 'payment/setPaymentMethodNumberOfInstallments', \r\n {\r\n paymentMethodId, \r\n maxNumberOfPayments\r\n },\r\n { root: true });\r\n dispatch('setPaymentMethod', paymentMethodId);\r\n },\r\n\r\n setShippingAddress({ commit, dispatch, rootGetters }, shippingAddress) {\r\n commit('setShippingAddress', shippingAddress);\r\n },\r\n\r\n setShippingOption({ commit, dispatch, rootGetters }, shippingOption) {\r\n const methods = rootGetters['shippingType/getMethods'];\r\n\r\n if (methods.length && shippingOption.id !== 'shipping_option_unselected') {\r\n const selectedShippingMethod = methods.filter(method => method.id === shippingOption.id)[0];\r\n\r\n dispatch('shippingType/setShippingMethodId', selectedShippingMethod, { root: true });\r\n \r\n commit('setShippingOption', shippingOption);\r\n commit('setDefaultSelectedOptionId', shippingOption.id);\r\n }\r\n },\r\n\r\n setBillingAddress({ commit, dispatch, rootGetters, state }) {\r\n dispatch('billingAddress/setFromGooglePay', state.billingAddress, { root: true });\r\n }\r\n }\r\n};\r\n\r\nfunction buildSimulatedResponse() {\r\n return {\r\n data: {\r\n Brand:'Master',\r\n PaymentMethodId: 2,\r\n Success: true,\r\n ReasonError: null,\r\n InstallmentsInfo: [\r\n { Installments: 1 },\r\n { Installments: 2 },\r\n { Installments: 3 },\r\n { Installments: 4 },\r\n { Installments: 5 },\r\n { Installments: 6 },\r\n { Installments: 7 },\r\n { Installments: 8 }\r\n ]\r\n }\r\n };\r\n}","// Import icons\r\nimport ClickToPay from '@/assets/img/payment-types/c2p.svg';\r\nimport PaymentTypes from '@/models/PaymentTypes';\r\n\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n Types: [\r\n {\r\n Id: PaymentTypes.CLICK_TO_PAY,\r\n WalletName: 'ClickToPay',\r\n Title: 'clickToPayModalTitle',\r\n Icon: ClickToPay,\r\n StartView: 'UserValidationC2P',\r\n Text: 'clickToPayWithSavedCard',\r\n IsNew: false,\r\n LogCategory: 'click_to_pay',\r\n LogAction: 'forma_pagamento_c2p',\r\n LogLabel: 'Usuário escolhe a forma de pagamento expressa - clicando no batao do Click to Pay.',\r\n Available: false,\r\n },\r\n ],\r\n\r\n /**\r\n * Payment types that are mapped from the preorder get response.\r\n */\r\n TypesFromPreorder: []\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Map the api response to the module\r\n */\r\n setFromRequest(state, data) {\r\n state.TypesFromPreorder = data.WalletMethodInformation || [];\r\n }\r\n },\r\n\r\n getters: {\r\n /**\r\n * Retorna todos os tipos de pagamento\r\n */\r\n getAll: state => state.Types,\r\n\r\n /**\r\n * Retorna os tipos de pagamento de wallet para a loja\r\n */\r\n getAvailable(state, getters, rootState, rootGetters) {\r\n return state.Types.filter(type => {\r\n const matchedTypeFromPreorder = state.TypesFromPreorder.find(typeFromPreorder => typeFromPreorder.Name === type.WalletName);\r\n if (!matchedTypeFromPreorder) {\r\n return false;\r\n }\r\n \r\n switch (type.WalletName) {\r\n case 'ClickToPay':\r\n return type.Available = rootState.clickToPayPayment.isClickToPayEnabled && rootState.clickToPayPayment.initialized;\r\n \r\n // Add more cases as needed\r\n default:\r\n return type.Available;\r\n }\r\n });\r\n }\r\n }\r\n};\r\n","import { isNullOrWhitespace } from '@/helpers/stringHelper';\r\nimport { Validator } from 'vee-validate';\r\n\r\nconst getDefaultState = () => {\r\n return {\r\n ZipCode: null,\r\n Street: null,\r\n Number: null,\r\n Complement: null,\r\n District: null,\r\n City: null,\r\n State: null,\r\n FetchedFields: []\r\n };\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: () => getDefaultState(),\r\n\r\n getters: {\r\n getSubmitModel(state) {\r\n return {\r\n ShippingAddress: {\r\n ZipCode: state.ZipCode,\r\n Street: state.Street,\r\n Number: state.Number,\r\n Compl: state.Complement,\r\n District: state.District,\r\n City: state.City,\r\n State: state.State\r\n }\r\n };\r\n },\r\n\r\n getTargetZipCode(state) {\r\n return state.ZipCode;\r\n }\r\n },\r\n\r\n mutations: {\r\n setZipCode: (state, zipCode) => (state.ZipCode = zipCode),\r\n setStreet: (state, street) => (state.Street = street),\r\n setNumber: (state, number) => (state.Number = number),\r\n setComplement: (state, complement) => (state.Complement = complement),\r\n setDistrict: (state, district) => (state.District = district),\r\n setCity: (state, city) => (state.City = city),\r\n setState: (state, _state) => (state.State = _state),\r\n\r\n /**\r\n\t\t * Mapeia o response da api para o módulo\r\n\t\t */\r\n setFromRequest(state, data) {\r\n state.FetchedFields = [];\r\n if (!data) return;\r\n\r\n MapAddress(state, data);\r\n MapCommonFetchedFields(state);\r\n\r\n if (isNullOrWhitespace(state.Complement) == false)\r\n state.FetchedFields.push('complement');\r\n if (isNullOrWhitespace(state.Number) == false)\r\n state.FetchedFields.push('number');\r\n if (isNullOrWhitespace(state.ZipCode) == false)\r\n state.FetchedFields.push('zipcode');\r\n },\r\n\r\n ADDRESS_UPDATED(state, data) {\r\n state.FetchedFields = [];\r\n if (!data) return;\r\n\r\n MapAddress(state, data);\r\n MapCommonFetchedFields(state);\r\n },\r\n\r\n resetState(state) {\r\n Object.assign(state, getDefaultState());\r\n }\r\n },\r\n\r\n actions: {\r\n /**\r\n\t\t * Aplica reset no state quando o campo Zip Code for vazio\r\n\t\t */\r\n resetState({ commit }) {\r\n commit('shippingAddress/resetState', null, { root: true });\r\n }\r\n }\r\n};\r\n\r\nfunction validateAndSplitValue(value, maxLength) {\r\n const v = new Validator();\r\n const { valid } = v.verify(value, `max:${maxLength}`);\r\n\r\n if (valid) {\r\n return value;\r\n } else if(value) {\r\n return value.slice(0, maxLength);\r\n }\r\n return null;\r\n}\r\n\r\n\r\n//Helpers\r\nfunction MapAddress(state, data) {\r\n state.Street = data.Street || data.Name;\r\n state.Number = validateAndSplitValue(data.Number, 8);\r\n state.Complement = data.Complement || null;\r\n state.District = data.District;\r\n state.City = data.City;\r\n state.State = data.State;\r\n state.ZipCode = data.ZipCode;\r\n}\r\n\r\nfunction MapCommonFetchedFields(state) {\r\n if (isNullOrWhitespace(state.Street) == false)\r\n state.FetchedFields.push('street');\r\n if (isNullOrWhitespace(state.District) == false)\r\n state.FetchedFields.push('district');\r\n if (isNullOrWhitespace(state.City) == false)\r\n state.FetchedFields.push('city');\r\n if (isNullOrWhitespace(state.State) == false)\r\n state.FetchedFields.push('state');\r\n}\r\n","import vars from '@/config/vars';\r\nimport axios from '@/config/axios.config';\r\nimport mocked from '@/mockedPreorder';\r\nimport ShippingTypes from '@/models/ShippingTypes';\r\nimport { logEvent } from '@/helpers/cieloLogger';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n Methods: [],\r\n ShippingMethodId: null,\r\n ShippingType: null,\r\n ShippingChecksum: null,\r\n ShippingDeadline: null,\r\n ShowShippingMethod: false\r\n },\r\n\r\n getters: {\r\n /**\r\n * Monta o contrato de autorização\r\n */\r\n getSubmitModel(state) {\r\n return {\r\n ShippingMethodId: state.ShippingMethodId,\r\n ShippingType: state.ShippingType,\r\n ShippingMethods: state.Methods,\r\n ShippingChecksum: state.ShippingChecksum,\r\n ShippingDeadline: state.ShippingDeadline\r\n };\r\n },\r\n\r\n getMethods(state) {\r\n return state.Methods;\r\n },\r\n\r\n getMethod(state) {\r\n if(state.Methods)\r\n return state.Methods.filter(item => item.id == state.ShippingMethodId)[0];\r\n\r\n return false;\r\n },\r\n\r\n getType(state) {\r\n return state.ShippingType;\r\n },\r\n\r\n getShowShippingMethod(state) {\r\n return state.ShowShippingMethod;\r\n }\r\n },\r\n\r\n mutations: {\r\n setShippingMethodId: (state, id) => state.ShippingMethodId = id,\r\n setShippingType: (state, type) => state.ShippingType = type,\r\n setShippingDeadline: (state, deadline) => state.ShippingDeadline = deadline,\r\n setShowShippingMethod: (state, show) => state.ShowShippingMethod = show,\r\n\r\n /**\r\n * Mapeia o response da preorder para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n if (!data) return;\r\n\r\n // Mapeamento para as apis, que retornam maiúsculas em alguns endpoints e maiúsculas em outros.\r\n state.Methods = data.map(method =>\r\n {\r\n let item = {\r\n carrierId: method.CarrierId || method.carrierId || 0,\r\n description: method.Description || method.description || '',\r\n formattedPrice: method.FormattedPrice || method.formattedPrice,\r\n id: method.Id || method.id,\r\n price: method.Price || method.price || 0,\r\n deadLine: method.DeadLine || method.deadLine || 0,\r\n img: '',\r\n shippingTypeLoggi: false,\r\n observation: method.observation\r\n };\r\n\r\n const isLoggi = new RegExp(/\\bloggi\\b/,'gi').test(item.description);\r\n\r\n /**\r\n * Assume-se que caso o shipping type seja loggi e não retorne loggi no cálculo,\r\n * o fallback dos correios foi acionado, portanto precisamos alterar o shipping type\r\n * para enviar oa backend.\r\n */\r\n if (state.ShippingType == ShippingTypes.LOGGI && isLoggi == false)\r\n {\r\n state.ShippingType = ShippingTypes.CORREIOS;\r\n }\r\n\r\n item.shippingTypeLoggi = isLoggi;\r\n item.img = isLoggi\r\n ? require('@/assets/img/shipping-type-card-loggi.svg')\r\n : require('@/assets/img/icons/freight.svg');\r\n\r\n return item;\r\n });\r\n },\r\n\r\n /**\r\n * Mapeia o checksum retornado da api para o módulo\r\n */\r\n setChecksumFromShippingApiRequest(state, data) {\r\n state.ShippingChecksum = data.checksum;\r\n },\r\n },\r\n\r\n actions: {\r\n setShippingMethodId({ commit }, payload) {\r\n commit('shippingType/setShippingMethodId', payload.id, { root: true });\r\n commit('shippingType/setShippingDeadline', payload.deadLine, { root: true });\r\n commit('payment/setShippingPrice', payload.price, { root: true });\r\n },\r\n\r\n async calculateShipping({ commit, rootGetters, rootState }) {\r\n /**\r\n * SIMULADO\r\n */\r\n if (vars.USE_SIMULATED_MODE) {\r\n await new Promise(resolve => {\r\n setTimeout(() => {\r\n const data = mocked.ShippingMethodsCorreios;\r\n\r\n commit('shippingType/setFromRequest', data, { root: true });\r\n resolve();\r\n }, 2000);\r\n });\r\n return;\r\n }\r\n\r\n /**\r\n * PRODUÇÃO\r\n */\r\n let preorderId = rootState.preorder.Id;\r\n let sourceZipCode = rootGetters['shoppingCart/getSourceZipCode'];\r\n let targetZipCode = rootGetters['shippingAddress/getTargetZipCode'];\r\n let weight = rootGetters['shoppingCart/getTotalWeight'] || 0;\r\n let {\r\n Street,\r\n Number,\r\n City,\r\n District,\r\n State,\r\n Complement\r\n } = rootState['shippingAddress'];\r\n\r\n let response = await axios.post('ShippingPrice', {\r\n preorderId,\r\n sourceZipCode,\r\n targetZipCode,\r\n weight,\r\n Street,\r\n Number,\r\n City,\r\n District,\r\n State,\r\n Complement\r\n });\r\n\r\n if(!response.data.types || response.data.types.length == 0)\r\n throw new Error();\r\n\r\n commit('setFromRequest', response.data.types);\r\n commit('setChecksumFromShippingApiRequest', response.data);\r\n }\r\n }\r\n};\r\n","import { isNullOrWhitespace } from '@/helpers/stringHelper';\r\n\r\nconst getDefaultState = () => {\r\n return {\r\n SameAsShippingAddress: false,\r\n Type: 'national',\r\n ZipCode: null,\r\n Street: null,\r\n AddressLine2: null,\r\n Number: null,\r\n Complement: null,\r\n District: null,\r\n City: null,\r\n State: null,\r\n FetchedFields:[]\r\n };\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: () => getDefaultState(),\r\n\r\n getters: {\r\n getSubmitModel(state) {\r\n return {\r\n BillingAddress: {\r\n ZipCode: state.ZipCode,\r\n Street: state.Street,\r\n District: state.District,\r\n Number: state.Number,\r\n Compl: state.Complement || state.AddressLine2,\r\n City: state.City,\r\n State: state.State,\r\n IsBillingAddressSameAsShipping: state.SameAsShippingAddress\r\n }\r\n };\r\n },\r\n\r\n getSameAsShippingAddress: (state) => state.SameAsShippingAddress,\r\n\r\n getIsNational: (state) => state.Type == 'national'\r\n },\r\n\r\n mutations: {\r\n setSameAsShippingAddress(state, sameAsShippingAddress) {\r\n state.SameAsShippingAddress = sameAsShippingAddress;\r\n },\r\n setType(state, type) {\r\n this.commit('billingAddress/resetState');\r\n\r\n state.Type = type;\r\n },\r\n setZipCode: (state, zipCode) => state.ZipCode = zipCode,\r\n setStreet: (state, street) => state.Street = street,\r\n setAddressLine2: (state, addressLine2) => state.AddressLine2 = addressLine2,\r\n setNumber: (state, number) => state.Number = number,\r\n setComplement: (state, complement) => state.Complement = complement,\r\n setDistrict: (state, district) => state.District = district,\r\n setCity: (state, city) => state.City = city,\r\n setState: (state, _state) => state.State = _state,\r\n\r\n setFromGooglePay(state, billingAddress) {\r\n state.ZipCode = billingAddress.postalCode;\r\n state.Street = billingAddress.address1;\r\n state.AddressLine2 = billingAddress.address2;\r\n state.City = billingAddress.locality;\r\n state.State = billingAddress.administrativeArea;\r\n },\r\n\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.FetchedFields = [];\r\n if (!data) return;\r\n\r\n state.Street = data.Street;\r\n state.AddressLine2 = data.AddressLine2 || null;\r\n state.Number = data.Number || null;\r\n state.Complement = data.Complement || null;\r\n state.District = data.District;\r\n state.City = data.City;\r\n state.State = data.State;\r\n\r\n if(isNullOrWhitespace(state.Street) == false)\r\n state.FetchedFields.push('street');\r\n if(isNullOrWhitespace(state.District) == false)\r\n state.FetchedFields.push('district');\r\n if(isNullOrWhitespace(state.City) == false)\r\n state.FetchedFields.push('city');\r\n if(isNullOrWhitespace(state.State) == false)\r\n state.FetchedFields.push('state');\r\n },\r\n\r\n \r\n\r\n resetState(state) {\r\n Object.assign(state, getDefaultState());\r\n }\r\n },\r\n\r\n actions: {\r\n /**\r\n * Aplica reset no state quando o campo Zip Code for vazio\r\n */\r\n resetState({ commit }) {\r\n commit('billingAddress/resetState', null, { root: true });\r\n },\r\n\r\n setFromGooglePay({ commit }, billingAddress) {\r\n commit('setFromGooglePay', billingAddress);\r\n }\r\n }\r\n};","import vars from '@/config/vars';\r\n\r\nexport default {\r\n namespaced: true,\r\n\r\n state: {\r\n HasLogo: false,\r\n BackgroundColor: null,\r\n IsCustomizationEnabled: false,\r\n Id: null\r\n },\r\n\r\n getters: {\r\n getLogoUrl(state) {\r\n const logoId = state.Id;\r\n return `${vars.CIELO_CHECKOUT_URL}/TransactionalVNext/Checkout/GetLogoMerchantByLayoutId/${logoId}`;\r\n },\r\n\r\n getNewLogoUrl(state) {\r\n const logoId = state.Id;\r\n return `${vars.CIELO_CHECKOUT_URL}/TransactionalVNext/Checkout/GetLogoMerchantByLayoutId/${logoId}`;\r\n },\r\n },\r\n\r\n mutations: {\r\n /**\r\n * Mapeia o response da api para o módulo\r\n */\r\n setFromRequest(state, data) {\r\n state.BackgroundColor = data.BackgroundColor;\r\n state.HasLogo = data.HasLogo;\r\n state.IsCustomizationEnabled = data.IsCustomizationEnabled;\r\n state.Id = data.Id;\r\n }\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\n// Modules\r\nimport pipeline from './modules/pipelines/pipeline';\r\nimport pipelineV2 from './modules/pipelines/pipelineV2';\r\nimport customer from './modules/customer';\r\nimport payment from './modules/payment';\r\nimport paymentTypes from './modules/payments/payment-types';\r\nimport preorder from './modules/preorder';\r\nimport shoppingCart from './modules/shopping-cart';\r\nimport antifraud from './modules/antifraud';\r\nimport mpi from './modules/mpi';\r\nimport cart from './modules/cart';\r\nimport discount from './modules/discount';\r\nimport orderStatus from './modules/orderStatus';\r\n// Payment modules\r\nimport recurrentPayment from './modules/payments/recurrentPayment';\r\nimport cardPayment from './modules/payments/card-payment';\r\nimport boletoPayment from './modules/payments/boletoPayment';\r\nimport pixPayment from './modules/payments/pixPayment';\r\nimport qrCodePayment from './modules/payments/qrCodePayment';\r\nimport clickToPayPayment from './modules/payments/clickToPayPayment';\r\nimport googlePayPayment from './modules/payments/googlePayPayment';\r\nimport walletTypes from './modules/payments/wallet-types';\r\n// Shipping Address\r\nimport shippingAddress from './modules/shipping/shippingAddress';\r\nimport shippingType from './modules/shipping/shippingType';\r\n// Billing\r\nimport billingAddress from './modules/billingAddress';\r\n//Wallet\r\nimport merchantLayout from './modules/merchantLayout';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n strict: false,\r\n modules: {\r\n pipeline,\r\n pipelineV2,\r\n customer,\r\n payment,\r\n paymentTypes,\r\n preorder,\r\n shoppingCart,\r\n antifraud,\r\n recurrentPayment,\r\n mpi,\r\n cardPayment,\r\n shippingAddress,\r\n shippingType,\r\n billingAddress,\r\n cart,\r\n boletoPayment,\r\n pixPayment,\r\n qrCodePayment,\r\n clickToPayPayment,\r\n googlePayPayment,\r\n merchantLayout,\r\n discount,\r\n orderStatus,\r\n walletTypes\r\n }\r\n});\r\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=08eb0b82&prod&lang=css&\"","module.exports = __webpack_public_path__ + \"img/card-v2.svg\";","module.exports = __webpack_public_path__ + \"img/c2p.svg\";","/* global ga */\r\n/*eslint no-console: [\"error\", { allow: [\"info\", \"error\"] }] */\r\nimport store from '@/store';\r\nimport vars from '@/config/vars';\r\n\r\nlet isInDevMode = vars.ENVIRONMENT === 'DEV';\r\n\r\nexport function initializeLogging(loggingToken) {\r\n if (isInDevMode)\r\n return;\r\n\r\n ga('create', loggingToken, 'auto');\r\n}\r\n\r\nexport function logEvent(params) {\r\n let preorderId = store.state.preorder.Id || '[Sem PreorderId]';\r\n gaWrapper('send', {\r\n hitType: 'event',\r\n eventCategory: params.category,\r\n eventAction: params.action,\r\n eventLabel: `${params.label} | PreorderID: ${preorderId}`\r\n });\r\n}\r\n\r\nfunction gaWrapper(action, type) {\r\n if (isInDevMode && type == 'exception')\r\n return console.error('Google Analytics:', arguments);\r\n\r\n if (isInDevMode)\r\n return console.info('Google Analytics:', arguments);\r\n \r\n ga(...arguments);\r\n}\r\n\r\nexport function logPageView(page) {\r\n gaWrapper('send', 'pageview', page);\r\n}\r\n\r\nexport function logException(err) {\r\n let errorMessage = `[ERROR] ${(err) ? err.stack : 'Erro sem stack'}`;\r\n gaWrapper('send', 'exception', { exDescription: errorMessage });\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"h-100\",attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=08eb0b82&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=08eb0b82&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { MLanguage } from 'vue-multilanguage';\r\n\r\nexport default new MLanguage('en').create({\r\n // Header\r\n safeEnvironment: 'Environment',\r\n safeEnvironmentSuffix: ' 100% Safe',\r\n\r\n //Footer\r\n developedBy: 'Developed by',\r\n securePayment: 'Secure payment',\r\n\r\n // Link Info\r\n linkInfo: 'Sent a payment request',\r\n\r\n // Total Overview\r\n totalAmount: 'Total amount',\r\n delivery: 'Delivery',\r\n deliveryAddress: 'Delivery address',\r\n payment: 'Payment',\r\n\r\n // Card Overview\r\n purchaseSummary: 'Purchase Summary',\r\n productOrServiceDescription: 'Product or service description',\r\n showDescription: 'Show description',\r\n hideDescription: 'Hide description',\r\n\r\n // Cart Items\r\n more: 'more',\r\n showLess: 'show less',\r\n seeAllItems: 'See all items',\r\n hideItems: 'Hide items',\r\n\r\n // Shipping Method Overview\r\n within2Hours: 'Within 2 Hours',\r\n withinOneBusinessDay: 'Within 1 Business Day',\r\n withinAnyBusinessDays: 'Within {0} Business Days',\r\n free: 'Free',\r\n\r\n // Common\r\n of: 'of',\r\n off: 'off',\r\n cartDiscount: 'Cart discount',\r\n discountOn: 'Discount on',\r\n zipcode: 'Zipcode',\r\n street: 'Street',\r\n addressLine1: 'Address Line 1',\r\n addressLine2: 'Address Line 2 (Optional)',\r\n number: 'Number',\r\n complement: 'Complement',\r\n district: 'District',\r\n city: 'City',\r\n state: 'State',\r\n province: 'Province',\r\n cpf: 'CPF',\r\n cnpj: 'CNPJ',\r\n foreign: 'Foreign',\r\n foreigner: 'State, province, district (acronym)',\r\n continue: 'Continue',\r\n confirmPayment: 'Confirm payment',\r\n back: 'Back',\r\n cancel: 'Cancel',\r\n thanks: 'Thanks!',\r\n notAvailable: 'Not available',\r\n copyCode: 'Copy code',\r\n retry: 'Retry',\r\n copied: 'Copied',\r\n identityConfirmation: 'Identity confirmation',\r\n confirmIdentity: 'Confirm identity',\r\n\r\n // Address\r\n chooseYourState: 'Choose your state',\r\n chooseYourProvince: 'Choose your province',\r\n forgotIt: 'I forgot it',\r\n\r\n // Shipping Type\r\n selectDeliveryType: 'Select a delivery option',\r\n shippingAddressInfo: 'Enter delivery address',\r\n freight: 'Freight',\r\n freightDefined: 'Freight defined',\r\n\r\n // Change Payment Type\r\n chooseHowYouWantToPay: 'Choose how you want to pay',\r\n orChooseOtherWays: 'or choose other ways',\r\n otherPaymentMethods: 'Other payment methods',\r\n expressPayment: 'Express card payment',\r\n\r\n // Personal Data\r\n personalDataSubtitle: 'Almost done! Fill the form below to continue',\r\n fullName: 'Full name',\r\n email: 'E-mail',\r\n cellPhone: 'Cell Phone',\r\n identity: 'Document number',\r\n identityC2P: 'Document number',\r\n billingAddress: 'Billing address',\r\n termsPreffix: 'I have read and accept the',\r\n termsSuffix: ' terms and conditions of use',\r\n privacyPreffix: `I want to receive promotions from Cielo's business partners. More details`,\r\n privacySuffix: ' Privacy Policy',\r\n completePurchase: 'Complete purchase',\r\n sameAddressOption: 'My billing address is the same as shipping',\r\n\r\n // Billing Address\r\n nationalAddress: 'National address',\r\n internationalAddress: 'International address',\r\n national: 'National',\r\n international: 'International',\r\n\r\n // Card Payment\r\n paymentByCreditCard: 'Payment by credit card',\r\n paymentByDebitCard: 'Payment by debit card',\r\n paymentByVoucherCard: 'Payment by voucher',\r\n paymentByEloVoucherCard: 'Payment by Elo Voucher card',\r\n paymentByGooglePay: 'Payment by Google Pay',\r\n cardName: 'Name',\r\n expiration: 'Expiration',\r\n securityCode: 'Security code',\r\n cardNameHolder: 'Holder\\'s name (as shown on card)',\r\n cardNameHolderValidation: 'Holder\\'s name',\r\n cardNumber: 'Card number',\r\n\r\n // Payment Success\r\n paymentSuccessTitle: 'Your order has been successfully placed!',\r\n paymentSuccessDetail:\r\n\t\t'Thank you for shopping with {0}, a partner of Cielo! You can track the status of your payment on our ',\r\n paymentSuccessButtonLabel: 'Check Orders page',\r\n\r\n // Loggi Message\r\n loggiThanksMessage: 'Thanks for buying with us ',\r\n loggiSuccessTitle:\r\n\t\t'Your order has been placed and we are confirming the payment.',\r\n loggiSuccessBody:\r\n\t\t'Soon you will receive an SMS from Loggi, to track your order. And all your purchase information was sent in your email:',\r\n requestNumber: 'Request number',\r\n\r\n // Boleto Message\r\n boletoSuccessBody:\r\n\t\t'To finalize your purchase, make the boleto payment. Payment will be approved within 1 or 2 business days.',\r\n barcode: 'Barcode',\r\n openBoleto: 'Open boleto',\r\n\r\n // Pix Finalize\r\n pixSuccessBody:\r\n\t\t'To complete your purchase make the Pix payment. The payment will be approved on the spot!',\r\n qrcodeExplanation:\r\n\t\t'You can also pay via QRCode. Just scan from another mobile device',\r\n paywithPixSuccessFooter: 'Pay with',\r\n advertisingPixSuccessFooter: 'Available on Google Play and Apple Store',\r\n\r\n // Payment Methods\r\n creditCard: 'Credit card',\r\n creditCardText: 'Enter the card details',\r\n debitCard: 'Debit card',\r\n debitCardText: 'Enter the card details',\r\n boleto: 'Boleto',\r\n pix: 'Pix',\r\n pixText: 'Pay instantly',\r\n qrCodePay: 'Qr Code Credit',\r\n qrCodePayText: 'Scan the QR Code',\r\n voucher: 'Voucher',\r\n qrCodeDebit: 'Qr Code Debit',\r\n qrCodeDebitText: 'Scan the QR Code',\r\n clickToPay: 'ClickToPay',\r\n patEloVoucher: 'Multi-benefit Card',\r\n patEloVoucher2: 'Food and Meal',\r\n patEloVouchetText: 'Elo Flag',\r\n patEloVouchetText2: 'Use with Elo Voucher',\r\n googlePay: 'Google Pay',\r\n\r\n // Card Installments\r\n chooseInstallmentsNumber: 'Choose an installments number',\r\n installmentsNumber: 'Installments number',\r\n installmentsItem: '{quantity}x of R$ {installmentPrice} (no fees)',\r\n installment: 'Installment',\r\n installmentSupportText: 'Please provide the card number to check the installment amount',\r\n\r\n // Popups\r\n addressSearchZipcode: 'Wait, we are consulting your zip code',\r\n addressZipcodeNotFound:\r\n\t\t'We did not find the address information based on this zip code, continue filling in the fields',\r\n addressUnderstood: 'I understood',\r\n warning: 'Warning',\r\n paymentProviderPurchaseError: 'There was an error processing your purchase',\r\n wait: 'Wait',\r\n unexpectedError: 'There was an unexpected error!',\r\n withoutMessage: 'Without message',\r\n qrCodeGenerationError:\r\n\t\t'There was an error generating the qrcode for your transaction. Please open the link again and repeat the payment process.',\r\n finalizingPaymentError: 'Finalizing payment error',\r\n unknownPaymentError: 'Unknown error when finalizing payment',\r\n chooseYourState: 'Please, choose your state.',\r\n unableCalculateShippingCost:\r\n\t\t'Unfortunately we were unable to calculate the shipping cost.',\r\n invalidExpirationDate: 'Invalid expiration date',\r\n processingRequestError: 'Processing request error',\r\n cardBrandNotSupported: 'Card brand not supported',\r\n\r\n // message codes\r\n cardExpired: 'Card Validity Expired. Please, select another card',\r\n couldNotCalculateFreight:\r\n\t\t'Could Not Calculate Freight. Please, informe your Zip Code for shipping again.',\r\n fillWithFullName: 'Please, Fill With Full Name',\r\n finalizePaymentError:\r\n\t\t'The request could not be finalized. Please contact the store.',\r\n indentifyInvalid: 'CPF/CNPJ invalid. Try again.',\r\n internationalBillingAddressIsNotEnabled:\r\n\t\t'International billing data can not be sent',\r\n invalidCardNumber: 'Invalid Card Number. Try other card.',\r\n invalidCheckoutCieloCard:\r\n\t\t'Elo card entered is not the credit card valid to Cielo Checkout purchase.',\r\n invalidCvv: 'Invalid Cvv code. Please, try again.',\r\n invalidFlagForCardNumber:\r\n\t\t'The selected brand is not valid for the provided card number.',\r\n invalidFormZipcodeMandatory:\r\n\t\t'Formulário inválido. CEP de preenchimento obrigatório',\r\n orderAlreadyProcessedMessage: 'Your order is already being processed',\r\n pleaseInformHolder: 'Please, Inform Card Holder\\'s Name',\r\n productRemovedOrNotFound:\r\n\t\t'The requested product was not found or is no longer available.',\r\n wrongOperationResultSafetyCheck:\r\n\t\t'Operation result is wrong (security check)',\r\n\r\n // mpi\r\n cardAuthenticationError:\r\n\t\t'An authentication error has occurred. Please select another card or payment method.',\r\n notAuthenticableCardError:\r\n\t\t'Card not authenticated. Please select another card or payment method.',\r\n unexpectedAuthenticationError:\r\n\t\t'An unexpected authentication error has occurred. Please try again or select another payment method.',\r\n flagDoesNotSupport:\r\n\t\t'Flag does not support authentication. Please select another card or payment method.',\r\n\r\n // qr code pay\r\n qrCodePayTitle: 'QR Code Payment',\r\n payWithQrCodeSuccessFooter: 'Pay with',\r\n mobileAppAvailable: 'Available on Google Play and Apple Store',\r\n qrCodePayExplanation:\r\n\t\t'To complete your purchase make the payment by scanning the QR Code below. Just scan from another mobile device.',\r\n\r\n // Order response overview\r\n customerName: 'Name',\r\n orderNumber: 'Order number',\r\n documentNumber: 'Document',\r\n orderDate: 'Order date',\r\n\r\n //ClickToPay Infos\r\n clickToPayText: 'Faster purchases with your credit card.',\r\n clickToPayCTAText: 'About Click to Pay',\r\n clickToPayIdentityInfo:\r\n\t\t'The information will be used by Click to Pay to validate your identity.',\r\n clickToPayLegalPersonInfo:\r\n\t\t'Click to Pay is not available to legal entities. If this is your case, ',\r\n clickToPayChangePaymentMethodCTA: 'change your payment method here.',\r\n\r\n clickToPayModalTitle: 'Click to Pay',\r\n clickToPayModalDescriptionFlags:\r\n\t\t'A fast and secure payment method, compatible with Mastercard and Visa',\r\n clickToPayModalDescriptionProtectedInf: 'Keep your information secure',\r\n clickToPayModalDescriptionUseWorld: 'Use in stores worldwide',\r\n clickToPayModalDescriptionSimplePayment:\r\n\t\t'Set up once and make hassle-free payments in the future',\r\n\r\n clickToPayNewCardFormHeader: 'Credit card details',\r\n\r\n clickToPayAllowCheckout1: 'Register my information with ',\r\n clickToPayAllowCheckout2: ' on Click To Pay for faster and safer purchases.',\r\n\r\n clickToPayRememberMe: 'Remember my cards in this browser.',\r\n clickToPayAgreementText1: 'By continuing, you agree to the',\r\n\r\n clickToPayAgreementTerms: 'Terms ',\r\n\r\n clickToPayAgreementText2: 'and understand that your data will be treated in accordance with the',\r\n clickToPayAgreementPrivacyTerms: 'Privacy standards.',\r\n clickToPayAllowSaveCard: 'Save my card in Click to Pay for fast and secure purchases.',\r\n clickToPaySaveYourCard: 'Save your card',\r\n clickToPayWithSavedCard: 'Pay with a saved card',\r\n\r\n otpTitle: 'Access your cards',\r\n otpDescriptionInsertCode: 'Enter the authentication code sent by',\r\n otpDescriptionToEmail: 'to email',\r\n otpWrongEmail: 'Is the email wrong?',\r\n otpResendCode: 'Resend code',\r\n otpRememberMe: 'Remember my cards in this browser',\r\n otpInvalidCodeError: 'Invalid code. Please resend the code or try again',\r\n otpInaccessibleError:\r\n\t\t'The account is currently unavailable. Try again later',\r\n otpRetriesExceededError:\r\n\t\t'The number of retries has been exceeded. Try again later',\r\n otpUnknownError: 'Unable to access this account. Try again later',\r\n\r\n // ClickToPay Redesign\r\n paymentWithC2P: 'Payment with Click to Pay',\r\n accessYourSavedCards: 'Access your saved cards',\r\n howC2PUses: 'How does Click to Pay use my information?',\r\n howC2PUsesTooltipText: 'Click to Pay will use your phone number and email to check if there are saved cards. A code may be sent to your phone to verify your identity. Text message charges may apply.',\r\n addCard: 'Add card',\r\n rememberCards: 'Remember cards in this browser',\r\n rememberCardsTooltipText1: 'With the card saved in the browser, you will not go through verification and will be able to access your cards quickly and securely in Click to Pay.',\r\n rememberCardsTooltipText2: 'Not recommended to save on public or shared devices.',\r\n edit: 'Edit',\r\n c2pAgreementText: 'By continuing, you accept the registration of your card with Click to Pay.',\r\n c2pAgreementTerms: 'Terms and conditions of ',\r\n and: 'and',\r\n c2pCardVerifying: 'Click To Pay is checking for saved cards',\r\n finishPaymentTitle: 'Almost there! Enter your document number before finishing',\r\n yourPersonalData: 'Your personal data',\r\n\r\n\r\n // Checkout errors\r\n errorCheckoutHeading: 'Could not continue with this card',\r\n errorCheckoutBody: 'Choose another card or change the payment method',\r\n\r\n //Contact view\r\n contactTitle: 'Contact details',\r\n chooseCountry: 'Choose country',\r\n selectCountry: 'Select',\r\n errorOTPHeading: 'Error validating data',\r\n errorOTPBody: 'Choose another payment method or try again.',\r\n errorOTPCTA: 'Ok, I got it',\r\n\r\n //Personal view\r\n PersonalTitle: 'Personal data',\r\n\r\n //Card list view\r\n cardListTitle: 'Cards saved in Click to Pay',\r\n enterYourDocument: 'Enter your document',\r\n chooseTheNumberOfInstallments: 'Choose the number of installments',\r\n chooseInstallmentsNumberV2: 'Number of installments',\r\n areTheCardsNotYours: 'Are the cards not yours?',\r\n showAllCards: 'Show all cards',\r\n hideCardList: 'Hide card list',\r\n addNewCard: 'Add new card',\r\n locked: '(Locked)',\r\n expired: '(Expired)',\r\n lockedAndExpired: '(Locked) (Expired)',\r\n thisCardIsLocked: 'This card is locked.',\r\n thisCardIsExpired: 'This card is expired.',\r\n thisCardIsLockedAndExpired: 'This card is locked and expired',\r\n\r\n //Order status, invalid url and invalid order views\r\n orderStatus: 'Order status',\r\n invalidUrlTitle: 'The page you are looking for does not exist',\r\n invalidUrlText: 'Check the spelling and try again.',\r\n invalidOrderTitle: 'Service temporarily unavailable',\r\n invalidOrderText: 'Unfortunately, it will not be possible to proceed at the moment. Please try again later.',\r\n update: 'Update',\r\n paymentUnderReview: 'Payment under review',\r\n paymentUnderReviewText1: 'Payment confirmation is done after approval from {0}.',\r\n paymentUnderReviewText2: 'Track the payment status on our ',\r\n paymentDenied: 'Payment denied',\r\n paymentDeniedText: 'Check the card details or try again using another payment method.',\r\n paymentApproved: 'Payment approved',\r\n paymentApprovedText: 'You paid {0}.',\r\n paymentSummary: 'Payment summary',\r\n paymentDate: 'Payment date',\r\n paymentRefused: 'Payment refused',\r\n idPayConfirmation: 'To ensure the security of your purchase, we need confirmation of the identity of the person holding the card used for the purchase, within 1 hour.',\r\n confirmationInProgress: 'Confirmation in progress',\r\n idPayRedirectText: 'Please wait a few seconds while we process the identity confirmation.',\r\n\r\n\r\n //CVVAlert\r\n securityCVV: 'For security reasons, please enter your CVV',\r\n send: 'Send',\r\n\r\n //v2\r\n\r\n inputCVV: 'CVV',\r\n inputCardHolderName: 'Name as it appears on the card',\r\n inputCardDueDate: 'Card expiry',\r\n titleViewCredCard: 'Payment by credit card',\r\n titleViewDebitCard: 'Payment by debit card',\r\n titleViewQrCodeCred: 'Payment by credit QR Code',\r\n titleViewPatEloVoucherCard: 'Food and Meal',\r\n titleViewGooglePay: 'Payment by Google Pay',\r\n textViewPatEloVoucherCard: 'Use with Elo voucher',\r\n installmentsExplanationV2: 'Choose the number of installments',\r\n qrcodeExplanationV2: 'You can also pay via QRCode. Just scan from another cell phone',\r\n whatPayment: 'How do you want to pay?',\r\n orderReview: 'Order review',\r\n pixDescription: 'You can also pay via QRCode',\r\n qrcodeTitle: 'To complete your payment, scan the QR Code below',\r\n qrcodeInstruction: 'Open the QR Code acceptance link (digital wallets) in a new browser tab:',\r\n textInstructionPayment: 'Instructions for making payment',\r\n textInstructionPayment2: 'Use digital wallets for payment:',\r\n numberCardError: 'Invalid card number',\r\n dateMonthCardError: 'Invalid month. It must be between 1 and 12.',\r\n cardExpirationError: 'The due date must be in the future.',\r\n new: 'New',\r\n\r\n // Select Phone\r\n countryCode: 'Select country code',\r\n selectCountryCode: 'Country code',\r\n\r\n\t // Select Document Type\r\n\t documentType: 'Select the type of document',\r\n\t selectDocumentType: 'Choose Type of document',\r\n\r\n\t // Select Country\r\n\t country: 'Select the country',\r\n\t selectCountry: 'country',\r\n wrongFlowPatEloError: 'This seems to be a food and meal card. Please provide the credit card details.',\r\n verifyCardPatEloError: 'Check the number of your card, make sure it\\'s an Elo food and meal card',\r\n finishButtonQrCode: 'Generate QR Code',\r\n finishButtonPix: 'Generate Pix code',\r\n change: 'Change',\r\n changePayment: 'Change payment',\r\n\r\n //Accessibility\r\n altLogo: 'Cielo\\'s logo, with the letters C-I-E-L-O stylized in gray and blue on a white background.',\r\n altLangEn: 'Flag of the United Kingdom, English language.',\r\n altLangEs: 'Flag of Spain, Spanish language',\r\n altLangBr: 'Flag of Brazil, Portuguese language.',\r\n altPix: 'Image of the Pix QR Code for scanning.',\r\n altQrCode: 'Image of the QR Code for scanning.',\r\n ariaLangList: 'Language selection list.',\r\n ariaShippingTypeList: 'Shipping type selection list.',\r\n ariaPaymentTypeList: 'Payment type selection list.',\r\n ariaSelectList: 'selection list of :',\r\n ariaOrderSummary: 'Order summary.',\r\n ariaSeeAllItems: 'Click to display all items in the order.',\r\n ariaShowDescription: 'Click to expand the description.',\r\n ariaShowOrderSummaryContent: 'Click to expand the order summary.',\r\n ariaCTANull: 'Disabled button.',\r\n ariaCTAC2P: 'Click to select the payment method Click to Pay.',\r\n ariaCTAAboutC2P: 'Click to learn more about Click to Pay.',\r\n ariaCTACloseOverlay: 'Click to close the overlay.',\r\n ariaCTASelect: 'Click to open the selector of :',\r\n\r\n});\r\n","import { MLanguage } from 'vue-multilanguage';\r\n\r\nexport default new MLanguage('pt-br').create({\r\n // Header\r\n safeEnvironment: 'Ambiente',\r\n safeEnvironmentSuffix: ' 100% Seguro',\r\n\r\n //Footer\r\n developedBy: 'Desenvolvido por',\r\n securePayment: 'Pagamento seguro',\r\n\r\n // Link Info\r\n linkInfo: 'Enviou uma solicitação de pagamento',\r\n\r\n // Total Overview\r\n totalAmount: 'Valor total',\r\n delivery: 'Entrega',\r\n deliveryAddress: 'Endereço de entrega',\r\n payment: 'Pagamento',\r\n\r\n // Cart Overview\r\n purchaseSummary: 'Resumo da compra',\r\n productOrServiceDescription: 'Descrição do produto ou serviço',\r\n showDescription: 'Mostrar descrição',\r\n hideDescription: 'Esconder descrição',\r\n\r\n // Cart Items\r\n more: 'mais',\r\n showLess: 'exibir menos',\r\n seeAllItems: 'Ver todos os itens',\r\n hideItems: 'Esconder os itens',\r\n\r\n // Shipping Method Overview\r\n within2Hours: 'Em até 2 horas',\r\n withinOneBusinessDay: 'Em até 1 dia útil',\r\n withinAnyBusinessDays: 'Em até {0} dias úteis',\r\n free: 'Grátis',\r\n\r\n // Common\r\n of: 'de',\r\n off: 'de desconto',\r\n cartDiscount: 'Desconto no carrinho',\r\n discountOn: 'Desconto no',\r\n zipcode: 'CEP',\r\n street: 'Endereço',\r\n addressLine1: 'Linha de endereço 1',\r\n addressLine2: 'Linha de endereço 2 (Opcional)',\r\n number: 'Número',\r\n complement: 'Complemento',\r\n district: 'Bairro',\r\n city: 'Cidade',\r\n state: 'Estado',\r\n province: 'Província',\r\n cpf: 'CPF',\r\n cnpj: 'CNPJ',\r\n foreign: 'Estrangeiro',\r\n foreigner: 'Estado, província, distrito (sigla)',\r\n continue: 'Continuar',\r\n confirmPayment: 'Confirmar o pagamento',\r\n back: 'Voltar',\r\n cancel: 'Cancelar',\r\n thanks: 'Obrigado!',\r\n notAvailable: 'Não disponível',\r\n copyCode: 'Copiar código',\r\n retry: 'Tentar novamente',\r\n copied: 'Copiado',\r\n identityConfirmation: 'Confirmação de identidade',\r\n confirmIdentity: 'Confirmar identidade',\r\n\r\n // Address\r\n chooseYourState: 'Selecione seu estado',\r\n chooseYourProvince: 'Selecione sua província',\r\n forgotIt: 'Esqueci',\r\n\r\n // Shipping Type\r\n selectDeliveryType: 'Selecione o tipo de entrega',\r\n shippingAddressInfo: 'Informe o endereço para entrega',\r\n freight: 'Frete',\r\n freightDefined: 'Frete definido',\r\n\r\n // Change Payment Type\r\n chooseHowYouWantToPay: 'Escolha como quer pagar',\r\n orChooseOtherWays: 'ou escolha outras formas',\r\n otherPaymentMethods: 'Outras formas de pagamento',\r\n expressPayment: 'Pagamento expresso com cartão',\r\n\r\n // Personal Data\r\n personalDataSubtitle: 'Falta pouco! Insira seus dados antes de concluir',\r\n fullName: 'Nome Completo',\r\n email: 'E-mail',\r\n cellPhone: 'Celular',\r\n identity: 'Número do documento',\r\n identityC2P: 'CPF',\r\n billingAddress: 'Endereço de cobrança',\r\n termsPreffix: 'Li e aceito os',\r\n termsSuffix: ' termos e condição de uso',\r\n privacyPreffix:\r\n\t\t'Quero receber promoções personalizadas de parceiros comerciais da Cielo. Mais detalhes você encontra na',\r\n privacySuffix: ' Política de Privacidade',\r\n completePurchase: 'Concluir compra',\r\n sameAddressOption: 'Meu endereço de cobrança é o mesmo de entrega',\r\n\r\n // Billing Address\r\n nationalAddress: 'Endereço nacional',\r\n internationalAddress: 'Endereço internacional',\r\n national: 'Nacional',\r\n international: 'Internacional',\r\n\r\n // Card Payment\r\n paymentByCreditCard: 'Pagamento por cartão de crédito',\r\n paymentByDebitCard: 'Pagamento por cartão de débito',\r\n paymentByVoucherCard: 'Pagamento por cartão de alimentação / refeição',\r\n paymentByEloVoucherCard: 'Pagamento por cartão Elo Voucher',\r\n paymentByGooglePay: 'Pagamento por Google Pay',\r\n cardName: 'Nome',\r\n expiration: 'Vencimento',\r\n securityCode: 'Código de segurança',\r\n cardNameHolder: 'Nome do titular (como está no cartão)',\r\n cardNameHolderValidation: 'Nome como está no cartão',\r\n cardNumber: 'Número do cartão',\r\n\r\n // Payment Success\r\n paymentSuccessTitle: 'Seu pedido foi realizado com sucesso!',\r\n paymentSuccessDetail:\r\n\t\t'Obrigado por comprar com a loja {0}, parceira da Cielo! Você pode acompanhar o status do seu pagamento em nossa página de ',\r\n paymentSuccessButtonLabel: 'Consultar Pedidos',\r\n\r\n // Loggi Message\r\n loggiThanksMessage: 'Obrigado por comprar conosco ',\r\n loggiSuccessTitle:\r\n\t\t'Seu pedido foi realizado e estamos confirmando o pagamento.',\r\n loggiSuccessBody:\r\n\t\t'Em breve você reberá um SMS da Loggi, para acompanhar o trajeto do seu pedido. E todas as informações da sua compra foram enviadas no seu email:',\r\n requestNumber: 'Número do pedido',\r\n\r\n // Boleto Message\r\n boletoSuccessBody:\r\n\t\t'Para concluir sua compra faça o pagamento do boleto. O pagamento será aprovado em 1 ou 2 dias úteis.',\r\n barcode: 'Código de barras',\r\n openBoleto: 'Abrir boleto',\r\n\r\n // Pix Finalize\r\n pixSuccessBody:\r\n\t\t'Para concluir sua compra faça o pagamento Pix. O pagamento será aprovado na mesma hora.',\r\n qrcodeExplanation:\r\n\t\t'Você também pode pagar via QRCode. Basta escanear de outro aparelho de celular',\r\n paywithPixSuccessFooter: 'Pague com',\r\n advertisingPixSuccessFooter:\r\n\t\t'Disponíveis nas lojas Google Play e Apple Store',\r\n\r\n // Payment Methods\r\n creditCard: 'Cartão de crédito',\r\n creditCardText: 'Insira os dados do cartão',\r\n debitCard: 'Cartão de débito',\r\n debitCardText: 'Insira os dados do cartão',\r\n boleto: 'Boleto Bancário',\r\n pix: 'Pix',\r\n pixText: 'Pague instantaneamente',\r\n qrCodePay: 'Qr Code Crédito',\r\n qrCodePayText: 'Escaneie o QR Code',\r\n voucher: 'Alimentação / Refeição',\r\n qrCodeDebit: 'Qr Code Débito',\r\n qrCodeDebitText: 'Escaneie o QR Code',\r\n clickToPay: 'ClickToPay',\r\n patEloVoucher: 'Cartão multibenefícios',\r\n patEloVoucher2: 'Alimentação e Refeição',\r\n patEloVouchetText: 'Bandeira Elo',\r\n patEloVouchetText2: 'Use com Elo Voucher',\r\n googlePay: 'Google Pay',\r\n\r\n // Card Installments\r\n chooseInstallmentsNumber: 'Selecione a quantidade de parcelas',\r\n installmentsNumber: 'Quantidade de Parcelas',\r\n installmentsItem: '{quantity}x de R$ {installmentPrice} (sem juros)',\r\n installment: 'Parcelamento',\r\n installmentSupportText: 'Informe o número do cartão para verificar o valor das parcelas',\r\n\r\n // Popups\r\n addressSearchZipcode: 'Aguarde, estamos consultando seu CEP',\r\n addressZipcodeNotFound:\r\n\t\t'Não encontramos as informações de endereço baseado neste CEP, continue preenchendo os campos',\r\n addressUnderstood: 'Entendi',\r\n warning: 'Aviso',\r\n paymentProviderPurchaseError:\r\n\t\t'Houve um erro no processamento da sua compra',\r\n wait: 'Aguarde',\r\n unexpectedError: 'Houve um erro inesperado!',\r\n withoutMessage: 'Sem mensagem',\r\n qrCodeGenerationError:\r\n\t\t'Houve um erro ao gerar o qrcode para sua transação. Por favor, abra o link novamente e repita o processo de pagamento.',\r\n finalizingPaymentError: 'Erro ao finalizar pagamento',\r\n unknownPaymentError: 'Erro desconhecido ao finalizar pagamento',\r\n chooseYourState: 'Por favor, selecione o seu estado.',\r\n unableCalculateShippingCost:\r\n\t\t'Infelizmente não conseguimos calcular o valor do frete.',\r\n invalidExpirationDate: 'Data de vencimento inválida',\r\n processingRequestError: 'Erro ao processar solicitação',\r\n cardBrandNotSupported: 'Bandeira do cartão não suportada',\r\n\r\n // message codes\r\n cardExpired:\r\n\t\t'Data de validade do cartão expirada. Por favor, escolha outro cartão',\r\n couldNotCalculateFreight:\r\n\t\t'Não foi possível calcular o valor do frete. Por favor, informe novamente seu CEP de entrega.',\r\n fillWithFullName: 'Preencha com seu nome completo',\r\n finalizePaymentError:\r\n\t\t'Não foi possível finalizar o pedido. Por favor, entre em contato com a loja.',\r\n indentifyInvalid: 'CPF/CNPJ Inválido',\r\n internationalBillingAddressIsNotEnabled:\r\n\t\t'Não é possivel enviar dados internacionais de cobrança',\r\n invalidCardNumber: 'Número do cartão inválido',\r\n invalidCheckoutCieloCard:\r\n\t\t'O Cartão Elo digitado não é um cartão de crédito válido para compras no Checkout Cielo.',\r\n invalidCvv: 'Código de segurança inválido.',\r\n invalidFlagForCardNumber:\r\n\t\t'A bandeira selecionada não é válida para o número de cartão informado',\r\n invalidFormZipcodeMandatory:\r\n\t\t'Formulário inválido. CEP de preenchimento obrigatório',\r\n orderAlreadyProcessedMessage: 'O seu pedido já está sendo processado.',\r\n pleaseInformHolder: 'Por favor informe o nome do titular completo',\r\n productRemovedOrNotFound:\r\n\t\t'O produto solicitado não foi encontrado ou não está mais disponível.',\r\n wrongOperationResultSafetyCheck:\r\n\t\t'Resultado da operação está errado (verificação de segurança)',\r\n\r\n // mpi\r\n cardAuthenticationError:\r\n\t\t'Ocorreu um erro na autenticação. Por favor selecione outro cartão ou outra forma de pagamento.',\r\n notAuthenticableCardError:\r\n\t\t'Cartão não autenticável. Por favor selecione outro cartão ou outra forma de pagamento.',\r\n unexpectedAuthenticationError:\r\n\t\t'Ocorreu um erro inesperado na autenticação.Tente novamente ou selecione outra forma de pagamento.',\r\n flagDoesNotSupport:\r\n\t\t'Bandeira não suporta autenticação. Por favor selecione outro cartão ou outra forma de pagamento.',\r\n\r\n // qr code pay\r\n qrCodePayTitle: 'Pagamento por QR Code Pay',\r\n payWithQrCodeSuccessFooter: 'Pague com',\r\n mobileAppAvailable: 'Disponíveis nas lojas Google Play e Apple Store',\r\n qrCodePayExplanation:\r\n\t\t'Para concluir sua compra faça o pagamento escaneando o QR Code abaixo. Basta escanear de outro aparelho de celular.',\r\n\r\n // Order response overview\r\n customerName: 'Nome',\r\n orderNumber: 'Número do pedido',\r\n documentNumber: 'Documento',\r\n orderDate: 'Data do pedido',\r\n\r\n //ClickToPay Infos\r\n clickToPayText: 'Compras mais rápidas com seu cartão de crédito.',\r\n clickToPayCTAText: 'Sobre o Click to Pay',\r\n\r\n clickToPayModalTitle: 'Click to Pay',\r\n clickToPayModalDescriptionFlags: 'Uma forma de pagamento rápida e segura, compatível com Mastercard e Visa',\r\n clickToPayModalDescriptionProtectedInf: 'Mantenha suas informações protegidas',\r\n clickToPayModalDescriptionUseWorld: 'Use em lojas no mundo todo',\r\n clickToPayModalDescriptionSimplePayment:\r\n\t\t'Configure uma vez e faça pagamentos descomplicados no futuro',\r\n\r\n clickToPayNewCardFormHeader: 'Dados do cartão de crédito',\r\n clickToPayIdentityInfo:\r\n\t\t'As informações serão usadas pelo Click to Pay para validar sua identidade.',\r\n clickToPayLegalPersonInfo:\r\n\t\t'O Click to Pay não está disponível para pessoa jurídica. Se este for o seu caso, ',\r\n clickToPayChangePaymentMethodCTA: 'troque aqui a forma de pagamento.',\r\n\r\n clickToPayAllowCheckout1: 'Cadastrar minhas informações com a ',\r\n clickToPayAllowCheckout2: ' no Click To Pay para compras mais rápidas e seguras.',\r\n\r\n clickToPayRememberMe: 'Lembrar dos meus cartões nesse navegador.',\r\n clickToPayAgreementText1: 'Ao continuar, você concorda com os',\r\n\r\n clickToPayAgreementTerms: 'Termos da ',\r\n\r\n clickToPayAgreementText2: 'e entende que seus dados serão tratados de acordo com as',\r\n clickToPayAgreementPrivacyTerms: 'Normas de privacidade.',\r\n clickToPayAllowSaveCard: 'Salvar meu cartão no Click to Pay para compras rápidas e seguras.',\r\n clickToPaySaveYourCard: 'Salve seu cartão',\r\n clickToPayWithSavedCard: 'Pague com cartão salvo',\r\n\r\n otpTitle: 'Acesse seus cartões',\r\n otpDescriptionInsertCode: 'Insira o código de autenticação enviado pela',\r\n otpDescriptionToEmail: 'para o e-mail',\r\n otpWrongEmail: 'O e-mail está errado?',\r\n otpResendCode: 'Reenviar código',\r\n otpRememberMe: 'Lembrar dos meus cartões nesse navegador',\r\n otpInvalidCodeError: 'Código inválido. Reenvie o código ou tente novamente',\r\n otpInaccessibleError:\r\n\t\t'A conta está indisponível no momento. Tente novamente mais tarde',\r\n otpRetriesExceededError:\r\n\t\t'O número de retentativas foi excedido. Tente novamente mais tarde',\r\n otpUnknownError:\r\n\t\t'Não foi possível acessar essa conta. Tente novamente mais tarde',\r\n\r\n // ClickToPay Redesign\r\n paymentWithC2P: 'Pagamento com Click to Pay',\r\n accessYourSavedCards: 'Acesse seus cartões salvos',\r\n howC2PUses: 'Como o Click to Pay usa as minhas informações?',\r\n howC2PUsesTooltipText: 'Click to Pay irá utilizar o número do telefone e e-mail para verificar se existem cartões salvos. Um código pode ser enviado para o celular para que é você. Poderá existir cobrança por mensagem de texto.',\r\n addCard: 'Adicionar cartão',\r\n rememberCards: 'Lembrar dos cartões neste navegador',\r\n rememberCardsTooltipText1: 'Com o cartão salvo no navegador, você não passará pela verificação e conseguirá acessar seus cartões com rapidez e segurança no Click to Pay.',\r\n rememberCardsTooltipText2: 'Não recomendado salvar em dispositivos públicos ou compartilhados.',\r\n edit: 'Editar',\r\n c2pAgreementText: 'Ao continuar você aceita o cadastro do seu cartão junto ao Click to Pay.',\r\n c2pAgreementTerms: 'Termos e condições da ',\r\n and: 'e',\r\n c2pCardVerifying: 'Click To Pay está verificando se existem cartões salvos',\r\n finishPaymentTitle: 'Falta pouco! Insira seu CPF antes de concluir',\r\n yourPersonalData: 'Seus dados pessoais',\r\n\r\n\r\n // Checkout errors\r\n errorCheckoutHeading: 'Não foi possível continuar',\r\n errorCheckoutBody: 'Escolha outro cartão ou mude a forma de pagamento',\r\n\r\n //Contact view\r\n contactTitle: 'Dados de contato',\r\n chooseCountry: 'Selecione o país',\r\n selectCountry: 'Selecionar',\r\n errorOTPHeading: 'Erro ao validar dados',\r\n errorOTPBody: 'Escolha outra forma de pagamento ou tente novamente.',\r\n errorOTPCTA: 'Ok, entendi',\r\n\r\n //Personal view\r\n PersonalTitle: 'Dados pessoais',\r\n\r\n //Card list view\r\n cardListTitle: 'Cartões salvos no Click to Pay',\r\n enterYourDocument: 'Digite seu documento',\r\n chooseTheNumberOfInstallments: 'Escolha a quantidade de parcelas',\r\n chooseInstallmentsNumberV2: 'Quantidade de parcelas',\r\n areTheCardsNotYours: 'Os cartões não são seus?',\r\n showAllCards: 'Mostrar todos os cartões',\r\n hideCardList: 'Esconder lista de cartões',\r\n addNewCard: 'Adicionar novo cartão',\r\n locked: '(Bloqueado)',\r\n expired: '(Expirado)',\r\n lockedAndExpired: '(Bloqueado) (Expirado)',\r\n thisCardIsLocked: 'Este cartão está bloqueado.',\r\n thisCardIsExpired: 'Este cartão está expirado.',\r\n thisCardIsLockedAndExpired: 'Este cartão está bloqueado e expirado.',\r\n\r\n //Order status, invalid url and invalid order views\r\n orderStatus: 'Status do pedido',\r\n invalidUrlTitle: 'A página que você está procurando não existe',\r\n invalidUrlText: 'Verifique a digitação e tente novamente.',\r\n invalidOrderTitle: 'Serviço temporariamente indisponível',\r\n invalidOrderText: 'Infelizmente, não será possível prosseguir no momento. Por favor, tente novamente mais tarde.',\r\n update: 'Atualizar',\r\n paymentUnderReview: 'Pagamento em análise',\r\n paymentUnderReviewText1: 'A confirmação do pagamento é realizada após aprovação de {0}.',\r\n paymentUnderReviewText2: 'Acompanhe o status do pagamento em nossa página de ',\r\n paymentDenied: 'Pagamento negado',\r\n paymentDeniedText: 'Verifique os dados do cartão ou tente novamente usando outra forma de pagamento.',\r\n paymentApproved: 'Pagamento aprovado',\r\n paymentApprovedText: 'Você pagou {0}.',\r\n paymentSummary: 'Resumo do pagamento',\r\n paymentDate: 'Data do pagamento',\r\n paymentRefused: 'Pagamento recusado',\r\n idPayConfirmation: 'Para garantir a segurança da sua compra, precisamos da confirmação de identidade da pessoa titular do cartão usado na compra, em até 1 hora.',\r\n confirmationInProgress: 'Confirmação em andamento',\r\n idPayRedirectText: 'Por favor, aguarde alguns segundos enquanto processamos a confirmação da identidade.',\r\n\r\n //CVVAlert\r\n securityCVV: 'Por motivos de segurança, digite seu CVV',\r\n send: 'Enviar',\r\n\r\n //V2 inputs\r\n inputCVV: 'CVV',\r\n inputCardHolderName: 'Nome como está no cartão',\r\n inputCardDueDate: 'Vencimento',\r\n titleViewCredCard: 'Pagamento com cartão de crédito',\r\n titleViewDebitCard: 'Pagamento com cartão de débito',\r\n titleViewQrCodeCred: 'Pagamento por QR Code crédito',\r\n titleViewVoucherCard: 'Pagamento com cartão de alimentação / refeição',\r\n titleViewPatEloVoucherCard: 'Alimentação e Refeição',\r\n titleViewGooglePay: 'Pagamento com Google Pay',\r\n textViewPatEloVoucherCard: 'Use com Elo voucher',\r\n installmentsExplanationV2: 'Escolha a quantidade de parcelas',\r\n qrcodeExplanationV2: 'Você também pode pagar via QRCode. Basta escanear de outro aparelho de celular',\r\n whatPayment: 'Como você quer pagar?',\r\n orderReview: 'Revisão do pedido',\r\n pixDescription: 'Você também pode pagar via QRCode',\r\n qrcodeTitle: 'Para concluir seu pagamento escaneie o QR Code abaixo',\r\n qrcodeInstruction: 'Abra em uma nova aba do navegador o link da aceitação QR Code (carteiras digitais):',\r\n textInstructionPayment: 'Instruções para efetuar o pagamento',\r\n textInstructionPayment2: 'Utilize as carteiras digitais para pagamento:',\r\n numberCardError: 'Número do cartão inválido',\r\n dateMonthCardError: 'Mês inválido. Deve estar entre 1 e 12.',\r\n cardExpirationError: 'A data de vencimento deve ser futura.',\r\n new: 'Novo',\r\n\r\n // Select Phone\r\n countryCode: 'Selecione o código do país',\r\n selectCountryCode: 'Código do país',\r\n\r\n // Select Document Type\r\n documentType: 'Selecione o tipo de documento',\r\n selectDocumentType: 'Escolha o tipo de documento',\r\n\r\n // Select Country\r\n country: 'Selecione o país',\r\n selectCountry: 'País',\r\n\r\n wrongFlowPatEloError: 'Este parece ser um cartão de alimentação e refeição. Informe os dados do cartão de crédito.',\r\n verifyCardPatEloError: 'Confira o número do seu cartão, verifique se é um cartão de alimentação e refeição Elo.',\r\n finishButtonQrCode: 'Gerar QR Code',\r\n finishButtonPix: 'Gerar código Pix',\r\n change: 'Trocar',\r\n changePayment: 'Trocar pagamento',\r\n\r\n //Accessibility\r\n altLogo: 'Logo da Cielo, com as letras C-I-E-L-O estilizadas em cinza e azul sobre um fundo branco.',\r\n altLangEn: 'Bandeira do Reino Unido, idioma inglês.',\r\n altLangEs: 'Bandeira da Espanha, idioma espanhol.',\r\n altLangBr: 'Bandeira do Brasil, idioma Português.',\r\n altPix: 'Imagen do QR Code Pix para escaneamento',\r\n altQrCode: 'Imagen do QR Code para escaneamento',\r\n ariaLangList: 'Lista de seleção de idiomas.',\r\n ariaShippingTypeList: 'Lista de seleção de tipos de entrega.',\r\n ariaPaymentTypeList: 'Lista de seleção de tipos de pagamento.',\r\n ariaSelectList: 'Lista de seleção de :',\r\n ariaOrderSummary: 'Resumo do pedido.',\r\n ariaSeeAllItems: 'Clique para exibir todos os items do pedido.',\r\n ariaShowDescription: 'Clique para expandir a descrição.',\r\n ariaShowOrderSummaryContent: 'Clique para expandir o resumo do pedido.',\r\n ariaCTANull: 'Botão sem ação.',\r\n ariaCTAC2P: 'Clique para selecionar o método de pagamento Click to Pay.',\r\n ariaCTAAboutC2P: 'Clique para saber mais sobre o Click to Pay.',\r\n ariaCTACloseOverlay: 'Clique para fechar o overlay.',\r\n ariaCTASelect: 'Clique para abrir o seletor de :',\r\n});\r\n","import { MLanguage } from 'vue-multilanguage';\r\n\r\nexport default new MLanguage('es-es').create({\r\n // Header\r\n safeEnvironment: 'Ambiente',\r\n safeEnvironmentSuffix: ' 100% Seguro',\r\n\r\n //Footer\r\n developedBy: 'Desarrollado por',\r\n securePayment: 'Pago seguro',\r\n\r\n // Link Info\r\n linkInfo: 'Ha enviado una solicitud de pago',\r\n\r\n // Total Overview\r\n totalAmount: 'Valor total',\r\n delivery: 'Entrega',\r\n deliveryAddress: 'Dirección de entrega',\r\n payment: 'Pago',\r\n\r\n // Cart Overview\r\n purchaseSummary: 'Resumen de la compra',\r\n productOrServiceDescription: 'Descripción del producto o servicio',\r\n showDescription: 'Mostrar descripción',\r\n hideDescription: 'Ocultar descripción',\r\n\r\n // Cart Items\r\n more: 'más',\r\n showLess: 'mostrar menos',\r\n seeAllItems: 'Ver todos los elementos',\r\n hideItems: 'Ocultar los elementos',\r\n\r\n // Shipping Method Overview\r\n within2Hours: 'Dentro de 2 horas',\r\n withinOneBusinessDay: 'En el plazo de 1 día laborable',\r\n withinAnyBusinessDays: 'En el plazo de {0} día laborable',\r\n free: 'Gratis',\r\n\r\n // Common\r\n of: 'de',\r\n off: 'de descuento',\r\n cartDiscount: 'Descuento del carrito',\r\n discountOn: 'Descuento en',\r\n zipcode: 'Código Postal',\r\n street: 'Dirección',\r\n addressLine1: 'Dirección Línea 1',\r\n addressLine2: 'Dirección Línea 2 (Opcional)',\r\n number: 'Número',\r\n complement: 'Complemento',\r\n district: 'Barrio',\r\n city: 'Ciudad',\r\n state: 'Estado',\r\n province: 'Provincia',\r\n cpf: 'CPF',\r\n cnpj: 'CNPJ',\r\n foreign: 'Extranjero',\r\n foreigner: 'Estado, provincia, distrito (sigla)',\r\n continue: 'Continuar',\r\n confirmPayment: 'Confirmar pago',\r\n back: 'Volver',\r\n cancel: 'Cancelar',\r\n thanks: '¡Gracias!',\r\n notAvailable: 'No disponible',\r\n copyCode: 'Copiar código',\r\n retry: 'Inténtalo de nuevo',\r\n copied: 'Copiado',\r\n identityConfirmation: 'Confirmación de identidad',\r\n confirmIdentity: 'Confirmar identidad',\r\n\r\n // Address\r\n chooseYourState: 'Seleccione su Estado',\r\n chooseYourProvince: 'Seleccione su Provincia',\r\n forgotIt: 'Me olvidé',\r\n\r\n // Shipping Type\r\n selectDeliveryType: 'Seleccione el tipo de envío',\r\n shippingAddressInfo: 'Introduzca la dirección de envío',\r\n freight: 'Transporte',\r\n freightDefined: 'Transporte definido',\r\n\r\n // Change Payment Type\r\n chooseHowYouWantToPay: 'Elige cómo quieres pagar',\r\n orChooseOtherWays: 'o elige otras formas',\r\n otherPaymentMethods: 'Otros métodos de pago',\r\n expressPayment: 'Pago con tarjeta exprés',\r\n\r\n // Personal Data\r\n personalDataSubtitle: '¡Falta poco! Introduzca sus datos antes de concluir',\r\n fullName: 'Nombre Completo',\r\n email: 'Correo electrónico',\r\n cellPhone: 'Teléfono Móvil',\r\n identity: 'Número del documento',\r\n identityC2P: 'Número del documento',\r\n billingAddress: 'Dirección de facturación',\r\n termsPreffix: 'He leído y acepto',\r\n termsSuffix: ' las condiciones de uso',\r\n privacyPreffix:\r\n\t\t'Quiero recibir promociones personalizadas de los socios comerciales de Cielo, Más detalles se pueden encontrar en',\r\n privacySuffix: ' Política de Privacidad',\r\n completePurchase: 'Concluir compra',\r\n sameAddressOption:\r\n\t\t'Mi dirección de facturación es la misma que la de envío',\r\n\r\n // Billing Address\r\n nationalAddress: 'Dirección nacional',\r\n internationalAddress: 'Dirección internacional',\r\n national: 'Nacional',\r\n international: 'Internacional',\r\n\r\n // Card Payment\r\n paymentByCreditCard: 'Pago por tarjeta de crédito',\r\n paymentByDebitCard: 'Pago con tarjeta de débito',\r\n paymentByVoucherCard:\r\n\t\t'Pago con voucher de alimentación / cheque restaurant',\r\n paymentByEloVoucherCard: 'Pago con tarjeta Elo Voucher',\r\n paymentByGooglePay: 'Pago con Google Pay',\r\n cardName: 'Nombre',\r\n expiration: 'Validez',\r\n securityCode: 'Código de seguridad',\r\n cardNameHolder: 'Nombre del titular (como en la tarjeta)',\r\n cardNameHolderValidation: 'Nombre del titular',\r\n cardNumber: 'Número de la tarjeta',\r\n\r\n // Payment Success\r\n paymentSuccessTitle: '¡Su pedido ha sido realizado con éxito!',\r\n paymentSuccessDetail:\r\n\t\t'¡Gracias por comprar en {0}, socio de Cielo! Puede hacer seguimiento al estado de su pago en nuestra página de ',\r\n paymentSuccessButtonLabel: 'Consultar Pedidos',\r\n\r\n // Loggi Message\r\n loggiThanksMessage: 'Gracias por comprar con nosotros ',\r\n loggiSuccessTitle:\r\n\t\t'Su pedido ha sido realizado y estamos confirmando el pago.',\r\n loggiSuccessBody:\r\n\t\t'En breve recibirá un SMS de Loggi para seguir el progreso de su pedido. Y toda la información sobre tu compra ha sido enviada a tu correo electrónico:',\r\n requestNumber: 'Número de pedido',\r\n\r\n // Boleto Message\r\n boletoSuccessBody:\r\n\t\t'Para completar su compra realice el pago del boleto. El pago se aprobará en 1 o 2 días laborables.',\r\n barcode: 'Código de barras',\r\n openBoleto: 'Abrir boleto',\r\n\r\n // Pix Finalize\r\n pixSuccessBody:\r\n\t\t'Para completar tu compra efectúa el pago Pix. El pago se aprobará en la misma hora.',\r\n qrcodeExplanation:\r\n\t\t'También puede pagar a través de QRCode. Simplemente escanéalo desde otro dispositivo móvil',\r\n paywithPixSuccessFooter: 'Pague con',\r\n advertisingPixSuccessFooter: 'Disponible en Google Play y Apple Store',\r\n\r\n // Payment Methods\r\n creditCard: 'Tarjeta de crédito',\r\n creditCardText: 'Ingrese los datos de la tarjeta',\r\n debitCard: 'Tarjeta de débito',\r\n debitCardText: 'Ingrese los datos de la tarjeta',\r\n boleto: 'Boleto Bancario',\r\n pix: 'Pix',\r\n pixText: 'Pague al instante',\r\n qrCodePay: 'Qr Code Crédito',\r\n qrCodePayText: 'Escanee el código QR',\r\n voucher: 'Voucher de alimentación / Cheque restaurant',\r\n qrCodeDebit: 'Qr Code Débito',\r\n qrCodeDebitText: 'Escanee el código QR',\r\n clickToPay: 'ClickToPay',\r\n patEloVoucher: 'Tarjeta multibeneficio',\r\n patEloVoucher2: 'Alimentación y Comida',\r\n patEloVouchetText: 'Bandera Elo',\r\n patEloVouchetText2: 'Usar con Elo Voucher',\r\n googlePay: 'Google Pay',\r\n\r\n // Card Installments\r\n chooseInstallmentsNumber: 'Seleccione el número de cuotas',\r\n installmentsNumber: 'Número de Cuotas',\r\n installmentsItem: '{quantity}x de R$ {installmentPrice} (sin interés)',\r\n installment: 'Plan de pago',\r\n installmentSupportText: 'Proporcione el número de la tarjeta para verificar el valor de las cuotas',\r\n\r\n // Popups\r\n addressSearchZipcode:\r\n\t\t'Por favor, espere, estamos comprobando su código postal',\r\n addressZipcodeNotFound:\r\n\t\t'No encontramos la información de la dirección basada en este código postal, continúe completando los campos',\r\n addressUnderstood: 'Entendí',\r\n warning: 'Aviso',\r\n paymentProviderPurchaseError:\r\n\t\t'Se ha producido un error al procesar su compra',\r\n wait: 'Por favor, espere',\r\n unexpectedError: 'Se ha producido un error inesperado.',\r\n withoutMessage: 'Sin mensaje',\r\n qrCodeGenerationError:\r\n\t\t'Se ha producido un error al generar el qrcode de su transacción. Vuelva a abrir el link y repita el proceso de pago.',\r\n finalizingPaymentError: 'Error al finalizar el pago',\r\n unknownPaymentError: 'Error desconocido al finalizar el pago',\r\n chooseYourProvince: 'Seleccione su Provincia.',\r\n unableCalculateShippingCost:\r\n\t\t'Lamentablemente, no podemos calcular el valor del flete.',\r\n invalidExpirationDate: 'Fecha de vencimiento no válida',\r\n processingRequestError: 'Error al procesar la solicitud',\r\n cardBrandNotSupported: 'Tarjeta no suportada',\r\n\r\n // message codes\r\n cardExpired:\r\n\t\t'La fecha de validez de la tarjeta ha expirado. Por favor, elija otra tarjeta',\r\n couldNotCalculateFreight:\r\n\t\t'No fue posible calcular el valor del envío. Por favor, introduzca de nuevo su código postal de entrega.',\r\n fillWithFullName: 'Introduzca su nombre completo',\r\n finalizePaymentError:\r\n\t\t'No fue posible finalizar el pedido. Contacte lo establecimiento.',\r\n indentifyInvalid: 'Número de Documento Inválido',\r\n internationalBillingAddressIsNotEnabled:\r\n\t\t'No es posible enviar datos de facturación internacional',\r\n invalidCardNumber: 'Número de tarjeta inválido',\r\n invalidCheckoutCieloCard:\r\n\t\t'La tarjeta Elo introducida no es una tarjeta de crédito válida para las compras en Checkout Cielo.',\r\n invalidCvv: 'Código de seguridad inválido.',\r\n invalidFlagForCardNumber:\r\n\t\t'La bandera seleccionada no es válida para el número de tarjeta introducido',\r\n invalidFormZipcodeMandatory: 'Formulario inválido. Código postal requerido',\r\n orderAlreadyProcessedMessage: 'Su pedido ya está siendo procesado.',\r\n pleaseInformHolder: 'Introduzca el nombre completo del titular',\r\n productRemovedOrNotFound:\r\n\t\t'El producto solicitado no se ha encontrado o ya no está disponible.',\r\n wrongOperationResultSafetyCheck:\r\n\t\t'El resultado de la operación es erróneo (control de seguridad)',\r\n\r\n // mpi\r\n cardAuthenticationError:\r\n\t\t'Se ha producido un error de autenticación. Por favor, seleccione otra tarjeta u otro método de pago.',\r\n notAuthenticableCardError:\r\n\t\t'Tarjeta no autenticable. Por favor, seleccione otra tarjeta u otro método de pago.',\r\n unexpectedAuthenticationError:\r\n\t\t'Se ha producido un error de autenticación inesperado. Por favor, inténtelo de nuevo o seleccione otro método de pago.',\r\n flagDoesNotSupport:\r\n\t\t'Bandera no admite la autenticación. Por favor, seleccione otra tarjeta u otro método de pago.',\r\n\r\n // qr code pay\r\n qrCodePayTitle: 'Pago por QR Code Pay',\r\n payWithQrCodeSuccessFooter: 'Pague con',\r\n mobileAppAvailable: 'Disponible en Google Play y Apple Store',\r\n qrCodePayExplanation:\r\n\t\t'Para completar su compra realice el pago escaneando el QR Code que aparece a continuación. Basta escanearlo desde otro dispositivo móvil.',\r\n\r\n // Order response overview\r\n customerName: 'Nombre',\r\n orderNumber: 'Número de pedido',\r\n documentNumber: 'Documento',\r\n orderDate: 'Fecha de pedido',\r\n\r\n //ClickToPay Infos\r\n clickToPayText: 'Compras más rápidas con tu tarjeta de crédito.',\r\n clickToPayCTAText: 'Sobre el Click to Pay',\r\n clickToPayIdentityInfo:\r\n\t\t'La información será utilizada por Click to Pay para validar su identidad.',\r\n clickToPayLegalPersonInfo:\r\n\t\t'Click to Pay no está disponible para personas jurídicas. Si este es tu caso, ',\r\n clickToPayChangePaymentMethodCTA: 'cambia tu método de pago aquí.',\r\n\r\n clickToPayModalTitle: 'Click to Pay',\r\n clickToPayModalDescriptionFlags:\r\n\t\t'Un método de pago rápido y seguro, compatible con Mastercard y Visa',\r\n clickToPayModalDescriptionProtectedInf: 'Mantenga su información segura',\r\n clickToPayModalDescriptionUseWorld: 'Uso en tiendas de todo el mundo.',\r\n clickToPayModalDescriptionSimplePayment:\r\n\t\t'Configure una vez y realice pagos sin problemas en el futuro',\r\n\r\n clickToPayNewCardFormHeader: 'Detalles de la tarjeta de crédito',\r\n\r\n clickToPayAllowCheckout1: 'Registre mi información con ',\r\n clickToPayAllowCheckout2: ' en Click To Pay para compras más rápidas y seguras.',\r\n\r\n clickToPayRememberMe: 'Recuerda mis tarjetas en este navegador.',\r\n clickToPayAgreementText1: 'Al continuar, aceptas las',\r\n\r\n clickToPayAgreementTerms: 'Términos ',\r\n\r\n clickToPayAgreementText2: 'y entiendo que sus datos serán tratados de conformidad con las',\r\n clickToPayAgreementPrivacyTerms: 'Estándares de privacidad.',\r\n clickToPayAllowSaveCard: 'Guardar mi tarjeta en Click to Pay para compras rápidas y seguras.',\r\n clickToPaySaveYourCard: 'Guarda tu tarjeta',\r\n clickToPayWithSavedCard: 'Pagar con tarjeta guardada',\r\n\r\n otpTitle: 'Accede a tus tarjetas',\r\n otpDescriptionInsertCode:\r\n\t\t'Introduzca el código de autenticación enviado por',\r\n otpDescriptionToEmail: 'al e-mail',\r\n otpWrongEmail: '¿El e-mail está mal?',\r\n otpResendCode: 'Reenviar codigo',\r\n otpRememberMe: 'Recuerda mis tarjetas en este navegador',\r\n otpInvalidCodeError:\r\n\t\t'Codigo invalido. Vuelve a enviar el código o inténtalo de nuevo',\r\n otpInaccessibleError:\r\n\t\t'La cuenta no está disponible actualmente. Vuelve a intentarlo más tarde',\r\n otpRetriesExceededError:\r\n\t\t'Se ha excedido el número de reintentos. Vuelve a intentarlo más tarde',\r\n otpUnknownError:\r\n\t\t'No se puede acceder a esta cuenta. Vuelve a intentarlo más tarde',\r\n\r\n // ClickToPay Redesign\r\n paymentWithC2P: 'Pago con Click to Pay',\r\n accessYourSavedCards: 'Accede a tus tarjetas guardadas',\r\n howC2PUses: '¿Cómo usa Click to Pay mi información?',\r\n howC2PUsesTooltipText: 'Click to Pay utilizará tu número de teléfono y correo electrónico para verificar si hay tarjetas guardadas. Se puede enviar un código a tu teléfono para verificar tu identidad. Pueden aplicarse cargos por mensajes de texto.',\r\n addCard: 'Agregar tarjeta',\r\n rememberCards: 'Recordar tarjetas en este navegador',\r\n rememberCardsTooltipText1: 'Con la tarjeta guardada en el navegador, no pasarás por la verificación y podrás acceder a tus tarjetas de manera rápida y segura en Click to Pay.',\r\n rememberCardsTooltipText2: 'No se recomienda guardar en dispositivos públicos o compartidos.',\r\n edit: 'Editar',\r\n c2pAgreementText: 'Al continuar, aceptas el registro de tu tarjeta con Click to Pay.',\r\n c2pAgreementTerms: 'Términos y condiciones de ',\r\n and: 'y',\r\n c2pCardVerifying: 'Click To Pay está verificando si hay tarjetas guardadas',\r\n finishPaymentTitle: '¡Ya casi! Ingresa tu número del documento antes de finalizar',\r\n yourPersonalData: 'Tus datos personales',\r\n\r\n // Checkout errors\r\n errorCheckoutHeading: 'No se puede continuar',\r\n errorCheckoutBody: 'Elige otra tarjeta o cambia tu método de pago',\r\n\r\n //Contact view\r\n contactTitle: 'Datalles de contacto',\r\n chooseCountry: 'Selecciona el pais',\r\n selectCountry: 'Seleccionar',\r\n errorOTPHeading: 'Error al validar datos',\r\n errorOTPBody: 'Elija otro método de pago o inténtelo nuevamente.',\r\n errorOTPCTA: 'OK entendí',\r\n\r\n //Personal view\r\n PersonalTitle: 'Datos personales',\r\n\r\n //Card list view\r\n cardListTitle: 'Tarjetas guardadas en Click to Pay',\r\n enterYourDocument: 'Introduce tu documento',\r\n chooseTheNumberOfInstallments: 'Elige el número de cuotas',\r\n chooseInstallmentsNumberV2: 'Número de plazos',\r\n areTheCardsNotYours: '¿No son tuyas las tarjetas?',\r\n showAllCards: 'Mostrar todas las tarjetas',\r\n hideCardList: 'Ocultar lista de tarjetas',\r\n addNewCard: 'Agregar nueva tarjeta',\r\n locked: '(Bloqueada)',\r\n expired: '(Expirada)',\r\n lockedAndExpired: '(Bloqueada) (Expirada)',\r\n thisCardIsLocked: 'Esta tarjeta está bloqueada.',\r\n thisCardIsExpired: 'Esta tarjeta ya expiró.',\r\n thisCardIsLockedAndExpired: 'Esta tarjeta está bloqueada y expirada.',\r\n\r\n //Order status, invalid url and invalid order views\r\n orderStatus: 'Estado del pedido',\r\n invalidUrlTitle: 'La página que estás buscando no existe',\r\n invalidUrlText: 'Verifica la escritura e inténtalo de nuevo.',\r\n invalidOrderTitle: 'Servicio temporalmente no disponible',\r\n invalidOrderText: 'Lamentablemente, no es posible continuar en este momento. Por favor, inténtalo de nuevo más tarde.',\r\n update: 'Actualizar',\r\n paymentUnderReview: 'Pago en revisión',\r\n paymentUnderReviewText1: 'La confirmación del pago se realiza después de la aprobación de {0}.',\r\n paymentUnderReviewText2: 'Sigue el estado del pago en nuestra página de ',\r\n paymentDenied: 'Pago denegado',\r\n paymentDeniedText: 'Verifica los datos de la tarjeta o intenta nuevamente utilizando otro método de pago.',\r\n paymentApproved: 'Pago aprobado',\r\n paymentApprovedText: 'Has pagado {0}.',\r\n paymentSummary: 'Resumen del pago',\r\n paymentDate: 'Fecha de pago',\r\n paymentRefused: 'Pago rechazado',\r\n idPayConfirmation: 'Para garantizar la seguridad de su compra, necesitamos la confirmación de la identidad de la persona titular de la tarjeta utilizada para la compra, en el plazo de 1 hora.',\r\n confirmationInProgress: 'Confirmación en progreso',\r\n idPayRedirectText: 'Por favor, espere unos segundos mientras procesamos la confirmación de identidad.',\r\n\r\n //CVVAlert\r\n securityCVV: 'Por motivos de seguridad, introduce tu CVV',\r\n send: 'Mandar',\r\n\r\n //v2\r\n\r\n inputCVV: 'CVV',\r\n inputCardHolderName: 'Nombre como aparece en la tarjeta',\r\n inputCardDueDate: 'Fecha de vencimiento',\r\n titleViewCredCard: 'Pago con tarjeta de crédito',\r\n titleViewDebitCard: 'Pago con tarjeta de débito',\r\n titleViewQrCodeCred: 'Pago mediante Código QR de crédito',\r\n titleViewPatEloVoucherCard: 'Alimentación y Comida',\r\n titleViewGooglePay: 'Pago con Google Pay',\r\n textViewPatEloVoucherCard: 'Usar con el voucher de Elo',\r\n installmentsExplanationV2: 'Elige el número de cuotas',\r\n qrcodeExplanationV2: 'También puedes pagar mediante QRCode. Solo escanea desde otro celular',\r\n whatPayment: 'Cómo desea realizar el pago?',\r\n orderReview: 'Revisión del pedido',\r\n pixDescription: 'También puedes pagar mediante QRCode',\r\n qrcodeTitle: 'Para completar su pago, escanee el código QR a continuación',\r\n qrcodeInstruction: 'Abra el enlace de aceptación del Código QR (billeteras digitales) en una nueva pestaña del navegador:',\r\n textInstructionPayment: 'Instrucciones para realizar el pago',\r\n textInstructionPayment2: 'Utilice billeteras digitales para realizar pagos:',\r\n numberCardError: 'Numero de tarjeta invalido',\r\n dateMonthCardError: 'Mes no válido. Debe estar entre 1 y 12.',\r\n cardExpirationError: 'La fecha de vencimiento debe ser en el futuro.',\r\n new: 'Nuevo',\r\n\r\n // Select Phone\r\n countryCode: 'Seleccionar código de país',\r\n selectCountryCode: 'Código de país',\r\n\r\n\t // Select Document Type\r\n\t documentType: 'Seleccione el tipo de documento',\r\n\t selectDocumentType: 'Elige el tipo de documento',\r\n\r\n\t // Select Country\r\n\t country: 'Selecciona el pais',\r\n\t selectCountry: 'pais',\r\n wrongFlowPatEloError: 'Este parece ser una tarjeta de alimentación y comida. Por favor, ingrese los datos de la tarjeta de crédito.',\r\n verifyCardPatEloError: 'erifica el número de tu tarjeta, asegúrate de que sea una tarjeta de alimentación y comida Elo.',\r\n finishButtonQrCode: 'Generar código QR',\r\n finishButtonPix: 'Generar código Pix',\r\n change: 'Cambiar',\r\n changePayment: 'Cambiar pago',\r\n\r\n //Accessibility\r\n altLogo: 'Logo de Cielo, con las letras C-I-E-L-O estilizadas en gris y azul sobre un fondo blanco.',\r\n altLangEn: 'Bandera del Reino Unido, idioma inglés.',\r\n altLangEs: 'Bandera de España, idioma español.',\r\n altLangBr: 'Bandera de Brasil, idioma portugués.',\r\n altPix: 'Imagen del código QR Pix para escanear.',\r\n altQrCode: 'Imagen del código QR para escanear.',\r\n ariaLangList: 'Lista de selección de idiomas.',\r\n ariaShippingTypeList: 'Lista de selección de tipos de entrega.',\r\n ariaPaymentTypeList: 'Lista de selección de tipos de pago.',\r\n ariaSelectList: 'Lista de selección de :',\r\n ariaOrderSummary: 'Resumen del pedido.',\r\n ariaSeeAllItems: 'Haz clic para mostrar todos los artículos del pedido.',\r\n ariaShowDescription: 'Haz clic para expandir la descripción.',\r\n ariaShowOrderSummaryContent: 'Haz clic para expandir el resumen del pedido.',\r\n ariaCTANull: 'Botón desactivado.',\r\n ariaCTAC2P: 'Haz clic para seleccionar el método de pago Click to Pay.',\r\n ariaCTAAboutC2P: 'Haz clic para obtener más información sobre Click to Pay.',\r\n ariaCTACloseOverlay: 'Haz clic para cerrar la superposición.',\r\n ariaCTASelect: 'Haz clic para abrir el selector de :',\r\n\r\n});\r\n","import Vue from 'vue';\r\nimport { MLInstaller, MLCreate } from 'vue-multilanguage';\r\nimport EnLang from './config/lang/en.js';\r\nimport PtBrLang from './config/lang/pt-br.js';\r\nimport EsLang from './config/lang/es-es.js';\r\n \r\nVue.use(MLInstaller);\r\n \r\nexport default new MLCreate({\r\n initial: 'pt-br',\r\n save: process.env.NODE_ENV === 'production',\r\n languages: [\r\n EnLang,\r\n PtBrLang,\r\n EsLang\r\n ]\r\n});","import Vue from 'vue';\r\nVue.filter('capitalize', function (value) {\r\n if (!value) return '';\r\n value = value.toString();\r\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\r\n});\r\n","import Vars from './vars';\r\n\r\nconst URLS = Vars.ENVIRONMENT === 'PRD' ? [\r\n (url) => url.startsWith('https://checkoutstatusupdate.cieloecommerce.cielo.com.br'),\r\n (url) => url.startsWith('https://mpi.braspag.com.br'),\r\n (url) => url.startsWith('https://cieloecommerce.cielo.com.br')\r\n] : [\r\n (url) => url.startsWith('https://checkoutstatusupdatesandbox.cieloecommerce.cielo.com.br'),\r\n (url) => url.startsWith('https://mpisandbox.braspag.com.br'),\r\n (url) => url.startsWith('https://meucheckoutsandbox.braspag.com.br')\r\n];\r\n\r\nexport const DATADOG = {\r\n applicationId: Vars.APPLICATION_ID,\r\n clientToken: Vars.CLIENT_TOKEN,\r\n site: 'datadoghq.com',\r\n service: Vars.DATADOG_SERVICE,\r\n env: Vars.DATADOG_ENV,\r\n version: '1.0.0',\r\n sessionSampleRate: 60,\r\n sessionReplaySampleRate: 20,\r\n trackUserInteractions: true,\r\n trackResources: true,\r\n trackLongTasks: true,\r\n defaultPrivacyLevel:'mask-user-input',\r\n allowedTracingUrls: URLS,\r\n};\r\n","import Vue from 'vue';\r\n\r\nVue.config.productionTip = false;\r\n\r\nimport App from '@/App';\r\nimport router from '@/router';\r\nimport store from '@/store';\r\nimport vars from '@/config/vars';\r\nimport PaymentNotificator from '@/services/PaymentNotificator';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\n\r\n// Cielo theme\r\nimport '@/assets/scss/theme.scss';\r\n\r\n// Vue plugins\r\nimport VeeValidate from 'vee-validate';\r\nVue.use(VeeValidate);\r\n\r\nimport VueTheMask from 'vue-the-mask';\r\nVue.use(VueTheMask);\r\n\r\nimport Clipboard from 'v-clipboard';\r\nVue.use(Clipboard);\r\n\r\nimport './multiLanguage';\r\n\r\nimport { initializeLogging, logException } from '@/helpers/cieloLogger';\r\ninitializeLogging(vars.GOOGLE_ANALYTICS_TRACKING_ID);\r\n\r\n//Filters\r\nimport './filters/capitalize';\r\n\r\n//Datadog Config\r\nimport { DATADOG } from './config/datadog';\r\n\r\n// Error listener\r\nVue.config.errorHandler = logException;\r\n\r\n//DATADOG\r\ndatadogRum.init(DATADOG);\r\n\r\ndatadogRum.startSessionReplayRecording();\r\n\r\n// Vue initialization\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App),\r\n\r\n mounted: function () {\r\n store.state.mpi.multiLanguage = this.$ml;\r\n }\r\n}).$mount('#app');\r\n\r\n// Real time notifications\r\nPaymentNotificator.CreateConnection();\r\n","module.exports = __webpack_public_path__ + \"img/qrcode-v2.svg\";","export default {\r\n // Indefinido\r\n UNDEFINED: 0,\r\n\r\n // Correios\r\n CORREIOS: 1,\r\n\r\n // Frete fixo\r\n FIXED_AMOUNT: 2,\r\n\r\n // Frete grátis\r\n FREE: 3,\r\n\r\n // Sem frete (Retirar na loja)\r\n WITHOUT_SHIPPING_PICKUP: 4,\r\n\r\n // Sem frete (Produto digital ou serviço)\r\n WITHOUT_SHIPPING: 5,\r\n\r\n // Loggi\r\n LOGGI: 6\r\n};\r\n","module.exports = __webpack_public_path__ + \"img/boleto-v2.svg\";","import axios from 'axios';\r\nimport vars from '@/config/vars';\r\n\r\nconst defaultHeaders = {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n};\r\n\r\nconst axiosConfig = axios.create({\r\n baseURL: vars.API_GATEWAY_URL,\r\n headers: defaultHeaders\r\n});\r\n\r\nexport default axiosConfig;","import Vars from '@/config/vars';\r\nimport store from '@/store';\r\nimport { logException } from '@/helpers/cieloLogger';\r\nimport axios from '@/config/axios.config';\r\n\r\nconst afterLoadHandler = async () => {\r\n const params = {\r\n // required DPA Identifier, generated during registration.\r\n srcDpaId: store.state.clickToPayPayment.dpaId,\r\n dpaData: {\r\n dpaName: store.state.clickToPayPayment.dpaName? store.state.clickToPayPayment.dpaName: 'Checkout Cielo'\r\n },\r\n dpaTransactionOptions: { \r\n dpaLocale: 'pt_BR',\r\n confirmPayment: false,\r\n dpaBillingPreference: 'FULL',\r\n paymentOptions:[\r\n {\r\n dynamicDataType: 'CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM'\r\n }\r\n ]\r\n },\r\n cardBrands: store.state.clickToPayPayment.supportedBrandCards, \r\n checkoutExperience: 'WITHIN_CHECKOUT', // \"PAYMENT_SETTINGS\" || \"WITHIN_CHECKOUT\"\r\n };\r\n\r\n \r\n try {\r\n let recognitionTokenResponse;\r\n\r\n if (Vars.USE_SIMULATED_MODE)\r\n recognitionTokenResponse = await new Promise(resolve => setTimeout(() => resolve({data: {'token': 'abc'}}), 3000));\r\n else\r\n recognitionTokenResponse = await axios.get('/recognitionToken/getToken');\r\n \r\n if (!recognitionTokenResponse.data) {\r\n throw new Error('Network response was not ok ');\r\n }\r\n\r\n if(recognitionTokenResponse.data.token) {\r\n params.recognitionToken = recognitionTokenResponse.data.token;\r\n }\r\n } catch (error) {\r\n logException(error);\r\n }\r\n\r\n window.mcCheckoutService = new MastercardCheckoutServices();\r\n try {\r\n // No other library methods should be invoked until `init` resolves\r\n const promiseResolvedPayload = await window.mcCheckoutService.init(params);\r\n store.state.clickToPayPayment.initialized = true;\r\n store.state.clickToPayPayment.availableCardBrands = promiseResolvedPayload.availableCardBrands;\r\n\r\n const cards = await window.mcCheckoutService.getCards();\r\n store.state.clickToPayPayment.cards = cards;\r\n } catch (promiseRejectedPayload) {\r\n logException(promiseRejectedPayload);\r\n }\r\n};\r\n\r\nexport const initClickToPayScript = async () => {\r\n if(store.state.clickToPayPayment.initialized) {\r\n return;\r\n }\r\n\r\n const dpaId = store.state.clickToPayPayment.dpaId;\r\n if(!dpaId) {\r\n return;\r\n }\r\n\r\n let c2pScr = Vars.ENVIRONMENT === 'PRD'?\r\n `https://src.mastercard.com/srci/integration/2/lib.js?srcDpaId=${dpaId}&locale=pt_BR`:\r\n `https://sandbox.src.mastercard.com/srci/integration/2/lib.js?srcDpaId=${dpaId}&locale=pt_BR`;\r\n let clickToPayScript = document.createElement('script');\r\n clickToPayScript.src = c2pScr;\r\n\r\n const scriptLoading = new Promise((resolve, reject) => {\r\n clickToPayScript.addEventListener('load', async () => {\r\n await afterLoadHandler();\r\n resolve();\r\n });\r\n document.head.appendChild(clickToPayScript);\r\n });\r\n\r\n await scriptLoading;\r\n};\r\n\r\nconst createiFrame = () => {\r\n const isIframeCreated = document.querySelector('#iframe-click-to-pay-container');\r\n if(isIframeCreated) {\r\n return;\r\n }\r\n\r\n const iframeContainer = document.createElement('div');\r\n iframeContainer.setAttribute('id', 'iframe-click-to-pay-container');\r\n iframeContainer.classList.add('click-to-pay-iframe-container');\r\n\r\n const iframe = document.createElement('iframe');\r\n iframe.classList.add('click-to-pay-iframe');\r\n iframeContainer.appendChild(iframe);\r\n const appRoot = document.querySelector('#app');\r\n appRoot.appendChild(iframeContainer);\r\n appRoot.classList.add('with-iframe');\r\n\r\n return iframe;\r\n};\r\n\r\nconst closeiFrame = () => {\r\n const iframe = document.querySelector('#iframe-click-to-pay-container');\r\n if (iframe) {\r\n iframe.remove();\r\n const appRoot = document.querySelector('#app');\r\n appRoot.classList.remove('with-iframe');\r\n }\r\n};\r\n\r\nconst checkoutWithVisaCard = async (consumer, rememberMeAgreement, iframe, card) => {\r\n const visaConsumerPayload = {\r\n nationalIdentifier: consumer.nationalIdentifier,\r\n lastName: consumer.lastName || card.cardholderLastName,\r\n firstName: consumer.firstName || card.cardholderFirstName\r\n };\r\n\r\n // Test Address: 900 Metro Center Blvd, Foster City, CA 94404\r\n const sandboxBillingAddress = {\r\n name: 'Plinio Leme',\r\n line1: '900 Metro Center Blvd',\r\n city: 'Foster City',\r\n state: 'CA',\r\n zip: '94404',\r\n countryCode: 'US',\r\n };\r\n\r\n const billingAddress = Vars.ENVIRONMENT !== 'PRD'? sandboxBillingAddress: card.billingAddress;\r\n\r\n const encryptCardResult = await window.mcCheckoutService.encryptCard({\r\n ...card,\r\n billingAddress,\r\n });\r\n\r\n if(consumer.emailAddress) {\r\n visaConsumerPayload.emailAddress = consumer.emailAddress;\r\n }\r\n if(consumer.mobileNumber && consumer.mobileNumber.phone) {\r\n visaConsumerPayload.mobileNumber = {\r\n phoneNumber: consumer.phone,\r\n countryCode: consumer.countryCode\r\n };\r\n }\r\n\r\n const checkoutWithNewCardResult = await window.mcCheckoutService.checkoutWithNewCard({\r\n encryptedCard: encryptCardResult.encryptedCard,\r\n cardBrand: encryptCardResult.cardBrand,\r\n windowRef: iframe.contentWindow,\r\n recognitionTokenRequested: rememberMeAgreement,\r\n consumer: visaConsumerPayload,\r\n dpaTransactionOptions: {\r\n consumerEmailAddressRequested: true,\r\n consumerPhoneNumberRequested: true,\r\n consumerNameRequested: true,\r\n paymentOptions: [\r\n {\r\n dynamicDataType: 'CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM'\r\n }\r\n ]\r\n },\r\n complianceSettings: {\r\n privacy: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/privacy.html'\r\n },\r\n tnc: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/terms.html'\r\n }\r\n }\r\n });\r\n\r\n return checkoutWithNewCardResult;\r\n};\r\n\r\nexport const encryptAndCheckoutWithNewCard = async (card, consumer, rememberMeAgreement) => {\r\n try {\r\n const encryptCardResult = await window.mcCheckoutService.encryptCard({\r\n ...card,\r\n });\r\n\r\n const iframe = createiFrame();\r\n\r\n if(encryptCardResult.cardBrand === 'visa') {\r\n const checkoutWithNewCardResult = await checkoutWithVisaCard(consumer, rememberMeAgreement, iframe, card);\r\n closeiFrame();\r\n return checkoutWithNewCardResult;\r\n }\r\n\r\n const checkoutWithNewCardResult = await window.mcCheckoutService.checkoutWithNewCard({\r\n encryptedCard: encryptCardResult.encryptedCard,\r\n cardBrand: encryptCardResult.cardBrand,\r\n windowRef: iframe.contentWindow,\r\n recognitionTokenRequested: rememberMeAgreement,\r\n consumer,\r\n dpaTransactionOptions: {\r\n consumerEmailAddressRequested: true,\r\n consumerPhoneNumberRequested: true,\r\n consumerNameRequested: true,\r\n paymentOptions:[\r\n {\r\n dynamicDataType: 'CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM'\r\n }\r\n ]\r\n },\r\n complianceSettings: {\r\n privacy: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/privacy.html'\r\n },\r\n tnc: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/terms.html'\r\n }\r\n }\r\n });\r\n closeiFrame();\r\n return checkoutWithNewCardResult;\r\n } catch(error) {\r\n closeiFrame();\r\n console.error('Erro C2P - encryptAndCheckoutWithNewCard', error); //Remover depois dos testes C2P\r\n logException(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const checkoutWithCard = async (srcDigitalCardId, rememberMeAgreement) => {\r\n try {\r\n const iframe = createiFrame();\r\n const checkoutWithCardResult = await window.mcCheckoutService.checkoutWithCard({\r\n srcDigitalCardId: srcDigitalCardId,\r\n windowRef: iframe.contentWindow,\r\n recognitionTokenRequested: rememberMeAgreement,\r\n dpaTransactionOptions: {\r\n consumerEmailAddressRequested: true,\r\n consumerPhoneNumberRequested: true,\r\n consumerNameRequested: true,\r\n paymentOptions:[\r\n {\r\n dynamicDataType: 'CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM'\r\n }\r\n ]\r\n },\r\n complianceSettings: {\r\n privacy: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/privacy.html'\r\n },\r\n tnc: {\r\n acceptedVersion: 'LATEST',\r\n latestVersion: 'LATEST',\r\n latestVersionUri: 'https://www.mastercard.com/global/click-to-pay/country-listing/terms.html'\r\n }\r\n }\r\n });\r\n closeiFrame();\r\n return checkoutWithCardResult;\r\n } catch(error) {\r\n closeiFrame();\r\n console.error('Erro C2P - checkoutWithCard', error); //Remover depois dos testes C2P\r\n logException(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const splitNames = (fullName) => {\r\n if(!fullName) {\r\n return {\r\n firstName: '',\r\n lastName: '',\r\n };\r\n }\r\n\r\n const names = fullName.split(' ');\r\n\r\n if(names.length === 0) {\r\n return {\r\n firstName: '',\r\n lastName: '',\r\n };\r\n }\r\n\r\n if(names.length === 1) {\r\n return {\r\n firstName: names[0],\r\n lastName: '',\r\n };\r\n }\r\n\r\n return {\r\n firstName: names[0],\r\n lastName: names[names.length - 1],\r\n };\r\n};","let Vars = {\r\n APP_VERSION: '20190905.1',\r\n SIMULATED_MODE: process.env.NODE_ENV !== 'production' // MODO SIMULADO - Altere para true para usar dados mockados\r\n};\r\n\r\n/**\r\n * ENVIRONMENT\r\n */\r\nlet isInProdMode = window.location.href.includes('cieloecommerce') ||\r\n window.location.href.includes('vermont') ||\r\n window.location.href.includes('avalon');\r\nif (isInProdMode)\r\n Vars.ENVIRONMENT = 'PRD';\r\nelse if (window.location.href.includes('sandbox'))\r\n Vars.ENVIRONMENT = 'SDB';\r\nelse\r\n Vars.ENVIRONMENT = 'DEV';\r\n\r\nVars.USE_SIMULATED_MODE = Vars.ENVIRONMENT == 'DEV' && Vars.SIMULATED_MODE;\r\n\r\n/**\r\n * GATEWAY INFO\r\n*/\r\nVars.API_GATEWAY_URL =\r\n Vars.ENVIRONMENT === 'DEV'\r\n ? '/api' // URL em DEV\r\n : '/checkoutui/api'; // URL em release\r\n\r\nVars.GOOGLE_ANALYTICS_TRACKING_ID =\r\n (Vars.ENVIRONMENT === 'PRD')\r\n ? 'UA-147211815-2' // Chave de produção\r\n : 'UA-147211815-1'; // Chave de sandbox\r\n\r\n/**\r\n * CHECKOUT INFO\r\n */\r\nVars.CIELO_CHECKOUT_URL =\r\n (Vars.ENVIRONMENT === 'PRD')\r\n ? 'https://cieloecommerce.cielo.com.br' // Produção\r\n : 'https://meucheckoutsandbox.braspag.com.br'; // Sandbox\r\n\r\n/**\r\n * SCRIPT MPI BRSPAG\r\n */\r\nVars.MPI_SCRIPT_URL =\r\n (Vars.ENVIRONMENT === 'PRD')\r\n ? 'https://mpi.braspag.com.br/Scripts/BP.Mpi.3ds20.min.js' // Produção\r\n : 'https://mpisandbox.braspag.com.br/Scripts/BP.Mpi.3ds20.min.js'; // Sandbox\r\n\r\nVars.ELO_VOUCHER_BIN_LIST = [\r\n '506722', '509023', '509105', '509030', '506720', '509007', '506774', '506739', '650525',\r\n '650727', '651661', '651667', '651656', '655010', '655006', '509020', '509021', '650526',\r\n '650047', '650928', '650971', '509022', '650915', '650955', '650947', '650919'\r\n];\r\n\r\nVars.PAYMENT_NOTIFICATION_HUB_URL = (() => {\r\n switch (Vars.ENVIRONMENT) {\r\n case 'PRD':\r\n return 'https://checkoutstatusupdate.cieloecommerce.cielo.com.br/hubs/payment-notification';\r\n case 'SDB':\r\n return 'https://checkoutstatusupdatesandbox.cieloecommerce.cielo.com.br/hubs/payment-notification';\r\n case 'DEV':\r\n return 'https://localhost:5001/hubs/payment-notification';\r\n default:\r\n return 'https://checkoutstatusupdate.cieloecommerce.cielo.com.br/hubs/payment-notification';\r\n }\r\n})();\r\n\r\nVars.MINUTES_TO_CLOSE_HUB_CONNECTION = 5;\r\n\r\nVars.DATADOG_ENV = Vars.ENVIRONMENT === 'PRD' ? 'prod' : 'sbox';\r\n\r\nVars.DATADOG_SERVICE = Vars.ENVIRONMENT === 'PRD' ? 'checkout-prod' : 'checkout-sandbox';\r\n\r\nVars.APPLICATION_ID = Vars.ENVIRONMENT === 'PRD' ? '2255c323-e4e7-4cc6-a7ea-02f8c4b43851' : '36a11c4b-b572-4d18-849f-9a14076e06d9';\r\n\r\nVars.CLIENT_TOKEN = Vars.ENVIRONMENT === 'PRD' ? 'pubc83340a7ba8d96de34688a73641e45bc' : 'pube646a73b2a6c2a2afb9012a7bd21f118';\r\n\r\nexport default Vars;\r\n","export default {\r\n AMEX: 'amex',\r\n AURA: 'aura',\r\n DINERS: 'diners',\r\n DISCOVER: 'discover',\r\n ELO: 'elo',\r\n HIPERCARD: 'hipercard',\r\n JCB: 'jcb',\r\n MASTERCARD: 'master',\r\n VISA: 'visa',\r\n ALELO: 'Alelo',\r\n PATELOVOUCHER: 'PatEloVoucher'\r\n};","export default {\r\n /**\r\n * Formata o preço com casas decimais\r\n */\r\n formatToPrice: price => \r\n (price || 0).toLocaleString('pt-BR', { minimumFractionDigits:2, maximumFractionDigits:2 })\r\n};","export default {\r\n UNDEFINED: 0,\r\n CREDIT_CARD: 1,\r\n BOLETO: 2,\r\n ONLINE_DEBIT: 3,\r\n DEBIT_CARD: 4,\r\n QRCODE: 5,\r\n PIX: 6,\r\n QRCODE_DEBIT: 7,\r\n PAT_ELO_VOUCHER: 8,\r\n GOOGLE_PAY: 9,\r\n CLICK_TO_PAY: 100,\r\n VOUCHER: 99\r\n};","module.exports = __webpack_public_path__ + \"img/pix-v2.svg\";","module.exports = __webpack_public_path__ + \"img/shipping-type-card-loggi.svg\";","export function isNullOrWhitespace(value) {\r\n return !value || value.trim() == '';\r\n}\r\n\r\nexport function formatCardNumber(str) {\r\n const cleaned = ('' + str).replace(/\\D/g, '');\r\n return (\r\n cleaned.substring(0, 4) +\r\n\t\t' ' +\r\n\t\tcleaned.substring(4, 8) +\r\n\t\t' ' +\r\n\t\tcleaned.substring(8, 12) +\r\n\t\t' ' +\r\n\t\tcleaned.substring(12, str.length)\r\n );\r\n}\r\n\r\nexport function formatCpfNumber(str) {\r\n const cleaned = ('' + str).replace(/\\D/g, '');\r\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/);\r\n\r\n if (match) {\r\n return `${match[1]}.${match[2]}.${match[3]}-${match[4]}`;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function formatPhoneNumber(str) {\r\n const cleaned = ('' + str).replace(/\\D/g, '');\r\n const match = cleaned.match(/^(\\d{2})(\\d{5})(\\d{4})$/);\r\n\r\n if (match) {\r\n return `(${match[1]}) ${match[2]}-${match[3]}`;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function formatZipCode(str) {\r\n const cleaned = ('' + str).replace(/\\D/g, '');\r\n return cleaned.substring(0, 5) + '-' + cleaned.substring(5, cleaned.length);\r\n}\r\n"],"sourceRoot":""}