{"version":3,"sources":["webpack:///./src/EbaySweden.TouchWeb/static/script/tags/modal.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/braintree-payment.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-payment.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-shipping.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/braintree-payment-core.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/mixin/modal-mixin.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-handel-payment.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-app2app-modal-body.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-mixin.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-success.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/tags/pagination.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-error.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-summary.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-modal.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/invoice-payment.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-error.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/util.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-success.riot.html","webpack:///./build/templates/riot-core-tags.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-form.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/payment.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/shipping.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/context.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-item.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-modal-body.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-abort.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/modal.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/braintree-integration.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-app2app-payment.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-abort.riot.html","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/context/observable.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-form.riot.html"],"names":["riot","tag2","opts","self","this","hide","on","open","show","modalId","modal","$","popupHeight","height","scroll","document","scrollTop","windowHeight","window","innerHeight","documentElement","clientHeight","css","targetOffset","adjustPosition","update","close","_internalClose","evt","target","attributes","_","isFunction","onclose","disabled","braintreeIntegrationId","paypalContainer","context","util","braintreeIntegration","coreModel","observable","type","selectPaymentType","paymentFailure","paymentType","isBraintreePaymentType","failureResolutionCode","reloadBraintreeIntegration","selectedPaymentType","item","model","isBraintreeDisabled","paymentAmountPriorChange","getPaymentAmount","setShippingCost","shippingCost","prepareForSubmit","tokenizeCard","addNewCardMethod","processBraintreeError","payload","verifyCardUsing3DSecure","showProgress","progressModal","showModal","title","t","nonDismissible","showProgressIcon","closeProgress","teardown","setupBraintreeIntegration","setup","clientToken","id","isCardEnabled","isPayPayEnabled","isInSandboxEnvironment","paymentAmount","onSetupReady","onBraintreeSetupReady","onPaymentMethodReceived","onNewPaypalMethodCreated","addNewPaypalMethod","onError","onCardValidation","validateNewCard","texts","expirationDate_placeHolder","deviceData","paypalSetupFailed","serverLog","error","counterName","setDeviceData","selectPaymentMethod","event","isSelected","parent","saveNewCard","saveNewCardOnPayment","saveCardCheckbox","checked","deletePaymentMethod","done","initiateNewPaypalAccountFlow","tokenizePaypalAccount","nonce","email","addNewPaypalAccount","isThreeDSecureEnabled","console","log","amount","verifyCardWith3DSecure","threeDSecureData","validate3DSecureResult","trigger","prepareCard","init","orderCheckoutSwishApp2App","pageName","preselectedPaymentType","selectedItem","selectShippingMethod","href","location","striked","IsSelected","isNotSpecifiedItem","shippingType","setInitialSelection","notStriked","shippingOptions","so","getShippingIconClass","toLowerCase","getFlagUrl","toCountryCode","showShippingIcon","getMessagingLink","url","getMessagingPageLink","sellerId","buyerId","itemId","traderaUserId","singleThread","openForm","source","toLocalizedUrl","hasSentSuccess","formMessageLength","initPayload","modalVisibleState","errorPayload","setVisibleModal","tagName","name","hasOwnProperty","isOpen","initialize","modalHeight","modalBackground","style","opacity","fadeIn","adjustMarginTop","marginTop","onClose","currentTarget","closeModal","confirmClose","reload","bus","onRetry","onSentSuccess","onFormEdit","msgLength","onSentError","paymentMethods","PaymentMethod","paypalEmail","token","isNewCard","cardValidation","saveCard","getId","isDeletable","isValid","number","expirationDate","cvv","reset","isCard","newCard","getCards","getPaypalAccounts","payment","getSelectedPaymentMethod","result","length","getSubmitPayload","selected","modelIn","contextIn","tempPaymentMethods","push","extend","selectedMethods","preselectedPaymentMethod","save","cards","paypalAccounts","deviceDataIn","selectedMethod","cost","itemPrice","defered","Deferred","onPaymentMethodDeleted","index","resolve","ajax","data","integration","success","req","status","promise","selectedPaymentMethod","addedPaypalMethod","warn","message","field","liabilityShiftPossible","liabilityShifted","beforeShow","phone_number","value","phoneNumber","useMobileFlow","isAutoStartAllowed","validatePhoneNumber","paymentResponse","paymentRequestToken","callbackUrl","subTitleHtml","bodyTagName","buttons","secondary","click","isCanceled","errorCount","startSwishPolling","swishCallbackUrl","encodeURIComponent","useOnOtherDevice","useOnThisDevice","setPayload","swishHandelPhoneNumber","getSwishPayment","swishPollUrl","then","isFailed","failureMessage","isPaid","fail","statusText","deferred","Date","getTime","get","reject","otherOptionVisible","phoneNumberValid","smsSent","showOtherOptions","sendApp2AppLink","purchaseOrderId","prevVisible","prevBeforeVisible","if","registerPaginationCallbackFunction","pages","currentNumber","lastNumber","showPreviousPageLink","showNextPageLink","previousClicked","paginationClickedCallback","nextClicked","pageNumberClicked","page","mixin","modalMixin","errorTypes","defaultError","header","retryButtonVisible","retryButtonText","abortButtonText","isError","getError","errorType","errors","join","onVisible","responseJSON","response","onAbort","shipping","selectedShippingType","isCheckoutValid","confirmButtonClick","performPayment","performPaymentUrl","makeStickyDiv","s","pos","position","top","addClass","removeClass","mount","bodyTagModel","html","tag","root","innerHTML","primaryClick","primary","secondaryClick","showError","text","action","showErrorIcon","showSuccess","buttonText","showSuccessIcon","validationError","fatalError","sendError","newHighestBidderError","defaultMessage","newBidder","alias","onMessageSent_failed","toLocalizedRiotUrl","onOk","sending","messageMaxLength","hasValidationError","validator","sendButtonDisabled","sendMsgLength","focusTextarea","breakpoints","isVisible","xlarge","focus","hasInvalidLength","msg","resetForm","onEdit","hasError","warningmessage","isEmpty","hasInvalidCharacters","onSend","comment","gradeId","onCancel","key","whenInitialized","translate","catch","dialogText","successMessage","successButtonText","successAction","deferedPrepare","isAborted","paymentPayload","contentType","initTimeoutHandling","timeout","stopTimeoutHandler","timeoutHandlerId","currentModalModel","clearTimeout","modalDialog","preparePaymentForSubmit","confirmPurchase","purchaseSuccess","purchaseFailed","e","paymentRequiresUserConfirmation","redirectTo","redirectUrl","suppressMessage","fiveMinutesFromNow","dayjs","add","format","errorMessage","errorTitle","featureToggles","componentInstance","component","attr","content","cssClass","extraClass","clientInstance","dataCollectorInstance","hostedFieldsInstance","threeDSecureInstance","paypalInstance","conf","a","braintree","client","create","authorization","dataCollector","kount","paypal","options","styles","input","color","fields","selector","placeholder","hostedFields","emittedBy","threeDSecure","version","onTeardownComplete","tokenizeComplete","tokenize","flow","currency","locale","details","code","onTokenizeComplete","tokenizationPayload","onVerifyComplete","threeDSecureParameters","bin","billingAddress","additionalInformation","onLookupComplete","next","verifyCard","completeSwishApp2AppPayment","qrCode","swishApp2App","reloadAfterClose","modalTitle","receiverMemberId","senderMemberEmail","senderMemberAlias","itemTitle","messageSubject","itemEnddate","itemImageUrl","receiverMemberAlias","businessWarning","updateReceiver","receiverInfo","firstShowing","_reset","sendCopytoSender","edit","onSellerCopyToggle","keyCode","showForm"],"mappings":"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","file":"script/chunks/chunk.cart-checkout~checkout2~profile-page~resolution~view-item-page.2fda0d9536.js","sourcesContent":["import $ from 'jquery';\nriot.tag2('modal', '
', '', '', function(opts) {\n var self = this;\n self.hide = true;\n\n this.on('open-modal', function () {\n self.open();\n });\n\n function isCloseTrigger(element) {\n return !!element.attributes['data-modal-close-trigger'];\n }\n\n this.on('update', function () {\n if (this.opts.show) {\n this.hide = !this.opts.show;\n }\n }.bind(this));\n\n this.on('updated', function () {\n adjustPosition(this.opts.modalId);\n }.bind(this));\n\n function adjustPosition(modalId) {\n var modal = $('[data-modal=\"' + modalId + '\"]');\n var popupHeight = modal.height();\n if (popupHeight < 0) {\n return;\n }\n var scroll = $(document).scrollTop();\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n\n if (popupHeight > windowHeight) {\n modal.css('margin-top', scroll);\n } else {\n var targetOffset = (windowHeight - popupHeight) * 0.25;\n modal.css('margin-top', targetOffset + scroll);\n }\n }\n\n this.open = function () {\n self.hide = false;\n self.update();\n }.bind(this);\n\n this.close = function () {\n self.hide = true;\n self.update();\n }.bind(this);\n\n this._internalClose = function (evt) {\n if (isCloseTrigger(evt.target)) {\n self.hide = true;\n } else {\n return true;\n }\n self.update();\n if (_.isFunction(this.opts.onclose)) {\n this.opts.onclose();\n }\n }.bind(this);\n});","import context from 'static/script/app/ui/checkout2/context/context';\nimport util from 'static/script/app/ui/checkout2/context/util';\nimport braintreeIntegration from 'static/script/app/ui/checkout2/braintree-integration';\nimport coreModel from 'static/script/app/ui/checkout2/braintree-payment-core';\nriot.tag2('braintree-payment', '
{t(\\'checkout_braintree_braintreeDisabled\\')}
{t(\\'checkout_braintree_verifyProvidedInformation\\')}
{t(\\'checkout_braintree_contactYourBank\\')}
{t(\\'checkout_braintree_tryOtherCardType\\')}
{t(\\'checkout_braintree_contactPaypal\\')}
{t(\\'checkout_braintree_contactOurSupport\\')}
{t(\\'checkout_braintree_tryAgain\\')}
 
1}\">
 
', '', '', function(opts) {\n if(opts.disabled) {\n return;\n }\n this.braintreeIntegrationId = 'braintree-integration-id';\n this.paypalContainer = 'paypal-container';\n\n this.context = context;\n this.util = util;\n this.braintreeIntegration = braintreeIntegration;\n this.coreModel = coreModel;\n\n this.context.observable.on('payment-type-selected', function (type) {\n this.selectPaymentType(type);\n this.update();\n }.bind(this));\n\n this.context.observable.on('payment-failed', function (paymentFailure, paymentType) {\n if (this.coreModel.isBraintreePaymentType(paymentType)) {\n this.failureResolutionCode = paymentFailure.failureResolutionCode;\n this.reloadBraintreeIntegration(this.coreModel.selectedPaymentType());\n }\n }.bind(this));\n\n this.context.observable.on('shipping-changed', function (item) {\n if (opts.model.isBraintreeDisabled) return;\n\n var paymentAmountPriorChange = this.coreModel.getPaymentAmount();\n this.coreModel.setShippingCost(item.shippingCost);\n\n if (paymentAmountPriorChange === this.coreModel.getPaymentAmount())\n return;\n\n this.reloadBraintreeIntegration(this.coreModel.selectedPaymentType());\n }.bind(this));\n\n this.context.observable.on('braintree-payment-prepare-for-submit', function () {\n if (!this.coreModel.prepareForSubmit()) {\n this.braintreeIntegration.tokenizeCard(this.addNewCardMethod.bind(this), this.coreModel.processBraintreeError);\n }\n\n }.bind(this));\n\n this.context.observable.on('braintree-verify-3d-secure', function (payload) {\n this.verifyCardUsing3DSecure(payload);\n }.bind(this));\n\n this.selectPaymentType = function (paymentType) {\n if (paymentType === this.coreModel.selectedPaymentType())\n return;\n\n if (this.coreModel.isBraintreePaymentType(paymentType)) {\n this.failureResolutionCode = null;\n this.reloadBraintreeIntegration(paymentType);\n } else {\n this.coreModel.selectPaymentType(paymentType);\n }\n }\n\n this.showProgress = function () {\n this.progressModal = this.context.modal.showModal('checkout-modal', {\n title: this.t('checkout_braintree_loading'),\n nonDismissible: true,\n showProgressIcon: true\n });\n }\n\n this.closeProgress = function () {\n if (this.progressModal) {\n this.progressModal.close();\n this.progressModal = null;\n }\n }\n\n this.reloadBraintreeIntegration = function (paymentType) {\n this.showProgress();\n\n this.braintreeIntegration.teardown(function () {\n this.setupBraintreeIntegration();\n this.coreModel.selectPaymentType(paymentType);\n }.bind(this));\n }\n\n this.setupBraintreeIntegration = function () {\n this.braintreeIntegration.setup({\n clientToken: opts.model.clientToken,\n id: this.braintreeIntegrationId,\n isCardEnabled: opts.model.isCardEnabled,\n isPayPayEnabled: opts.model.isPayPayEnabled,\n paypalContainer: opts.model.isPayPayEnabled ? this.paypalContainer : null,\n isInSandboxEnvironment: opts.model.isInSandboxEnvironment,\n paymentAmount: this.coreModel.getPaymentAmount(),\n onSetupReady: this.onBraintreeSetupReady.bind(this),\n onPaymentMethodReceived: this.addNewCardMethod.bind(this),\n onNewPaypalMethodCreated: this.addNewPaypalMethod.bind(this),\n onError: this.coreModel.processBraintreeError,\n onCardValidation: this.coreModel.validateNewCard,\n texts: {\n expirationDate_placeHolder: this.t('checkout_braintree_expiryDatePlaceholder')\n }\n });\n }\n\n this.onBraintreeSetupReady = function (deviceData, paypalSetupFailed) {\n\n if (paypalSetupFailed) {\n this.util.serverLog({\n error: 'Paypal setup failed',\n counterName: 'braintree-payment.paypal-setup-failed'\n });\n }\n\n this.coreModel.setDeviceData(deviceData);\n this.closeProgress();\n }\n\n this.selectPaymentMethod = function (event) {\n if (this.coreModel.selectedPaymentType() === event.item.type && event.item.isSelected)\n return;\n\n this.parent.failureResolutionCode = null;\n this.coreModel.selectPaymentMethod(event.item);\n };\n\n this.saveNewCard = function () {\n this.coreModel.saveNewCardOnPayment(this.saveCardCheckbox.checked);\n }\n\n this.deletePaymentMethod = function (event) {\n this.coreModel.deletePaymentMethod(event.item).done(function () {\n this.parent.update();\n }.bind(this));\n }\n\n this.initiateNewPaypalAccountFlow = function () {\n this.braintreeIntegration.tokenizePaypalAccount(this.coreModel.getPaymentAmount(), this.addNewPaypalMethod.bind(this), this.coreModel.processBraintreeError);\n };\n\n this.addNewPaypalMethod = function (nonce, email) {\n this.coreModel.addNewPaypalAccount(nonce, email);\n this.update();\n }\n\n this.addNewCardMethod = function (payload) {\n this.verifyCardUsing3DSecure(payload);\n };\n\n this.verifyCardUsing3DSecure = function (payload) {\n if (opts.model.isThreeDSecureEnabled) {\n console.log('using 3DSecure');\n var amount = this.coreModel.getPaymentAmount();\n this.braintreeIntegration.verifyCardWith3DSecure(payload, amount, opts.model.threeDSecureData, this.coreModel.validate3DSecureResult.bind(\n this), function () {\n this.context.observable.trigger('braintree-payment-not-ready-for-submit', true);\n this.util.serverLog({\n counterName: 'braintree-payment.card-3dsecure.aborted'\n });\n }.bind(this));\n } else {\n this.coreModel.prepareCard(payload.nonce);\n }\n }\n\n if (!opts.model.isBraintreeDisabled) {\n this.showProgress();\n this.coreModel.init(opts.model, this.context);\n this.setupBraintreeIntegration();\n }\n});\n","import context from 'static/script/app/ui/checkout2/context/context';\nriot.tag2('checkout-payment', '

{t(\\'checkout_braintree_title\\')}

\"{displayText}\"
{paymentProviderName}
', '', '', function(opts) {\n this.context = context;\n this.model = opts.model;\n this.orderCheckoutSwishApp2App = opts.orderCheckoutSwishApp2App;\n this.pageName = opts.pageName;\n\n this.on('mount', function () {\n if (this.model.preselectedPaymentType && !this.orderCheckoutSwishApp2App) {\n this.context.observable.trigger('payment-type-selected', this.model.preselectedPaymentType);\n }\n });\n\n this.context.observable.on('payment-type-selected', function (type) {\n this.model.selectedPaymentType = type;\n this.update();\n }.bind(this));\n\n this.selectPaymentType = function (type) {\n return function () {\n this.context.observable.trigger('payment-type-selected', type);\n }\n }\n});\n","import context from 'static/script/app/ui/checkout2/context/context';\nimport { getMessagingPageLink } from 'tradera-apps/my-tradera/app/helpers/messaging-helpers';\nriot.tag2('checkout-shipping', '

{t(\\'checkout_shipping_title\\')}

{model.streetName}
{model.zipCode} {model.town}
{model.country}
\"International
{displayText}
{t(\\'checkout_shipping_cost\\', {shippingCost: shippingCost})}
Notera att beräknad fraktkostnad endast gäller inom Sverige. Kontakta säljaren!
', '', '', function(opts) {\n this.model = opts.model;\n\n this.on('mount', function() {\n //alert('shipping mounted: ' + opts.data);\n });\n\n var selectedItem = null;\n this.selectShippingMethod = function (event) {\n if(event.target && event.target.href) {\n // This is a workaround since the link click otherwise gets swallowed by this clickhandler and the link won't work.\n window.location.href = event.target.href;\n return;\n }\n if (event.item.striked) {\n return;\n }\n if (selectedItem) {\n selectedItem.IsSelected = false;\n }\n selectedItem = event.item;\n\n event.item.IsSelected = true;\n context.observable.trigger('shipping-changed', event.item);\n if(this.isNotSpecifiedItem(event.item.shippingType)) {\n context.observable.trigger('payment-not-valid', event.item);\n context.observable.trigger('shipping-type-selected', null);\n } else {\n context.observable.trigger('shipping-type-selected', event.item.shippingType);\n context.observable.trigger('payment-valid', event.item);\n }\n };\n\n this.setInitialSelection = () => {\n const notStriked = this.model.shippingOptions.find(so => !so.striked);\n this.selectShippingMethod({\n item: notStriked\n });\n }\n\n this.getShippingIconClass = function(shippingType) {\n return 'icon-' + shippingType.toLowerCase();\n }\n\n this.getFlagUrl = function(toCountryCode) {\n return toCountryCode ? `/static/images/flags/${toCountryCode}.svg` : '';\n }\n\n this.showShippingIcon = function(shippingType) {\n switch (shippingType.toLowerCase()) {\n case 'posten':\n case 'dhl':\n case 'schenkerprivpak':\n case 'bussgods':\n return true;\n\n default:\n return false;\n }\n }\n\n this.isNotSpecifiedItem = function(shippingType) {\n return shippingType.toLowerCase() === 'notspecified';\n }\n\n this.getMessagingLink = function() {\n const url = getMessagingPageLink(\n this.model.sellerId,\n this.model.buyerId,\n this.model.itemId,\n {\n traderaUserId: this.model.buyerId,\n singleThread: false,\n openForm: true,\n source: 'contact_seller'\n }\n );\n return this.toLocalizedUrl(url);\n };\n\n this.setInitialSelection();\n\n});\n","riot.tag2('comment-feedback-modal', '
', '', '', function(opts) {\n var hasSentSuccess = false;\n var formMessageLength = 0;\n this.initPayload = {};\n this.modalVisibleState = {\n 'formModal': false,\n 'successModal': false,\n 'abortModal': false,\n 'errorModal': false\n };\n this.errorPayload = {};\n\n this.setVisibleModal = function (tagName, update) {\n for (var name in this.modalVisibleState) {\n if (this.modalVisibleState.hasOwnProperty(name)) {\n this.modalVisibleState[name] = false;\n }\n }\n\n if (tagName) {\n this.modalVisibleState[tagName] = true;\n }\n\n if (update === true) {\n this.update();\n }\n }.bind(this);\n\n this.isOpen = function () {\n for (var name in this.modalVisibleState) {\n if (this.modalVisibleState.hasOwnProperty(name)) {\n if (this.modalVisibleState[name] === true) {\n return true;\n }\n }\n }\n return false;\n }.bind(this);\n\n this.initialize = function (payload) {\n this.modalHeight = $(document).height();\n this.initPayload = payload;\n this.setVisibleModal('formModal', true);\n if (!this.modalBackground.style.opacity || this.modalBackground.style.opacity === '0') {\n this.fadeIn();\n }\n this.adjustMarginTop();\n }.bind(this);\n\n this.adjustMarginTop = function () {\n var scroll = $(document).scrollTop();\n var windowHeight = $(window).height();\n var modalHeight = $(this.modal).height();\n var marginTop = parseInt(scroll + (windowHeight / 2) - (modalHeight / 2), 10);\n this.modal.style.marginTop = ((marginTop < 5) ? 5 : marginTop) + 'px';\n }.bind(this);\n\n this.fadeIn = function () {\n this.modalBackground.style.opacity = 1;\n }.bind(this);\n\n this.onClose = function (evt) {\n if (evt.target === evt.currentTarget) {\n this.closeModal();\n }\n }.bind(this);\n\n this.closeModal = function () {\n if (formMessageLength > 0 && this.modalVisibleState['formModal'] === true) {\n this.confirmClose();\n return;\n }\n\n this.modalBackground.style.opacity = 0;\n this.setVisibleModal(false);\n\n if (hasSentSuccess === true) {\n window.location.reload(true);\n }\n\n this.bus.trigger('ui:comment-feedback-modal:after-close');\n }.bind(this);\n\n this.onRetry = function () {\n this.setVisibleModal('formModal', true);\n }.bind(this);\n\n this.confirmClose = function () {\n this.setVisibleModal('abortModal', true);\n }.bind(this);\n\n this.onSentSuccess = function () {\n hasSentSuccess = true;\n this.setVisibleModal('successModal', true);\n }.bind(this);\n\n this.onFormEdit = function (payload) {\n formMessageLength = payload.msgLength;\n }.bind(this);\n\n this.onSentError = function (payload) {\n this.errorPayload = payload;\n this.setVisibleModal('errorModal', true);\n }.bind(this);\n\n this.on('mount', function () {\n this.bus.on('ui:comment-feedback-modal-error:on-close ui:comment-feedback-modal-form:on-close ui:comment-feedback-modal-abort:on-close ui:comment-feedback-modal-success:on-close', this.closeModal);\n this.bus.on('ui:comment-feedback-modal-abort:on-retry', this.onRetry);\n this.bus.on('ui:contact-modal:show-modal', this.initialize);\n this.bus.on('data:contact-service:message-sent-failed', this.onSentError);\n this.bus.on('data:contact-service:message-sent-success', this.onSentSuccess);\n this.bus.on('ui:comment-feedback-modal-form:on-edit', this.onFormEdit);\n }.bind(this));\n});\n\n","import util from 'static/script/app/ui/checkout2/context/util';\n\nfunction PaymentMethod(type, paypalEmail, nonce, token, isSelected, isNewCard) {\n this.type = type;\n this.paypalEmail = paypalEmail;\n this.nonce = nonce;\n this.token = token;\n this.isNewCard = isNewCard;\n this.isSelected = isSelected;\n this.cardValidation = {};\n this.saveCard = false;\n\n this.getId = function() {\n return this.token ? this.token : this.nonce;\n };\n\n this.isDeletable = function() {\n return this.token !== null;\n };\n\n this.isValid = function() {\n if (this.isNewCard) {\n return (\n this.cardValidation.number &&\n this.cardValidation.expirationDate &&\n this.cardValidation.cvv\n );\n }\n\n return true;\n };\n\n this.reset = function() {\n if (isNewCard) {\n this.cardValidation = {};\n this.nonce = null;\n this.token = null;\n }\n };\n\n this.isCard = function() {\n return this.type === 'card';\n };\n}\n\nlet context;\nlet deviceData;\nlet model;\nlet selectedPaymentType;\nlet paymentMethods;\nlet newCard = new PaymentMethod('card', null, null, null, false, true);\n\nfunction getCards() {\n return paymentMethods.filter(function(item) {\n return item.type === 'card';\n });\n}\n\nfunction getPaypalAccounts() {\n return paymentMethods.filter(function(item) {\n return item.type === 'paypal';\n });\n}\n\nfunction selectPaymentMethod(payment) {\n if (!payment && selectedPaymentType === 'paypal') {\n context.observable.trigger('payment-not-valid');\n return;\n }\n\n if (!payment) {\n payment = newCard;\n }\n\n if (selectedPaymentType === 'card') {\n getCards().forEach(function(item) {\n item.isSelected = false;\n });\n } else {\n getPaypalAccounts().forEach(function(item) {\n item.isSelected = false;\n });\n }\n\n payment.isSelected = true;\n\n if (payment.isValid()) {\n context.observable.trigger('payment-valid');\n } else {\n context.observable.trigger('payment-not-valid');\n }\n}\n\nfunction getSelectedPaymentMethod() {\n let result = paymentMethods.filter(function(item) {\n return item.isSelected && item.type === selectedPaymentType;\n });\n\n if (result.length === 0) {\n return null;\n } else {\n return result[0];\n }\n}\n\nfunction getSubmitPayload() {\n let selected = getSelectedPaymentMethod();\n return {\n deviceData: deviceData,\n token: selected.token,\n nonce: selected.nonce,\n saveCard: selected.saveCard\n };\n}\n\nfunction getPreselectedPaymentMethod() {\n let selectedMethods = paymentMethods.filter(function(item) {\n return item.isSelected;\n });\n\n return selectedMethods.length === 0 ? null : selectedMethods[0];\n}\n\nfunction prepareCard(nonce) {\n let card = getSelectedPaymentMethod();\n card.nonce = nonce;\n context.observable.trigger(\n 'braintree-payment-ready-for-submit',\n getSubmitPayload()\n );\n}\n\nexport default {\n init: function(modelIn, contextIn) {\n context = contextIn;\n model = modelIn;\n let tempPaymentMethods = [];\n model.paymentMethods.forEach(function(item) {\n tempPaymentMethods.push($.extend(new PaymentMethod(), item));\n });\n\n paymentMethods = tempPaymentMethods;\n paymentMethods.push(newCard);\n\n let preselectedPaymentMethod = getPreselectedPaymentMethod();\n\n if (!preselectedPaymentMethod) {\n newCard.IsSelected = true;\n } else {\n this.selectPaymentType(preselectedPaymentMethod.type);\n }\n },\n\n selectedPaymentType: function() {\n return selectedPaymentType;\n },\n\n saveNewCardOnPayment: function(save) {\n newCard.saveCard = save;\n },\n\n cards: getCards,\n\n paypalAccounts: getPaypalAccounts,\n\n setDeviceData: function(deviceDataIn) {\n deviceData = deviceDataIn;\n },\n\n prepareForSubmit: function() {\n let selectedMethod = getSelectedPaymentMethod();\n\n if (!selectedMethod) {\n context.observable.trigger(\n 'braintree-payment-not-ready-for-submit'\n );\n return false;\n }\n\n if (selectedMethod.isNewCard) {\n return false;\n }\n\n if (selectedMethod.isCard()) {\n context.observable.trigger(\n 'braintree-verify-3d-secure',\n selectedMethod\n );\n return true;\n } else {\n context.observable.trigger(\n 'braintree-payment-ready-for-submit',\n getSubmitPayload()\n );\n return true;\n }\n },\n\n selectPaymentMethod: selectPaymentMethod,\n\n setShippingCost: function(cost) {\n model.shippingCost = cost;\n },\n\n getPaymentAmount: function() {\n return model.itemPrice + model.shippingCost;\n },\n\n deletePaymentMethod: function(item) {\n const defered = $.Deferred();\n\n const onPaymentMethodDeleted = function(item) {\n const index = paymentMethods.indexOf(item);\n paymentMethods.splice(index, 1);\n this.selectPaymentType(selectedPaymentType);\n defered.resolve();\n };\n\n const onError = function(req, status, error) {\n util.serverLog({\n error: 'Failed to delete braintree payment method: ' + error,\n counterName: 'braintree-payment.delete-method-failed'\n });\n };\n\n $.ajax({\n type: 'POST',\n url: '/shopping/checkout2/deletebraintreepaymentmethod/',\n data: { token: item.token, integration: model.integration },\n success: onPaymentMethodDeleted.bind(this, item),\n error: onError\n });\n\n return defered.promise();\n },\n\n isBraintreePaymentType: function(type) {\n return type === 'card' || type === 'paypal';\n },\n selectPaymentType: function(type) {\n selectedPaymentType = type;\n\n if (!this.isBraintreePaymentType(type)) {\n return;\n }\n\n let selectedPaymentMethod = getSelectedPaymentMethod();\n\n if (selectedPaymentMethod) {\n selectedPaymentMethod.reset();\n }\n\n selectPaymentMethod(selectedPaymentMethod);\n context.observable.trigger('payment-type-selected', type);\n },\n\n addNewPaypalAccount: function(nonce, email) {\n let addedPaypalMethod = new PaymentMethod(\n 'paypal',\n email,\n nonce,\n null,\n true\n );\n paymentMethods.push(addedPaypalMethod);\n selectPaymentMethod(addedPaypalMethod);\n },\n\n prepareCard: prepareCard,\n\n processBraintreeError: function(error) {\n newCard.nonce = null;\n\n context.observable.trigger('braintree-payment-not-ready-for-submit');\n\n if (error.type !== 'VALIDATION') {\n console.warn('braintree error: ' + error.message);\n util.serverLog({\n error: 'Braintree ' + error.type + ' error: ' + error.message,\n counterName: 'braintree-payment.integration-error.' + error.type\n });\n }\n },\n\n validateNewCard: function(field, isValid) {\n newCard.cardValidation[field] = isValid;\n\n if (newCard.isValid()) {\n context.observable.trigger('payment-valid');\n } else {\n context.observable.trigger('payment-not-valid');\n }\n },\n\n validate3DSecureResult: function(error, payload) {\n if (error) {\n //this.failureResolutionCode = 'TryAgain';\n context.observable.trigger(\n 'braintree-payment-not-ready-for-submit'\n );\n util.serverLog({\n error: 'Card 3DSecure error: ' + error.message,\n counterName: 'braintree-payment.card-3dsecure.error'\n });\n } else if (\n payload.liabilityShiftPossible &&\n !payload.liabilityShifted\n ) {\n //this.failureResolutionCode = '3DSecureFailed';\n context.observable.trigger(\n 'braintree-payment-not-ready-for-submit'\n );\n util.serverLog({\n counterName: 'braintree-payment.card-3dsecure.unsuccessful'\n });\n } else {\n prepareCard(payload.nonce);\n util.serverLog({\n counterName: 'braintree-payment.card-3dsecure.successful'\n });\n }\n }\n};\n","export default {\n show: function() {\n this.modalHeight = $(document).height();\n if (typeof this.beforeShow === 'function') {\n this.beforeShow(); // Change this to this.trigger('before-show')?\n }\n this.showModal = true;\n this.update();\n this.adjustMarginTop();\n\n if (\n !this.modalBackground.style.opacity ||\n this.modalBackground.style.opacity === '0'\n ) {\n this.fadeIn();\n }\n },\n\n hide: function() {\n this.showModal = false;\n this.update();\n },\n\n close: function() {\n this.showModal = false;\n\n this.modalBackground.style.opacity = 0;\n this.update();\n },\n\n fadeIn: function() {\n this.modalBackground.style.opacity = 1;\n },\n\n adjustMarginTop: function() {\n let scroll = $(document).scrollTop();\n let windowHeight = $(window).height();\n let modalHeight = $(this.modal).height();\n let marginTop = parseInt(\n scroll + windowHeight / 2 - modalHeight / 2,\n 10\n );\n this.modal.style.marginTop = (marginTop < 5 ? 5 : marginTop) + 'px';\n },\n\n onClose: function(evt) {\n if (evt.target === evt.currentTarget) {\n this.showModal = false;\n this.modalBackground.style.opacity = 0;\n this.update();\n this.bus.trigger('ui:modal-container:after-close');\n }\n return true;\n }\n};\n","import context from 'static/script/app/ui/checkout2/context/context';\nimport util from 'static/script/app/ui/checkout2/context/util';\nriot.tag2('swish-handel-payment', '
 
{t(\\'checkout_swishHandel_header\\')}
{t(\\'checkout_swishHandel_description\\')}
{t(\\'checkout_swishHandel_useOtherDevice\\')}
{t(\\'checkout_swishHandel_mobileDescription\\')}
= 48 && event.charCode <= 57\" oninput=\"{validatePhoneNumber}\">
{t(\\'checkout_swishHandel_or\\')}
{t(\\'checkout_swishHandel_useOnThisDevice\\')}
', '', '', function(opts) {\n this.context = context;\n this.util = util;\n this.model = opts.model;\n\n this.phone_number.value = this.model.phoneNumber;\n this.useMobileFlow = this.model.isAutoStartAllowed;\n\n this.context.observable.on('payment-type-selected', function () {\n if (this.model.selectedPaymentType === 'SwishHandel') {\n this.validatePhoneNumber();\n }\n }.bind(this));\n\n this.context.observable.on('payment-failed', function () {\n\n }.bind(this));\n\n this.context.observable.on('payment-requires-user-confirmation', function (paymentType, paymentResponse) {\n\n if (paymentType !== 'SwishHandel')\n return;\n\n this.modal = this.context.modal.showModal('checkout-modal',\n {\n title: this.t(\"checkout_swishHandel_modalTitle\"),\n subTitleHtml: this.t(\"checkout_swishHandel_subTitle\", { phoneNumber: this.phone_number.value}),\n bodyTagName: 'swish-modal-body',\n nonDismissible: true,\n showProgressIcon: true,\n buttons: {\n secondary: {\n title: 'Avbryt',\n click: function (model) {\n this.isCanceled = true;\n model.close();\n }.bind(this)\n }\n }\n });\n\n this.isCanceled = false;\n this.errorCount = 0;\n this.startSwishPolling(paymentResponse);\n\n if (this.model.isAutoStartAllowed && this.useMobileFlow && this.model.swishCallbackUrl) {\n startSwish(paymentResponse.paymentRequestToken, this.model.swishCallbackUrl);\n }\n\n }.bind(this));\n\n function startSwish(paymentRequestToken, callbackUrl) {\n window.location.href = 'swish://paymentrequest?token=' + paymentRequestToken + '&callbackurl=' + encodeURIComponent(callbackUrl);\n }\n\n this.useOnOtherDevice = function() {\n this.useMobileFlow = false;\n this.validatePhoneNumber();\n }\n\n this.useOnThisDevice = function () {\n this.useMobileFlow = true;\n this.validatePhoneNumber();\n }\n\n this.selectPaymentType = function () {\n if (this.model.selectedPaymentType === 'SwishHandel')\n return;\n\n this.context.observable.trigger('payment-type-selected', 'SwishHandel');\n\n this.validatePhoneNumber();\n }\n\n this.validatePhoneNumber = function() {\n\n this.setPayload();\n\n if (this.useMobileFlow) {\n this.context.observable.trigger('payment-valid');\n }\n else if (this.phone_number.value.length >= 8) {\n this.context.observable.trigger('payment-valid');\n }\n else\n this.context.observable.trigger('payment-not-valid');\n }\n\n this.setPayload = function() {\n this.context.observable.trigger('payment-set-payload',\n {\n useMobileFlow: this.useMobileFlow,\n swishHandelPhoneNumber: this.phone_number.value\n });\n }\n\n this.startSwishPolling = function (paymentResponse) {\n var self = this;\n\n setTimeout(function () {\n\n if (self.isCanceled) {\n console.log('swish: canceled');\n return;\n }\n\n self.getSwishPayment(paymentResponse.swishPollUrl)\n .then(function (result) {\n if (result.isFailed) {\n self.util.serverLog({\n error: 'Swish polling failure: ' + result.failureMessage,\n counterName: 'swish-payment.polling-failure'\n });\n console.log('swish: failed or aborted');\n self.context.observable.trigger('payment-confirmed-by-user-failed', 'SwishHandel', result.failureMessage);\n }\n else if (result.isPaid) {\n console.log('swish: completed');\n self.context.observable.trigger('payment-confirmed-by-user', 'SwishHandel', paymentResponse);\n }\n else {\n self.startSwishPolling(paymentResponse);\n }\n return;\n })\n .fail(function (statusText) {\n self.util.serverLog({\n error: 'Swish polling error: ' + statusText,\n counterName: 'swish-payment.polling-error'\n });\n console.log('swish: error');\n self.errorCount++;\n if (self.errorCount < 3) {\n self.startSwishPolling(paymentResponse);\n } else {\n self.context.observable.trigger('payment-confirmed-by-user-failed', 'SwishHandel');\n }\n });\n }, 2000);\n };\n\n this.getSwishPayment = function (swishPollUrl) {\n console.log('swish: polling...');\n var deferred = $.Deferred();\n\n var url = swishPollUrl + (swishPollUrl.indexOf('?') != -1 ? '&' : '?') + (new Date()).getTime();\n $.get(url)\n .done(function (data) {deferred.resolve(data);})\n .fail(function (data) {deferred.reject(data.statusText);});\n return deferred.promise();\n };\n\n});\n","import context from 'static/script/app/ui/checkout2/context/context';\nimport observable from 'static/script/app/ui/checkout2/context/observable';\nriot.tag2('swish-app2app-modal-body', '
  1. {t(\\'checkout_swishApp2App_instructions1\\')}
  2. {t(\\'checkout_swishApp2App_instructions2\\')}
  3. {t(\\'checkout_swishApp2App_instructions3\\')}
{t(\\'checkout_swishApp2App_otherOptions\\')}

= 48 && event.charCode <= 57\" oninput=\"{validatePhoneNumber}\">
{t(\\'checkout_swishApp2App_smsSent\\')}
', '', '', function(opts) {\n this.context = context;\n this.model = opts.model;\n this.otherOptionVisible = false;\n this.phoneNumberValid = false;\n\n observable.on('payment-swish-app2app-sms-sent', () => {\n this.smsSent = true;\n this.update();\n });\n\n this.showOtherOptions = () => {\n this.otherOptionVisible = !this.otherOptionVisible;\n }\n\n this.validatePhoneNumber = () => {\n this.smsSent = false;\n if (this.phone_number.value.length >= 8) {\n this.phoneNumberValid = true;\n\n }\n else {\n this.phoneNumberValid = false;\n }\n this.update();\n }\n\n this.sendApp2AppLink = () => {\n if (!this.phoneNumberValid)\n return;\n this.smsSent = false;\n this.context.observable.trigger('payment-swish-app2app-sms',\n {\n phoneNumber: this.phone_number.value,\n purchaseOrderId: this.model.purchaseOrderId\n });\n }\n});\n","export default {\n init: function() {\n let prevVisible = false;\n let prevBeforeVisible = false;\n this.on('update', function() {\n if (this.opts.if !== prevBeforeVisible) {\n if (this.opts.if === true) {\n this.trigger('before-visible');\n }\n prevBeforeVisible = this.opts.if;\n }\n });\n\n this.on('updated', function() {\n if (this.opts.if !== prevVisible) {\n if (this.opts.if === true) {\n this.trigger('visible');\n }\n prevVisible = this.opts.if;\n }\n });\n }\n};\n","riot.tag2('comment-feedback-modal-success', '

Din kommentar är sparad

', '', '', function(opts) {\n this.onClose = function() {\n this.bus.trigger('ui:comment-feedback-modal-success:on-close');\n }.bind(this);\n});\n","riot.tag2('pagination', '', '', '', function(opts) {\n var self = this;\n\n function paginationUpdated(pages, currentNumber, lastNumber) {\n self.showPreviousPageLink = pages.length > 0 && currentNumber > 1;\n self.showNextPageLink = pages.length > 1 && currentNumber < lastNumber;\n self.pages = pages;\n self.currentNumber = currentNumber;\n self.update();\n }\n\n this.opts.registerPaginationCallbackFunction(paginationUpdated);\n\n this.previousClicked = function () {\n if (self.opts.paginationClickedCallback) {\n self.opts.paginationClickedCallback(self.currentNumber - 1);\n }\n $(window).scrollTop(0);\n }.bind(this);\n this.nextClicked = function () {\n if (self.opts.paginationClickedCallback) {\n self.opts.paginationClickedCallback(self.currentNumber + 1);\n }\n $(window).scrollTop(0);\n }.bind(this);\n this.pageNumberClicked = function (evt) {\n if (self.opts.paginationClickedCallback) {\n self.opts.paginationClickedCallback(evt.item.page.number);\n }\n $(window).scrollTop(0);\n }.bind(this);\n});\n","import modalMixin from 'static/script/app/ui/comment-feedback/comment-feedback-modal-mixin';\nriot.tag2('comment-feedback-modal-error', '

{error.header}

{error.message}

', '', '', function(opts) {\n this.mixin(modalMixin);\n\n var errorTypes = {\n VALIDATION: 'ValidationError',\n FATAL: 'Fatal',\n UNABLE_TO_SEND: 'Unable to send message'\n };\n\n var defaultError = {\n header: null,\n message: 'Ett fel har uppstått.',\n retryButtonVisible: true,\n retryButtonText: 'Ja',\n abortButtonText: 'Nej'\n };\n\n this.isError = true;\n this.error = defaultError;\n\n this.getError = function (payload, error) {\n switch (payload.errorType) {\n case errorTypes.VALIDATION:\n error.message = payload.message;\n if (payload.errors && payload.errors.length > 0) {\n error.message = payload.errors.join(' ');\n }\n\n error.retryButtonText = 'Försök igen';\n error.abortButtonText = 'Avbryt';\n break;\n\n case errorTypes.FATAL:\n error.retryButtonVisible = false;\n error.abortButtonText = 'Stäng';\n break;\n\n case errorTypes.UNABLE_TO_SEND:\n error.message = payload.message;\n if (payload.errors && payload.errors.length > 0) {\n error.message = payload.errors.join(' ');\n }\n\n error.retryButtonVisible = false;\n error.abortButtonText = 'Stäng';\n break;\n }\n\n return error;\n }.bind(this);\n\n this.onVisible = function () {\n var responseJSON = opts.payload.response.responseJSON;\n this.error = this.getError(responseJSON, defaultError);\n }.bind(this);\n\n this.onAbort = function () {\n this.bus.trigger('ui:comment-feedback-modal-error:on-close');\n }.bind(this);\n\n this.onRetry = function () {\n this.bus.trigger('ui:comment-feedback-modal-error:on-retry', this.payload);\n }.bind(this);\n\n this.on('before-visible', this.onVisible);\n});\n","import $ from 'static/script/libs/jquery';\nimport context from 'static/script/app/ui/checkout2/context/context';\nriot.tag2('checkout-summary', '

{t(\\'checkout_summary_title\\')}

{t(\\'checkout_summary_objectCostTitle\\')}
{t(\\'checkout_summary_objectCost\\', {itemPrice: model.itemPrice})}
{t(\\'checkout_summary_shippingCostTitle\\')}
{t(\\'checkout_summary_shippingCost\\', {shippingCost: model.shippingCost})}
0}\">
{t(\\'checkout_summary_discountTitle\\')}
{t(\\'checkout_summary_discount\\', {discountAmount: model.discountAmount})}
{t(\\'checkout_summary_toPayTitle\\')}
{t(\\'checkout_summary_toPay\\', {amount: model.shippingCost + model.itemPrice - model.discountAmount})}
{t(\\'checkout_summary_toPayTitle\\')}
{t(\\'checkout_summary_toPay\\', {amount: model.shippingCost + model.itemPrice - model.discountAmount})}
', '', '', function(opts) {\n this.context = context;\n this.model = opts.model;\n this.context.observable.on('shipping-changed', function (item) {\n this.model.shippingCost = item.shippingCost;\n this.model.shippingType = item.shippingType;\n this.update();\n }.bind(this));\n\n this.context.observable.on('payment-valid', function () {\n if (this.context.payment.selectedPaymentType && this.context.shipping.selectedShippingType) {\n this.isCheckoutValid = true;\n }\n this.update();\n }.bind(this));\n\n this.context.observable.on('payment-not-valid', function () {\n this.isCheckoutValid = false;\n this.update();\n }.bind(this));\n\n this.confirmButtonClick = function () {\n if (!this.isCheckoutValid) return;\n\n var model = {\n itemId: this.model.itemId,\n purchaseOrderId: this.model.purchaseOrderId,\n shippingType: this.model.shippingType,\n shippingCost: this.model.shippingCost\n };\n\n this.context.payment.performPayment(model, this.model.performPaymentUrl);\n }\n\n this.makeStickyDiv = function () {\n var s = $(\"#sticker\");\n var pos = s.position();\n $(window).scroll(function () {\n var windowpos = $(window).scrollTop();\n if (windowpos >= pos.top - 50) {\n s.addClass(\"co-summary-stick\");\n } else {\n s.removeClass(\"co-summary-stick\");\n }\n });\n }\n\n this.on('mount', function () {\n this.makeStickyDiv();\n });\n});\n","riot.tag2('checkout-modal', '

{opts.model.title}

{opts.model.text}
', '', '', function(opts) {\n\n const self = this;\n\n this.on('mount',\n function() {\n if (opts.model.bodyTagName) {\n riot.mount('.bodyTagContent', opts.model.bodyTagName, opts.model.bodyTagModel);\n }\n if (opts.model.subTitleHtml) {\n riot.mount('raw', { html: opts.model.subTitleHtml });\n } else {\n riot.mount('raw', { html: \"\" });\n }\n });\n\n riot.tag('raw',\n '',\n function(opts) {\n if (opts.html)\n this.root.innerHTML = opts.html;\n });\n\n this.primaryClick = function() {\n if (opts.model.buttons.primary.click) {\n opts.model.buttons.primary.click(opts.model);\n } else {\n opts.model.close();\n }\n };\n\n this.secondaryClick = function() {\n if (opts.model.buttons.secondary.click) {\n opts.model.buttons.secondary.click(opts.model);\n } else {\n opts.model.close();\n }\n };\n\n this.opts.model.showError = function (title, text, action) {\n opts.model.showErrorIcon = true;\n opts.model.showProgressIcon = false;\n opts.model.title = title;\n opts.model.text = text;\n opts.model.buttons = {\n secondary: {\n title: self.t('checkout_modal_ok'),\n click: action ? action : null\n }\n };\n this.update();\n };\n\n this.opts.model.showSuccess = function(title, text, buttonText, action) {\n opts.model.showSuccessIcon = true;\n opts.model.showErrorIcon = false;\n opts.model.showProgressIcon = false;\n opts.model.title = title;\n opts.model.text = text;\n opts.model.buttons = {\n secondary: {\n title: buttonText ? buttonText : self.t('checkout_modal_ok'),\n click: action\n }\n };\n this.update();\n };\n\n});\n","import context from 'static/script/app/ui/checkout2/context/context';\nriot.tag2('invoice-payment', '
{t(\\'checkout_invoicePayment_invoice\\')}
 
{t(\\'checkout_invoicePayment_weeklyInvoice\\')}
', '', '', function(opts) {\n this.context = context;\n this.model = opts.model;\n\n this.context.observable.on('payment-type-selected', type => {\n if (type === 'InvoicePayment') {\n this.context.observable.trigger('payment-valid');\n }\n });\n\n this.selectPaymentType = function () {\n if (this.model.selectedPaymentType === 'InvoicePayment')\n return;\n\n this.context.observable.trigger('payment-type-selected', 'InvoicePayment');\n }\n\n});\n","import modalMixin from 'static/script/app/ui/mixin/modal-mixin';\nriot.tag2('contact-modal-error', '

{header}

{message}

', '', '', function(opts) {\n this.mixin(modalMixin);\n\n this.isError = true;\n this.validationError = 'ValidationError';\n this.fatalError = 'Fatal';\n this.sendError = 'Unable to send message';\n this.newHighestBidderError = 'New highest bidder';\n this.defaultMessage = 'Ett fel har uppstått.';\n this.retryButtonText = 'Ja';\n this.retryButtonVisible = true;\n this.abortButtonText = 'Nej';\n this.message = this.defaultMessage;\n this.header = null;\n this.payload = null;\n\n this.init = function(payload) {\n // reset\n this.payload = null;\n this.header = null;\n this.isError = true;\n\n this.errors = payload.errors;\n if (payload.errorType === this.validationError) {\n this.message = payload.message;\n if (this.message.length === 0) {\n this.message = payload.errors.join(' ');\n }\n this.retryButtonText = 'Försök igen';\n this.abortButtonText = 'Avbryt';\n }\n\n if (payload.errorType === this.newHighestBidderError) {\n this.payload = payload.newBidder;\n this.header = 'Ny högste budgivare!';\n this.message = payload.newBidder.alias + ' är nu högste budgivare. Vill du gå tillbaka till meddelandet och skicka det till den nya högste budgivaren?';\n this.isError = false;\n this.retryButtonText = 'Ja';\n this.abortButtonText = 'Avbryt';\n }\n\n if (payload.errorType === this.fatalError) {\n this.message = this.defaultMessage;\n this.retryButtonVisible = false;\n this.abortButtonText = 'Stäng';\n }\n\n if (payload.errorType === this.sendError) {\n this.message = this.defaultMessage;\n this.retryButtonVisible = false;\n this.abortButtonText = 'Stäng';\n }\n }.bind(this);\n\n this.onAbort = function() {\n this.bus.trigger('ui:contact-modal:on-abort');\n }.bind(this);\n\n this.onRetry = function() {\n this.bus.trigger('ui:contact-modal:on-retry', this.payload);\n }.bind(this);\n\n this.onMessageSent_failed = function(payload) {\n this.init(payload.response.responseJSON);\n this.show();\n }.bind(this);\n\n this.on('mount', function () {\n this.bus.on('ui:contact-modal:on-retry', this.hide);\n this.bus.on('data:contact-service:message-sent-failed', this.onMessageSent_failed);\n this.bus.on('ui:contact-modal:on-close', this.close);\n });\n\n});\n","import $ from 'static/script/libs/jquery';\nimport { toLocalizedRiotUrl } from 'tradera-apps/syi/script/app_react/utils/language';\n\nlet util = {};\n\nutil.redirectTo = function(url) {\n window.location.href = url;\n};\n\nutil.serverLog = function(model) {\n $.ajax({\n type: 'POST',\n url: toLocalizedRiotUrl('/shopping/checkout2/clientlog/'),\n data: model\n });\n};\n\nexport default util;\n","import modalMixin from 'static/script/app/ui/mixin/modal-mixin';\nriot.tag2('contact-modal-success', '

Ditt meddelande är skickat

Mottagaren kan nu svara till din e-postadress.

', '', '', function(opts) {\n\n this.mixin(modalMixin);\n\n this.onOk = function(evt) {\n this.bus.trigger('ui:contact-modal:message-sent-confirmed', evt);\n }.bind(this);\n\n this.on('mount', function () {\n this.bus.on('data:contact-service:message-sent', function () {\n this.sending = false;\n this.update();\n });\n\n this.bus.on('data:contact-service:message-sent-success', this.show)\n this.bus.on('ui:contact-modal:on-close', this.close);\n });\n});\n","/**\n * Get all riot tags\n */\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/braintree-payment.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-item.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-modal.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-payment.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-shipping.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/checkout-summary.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-handel-payment.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/invoice-payment.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-app2app-payment.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-modal-body.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/checkout2/swish-app2app-modal-body.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-abort.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-error.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-form.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal-success.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/comment-feedback/comment-feedback-modal.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-abort.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-error.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-form.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal-success.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/app/ui/contact/contact-modal.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/tags/modal.riot.html\";\nimport \"../../src/EbaySweden.TouchWeb/static/script/tags/pagination.riot.html\"; ","import modalMixin from 'static/script/app/ui/comment-feedback/comment-feedback-modal-mixin';\nriot.tag2('comment-feedback-modal-form', '

{payload.modalTitle}

{payload.receiverMemberAlias} ({payload.commentRole})

{payload.commentText}

{payload.itemDescription}

{warningmessage}

Du kan endast lämna en kommentar och den kan inte ångras

', '', '', function(opts) {\n this.mixin(modalMixin);\n\n this.messageMaxLength = 80;\n this.hasValidationError = false;\n this.validator = this.opts.validator;\n this.sendButtonDisabled = true;\n this.payload = {};\n\n this.onVisible = function () {\n this.payload = opts.payload;\n this.sendMsgLength();\n }.bind(this);\n\n this.focusTextarea = function () {\n var breakpoints = this.opts.breakpoints;\n if (breakpoints && breakpoints.isVisible(breakpoints.xlarge)) {\n this.message.focus();\n }\n }.bind(this);\n\n this.hasInvalidLength = function (msg) {\n return this.validator.hasInvalidLength(0, this.messageMaxLength, msg);\n }.bind(this);\n\n this.resetForm = function () {\n this.message.value = '';\n this.sendButtonDisabled = true;\n this.hasValidationError = false;\n this.update();\n }.bind(this);\n\n this.sendMsgLength = function () {\n var msg = this.message.value;\n this.bus.trigger('ui:comment-feedback-modal-form:on-edit', {\n msgLength: msg.length,\n msg: msg\n });\n }.bind(this);\n\n this.onEdit = function () {\n var msg = this.message.value;\n var hasError = false;\n this.warningmessage = '';\n\n if (this.validator.isEmpty(msg)) {\n hasError = true;\n this.warningmessage = 'Du måste skriva en kommentar'\n } else if (this.hasInvalidLength(msg)) {\n hasError = true;\n this.warningmessage = 'Kommentaren får maximalt innehålla ' + this.messageMaxLength + ' tecken';\n } else if (this.validator.hasInvalidCharacters(msg)) {\n hasError = true;\n this.warningmessage =\n 'Tillåtna tecken förutom bokstäver och siffror är \" \\' ´ ` ! ? , . ; : - ( ) / + - € $';\n }\n\n this.hasValidationError = hasError;\n this.sendButtonDisabled = hasError;\n this.sendMsgLength();\n }.bind(this);\n\n this.onSend = function () {\n this.sendButtonDisabled = true;\n this.update();\n this.bus.trigger('ui:contact-modal:on-send', {\n comment: this.message.value,\n gradeId: this.opts.payload.gradeId\n });\n }.bind(this);\n\n this.onCancel = function () {\n this.bus.trigger('ui:comment-feedback-modal-form:on-close');\n }\n\n this.on('before-visible', this.onVisible);\n this.on('visible', this.focusTextarea)\n this.on('mount', function () {\n this.bus.on('ui:comment-feedback-modal:after-close', this.resetForm);\n });\n});\n","import $ from 'static/script/libs/jquery';\nimport dayjs from 'dayjs';\nimport observable from 'static/script/app/ui/checkout2/context/observable';\nimport modal from 'static/script/app/ui/checkout2/context/modal';\nimport util from 'static/script/app/ui/checkout2/context/util';\nimport { reload } from 'tradera-utils/location';\nimport { whenInitialized } from 'tradera-lang/boot-languages';\n\nlet payment = {};\n\n// This should be fine since all code within this file is triggered async from initial rendering flow,\n// and the whenInitialized-promise is resolved immediately\nlet t = key => key;\nwhenInitialized()\n .then(({ t: translate }) => (t = translate))\n .catch(() => {});\n\nobservable.on('payment-confirmed-by-user', function(\n paymentType,\n paymentResponse\n) {\n const dialogText = paymentResponse.successMessage\n ? paymentResponse.successMessage\n : t('checkout_payment_confirmedByUserSuccessText');\n const buttonText = paymentResponse.successButtonText\n ? paymentResponse.successButtonText\n : t('checkout_payment_confirmedByUserSuccessButton');\n\n modal.showModal('checkout-modal', {\n title: t('checkout_payment_confirmedByUserSuccessTitle'),\n text: dialogText,\n nonDismissible: true,\n showSuccessIcon: true,\n buttons: {\n secondary: {\n title: buttonText,\n click: function() {\n payment.successAction();\n }\n }\n }\n });\n});\n\nobservable.on('payment-confirmed-by-user-failed', function(\n paymentType,\n failureMessage\n) {\n modal.showModal('checkout-modal', {\n title: t('checkout_payment_confirmedByUserFailedTitle'),\n text: failureMessage\n ? failureMessage\n : t('checkout_payment_confirmedByUserFailedText'),\n showErrorIcon: true,\n buttons: {\n secondary: {\n title: t('checkout_payment_confirmedByUserFailedButton')\n }\n }\n });\n});\n\nobservable.on('payment-type-selected', function(type) {\n payment.selectedPaymentType = type;\n observable.trigger('payment-valid');\n});\n\nobservable.on('payment-valid', function() {\n if (payment.selectedPaymentType) {\n payment.isCheckoutValid = true;\n }\n});\n\nobservable.on('payment-not-valid', function() {\n payment.isCheckoutValid = false;\n});\n\nobservable.on('braintree-payment-ready-for-submit', function(payload) {\n if (payment.deferedPrepare) {\n payment.deferedPrepare.resolve(payload);\n }\n});\n\nobservable.on('braintree-payment-not-ready-for-submit', function(isAborted) {\n if (payment.deferedPrepare) {\n payment.deferedPrepare.reject(isAborted);\n }\n});\n\nobservable.on('payment-set-payload', function(payload) {\n payment.paymentPayload = payload;\n});\n\nobservable.on('payment-swish-app2app-sms', payload => {\n const onsuccess = data => {\n observable.trigger('payment-swish-app2app-sms-sent', data);\n };\n\n $.ajax({\n type: 'POST',\n url: '/shopping/swishapp2app/sendsms',\n contentType: 'application/json; charset=utf-8',\n data: JSON.stringify(payload),\n success: onsuccess\n });\n});\n\npayment.initTimeoutHandling = function(timeout) {\n payment.stopTimeoutHandler();\n payment.timeoutHandlerId = setTimeout(function() {\n if (modal.currentModalModel.showProgressIcon) {\n util.serverLog({ counterName: 'confirm.timeout' });\n modal.showModal('checkout-modal', {\n title: t('checkout_payment_TimeOutTitle'),\n text: t('checkout_payment_TimeOutText'),\n showErrorIcon: true,\n buttons: {\n secondary: {\n title: t('checkout_payment_TimeOutButton'),\n click: function() {\n reload(false);\n }\n }\n }\n });\n }\n }, timeout);\n};\n\npayment.stopTimeoutHandler = function() {\n if (payment.timeoutHandlerId) {\n clearTimeout(payment.timeoutHandlerId);\n }\n};\n\npayment.performPayment = (model, url) => {\n if (!payment.isCheckoutValid) {\n return;\n }\n\n let modalDialog = modal.showModal('checkout-modal', {\n title: t('checkout_payment_performPaymentTitle'),\n nonDismissible: true,\n showProgressIcon: true\n });\n\n payment\n .preparePaymentForSubmit()\n .done(payment.confirmPurchase.bind(this, modalDialog, model, url))\n .fail(function(isAborted) {\n if (isAborted) {\n modalDialog.close();\n } else {\n modalDialog.showError(\n t('checkout_payment_performPaymentErrorTitle'),\n t('checkout_payment_performPaymentErrorMessage')\n );\n }\n });\n};\n\npayment.preparePaymentForSubmit = function() {\n payment.deferedPrepare = $.Deferred();\n\n if (\n payment.selectedPaymentType === 'card' ||\n payment.selectedPaymentType === 'paypal'\n ) {\n observable.trigger('braintree-payment-prepare-for-submit');\n } else {\n payment.deferedPrepare.resolve(payment.paymentPayload);\n }\n\n return payment.deferedPrepare.promise();\n};\n\npayment.confirmPurchase = function(modalDialog, model, url, paymentPayload) {\n payment.initTimeoutHandling(120000);\n model.payment = paymentPayload;\n model.paymentType = payment.selectedPaymentType;\n\n $.ajax({\n type: 'POST',\n url: url,\n contentType: 'application/json; charset=utf-8',\n data: JSON.stringify(model),\n success: payment.purchaseSuccess.bind(this, modalDialog),\n error: payment.purchaseFailed.bind(this, modalDialog)\n });\n};\n\npayment.purchaseSuccess = function(modalDialog, e) {\n payment.stopTimeoutHandler();\n\n if (e.success) {\n if (e.paymentRequiresUserConfirmation) {\n payment.successAction = function() {\n util.redirectTo(e.redirectUrl);\n };\n observable.trigger(\n 'payment-requires-user-confirmation',\n payment.selectedPaymentType,\n e\n );\n } else if (e.suppressMessage) {\n util.redirectTo(e.redirectUrl);\n } else {\n modalDialog.showSuccess(\n t('checkout_payment_purchaseSuccessTitle'),\n e.successMessage\n ? e.successMessage\n : t('checkout_payment_purchaseSuccessText'),\n e.successButtonText,\n function() {\n util.redirectTo(e.redirectUrl);\n }\n );\n }\n } else {\n if (\n e.paymentFailure &&\n e.paymentFailure.failureResolutionCode === 'ContactYourBank'\n ) {\n modalDialog.showError(\n t('checkout_payment_purchaseFailContactYourBankTitle'),\n t('checkout_payment_purchaseFailContactYourBankText')\n );\n } else if (\n e.paymentFailure &&\n e.paymentFailure.failureResolutionCode === 'OngoingSwishPayment'\n ) {\n let fiveMinutesFromNow = dayjs()\n .add(5, 'minutes')\n .format('HH:mm');\n modalDialog.showError(\n t('checkout_payment_purchaseFailOngoingSwishPaymentTitle'),\n t('checkout_payment_purchaseFailOngoingSwishPaymentText', {\n fiveMinutesFromNow\n })\n );\n } else if (e.redirectUrl && !e.errorMessage) {\n modalDialog.close();\n util.redirectTo(e.redirectUrl);\n } else {\n modalDialog.showError(\n e.errorTitle\n ? e.errorTitle\n : t('checkout_payment_purchaseFailGeneralPaymentTitle'),\n e.errorMessage\n ? e.errorMessage\n : t('checkout_payment_purchaseFailGeneralPaymentText')\n );\n }\n\n modalDialog.buttons.secondary.click = function() {\n if (e.redirectUrl) {\n util.redirectTo(e.redirectUrl);\n }\n\n modalDialog.close();\n\n if (e.paymentFailure) {\n observable.trigger(\n 'payment-failed',\n e.paymentFailure,\n payment.selectedPaymentType\n );\n }\n };\n }\n};\n\npayment.purchaseFailed = function(modalDialog, e) {\n payment.stopTimeoutHandler();\n modalDialog.showError(\n t('checkout_payment_purchaseFailedTitle'),\n t('checkout_payment_purchaseFailedText')\n );\n util.serverLog({\n error: 'purchaseFailed: ' + JSON.stringify(e)\n });\n};\n\nexport default payment;\n","import observable from 'static/script/app/ui/checkout2/context/observable';\n\nlet shipping = {};\n\nobservable.on('shipping-type-selected', function(type) {\n shipping.selectedShippingType = type;\n});\n\nexport default shipping;\n","import riot from 'riot';\nimport observable from 'static/script/app/ui/checkout2/context/observable';\nimport modal from 'static/script/app/ui/checkout2/context/modal';\nimport payment from 'static/script/app/ui/checkout2/context/payment';\nimport shipping from 'static/script/app/ui/checkout2/context/shipping';\n\nlet context = {\n observable: observable,\n modal: modal,\n payment: payment,\n shipping: shipping\n};\n\ncontext.init = function(model, featureToggles, pageName) {\n riot.mount('checkout-payment', {\n model: model,\n featureToggles: featureToggles,\n pageName: pageName\n });\n};\n\nexport default context;\n","riot.tag2('checkout-item', '

{t(\\'checkout_item_title\\')}

\"{model.title}\"
{model.title}
{model.price} kr
', '', '', function(opts) {\n this.model = opts.model;\n\n this.on('mount', function () {\n //alert('shipping mounted: ' + opts.data);\n });\n});\n","riot.tag2('swish-modal-body', '
  1. {t(\\'checkout_swishModal_instructions1\\')}
  2. {t(\\'checkout_swishModal_instructions2\\')}
  3. {t(\\'checkout_swishModal_instructions3\\')}
', '', '', function(opts) {\n});\n","import modalMixin from 'static/script/app/ui/mixin/modal-mixin';\nriot.tag2('contact-modal-abort', '

Säker på att du vill avbryta?

Du har börjat skriva ett meddelande, om du avbryter kommer ditt meddelande att försvinna.

', '', '', function(opts) {\n this.mixin(modalMixin);\n\n this.onAbort = function () {\n this.bus.trigger('ui:contact-modal:on-abort');\n }.bind(this);\n\n this.onRetry = function () {\n this.bus.trigger('ui:contact-modal:on-retry', null);\n }.bind(this);\n\n this.on('mount', function () {\n this.bus.on('ui:contact-modal:on-retry', this.hide);\n this.bus.on('ui:contact-modal:on-form-close', this.show);\n this.bus.on('ui:contact-modal:on-close', this.close);\n });\n});\n","import { component } from 'flightjs';\nimport riot from 'riot';\n\nlet modal = {\n currentModalModel: {}\n};\n\nmodal.showModal = function(tagName, model) {\n if (!this.component) {\n let componentInstance;\n component(function() {\n componentInstance = this;\n this.attr = {};\n });\n this.component = componentInstance;\n }\n\n model.close = function() {\n this.component.trigger(document, 'ui:modal:close');\n }.bind(this);\n\n const payload = {\n content: '',\n cssClass:\n 'modal-default-new-style modal-background ' +\n (model.extraClass ? model.extraClass : ''),\n nonDismissible: model.nonDismissible,\n beforeShow: function() {\n const tag = riot.mount('riot-modal', tagName, { model: model });\n model.update = function() {\n tag[0].update();\n };\n }\n };\n this.component.trigger(document, 'ui:modal:open', payload);\n\n modal.currentModalModel = model;\n\n return model;\n};\n\nexport default modal;\n","import braintree from 'braintree-web';\n\nlet clientInstance;\nlet dataCollectorInstance;\nlet hostedFieldsInstance;\nlet threeDSecureInstance;\nlet paypalInstance;\n\nconst setupBraintreeIntegration = async function(conf) {\n try {\n clientInstance = await braintree.client.create({\n authorization: conf.clientToken\n });\n\n dataCollectorInstance = await braintree.dataCollector.create({\n client: clientInstance,\n kount: true,\n paypal: conf.isPayPayEnabled\n });\n\n const options = {\n client: clientInstance,\n styles: {\n // Style all elements\n input: {\n 'font-size': '12pt',\n color: '#333333',\n 'padding-left': '5px'\n },\n // Styling a specific field\n '.number': {\n //'font-family': 'monospace'\n },\n // Styling element state\n ':focus': {\n color: '#333333'\n },\n '.valid': {\n color: 'green'\n },\n '.invalid': {\n color: 'red'\n },\n // Media queries\n // Note that these apply to the iframe, not the root window.\n '@@media screen and (max-width: 700px)': {\n input: {\n 'font-size': '14pt'\n }\n }\n },\n fields: {\n number: { selector: '#card-number' },\n cvv: { selector: '#cvv', placeholder: 'XXX' },\n expirationDate: {\n selector: '#expiration-date',\n placeholder: conf.texts.expirationDate_placeHolder\n }\n }\n };\n\n if (conf.isCardEnabled) {\n hostedFieldsInstance = await braintree.hostedFields.create(options);\n\n hostedFieldsInstance.on('validityChange', function(event) {\n const field = event.fields[event.emittedBy];\n conf.onCardValidation(event.emittedBy, field.isValid);\n });\n\n threeDSecureInstance = await braintree.threeDSecure.create({\n version: 2, // Will use 3DS 2 whenever possible\n client: clientInstance\n });\n }\n\n if (conf.isPayPayEnabled) {\n paypalInstance = await braintree.paypal.create({\n client: clientInstance\n });\n }\n\n conf.onSetupReady(dataCollectorInstance.deviceData);\n } catch (error) {\n conf.onError(error);\n }\n};\n\nexport default {\n setup: setupBraintreeIntegration,\n\n teardown: async onTeardownComplete => {\n if (paypalInstance) {\n await paypalInstance.teardown();\n }\n if (threeDSecureInstance) {\n await threeDSecureInstance.teardown();\n }\n if (hostedFieldsInstance) {\n await hostedFieldsInstance.teardown();\n }\n await dataCollectorInstance.teardown();\n await clientInstance.teardown();\n onTeardownComplete();\n },\n\n tokenizePaypalAccount: async (amount, tokenizeComplete, onError) => {\n try {\n const payload = await paypalInstance.tokenize({\n flow: 'checkout',\n amount: amount,\n currency: 'SEK',\n locale: 'sv_se'\n });\n\n tokenizeComplete(payload.nonce, payload.details.email);\n } catch (error) {\n if (error.code !== 'PAYPAL_POPUP_CLOSED') {\n onError(error);\n }\n }\n },\n\n tokenizeCard: async (onTokenizeComplete, onError) => {\n try {\n const payload = await hostedFieldsInstance.tokenize();\n onTokenizeComplete(payload);\n } catch (error) {\n onError(error);\n }\n },\n\n verifyCardWith3DSecure: async (\n tokenizationPayload,\n amount,\n threeDSecureData,\n onVerifyComplete\n ) => {\n const threeDSecureParameters = {\n amount: amount,\n nonce: tokenizationPayload.nonce,\n bin: tokenizationPayload.details && tokenizationPayload.details.bin,\n email: threeDSecureData.email,\n billingAddress: threeDSecureData.billingAddress,\n additionalInformation: threeDSecureData.additionalInformation,\n onLookupComplete: (data, next) => {\n // use `data` here, then call `next()`\n next();\n }\n };\n\n try {\n const payload = await threeDSecureInstance.verifyCard(\n threeDSecureParameters\n );\n\n onVerifyComplete(null, payload);\n } catch (error) {\n onVerifyComplete(error || { message: 'undefined error' }, null);\n }\n }\n};\n","import context from 'static/script/app/ui/checkout2/context/context';\nriot.tag2('swish-app2app-payment', '
 
 
', '', '', function(opts) {\n const self = this;\n this.context = context;\n this.model = opts.model;\n this.useMobileFlow = this.model.isAutoStartAllowed;\n\n this.context.observable.on('payment-type-selected', function (type) {\n if (type === 'SwishApp2App')\n this.context.observable.trigger('payment-valid');\n }.bind(this));\n\n this.context.observable.on('payment-requires-user-confirmation', function (paymentType, paymentResponse) {\n\n if (paymentType !== 'SwishApp2App')\n return;\n let location = window.location.href;\n this.model.qrCode = paymentResponse.swishApp2App.qrCode;\n this.model.purchaseOrderId = paymentResponse.purchaseOrderId;\n\n if (this.model.isAutoStartAllowed && this.useMobileFlow && this.model.swishCallbackUrl) {\n startSwish(paymentResponse.swishApp2App.payload, this.model.swishCallbackUrl);\n\n // open modal with delay\n setTimeout(() => {\n this.modal = this.context.modal.showModal('checkout-modal',\n {\n title: this.t(\"checkout_swishApp2App_modal1title\"),\n bodyTagName: 'swish-app2app-modal-body',\n bodyTagModel: { model: this.model },\n nonDismissible: true,\n showProgressIcon: false,\n buttons: {\n primary: {\n title: this.t(\"checkout_swishApp2App_modal1primaryButton\"),\n click: function () {\n completeSwishApp2AppPayment(paymentResponse.purchaseOrderId);\n paymentResponse.successMessage = this.t(\"checkout_swishApp2App_successMessage\");\n this.context.observable.trigger('payment-confirmed-by-user', 'SwishApp2App', paymentResponse);\n }.bind(this)\n },\n secondary: {\n title: this.t(\"checkout_swishApp2App_modal1secondaryButton\"),\n click: function (model) {\n this.isCanceled = true;\n model.close();\n window.location.href = location;\n\n }.bind(this)\n }\n }\n });\n }, 3000);\n }\n else {\n this.modal = this.context.modal.showModal('checkout-modal',\n {\n title: this.t(\"checkout_swishApp2App_modal2title\", {amount: paymentResponse.swishApp2App.amount}),\n bodyTagName: 'swish-app2app-modal-body',\n bodyTagModel: { model: this.model },\n nonDismissible: true,\n showProgressIcon: false,\n buttons: {\n primary: {\n title: this.t(\"checkout_swishApp2App_modal2primaryButton\"),\n click: function () {\n completeSwishApp2AppPayment(paymentResponse.purchaseOrderId);\n paymentResponse.successMessage = this.t(\"checkout_swishApp2App_successMessage\");\n this.context.observable.trigger('payment-confirmed-by-user', 'SwishApp2App', paymentResponse);\n }.bind(this)\n },\n secondary: {\n title: this.t(\"checkout_swishApp2App_modal2secondaryButton\"),\n click: function (model) {\n this.isCanceled = true;\n model.close();\n }.bind(this)\n }\n }\n });\n }\n this.isCanceled = false;\n }.bind(this));\n\n function startSwish(payload, callbackUrl) {\n window.location.href = 'swish://payment?data=' + encodeURIComponent(payload) + '&callbackurl=' + encodeURIComponent(callbackUrl) + '&callbackresultparameter=result';\n }\n\n function completeSwishApp2AppPayment(purchaseOrderId) {\n $.ajax({\n type: 'POST',\n url: self.toLocalizedUrl('/shopping/swishapp2app/confirm'),\n contentType: 'application/json; charset=utf-8',\n data: JSON.stringify({ purchaseOrderId: purchaseOrderId }),\n success: data => { console.log(data); },\n error: data => { console.log(data); }\n });\n }\n\n this.selectPaymentType = () => {\n if (this.model.selectedPaymentType === 'SwishApp2App')\n return;\n\n this.context.observable.trigger('payment-type-selected', 'SwishApp2App');\n }\n});\n","riot.tag2('contact-modal', ' ', '', '', function(opts) {\n this.initPayload = {};\n\n this.show = function(payload) {\n this.initPayload = payload;\n this.bus.trigger('ui:contact-modal:on-init', {payload: payload});\n }.bind(this);\n\n this.close = function() {\n this.bus.trigger('ui:contact-modal:on-close');\n\n if (this.initPayload.reloadAfterClose === true) {\n window.location.reload(true);\n }\n }.bind(this);\n\n this.on('mount', function () {\n this.bus.on('ui:contact-modal:show-modal', this.show);\n this.bus.on('ui:contact-modal:on-abort', this.close);\n this.bus.on('ui:contact-modal:message-sent-confirmed', this.close);\n }.bind(this));\n});\n","riot.tag2('comment-feedback-modal-abort', '

Säker på att du vill avbryta?

Om du avbryter kommer din kommentar inte att sparas.

', '', '', function(opts) {\n this.onClose = function () {\n this.bus.trigger('ui:comment-feedback-modal-abort:on-close');\n }.bind(this);\n\n this.onRetry = function () {\n this.bus.trigger('ui:comment-feedback-modal-abort:on-retry', null);\n }.bind(this);\n});\n\n","import riot from 'riot';\nexport default riot.observable();\n","import modalMixin from 'static/script/app/ui/mixin/modal-mixin';\nriot.tag2('contact-modal-form', '

{modalTitle}

\"{itemTitle}\"

{itemTitle}

Objektnr: {itemId}

Viktigt! Det är inte tillåtet att föreslå handel av detta objekt utanför Tradera. Sådana affärer strider mot våra regler och kan leda till avstängning.

Från:
{senderMemberAlias || senderMemberEmail}
Till:
{receiverMemberAlias}
Titel:
{messageSubject}

{warningmessage}

', '', '', function(opts) {\n this.mixin(modalMixin);\n\n this.messageMaxLength = 1000;\n this.hasValidationError = false;\n this.validator = this.opts.validator;\n\n this.init = function (payload) {\n this.modalTitle = payload.payload.modalTitle;\n this.itemId = payload.payload.itemId;\n this.receiverMemberId = payload.payload.receiverMemberId;\n this.senderMemberEmail = payload.payload.senderMemberEmail;\n this.senderMemberAlias = payload.payload.senderMemberAlias;\n this.itemTitle = payload.payload.itemTitle;\n this.messageSubject = payload.payload.messageSubject;\n this.itemEnddate = payload.payload.itemEnddate;\n this.itemImageUrl = payload.payload.itemImageUrl;\n this.receiverMemberAlias = payload.payload.receiverMemberAlias;\n this.businessWarning = payload.payload.businessWarning;\n this.sendButtonDisabled = true;\n this.show(true);\n this.update();\n }.bind(this);\n\n this.updateReceiver = function (receiverInfo) {\n this.sendButtonDisabled = false;\n this.receiverMemberId = receiverInfo.id;\n this.receiverMemberAlias = receiverInfo.alias;\n this.update();\n }.bind(this);\n\n this.hasInvalidLength = function (msg) {\n return this.validator.hasInvalidLength(0, this.messageMaxLength, msg);\n }.bind(this);\n\n this.beforeShow = function () {\n if (!this.hasInvalidLength(this.message.value)) {\n this.sendButtonDisabled = false;\n this.update();\n }\n this.firstShowing = true;\n }.bind(this);\n\n this._reset = function () {\n this.message.value = '';\n this.sendButtonDisabled = true;\n this.hasValidationError = false;\n this.sendCopytoSender.checked = false;\n this.update();\n }.bind(this);\n\n this.edit = function () {\n var msg = this.message.value;\n var hasError = false;\n this.warningmessage = '';\n\n if (this.validator.isEmpty(msg)) {\n hasError = true;\n this.warningmessage = 'Du måste ange ett meddelande'\n }\n else if (this.hasInvalidLength(msg)) {\n hasError = true;\n this.warningmessage = 'Meddelandet får maximalt innehålla 1000 tecken';\n }\n else if (this.validator.hasInvalidCharacters(msg)) {\n hasError = true;\n this.warningmessage = 'Tillåtna tecken förutom bokstäver och siffror är \" \\' ´ ` ! ? , . ; : - ( ) / + - € $';\n }\n\n this.hasValidationError = hasError;\n this.sendButtonDisabled = hasError;\n\n this.update();\n }.bind(this);\n\n this.onSend = function () {\n // Validation!\n // Check message exists\n // Maxlength on message\n this.sendButtonDisabled = true;\n this.update();\n this.bus.trigger('ui:contact-modal:on-send', {\n itemId: this.itemId,\n receiverMemberId: this.receiverMemberId,\n message: this.message.value,\n sendCopytoSender: this.sendCopytoSender.checked,\n });\n }.bind(this);\n\n this.onCancel = function (evt) {\n if (this.message.value.length === 0) {\n this.bus.trigger('ui:contact-modal:on-abort');\n }\n else {\n this.bus.trigger('ui:contact-modal:on-form-close', evt);\n }\n }.bind(this);\n\n this.onSellerCopyToggle = function (evt) {\n if (evt.keyCode === 32) {\n evt.target.click();\n return false;\n }\n\n return true;\n }.bind(this);\n\n this.showForm = function (payload) {\n if (payload !== null) {\n this.updateReceiver(payload);\n }\n\n this.show();\n }.bind(this);\n\n this.on('updated', function () {\n if (this.firstShowing) {\n this.message.focus();\n this.firstShowing = false;\n }\n });\n\n this.on('mount', function () {\n this.bus.on('ui:contact-modal:on-init', this.init);\n this.bus.on('ui:contact-modal:on-retry', this.showForm);\n this.bus.on('data:contact-service:message-sent-success', this.hide);\n this.bus.on('data:contact-service:message-sent-failed', this.hide);\n this.bus.on('ui:contact-modal:on-form-close', this.hide);\n this.bus.on('ui:contact-modal:on-close', function () {\n this.close();\n this._reset();\n }.bind(this));\n this.bus.on('ui:modal-container:after-close', this._reset);\n });\n});\n"],"sourceRoot":""}