1function ProductDetailHandler(e,t,a,o,r){this.scope=e,this.element=t,this.ModalStack=a,this.ProductService=o,this.AjaxAPI=r||null,this.refreshDataTimer=null}function ProductCartBoxHandler(e,t,a,o,r){t.cartBox=ProductCartBoxHandler.emptyCartBox,this.rootScope=e,this.scope=t,this.AjaxAPI=a,this.ModalStack=o,this.ProductService=r}!function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("proximisDatatransPaymentConnectorSecureFields",["RbsChange.AjaxAPI","RbsChange.ModalStack",function(e,t){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/connector-secure-fields.twig",link:function(a){function o(){a.form.expiryMonth&&a.form.expiryYear&&(a.form.expiryYear<(new Date).getFullYear()||parseInt(a.form.expiryYear)===(new Date).getFullYear()&&a.form.expiryMonth-1<(new Date).getMonth())?a.form.invalidDate=!0:a.form.invalidDate=!1}a.libraryState="loading",a.datatransError=!1,a.paymentError=!1,a.processing=!1,a.form={cardNumberLength:0,cvvLength:0,expiryMonth:null,expiryYear:null,invalidCardNumber:!1,invalidCVV:!1,invalidDate:!1,saveCard:!1,selectedCard:null},a.showNewCardForm=!1,a.$watch("form.expiryMonth",o),a.$watch("form.expiryYear",o),a.years=[];for(var r=(new Date).getFullYear(),n=0;n<11;n++)a.years.push(r+n+"");a.paymentData=a.connectorInfo.transaction,a.async=function(e,t){var a=document,o="script",r=a.createElement(o),n=a.getElementsByTagName(o)[0];r.src=e,t&&r.addEventListener("load",function(e){t(null,e)},!1),n.parentNode.insertBefore(r,n)},a.async(a.paymentData.secureFieldsLibrary,function(){a.initSecureFieldsTransaction()}),a.initSecureFieldsTransaction=function(){e.getData("Proximis/Datatrans/Transactions/"+a.paymentData.transactionId+"/secureFields",{connectorId:a.connectorInfo.common.id,browserHeight:window.innerHeight,browserWidth:window.innerWidth}).then(function(e){a.libraryState="loaded",a.datatransTransactionId=e.data.dataSets.transactionId,a.initSecureFields()},function(){a.datatransError=!0,a.libraryState=null})},a.initSecureFields=function(){var t=["color","font-style","font-size","line-height","font-family","background-color"],o=jQuery("#datatrans-card-number-container"),r=jQuery("#datatrans-cvv-container"),n="",i="";t.forEach(function(e){var t=o.css(e);
1n+=e+": "+t+";"}),t.forEach(function(e){var t=r.css(e);i+=e+": "+t+";"});var s={cardNumber:n,cvv:i};a.secureFields=new SecureFields,a.secureFields.init(a.datatransTransactionId,{cardNumber:"datatrans-card-number-container",cvv:"datatrans-cvv-container"},{styles:s}),a.secureFields.on("validate",function(e){a.form.invalidCardNumber=!e.fields.cardNumber.valid,a.form.invalidCVV=!e.fields.cvv.valid,a.$apply()}),a.secureFields.on("success",function(t){t.redirect?window.location.assign(t.redirect):a.processing||(a.processing=!0,e.openWaitingModal(),e.getData("Proximis/Datatrans/Transactions/"+a.paymentData.transactionId+"/authorize",{connectorId:a.connectorInfo.common.id,datatransTransactionId:a.datatransTransactionId}).then(function(t){a.processing=!1,e.closeWaitingModal();var o=t.data.dataSets;o.common&&o.common.redirectURL?window.location.assign(o.common.redirectURL):window.location.reload(!0)},function(){a.paymentError=!0,a.processing=!1,e.closeWaitingModal()}))}),a.secureFields.on("change",function(e){a.form.cardNumberLength=e.fields.cardNumber.length,a.form.cvvLength=e.fields.cvv.length,a.handleBrandPictureCard(e.fields.cardNumber.paymentMethod),a.$apply()}),a.secureFields.on("error",function(){a.datatransError=!0,a.$apply()})},a.secureFieldsSubmit=function(){a.form.saveCard&&e.getData("Proximis/Datatrans/Transactions/"+a.paymentData.transactionId+"/cardMustBeSaved").then(function(){angular.noop()},function(){console.error("The payment card won't be saved.")}),a.secureFields.submit({expm:a.form.expiryMonth,expy:a.form.expiryYear.slice(-2)})},a.secureFieldsPaymentButtonDisabled=function(){return!(a.form.cardNumberLength>0&&a.form.cvvLength>0&&a.form.expiryMonth&&a.form.expiryYear&&!a.form.invalidDate&&!a.processing)},a.handleBrandPictureCard=function(e){var t="card-empty.svg";e&&(t="brands/"+e+".svg");var a=document.getElementById("datatrans-card-number-img");a.src=a.src.replace(/(Proximis_Datatrans\/img).*/g,"$1/"+t)},a.selectCard=function(e){var t=e.currentTarget.getAttribute("value");a.showNewCardForm="new"===t;var o=jQuery("#datatrans-saved-card-"+t);jQuery(".radio").removeClass("selectedCardLine"),o.addClass("selectedCardLine")},a.openDeletionModal=function(e){a.cardToDelete=e;var o={templateUrl:"/saved-card-deletion-confirm-modal.twig",backdropClass:"modal-backdrop-saved-card-deletion-confirmation",windowClass:"modal-saved-card-deletion-confirmation",size:"md",scope:a};a.openedModal=t.open(o)},a.confirmCardDeletion=function(){a.deleteSavedCard(a.cardToDelete.index),t.close(a.openedModal),a.cardToDelete=null,a.openedModal=null},a.deleteSavedCard=function(t){var o={connectorId:a.connectorInfo.common.id,userId:a.processData.userId,paymentCardIndex:t,cartIdentifier:a.paymentData.cartIdentifier};e.deleteData("Proximis/Datatrans/SavedCardDelete",o).then(function(e){if(e.data.dataSets.deleted){var o=-1;angular.forEach(a.paymentData.savedCards,function(e,a){e.index===t&&(o=a)}),o>=0&&a.paymentData.savedCards.splice(o,1),0===a.paymentData.savedCards.length&&(a.paymentData.savedCards=null,a.initSecureFieldsTransaction())}else console.error(e)},function(e){console.error(e)})},a.savedCardPaymentButtonDisabled=function(){return!a.form.selectedCard||"new"===a.form.selectedCard&&a.secureFieldsPaymentButtonDisabled()},a.newCardFieldsRequired=function(){return null===a.form.selectedCard||"new"===a.form.selectedCard},a.savedPaymentSubmit=function(){if("new"===a.form.selectedCard)a.secureFieldsSubmit();else if(!a.processing){a.processing=!0,e.openWaitingModal();var t={connectorId:a.connectorInfo.common.id,transactionId:a.transaction.transactionId,paymentCardIndex:a.form.selectedCard};e.postData("Proximis/Datatrans/Transactions/payWithSavedCard",t).then(function(t){a.processing=!1,e.closeWaitingModal();var o=t.data.dataSets;o.redirectUrl?window.location.assign(o.redirectUrl):window.location.reload(!0)},function(t){console.error(t),a.paymentError=!0,a.processing=!1,e.closeWaitingModal(),a.submitError=t.data})}}}}}]),e.directive("proximisDatatransPaymentConnectorRedirect",["RbsChange.AjaxAPI",function(e){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/connector-redirect.twig",link:function(t){t.paymentData=t.connectorInfo.transaction,t.submit=function(){if(!t.processing){t.processing=!0,e.openWaitingModal();var a={connectorId:t.connectorInfo.common.id,transactionId:t.transaction.transactionId,browserHeight:window.innerHeight,browserWidth:window.innerWidth};e.getData("Proximis/Datatrans/Transactions/"+t.paymentData.transactionId+"/redirect",a).then(function(a){t.processing=!1,e.closeWaitingModal(),a.data.dataSets.redirectUrl&&window.location.assign(a.data.dataSets.redirectUrl)},function(a){console.error(a),t.processing=!1,e.closeWaitingModal(),t.submitError=a.data})}}}}}]),e.directive("proximisDatatransPaymentConnectorButton",[function(){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/connector-button.twig",link:function(e){e.paymentData=e.connectorInfo.transaction,"PAY"===e.paymentData.paymentMethod&&function(t){if(window.PaymentButton)return void t();let a=document.createElement("script");a.src=e.paymentData.paymentButtonLibrary,a.addEventListener("load",function(e){t(null,e)},!1),document.head.appendChild(a)}(function(){!function(){const t={details:{total:{label:e.paymentData.merchantName,amount:{value:e.transaction.amount,currency:e.transaction.currencyCode}}}
1,options:{requestPayerEmail:!1,requestPayerName:!1,requestPayerPhone:!1},transaction:{countryCode:e.paymentData.countryCode,refno:e.transaction.transactionId+"--"+e.connectorInfo.common.id}};PaymentButton.init({merchantId:e.paymentData.merchantId,merchantName:e.paymentData.merchantName,tokenOnly:!1,autoSettle:e.paymentData.autoSettle,allowedCardNetworks:["AMEX","MASTERCARD","VISA"],useApplePay:!1,googlePayConfiguration:{buttonType:"checkout",buttonStyle:"default",merchantId:e.paymentData.googleMerchantId}}),PaymentButton.on("init",function(){PaymentButton.create(document.getElementById("googlePayButton"),t)}),PaymentButton.on("authorization",function(t){e.paymentData.redirectUrl&&t.transactionId&&window.location.assign(e.paymentData.redirectUrl+"&datatransTrxId="+t.transactionId)}),PaymentButton.on("error",function(t){console.error("Google Pay error:"+t.error.message),e.paymentData.failureUrl&&t.transactionId&&window.location.assign(e.paymentData.failureUrl+"&datatransTrxId="+t.transactionId)}),PaymentButton.on("abort",function(){const e=new URLSearchParams(window.location.search);e.set("failedReason","GooglePayPaymentAborted"),window.location.search=e.toString()})}()})}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("rbsMailinglistShortSubscription",["$scope","RbsChange.AjaxAPI",function(e,t){__change.userContext.accessorId?(e.mode="loading",t.getData("Rbs/Mailinglist/HasSubscription").then(function(t){e.mode=t.data.dataSets.common.hasSubscription?"manage":"subscription"},function(){e.mode="subscription"})):e.mode="subscription"}]),e.controller("rbsMailinglistSubscription",["$scope","RbsChange.AjaxAPI","RbsChange.Cookies","$element",function(e,t,a,o){e.mailingLists={},e.profileData={},e.optsIn={},e.requestToken=e.blockParameters.requestToken,e.disabled=!1,e.isConnected=!1,e.blockData.hasOwnProperty("profileData")&&angular.isObject(e.blockData.profileData)?(e.profileData=e.blockData.profileData,e.isConnected=e.profileData.hasOwnProperty("email")):o.attr("data-email")&&(e.profileData={email:o.attr("data-email")},e.isConnected=!0);e.showComplementaryFields=e.blockParameters.showComplementaryFields,e.mailingLists=e.blockData.mailingLists,e.blockParameters.token&&(e.token=e.blockParameters.token,e.blockParameters.email&&(e.isConnected||(e.profileData={email:e.blockParameters.email})),e.blockParameters.requestKey&&(e.requestKey=e.blockParameters.requestKey),r());function r(){e.disabled=!0,t.openWaitingModal();var a={token:e.token};e.requestKey?a.requestKey=e.requestKey:e.profileData.email&&(a.email=e.profileData.email),t.postData("Rbs/Mailinglist/ConfirmSubscription",a).then(function(a){t.closeWaitingModal(),e.disabled=!1,e.success=a.data.dataSets.success,e.errors=null},function(a){e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1,console.log(a)})}e.submit=function(){if(null!==e.requestToken){e.disabled=!0,t.openWaitingModal();var o={email:e.profileData.email,userId:e.blockParameters.userId,profileData:e.profileData,optsIn:(n=[],angular.forEach(e.optsIn,function(e){!1!==e&&n.push(e)}),n),device:(r=(new UAParser).getResult(),r.browser.name+" - "+r.os.name),LCID:e.blockParameters._LCID,requestToken:e.requestToken};t.postData("Rbs/Mailinglist/Subscribe",o).then(function(o){if(t.closeWaitingModal(),e.disabled=!1,!e.isConnected){var r="rbsMailinglistSubscription-"+e.blockParameters.website+"-"+e.blockParameters._LCID,n=o.data.dataSets.optsIn;a.put("technical",r,JSON.stringify(n))}e.success=o.data.dataSets.success,e.errors=null},function(a){e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1,console.log(a)})}var r,n},e.confirmSubscriptionRequest=function(){r()}}]),e.controller("rbsMailinglistManageSubscription",["$scope","RbsChange.AjaxAPI","RbsChange.Cookies",function(e,t,a){e.optsIn=[],e.mailingLists={},e.profileData={},e.isConnected=!!e.blockParameters.userId,e.successMessage=null,e.showComplementaryFields=e.blockParameters.showComplementaryFields,e.requestToken=e.blockParameters.requestToken,e.subscriberId=e.blockData.subscriberId?e.blockData.subscriberId+"":null,e.subscribers=e.blockData.subscribers,e.showSelector=!1,e.disabled=!1,e.success={},e.errors=null,e.email=e.blockParameters.email||null,(e.subscriberId||e.isConnected&&e.email)&&(e.blockData.hasOwnProperty("mailingLists")&&angular.isObject(e.blockData.mailingLists)&&(e.mailingLists=e.blockData.mailingLists,o()),e.blockData.hasOwnProperty("profileData")&&angular.isObject(e.blockData.profileData)&&(e.profileData=angular.copy(e.blockData.profileData),e.showSelector=Object.keys(e.profileData).length>1));function o(){e.optsIn=[],e.mailingLists&&e.mailingLists[e.subscriberId]&&angular.forEach(e.mailingLists[e.subscriberId],function(t){!0===t.common.subscribed?e.optsIn.push(t.common.id):e.optsIn.push(null)})}e.submit=function(){if(e.subscriberId){e.disabled=!0,t.openWaitingModal();var o={profileData:e.profileData[e.subscriberId],optsIn:e.optsIn,email:e.profileData[e.subscriberId].email,subscriberId:e.subscriberId,displayedMailinglists:e.blockParameters.displayedMailinglists};t.postData("Rbs/Mailinglist/UpdateSubscriptions",o).then(function(o){if
1(t.closeWaitingModal(),e.disabled=!1,e.success=o.data.dataSets.success,e.errors=null,e.mailingLists[e.subscriberId]=o.data.dataSets.mailingLists[e.subscriberId],!e.blockParameters.userId){var r="rbsMailinglistSubscription-"+e.blockParameters.website+"-"+e.blockParameters._LCID,n=o.data.dataSets.optsIn;a.put("technical",r,JSON.stringify(n))}},function(a){e.success=null,e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1})}},e.request=function(){if(e.email){e.disabled=!0,t.openWaitingModal();var a={email:e.email,requestToken:e.requestToken,request:!0};t.postData("Rbs/Mailinglist/RequestSubscriptions",a).then(function(a){t.closeWaitingModal(),e.disabled=!1,e.success=a.data.dataSets.success,e.errors=null},function(a){e.success=null,e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1})}},e.confirmSubscriptionRequest=function(){if(e.email||e.requestKey){e.disabled=!0,t.openWaitingModal();var a={token:e.token};e.requestKey?a.requestKey=e.requestKey:e.email&&(a.email=e.email),a.displayedMailinglists=e.blockParameters.displayedMailinglists,t.postData("Rbs/Mailinglist/RequestSubscriptions",a).then(function(a){e.success=a.data.dataSets,e.errors=null,e.subscriberId=a.data.dataSets.subscriberId,e.profileData=a.data.dataSets.profileData,e.profileData[e.subscriberId].email=a.data.dataSets.email,e.mailingLists=a.data.dataSets.mailingLists,t.closeWaitingModal(),e.disabled=!1,o()},function(a){e.success=null,e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1})}},e.fillOptIns=o,(e.blockParameters.email||e.blockParameters.requestKey)&&e.blockParameters.token&&(e.email=e.blockParameters.email||null,e.token=e.blockParameters.token,e.requestKey=e.blockParameters.requestKey,e.confirmSubscriptionRequest())}])}(),function(e){"use strict";angular.module("RbsChangeApp").directive("head",["$rootScope",function(t){return{restrict:"E",scope:!1,link:function(){var a;t.$on("RbsSeoUpdateMetas",function(t,o){angular.isObject(o)&&o.title&&(a||(a=e("head title")),a.text(o.title))})}}}])}(window.jQuery),function(){"use strict";angular.module("RbsChangeApp").directive("rbsSeoFacetUrlDecorator",["$rootScope","$filter","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",scope:!1,link:function(o){var r=o.blockParameters.visibility||"list",n=o.blockParameters.attributesMode||"flat";o.imageFormat=o.blockParameters.defaultImageFormat||"attribute",o.blockData.decoratorData?(o.decoratorId=o.blockData.decoratorData.common.id,o.attributes=t("rbsVisibleAttributes")(o.blockData.decoratorData,r,n)):(o.decoratorId=0,o.attributes=[]);var i={};i["attr"+o.decoratorId]=o.attributes,e.$on("RbsSeoUpdateDecorator",function(e,s){var c=s.decoratorId||0;if(o.decoratorId=c,o.attributes=[],c){var l="attr"+c;i.hasOwnProperty(l)?o.attributes=i[l]:a.getData("Rbs/Seo/FacetUrlDecorator/"+c,null,o.blockData.context).then(function(e){o.attributes=t("rbsVisibleAttributes")(e.data.dataSets,r,n),i[l]=o.attributes})}})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsSeoFacetUrlDecoratorPreloaded",["$rootScope","$compile","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",scope:!1,link:function(o,r){e.$on("RbsSeoUpdateDecorator",function(e,n){var i=n.decoratorId||0;if(i){var s=angular.copy(o.blockParameters);s.decoratorId=i,a.reloadBlock(o.blockName,o.blockId,s,o.blockNavigationContext).then(function(e){r.html(jQuery(jQuery.parseHTML(e.data.dataSets.html)).filter(".content").html()),t(r.find(".facet-url-attributes"))(o)},function(e){console.error("[rbsSeoFacetUrlDecoratorPreloaded] error reloading block:",e)})}else r.html("")})}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsSocolissimoModeEditor",["RbsChange.AjaxAPI","RbsChange.ModalStack","RbsGeo.GoogleMapService",function(e,t,a){return{restrict:"A",templateUrl:"/rbs-socolissimo-shipping.twig",scope:{shippingMode:"=",shippingModeInfo:"=",userAddresses:"=",processEngine:"=",giftCapabilities:"="},link:function(o){function r(e){if(e){var t=angular.copy(o.relay);delete t.address;var a={id:o.shippingModeInfo.common.id,title:o.shippingModeInfo.common.title,storeId:null,address:o.relay.address,options:{relayCode:t.code,relay:t,search:o.search}};return angular.isFunction(o.shippingMode.getTransportableOptions)&&angular.forEach(o.shippingMode.getTransportableOptions(),function(e,t){a.options[t]=e}),o.shippingMode.options.message&&(a.options.message=o.shippingMode.options.message),o.shippingMode.options.containsGift&&(a.options.containsGift=o.shippingMode.options.containsGift,o.shippingMode.options.giftAddMessage&&(a.options.giftAddMessage=o.shippingMode.options.giftAddMessage),o.shippingMode.options.giftMessage&&(a.options.giftMessage=o.shippingMode.options.giftMessage),o.shippingMode.options.giftAddWra
1p&&(a.options.giftAddWrap=o.shippingMode.options.giftAddWrap)),a}return o.shippingModeInfo.common.id==o.shippingMode.id&&o.relay&&!o.shippingMode.options.invalidMessage}o.useGoogleMap=a.valid(),o.edition=null,o.relay=!1,o.shippingMode.options.relay=null,o.shippingMode.options.relayCode=null,o.noresult=!1,o.error=null,o.search={zipCode:null,city:null,country:null},o.relayResult=null,o.searchGoogleAddress=function(){var e=o.autocomplete.getPlace();if(!e.address_components)return o.noresult=!0,o.relayResult=!1,void o.$apply();o.search={zipCode:null,city:null,country:null},angular.forEach(e.address_components,function(e){angular.forEach(e.types,function(t){"postal_code"===t?o.search.zipCode=e.short_name:"locality"===t||"postal_town"===t?o.search.city=e.short_name:"country"===t&&(o.search.country=e.short_name)})});var t=document.createEvent("Event");t.initEvent("RbsSocolissimoSearchPoints",!0,!1),t.place=e,t.searchAddress=o.search,window.document.dispatchEvent(t),o.search=t.searchAddress,o.search.zipCode&&o.search.city?(o.search.address||angular.forEach(e.types,function(t){"street_address"!==t&&"route"!==t||(o.search.address=e.name)}),o.launchSearch()):(o.noresult=!0,o.relayResult=!1,o.$apply())},o.launchSearch=function(){o.loading=!0,o.error=null,e.openWaitingModal(),e.getData("Rbs/Geo/Points/",{address:o.search,options:{modeId:o.shippingMode.id}}).then(function(t){o.applyResult(t.data.items),o.noresult=!1,o.loading=!1,o.error=null,e.closeWaitingModal()},function(t){o.applyResult([]),o.noresult=!0,o.loading=!1,o.error=t.data.message,e.closeWaitingModal()})},o.applyResult=function(e){o.relayResult=[],o.shippingMode.valid=r,o.relay=null;var t=o.shippingMode.options?o.shippingMode.options.relayCode:null;angular.forEach(e,function(e){e.modeId=o.shippingModeInfo.common.id,e.code==t&&(o.relay=e,o.shippingMode.options.relay=e,null===o.edition&&(o.edition=!1)),o.relayResult.push(e)})},o.selectRelay=function(e){o.edition=!1,o.setDeliveryInformation(e)},o.setDeliveryInformation=function(e){o.shippingMode.valid=r,e?(o.relay=e,o.shippingMode.options.relay=o.relay,o.shippingMode.options.relayCode=o.relay.code):(o.relay=null,delete o.shippingMode.options.relay,delete o.shippingMode.options.relayCode)},o.openRelayPopup=function(e){var a={templateUrl:"/rbs-socolissimo-relay-popin.twig",backdropClass:"modal-backdrop-rbs-socolissimo-relay",windowClass:"modal-rbs-socolissimo-relay",size:"lg",controller:"RbsSocolissimoRelayModalCtrl",resolve:{relay:function(){return e}}};t.open(a)},o.$watch("shippingMode.id",function(e){e==o.shippingModeInfo.common.id&&(o.shippingMode.valid=r,o.shippingMode.atHomeAddress=null)}),o.$watch("shippingModeInfo",function(e){if(e){e.countries&&e.countries.length>0&&(o.search.country=e.countries[0].code);var t=!1;if(o.shippingMode.id==e.common.id){o.shippingMode.valid=r;var n=o.shippingMode.options;n&&(n.search&&n.search.zipCode&&n.search.city&&(o.search=n.search,t=!0),n.relayCode&&n.relay&&(o.relay=n.relay,t=!1))}o.useGoogleMap&&a.maps().then(function(e){o.autocomplete=new e.places.Autocomplete(document.getElementById("socolissimo-shipping-relay-map-auto-complete-"+o.shippingMode.deliveryIndex),{types:["address"]}),e.event.addListener(o.autocomplete,"place_changed",function(){o.searchGoogleAddress()})}),t?o.launchSearch():o.relay||(o.edition=!0)}})}}}]),e.directive("rbsSocolissimoModeSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-socolissimo-shipping-readonly.twig",scope:{shippingMode:"="},link:function(t){t.relay=t.shippingMode.options.relay,t.relay.address=t.shippingMode.address,t.openRelayPopup=function(t){var a={templateUrl:"/rbs-socolissimo-relay-popin.twig",backdropClass:"modal-backdrop-rbs-socolissimo-relay",windowClass:"modal-rbs-socolissimo-relay",size:"lg",controller:"RbsSocolissimoRelayModalCtrl",resolve:{relay:function(){return t}}};e.open(a)}}}}]),e.controller("RbsSocolissimoRelayModalCtrl",["$timeout","RbsChange.ModalStack","$scope","$uibModalInstance","relay","RbsGeo.GoogleMapService","RbsGeo.LeafletMapService",function(e,t,a,o,r,n,i){var s={latitude:r.latitude,longitude:r.longitude};function c(){var e,t,o,c,l,d,u="rbs-socolissimo-map-relay-"+r.code;
1n.valid()?n.maps().then(function(n){e=new n.LatLng(s.latitude,s.longitude),t={center:e,zoom:15},a.map=new n.Map(document.getElementById(u),t),o={position:e,map:a.map},r.options&&r.options.marker&&r.options.marker.img&&(c=r.options.marker,l=c.size?c.size[0]:31,d=c.size?c.size[1]:34,o.icon={url:c.img,size:new n.Size(l,d),origin:new n.Point(0,0),anchor:new n.Point(l/2,d/2)}),a.marker=new n.Marker(o)}):i.valid()?i.maps().then(function(n){o={},r.options&&r.options.marker&&r.options.marker.img&&(c=r.options.marker,l=c.size?c.size[0]:31,d=c.size?c.size[1]:34,o.icon=n.icon({iconUrl:c.img,iconSize:[l,d],iconAnchor:[l/2,d/2]})),t={center:e={lat:s.latitude,lng:s.longitude},zoom:15},a.map=n.map(u,t);var p=new n.TileLayer(i.defaultTileLayerName(),{attribution:i.getAttribution()});a.map.addLayer(p),a.marker=n.marker(e,o).addTo(a.map)}):console.warn("No valid map configuration.")}function l(){t.showPrevious()}a.loadMap=!1,a.map=null,a.relay=r,a.showMap=function(){return!a.loadMap&&s&&(a.loadMap=!0,e(c,750)),!0},a.closed=function(e){return!(e.amBegin||e.amEnd||e.pmBegin||e.pmEnd)},o.result.then(l,l),a.cancel=function(){o.dismiss("cancel")}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsShippingModeEditor",[function(){return{restrict:"A",templateUrl:"/rbs-shipping-mode-editor.twig",scope:{shippingMode:"=",shippingModeInfo:"=",userAddresses:"=",processEngine:"=",giftCapabilities:"="}}}]),e.directive("rbsShippingModeSummary",function(){return{restrict:"A",templateUrl:"/rbs-shipping-mode-summary.twig",scope:{shippingMode:"=",shippingModeInfo:"="}}}),e.directive("rbsShippingModeCarbonFootprint",function(){return{restrict:"E",templateUrl:"/rbs-shipping-mode-carbon-footprint.twig"}})}(),function(e){"use strict";var t=angular.module("RbsChangeApp");t.directive("rbsCatalogVariantSelector",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-catalog-variant-selector.twig",replace:!1,scope:{productData:"=",ajaxData:"=",ajaxParams:"=",parameters:"="},link:function(t){function a(e,t,a){var o;if(!a||"="===a){if(e.length===t.length){for(o=0;o<e.length;o++)if(e[o]!=t[o])return!1;return!0}return!1}if("<"===a){if(e.length===t.length-1){for(o=0;o<e.length;o++)if(e[o]!=t[o])return!1;return!0}return!1}if("<<"===a){if(e.length<t.length){for(o=0;o<e.length;o++)if(e[o]!=t[o])return!1;return!0}return!1}return!1}function o(e){for(var o={},r=[],n=e.length,i=t.rootProductData.variants.products,s=0;s<i.length;s++){var c=i[s].axesValues;if(a(e,c,"<<")){var l=c[n];o.hasOwnProperty(l)||(o[l]=!0,r.push(l))}}return r}function r(e){for(var o,r=e.length-1,n={value:e[r],title:e[r],lastAxis:e.length===t.rootProductData.variants.axes.length},i=t.rootProductData.variants.products,s=0;s<i.length;s++)a(e,i[s].axesValues,"=")&&(o=i[s],angular.extend(n,o));var c=t.rootProductData.variants.axes[r];if(c.defaultItems&&c.defaultItems.length)for(s=0;s<c.defaultItems.length;s++)if(c.defaultItems[s].value==n.value){n.title=c.defaultItems[s].title;break}return n}function n(e,t){for(var a=[],o=0;o<t.length;o++)e.push(t[o]),a.push(r(e)),e.pop();return a}t.selectedAxesValues=[],t.axesItems=[],t.loadProductId=null,t.loadedProducts={},t.originalProductData=null,t.rootProductData={},t.$watch("productData",function(r){if(null===t.originalProductData&&angular.isObject(r)&&angular.isObject(r.common)&&(t.productData=r,t.originalProductData=t.productData,t.rootProductData=t.productData.rootProduct||t.productData,t.$watchCollection("selectedAxesValues",function(r){var i=t.rootProductData.variants?t.rootProductData.variants.axes:[];t.axesItems=[];var s,c,l,d,u=[];for(s=0;s<i.length;s++)r[s]?(l=n(u,c=o(u)),t.axesItems.push(l),u.push(r[s])):s==r.length?(l=n(u,c=o(u)),t.axesItems.push(l),1==c.length&&(r.push(c[0]),u.push(r[s]))):t.axesItems.push([]);if(r.length){var p=function(e){for(var o=t.rootProductData.variants.products,r=0;r<o.length;r++)if(a(e,o[r].axesValues,"="))return o[r];return null}(r);if(p)return void(p.id!=t.productData.common.id&&(d=p.id,t.loadedProducts[d]?t.productData=t.loadedProducts[d]:d==t.originalProductData.common.id?t.productData=t.originalProductData:d==t.rootProductData.common.id?t.productData=t.rootProductData:t.loadProductId!=d&&(t.loadProductId=d,e.getData("Rbs/Catalog/Product/"+d,t.ajaxData,t.ajaxParams).then(function(e){var a=e.data.dataSets,o=a.common.id;a.rootProduct=t.rootProductData,t.loadedProducts[o]=a,o==t.loadProductId&&(t.productData=a)},function(e){t.error=e.data.message,console.error("Rbs/Catalog/Product/"+d,e)}))))}t.productData=t.rootProductData}),t.rootProductData!==t.productData))for(var i=0;i<t.rootProductData.variants.products.length;i++)if(t.rootProductData.variants.products[i].id==t.productData.common.id){t.selectedAxesValues=angular.copy(t.rootProductData.variants.products[i].axesValues);break}}),t.variantChanged=function(e){t.selectedAxesValues.length=e+(null!==t.selectedAxesValues[e]?1:0)}}}}]),t.directive("rbsCatalogAxisValueSelector",["$compile",function(e){return{restrict:"A",templateUrl:"/rbs-catalog-axis-value-selector.twig",scope:!0,link:function(t,a){var o=t.axis.renderingMode||"select";o?o.indexOf("-")<0&&(o="rbs-catalog-axis-value-selector-"+o):console.error("No rendering mode for axis!",t.axis);var r=a.find(".axis-value-selector-container");r.html("<div data-"+o+'=""></div>'),e(r.contents())(t)}}}]),t.directive("rbsCatalogAxisValueSelectorSelect",function(){return{restrict:"A",templateUrl:"/rbs-catalog-axis-value-selector-select.twig",scope:!1}}),t.directive("rbsCatalogAxisValueSelectorSwatch",function(){return{restrict:"A",templateUrl:"/rbs-catalog-axis-value-selector-swatch.twig",scope:!1}}),t.directive("rbsCatalogAxisValueSelectorSwatchItem",function(){return{restrict:"A",scope:!0,link:function(e,t,a){var o,r=e.option.value;if(e.axis.defaultItems)for(var n=0;n<e.axis.defaultItems.length;n++)if(e.axis.defaultItems[n].value==r){o=e.axis.defaultItems[n];break}if(angular.isObject(o)&&angular.isObject(o.skin)){e.item=o;var i=a.visualFormat||"selectorItem",s=o.skin.colorCode||"";
1o.skin.visual&&o.skin.visual[i]&&(s+=' url("'+o.skin.visual[i]+'") no-repeat center center / contain'),e.ngStyle={background:s},e.ngTooltip=o.title||o.value}else angular.isObject(e.option)&&(e.ngTooltip=e.option.title||e.option.value)}}}),t.directive("rbsCatalogAxisValueSelectorButtons",function(){return{restrict:"A",templateUrl:"/rbs-catalog-axis-value-selector-buttons.twig",scope:!1}}),t.directive("rbsCatalogAxisValueSelectorButtonsItem",function(){return{restrict:"A",scope:!0,link:function(e){var t;if(e.axis.defaultItems)for(var a=e.option.value,o=0;o<e.axis.defaultItems.length;o++)if(e.axis.defaultItems[o].value==a){t=e.axis.defaultItems[o];break}angular.isObject(t)?(e.item=t,e.ngTooltip=t.title||t.value):e.ngTooltip=e.option.title||e.option.value}}}),t.directive("rbsCatalogAxisOptionClass",["$parse",function(e){return{require:"select",link:function(t,a,o){var r=o.ngOptions.split(" ").pop(),n=e(o.rbsCatalogAxisOptionClass);t.$watchCollection(r,function(e){t.$$postDigest(function(){angular.forEach(e,function(e,t){var o=n(e),r=a.find('option[value="string:'+e.value+'"]');angular.forEach(o,function(e,t){e?r.addClass(t):r.removeClass(t)})})})})}}}]),t.directive("rbsCatalogProductPrice",function(){return{restrict:"A",templateUrl:"/rbs-catalog-product-price.twig",link:function(e,t,a){e.rbsCatalogPriceMode=a.mode||"web"}}}),t.controller("RbsCatalogSimpleProductController",["$scope","$element","RbsChange.ModalStack","RbsChange.ProductService",function(e,t,a,o){new ProductDetailHandler(e,t,a,o).initProductDetailScope()}]),t.controller("RbsCatalogVariantProductController",["$scope","$element","RbsChange.ModalStack","RbsChange.ProductService",function(e,t,a,o){new ProductDetailHandler(e,t,a,o).initProductDetailScope()}]),t.controller("RbsCatalogProductSetController",["$scope","$element","$rootScope","RbsChange.ModalStack","RbsChange.ProductService","RbsChange.AjaxAPI",function(e,t,a,o,r,n){var i=new ProductDetailHandler(e,t,o,r),s=new ProductCartBoxHandler(a,e,n,o,r);function c(e){return!(e&&e.cartBox&&e.cartBox.allCategories.allowed)||e.cartBox.allCategories.disabled}i.initProductDetailScope(),e.itemsToAdd=[],e.addToCartData={},e.productData.productSet&&e.productData.productSet.products&&(angular.forEach(e.productData.productSet.products,function(t){c(t)?(e.itemsToAdd.push(null),t.cartBox.allCategories.checked=!1):(t.cartBox.allCategories.checked=!0,e.itemsToAdd.push(t))}),d(e));e.$on("setItemChanged",function(t,a,o){angular.isFunction(t.stopPropagation)&&(t.stopPropagation(),c(o)||!o.cartBox.allCategories.checked?e.itemsToAdd[a]=null:e.itemsToAdd[a]=o,d(e))});var l=e.getStoreAvailabilityModalOption;function d(e){e.addToCartData.hasItemsToAdd=!1,e.productData.price.baseValueWithTax=0,e.productData.price.baseValueWithoutTax=0,e.productData.price.valueWithTax=0,e.productData.price.valueWithoutTax=0,e.productData.price.hasDifferentPrices=!1,e.productData.storePrice&&(e.productData.storePrice.baseValueWithTax=0,e.productData.storePrice.baseValueWithoutTax=0,e.productData.storePrice.valueWithTax=0,e.productData.storePrice.valueWithoutTax=0,e.productData.storePrice.hasDifferentPrices=!1),e.productData.mergedPrice.baseValueWithTax=0,e.productData.mergedPrice.baseValueWithoutTax=0,e.productData.mergedPrice.valueWithTax=0,e.productData.mergedPrice.valueWithoutTax=0,e.productData.mergedPrice.hasDifferentPrices=!1,e.productData.stock={minQuantity:0,maxQuantity:1,step:1};var t=e.productData.cartBox;t.allCategories={allowed:!1},t.shippingCategories={allowed:!1},t.storeCategories={allowed:!1};for(var a={},o={},r=!1,i=0;i<e.itemsToAdd.length;i++){var s=e.itemsToAdd[i];if(s&&s.cartBox.allCategories.allowed){r||(r=!0,angular.extend(t.allCategories,s.cartBox.allCategories),angular.extend(t.shippingCategories,s.cartBox.shippingCategories||{}),angular.extend(t.storeCategories,s.cartBox.storeCategories||{})),t.shippingCategories.allowed&&!t.shippingCategories.disabled&&(s.cartBox.shippingCategories?(t.shippingCategories.allowed=s.cartBox.shippingCategories.allowed,t.shippingCategories.disabled=s.cartBox.shippingCategories.disabled):(t.shippingCategories.allowed=!1,t.shippingCategories.disabled=!0),t.allCategories.allowed=s.cartBox.allCategories.allowed,t.allCategories.disabled=s.cartBox.allCategories.disabled),t.storeCategories.allowed&&!t.storeCategories.disabled&&(s.cartBox.storeCategories?(t.storeCategories.allowed=s.cartBox.storeCategories.allowed,t.storeCategories.disabled=s.cartBox.storeCategories.disabled):(t.storeCategories.allowed=!1,t.storeCategories.disabled=!0),t.allCategories.allowed=s.cartBox.allCategories.allowed,t.allCategories.disabled=s.cartBox.allCategories.disabled);var c=s.cartBox.quantity||s.stock.minQuantity;s.cartBox.allCategories.disabled||(a[s.stock.sku]=c,o[s.stock.skuId]=c),e.addToCartData.hasItemsToAdd=!0}}var l={skuQuantities:o,webStoreId:e.parameters.webStoreId,storeId:e.parameters.storeId,billingAreaId:e.parameters.billingAreaId,zone:e.parameters.zone};n.getData("Rbs/Catalog/EstimatePriceForSkuQuantities",l,{}).then(function(t){var a=t.data.dataSets||{};a.webStoreData&&a.webStoreData.totalAmounts&&(e.productData.price.baseValueWithTax=a.webStoreData.totalAmounts.baseValueWithTax,e.productData.price.baseValueWithoutTax=a.webStoreData.totalAmounts.baseValueWithoutTax,e.productData.price.valueWithTax=a.webStoreData.totalAmounts.valueWithTax,e.productData.price.valueWithoutTax=a.webStoreData.totalAmounts.valueWithoutTax),a.storeData&&a.storeData.totalAmounts&&(e.productData.storePrice.baseValueWithTax=a.storeData.totalAmounts.baseValueWithTax,e.productData.storePrice.baseValueWithoutTax=a.storeData.totalAmounts.baseValueWithoutTax,e.productData.storePrice.valueWithTax=a.storeData.totalAmounts.valueWithTax,e.productData.storePrice.valueWithoutTax=a.storeData.totalAmounts.valueWithoutTax),a.mergedData&&a.mergedData.totalAmounts&&(e.productData.mergedPrice.baseValueWithTax=a.mergedData.totalAmounts.baseValueWithTax,e.productData.mergedPrice.baseValueWithoutTax=a.mergedData.totalAmounts.baseValueWithoutTax,e.productData.mergedPrice.valueWithTax=a.mergedData.totalAmounts.valueWithTax,e.productData.mergedPrice.valueWithoutTax=a.mergedData.totalAmounts.valueWithoutTax)},function(e){console.error("Rbs/Catalog/EstimatePriceForSkuQuantities",e)}),e.productData.price.valueWithTax===e.productData.price.baseValueWithTax&&(e.productData.price.baseValueWithTax=null),e.productData.price.valueWithoutTax===e.productData.price.baseValueWithoutTax&&(e.productData.price.baseValueWithoutTax=null),t.skuQuantities=a}e.getStoreAvailabilityModalOption=function(t,a){var o=l(t,a);return o.resolve.skuQuantities=function(){return e.productData.cartBox.skuQuantities},o},e.populateAddProductData=function(t){var a=t.lines[0];angular.forEach(e.itemsToAdd,function(e){if(e&&e.cartBox.allCategories.checked){var o=angular.extend({},a,{productId:e.common.id,quantity:e.cartBox.quantity||0});t.lines.push(o)}})},e.onAddProductSuccess=function(e){return s.onAddProductSuccess(e)}}]),t.directive("rbsCatalogProductSetItemSimple",["RbsChange.ProductService",function(e){return{restrict:"A",scope:!0,link:function(t,a,o){var r=o.itemIndex;t.productSetData=t.productData,t.productData=t.productSetData.productSet.products[r],t.rootProductData=t.productData,t.pictograms=e.extractPictogram(t.productData),t.animations=e.extractAnimations(t.productData),t.visuals=e.extractVisuals(t.productData),t.brand=e.extractBrand(t.productData),t.url=e.extractURL(t.productData),t.disableCheck=function(){var e=t.productData;return!(e&&e.cartBox&&e.cartBox.allCategories.allowed)||e.cartBox.allCategories.disabled};var n=t.productData.cartBox;n&&(n.quantity=n.quantity||t.productData.stock&&t.productData.stock.minQuantity),t.productData.cartBox.allCategories.hasOwnProperty("checked")||(t.productData.cartBox.allCategories.checked=!t.disableCheck()),t.onCheck=function(){t.$emit("setItemChanged",r,t.productData)}}}}]),t.directive("rbsCatalogProductSetItemVariant",["RbsChange.ProductService",function(e){return{restrict:"A",scope:!0,link:function(t,a,o){var r=o.itemIndex;t.productSetData=t.productData,t.productData=t.productSetData.productSet.products[r],t.rootProductData=t.productData.rootProduct||t.productData,t.pictograms=e.extractPictogram(t.productData),t.animations=e.extractAnimations(t.productData),t.visuals=null,t.brand=null,t.url=null,t.disableCheck=function(){var e=t.productData;return!(e&&e.cartBox&&e.cartBox.allCategories.allowed)||e.cartBox.allCategories.disabled},t.$watch("productData",function(a,o){if(a){t.visuals=e.extractVisuals(a),t.brand=e.extractBrand(t.productData),t.pictograms=e.extractPictogram(a),t.animations=e.extractAnimations(a),t.url=e.extractURL(a),t.productData.cartBox.allCategories.hasOwnProperty("checked")||(t.productData.cartBox.allCategories.checked=!t.disableCheck());var n=a.cartBox;n&&(n.quantity=n.quantity||a.stock&&a.stock.minQuantity)}a!==o&&t.$emit("setItemChanged",r,a)}),t.onCheck=function(){t.$emit("setItemChanged",r,t.productData)}}}}]),t.directive("rbsCatalogProductSpecifications",["$filter",function(e){return{restrict:"A",scope:!0,link:function(t){t.sections=[],t.$watch("productData",function(a){t.sections=e("rbsVisibleAttributes")(a,"specifications","group")})}}}]),t.directive("rbsCatalogProductSpecificationsTable",function(){return{restrict:"A",link:function(e){e.tableRows=[],e.$watch("sections",function(t){e.tableRows=[],angular.forEach(t,function(t){e.tableRows.push({isSectionTitle:!0,section:t}),angular.forEach(t.attributes,function(t){e.tableRows.push(t)})})},!0)}}}),t.directive("rbsCatalogProductSpecificationsFlat",function(){return{restrict:"A",link:function(e){e.flatRows=[],e.$watch("sections",function(t){e.flatRows=[],angular.forEach(t,function(t){angular.forEach(t.attributes,function(t){e.flatRows.push(t)})})},!0)}}}),t.controller("RbsCatalogProductInformationController",["$filter","$scope","RbsChange.ProductService",function(e,t,a){t.$watch("productData",function(){t.specificInformation=e("rbsVisibleAttributes")(t.productData,"information","flat"),t.specificationsDisplayMode=t.blockParameters.specificationsDisplayMode||"table",t.specificationsDisplayMode&&"none"!==t.specificationsDisplayMode&&(t.specifications=e("rbsVisibleAttributes")(t.productData,"specifications","group")),t.specificationsTitle=a.extractSpecificationsTitle(t.productData)})}]),t.directive("rbsCatalogProductInformationAccordion",function(){return{restrict:"A",link:function(t,a){t.baseId="block-"+t.blockId+"-information-accordion";var o="#"+t.baseId+"-reviews";t.$on("showReviews",function(r,n){n==t.blockId&&(a.find(o).collapse("show"),e("html, body").animate({scrollTop:a.find('a[href="'+o+'"]').offset().top-20},1e3))})}}}),t.directive("rbsCatalogProductInformationFlat",function(){return{restrict:"A",link:function(t,a){t.baseId="block-"+t.blockId+"-information-flat";var o="#"+t.baseId+"-reviews";t.$on("showReviews",function(r,n){n==t.blockId&&e("html, body").animate({scrollTop:a.find(o).offset().top-20},1e3)})}}}),t.directive("rbsCatalogProductInformationTabs",function(){return{restrict:"A",link:function(t,a){t.baseId="block-"+t.blockId+"-information-tab";var o='a[href="#'+t.baseId+'-reviews"]';t.$on("showReviews",function(r,n){n==t.blockId&&(a.find(o).tab("show"),e("html, body").animate({scrollTop:a.find(o).offset().top-20},1e3))})}}}),t.directive("rbsCatalogProductAnimations",function(){return{restrict:"A",templateUrl:"/rbs-catalog-product-animations.twig",link:function(e,t){}}})}(jQuery),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("RbsCatalogProductCartBoxController",["$rootScope","$scope","RbsChange.AjaxAPI","RbsChange.ModalStack","RbsChange.ProductService",function(e,t,a,o,r){var n=new ProductCartBoxHandler(e,t,a,o,r);this.emptyCartBox=function(){return ProductCartBoxHandler.emptyCartBox},this.buildAddedToCartModalContext=function(e){return n.buildAddedToCartModalContext(e)},this.buildExtendedCartBoxModalContext=function(e){return n.buildExtendedCartBoxModalContext(e)},this.buildAddProductData=function(e,t){return n.buildAddProductData(e,t)},this.addProduct=function(e,t){n.addProduct(e,t)},t.addAllCategoriesProduct=function(){return n.addProduct(t.productData,"allCategories")},t.addShippingCategoriesProduct=function(){return n.addShippingCategoriesProduct()}
1,t.addStoreCategoriesProduct=function(){return n.addStoreCategoriesProduct()},t.selectStore=function(e){n.selectStore(e)},t.openAddedToCartModal=function(e){n.openAddedToCartModal(e)},t.openExtendedCartBoxModal=function(e){n.openExtendedCartBoxModal(e)},t.addProductExtended=function(e){return n.addProductExtended(e)},t.buttonTitle=function(e){return n.buttonTitle(e)},t.currentDescription=function(e){return e&&e.description?e.disabled&&e.disabledDescription?e.disabledDescription:!e.disabled&&e.restockDescription&&isCategoryDataInRestockingMode(e)?e.restockDescription:e.description:""}}]),e.directive("rbsCatalogProductCartBoxDual",function(){return{restrict:"A",templateUrl:"/rbs-catalog-product-cart-box-dual.twig",controller:"RbsCatalogProductCartBoxController",controllerAs:"cartBoxController",link:{pre:function(e){e.$watch("productData",function(t,a){t!==a&&ProductCartBoxHandler.checkCapabilities(e,t)}),ProductCartBoxHandler.checkCapabilities(e,e.productData)}}}}),e.directive("rbsCatalogProductCartBoxSimple",function(){return{restrict:"A",templateUrl:"/rbs-catalog-product-cart-box-simple.twig",controller:"RbsCatalogProductCartBoxController",controllerAs:"cartBoxController",link:{pre:function(e){function t(t){if(t&&t.cartBox&&t.cartBox.allCategories){var a=e.cartBox&&e.cartBox.quantity;e.cartBox=t.cartBox,e.cartBox.minQuantity=t.stock.minQuantity,e.cartBox.step=t.stock.step,e.cartBox.maxQuantity=t.stock.maxQuantity,e.parameters.showQuantity&&(e.cartBox.quantity=a||e.cartBox.minQuantity)}else e.cartBox=e.cartBoxController.emptyCartBox()}e.$watch("productData",function(e,a){e!==a&&t(e)}),t(e.productData)}}}}),e.controller("RbsCatalogShowStoreAvailabilityModalCtrl",["RbsChange.ModalStack","$scope","$uibModalInstance","skuQuantities","selectStoreCallBack","forReservation","forPickUp","currentStoreId","pricesConfiguration",function(e,t,a,o,r,n,i,s,c){t.allowSelect=angular.isFunction(r),t.forReservation=n,t.forPickUp=i,t.skuQuantities=o,t.storeId=s,t.pricesConfiguration=c,t.selectStore=function(e){r(e),a.close(e)},t.cancel=function(){a.dismiss("cancel")}}]),e.directive("rbsCatalogAddToCartConfirmationModal",["$http","$compile",function(e,t){return{restrict:"A",link:function(a,o,r){a.modalContentUrl?(a.modalContentMode="loading",e.get(a.modalContentUrl).then(function(e){if("closing"!==a.modalContentMode){var r=".modal-main-content";o.find(r).replaceWith('<div class="modal-main-content">'+e.data+"</div>"),t(o.find(r).contents())(a),a.modalContentMode="success"}},function(e){a.modalContentMode="error",console.error("Can't load modal content:",e)}),a.inCart=function(){return window.location.href===r.cartUrl},a.continueShopping=function(){a.modalContentMode="closing",a.$dismiss()},a.viewCart=function(){a.modalContentMode="closing",window.location.href===r.cartUrl?window.location.reload(!0):window.location.href=r.cartUrl}):(a.modalContentMode="error",console.warn("No modalContentUrl for product.")),a.$on("modal.closing",function(){window.location.href===r.cartUrl&&window.location.reload(!0)})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsCatalogProductAnimationsSlider",function(){return{restrict:"A",templateUrl:"/rbs-catalog-product-animation-list-slider.twig",scope:{blockId:"=",animationsData:"=",visualFormat:"="},link:function(e,t,a){e.itemsPerSlide=a.itemsPerSlide||3,e.interval=a.interval||5e3,e.controls={prev:function(e,a){e.preventDefault(),t.find("#"+a).carousel("prev")},next:function(e,a){e.preventDefault(),t.find("#"+a).carousel("next")}},e.$watch("animationsData",function(){if(e.slides={size1:[],size2:[],size3:[],size4:[]},e.animationsData){for(var t=[],a=0;a<e.animationsData.length;a++)for(var o=0;o<4;o++)a%(o+1)===0&&(t[o]&&e.slides["size"+(o+1)].push(t[o]),t[o]={animationsData:[]}),t[o].animationsData.push(e.animationsData[a]);for(var r=0;r<4;r++)t[r]&&t[r].animationsData.length&&e.slides["size"+(r+1)].push(t[r])}})}}})}(),ProductDetailHandler.prototype.initProductDetailScope=function(){this.scope.parameters=this.scope.blockParameters,this.scope.productData=this.scope.blockData,this.scope.productAjaxData={},this.scope.productAjaxParams={},this.scope.pricesConfiguration={},this.scope.parameters&&(delete this.scope.blockParameters,delete this.scope.blockData,this.scope.productAjaxData.webStoreId=this.scope.parameters.webStoreId,this.scope.productAjaxData.billingAreaId=this.scope.parameters.billingAreaId,this.scope.productAjaxData.zone=this.scope.parameters.zone,this.scope.productAjaxData.storeId=this.scope.parameters.storeId,this.scope.productAjaxData.quickBuyPageFunction=this.scope.parameters.quickBuyPageFunction,this.scope.productAjaxData.productAvailabilityNotificationPageFunction=this.scope.parameters.productAvailabilityNotificationPageFunction,this.scope.productAjaxData.handleWebStorePrices=this.scope.parameters.handleWebStorePrices,this.scope.productAjaxData.handleStorePrices=this.scope.parameters.handleStorePrices,this.scope.productAjaxParams.visualFormats=this.scope.parameters.imageFormats,this.scope.productAjaxParams.URLFormats="canonical,contextual",this.scope.pricesConfiguration.handleWebStorePrices=this.scope.parameters.handleWebStorePrices,this.scope.pricesConfiguration.handleStorePrices=this.scope.parameters.handleStorePrices,this.scope.pricesConfiguration.displayPricesWithTax=this.scope.parameters.displayPricesWithTax,this.scope.pricesConfiguration.displayPricesWithoutTax=this.scope.parameters.displayPricesWithoutTax),this.scope.pictograms=null,this.scope.visuals=null;var e=this;this.scope.$watch("productData",function(t){if(t){e.scope.pictograms=e.ProductService.extractPictogram(t),e.scope.visuals=e.ProductService.extractVisuals(t);var a=e.scope.blockParameters;e.scope.animations=e.ProductService.extractAnimations(t,a&&a.showAnimationPictogram)}}),this.scope.onSelectStore=function(t){e.scope.productAjaxData.storeId||e.scope.$emit("rbsStorelocatorChooseStore",t.common.id)},this.scope.getStoreAvailabilityModalOption=function(t,a){return{templateUrl:"/rbs-catalog-show-store-availability-modal.twig",backdropClass:"modal-backdrop-rbs-catalog-show-store-availability",windowClass:"modal-rbs-catalog-show-store-availability",size:"lg",controller:"RbsCatalogShowStoreAvailabilityModalCtrl",resolve:{skuQuantities:function(){var t={};
1return t[e.scope.productData.stock.sku]=e.scope.productData.stock.minQuantity,t},selectStoreCallBack:function(){return t},forReservation:function(){return!0===a},forPickUp:function(){return!1===a},currentStoreId:function(){return e.scope.productData.cartBox&&e.scope.productData.cartBox.storeCategories&&e.scope.productData.cartBox.storeCategories.storeId||e.scope.productAjaxData.storeId},pricesConfiguration:function(){return e.scope.pricesConfiguration}}}},this.scope.showStoreAvailability=function(){var t=e.scope.getStoreAvailabilityModalOption(!1);e.ModalStack.open(t)},this.scope.reviewsAjaxData={},this.scope.reviewsAjaxParams={},this.scope.showReviews=function(){e.scope.$broadcast("showReviews",e.element.attr("data-block-id"))}},ProductDetailHandler.prototype.refreshData=function(){var e=this.scope,t=this;t.resetProductSetPrices();var a=e.productData.cartBox;a.allCategories={allowed:!1},a.shippingCategories={allowed:!1},a.storeCategories={allowed:!1};var o={},r={},n=!1;angular.forEach(e.itemsToAdd,function(e){if(e&&e.cartBox.allCategories.allowed){n||(n=!0,angular.extend(a.allCategories,e.cartBox.allCategories),angular.extend(a.shippingCategories,e.cartBox.shippingCategories||{}),angular.extend(a.storeCategories,e.cartBox.storeCategories||{})),t.consolidateProductSetCartBoxData(e,a);var i=e.cartBox.quantity||e.stock.minQuantity;e.cartBox.allCategories.disabled||(o[e.stock.sku]=i,r[e.stock.skuId]=i),t.scope.addToCartData.hasItemsToAdd=!0}}),a.skuQuantities=o,t.refreshDataTimer&&clearTimeout(t.refreshDataTimer),t.refreshDataTimer=setTimeout(function(){t.refreshDataTimer=null,t.updateProductSetPrice(r)},200)},ProductDetailHandler.prototype.resetProductSetPrices=function(){this.scope.addToCartData.hasItemsToAdd=!1,this.scope.productData.price.baseValueWithTax=0,this.scope.productData.price.baseValueWithoutTax=0,this.scope.productData.price.valueWithTax=0,this.scope.productData.price.valueWithoutTax=0,this.scope.productData.price.hasDifferentPrices=!1,this.scope.productData.storePrice&&(this.scope.productData.storePrice.baseValueWithTax=0,this.scope.productData.storePrice.baseValueWithoutTax=0,this.scope.productData.storePrice.valueWithTax=0,this.scope.productData.storePrice.valueWithoutTax=0,this.scope.productData.storePrice.hasDifferentPrices=!1),this.scope.productData.mergedPrice.baseValueWithTax=0,this.scope.productData.mergedPrice.baseValueWithoutTax=0,this.scope.productData.mergedPrice.valueWithTax=0,this.scope.productData.mergedPrice.valueWithoutTax=0,this.scope.productData.mergedPrice.hasDifferentPrices=!1,this.scope.productData.stock={minQuantity:0,maxQuantity:1,step:1}},ProductDetailHandler.prototype.consolidateProductSetCartBoxData=function(e,t){t.shippingCategories.allowed&&!t.shippingCategories.disabled&&(e.cartBox.shippingCategories?(t.shippingCategories.allowed=e.cartBox.shippingCategories.allowed,t.shippingCategories.disabled=e.cartBox.shippingCategories.disabled):(t.shippingCategories.allowed=!1,t.shippingCategories.disabled=!0),t.allCategories.allowed=e.cartBox.allCategories.allowed,t.allCategories.disabled=e.cartBox.allCategories.disabled),t.storeCategories.allowed&&!t.storeCategories.disabled&&(e.cartBox.storeCategories?(t.storeCategories.allowed=e.cartBox.storeCategories.allowed,t.storeCategories.disabled=e.cartBox.storeCategories.disabled):(t.storeCategories.allowed=!1,t.storeCategories.disabled=!0),t.allCategories.allowed=e.cartBox.allCategories.allowed,t.allCategories.disabled=e.cartBox.allCategories.disabled)},ProductDetailHandler.prototype.updateProductSetPrice=function(e){var t=this,a={skuQuantities:e,webStoreId:this.scope.parameters.webStoreId,storeId:this.scope.parameters.storeId,billingAreaId:this.scope.parameters.billingAreaId,zone:this.scope.parameters.zone};t.scope.productData.price&&t.scope.productData.price.options&&delete t.scope.productData.price.options.discountDetail,t.scope.productData.storePrice&&t.scope.productData.storePrice.options&&delete t.scope.productData.storePrice.options.discountDetail,t.scope.productData.mergedPrice&&t.scope.productData.mergedPrice.options&&delete t.scope.productData.mergedPrice.options.discountDetail;this.AjaxAPI.getData("Rbs/Catalog/EstimatePriceForSkuQuantities",a,{}).then(function(e){var a=e.data.dataSets||{};a.webStoreData&&a.webStoreData.totalAmounts&&(t.scope.productData.price.currencyCode=
1a.webStoreData.totalAmounts.currencyCode,t.scope.productData.price.baseValueWithTax=a.webStoreData.totalAmounts.baseValueWithTax,t.scope.productData.price.baseValueWithoutTax=a.webStoreData.totalAmounts.baseValueWithoutTax,t.scope.productData.price.valueWithTax=a.webStoreData.totalAmounts.valueWithTax,t.scope.productData.price.valueWithoutTax=a.webStoreData.totalAmounts.valueWithoutTax,t.scope.productData.price=angular.copy(t.scope.productData.price)),a.storeData&&a.storeData.totalAmounts&&(t.scope.productData.storePrice.currencyCode=a.storeData.totalAmounts.currencyCode,t.scope.productData.storePrice.baseValueWithTax=a.storeData.totalAmounts.baseValueWithTax,t.scope.productData.storePrice.baseValueWithoutTax=a.storeData.totalAmounts.baseValueWithoutTax,t.scope.productData.storePrice.valueWithTax=a.storeData.totalAmounts.valueWithTax,t.scope.productData.storePrice.valueWithoutTax=a.storeData.totalAmounts.valueWithoutTax,t.scope.productData.storePrice=angular.copy(t.scope.productData.storePrice)),a.mergedData&&a.mergedData.totalAmounts&&(t.scope.productData.mergedPrice.currencyCode=a.mergedData.totalAmounts.currencyCode,t.scope.productData.mergedPrice.baseValueWithTax=a.mergedData.totalAmounts.baseValueWithTax,t.scope.productData.mergedPrice.baseValueWithoutTax=a.mergedData.totalAmounts.baseValueWithoutTax,t.scope.productData.mergedPrice.valueWithTax=a.mergedData.totalAmounts.valueWithTax,t.scope.productData.mergedPrice.valueWithoutTax=a.mergedData.totalAmounts.valueWithoutTax,t.scope.productData.mergedPrice.hasDifferentPriceForStore=!!a.mergedData.hasDifferentPriceForStore,t.scope.productData.mergedPrice=angular.copy(t.scope.productData.mergedPrice))},function(e){console.error("Rbs/Catalog/EstimatePriceForSkuQuantities",e)}),this.scope.productData.price.valueWithTax===this.scope.productData.price.baseValueWithTax&&(this.scope.productData.price.baseValueWithTax=null),this.scope.productData.price.valueWithoutTax===this.scope.productData.price.baseValueWithoutTax&&(this.scope.productData.price.baseValueWithoutTax=null)},ProductDetailHandler.prototype.refreshSetItem=function(){var e=this.scope.productData;if(e&&e.cartBox.allCategories.allowed){var t=e.cartBox;t.allCategories=t.allCategories||{allowed:!1},t.shippingCategories=t.shippingCategories||{allowed:!1},t.storeCategories=t.storeCategories||{allowed:!1},t.quantity=t.quantity||e.stock.minQuantity,this.scope.cartBox=t}},ProductDetailHandler.prototype.initQuantity=function(){this.scope.isSelect=!0;var e="add-to-web-cart-quantity-select-"+this.scope.productData.common.id,t=document.getElementById(e),a=document.getElementById("maxValueShown"),o=this;if(t){var r=function(){var e;a&&o.scope.cartBox.quantity===parseInt(a.value)?((e=t).className=e.className+" hidden",o.scope.isSelect=!1):t.value=o.scope.cartBox.quantity,o.scope.$apply()};t.onchange=function(){o.scope.cartBox.quantity=parseInt(t.value),r()},window.setTimeout(r)}},ProductDetailHandler.prototype.populateAddProductData=function(e){var t=e.lines[0];angular.forEach(this.scope.itemsToAdd,function(a){var o=angular.extend({},t,{productId:a.common.id,quantity:a.cartBox.quantity||0});e.lines.push(o)})},function(){"use strict";var e=angular.module("RbsChangeApp"),t="RbsCatalogProductDetail.updateAxesValues";e.controller("RbsCatalogProductDetail",["$scope","$element","$attrs","$rootScope","$compile","$location","$http","RbsChange.AjaxAPI","RbsChange.ModalStack","RbsChange.ProductService",function(e,a,o,r,n,i,s,c,l,d){e.productData=e.blockData,e.cartBox=e.productData.cartBox||{},e.cartBox.quantity=e.productData.stock.minQuantity,new ProductDetailHandler(e,a,l,d).initProductDetailScope(),e.rootElement=a;var u="set"===o.productType;e.showProductInformation=function(e,t){e&&e.preventDefault(),r.$broadcast("showProductInformation",{name:t})};var p=o.reviewsUrl;function m(){if(e.blockParameters.handleReviews){if(p)return s.get(p).then(function(t){c.replaceElementContent(a.find(".reviews-panel"),t.data,e)},function(e){console.error("[RbsCatalogProductDetail] error initiating reviews content:",e)});console.warn("[RbsCatalogProductDetail] No reviewsURL for product.")}}function g(t){c.reloadBlock(e.blockName,e.blockId,t,e.blockNavigationContext).then(function(t){var o=jQuery(jQuery.parseHTML(t.data.dataSets.html));e.productData=JSON.parse(o.filter(".data-container").text()),e.addToCartAvailabilityError=!1,c.replaceElementContent(a.find(".product-content"),o.filter(".product-content").html(),e),m()},function(e){console.error("[RbsCatalogProductDetail] error reloading block:",e)})}m(),e.$on(t,function(t,a){if(a.contextKey===e.blockParameters.contextKey&&(e.currentDisplayedDocumentId=a.variantId,e.currentSelectedAxesValues=a.axesValues,!u)){var o=angular.copy(e.blockParameters);o.documentIdWithReviews=0!==o.variantId?o.variantId:o.toDisplayDocumentId,o.toDisplayDocumentId=e.currentDisplayedDocumentId,o.selectedAxesValues=e.currentSelectedAxesValues,g(o)}}),r.$on("cartBoxModalClosed",function(t,a){e.addToCartAvailabilityError&&g(angular.copy(e.blockParameters))}),r.$on("rbsRefreshCart",function(t,a){if(!u){let t=angular.copy(e.blockParameters);t.toDisplayDocumentId=e.currentDisplayedDocumentId,t.selectedAxesValues=e.currentSelectedAxesValues,g(t)}}),r.$on("productDetailToReload",function(t,a){if(!u){let t=angular.copy(e.blockParameters);t.toDisplayDocumentId=e.currentDisplayedDocumentId,t.selectedAxesValues=e.currentSelectedAxesValues,g(t)}})}]),e.controller("RbsCatalogProductDetailAxes",["$scope","$element","$attrs","$rootScope",function(e,a,o,r){e.updateAxesValues=function(e,a,n,i){r.$broadcast(t,{axesValues:e,variantId:a,contextKey:n,currentId:i,productSetItemIndex:o.productSetItemIndex})},e.updateAxesValuesFromSelect=function(t,a,o,r){var n=t[e[a]];n&&e.updateAxesValues(n.axesValues,n.variantId,o,r)};var n=e.productData.axes;if(n.values.length<n.definitions.length&&1===n.definitions[n.values.length].items.length){var i=n.definitions[n.values.length].items[0];e.updateAxesValues(i.axesValues,i.id,e.blockParameters.contextKey,e.productData.common.id)}}]),e.controller("RbsCatalogProductDetailInformationFlat",["$scope","$element",function(e,t){e.$on("showProductInformation",function(e,a){a.name&&jQuery("html, body").stop().animate({scrollTop:t.find("#"+a.name).offset().top-20},1e3)})}]),e.controller("RbsCatalogProductDetailInformationTabs",["$scope","$element",function(e,t){e.$on("showProductInformation",function(e,a){if(a.name){var o='a[href="#'+a.name+'"]';t.find(o).tab("show"),jQuery("html, body").stop().animate({scrollTop:t.find(o).offset().top-20},1e3)}})}]),e.controller("ProductCartBox",["$rootScope","$scope","$element","$timeout","RbsChange.AjaxAPI","RbsChange.ModalStack","RbsChange.ProductService",function(e,t,a,o,r,n,i){var s=new ProductCartBoxHandler(e,t,r,n,i),c=new ProductDetailHandler(t,a,n,i,r);t.$watch("productData",function(e,a){e!==a&&ProductCartBoxHandler.checkCapabilities(t,e)}),"single"===t.$parent.parameters.addToCartButtonType&&a.closest(".modal-content").length>0&&angular.forEach(a.find(".add-to-cart"),function(e){e.classList.remove("col-lg-6")}),ProductCartBoxHandler.checkCapabilities(t,t.productData),c.initQuantity(),t.addShippingCategoriesProduct=function(){return s.addShippingCategoriesProduct()}
1,t.addStoreCategoriesProduct=function(){return s.addStoreCategoriesProduct()},t.selectStore=function(e){s.selectStore(e)},t.addProductExtended=function(e){return s.addProductExtended(e)},t.buttonTitle=function(e){return s.buttonTitle(e)},t.singleButtonAddProduct=function(){return s.addProductBasedOnAvailableCategories()},t.isSingleButtonDisabled=function(){return s.isSingleButtonDisabled()},t.$on("rbsCartBoxStoreSelected",function(e,o){var n=t.parameters;n.storeId=o.common.id,t.currentDisplayedDocumentId&&(n.toDisplayDocumentId=t.currentDisplayedDocumentId),t.currentSelectedAxesValues&&(n.selectedAxesValues=t.currentSelectedAxesValues),(n=angular.copy(n)).consolidatedProductData=t.productData,n.renderPart="cart-box",r.reloadBlock(t.blockName,t.blockId,n,t.blockNavigationContext).then(function(e){var o=jQuery(jQuery.parseHTML(e.data.dataSets.html));r.replaceElementContent(a.find(".add-to-cart-store"),o.find(".add-to-cart-store").html(),t)},function(e){console.error("[ProductCartBox] error reloading block:",e)})});var l=null;t.$on("reloadCartBox",function(e,n){l&&o.cancel(l),l=o(function(){l=null,r.reloadBlock(t.blockName,t.blockId,n,t.blockNavigationContext).then(function(e){var o=jQuery(jQuery.parseHTML(e.data.dataSets.html));r.replaceElementContent(a.find(".cart-box-content"),o.find(".cart-box-content").html(),t)},function(e){console.error("[ProductCartBox] error reloading block:",e)})},200)})}]),e.controller("ProductSetController",["$scope","$element","$attrs","$rootScope","RbsChange.ProductService","RbsChange.ModalStack","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){e.itemsToAdd=[],e.addToCartData={},e.checkedItems={},angular.forEach(e.productData.productSet.products,function(t){e.checkedItems["i"+t.common.id]=!!(t.stock&&t.stock.sku&&t.cartBox&&!1===t.cartBox.allCategories.disabled)}),e.updateCheckedItem=function(t,a,o){e.checkedItems["i"+o]?e.itemsToAdd[a]=t:delete e.itemsToAdd[a],s.refreshData();var r=angular.copy(e.parameters);r.consolidatedProductData=e.productData,r.renderPart="cart-box",r.tTL=0,e.$broadcast("reloadCartBox",r)},e.refreshHandlerData=function(){s.refreshData()};var s=new ProductDetailHandler(e,t,n,r,i),c=new ProductCartBoxHandler(o,e,i,n,r);s.initProductDetailScope(),s.refreshData();var l=e.getStoreAvailabilityModalOption;e.getStoreAvailabilityModalOption=function(t,a){var o=l(t,a);return o.resolve.skuQuantities=function(){return e.productData.cartBox.skuQuantities},o},e.populateAddProductData=function(e){return s.populateAddProductData(e)},e.onAddProductSuccess=function(e){return c.onAddProductSuccess(e)},e.addShippingCategoriesProduct=function(){return c.addShippingCategoriesProduct()},e.addStoreCategoriesProduct=function(){return c.addStoreCategoriesProduct()},e.addProductExtended=function(e){return c.addProductExtended(e)},e.buttonTitle=function(e){return c.buttonTitle(e)}}]),e.controller("ProductSetItemController",["$scope","$element","$attrs","$rootScope","RbsChange.ProductService","RbsChange.ModalStack","RbsChange.AjaxAPI",function(e,a,o,r,n,i,s){e.productData=e.productData.productSet.products[o.index]||{};var c=e.productData.common.id,l=e.productData.common.id,d=[],u=new ProductDetailHandler(e,a,i,n,s);u.refreshSetItem(),u.initQuantity(),e.$watch("checkedItems.i"+c,function(){e.updateCheckedItem(e.productData,o.index,c)}),e.$watch("cartBox.quantity",function(t,a){t&&t!==a&&e.checkedItems["i"+c]&&e.refreshHandlerData()}),e.$on("rbsCartBoxStoreSelected",function(e,t){p(t.common.id)}),r.$on("productDetailToReload",function(e){p()});var p=function(t){var r=angular.copy(e.blockParameters);r.toDisplayDocumentId=l,r.selectedAxesValues=d,r.renderPart="variant-in-product-set",r.itemId=c,r.storeId=t||e.blockParameters.storeId,r.productSetItemIndex=o.index,s.reloadBlock(e.blockName,e.blockId,r,e.blockNavigationContext).then(function(r){var n=jQuery(jQuery.parseHTML(r.data.dataSets.html));e.productData=JSON.parse(n.filter(".data-container").text()),e.checkedItems["i"+c]&&(e.itemsToAdd[o.index]=e.productData,e.productData.cartBox.quantity=e.cartBox.quantity),t||(e.productData.cartBox&&!1===e.productData.cartBox.allCategories.disabled?e.checkedItems["i"+c]?e.updateCheckedItem(e.productData,o.index,c):e.checkedItems["i"+c]=!0:e.checkedItems["i"+c]=!1),s.replaceElementContent(a.find(".product-set-item-container"),n.filter(".product-set-item-container").html(),e),u.refreshSetItem(),u.initQuantity(),e.checkedItems["i"+c]&&e.refreshHandlerData()},function(e){console.error("[RbsCatalogProductDetail] error reloading block:",e)})};e.$on(t,function(t,a){a.contextKey===e.blockParameters.contextKey&&a.productSetItemIndex===o.index&&(l=a.variantId,d=a.axesValues,p())})}])}(),ProductCartBoxHandler.emptyCartBox={shippingCategories:{allowed:!1},storeCategories:{allowed:!1},allCategories:{allowed:!1},handleStorePrices:!1},ProductCartBoxHandler.prototype.addShippingCategoriesProduct=function(){return this.addProduct(this.scope.productData,"shippingCategories")}
1,ProductCartBoxHandler.prototype.addStoreCategoriesProduct=function(){return this.addProduct(this.scope.productData,"storeCategories")},ProductCartBoxHandler.prototype.addProductBasedOnAvailableCategories=function(){let e=this.scope.blockParameters.singleButtonDefaultShippingMode,t=this.scope.cartBox.shippingCategories,a=this.scope.cartBox.storeCategories,o=this.scope.cartBox.capabilities;if("atHome"===e){if(t.allowed)return this.addProduct(this.scope.productData,"shippingCategories");if(a.allowed){if(o.storeDelivery)return this.addProduct(this.scope.productData,"store");if(o.reservationDelivery)return this.addProduct(this.scope.productData,"reservation")}}else if("store"===e){if(a.allowed&&a.storeId>0){if(o.storeDelivery&&a.hasStoreStock)return this.addProduct(this.scope.productData,"store");if(o.reservationDelivery&&a.hasStoreStock)return this.addProduct(this.scope.productData,"reservation")}if(t.allowed&&(t.hasStock||t.restockDate))return this.addProduct(this.scope.productData,"shippingCategories")}else console.error('Single add-to-cart button error: unknown default shipping mode "'+e+'"')},ProductCartBoxHandler.prototype.onAddProductSuccess=function(e){var t=null,a=null,o=e.data.items;if(o&&o.length>1)angular.forEach(o,function(e){!t&&e.categories&&(t=e.categories)}),t&&this.openExtendedCartBoxModal(t);else{var r=e.data.dataSets;r&&r.linesAdded&&r.linesAdded.length&&(angular.forEach(r.linesAdded,function(e){!a&&e.successModalURL&&(a=e.successModalURL)}),a&&this.openAddedToCartModal(a+"&itemCount="+r.linesAdded.length))}},ProductCartBoxHandler.prototype.addProduct=function(e,t){var a=this,o=this.scope,r=this.buildAddProductData(t,e);return r.addToCartButtonType=o.$parent.parameters.addToCartButtonType??"multiple",r.singleButtonDefaultShippingMode=o.$parent.parameters.singleButtonDefaultShippingMode??"atHome",this.ProductService.addToCart(r).then(function(e){var t,r,n;angular.isFunction(o.onAddProductSuccess)?o.onAddProductSuccess(e):(n=e.data.items)&&n.length?(t=n[0]).categories&&a.openExtendedCartBoxModal(t.categories):(r=e.data.dataSets)&&r.linesAdded&&r.linesAdded.length&&(t=r.linesAdded[0]).successModalURL&&a.openAddedToCartModal(t.successModalURL)},function(e){angular.isFunction(o.onAddProductError)?o.onAddProductError(e):"ADD_TO_CART_UNAVAILABLE"===e.data.code&&(o.$parent.addToCartAvailabilityError=!0,ProductCartBoxHandler.extendedCartBoxModal||a.openExtendedCartBoxModal([t]))})},ProductCartBoxHandler.prototype.buildExtendedCartBoxModalContext=function(e){this.scope.extendedCartBox=e,this.scope.extendedCartBox.dualColumns=e.storeCategories&&e.storeCategories.allowed&&e.shippingCategories&&e.shippingCategories.allowed,this.scope.extendedCartBox.dualStore=!(!e.hasOwnProperty.store||!e.hasOwnProperty.reservation);var t={templateUrl:"/rbs-catalog-cart-box-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-cart-box",windowClass:"modal-rbs-catalog-cart-box",scope:this.scope};return this.scope.extendedCartBox.dualColumns&&(t.size="lg"),t},ProductCartBoxHandler.prototype.openExtendedCartBoxModal=function(e){var t=this.buildExtendedCartBoxModalContext(e);ProductCartBoxHandler.extendedCartBoxModal=this.ModalStack.open(t);let a=this.rootScope;ProductCartBoxHandler.extendedCartBoxModal.result.then(function(){a.$emit("cartBoxModalClosed"),ProductCartBoxHandler.extendedCartBoxModal=null},function(){a.$emit("cartBoxModalClosed"),ProductCartBoxHandler.extendedCartBoxModal=null})},ProductCartBoxHandler.prototype.buildAddedToCartModalContext=function(e){return this.scope.modalContentUrl=e,{templateUrl:"/rbs-catalog-add-to-cart-confirmation-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-add-to-cart-confirmation",windowClass:"modal-rbs-catalog-add-to-cart-confirmation",scope:this.scope}},ProductCartBoxHandler.prototype.openAddedToCartModal=function(e){var t=this.buildAddedToCartModalContext(e);let a=this.ModalStack.open(t),o=this.rootScope;a.result.then(function(){o.$emit("productDetailToReload")},function(){o.$emit("productDetailToReload")})},ProductCartBoxHandler.prototype.buildAddProductData=function(e,t){var a={productId:t.common.id,category:e||"allCategories",successModal:{pageFunction:"Rbs_Catalog_ProductAddedToCart",themeName:this.AjaxAPI.getThemeName()}};null!=this.scope.cartBox.quantity&&(a.quantity=this.scope.cartBox.quantity),this.scope.cartBox.storeCategories&&(a.storeId=this.scope.cartBox.storeCategories.storeId||0);var o={lines:[a]};return angular.isFunction(this.scope.populateAddProductData)&&this.scope.populateAddProductData(o),o},ProductCartBoxHandler.prototype.selectStore=function(e){this.scope.selectStoreForReservation=e;var t=this,a=this.scope.getStoreAvailabilityModalOption(function(e){return t.onCartBoxSelectStore(e)},e);this.ModalStack.open(a)},ProductCartBoxHandler.prototype.onCartBoxSelectStore=function(e){var t=this.scope.cartBox&&this.scope.cartBox.storeCategories;if(t&&(t.stock=e.storeShipping.stock,t.storeId=e.common.id,t.storeTitle=e.common.title,t.pickUpDateTime=t.formattedPickUpDateTime=null,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice?
1(t.pickUpDateTime=e.storeShipping.pickUpDateTime,t.formattedPickUpDateTime=e.storeShipping.formattedPickUpDateTime,this.scope.cartBox.storeCategories.oldCountStoresWithStock=t.countStoresWithStock,t.countStoresWithStock=0):angular.isDefined(this.scope.cartBox.storeCategories.oldCountStoresWithStock)&&(t.countStoresWithStock=this.scope.cartBox.storeCategories.oldCountStoresWithStock),t.disabled=!1,e.totalPrice&&(t.disabled=!e.totalPrice.hasPrice&&!e.totalPrice.hasStorePrice,this.scope.productData&&(this.scope.productData.storePrice={},this.scope.productData.mergedPrice.hasDifferentPriceForStore=!1,e.totalPrice.hasStorePrice&&(this.scope.productData.storePrice=e.totalPrice,this.scope.productData.mergedPrice.hasDifferentPriceForStore=this.scope.productData.price.valueWithTax!==e.totalPrice.valueWithTax))),t.stock&&t.stock.available&&(this.scope.cartBox.storeCategories.hasStoreStock=!0),this.scope.cartBox.allCategories&&(this.scope.cartBox.allCategories.disabled=t.disabled)),t=this.scope.extendedCartBox&&this.scope.extendedCartBox.storeCategories){t.storeId=e.common.id,t.storeTitle=e.common.title;var a=this.scope.extendedCartBox.store;a&&a.allowed&&e.storeShipping.storePickUpDateTime&&(a.storeId=t.storeId,a.storeTitle=t.storeTitle,a.pickUpDateTime=a.formattedPickUpDateTime=null,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice?(a.pickUpDateTime=e.storeShipping.pickUpDateTime,a.formattedPickUpDateTime=e.storeShipping.formattedPickUpDateTime,this.scope.cartBox.storeCategories.oldCountStoresWithStock=a.countStoresWithStock,a.countStoresWithStock=0):angular.isDefined(this.scope.cartBox.storeCategories.oldCountStoresWithStock)&&(a.countStoresWithStock=this.scope.cartBox.storeCategories.oldCountStoresWithStock),a.disabled=!a.pickUpDateTime,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice||(a.disabled=!0)),(a=this.scope.extendedCartBox.reservation)&&a.allowed&&e.storeShipping.reservationPickUpDateTime&&(a.storeId=t.storeId,a.storeTitle=t.storeTitle,a.pickUpDateTime=a.formattedPickUpDateTime=null,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice?(a.pickUpDateTime=e.storeShipping.reservationPickUpDateTime,a.formattedPickUpDateTime=e.storeShipping.reservationFormattedPickUpDateTime,this.scope.cartBox.storeCategories.oldCountStoresWithStock=a.countStoresWithStock,a.countStoresWithStock=0):angular.isDefined(this.scope.cartBox.storeCategories.oldCountStoresWithStock)&&(a.countStoresWithStock=this.scope.cartBox.storeCategories.oldCountStoresWithStock),a.disabled=!a.pickUpDateTime,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice||(a.disabled=!0))}this.rootScope.$broadcast("rbsCartBoxStoreSelected",e),this.scope.onSelectStore(e)},ProductCartBoxHandler.checkCapabilities=function(e,t){if(t&&t.cartBox&&(e.cartBox.shippingCategories||e.cartBox.storeCategories)){var a=e.cartBox&&e.cartBox.quantity;e.cartBox=t.cartBox,e.cartBox.minQuantity=t.stock.minQuantity,e.cartBox.step=t.stock.step,e.cartBox.maxQuantity=t.stock.maxQuantity,e.parameters.showQuantity&&(e.cartBox.quantity=a||e.cartBox.minQuantity),e.cartBox.shippingCategories||(e.cartBox.shippingCategories={allowed:!1}),e.cartBox.storeCategories||(e.cartBox.storeCategories={allowed:!1})}else e.cartBox=ProductCartBoxHandler.emptyCartBox},ProductCartBoxHandler.prototype.addProductExtended=function(e){return"store"===e?this.scope.extendedCartBox&&this.scope.extendedCartBox.store&&(this.scope.cartBox.storeCategories.storeId=this.scope.extendedCartBox.store.storeId):"reservation"===e&&this.scope.extendedCartBox&&this.scope.extendedCartBox.reservation&&(this.scope.cartBox.storeCategories.storeId=this.scope.extendedCartBox.reservation.storeId),this.addProduct(this.scope.productData,e)},ProductCartBoxHandler.prototype.buttonTitle=function(e){return e&&e.button?e.disabled&&e.disabledButton?e.disabledButton:!e.disabled&&e.restockButton&&this.isCategoryDataInRestockingMode(e)?e.restockButton:e.button:""},ProductCartBoxHandler.prototype.isCategoryDataInRestockingMode=function(e){var t=this.scope.cartBox&&this.scope.cartBox.allCategories===e,a=this.scope.cartBox&&this.scope.cartBox.shippingCategories&&"RESTOCKING"===this.scope.cartBox.shippingCategories.stock.threshold;return!!(e.restockDate||t&&a)},ProductCartBoxHandler.prototype.isSingleButtonDisabled=function(){let e=this.scope.blockParameters.singleButtonDefaultShippingMode,t=this.scope.cartBox.shippingCategories,a=this.scope.cartBox.storeCategories;if("atHome"===e){let e=!t.allowed||t.disabled||(t.disabled||t.allowed)&&!t.hasStock&&!t.restockDate,o=!a.allowed||a.allowed&&!a.hasStoreStock;return e&&o}return"store"===e&&((!a.allowed||a.disabled)&&(!t.allowed||t.disabled)||a.allowed&&0===a.storeId||a.allowed&&!a.hasStoreStock&&(!t.allowed||t.allowed&&!t.hasStock&&!t.restockDate))},function(e){"use strict";var t=angular.module("RbsChangeApp");t.directive("rbsCatalogProductsListV3",["RbsChange.AjaxAPI","$location","$rootScope","$timeout","$compile","$window",function(t,a,o,r,n,i){return{restrict:"A",link:function(s,c,l){var d=s.blockId;s.loading=!1,s.paginationMode=l.paginationMode||"default",s.parameters=s.blockParameters,s.parameters.blockId=d,s.wishlistAlerts={},s.userId=__change.userContext.accessorId,s.productInWishlist={};var u=s.blockData;function p(){return s.loading=!0,b(s.contextData.parameters.pageNumber+1),t.reloadBlock(s.blockName,s.blockId,s.contextData.parameters,s.blockNavigationContext).then(function(t){m(t.data.dataSets.html,!1);var a=e(e.parseHTML(t.data.dataSets.html));angular.forEach(JSON.parse(a.filter(".data-container").text()).productIds,function(e){s.productIds.push(e)}),s.parameters.enableWishlist&&v(s.productIds,s.userId,s.contextData.webStoreId),r(function(){s.loading=!1})},function(e){console.error("[rbsCatalogProductsListV3] error reloading block:",e),b(s.contextData.parameters.pageNumber-1),s.loading=!1})}function m(t,a){var o="product-list-"+s.contextData.parameters.pageNumber,r=e(e.parseHTML(t)).filter(".items").html();a?c.find(".product-list").html('<div class="'+o+'">'+r+"</div>"):c.find(".product-list").append('<div class="'+o+'">'+r+"</div>"),n(c.find("."+o))(s);var i=e(e.parseHTML(t)).filter(".pagination").html();c.find(".pagination").html(i),n(c.find(".pagination"))(s)}if(s.contextData=u.context.data,s.contextData.layout={name:s.blockName,id:s.parameters.blockId},s.contextData.parameters=angular.copy(s.parameters),s.contextData.parameters.pageNumber=u.pagination.pageNumber,delete s.contextData.parameters.forceClassicPagination,s.context={URLFormats:u.context.URLFormats,visualFormats:s.parameters.imageFormats,dataSetNames:s.parameters.dataSetNames,cacheTTL:s.parameters.tTL||s.parameters.TTL},s.productIds=u.productIds,s.parameters.enableWishlist&&v(s.productIds,s.userId,s.contextData.webStoreId),s.sortBy=function(e){s.contextData.parameters.sortBy=e,a.search("sortBy-"+d,e),b(1),s.reload("sortBy")},o.$on("RbsElasticsearchFacetFilters",function(e,t){t.facetFilters||(t.facetFilters=[]),s.contextData.parameters.facetFilters=t.facetFilters,s.contextData.parameters.searchText=t.searchText||null,s.contextData.parameters.webStoreStockFilter=t.webStoreStockFilter||null,s.contextData.parameters.storeStockFilter=t.storeStockFilter||null,s.contextData.announcementData&&(s.contextData.parameters.decoratorId=t.decoratorId||0),b(1),s.reload(t.instantSearch?"instantSearch":"facetFilters")}),o.$on("RbsElasticsearchSearchText",function(e,t){!!s.contextData.listId||void 0!==t.resultFunction&&s.contextData.resultFunction!==t.resultFunction||(t.redirect=!1,s.c
1ontextData.parameters.searchText!==t.searchText&&(s.contextData.parameters.searchText=t.searchText||null,b(1),s.reload(t.instantSearch?"instantSearch":"searchText")))}),s.reload=function(a){var o="instantSearch"!==a;o&&t.openWaitingModal();var r=t.reloadBlock(s.blockName,s.blockId,s.contextData.parameters,s.blockNavigationContext);return r.then(function(a){m(a.data.dataSets.html,!0);var r=e(e.parseHTML(a.data.dataSets.html));s.productIds=JSON.parse(r.filter(".data-container").text()).productIds,s.parameters.enableWishlist&&v(s.productIds,s.userId,s.contextData.webStoreId),o&&t.closeWaitingModal()},function(e){console.error("[rbsCatalogProductsListV3] error reloading block:",e),o&&t.closeWaitingModal()}),r},s.onPaginationLinkClick=function(e){e.originalEvent.stopPropagation(),e.originalEvent.preventDefault(),s.changingPage||(s.changingPage=!0,"classic"===s.paginationMode&&(b(parseInt(e.target.getAttribute("data-page-number"),10)),s.reload().then(function(){s.changingPage=!1},function(){s.changingPage=!1})))},s.addMoreProducts=function(){s.loading||"infinite-click"===s.paginationMode&&p()},"infinite-click"===s.paginationMode&&u.pagination.pageCount>1){var g=a.search(),f=Math.min(g["page-"+d]||1,u.pagination.pageCount),h=g.position;!function t(){if(f>s.contextData.parameters.pageNumber)p().then(t);else{e("html, body").animate({scrollTop:h},1e3);var o=!1,n=angular.element(i);n.on("scroll",function(){o||(o=!0,r(function(){o=!1},500),navigator.userAgent.match(/.+compatible; Google-Read-Aloud;.+/i)||a.search("position",n.scrollTop()).replace(),s.$apply())})}}()}function b(e){s.contextData.parameters.pageNumber=e;var t="classic"===s.paginationMode?"pageNumber":"page",o=s.contextData.parameters.pageNumber>1?s.contextData.parameters.pageNumber:null;a.search(t+"-"+d,o).replace()}function v(e,a,o){a&&t.postData("Rbs/Catalog/ProductList/InUserWishlists",{productIds:e,webStoreId:o,userId:a}).then(function(e){s.productInWishlist=e.data.dataSets},function(e){console.error("Rbs/Catalog/ProductList/InUserWishlists",e)})}}}}]),t.directive("rbsCatalogProductListItemAddToCartButtonsV3",["RbsChange.ModalStack",function(e){return{restrict:"A",scope:!0,link:function(t,a,o){t.openDialog=function(){var t={templateUrl:"/rbs-catalog-quick-buy-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-quick-buy",windowClass:"modal-rbs-catalog-quick-buy",size:"lg",controller:"RbsCatalogQuickBuyModalCtrl",resolve:{quickBuyURL:function(){return o.quickBuyUrl}}};e.open(t)}}}}]),t.directive("rbsCatalogProductListWishlist",["RbsChange.AjaxAPI","$http","RbsChange.ModalStack",function(e,t,a){return{restrict:"E",templateUrl:"/rbs-catalog-product-list-wishlist.twig",scope:{parameters:"<",wishlistAlerts:"=",isProductInWishlist:"<"},link:function(o,r,n){o.parameters=o.$parent.parameters,o.productId=n.productId,o.webStoreId=o.parameters.webStoreId,o.userId=__change.userContext.accessorId,o.addNewWishlist=function(){o.reset(),o.newWishlist={public:!1,userId:o.userId,storeId:o.webStoreId,productIds:[o.productId]};var e={templateUrl:"/rbs-catalog-add-wishlist-popin.twig",backdropClass:"modal-backdrop-rbs-catalog-add-wishlist-popin",windowClass:"modal-rbs-catalog-add-wishlist-popin",size:"md",scope:o};o.modalInstance=a.open(e)},o.confirmNewWishlist=function(){angular.isObject(o.newWishlist)&&t.post("Action/Rbs/Wishlist/AddWishlist",{title:o.newWishlist.title,public:!1,userId:o.newWishlist.userId,storeId:o.newWishlist.storeId,productIds:o.newWishlist.productIds}).then(function(e){o.addWishlistSuccess=!0,o.isProductInWishlist=!0,o.updateAlerts(e)},function(e){o.error=e.data.error,o.updateAlerts(e)})},o.addToWishlist=function(e){t.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:e,userId:o.userId,productIdsToAdd:[o.productId]}).then(function(e){o.isProductInWishlist=!0,o.updateAlerts(e)},function(e){o.updateAlerts(e)})},o.updateAlerts=function(e){o.wishlistAlerts.successMessage=e.data.success,o.wishlistAlerts.warning=e.data.warnings,o.wishlistAlerts.error=e.data.error},o.getUserWishlists=function(){o.displayList=!1,e.getData("Rbs/Catalog/ProductList/UserWishlists",{productId:o.productId,webStoreId:o.webStoreId,userId:o.userId}).then(function(e){o.wishlists=e.data.dataSets,o.displayList=!0},function(e){o.displayList=!0,console.error("Rbs/Catalog/ProductList/UserWishlist",e)})},o.closeModal=function(){o.reset(),o.modalInstance.close()},o.reset=function(){o.addWishlistSuccess=!1,o.error=!1}}}}])}(jQuery),function(e){"use strict";var t=angular.module("RbsChangeApp");t.controller("RbsCatalogQuickBuyModalCtrl",["$scope","quickBuyURL",function(e,t){e.quickBuyURL=t}]),t.directive("rbsCatalogQuickBuyModal",["$http","$compile",function(e,t){return{restrict:"A",link:function(a,o){var r=a.quickBuyURL;r?(a.modalContentMode="loading",e.get(r).then(function(e){var r=".modal-main-content";o.find(r).replaceWith('<div class="modal-main-content">'+e.data+"</div>"),t(o.find(r).contents())(a),a.modalContentMode="success"},function(e){a.modalContentMode="error",console.error("Can't load modal content:",e)})):(a.modalContentMode="error",console.warn("No quickBuyURL for product."))}}}]),t.controller("RbsCatalogProductItemController",["$scope","$element","RbsChange.AjaxAPI",function(e,t,a){e.productData={},e.parameters={};var o=t.attr("data-cache-key");o&&(e.productData=a.globalVar(o));e.viewDetailTitleMask=t.attr("data-view-detail-title-mask")||"PRODUCT_TITLE",(o=t.attr("data-block-cache-key"))&&(e.parameters=a.getBlockParameters(o))}]),t.directive("rbsCatalogProductItem",["RbsChange.ProductService",function(e){return{restrict:"A",templateUrl:"/rbs-catalog-product-item.twig",link:function(t){var a=t.productData;if(t.pictograms=null,t.url=null,t.visual=null,t.viewDetailTitle=null,a&&a.common){t.viewDetailTitle=t.viewDetailTitleMask.replace("PRODUCT_TITLE",a.common.title),t.pictograms=e.extractPictogram(a);var o=t.blockParameters;t.animations=e.extractAnimations(a,o&&o.showAnimationPictogram),t.url=e.extractURL(a),t.visuals=e.extractVisuals(a),t.visuals&&t.visuals.length&&(t.visual=t.visuals[0]),t.addToCart=function(t){return e.addToCart(t)}}}}}]),t.directive("rbsCatalogAnnouncementItem",function(){return{restrict:"A",templateUrl:"/rbs-catalog-announcement-item.twig",link:function(e){e.announcementData=e.productData}}}),t.directive("rbsCatalogProductListItemAddToCartButtons",["RbsChange.ModalStack","RbsChange.ProductService",function(e,t){return{restrict:"A",link:function(a){a.openDialog=function(){var t={templateUrl:"/rbs-catalog-quick-buy-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-quick-buy",windowClass:"modal-rbs-catalog-quick-buy",size:"lg",controller:"RbsCatalogQuickBuyModalCtrl",resolve:{quickBuyURL:function(){return a.productData.common.quickBuyURL}}};e.open(t)},a.quickBuyEnabled=!1,a.detailURL="";var o=a.productData;function r(e){var t=a.parameters.quickBuyOnSimple,o=a.parameters.quickBuyOnVariant;if(!(e&&e.common.quickBuyURL&&e.cartBox))return!1;if(e.cartBox.allCategories.allowed){if("simple"===e.common.type&&t)return!0;
1if("variant"===e.common.type&&o)return!0}else if("variant"===e.common.type&&o)return!0;return!1}o?(a.quickBuyEnabled=r(o),a.detailURL=o?t.extractURL(o,o.rootProduct):""):a.$watch("productData",function(e){e&&(a.quickBuyEnabled=r(e),a.detailURL=e?t.extractURL(e,e.rootProduct):"")})}}}]),t.directive("rbsCatalogProductsListSlider",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-catalog-products-list-slider.twig",scope:{blockId:"=",blockParameters:"=",blockData:"="},controller:["$scope",function(e){e.parameters=e.blockParameters,e.productsData=e.blockData.productsData}],link:function(t,a,o){var r=t.blockParameters.asynchronousMode||!1;t.viewDetailTitleMask=o.viewDetailTitleMask||"PRODUCT_TITLE",t.itemsPerSlide=o.itemsPerSlide||3,t.interval=o.interval||1e3,t.controls={prev:function(e,t){e.preventDefault(),a.find("#"+t).carousel("prev")},next:function(e,t){e.preventDefault(),a.find("#"+t).carousel("next")}},t.slides={size1:[],size2:[],size3:[],size4:[]};var n=[];if(r&&t.blockData.context){var i={product:t.blockParameters.toDisplayDocumentId,csParams:t.blockData.context};e.getData("Rbs/Catalog/CrossSelling",i).then(function(e){angular.forEach(e.data.items,function(e){t.productsData.push(e)}),s()},function(){t.productsData.length=0})}else s();function s(){for(var e=0;e<t.productsData.length;e++)for(var a=0;a<4;a++)e%(a+1)==0&&(n[a]&&t.slides["size"+(a+1)].push(n[a]),n[a]={productsData:[]}),n[a].productsData.push(t.productsData[e]);for(var o=0;o<4;o++)n[o]&&n[o].productsData.length&&t.slides["size"+(o+1)].push(n[o])}}}}]),t.directive("rbsCatalogProductsListV2",["RbsChange.AjaxAPI","$location","$rootScope","$anchorScroll","$timeout","$window",function(t,a,o,r,n,i){return{restrict:"A",templateUrl:"/rbs-catalog-products-list-v2.twig",scope:{blockId:"=",blockParameters:"=",blockData:"="},controller:["$scope","$element",function(s,c){var l=s.blockId;s.loading=!1,s.errorLoading=!1,s.paginationMode=c.attr("data-pagination-mode")||"default",s.useInfiniteScroll="infinite-scroll"===s.paginationMode,s.parameters=s.blockParameters,s.parameters.blockId=l;var d=s.blockData;function u(){if(s.pagination.offset+s.pagination.limit<s.pagination.count){var e=Math.floor(s.context.pagination.offset/s.context.pagination.limit)+2;"infinite-scroll"===s.paginationMode||"infinite-click"===s.paginationMode?s.nextPage=a.path()+"?page-"+l+"="+e:s.nextPage=a.path()+"?pageNumber-"+l+"="+e}else s.nextPage=null}function p(){if(s.pagination.offset>0){var e=Math.floor(s.context.pagination.offset/s.context.pagination.limit)+1;"infinite-scroll"===s.paginationMode||"infinite-click"===s.paginationMode?$('link[rel="canonical"]').attr("href",window.location.origin+window.location.pathname+"?page-"+l+"="+e):$('link[rel="canonical"]').attr("href",window.location.origin+window.location.pathname+"?pageNumber-"+l+"="+e)}else $('link[rel="canonical"]').attr("href",window.location.origin+window.location.pathname)}function m(){return s.context.pagination.offset=s.productsData.length,s.loading=!0,t.getData("Rbs/Catalog/Product/",s.contextData,s.context).then(function(e){s.pagination=e.data.pagination,e.data.pagination.offset===s.productsData.length&&(angular.forEach(e.data.items,function(e){s.productsData.push(e)}),u(),p()),n(function(){s.loading=!1})},function(){s.loading=!1,s.errorLoading=!0})}if(s.productsData=d.productsData,s.contextData=d.context.data,s.pagination=d.pagination,s.context={URLFormats:d.context.URLFormats,pagination:d.context.pagination,visualFormats:s.parameters.imageFormats,dataSetNames:s.parameters.dataSetNames,cacheTTL:s.parameters.tTL||s.parameters.TTL},u(),p(),s.sortBy=function(e){s.contextData.sortBy=s.parameters.sortBy=e,a.search("sortBy-"+l,e),s.context.pagination.offset=0,s.reload("sortBy")},s.updateOffset=function(e){t.openWaitingModal(),s.context.pagination.offset=e,t.getData("Rbs/Catalog/Product/",s.contextData,s.context).then(function(e){s.productsData=[],s.pagination=e.data.pagination,angular.forEach(e.data.items,function(e){s.productsData.push(e)}),a.search("pageNumber-"+l,Math.floor(s.pagination.offset/s.pagination.limit)+1),u(),p(),t.closeWaitingModal(),n(function(){var e="top-"+s.blockId;a.hash()!==e&&a.hash(e),r()})},function(){s.productsData=[],t.closeWaitingModal()})},o.$on("RbsElasticsearchFacetFilters",function(e,t){t.facetFilters||(t.facetFilters=[]),s.contextData.facetFilters=t.facetFilters,s.contextData.searchText=t.searchText||null,s.contextData.webStoreStockFilter=t.webStoreStockFilter||null,s.contextData.storeStockFilter=t.storeStockFilter||null,s.contextData.announcementData&&(s.contextData.announcementData.decoratorId=t.decoratorId||0),s.context.pagination.offset=0,t.instantSearch?s.reload("instantSearch"):s.reload("facetFilters")}),o.$on("RbsElasticsearchSearchText",function(e,t){!!s.contextData.listId||void 0!==t.resultFunction&&s.contextData.resultFunction!==t.resultFunction||(t.redirect=!1,s.c
1ontextData.searchText!==t.searchText&&(s.contextData.searchText=t.searchText||null,s.context.pagination.offset=0,t.instantSearch?s.reload("instantSearch"):s.reload("searchText")))}),s.reload=function(e){var a="instantSearch"!==e;a&&t.openWaitingModal(),s.errorLoading=!1,t.getData("Rbs/Catalog/Product/",s.contextData,s.context).then(function(e){s.productsData=[],s.pagination=e.data.pagination,angular.forEach(e.data.items,function(e){s.productsData.push(e)}),a&&t.closeWaitingModal()},function(){s.productsData=[],a&&t.closeWaitingModal()})},s.addMoreProducts=function(){s.loading||("infinite-scroll"!==s.paginationMode&&"infinite-click"!==s.paginationMode||m(),"infinite-click"===s.paginationMode&&a.search("page-"+l,Math.floor(s.context.pagination.offset/s.context.pagination.limit)+1).replace())},("infinite-scroll"===s.paginationMode||"infinite-click"===s.paginationMode)&&s.pagination.pageCount>1){var g=!1,f=angular.element(i),h=a.search(),b=Math.min(h["page-"+l]||1,s.pagination.pageCount),v=h.position,C=(b-1)*s.context.pagination.limit;b&&function t(){if(C>s.context.pagination.offset)return m().then(function(){t()||(e("html, body").animate({scrollTop:v},1e3),y())}),!0;return!1}()||y()}function y(){f.on("scroll",function(){g||(g=!0,n(function(){g=!1},500),navigator.userAgent.match(/.+compatible; Google-Read-Aloud;.+/i)||a.search("position",f.scrollTop()).replace(),a.search("page-"+l,Math.floor(s.context.pagination.offset/s.context.pagination.limit)+1).replace(),s.$apply())})}}],link:function(e,t,a){e.viewDetailTitleMask=a.viewDetailTitleMask||"PRODUCT_TITLE",e.scrollDisabled=function(){return"infinite-scroll"!==e.paginationMode||(e.loading||e.productsData.length>=e.pagination.count||e.errorLoading)}}}}])}(jQuery),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsAvailabilityAlertLink",["$rootScope","RbsChange.ModalStack",function(e,t){return{restrict:"A",scope:!0,link:function(a,o,r){function n(e){var t=a.productData.common.productAvailabilityNotificationURL,o=e.shippingCategories.stock;a.productWebNotificationEnabled=t&&o&&"AVAILABLE"!==o.threshold;var r=e.storeCategories.stock;a.productStoreNotificationEnabled=t&&r&&"AVAILABLE"!==r.threshold}a.productWebNotificationEnabled=!1,a.productStoreNotificationEnabled=!1,a.useWebStore="webStore"===r.selectedStock,a.productData&&n(a.productData.cartBox),a.openDialog=function(){var e={templateUrl:"/rbs-catalog-availability-notification-modal.twig",backdropClass:"modal-backdrop-rbs-catalog-availability-notification",windowClass:"modal-rbs-catalog-availability-notification",size:"lg",scope:a};t.open(e)},a.$watch("productData",function(e){e&&n(e.cartBox)}),e.$on("rbsCartBoxStoreSelected",function(){n(a.cartBox)})}}}]),e.directive("rbsAvailabilityAlertModal",["$http","$compile","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",link:function(o,r){o.callbackStatus=null,o.productData.common.productAvailabilityNotificationURL?(o.modalContentMode="loading",e.get(o.productData.common.productAvailabilityNotificationURL).then(function(e){var a=".modal-main-content";r.find(a).replaceWith('<div class="modal-main-content">'+e.data+"</div>"),t(r.find(a).contents())(o),o.modalContentMode="success"},function(e){o.modalContentMode="error",console.error("Can't load modal content:",e)})):(o.modalContentMode="error",console.warn("No productAvailabilityNotificationURL for product.")),o.requestNotification=function(e,t){var r={skuId:o.productData.stock.skuId,productId:o.productData.common.id,customerMail:e,storeId:o.parameters.webStoreId,customerId:t||0};if(!o.useWebStore){var n=o.productData.cartBox;r.storeId=n.storeCategories.storeId}a.postData("Rbs/Commerce/Availability/AlertSubscription",r).then(function(e){200===e.status?o.callbackStatus="success":o.callbackStatus="warning",o.callbackText=e.data.message},function(e){o.callbackStatus="danger",o.callbackText=e.data.error,console.error("on rbsStockAvailabilityNotificationSubscription",e)})}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsCatalogShortSearch",["$scope","$element","RbsChange.AjaxAPI","$q",function(e,t,a,o){e.suggester.search=function(t){var r=[];e.columns=0,e.documents=e.products=null;var n=e.blockParameters;n.searchText=t,r.push(a.getData("Rbs/Catalog/Suggest",n,{visualFormats:n.thumbnailFormat}));var i=e.getPromiseDocumentSuggest(t);i&&r.push(i),o.all(r).then(function(t){e.searching?e.searching=!1:t&&(t[0]&&t[0].data.products&&t[0].data.products.items&&t[0].data.products.items.length>0&&(e.products=t[0].data.products,e.columns++),t[1]&&t[1].data.documents&&t[1].data.documents.length>0&&(e.documents=t[1].data.documents,e.columns++),jQuery(".short-search-listbox").show())},function(e){})}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("RbsProductreturnReturnProcessController",["$scope","$element","RbsChange.AjaxAPI",function(e,t,a){e.returnData={shipments:[],returnMode:{id:null},reshippingData:{mode:{id:null},address:null},orderData:{}},e.returnRequest=null,e.returnRequestError=!1,e.orderData={},e.data={editingLine:null,productAjaxData:{},productAjaxParams:{}};var o={},r={},n=!1;e.getOrderLineByKey=function(t){for(var a=0;a<e.orderData.lines.length;a++){var o=e.orderData.lines[a];if(o.key===t)return o}return null};var i=t.attr("data-cache-key");if(i&&(e.parameters=a.getBlockParameters(i),e.data.productAjaxData.webStoreId=e.parameters.webStoreId,e.data.productAjaxData.billingAreaId=e.parameters.billingAreaId,e.data.productAjaxData.zone=e.parameters.zone,e.data.productAjaxParams.visualFormats=e.parameters.imageFormats,angular.isObject(e.blockData))){var s=e.blockData;e.orderData=s.orderData,e.returnData.orderData=s.orderData,e.processData=s.processData,e.columnCount=s.columnCount,1===e.processData.returnModes.length&&(e.returnData.returnMode.id=e.processData.returnModes[0].id);for(var c=0;c<e.processData.reasons.length;c++){var l=e.processData.reasons[c];o[l.id]=l;for(var d=0;d<l.processingModes.length;d++){var u=l.processingModes[d];r[u.id]=u}}for(var p=0;p<e.orderData.shipments.length;p++){var m=e.orderData.shipments[p];if(m.hasOwnProperty("common")&&m.common.hasOwnProperty("shippingDate")){var g=[];for(d=0;d<m.lines.length;d++){var f=angular.copy(m.lines[d]),h={lineIndex:d,returnLines:[],shipmentLine:f};h.product=f.product,h.alreadyReturned=0;for(var b=0;b<e.orderData.returns.length;b++){var v=e.orderData.returns[b];
1if("CANCELED"!==v.common.statusInfos.code&&"REFUSED"!==v.common.statusInfos.code&&"EDITION"!==v.common.statusInfos.code)for(var C=0;C<v.lines.length;C++){var y=v.lines[C];y.shipmentId==m.common.id&&y.shipmentLineIndex==d&&(y.options.hasOwnProperty("receivedQuantity")&&angular.isNumber(y.options.receivedQuantity)?h.alreadyReturned+=y.options.receivedQuantity:h.alreadyReturned+=y.quantity)}}g.push(h)}e.returnData.shipments.push({lines:g,shipmentData:angular.copy(m)})}}}e.hasReturnLine=function(t,a){if(void 0!==a)return e.returnData.shipments[t].lines[a].returnLines.length>0;for(var o=0;o<e.returnData.shipments.length;o++)for(var r=0;r<e.returnData.shipments[o].lines.length;r++)if(e.returnData.shipments[o].lines[r].returnLines.length>0)return!0;return!1},e.needsReshipment=function(){for(var t=0;t<e.returnData.shipments.length;t++)for(var a=0;a<e.returnData.shipments[t].lines.length;a++)for(var o=e.returnData.shipments[t].lines[a],r=0;r<o.returnLines.length;r++){var n=e.getProcessingModeById(o.returnLines[r].preferredProcessingMode);if(n&&n.impliesReshipment)return!0}return!1},e.$watch("returnData.shipments",function(){e.stepsData.reshipping.isEnabled=e.needsReshipment()},!0),e.editLine=function(t,a,o){e.data.editingLine=t+"_"+a+"_"+o},e.isEditing=function(){var t=!1;return angular.forEach(e.stepsData,function(e){!e.isEnabled||e.isChecked&&!e.isCurrent||(t=!0)}),n||t||e.isEditingLine()},e.isEditingLine=function(t,a,o){if(void 0===a)return null!==e.data.editingLine;if(void 0===o){var r=t+"_"+a+"_";return angular.isString(e.data.editingLine)&&e.data.editingLine.substr(0,r.length)==r}return e.data.editingLine==t+"_"+a+"_"+o},e.newReturnLine=function(t,a){var o=e.returnData.shipments[t].lines[a].returnLines.length;e.data.editingLine=t+"_"+a+"_"+o;var r={expanded:!0,productData:{},options:{},attachedFiles:[]};1==e.getLineRemainingQuantity(t,a,o)&&(r.quantity=1),1==e.processData.reasons.length&&(r.reason=e.processData.reasons[0].id),e.returnData.shipments[t].lines[a].returnLines.push(r)},e.getReasonById=function(e){return o.hasOwnProperty(e)?o[e]:null},e.getProcessingModeById=function(e){return r.hasOwnProperty(e)?r[e]:null},e.getProcessingMode=function(t){var a=t.preferredProcessingMode?e.getProcessingModeById(t.preferredProcessingMode):null;return null===a&&(a={title:t.options&&t.options.processingModeTitle}),a},e.getAvailableProcessingModes=function(t,a){angular.isNumber(t)&&(t=e.getReasonById(t));var o=[];if(angular.isObject(t))for(var r=0;r<t.processingModes.length;r++)t.processingModes[r].allowVariantSelection&&!angular.isObject(a)||o.push(t.processingModes[r]);return o},e.getLineRemainingQuantity=function(t,a,o){var r=e.returnData.shipments[t].lines[a].shipmentLine.quantity;r-=e.returnData.shipments[t].lines[a].alreadyReturned;for(var n=0;n<e.returnData.shipments[t].lines[a].returnLines.length;n++)void 0!==o&&o==n||(r-=e.returnData.shipments[t].lines[a].returnLines[n].quantity);return r},e.getAvailableQuantities=function(t,a,o){for(var r=[],n=e.getLineRemainingQuantity(t,a,o),i=0;i<n;i++)r.push(i+1);return r},e.canChooseOtherVariant=function(t,a){if(!angular.isObject(t)||!t.product||"variant"!==t.product.common.type)return!1;if(!angular.isObject(a)||!a.preferredProcessingMode)return!1;var o=e.getProcessingModeById(a.preferredProcessingMode);return!(!angular.isObject(o)||!o.hasOwnProperty("allowVariantSelection"))&&(!(!o.hasOwnProperty("impliesReshipment")||!o.impliesReshipment)&&!0===o.allowVariantSelection)},e.sendReturnRequest=function(t){var o=[];n=!0;for(var r=0;r<e.returnData.shipments.length;r++)for(var i=e.returnData.shipments[r],s=0;s<i.lines.length;s++)for(var c=i.lines[s],l=0;l<c.returnLines.length;l++){var d=c.returnLines[l],u={shipmentId:i.shipmentData.common.id,shipmentLineIndex:c.lineIndex,quantity:d.quantity,reasonId:d.reason,reasonPrecisions:d.precisions,attachedFiles:d.attachedFiles,preferredProcessingModeId:d.preferredProcessingMode};e.canChooseOtherVariant(c,d)&&angular.isObject(d.productData)&&(d.options.reshippingProductId=d.productData.common.id),d.options.unitAmountWithoutTaxes=c.unitAmountWithoutTaxes,d.options.unitAmou
1ntWithTaxes=c.unitAmountWithTaxes,u.options=d.options,o.push(u)}var p={common:{orderId:e.orderData.common.id,returnMode:e.returnData.returnMode},lines:o};e.needsReshipment()&&(p.reshippingData=e.returnData.reshippingData),a.openWaitingModal(t),a.postData("Rbs/Productreturn/ProductReturn/",p,{detailed:!1,URLFormats:["canonical"],dataSets:"returnMode"}).then(function(t){t.data.dataSets.common.URL.canonical?(a.closeWaitingModal(),e.returnRequest=t.data.dataSets):a.closeWaitingModal(),e.returnRequestError=!1},function(t){n=!1,a.closeWaitingModal(),e.returnRequestError=!0,console.error(t)})},e.$watch("returnData.returnMode.id",function(a){var o=t.find('[data-role="return-mode-configuration-zone"]'),r=null,n=null;if(angular.forEach(e.processData.returnModes,function(e,t){e&&e.id===a&&(r=e,n=t)}),r&&r.directiveName){var i=[];i.push("<div data-"+r.directiveName+'=""'),i.push(' data-process-data="processData"'),i.push(' data-return-mode="processData.returnModes['+n+']"'),i.push(' data-return-data="returnData"'),i.push("></div>"),e.processEngine.replaceChildren(o,e,i.join(""))}else e.processEngine.replaceChildren(o,e,null)})}]),e.directive("rbsProductreturnProcess",["$compile",function(e){return{restrict:"A",templateUrl:"/rbs-productreturn-process.twig",controllerAs:"processEngine",controller:["$scope",function(t){t.loading=!1,t.stepsData={reshipping:{name:"reshipping",isCurrent:!0,isEnabled:!1,isChecked:!1}},this.type="return",this.loading=function(e){return angular.isDefined(e)&&(t.loading=1==e),t.loading},this.loadObjectData=function(){return null},this.updateObjectData=function(e){return e.hasOwnProperty("setReshippingData")&&(t.returnData.reshippingData=e.setReshippingData),e.hasOwnProperty("setStepValid")&&(t.stepsData[e.setStepValid].isChecked=!0),e.hasOwnProperty("setNotCurrentStep")&&(t.stepsData[e.setStepValid].isCurrent=!1),null},this.getObjectData=function(){return t.returnData},this.showPrices=function(){return t.blockData&&t.blockData.showPrices},this.getCurrencyCode=function(){return null},this.parameters=function(e){return t.parameters?angular.isUndefined(e)?t.parameters:t.parameters[e]:null},this.getProcessConfigurationInfo=function(){return t.processData};var a={};this.replaceChildren=function(t,o,r){var n=o.$id;a[n]&&(a[n].$destroy(),a[n]=null),t.children().remove(),""!=r&&(a[n]=o.$new(),e(r)(a[n],function(e){t.append(e)}))},this.nextStep=function(){return null},this.getNextStep=function(){return null},this.setCurrentStep=function(e){t.stepsData[e].isCurrent=!0},this.getStepProcessData=function(e){return t.stepsData.hasOwnProperty(e)?t.stepsData[e]:{name:e,isCurrent:!1,isEnabled:!1,isChecked:!1}}}],link:function(e,t,a,o){e.showPrices=o.showPrices(),e.isStepEnabled=function(e){return o.getStepProcessData(e).isEnabled},e.isStepChecked=function(e){return o.getStepProcessData(e).isChecked}}}}]),e.directive("rbsProductreturnReturnLineSummary",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-return-line-summary.twig",scope:!0,link:function(e,t,a){}}}),e.directive("rbsProductreturnReturnLineEdition",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-return-line-edition.twig",scope:!0,link:function(e,t,a){var o=a.formName;e.isLineValid=function(t,a){return!e[o].$invalid&&(!a.timeLimitExceeded&&(!e.canChooseOtherVariant(t,a)||e.isSelectedVariantAvailable(a)))},e.isSelectedVariantAvailable=function(e){var t=e.productData.cartBox;return angular.isObject(t)&&t.allCategories&&t.allCategories.allowed&&!t.allCategories.disabled},e.validateLine=function(t,a,o){var r=e.returnData.shipments[t].lines[a],n=r.returnLines[o];e.isLineValid(r,n)&&(e.data.editingLine=null)},e.cancelLine=function(t,a,o){e.data.editingLine=null,e.returnData.shipments[t].lines[a].returnLines.splice(o,1)},e.$watch("returnLine.reason",function(t){var a=e.getReasonById(t);a&&function(t){if(!t||!t.timeLimitAfterReceipt)return!1;t.timeoutMessage||console.error("A reason with a time limit requires a timeout message!");var a,o=new Date,r=t.timeLimitAfterReceipt;return e.shipment.shipmentData.common.deliveryDate?(a=new Date(e.shipment.shipmentData.common.deliveryDate)).setDate(a.getDate()+r):(a=new Date(e.shipment.shipmentData.common.shippingDate)).setDate(a.getDate()+r+t.extraTimeAfterShipping),o.getTime()>a.getTime()}(a)?(e.returnLine.timeLimitExceeded=!0,e.returnLine.timeLimitErrorMessage=a.timeoutMessage):(e.returnLine.timeLimitExceeded=!1,e.returnLine.timeLimitErrorMessage=null);var o=function(t,a){if(!t)return null;if(e.getAvailableProcessingModes(t,e.line.product),1==t.processingModes.length)return t.processingModes[0].id;for(var o=0;o<t.processingModes.length;o++)if(t.processingModes[o].id==a)return a;return null}(a,e.returnLine.preferredProcessingMode);o!==e.returnLine.preferredProcessingMode&&(e.returnLine.preferredProcessingMode=o)})}}}),e.directive("rbsProductreturnVariantSelectorContainer",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-productreturn-variant-selector-container.twig",scope:!0,link:function(t,a,o){var r=t.line.product.common.id,n=angular.copy(t.data.productAjaxParams);
1angular.isArray(n.dataSetNames)||(n.dataSetNames=[]),n.dataSetNames.push("rootProduct"),e.openWaitingModal(o.waitingMessage),e.getData("Rbs/Catalog/Product/"+r,t.data.productAjaxData,n).then(function(a){t.returnLine.productData=a.data.dataSets,e.closeWaitingModal()},function(a){t.error=a.data.message,console.error(a),e.closeWaitingModal()})}}}]),e.directive("rbsProductreturnShipmentLines",["$compile",function(e){return{restrict:"A",controller:function(){this.getLineDirectiveName=function(e){return"data-rbs-productreturn-shipment-line-details-default"}},link:function(t,a,o,r){var n=[];angular.forEach(t.shipment.lines,function(e,t){n.push('<tr data-line-index="'+t+'" '+r.getLineDirectiveName(e)+'=""></tr>'),n.push('<tr data-line-index="'+t+'" data-rbs-productreturn-shipment-line-return=""></tr>'),n.push('<tr data-line-index="'+t+'" data-rbs-productreturn-shipment-line-footer=""></tr>')}),n.length&&e(n.join(""))(t,function(e){a.append(e)})}}}]),e.directive("rbsProductreturnShipmentLineDetailsDefault",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-shipment-line-details-default.twig",scope:!0,replace:!0,link:function(e,t,a){e.lineIndex=a.lineIndex,e.line=e.shipment.lines[e.lineIndex]}}}),e.directive("rbsProductreturnShipmentLineReturn",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-shipment-line-return.twig",scope:!0,replace:!0,link:function(e,t,a){e.lineIndex=a.lineIndex,e.line=e.shipment.lines[e.lineIndex]}}}),e.directive("rbsProductreturnShipmentLineFooter",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-shipment-line-footer.twig",scope:!0,replace:!0,link:function(e,t,a){e.lineIndex=a.lineIndex,e.line=e.shipment.lines[e.lineIndex]}}}),e.directive("rbsProductreturnProductAvailability",function(){return{restrict:"A",templateUrl:"/rbs-productreturn-product-availability.twig",scope:{productData:"="},link:function(e,t,a){}}}),e.directive("rbsProductreturnFileReader",["$http",function(e){return{restrict:"A",require:"?ngModel",link:function(t,a,o,r){if(r&&o.uploadFileUrl){var n=[];angular.forEach((o.fileMimeTypes||"").split(","),function(e){""!==(e=e.trim())&&n.push(e)});var i=parseInt(o.maxFileSize,10);isNaN(i)&&(i=0),r.$render=function(){},a.on("change",function(a){var s=a.target;if(t.fileError=null,s.files&&s.files.length){var c=s.files[0];if(i&&c.size>i)return t.fileError="size",void t.$digest();if(n.length){var l=!1;if(n.forEach(function(e){l=l||e===c.type}),!l)return t.fileError="mime_type",void t.$digest()}t.uploadingFile=!0;var d=new FormData;d.append("file",c);var u={transformRequest:angular.identity,headers:{"Content-Type":void 0}};e.post(o.uploadFileUrl,d,u).then(function(e){delete t.uploadingFile,r.$setViewValue({name:c.name,type:c.type,size:c.size,tmpURI:e.data.tmpURI})},function(e){console.error(e.status,c.name,c.type),t.fileError="upload",delete t.uploadingFile,r.$setViewValue(null)})}else r.$setViewValue(null)})}}}}]),e.directive("rbsProductreturnReshippingStep",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-productreturn-reshipping-step.twig",scope:{processEngine:"="},link:function(t){t.processData=t.processEngine.getStepProcessData("reshipping"),t.processData.errors=[];var a=t.processEngine.getObjectData();if(!a.customer){var o=a.orderData.process;a.customer={email:o.email,mobilePhone:o.mobilePhone,options:{profiles:{Rbs_User:{firstName:o.firstName,lastName:o.lastName}}}}}function r(e,t,a){for(var o=0;o<e.reasons.length;o++){var r=e.reasons[o];if(r.id===t)for(var n=0;n<r.processingModes.length;n++){var i=r.processingModes[n];if(i.id===a)return i}}return{}}t.userAddresses=[],t.shippingZone=null,t.taxesZones=null,t.giftCapabilities={allow:!1,allowMessage:!1,allowWrap:!1},t.isCategory=function(e,a){if(t.shippingModesInfo.hasOwnProperty(a))for(var o=t.shippingModesInfo[a],r=0;r<o.length;r++)if(o[r].common.id==e.id)return!0;return!1},t.hasCategory=function(e){return t.shippingModesInfo.hasOwnProperty(e)},t.getModesByCategory=function(e){return t.shippingModesInfo.hasOwnProperty(e)?t.shippingModesInfo[e]:[]},t.loadUserAddresses=function(){t.processData.userId?e.getData("Rbs/Geo/Address/",{userId:t.processData.userId,matchingZone:t.shippingZone}).then(function(e){t.userAddresses=e.data.items},function(e){console.error("loadUserAddresses",e),t.userAddresses=[]}):t.userAddresses=[]},t.setCurrentStep=function(){t.processEngine.setCurrentStep("reshipping")},t.shippingModesValid=function(){for(var e=0;e<t.processData.shippingModes.length;e++){var a=t.processData.shippingModes[e];if(!angular.isFunction(a.valid)||!a.valid())return!1}return!0},t.next=function(){t.saveMode()},t.saveMode=function(){var e=t.processData.shippingModes[0];if(angular.isFunction(e.valid)&&e.valid()){var a=e.valid(!0);e.address=a.address,e.options=a.options;var o={setReshippingData:{mode:{id:a.id,title:a.title},address:a.address,options:a.options},setStepValid:"reshipping",setNotCurrentStep:"reshipping"};return t.processEngine.updateObjectData(o)}},function(){var e=t.processEngine.getObjectData();t.processData.userId=e.orderData.common.userId;var a=t.processEngine.getProcessConfigurationInfo();if(t.processData.processId=a.common.id,t.shippingModesInfo=a&&a.reshippingModes?a.reshippingModes:{},t.shippingZone=e.orderData.common.zone,!t.processData.shippingModes){var o=angular.copy(e.reshippingData);o.shippingZone=t.shippingZone,o.options={},t.processData.shippingModes=[o]}for(var n={lines:[]},i=0;i<e.shipments.length;i++)for(var s=e.shipments[i],c=0;c<s.lines.length;c++){var l=s.lines[c];if(l.returnLines&&l.returnLines.length)for(var d=0;d<l.returnLines.length;d++){var u=l.returnLines[d],p=r(a,u.reason,u.preferredProcessingMode);if(p.impliesReshipment){var m=p.allowVariantSelection&&u.productData.stock?u.productData.stock.sku:l.shipmentLine.codeSKU;n.lines.push({quantity:u.quantity,codeSKU:m})}}}t.processData.shippingModes[0].delivery=n}(),t.loadUserAddresses()}}}]),e.directive("rbsProductreturnStoreReturnMode",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-productreturn-store-return-mode.twig",scope:{processData:"=",returnMode:"=",returnData:"="},link:function(t){t.currentStore=null,e.getData("Rbs/Storeshipping/Store/Default",{},{URLFormats:"canonical"}).then(function(e){var a=e.data.dataSets;!angular.isArray(a)&&angular.isObject(a)&&a.allow.allowProductReturn&&t.selectStore(a)},angular.noop),t.selectStore=function(e){t.currentStore=e,t.returnData.returnMode.storeId=e.common.id},t.selectOtherStore=function(){t.currentStore=null,t.returnData.returnMode.storeId=null},t.storeSelectorData={allow:{productReturn:!0}},t.storeSelectorParams={URLFormats:"canonical",dataSetNames:"address,coordinates,hoursSummary"}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t,a){e.cancelReturn=function(e,o){a.openWaitingModal(o),a.putData("Rbs/Productreturn/ProductReturn/"+e,{cancelRequest:!0},{detailed:!1}).then(function(){t.location.reload()},function(e){a.closeWaitingModal(),console.error(e)})}}
1t.$inject=["$scope","$window","RbsChange.AjaxAPI"],e.controller("RbsProductreturnReturnListController",t)}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsOrderLineAddToCart",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-order-line-add-to-cart.twig",scope:{line:"<rbsOrderLineAddToCart"},link:function(t){t.openDialog=function(){var a={templateUrl:"/rbs-catalog-quick-buy-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-quick-buy",windowClass:"modal-rbs-catalog-quick-buy",size:"lg",controller:"RbsCatalogQuickBuyModalCtrl",resolve:{quickBuyURL:function(){return t.line.product.common.quickBuyURL}}};e.open(a)}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsOrderAttachController",["$scope","$window","RbsChange.AjaxAPI",function(e,t,a){e.submit=function(){a.openWaitingModal(),a.postData("Rbs/Order/AttachOrder",{orderNumber:e.orderNumber}).then(function(o){a.closeWaitingModal(),o.data.dataSets.isSuccess?(e.error=null,e.orderNumber="",t.location.reload()):e.error=o.data.dataSets.message},function(e){a.closeWaitingModal(),console.error(e)})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsDataprotectionErasureRequest",["$scope","RbsChange.AjaxAPI",function(e,t){e.submit=function(){e.disabled=!0,t.openWaitingModal();var a={email:e.email,request:e.request};t.postData("Rbs/Dataprotection/CreateErasureRequest",a).then(function(a){e.success=a.data.dataSets.success,e.errors=null,t.closeWaitingModal(),e.disabled=!0},function(a){e.errors=a.data.message,t.closeWaitingModal(),e.disabled=!1})}}])}(),function(e){"use strict";var t=angular.module("RbsChangeApp");t.provider("RbsGeo.GoogleMapService",function(){function t(){return angular.isDefined(window.google)&&angular.isDefined(window.google.maps)}function a(e){var t=["v=3","libraries=places"];if(e.client)t.push("client="+e.client);else{if(!e.APIKey)return console.error("GoogleMap authentication not provided"),null;t.push("key="+e.APIKey)}e.callback&&t.push("callback="+e.callback),t=t.join("&");var a=document.createElement("script");return a.type="text/javascript",a.async=!0,a.src=function(e){return e.china?"https://maps.google.cn/maps/api/js?":"auto"===e.transport?"//maps.googleapis.com/maps/api/js?":e.transport+"://maps.googleapis.com/maps/api/js?"}(e)+t,document.head.appendChild(a)}this.googleConfig=e.Rbs_Geo_Config&&e.Rbs_Geo_Config.Google||{},this.googleConfig.transport="auto",this.googleLoadedPromise=null,this.configure=function(e){angular.extend(this.googleConfig,e)};var o=this;this.$get=["$rootScope","$q",function(e,r){return{maps:function(){if(o.googleLoadedPromise)return o.googleLoadedPromise;var e,n,i=o.googleConfig;return e=r.defer(),o.googleLoadedPromise=e.promise,t()?(e.resolve(window.google.maps),o.googleLoadedPromise):i.preventLoad?(e.reject("window.google.maps not defined"),o.googleLoadedPromise):(n=i.callback="onGoogleMapsReady"+Math.round(1e3*Math.random()),window[n]=function(){delete window[n],e.resolve(window.google.maps)},window.navigator.connection&&window.Connection&&window.navigator.connection.type===window.Connection.NONE?document.addEventListener("online",function(){if(!t())return a(i)}):a(i),o.googleLoadedPromise)},valid:function(){return!(!o.googleConfig.client&&!o.googleConfig.APIKey)},resolveAddress:function(e){var t=new window.google.maps.Geocoder;return r(function(a,o){t.geocode({location:e},function(e){if(e.length){var t={};if(angular.forEach(e[0].address_components,function(e){switch(e.types[0]){case"street_number":t.street_number=e.short_name;break;case"route":t.street=e.short_name;break;case"locality":t.city=e.short_name;break;case"country":t.country_code=e.short_name;break;case"postal_code":t.postcode=e.short_name}}),t.country_code)return a(t)}return console.warn("[RbsGeo.GoogleMapService.resolveAddress] No data found"),o("no address found")})})}}}]}),t.provider("RbsGeo.LeafletMapService",function(){function t(){return angular.isDefined(window.L)}function a(t){var a=e.navigationContext.assetBasePath||"/Assets/",o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.href=a+"Theme/Rbs/Base/lib/leaflet/leaflet.css",o.media="all",document.head.appendChild(o);var r=document.createElement("script");return r.type="text/javascript",r.async=!0,r.onload=t.callback,r.src=a+"Theme/Rbs/Base/lib/leaflet/leaflet.js",document.head.appendChild(r)}this.leafletConfig=e.Rbs_Geo_Config&&e.Rbs_Geo_Config.OSM||{}
1,this.leafletLoadedPromise=null,this.configure=function(e){angular.extend(this.leafletConfig,e)};var o=this;this.$get=["$rootScope","$q","$http",function(e,r,n){return{maps:function(){if(o.leafletLoadedPromise)return o.leafletLoadedPromise;var e,n,i=o.leafletConfig;return e=r.defer(),o.leafletLoadedPromise=e.promise,t()?(e.resolve(window.L),o.leafletLoadedPromise):i.preventLoad?(e.reject("window.L not defined"),o.leafletLoadedPromise):(i.randomFn=n="onLeafletMapsReady"+Math.round(1e3*Math.random()),i.callback=window[n]=function(){delete window[n],e.resolve(window.L)},window.navigator.connection&&window.Connection&&window.navigator.connection.type===window.Connection.NONE?document.addEventListener("online",function(){if(!t())return a(i)}):a(i),o.leafletLoadedPromise)},defaultTileLayerName:function(){var e=null;return o.leafletConfig&&o.leafletConfig.tileLayerName&&(e=o.leafletConfig.tileLayerName,o.leafletConfig.APIKey&&(e+="?key="+o.leafletConfig.APIKey)),e},valid:function(){return o.leafletConfig&&o.leafletConfig.url&&!!this.defaultTileLayerName()},resolveAddress:function(e){var t="format=json&addressdetails=1&lat="+e.latitude+"&lon="+e.longitude;return o.leafletConfig.APIKey&&(t+="&key="+o.leafletConfig.APIKey),n.get(o.leafletConfig.url+"reverse.php?"+t).then(function(e){return e.data.address&&e.data.address.country_code?e.data.address:(console.warn("[RbsGeo.LeafletMapService.resolveAddress] No data found"),r.reject("no address found"))},function(e){return console.error("[RbsGeo.LeafletMapService.resolveAddress]",e),r.reject("service not found")})},getAttribution:function(){return'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}}}]})}(window.__change),function(){"use strict";var e=angular.module("RbsChangeApp");e.provider("RbsGeo.PhoneService",function(){var e=null,t={};this.$get=["$rootScope","$q","RbsChange.AjaxAPI",function(a,o,r){function n(e,a){var n=o.defer();if(angular.isString(e)&&0!==e.length)if(e.length<5||!a)n.reject("Too short number");else if(angular.isString(a)&&2===a.length){var i=e+"."+a;if(t.hasOwnProperty(i)){var s=t[i];if(s){if(s.promise)return s.promise;n.resolve(s)}else n.reject("Invalid number")}else t[i]=n,r.getData("Rbs/Geo/Phone/ParsePhoneNumber",{number:e,regionCode:a}).then(function(e){var a=e.data.dataSets.common;t[i]=a,t[a.national+"."+a.regionCode]=a,n.resolve(a)},function(){t[i]=!1,n.reject("Invalid number")})}else n.reject("Invalid region code");else n.resolve(null);return n.promise}return{getRegionNumberConfig:function(){var t=o.defer();if(null!==e){if(!angular.isArray(e))return e.promise;t.resolve(e)}else e=t,r.getData("Rbs/Geo/Phone/NumberConfiguration/").then(function(a){e=a.data.items,t.resolve(e)},function(a){console.error("getRegionNumberConfig",a),e=[],t.resolve(e)});return t.promise},parseNumber:n,parseMobileNumber:function(e,t){return n(e,t).then(function(e){return e&&"MOBILE"!==e.type&&"FIXED_LINE_OR_MOBILE"!==e.type?o.reject("Invalid mobile number"):e})},parseFixedLineNumber:function(e,t){return n(e,t).then(function(e){return e&&"FIXED_LINE"!==e.type&&"FIXED_LINE_OR_MOBILE"!==e.type&&"VOIP"!==e.type?o.reject("Invalid fixed line number"):e})},parseMobileOrFixedLineNumber:function(e,t){return n(e,t).then(function(e){return e&&"MOBILE"!==e.type&&"FIXED_LINE"!==e.type&&"FIXED_LINE_OR_MOBILE"!==e.type&&"VOIP"!==e.type?o.reject("Invalid mobile or fixed line number"):e})}}}]}),e.directive("rbsGeoInputPhoneNumber",["RbsChange.AjaxAPI","$q","RbsGeo.PhoneService","$timeout",function(e,t,a,o){var r=e.getLCID().substr(3);return{restrict:"A",templateUrl:"/rbs-geo-input-phone-number.twig",require:"ngModel",scope:{required:"=",mobileOnly:"@",fixedLineOnly:"@",mobileOrFixedLineOnly:"@"},controller:["$scope",function(e){e.mobileOnly?e.numberType="MOBILE":e.fixedLineOnly?e.numberType="FIXED_LINE":e.numberType="FIXED_LINE_OR_MOBILE",e.currentCfg=null,e.regionNumberConfig=[],a.getRegionNumberConfig().then(function(t){e.regionNumberConfig=t,angular.forEach(t,function(t){null!==e.currentCfg&&t[0]!==r||(e.currentCfg=t)})})}],link:function(e,n,i,s){e.parsedNumber=null,e.name=i.name,e.getCurrentPlaceHolder=function(){return e.currentCfg?e.mobileOnly?e.currentCfg[4]:e.fixedLineOnly?e.currentCfg[3]:e.currentCfg[3]||e.currentCfg[4]||"":""},s.$render=function(){e.rawNumber=s.$viewValue,e.rawNumber&&a.parseNumber(e.rawNumber,r).then(function(t){e.parsedNumber=t,t&&(e.rawNumber=t.national,angular.forEach(e.regionNumberConfig,function(a){a[0]===t.regionCode&&(e.currentCfg=a)}))},function(){e.parsedNumber=null})},e.setCurrentCfg=function(t){e.currentCfg=t,s.$setViewValue(e.rawNumber),s.$validate()};var c=null;e.validateRawNumber=function(t){e.rawNumber&&s.$setTouched(),c&&(o.c
1ancel(c),c=null),t?c=o(function(){s.$setViewValue(e.rawNumber)},500):s.$setViewValue(e.rawNumber)};var l=function(a){return e.parsedNumber=null,t.reject(a)},d=function(t){return e.parsedNumber=t,t&&(e.rawNumber=t.national,s.$setViewValue(t.E164)),t};s.$asyncValidators.mobileNumber=function(t,o){var n=e.currentCfg?e.currentCfg[0]:r;return e.mobileOnly?a.parseMobileNumber(o,n).then(d,l):e.fixedLineOnly?a.parseFixedLineNumber(o,n).then(d,l):e.mobileOrFixedLineOnly?a.parseMobileOrFixedLineNumber(o,n).then(d,l):a.parseNumber(o,n).then(d,l)}}}}]),e.directive("rbsGeoPhoneFormatter",["RbsChange.AjaxAPI","RbsGeo.PhoneService",function(e,t){var a=e.getLCID().substr(3);return{restrict:"A",templateUrl:"/rbs-geo-phone-formatter.twig",scope:{number:"=",regionCode:"="},link:function(e,o,r){e.addLink="true"===r.addLink,e.$watch("number",function(o){o?t.parseNumber(o,e.regionCode||a).then(function(a){a?(e.data=a,a.flagCountry=a.regionCode.toLowerCase(),a.country=a.regionCode,a.class="MOBILE"===a.type||"FIXED_LINE_OR_MOBILE"===a.type?"phone":"earphone",t.getRegionNumberConfig().then(function(t){angular.forEach(t,function(t){t[0]===e.data.regionCode&&(e.data.country=t[2])})})):e.data={empty:!0}},function(t){e.data={invalid:!0,error:t}}):e.data={empty:!0}})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsGeoAddressDisplay",function(){return{restrict:"A",scope:{address:"<rbsGeoAddressDisplay",reference:"<?"},templateUrl:"/rbs-geo-address-display.twig"}})}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsGeoAddressEditor",["RbsChange.AjaxAPI",function(e){return{restrict:"A",scope:{address:"=",valid:"=",zoneCode:"=",addresses:"<?",precheckSaveAddress:"<?"},templateUrl:"/rbs-geo-address-editor.twig",link:function(a,o,r){if(a.blockId=t++,a.manageName="none",a.countries=[],a.fieldsDef=[],a.address?(angular.isObject(a.address.common)||(a.address.common={addressFieldsId:null}),angular.isObject(a.address.fields)||(a.address.fields={countryCode:null})):a.address={common:{addressFieldsId:null},fields:{countryCode:null}},r.hasOwnProperty("manageName")?"optional"==r.manageName||"none"==r.manageName?(a.manageName=r.manageName,a.precheckSaveAddress&&"optional"==r.manageName&&(a.address.common.useName=!0)):a.manageName="required":a.manageName="none",a.precheckSaveAddress&&!a.address.common.name){var n=o.find("[data-default-address-name]").attr("data-default-address-name");a.address.common.name=function e(t,o){var r=t+(o>1?" "+o:"");if(angular.isArray(a.addresses))for(var n=0;n<a.addresses.length;n++)if(r==a.addresses[n].common.name)return e(t,o+1);return r}(n,1)}a.saveAvailable=!1,e.getData("Rbs/Geo/CheckNewAddressEligibility").then(function(e){a.saveAvailable=e.data.items[0].isEligible},function(){}),a.$watch("zoneCode",function(t){e.getData("Rbs/Geo/AddressFieldsCountries/",{zoneCode:t}).then(function(e){a.countries=e.data.items;var t=a.address.fields.countryCode;t&&(a.address.common.addressFieldsId=a.getAddressFieldsId(t))},function(e){console.log("addressFieldsCountries error",e),a.countries=[]})}),a.countryTitle=function(e){for(var t=0;t<a.countries.length;t++)if(a.countries[t].common.code==e)return a.countries[t].common.title;return e},a.getAddressFieldsId=function(e){for(var t=0;t<a.countries.length;t++)if(a.countries[t].common.code==e)return a.countries[t].common.addressFieldsId;return null},a.$watch("countries",function(e){if(angular.isArray(e)&&e.length){var t=null,o=null;angular.forEach(e,function(e){null===o?o=e.common.code:o!==e.common.code&&(o=!1),null===t?t=e.common.addressFieldsId:t!==e.common.addressFieldsId&&(t=!1)}),o?a.address.fields.countryCode=o:t&&(a.address.common.addressFieldsId=t)}}),a.$watch("address.fields.countryCode",function(e){if(e){var t=a.getAddressFieldsId(e);t&&(a.address.common.addressFieldsId=t)}}),a.$watch("address.common.addressFieldsId",function(t){t&&e.getData("Rbs/Geo/AddressFields/"+t,{}).then(function(e){a.generateFieldsEditor(e.data.dataSets)},function(e){console.log("addressFields error",e),a.fieldsDef=[]})}),a.$watch("addressForm.$invalid",function(e){a.valid=!e}),a.generateFieldsEditor=function(e){var t=e.fields;if(angular.isObject(t)){var o;a.fieldsDef=[];for(var r=0;r<t.length;r++)if("countryCode"!=(o=t[r]).name){a.fieldsDef.push(o);var n=null;a.address.fields.hasOwnProperty(o.name)&&(n=a.address.fields[o.name]),null===n&&(n=o.defaultValue,a.address.fields[o.name]=n)}}}}}}]);var t=0;e.directive("rbsGeoAddressUniqueName",function(){return{restrict:"A",scope:!1,require:"ngModel",link:function(e,t,a,o){o.$validators.geoAddressUniqueName=function(t){if(!angular.isArray(e.addresses))return!0;for(var a=0;a<e.addresses.length;a++)if(e.address!=e.addresses[a]&&t==e.addresses[a].common.name)return!1;return!0}}}})}(),function(){"use strict";angular.module("RbsChangeApp").controller("rbsGeoManageAddressesController",["$scope","RbsChange.AjaxAPI","$element","RbsChange.ModalStack",function(e,t,a,o){function r(){t.getData("Rbs/Geo/Address/",{}).then(function(t){e.data.addresses=t.data.items},function(t){e.data.addresses=[],console.log("loadAddresses error",t)})}e.data={addresses:[],newAddress:null,isNewAddressValid:!1,editedAddress:null,backupAddress:null,isEditedAddressValid:!1,addressToDelete:null},e.openedModal=null,e.errors=[],e.openEditAddressForm=function(t){e.data.editedAddress=t,e.data.backupAddress=angular.copy(t)},e.cancelEdition=function(){var t=[];angular.forEach(e.data.addresses,function(a){a.common.id===e.data.backupAddress.common.id?t.push(e.data.backupAddress):t.push(a)}),e.data.addresses=t,e.data.editedAddress=null,e.data.backupAddress=null},e.setDefaultAddress=function(e,a){var o=e.common.id;e.default[a]=!0,t.putData("Rbs/Geo/Address/"+o,e).then(function(){r()},function(e){console.log("setDefaultAddress error",e)})},e.updateAddress=function(){var a=e.data.editedAddress.common.id;t.putData("Rbs/Geo/Address/"+a,e.data.editedAddress).then(function(t){var o=t.data.dataSets,r=[];angular.forEach(e.data.addresses,function(e){e.common.id==a?r.push(o):r.push(e)}),e.data.addresses=r,e.data.editedAddress=null,e.data.backupAddress=null},function(e){console.log("updateAddress error",e)})},e.openDialog=function(t){e.data.addressToDelete=t;var a={templateUrl:"/rbs-geo-delete-address-confirm-modal.twig",backdropClass:"modal-backdrop-rbs-geo-delete-address-confirmation",windowClass:"modal-rbs-geo-delete-address-confirmation",size:"lg",scope:e};e.data.openedModal=o.open(a)},e.confirmDelete=function(){e.deleteAddress(e.data.addressToDelete),o.close(e.openedModal),e.openedModal=null,e.data.addressToDelete=null},e.deleteAddress=function(a){var o=a.common.id;t.deleteData("Rbs/Geo/Address/"+o,e.data.editedAddress).then(function(){var t=[];angular.forEach(e.data.addresses,function(e){e.common.id!=o&&t.push(e)}),e.data.addresses=t},function(e){console.log("deleteAddress error",e)})},e.openNewAddressForm=function(){e.data.newAddress={common:{name:null},fields:{}};var t=a.offset();t&&t.hasOwnProperty("top")&&jQuery("html, body").animate({scrollTop:t.top-20},500)},e.clearAddress=function(){e.data.newAddress={common:{name:null},fields:{}}},e.cancelCreation=function(){e.data.newAddress=null}
1,e.addNewAddress=function(){t.postData("Rbs/Geo/Address/",e.data.newAddress).then(function(t){var a=t.data.dataSets;e.data.addresses.push(a),e.data.newAddress=null},function(t){e.errors.push(t.data.message)})},r()}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsGeoManageAddressesControllerPreloaded",["$scope","RbsChange.AjaxAPI","$element","RbsChange.ModalStack","$compile",function(e,t,a,o,r){var n=!1;function i(e){return JSON.parse(document.querySelector("#"+e+' input[name="addressData"]').value)}function s(o,n){t.reloadBlock(e.blockName,e.blockId,o,e.blockNavigationContext).then(function(t){var o=jQuery(jQuery.parseHTML(t.data.dataSets.html)).filter(n).html();a.find(n).html(o),r(a.find(n))(e)},function(e){console.error("[RbsGeoManageAddresses] error reloading block:",e)})}e.data={newAddress:null,isNewAddressValid:!1,editedAddress:null,isEditedAddressValid:!1,addressToDelete:null},e.openedModal=null,e.openEditAddressForm=function(t){e.data.editedAddress=i(t)},e.cancelEdition=function(){e.data.editedAddress=null},e.setDefaultAddress=function(a,o){if(!n){n=!0;var r=i(a);r.default[o]=!0,t.putData("Rbs/Geo/Address/"+r.common.id,r).then(function(){s(e.blockParameters,".content"),n=!1},function(e){console.error("setDefaultAddress error",e),n=!1})}},e.updateAddress=function(){if(!n){n=!0;var a=e.data.editedAddress.common.id;t.putData("Rbs/Geo/Address/"+a,e.data.editedAddress).then(function(){e.data.editedAddress=null,s(e.blockParameters,".content"),n=!1},function(e){console.error("updateAddress error",e),n=!1})}},e.openDialog=function(t){e.data.addressToDelete=i(t);var a={templateUrl:"/rbs-geo-delete-address-confirm-modal.twig",backdropClass:"modal-backdrop-rbs-geo-delete-address-confirmation",windowClass:"modal-rbs-geo-delete-address-confirmation",size:"lg",scope:e};e.data.openedModal=o.open(a)},e.confirmDelete=function(){e.deleteAddress(e.data.addressToDelete),o.close(e.openedModal),e.data.addressToDelete=null,e.openedModal=null},e.deleteAddress=function(a){if(!n){n=!0;var o=a.common.id;t.deleteData("Rbs/Geo/Address/"+o,e.data.editedAddress).then(function(){s(e.blockParameters,".content"),n=!1},function(e){console.error("deleteAddress error",e),n=!1})}},e.openNewAddressForm=function(){e.data.newAddress={common:{name:null},fields:{}};var t=a.offset();t&&t.hasOwnProperty("top")&&jQuery("html, body").animate({scrollTop:t.top-20},500)},e.clearAddress=function(){e.data.newAddress={common:{name:null},fields:{}}},e.cancelCreation=function(){e.data.newAddress=null},e.addNewAddress=function(){n||(n=!0,t.postData("Rbs/Geo/Address/",e.data.newAddress).then(function(){e.data.newAddress=null,s(e.blockParameters,".content"),n=!1},function(t){var a=angular.copy(e.blockParameters);a.errorMessage=t.data.message,a.renderPart="errorMessage",s(a,".error-message"),n=!1}))}}])}(),function(e){"use strict";var t=angular.module("RbsChangeApp");t.directive("rbsMediaPictograms",function(){return{restrict:"A",templateUrl:"/rbs-media-pictograms.twig",scope:{mediaPictograms:"=rbsMediaPictograms"},link:function(e,t,a){e.format=angular.isString(a.pictogramFormat)?a.pictogramFormat:"pictogram",e.position={vertical:"bottom",horizontal:"right"},e.$watch("mediaPictograms",function(t){e.pictograms=[],angular.forEach(t,function(t){angular.isObject(t)&&(angular.isObject(t.formats)&&(t=t.formats),angular.isString(t[e.format])&&e.pictograms.push({src:t[e.format],alt:angular.isString(t.alt)?t.alt:null}))})}),e.ngClasses={main:{},size:{},maxSize:{}},e.ngClasses.size["image-format-"+e.format+"-size"]=!0,e.ngClasses.maxSize["image-format-"+e.format+"-max-size"]=!0;var o=angular.isString(a.pictogramPosition)?a.pictogramPosition.split(" "):[];if(1!==o.length||"none"!==o[0]){for(var r=0;r<o.length;r++)switch(o[r]){case"top":case"bottom":e.position.vertical=o[r];break;case"left":case"center":case"right":e.position.horizontal=o[r]}e.ngClasses.main["media-pictograms-position"]=!0,e.ngClasses.main["media-pictograms-format-"+e.format]=!0,e.ngClasses.main["media-pictograms-"+e.position.vertical]=!0,e.ngClasses.main["media-pictograms-"+e.position.horizontal]=!0}}}}),t.directive("rbsMediaVisuals",["RbsChange.ModalStack","$timeout",function(t,a){return{restrict:"A",templateUrl:"/rbs-media-visuals.twig",scope:{mediaVisuals:"=rbsMediaVisuals",pictograms:"=",animations:"="},link:function(o,r,n){o.visualFormat=angular.isString(n.visualFormat)?n.visualFormat:"detail",o.thumbnailFormat=angular.isString(n.thumbnailFormat)?n.thumbnailFormat:"detailThumbnail",o.thumbnailPosition=angular.isString(n.thumbnailPosition)?n.thumbnailPosition:"right",o.pictogramFormat=angular.isString(n.pictogramFormat)?n.pictogramFormat:"pictogram",o.pictogramPosition=angular.isString(n.pictogramPosition)?n.pictogramPosition:null,o.animationPosition=angular.isString(n.animationPosition)?n.animationPosition:null,o.shownIndex=0,n.zoomType=n.zoomType?n.zoomType:"hover",o.zoom={enabled:n.enableZoom&&"false"!==n.enableZoom&&"none"!==n.zoomType,type:n.zoomType,shown:!1},o.disableLinkClick=function(){return"hover"===o.zoom.type||"modal"===o.zoom.type},a(function(){o.disableLinkClick()&&r.find(".media-visuals-main [data-index] a").click(function(e){e.preventDefault()})},250),o.$watch("mediaVisuals",function(e){o.shownIndex=0,o.visual
1s=[],angular.forEach(e,function(e){angular.isObject(e)&&(angular.isObject(e.formats)&&(e=e.formats),angular.isString(e[o.visualFormat])&&angular.isString(e[o.thumbnailFormat])&&o.visuals.push({title:angular.isString(e.title)?e.title:angular.isString(e.alt)?e.alt:null,src:e[o.visualFormat],thumbnailSrc:e[o.thumbnailFormat],originalSrc:angular.isString(e.original)?e.original:null,alt:angular.isString(e.alt)?e.alt:angular.isString(e.title)?e.title:null}))}),o.ngClasses={main:{}},angular.isArray(o.visuals)&&o.visuals.length>1?(o.ngClasses.main["media-visuals-multiple"]=!0,o.ngClasses.main["media-visuals-multiple-"+o.thumbnailPosition]=!0):o.ngClasses.main["media-visuals-single"]=!0,o.ngClasses.main["media-visuals-format-"+o.visualFormat+"-"+o.thumbnailFormat]=!0}),o.showVisual=function(e,t){o.shownIndex=t,e.preventDefault()},o.startZoom=function(){o.zoom.shown=!0;var t=r.find(".media-visuals-main [data-index="+o.shownIndex+"] a"),a=t.find("img"),n=r.find(".media-visuals-zoom"),i=e('<img src="'+t.attr("href")+'" alt="" />');n.append(i),a.mousemove(function(e){var t=i.width()/a.width(),o=i.height()/a.height(),r=a.offset();i.css({top:Math.max(n.height()-i.height(),Math.min(0,n.height()/2-(e.pageY-r.top)*o)),left
1:Math.max(n.width()-i.width(),Math.min(0,n.width()/2-(e.pageX-r.left)*t))})}),a.mouseout(function(){o.zoom.shown=!1,i.remove(),o.$digest(),a.unbind("mousemove"),a.unbind("mouseout")})},o.startModalZoom=function(){var e={templateUrl:"/rbs-media-zoom-modal.twig",backdropClass:"modal-backdrop-rbs-media-zoom",windowClass:"modal-rbs-media-zoom",controller:"RbsMediaZoomModalController",size:"lg",resolve:{visualsData:function(){return{visuals:o.mediaVisuals,pictograms:o.pictograms,animations:o.animations,startIndex:o.shownIndex}}}};t.open(e)}}}}]),t.directive("rbsMediaSliderVisuals",function(){return{restrict:"A",templateUrl:"/rbs-media-slider-visuals.twig",scope:{mediaVisuals:"=rbsMediaSliderVisuals",pictograms:"=",animations:"="},link:function(e,t,a){e.interval=angular.isString(a.interval)?a.interval:5e3,e.visualFormat=angular.isString(a.visualFormat)?a.visualFormat:"detailCompact",e.pictogramFormat=angular.isString(a.pictogramFormat)?a.pictogramFormat:"pictogram",e.pictogramPosition=angular.isString(a.pictogramPosition)?a.pictogramPosition:null,e.animationPosition=angular.isString(a.animationPosition)?a.animationPosition:null,e.startIndex=angular.isString(a.startIndex)?a.startIndex:0;var o=t.find(".carousel");e.left=function(e){e.preventDefault(),o.carousel("prev")},e.right=function(e){e.preventDefault(),o.carousel("next")},e.goTo=function(e){o.carousel(e)},e.$watch("mediaVisuals",function(t){e.visuals=[],angular.forEach(t,function(t){angular.isObject(t)&&(angular.isObject(t.formats)&&(t=t.formats),angular.isString(t[e.visualFormat])&&e.visuals.push({src:t[e.visualFormat],alt:angular.isString(t.alt)?t.alt:null}))}),e.ngClasses={main:{}},angular.isArray(e.visuals)&&e.visuals.length>1?e.ngClasses.main["media-slider-visuals-multiple"]=!0:e.ngClasses.main["media-slider-visuals-single"]=!0,e.ngClasses.main["media-slider-visuals-format-"+e.visualFormat]=!0})}}}),t.controller("RbsMediaZoomModalController",["$scope","visualsData",function(e,t){e.visuals=t.visuals,e.pictograms=t.pictograms,e.animations=t.animations,e.startIndex=t.startIndex}])}(jQuery),function(e){"use strict";angular.module("RbsChangeApp").directive("rbsMediaPreloadedVisuals",function(){return{restrict:"A",scope:!0,link:function(t,a){t.showVisual=function(t,o){a.find(".media-visuals-main-item").each(function(){var t=e(this);t.attr("data-index")===o+""?t.show():t.hide()}),t.preventDefault()},t.startHoverZoom=function(o,r){var n=a.find(".media-visuals-main [data-index="+r+"] a"),i=n.find("img"),s=a.find(".media-visuals-zoom"),c=e('<img src="'+n.attr("href")+'" alt="" />');s.append(c),s.removeClass("hidden"),i.mousemove(function(e){var t=c.width()/i.width(),a=c.height()/i.height(),o=i.offset();c.css({top:Math.max(s.height()-c.height(),Math.min(0,s.height()/2-(e.pageY-o.top)*a)),left:Math.max(s.width()-c.width(),Math.min(0,s.width()/2-(e.pageX-o.left)*t))})}),i.mouseout(function(){s.addClass("hidden"),c.remove(),t.$digest(),i.unbind("mousemove"),i.unbind("mouseout")})}}}})}(jQuery),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t){var a=e[0]||e[1];return t.showPrices=a.showPrices(),t.currencyCode=a.getCurrencyCode(),t.parameters=a.parameters(),t.quantity=t.line.quantity,!t.line.unitBaseAmountWithTaxes&&t.line.baseAmountWithTaxes&&(t.line.unitBaseAmountWithTaxes=t.line.baseAmountWithTaxes/t.quantity),!t.line.unitBaseAmountWithoutTaxes&&t.line.baseAmountWithoutTaxes&&(t.line.unitBaseAmountWithoutTaxes=t.line.baseAmountWithoutTaxes/t.quantity),a}e.directive("rbsCommerceCartDeliveries",["$rootScope","$compile","RbsChange.AjaxAPI","$window","RbsChange.ModalStack",function(e,t,a,o,r){return{restrict:"A",templateUrl:"/rbs-commerce-cart-deliveries.twig",controller:["$scope",function(r){var n=this,i={};this.loadCartData=function(){a.openWaitingModal(),a.getData("Rbs/Commerce/Cart",null,{detailed:!0,URLFormats:"canonical",visualFormats:r.parameters.imageFormats}).then(function(e){var t=e.data.dataSets;t&&!angular.isArray(t)&&n.setCartData(t),a.closeWaitingModal()},function(e){console.error("loadCartData",e),a.closeWaitingModal()})},this.updateCartData=function(e,t){a.openWaitingModal();var o=a.putData("Rbs/Commerce/Cart",e,{detailed:!0,URLFormats:"canonical",visualFormats:r.parameters.imageFormats});return o.then(function(e){var o=e.data.dataSets;o&&!angular.isArray(o)&&o.deliveries.length?(n.setCartData(o),a.closeWaitingModal(t)):location.reload()},function(e){console.error("updateCartData",e),a.closeWaitingModal(t)}),o},this.updateCartLinesData=function(e,t){a.openWaitingModal();var o=a.putData("Rbs/Commerce/Cart/Lines",{lines:e},{detailed:!0,URLFormats:"canonical",visualFormats:r.parameters.imageFormats});return o.then(function(e){var o=e.data.dataSets;o&&!angular.isArray(o)&&o.deliveries.length?(n.setCartData(o),a.closeWaitingModal(t)):location.reload()},function(e){console.error("updateCartData",e),a.closeWaitingModal(t)}),o},r.cancelPayment=function(e){return a.openWaitingModal(),a.putData("Rbs/Commerce/Payment/cancel",{mergeProductsConflict:!0}).then(function(){a.closeWaitingModal(e),o.location.reload(!0)},function(t){console.error("cancelPayment",t),a.closeWaitingModal(e)})},this.moveLineTo=function(e,t,a,o,r){var n={moveLines:[{key:t,deliveryIndex:e,storeId:a,reservation:1==o}]};return this.updateCartData(n,r)},this.showPrices=function(e){var t=r.parameters&&(r.parameters.displayPricesWithTax||r.parameters.displayPricesWithoutTax);return e&&t?{currencyCode:this.getCurrencyCode(),displayPricesWithTax:this.parameters("displayPricesWithTax"),displayPricesWithoutTax:this.parameters("displayPricesWithoutTax"),handleWebStorePrices:this.parameters("handleWebStorePrices"),handleStorePrices:this.parameters("handleStorePrices")}:t},this.getCurrencyCode=function(){return r.currencyCode},this.parameters=function(e){return r.parameters?angular.isUndefined(e)?r.parameters:r.parameters[e]:null},this.getCartData=function(){return r.cartData},this.setCartData=function(t){if(r.cartData=t,r.currencyCode=null,i={},t&&this.showPrices()){r.currencyCode=t.common.currencyCode;var a=r.parameters.displayPricesWithTax;t.amounts=a?{linesAmountWithTaxes:0,displayTotalWithTaxes:!0}:{linesAmountWithoutTaxes:0,displayTotalWithTaxes:!1},t.amounts.displayTaxes=t.processData&&t.processData.capabilities&&t.processData.capabilities.useTax&&!t.processData.capabilities.taxByZone,angular.forEach(t.deliveries,function(e,o){e.deliveryIndex=o,a?t.amounts.linesAmountWithTaxes+=e.linesAmountWithTaxes:t.amounts.linesAmountWithoutTaxes+=e.linesAmountWithoutTaxes})}e.$broadcast("rbsRefreshCart",{cart:t})};var s={};this.replaceChildren=function(e,a,o){var r=a.$id;s[r]&&(s[r].$destroy(),s[r]=null),e.children().remove(),s[r]=a.$new(),t(o)(s[r],function(t){e.append(t)})},this.redrawLines=function(e,t,a){var o=t.find('[data-role="cart-lines"]'),r=angular.isFunction(this.getLineDirectiveName)?this.getLineDirectiveName:function(e){return e.options&&e.options.directiveName?e.options.directiveName:"rbs-commerce-cart-line-default"},n=[];angular.forEach(e,function(e,t){n.push('<tr data-line="delivery.lines['+t+']" data-delivery="delivery" '+r(e)+'=""></tr>')}),this.replaceChildren(o,a,n.join(""))},this.hasModifications=function(){var e=!1;return angular.forEach(i,function(t){t&&(e=!0)}),e},this.setModification=function(e,t){t?i[e]=!0:delete i[e]}
1,r.$watch("cartData",function(e){e&&(r.acceptTermsAndConditions=r.cartData.options.acceptTermsAndConditions)}),r.parameters=r.blockParameters;var c=a.globalVar("cartData");c?this.setCartData(c):this.loadCartData()}],link:function(e,t,a,o){function r(){return n(e.coupons.newCode)}function n(t){var a=angular.copy(e.cartData.coupons);a.push({code:t});var r={setCoupons:a},n=o.updateCartData(r);n?n.then(function(){var r=o.getCartData();i(r),e.coupons.couponsNotFound=a.filter(function(e){for(var t in r.updated.setCoupons)if(r.updated.setCoupons.hasOwnProperty(t)&&e.code.toLowerCase()===r.updated.setCoupons[t].code.toLowerCase())return!1;return!0}),e.coupons.couponsNotFound.length||t!==e.coupons.newCode||(e.coupons.newCode=null)},function(e){console.error("doAddCoupon",e)}):i(o.getCartData());return n}function i(t){if(e.amountLines=[],e.showPrices&&e.cartData.amounts&&1===e.cartData.deliveries.length){var a=t.amounts.displayTotalWithTaxes,o=t.deliveries[0];angular.forEach(o.modifiers,function(t){var o=a?t.amountWithTaxes:t.amountWithoutTaxes;if(o&&t.title){var r={amount:o,title:t.title};e.amountLines.push(r)}}),a||(e.cartData.amounts.totalAmountWithoutTaxes=o.totalAmountWithoutTaxes)}e.showFeesEvaluation=function(e){if(e.processData.options.simplified)return!1;for(var t=0;t<e.deliveries.length;t++)if(!e.deliveries[t].mode||!e.deliveries[t].mode.common||!e.deliveries[t].mode.common.id)return!0;return!1}(t)}e.showPrices=o.showPrices(),e.currencyCode=o.getCurrencyCode(),e.$watch("acceptTermsAndConditions",function(e,t){if(e!==t&&angular.isDefined(e)){var a={updateContext:{acceptTermsAndConditions:1==e}};o.updateCartData(a)}}),e.hasModifications=function(){return o.hasModifications()},e.countLines=function(){var t=0;return angular.forEach(e.cartData.deliveries,function(e){t+=e.lines.length}),t},e.canOrder=function(){var t=e.cartData;return!!(t&&t.processData&&t.processData.canOrder)&&!e.hasModifications()},e.coupons={newCode:null,add:r,remove:function(t){var a=[];angular.forEach(e.cartData.coupons,function(e,o){o!==t&&a.push(e)});var r={setCoupons:a},n=o.updateCartData(r);if(n)n.then(function(){i(o.getCartData())},function(e){console.error("removeCoupon",e)});else{i(o.getCartData())}return n},addSuggestion:function(e){return n(e.code)},maximumUsableCoupon:e.cartData.processData.capabilities.maximumUsableCoupon||null,submit:function(t){void 0!==t&&13===t.keyCode&&e.coupons.newCode&&r()}},e.$watch("cartData",function(){i(e.cartData)})}}}]),e.directive("rbsCommerceCartDelivery",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-cart-delivery.twig",require:"^rbsCommerceCartDeliveries",scope:{delivery:"=",cartData:"=",showAllAmounts:"="},link:function(t,a,o,r){t.showPrices=r.showPrices(),t.currencyCode=r.getCurrencyCode(),t.showToOtherStore=!!t.delivery.storeId,t.$watchCollection("delivery.lines",function(e){e&&e.length?r.redrawLines(e,a,t):r.redrawLines([],a,t)}),t.selectStore=function(a){var o={templateUrl:"/rbs-catalog-show-store-availability-modal.twig",backdropClass:"modal-backdrop-rbs-catalog-show-store-availability",windowClass:"modal-rbs-catalog-show-store-availability",size:"lg",controller:"RbsCatalogShowStoreAvailabilityModalDeliveryCtrl",resolve:{delivery:function(){return t.delivery},forReservation:function(){return!0===a},forPickUp:function(){return!1===a},cartController:function(){return r},pricesConfiguration:function(){return r.showPrices(!0)}}};e.open(o)}}}}]),e.directive("rbsCommerceCartDeliveryMessages",[function(){return{restrict:"A",templateUrl:function(e,t){return"/rbs-commerce-cart-messages"+(t.templateSuffix?t.templateSuffix:"")+".twig"},scope:{messages:"<rbsCommerceCartDeliveryMessages",delivery:"<?"},link:function(e){e.$watch("delivery.messages",function(t){angular.isArray(t)&&(e.messages=t)})}}}]),e.directive("rbsCommerceCartGlobalMessages",[function(){return{restrict:"A",templateUrl:function(e,t){return"/rbs-commerce-cart-messages"+(t.templateSuffix?t.templateSuffix:"")+".twig"},scope:{messages:"<rbsCommerceCartGlobalMessages",cart:"<?"},link:function(e){e.$watch("cart.common.messages",function(t){angular.isArray(t)&&(e.messages=t)})}}}]),e.directive("rbsCommerceSuggestCoupons",[function(){return{restrict:"A",templateUrl:function(e,t){return"/rbs-commerce-suggest-coupons"+(t.templateSuffix?t.templateSuffix:"")+".twig"},scope:{suggestedCoupons:"<rbsCommerceSuggestCoupons",usedCoupons:"<",addSuggestion:"<"},link:function(e){var t=[];function a(){t.length&&e.usedCoupons&&e.usedCoupons.length?(e.coupons=[],angular.forEach(t,function(t){var a=!1;angular.forEach(e.usedCoupons,function(e){t.code===e.code&&(a=!0)}),a||e.coupons.push(t)})):e.coupons=t}
1e.$watchCollection("suggestedCoupons",function(e){angular.isArray(e)&&(t=e,a())}),e.$watchCollection("usedCoupons",a)}}}]),e.controller("RbsCatalogShowStoreAvailabilityModalDeliveryCtrl",["RbsChange.ModalStack","$scope","$uibModalInstance","delivery","forReservation","forPickUp","cartController","pricesConfiguration",function(e,t,a,o,r,n,i,s){t.allowSelect=!0,t.forReservation=r,t.forPickUp=n,t.storeId=o.storeId,t.skuQuantities={},t.pricesConfiguration=s,angular.forEach(o.lines,function(e){e.codeSKU&&(t.skuQuantities.hasOwnProperty(e.codeSKU)?t.skuQuantities[e.codeSKU]+=e.quantity:t.skuQuantities[e.codeSKU]=e.quantity)}),t.selectStore=function(e){var t=e.common.id,a={updateDeliveries:[{index:o.deliveryIndex,storeId:t,reservation:r,store:e}]};i.updateCartData(a,1)};var c=function(){e.showPrevious()};a.result.then(c,c),t.cancel=function(){a.dismiss("cancel")}}]),e.directive("rbsCommerceCartLineDefault",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-default.twig",require:["?^rbsCommerceCart","?^rbsCommerceCartDeliveries"],scope:{line:"=",delivery:"="},link:function(t,a,o,r){var n=r[0]||r[1],i=t.line.key,s=n.getCartData();t.line.errors={},t.line.errorsCount=0,angular.forEach(s.processData.errors,function(e){for(var a=0;a<e.lineKeys.length;a++)if(e.lineKeys[a]===i){t.line.errors[e.code]=e,t.line.errorsCount++;break}}),t.line.errorsCount&&a.addClass("contains-error"),t.showPrices=n.showPrices(),t.currencyCode=n.getCurrencyCode(),t.parameters=n.parameters(),t.quantity=t.line.quantity,t.cartController=n,!t.line.unitBaseAmountWithTaxes&&t.line.baseAmountWithTaxes&&(t.line.unitBaseAmountWithTaxes=t.line.baseAmountWithTaxes/t.quantity),!t.line.unitBaseAmountWithoutTaxes&&t.line.baseAmountWithoutTaxes&&(t.line.unitBaseAmountWithoutTaxes=t.line.baseAmountWithoutTaxes/t.quantity),t.updateQuantity=function(){n.updateCartLinesData([{key:t.line.key,quantity:t.quantity}])},t.remove=function(){n.updateCartLinesData([{key:t.line.key,quantity:0}])},t.$watch("quantity",function(e){n.setModification("line_"+t.line.key,e!=t.line.quantity)}),t.disabledQuantity=function(){return t.quantity==t.line.quantity&&n.hasModifications()},t.openUpdateVariantPopup=function(){var a={templateUrl:"/rbs-commerce-cart-line-update-variant-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-cart-line-update",windowClass:"modal-rbs-commerce-cart-line-update",size:"lg",controller:"RbsCommerceCartLineUpdateVariantController",scope:t};e.open(a)},t.openUpdateDeliveryPopup=function(){var a={templateUrl:"/rbs-commerce-cart-line-update-delivery-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-cart-line-update",windowClass:"modal-rbs-commerce-cart-line-update",size:"lg",controller:"RbsCommerceCartLineUpdateDeliveryController",scope:t};e.open(a)}}}}]),e.directive("rbsCommerceCartLineFreeRemoval",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-free-removal.twig",require:["?^rbsCommerceCart","?^rbsCommerceCartDeliveries"],replace:!0,scope:{line:"=",delivery:"="},link:function(a,o,r,n){var i=t(n,a);a.remove=function(){i.updateCartLinesData([{key:a.line.key,quantity:0}])},a.openConfirmPopup=function(){var t={templateUrl:"/rbs-commerce-cart-line-remove-free-product-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-cart-line-update",windowClass:"modal-rbs-commerce-cart-line-update",size:"md",controller:"RbsCommerceCartLineRemoveFreeProductController",scope:a};e.open(t)}}}}]),e.controller("RbsCommerceCartLineRemoveFreeProductController",["RbsChange.ModalStack","RbsChange.AjaxAPI","$scope","$uibModalInstance",function(e,t,a,o){var r=function(){e.showPrevious()};o.result.then(r,r),a.cancel=function(){o.dismiss("cancel")}}]),e.controller("RbsCommerceCartLineUpdateVariantController",["RbsChange.ModalStack","RbsChange.AjaxAPI","$scope","$uibModalInstance",function(e,t,a,o){var r=a.cartController;a.productData=null,a.rootProductData=null;var n=a.line.product,i=r.getCartData().processData;a.formatProductData=function(){var e,t=a.productData,o=t.rootProduct;a.rootProductData?o=a.rootProductData:a.rootProductData=o,a.visual
1s=t.common.visuals||[],a.pictograms=[],t.typology&&t.typology.attributes&&(e=t.typology.pictograms)&&e.value&&e.value.length&&(a.pictograms=e.value),!a.pictograms.length&&o&&o.typology&&o.typology.attributes&&(e=o.typology.attributes.pictograms)&&e.value&&e.value.length&&(a.pictograms=e.value)},a.ajaxData={webStoreId:i.webStoreId,billingAreaId:i.billingAreaId,zone:a.delivery.zone||i.billingZone,storeId:a.delivery.storeId||a.parameters.storeId};var s=angular.isDefined(a.parameters.modalImageFormats)?a.parameters.modalImageFormats:"detailCompact,pictogram";a.ajaxParams={visualFormats:s};var c={visualFormats:s,dataSetNames:"rootProduct"};t.getData("Rbs/Catalog/Product/"+n.common.id,a.ajaxData,c).then(function(e){a.productData=e.data.dataSets},function(e){console.error("Rbs/Catalog/Product/"+n.common.id,e),a.cancel()}),a.$watch("productData",function(e){e&&a.formatProductData()});var l=function(){e.showPrevious()};a.updateProduct=function(){var e=a.productData;if(e&&e.cart){var t={key:a.line.key,productId:e.common.id};r.updateCartLinesData([t],1)}},o.result.then(l,l),a.cancel=function(){o.dismiss("cancel")}}]),e.controller("RbsCommerceCartLineUpdateDeliveryController",["RbsChange.ModalStack","RbsChange.AjaxAPI","$scope","$uibModalInstance",function(e,t,a,o){a.extendedCartBox=null,a.selectStoreForReservation=null;var r=a.cartController,n=a.line,i={key:n.key};t.getData("Rbs/Commerce/Cart/Lines",{lines:[i]}).then(function(e){var t=e.data.items[0].categories;a.extendedCartBox=t,a.extendedCartBox.dualColumns=!!t.allCategories,a.extendedCartBox.dualStore=!(!t.hasOwnProperty.store||!t.hasOwnProperty.reservation),a.extendedCartBox.prices=e.data.items[0].prices},function(e){console.error("Rbs/Commerce/Cart/Lines",n.key,e),a.cancel()}),a.getStoreAvailabilityModalOption=function(e,t){return{templateUrl:"/rbs-catalog-show-store-availability-modal.twig",backdropClass:"modal-backdrop-rbs-catalog-show-store-availability",windowClass:"modal-rbs-catalog-show-store-availability",size:"lg",controller:"RbsCatalogShowStoreAvailabilityModalCtrl",resolve:{skuQuantities:function(){var e={};return e[n.skuCapabilities.codeSKU]=n.quantity,e},selectStoreCallBack:function(){return e},forReservation:function(){return!0===t},forPickUp:function(){return!1===t},currentStoreId:function(){return a.extendedCartBox.storeCategories.storeId||a.parameters.storeId},pricesConfiguration:function(){return r.showPrices(!0)}}}},a.selectStore=function(t){a.selectStoreForReservation=t;var o=a.getStoreAvailabilityModalOption(a.onCartBoxSelectStore,t);e.open(o)},a.onCartBoxSelectStore=function(e){var t=a.extendedCartBox.storeCategories;if(t){t.storeId=e.common.id,t.storeTitle=e.common.title;var o=a.extendedCartBox.store;o&&o.allowed&&e.storeShipping.storePickUpDateTime&&(o.storeId=t.storeId,o.storeTitle=t.storeTitle,o.pickUpDateTime=o.formattedPickUpDateTime=null,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice?(o.pickUpDateTime=e.storeShipping.pickUpDateTime,o.formattedPickUpDateTime=e.storeShipping.formattedPickUpDateTime,t.oldCountStoresWithStock=o.countStoresWithStock,o.countStoresWithStock=0):angular.isDefined(t.oldCountStoresWithStock)&&(o.countStoresWithStock=t.oldCountStoresWithStock),o.disabled=!o.pickUpDateTime,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice||(o.disabled=!0)),(o=a.extendedCartBox.reservation)&&o.allowed&&e.storeShipping.reservationPickUpDateTime&&(o.storeId=t.storeId,o.storeTitle=t.storeTitle,o.pickUpDateTime=o.formattedPickUpDateTime=null,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice?(o.pickUpDateTime=e.storeShipping.reservationPickUpDateTime,o.formattedPickUpDateTime=e.storeShipping.reservationFormattedPickUpDateTime,t.oldCountStoresWithStock=o.countStoresWithStock,o.countStoresWithStock=0):angular.isDefined(t.oldCountStoresWithStock)&&(o.countStoresWithStock=t.oldCountStoresWithStock),o.disabled=!o.pickUpDateTime,!e.totalPrice||e.totalPrice.hasPrice||e.totalPrice.hasStorePrice||(o.disabled=!0))}},a.addProductExtended=function(e){return i.category=e,i.storeId=0,"store"===e&&a.extendedCartBox.store.storeId?i.storeId=a.extendedCartBox.store.storeId:"reservation"===e&&a.extendedCartBox.reservation.storeId?i.storeId=a.extendedCartBox.reservation.storeId:a.extendedCartBox.storeCategories&&(i.storeId=a.extendedCartBox.storeCategories.storeId||0),r.updateCartLinesData([i],1)};var s=function(){e.showPrevious()};o.result.then(s,s),a.cancel=function(){o.dismiss("cancel")},a.buttonTitle=function(e){return e&&e.button?e.disabled&&e.disabledButton?e.disabledButton:!e.disabled&&e.restockDate&&e.restockButton?e.restockButton:e.button:""}}]),e.directive("rbsCommerceLineActions",function(){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-actions.twig",require:"?^rbsCommerceCartDeliveries",link:function(e,t,a,o){if(e.showToOtherStore=e.showModify=!1,o&&e.delivery&&e.line&&e.line.skuCapabilities){var r=e.line.skuCapabilities,n=r.countDeliveries,i=e.delivery.category;"store"==i?e.showToOtherStore=r.multipleStoreDeliveries:"reservation"==i&&(e.showToOtherStore=r.multipleReservationDeliveries),e.showModify=e.showToOtherStore||n>1}}}}),e.directive("rbsCommerceCartLineReadonly",function(){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-readonly.twig",require:["?^rbsCommerceCart","?^rbsCommerceCartDeliveries"],replace:!0,scope:{line:"="},link:function(e,a,o,r){t(r,e)}}}),e.directive("rbsCommerceCartProductConflict",function(){return{restrict:"A",templateUrl:"/rbs-commerce-cart-product-conflict.twig",scope:!1,link:function(e){e.product=e.productC
1onflict.product}}}),e.directive("rbsCommerceCartLineVisual",function(){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-visual.twig",scope:{product:"="},link:function(e,t,a){e.format=angular.isString(a.format)?a.format:"cartItem",e.ngClasses={size:{},maxSize:{},iconSize:{}},e.ngClasses.size["image-format-"+e.format+"-size"]=!0,e.ngClasses.maxSize["image-format-"+e.format+"-max-size"]=!0,e.ngClasses.iconSize["image-format-"+e.format+"-icon-size"]=!0}}}),e.directive("rbsCommerceShippingFeesEvaluation",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-fees-evaluation.twig",replace:!1,scope:!1,link:function(t,a,o){var r=o.hasOwnProperty("visualFormats")?o.visualFormats:"modeThumbnail";t.displayPricesWithoutTax=t.parameters.displayPricesWithoutTax,t.displayPricesWithTax=t.parameters.displayPricesWithTax,t.data=null,t.evaluateFees=function(){e.openWaitingModal(),e.getData("Rbs/Commerce/Cart/ShippingFeesEvaluation",{},{visualFormats:r}).then(function(a){t.data=a.data.dataSets,e.closeWaitingModal()},function(a){console.error("shippingFeesEvaluation",a),t.data=null,e.closeWaitingModal()})}}}}]),e.directive("rbsCommerceShortCart",["$rootScope","RbsChange.AjaxAPI","RbsChange.ResponsiveSummaries",function(e,t,a){return{restrict:"A",link:function(o,r,n){var i=o.blockId;function s(e){if(!e)return o.readOnly=!1,void(o.cartData=e);if(o.readOnly=e.processData.locked,!e.amounts){var t=o.parameters&&o.parameters.displayPricesWithTax,a=o.parameters&&o.parameters.displayPricesWithoutTax;(t||a)&&(e.amounts=t?{linesAmountWithTaxes:0}:{linesAmountWithoutTaxes:0},angular.forEach(e.deliveries,function(a){t?e.amounts.linesAmountWithTaxes+=a.linesAmountWithTaxes:e.amounts.linesAmountWithoutTaxes+=a.linesAmountWithoutTaxes}))}e.lines||(e.lines=[],angular.forEach(e.deliveries,function(t){angular.forEach(t.lines,function(t){e.lines.push(t)})})),o.cartData=e}o.parameters=t.getBlockParameters(i),s(t.globalVar("cartData"));var c={detailed:!1,URLFormats:"canonical",visualFormats:o.parameters.imageFormats};function l(){o.loading=!0,t.getData("Rbs/Commerce/Cart",null,c).then(function(e){var t=e.data.dataSets;!t||angular.isArray(t)?s(null):s(t),o.loading=!1},function(e){s(null),o.loading=!1,console.error("loadCurrentCart",e)})}o.loading=!1,angular.isUndefined(o.cartData)?l():o.readOnly=o.cartData.processData.locked,o.updateLineQuantity=function(e,a){!function(e){o.loading=!0,t.openWaitingModal(n.deleteProductWaitingMessage);var a=t.putData("Rbs/Commerce/Cart/Lines",{lines:e},c);a.then(function(e){var a=e.data.dataSets;a&&!angular.isArray(a)&&s(a),r.find(".dropdown-toggle").dropdown("toggle"),o.loading=!1,t.closeWaitingModal()},function(e){console.error("updateCartData",e),o.loading=!1,t.closeWaitingModal()})}([{key:e,quantity:a}])},e.$on("rbsRefreshCart",function(e,t){t&&t.hasOwnProperty("cart")?(s(t.cart),o.loading=!1):l()}),e.$on("rbsUserConnected",function(){l()}),a.registerItem(i,o,'<li data-rbs-commerce-short-cart-responsive-summary=""></li>')}}}]),e.directive("rbsCommerceShortCartResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-short-cart-responsive-summary.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-commerce-short-cart-responsive-summary-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-short-cart-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-commerce-short-cart-responsive-summary",scope:t};e.open(a)}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("RbsCommerceShortCartPreloaded",["$rootScope","$scope","RbsChange.AjaxAPI","RbsChange.ResponsiveSummaries","$compile","$element","$attrs","$timeout",function(e,t,a,o,r,n,i,s){t.data={productCount:i.productCount};var c,l=t.blockId;e.$on("rbsRefreshCart",function(e,a){a&&"RbsCommerceShortCartPreloaded"===a.from||t.reloadBlock(!1)}),e.$on("rbsUserConnected",function(){t.reloadBlock(!1)}),t.updateLineQuantity=function(o,r){var n={key:o,quantity:r};a.openWaitingModal(i.deleteProductWaitingMessage);var s={detailed:!1,URLFormats:"canonical",visualFormats:t.blockParameters.imageFormats};a.putData("Rbs/Commerce/Cart/Lines",{lines:[n]},s).then(function(a){t.reloadBlock(!0),e.$broadcast("rbsRefreshCart",{cart:a.data.dataSets,from:"RbsCommerceShortCartPreloaded"})},function(e){console.error("updateCartData",e),a.closeWaitingModal()})},o.registerItem(l,t,'<li data-rbs-commerce-short-cart-responsive-summary-preloaded=""></li>'),t.reloadBlock=function(e){c&&s.cancel(c),c=s(function(){c=null,a.reloadBlock(t.blockName,t.blockId,t.blockParameters,t.blockNavigationContext).then(function(o){var r=jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content");
1if(t.injectContent(r,n.find(".content")),t.data.modalTarget){var i=jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".modal-content");t.injectContent(i,t.data.modalTarget)}t.data.productCount=r.attr("data-product-count"),e&&a.closeWaitingModal()},function(t){console.error("[RbsShortCart] error reloading block:",t),e&&a.closeWaitingModal()}),t.injectContent=function(e,a){a.html(e.html()),r(a)(t)}},200)}}]),e.directive("rbsCommerceShortCartResponsiveSummaryPreloaded",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-short-cart-responsive-summary-preloaded.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-commerce-short-cart-responsive-summary-modal-preloaded.twig",backdropClass:"modal-backdrop-rbs-commerce-short-cart-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-commerce-short-cart-responsive-summary",scope:t};e.open(a).closed.then(function(){t.data.modalTarget=null},function(){t.data.modalTarget=null})}}}}]),e.controller("RbsCommerceShortCartModalPreloaded",["$scope","$element",function(e,t){e.data.modalTarget=t.find(".content"),e.reloadBlock(!0)}])}(),function(e){"use strict";var t=angular.module("RbsChangeApp");function a(e,t,a,o){e.linesProducts=0,e.taxesAmount=0;var r=t.find('[data-role="delivery-lines"]'),n=angular.isFunction(e.getLineDirectiveName)?e.getLineDirectiveName:function(){return a},i=e.delivery.lines,s=[];angular.forEach(i,function(t,a){o&&t.options.keyLocked||(s.push('<tr data-line="delivery.lines['+a+']" data-delivery="delivery" data-process-engine="processEngine" data-shipping-mode-info="shippingModeInfo" data-gift-capabilities="giftCapabilities" '+n(t)+'=""></tr>'),e.linesProducts+=t.quantity)}),angular.forEach(e.delivery.totalTaxes,function(t){e.taxesAmount+=t.amount}),e.processEngine.replaceChildren(r,e,s.join(""))}t.directive("rbsCommerceProcess",["$rootScope","$compile","RbsChange.AjaxAPI","$timeout","RbsChange.ModalStack",function(t,a,o,r,n){return{restrict:"A",templateUrl:function(e,t){return"/rbs-commerce-process"+t.templateSuffix+".twig"},controllerAs:"processEngine",controller:["$scope",function(i){var s=this,c=null;function l(e){angular.forEach(i.localStepsData,function(t){t.isLocked=!!e})}function d(e){if(i.cartData=e,e){if(i.cartData.options.hasRemovedModifiers&&i.parameters.handleRemovedModifiersModal&&function(e){var t={templateUrl:"/rbs-commerce-removed-modifiers-in-cart-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-old-modifiers-in-cart",windowClass:"modal-rbs-commerce-old-modifiers-in-cart",size:"lg",controller:"rbsCommerceRemovedModifiersInCartConfirmationModalCtrl",resolve:{deliveries:function(){return e.deliveries},currencyCode:function(){return e.common.currencyCode},controller:function(){return i.processEngine}}};n.open(t)}(i.cartData),l(e.processData.locked),i.simplifiedProcess=e.processData.options.simplified||!1,i.simplifiedProcess)i.allowGift=!1,i.allowPremium=!1,i.steps=["shipping","identification","confirm"];else{i.allowGift=e.processData.capabilities.allowGift||!1,i.allowPremium=e.processData.capabilities.allowPremium||!1;var a=i.steps;i.steps=[];for(var o=0;o<a.length;o++){var r=!0;"gift"===a[o]?r=i.allowGift:"premium"===a[o]&&(r=i.allowPremium),r&&i.steps.push(a[o])}}if(e.process?c=e.process:c&&(e.process=c),!i.currentStep&&e.processData)if(e.processData.locked&&!e.processData.transactionId)s.setCurrentStep("payment");else if(e.processData.currentStep)s.setCurrentStep(e.processData.currentStep);else if(i.simplifiedProcess){var d="identification";if(c&&c.shippingModes)for(var u=0;u<c.shippingModes.length;u++){var p=c.shippingModes[u];if(p&&p.reservation){for(var m=0;m<p.reservation.length;m++){var g=p.reservation[m];if(g&&g.customerReceiptDate&&g.customerReceiptDate.date||g.messageCapabilities&&g.messageCapabilities.allow){d="shipping";break}}if("shipping"===d)break}}s.setCurrentStep(d)}s.showPrices()?i.currencyCode=e.common.currencyCode:i.currencyCode=null,t.$broadcast("rbsRefreshCart",{cart:e})}}function u(){return{detailed:!0,dataSets:"process",visualFormats:i.parameters.imageFormats,URLFormats:"canonical"}}i.currentStep=null,i.steps=["identification","shipping","gift","premium","payment","confirm"],i.localStepsData={},i.loading=!1,i.simplifiedProcess=!1,this.type="order",this.loading=function(e){return angular.isDefined(e)&&i.loading!=(1==e)&&(i.loading=1==e,i.loading?o.openWaitingModal():o.closeWaitingModal()),i.loading},this.loadObjectData=function(){var e=this;e.loading(!0);var t=u(),a=o.getData("Rbs/Commerce/Cart",null,t);return a.then(function(t){var a=t.data.dataSets;a&&!angular.isArray(a)&&d(a),e.loading(!1)},function(t){console.log("loadObjectData error",t),d(null),e.loading(!1)}),a},this.updateObjectData=function(e){var t=this;t.loading(!0);var a=o.putData("Rbs/Commerce/Cart",e,u());return a.then(function(e){var a=e.data.dataSets;a&&!angular.isArray(a)&&d(a),t.loading(!1),i.$broadcast("objectDataUpdated",i.cartData)},function(e){if(console.error("updateObjectData",e),409==e.status&&"CART_LOCKED"===e.data.code&&location.reload(),t.loading(!1),409==e.status&&e.data.data&&"CART_EXPIRED"===e.data.code){n.open({templateUrl:"/rbs-commerce-cart-expired-modal.twig",backdropClass:"modal-backdrop-rbs-commerce-cart-line-update",windowClass:"modal-rbs-commerce-cart-line-update",size:"sm"}).closed.then(function(){e.data.data.redirectUrl?window.location.href=e.data.data.redirectUrl:location.reload()})}}),a},this.getObjectData=function(){return i.cartData},this.showPrices=function(e){var t=i.parameters&&(i.parameters.displayPricesWithTax||i.parameters.displayPricesWithoutTax);return e&&t?{currencyCode:this.getCurrencyCode(),displayPricesWithTax:this.parameters("displayPricesWithTax"),displayPricesWithoutTax:this.parameters("displayPricesWithoutTax"),handleWebStorePrices:this.parameters("handleWebStorePrices"),handleStorePrices:this.parameters("handleStorePrices")}:t},this.getCurrencyCode=function(){return i.currencyCode},this.parameters=function(e){return i.parameters?angular.isUndefined(e)?i.parameters:i.parameters[e]:null},this.getProcessConfigurationInfo=function(){return c};var p={};function m(){var t=e("#"+i.currentStep).offset();t&&t.hasOwnProperty("top")?e("html, body").animate({scrollTop:t.top-20},500):i.currentStep&&r(m,100)}this.replaceChildren=function(e,t,o){var r=t.$id;p[r]&&(p[r].$destroy(),p[r]=null),e.html(o),""!=o&&(p[r]=t.$new(),a(e.contents())(p[r]))},i.$watch("cartData",function(e){e&&(i.currentStep||s.nextStep())}),this.nextStep=function(){this.setCurrentStep(this.getNextStep(i.currentStep))},this.getNextStep=function(e){if(!e)return i.steps[0];for(var t=0;t<i.steps.length-1;t++)if(e==i.steps[t])return i.steps[t+1];return null},this.setCurrentStep=function(e){i.currentStep=e;for(var t=null!==e,a=t,o=0;o<i.steps.length;o++){var n=i.steps[o],s=this.getStepProcessData(n);n==e?(a=!1,s.isCurrent=!0,s.isChecked=a,s.isEnabled=t,t=!1):(s.isCurrent=!1,s.isChecked=a,s.isEnabled=t)}
1e&&(i.$emit("analytics",{category:"process",action:"setCurrentStep",label:e}),r(m,100))},this.getCurrentStep=function(){return i.currentStep},this.getStepProcessData=function(e){var t=i.cartData&&i.cartData.processData&&i.cartData.processData.locked;return null===e?{name:e,isCurrent:!1,isEnabled:!1,isChecked:!1,isLocked:t,processId:c.common.id}:(angular.isObject(i.localStepsData[e])||(i.localStepsData[e]={name:e,isCurrent:!1,isEnabled:!1,isChecked:!1,isLocked:t,processId:c.common.id}),i.localStepsData[e])},i.parameters=i.blockParameters;var g=o.globalVar("cartData");g?d(g):this.loadObjectData(),this.lockProcess=l}],link:function(e,t,a,o){e.showPrices=o.showPrices(),e.isStepCurrent=function(e){return o.getStepProcessData(e).isCurrent},e.isStepEnabled=function(e){return o.getStepProcessData(e).isEnabled},e.isStepChecked=function(e){return o.getStepProcessData(e).isChecked},e.isStepLocked=function(e){return o.getStepProcessData(e).isLocked}}}}]),t.directive("rbsCommerceProcessCartLines",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-cart-lines.twig",scope:{cartData:"=",getLineDirectiveName:"=",processEngine:"="},link:function(e,t){e.showPrices=e.processEngine.showPrices(),e.$watch("cartData",function(a){var o,r,n,i;a&&(o=t.find('[data-role="cart-lines"]'),r=angular.isFunction(e.getLineDirectiveName)?e.getLineDirectiveName:function(e){return"rbs-commerce-process-line-default"},n=e.cartData.lines,i=[],angular.forEach(n,function(e,t){i.push('<tr data-line="cartData.lines['+t+']" data-process-engine="processEngine" '+r(e)+'=""></tr>')}),e.processEngine.replaceChildren(o,e,i.join("")))})}}}),t.directive("rbsCommerceProcessDeliveryLines",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-delivery-lines.twig",scope:{delivery:"=",getLineDirectiveName:"=",processEngine:"=",giftCapabilities:"=",isLocked:"="},link:function(e,t){e.showPrices=e.processEngine.showPrices(),e.currencyCode=e.processEngine.getCurrencyCode(),e.$watch("delivery",function(o){o&&a(e,t,"data-rbs-commerce-process-line-default",!1)}),e.parameters=e.processEngine.parameters()}}}),t.directive("rbsCommerceProcessDeliveryLinesForGift",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-delivery-lines-for-gift.twig",scope:{delivery:"=",getLineDirectiveName:"=",processEngine:"=",giftCapabilities:"=",shippingModeInfo:"="},link:function(e,t){e.showPrices=e.processEngine.showPrices(),e.currencyCode=e.processEngine.getCurrencyCode(),e.$watch("delivery",function(o){o&&a(e,t,"data-rbs-commerce-process-line-for-gift",!0)})}}}),t.controller("rbsCommerceRemovedModifiersInCartConfirmationModalCtrl",["RbsChange.ModalStack","$scope","$uibModalInstance","deliveries","currencyCode","controller",function(e,t,a,o,r,n){t.removedModifiers={},t.currencyCode=r,t.controller=n,t.removedModifiersCount=0,angular.forEach(o,function(e){var a,o;e.options.removedModifiers&&(t.removedModifiersCount+=Object.keys(e.options.removedModifiers).length,angular.extend(t.removedModifiers,(a=e.options.removedModifiers,o=[],angular.forEach(a,function(e){o[e.options.applicationType]||(o[e.options.applicationType]=[]),e.options.freeLines&&angular.forEach(e.options.freeLines,function(t,a){e.options.freeLines[a].product=t.options.product}),o[e.options.applicationType].push(e)}),o)))})}]),t.directive("rbsCommerceCartLineReadonlyModal",function(){return{restrict:"A",templateUrl:"/rbs-commerce-cart-line-readonly.twig",replace:!0,link:function(e){e.showPrices=!1,e.quantity=e.line.quantity,!e.line.unitBaseAmountWithTaxes&&e.line.baseAmountWithTaxes&&(e.line.unitBaseAmountWithTaxes=e.line.baseAmountWithTaxes/e.quantity),!e.line.unitBaseAmountWithoutTaxes&&e.line.baseAmountWithoutTaxes&&(e.line.unitBaseAmountWithoutTaxes=e.line.baseAmountWithoutTaxes/e.quantity)}}})}(window.jQuery),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t){var a=[],o=e.processData.capabilities;return angular.forEach(e.deliveries,function(r,n){var i={id:r.modeId,category:r.category,storeId:r.storeId,address:r.address,zone:r.zone,options:r.options?r.options:{},shippingZone:o.requiredTax?r.zone:o.taxByZone?t.taxesZones:t.shippingZone,taxesZones:t.taxesZones,delivery:r,deliveryIndex:n,processId:e.processData.capabilities.id,webStoreId:e.processData.webStoreId};a.push(i)}),a}function a(e,t,a){e.loading(!0);var o=a.putData("Rbs/Commerce/Payment/cancel",{});return o.then(function(){e.lockProcess(!1);var a=e.getObjectData();a.processData.locked=!1,t.$broadcast("rbsRefreshCart",{cart:a}),e.loading(!1)},function(t){console.error(t),e.loading(!1)}),o}e.directive("rbsCommerceProcessLineDefault",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-line-default.twig",replace:!0,scope:{line:"=",delivery:"=",processEngine:"=",giftCapabilities:"="},link:function(e){e.showPrices=e.processEngine.showPrices(),e.currencyCode=e.processEngine.getCurrencyCode(),e.parameters=e.processEngine.parameters(),e.quantity=e.line.quantity,!e.line.unitBaseAmountWithTaxes&&e.line.baseAmountWithTaxes&&(e.line.unitBaseAmountWithTaxes=e.line.baseAmountWithTaxes/e.quantity),!e.line.unitBaseAmountWithoutTaxes&&e.line.baseAmountWithoutTaxes&&(e.line.unitBaseAmountWithoutTaxes=e.line.baseAmountWithoutTaxes/e.quantity)}}}),e.directive("rbsCommerceProcessLineForGift",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-line-for-gift.twig",replace:!0,scope:{line:"=",delivery:"=",processEngine:"=",giftCapabilities:"=",shippingModeInfo:"="},link:function(e){e.showPrices=!1,e.currencyCode=e.processEngine.getCurrencyCode(),e.parameters=e.processEngine.parameters(),e.quantity=e.line.quantity}}}),e.directive("rbsCommerceCustomerGenericFieldsComplete",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-customer-generic-fields-complete.twig",link:function(t){t.requireNames=t.processData.hasStoreDelivery,t.dis
1playTitleCode=!0,t.allowedTitles=t.processData.allowedTitles,t.profiles=t.profiles||{},t.profiles.Rbs_Commerce={professional:!1},function(e,t){e.config=null,e.establishmentIdentifierInvalid=!1,e.companyNameInvalid=!1,e.taxIdentifierInvalid=!1,e.$watch("profiles.Rbs_Commerce.professional",function(a){a&&(t.getData("resources/business-validation-config").then(function(t){e.countries=t.data.countries,e.$watch("profiles.Rbs_Commerce.countryCode",function(t){e.config=e.countries[t],e.validateFields()})},function(t){console.error("Unable to retrieve countries configurations",t),e.countries=[]}),e.$watch("profiles.Rbs_Commerce.establishmentIdentifier",function(){e.validateFields()}),e.$watch("profiles.Rbs_Commerce.taxIdentifier",function(){e.validateFields()}),e.$watch("profiles.Rbs_Commerce.companyName",function(){e.validateFields()}))}),e.validateFields=function(){if(e.establishmentIdentifierInvalid=!1,e.companyNameInvalid=!1,e.taxIdentifierInvalid=!1,!e.config)return;let t=e.profiles.Rbs_Commerce.establishmentIdentifier;t&&e.config.establishment_id.regex&&!new RegExp(e.config.establishment_id.regex).test(t)&&(e.establishmentIdentifierInvalid=!0),e.profiles.Rbs_Commerce.companyName||(e.companyNameInvalid=!0);let a=e.profiles.Rbs_Commerce.taxIdentifier;a&&e.config.tax_id&&e.config.tax_id.regex&&!new RegExp(e.config.tax_id.regex).test(a)&&(e.taxIdentifierInvalid=!0)},e.isProfessionalFormValid=function(){if(e.profiles.Rbs_Commerce?.professional){let t=e.profiles.Rbs_Commerce;return t.countryCode&&t.companyName&&!e.establishmentIdentifierInvalid&&!e.companyNameInvalid&&!e.taxIdentifierInvalid}return!0}}(t,e)}}}]),e.directive("rbsCommerceCustomerGenericFields",function(){return{restrict:"A",templateUrl:"/rbs-commerce-customer-generic-fields.twig",link:function(e){e.requireNames=e.processData.hasStoreDelivery,e.displayTitleCode=!0,e.allowedTitles=e.processData.allowedTitles}}}),e.directive("rbsCommerceIdentificationStepValidation",function(){return{restrict:"A",link:function(e){var t=e.onRefreshScopeByCart;e.onRefreshScopeByCart=function(){t&&t(),e.processData.hasRequiredProperties=e.processData.hasRequiredProperties&&!!(!e.processData.hasStoreDelivery||e.profiles.Rbs_User.firstName&&e.profiles.Rbs_User.lastName),e.processData.fullName=function(e){if(e.profiles&&e.profiles.Rbs_User){var t="";if(e.profiles.Rbs_User.titleCode&&angular.forEach(e.allowedTitles,function(a){a.value===e.profiles.Rbs_User.titleCode&&(t=a.title+" ")}),e.profiles.Rbs_User.firstName||e.profiles.Rbs_User.lastName)return t+(e.profiles.Rbs_User.firstName?e.profiles.Rbs_User.firstName:"")+" "+(e.profiles.Rbs_User.lastName?e.profiles.Rbs_User.lastName:"")}return null}(e.processData)}}}}),e.directive("rbsCommerceCustomerGenericFieldsReadonly",function(){return{restrict:"A",templateUrl:"/rbs-commerce-customer-generic-fields-readonly.twig",link:function(e){}}}),e.directive("rbsCommerceIdentificationStep",["$rootScope","RbsChange.AjaxAPI","$timeout",function(e,t,o){return{restrict:"A",templateUrl:"/rbs-commerce-identification-step.twig",scope:{processEngine:"=",hideStepTitle:"=",hideStepAction:"=",blockData:"="},link:function(r){var n=r.processEngine.getObjectData(),i=0,s=null;function c(e){var t=angular.extend(r.processData,e.process.identification,e.customer);t.hasOwnProperty("rememberMe")||(r.processData.rememberMe=!0),t.options.socialId&&(r.userSocialId=t.options.socialId),t.options&&(t.options.profiles&&(t.profiles={},angular.extend(t.profiles,t.options.profiles),r.profiles=t.profiles),r.processData.requireTokenValidation=!!t.options.mobilePhoneRequestId,delete t.options),t.billingAddress&&delete t.billingAddress,t.requireMobilePhone=e.processData.capabilities.allowMobilePhone&&e.processData.hasStoreDelivery||!1,t.mobilePhoneValidation=!1!==e.processData.capabilities.mobilePhoneValidation,t.hasStoreDelivery=e.processData.hasStoreDelivery||!1,t.anonymousProcess=e.processData.capabilities.anonymousProcess||!1,t.precheckPersistAccount=e.processData.capabilities.precheckPersistAccount||!1,t.anonymousProcess&&!t.precheckPersistAccount||(t.persistAccount=!0),t.customerFields=e.processData.capabilities.customerFields,t.hasRequiredProperties=!(!t.email||t.requireMobilePhone&&!t.mobilePhone),angular.isFunction(r.onRefreshScopeByCart)&&r.onRefreshScopeByCart()}
1function l(){s&&(o.cancel(s),s=null),i<=2&&(s=o(function(){r.processData.canRequestNewCode=!0},12e4))}r.processData=r.processEngine.getStepProcessData("identification"),r.processData.realm=r.processEngine.parameters("realm"),r.processData.canRequestNewCode=!1,r.allowedTitles=null,r.profiles={},r.userSocialId=null,r.allowShowPassword=r.processEngine.parameters("allowShowPassword"),c(n),(r.processData.userId&&r.processData.confirmed||r.userSocialId)&&r.processData.hasRequiredProperties&&r.processData.isCurrent&&r.processEngine.nextStep(),r.login=function(){r.processData.errors=[];var a={login:r.processData.login,password:r.processData.password,realm:r.processData.realm,rememberMe:r.processData.rememberMe||!1,ignoreProfileCart:!0};t.putData("Rbs/User/Login",a).then(function(t){var a={accessorId:t.data.dataSets.user.accessorId,accessorName:t.data.dataSets.user.name};e.$broadcast("rbsUserConnected",a),r.processEngine.loadObjectData().then(function(){c(r.processEngine.getObjectData()),r.processData.hasRequiredProperties&&r.processEngine.nextStep()})},function(e){r.processData.errors=[e.data.message],r.processData.password=null,console.log("login error",e)})},r.confirm=function(){r.processData.errors=[];var e={login:r.processData.login||r.processData.email,password:r.processData.password,realm:r.processData.realm};t.putData("Rbs/User/Login",e).then(function(){var e=r.processEngine.getObjectData();r.processData.confirmed=!0,e.process.identification.confirmed=!0,r.processData.hasRequiredProperties&&r.processEngine.nextStep()},function(e){r.processData.errors=[e.data.message],r.processData.password=null,console.log("login error",e)})},window.addEventListener("pageshow",function(e){setTimeout(function(){r.$apply(function(){let e=document.querySelector('input[name="login"]');e&&e.value&&!r.processData.login&&(r.processData.login=e.value)})},100)}),!r.processData.requireMobilePhone&&r.processData.requireTokenValidation&&(r.processData.requireTokenValidation=!1),r.processData.requireTokenValidation&&l(),r.accountProperties=["email","mobilePhone","newPassword"],r.saveAccount=function(){r.processData.errors=[];var e={};angular.forEach(r.accountProperties,function(t){"email"!==t&&"newPassword"!==t&&(e[t]=r.processData[t]||null)}),e.profiles=r.profiles||null;var t={setAccount:e},a=r.processEngine.updateObjectData(t);a?a.then(function(){c(r.processEngine.getObjectData()),r.processData.hasRequiredProperties&&r.processEngine.nextStep()},function(){}):r.processEngine.nextStep()},r.submitNewAccount=function(){r.processData.errors=[],r.processData.requireMobilePhone||(r.processData.mobilePhone=null);var e={};angular.forEach(r.accountProperties,function(t){e[t]=r.processData[t]||null}),e.profiles=r.profiles||null;var t={setAccount:e},a=r.processEngine.updateObjectData(t);a?a.then(function(){c(r.processEngine.getObjectData()),r.processData.hasRequiredProperties&&r.processEngine.nextStep()},function(e){412===e.status&&"INVALID_PASSWORD"===e.data.code&&(r.blockData.invalidPassword=!0,r.blockData.invalidPasswordMessage=e.data.message,r.blockData.invalidPasswordMessages=e.data.data&&e.data.data.errorMessages||[e.data.message])}):r.processEngine.nextStep()},r.clearPasswordError=function(){r.blockData.invalidPassword=!1,r.blockData.invalidPasswordMessage=null,r.blockData.invalidPasswordMessages=null},r.changeUser=function(){r.processData.errors=[],t.getData("Rbs/User/Logout",{keepCart:!0}).then(function(){e.$broadcast("rbsUserConnected",{accessorId:null,accessorName:null}),r.processData.userId=0,r.processData.login=null,r.processData.email=null,r.processData.confirmed=!1;r.processEngine.updateObjectData({updateContext:{acceptTermsAndConditions:!0}})},function(e){r.processData.errors=[e.data.message],console.log("changeUser error",e)})},r.setCurrentStep=function(){r.processEngine.setCurrentStep("identification")},r.cancelPayment=function(){var o=a(r.processEngine,e,t);return o.then(function(){r.setCurrentStep()},function(){}),o},r.sendValidationToken=function(){r.processEngine.getStepProcessData(r.processEngine.getCurrentStep()).errors=[];var e={updateToken:{validateToken:r.processData.tokenValidation}},t=r.processEngine.updateObjectData(e);t&&(r.tokenError=null,t.then(function(){var e=r.processEngine.getObjectData();for(var t in e.updated.setAccount)if("tokenValidation"===e.updated.setAccount[t].key){r.tokenError=e.updated.setAccount[t].value;break}c(e)},function(){r.processData.newValidationToken&&delete r.processData.newValidationToken}))},r.newValidationToken=function(){r.processData.errors=[],r.processData.canRequestNewCode=!1,r.processData.newValidationToken=!0;var e=r.processEngine.updateObjectData({updateToken:{requestNewToken:!0}});e&&e.then(function(){i++,c(r.processEngine.getObjectData())}),l()},r.next=function(){r.processEngine.nextStep()}
1,r.$watch("processData.persistAccount",function(e){!e&&r.processData.newPassword&&(r.processData.newPassword=r.processData.confirmPassword=null)})}}}]),e.directive("rbsCommerceShippingStep",["RbsChange.AjaxAPI","$rootScope",function(e,o){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-step.twig",scope:{processEngine:"="},controller:["$scope",function(a){a.processData=a.processEngine.getStepProcessData("shipping"),a.processData.errors=[],a.userAddresses=[],a.shippingZone=null,a.taxesZones=null;var o=a.processEngine.getObjectData();a.cartData=o;var r=o.processData.capabilities;a.giftCapabilities={allow:r.allowGift,allowMessage:r.allowGiftMessage,allowWrap:r.allowGiftWrap,messageMaxLength:r.giftMessageMaxLength,presentation:o.process.gift||{},giftSelectionMode:r.giftSelectionMode},a.processData.userId=o.customer.userId,a.simplifiedProcess=o.processData.options.simplified||!1;var n=a.processEngine.getProcessConfigurationInfo();a.shippingModesInfo=n&&n.shippingModes?n.shippingModes:{},a.shippingZone=n.shippingZone,a.taxesZones=r.taxBehavior>1?n.taxesZones:null,a.processData.shippingModes=t(o,a),a.processData.gift=o.gift,a.processData.userId&&r.atHomeDelivery&&e.getData("Rbs/Geo/Address/",{userId:a.processData.userId,matchingZone:a.shippingZone||a.taxesZones}).then(function(e){a.userAddresses=e.data.items},function(e){console.error("Rbs/Geo/Address/",e)})}],link:function(r){function n(){var e=r.processEngine.getObjectData();r.processData.shippingModes=t(e,r),r.processData.gift=e.gift,r.processEngine.nextStep(),"gift"!==r.processEngine.getCurrentStep()||e.gift.containsGift||r.processEngine.nextStep(),"premium"===r.processEngine.getCurrentStep()&&e.premium&&e.premium.active&&r.processEngine.nextStep()}r.isCategory=function(e,t,a){if(!a)return!1;var o=a.index;if(r.shippingModesInfo[o]&&r.shippingModesInfo[o].hasOwnProperty(t))for(var n=r.shippingModesInfo[o][t],i=0;i<n.length;i++)if(n[i].common.id==e.id)return!0;return!1},r.hasCategory=function(e,t){if(!t)return!1;var a=t.index;return!(!r.shippingModesInfo[a]||!r.shippingModesInfo[a].hasOwnProperty(e))&&(!(!r.shippingModesInfo[a][e].length&&"atHome"!==e)&&("store"===t.category?"store"===e:"reservation"===t.category?"reservation"===e:"store"!==e&&"reservation"!==e))},r.hasNoCategory=function(e){return!(r.hasCategory("reservation",e)||r.hasCategory("store",e)||r.hasCategory("relay",e)||r.hasCategory("atHome",e))},r.setCurrentStep=function(){r.processEngine.setCurrentStep("shipping")},r.cancelPayment=function(){var t=a(r.processEngine,o,e);return t.then(function(){r.setCurrentStep()},function(){}),t},r.shippingModesValid=function(){for(var e=0;e<r.processData.shippingModes.length;e++){var t=r.processData.shippingModes[e];if(!angular.isFunction(t.valid)||!t.valid()||angular.isFunction(t.isTransportable)&&!t.isTransportable()||angular.isFunction(t.isEligibilityCheckRequired)&&!t.isEligibilityCheckRequired())return!1}return!0},r.next=function(){var e=r.saveMode();e?e.then(function(){n()}):n()},r.$on("objectDataUpdated",function(e,a){r.processData.isCurrent||(r.processData.shippingModes=t(a,r),r.processData.gift=a.gift)}),r.saveMode=function(){var e={setShippingModes:[],updateGifts:[]};return angular.forEach(r.processData.shippingModes,function(t){angular.isFunction(t.valid)&&t.valid()&&e.setShippingModes.push(t.valid(!0)),e.updateGifts.push({index:t.delivery.index,containsGift:t.delivery.options.containsGift||!1,giftSelectionMode:r.giftCapabilities.giftSelectionMode||!1})}),r.processEngine.updateObjectData(e)}}}}]),e.directive("rbsCommerceModeSelector",function(){return{restrict:"A",templateUrl:"/rbs-commerce-mode-selector.twig",scope:{shippingMode:"=",shippingModeInfo:"=",showPrices:"=",processEngine:"=",giftCapabilities:"="},link:function(e,t,a){e.showRadio=a.showRadio,e.$watch("shippingMode.id",function(t){t==e.shippingModeInfo.common.id&&(e.shippingMode.category=e.shippingModeInfo.common.category)})}}}),e.directive("rbsCommerceShippingAtHomeStep",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-at-home-step.twig",scope:{processId:"=",shippingMode:"=",shippingModesInfo:"=",userId:"=",userAddresses:"=",hasOtherModes:"=",processEngine:"=",giftCapabilities:"="},link:function(t){t.loadShippingModes=!0,t.atHomeAddress={common:{},fields:{},lines:[]},t.atHomeAddressIsValid=!1,t.modeIds={},t.edition=!1,t.editionForm=!1,t.shippingModesInfo=[],t.precheckSaveAddress=!1,t.copyDeliveryToBillingAddress=!0,t.copyDeliveryToBillingChoice={value:!1},t.accountRequest=!1;var a=t.processEngine.getObjectData();function o(e){var a,o,r=t.shippingMode;if(e){var n={id:r.id,title:r.title,lineKeys:r.lineKeys,wishCustomerReceiptDate:r.wishCustomerReceiptDate,address:(a=t.atHomeAddress,o={common:{addressFieldsId:a.c
1ommon.addressFieldsId},fields:a.fields,lines:a.lines},a.common.id&&(o.common.id=a.common.id),a.common.useName&&a.common.name&&(o.common.useName=a.common.useName,o.common.name=a.common.name),a.default&&(o.default=a.default),o),options:{}};return angular.isFunction(r.getTransportableOptions)&&(n.options=r.getTransportableOptions()),t.copyDeliveryToBillingChoice.value&&(n.options.copyDeliveryToBillingChoice=t.copyDeliveryToBillingChoice.value),r.options.message&&(n.options.message=r.options.message),r.options.containsGift&&(n.options.containsGift=r.options.containsGift,r.options.giftAddMessage&&(n.options.giftAddMessage=r.options.giftAddMessage),r.options.giftMessage&&(n.options.giftMessage=r.options.giftMessage),r.options.giftAddWrap&&(n.options.giftAddWrap=r.options.giftAddWrap)),n}return!t.edition&&t.modeIds[r.id]&&!t.isEmptyAddress(t.atHomeAddress)&&!r.options.invalidMessage}a&&a.process&&(t.precheckSaveAddress=a.process.common.precheckSaveAddress,"order"===t.processEngine.type&&(t.copyDeliveryToBillingAddress=a.process.common.copyDeliveryToBillingAddress)),a&&a.customer&&(t.accountRequest=a.customer.options.accountRequest),t.getDefaultUserAddress=function(e){var t,a=null;if(angular.isArray(e))for(var o=0;o<e.length;o++)if((t=e[o]).default){if(t.default.shipping)return t;t.default.default&&(a=t)}return a},t.isEmptyAddress=function(e){return!(angular.isObject(e)&&!angular.isArray(e)&&e.fields&&e.fields.countryCode&&e.lines&&e.lines.length>1)},t.isInvalidAddress=function(e){return angular.isObject(e)&&e.fields&&e.fields.countryCode&&e.lines&&0===e.lines.length},t.showPrices=t.processEngine.showPrices(!0),t.$watch("atHomeAddress",function(a){if(!t.isEmptyAddress(a)){t.processEngine.loading(!0),t.loadShippingModes=!0;var r={dataSets:"fee",visualFormats:t.processEngine.parameters("imageFormats")},n=t.shippingMode.delivery;e.getData("Rbs/Commerce/Process/"+t.processId+"/ShippingModesByAddress/",{address:a,deliveryIndex:n?n.index:null},r).then(function(e){if(t.atHomeAddress===a){var r=!1;t.shippingModesInfo=e.data.items,t.modeIds={},angular.forEach(e.data.items,function(e){t.modeIds[e.common.id]=!0,e.common.id==t.shippingMode.id&&(t.shippingMode.valid=o,r=!0)}),r||t.hasOtherModes||(e.data.items.length?(t.shippingMode.id=e.data.items[0].common.id,t.shippingMode.valid=o):t.shippingMode.id=0),t.loadShippingModes=!1,t.processEngine.loading(!1)}},function(e){t.loadShippingModes=!1,t.atHomeAddress===a&&(console.error("shippingModesByAddress",e),t.hasOtherModes||(t.shippingMode.id=0),t.processEngine.loading(!1))})}}),t.$watch("shippingMode.id",function(e){if(e){var a=!1;angular.forEach(t.shippingModesInfo,function(r){r.common.id==e&&(a=!0,t.shippingMode.title=r.common.title,angular.isObject(t.shippingMode.options)&&!angular.isArray(t.shippingMode.options)||(t.shippingMode.options={}),t.setAddress(t.atHomeAddress),t.shippingMode.options.category=r.common.category,t.shippingMode.valid=o)}),!a&&t.edition&&t.setAddress(t.atHomeAddress)}}),t.setAddress=function(e){t.shippingMode&&(t.shippingMode.atHomeAddress=e),t.atHomeAddress=e,t.edition=!1,t.editionForm=!1,t.matchingZoneError=null,t.normalizeAddresses=[]},t.editAddress=function(e){t.shippingMode.id=0,t.matchingZoneError=null,t.edition=!0,t.editionForm=!!e,t.normalizeAddresses=[]},t.chooseAddress=function(){t.newAddress(),0===t.userAddresses.length?t.newAddress():(t.shippingMode.id=0,t.matchingZoneError=null,t.edition=!0,t.editionForm=!1)},t.newAddress=function(){t.shippingMode.id=0,t.matchingZoneError=null,t.edition=!0,t.editionForm=!0;var e=t.processEngine.getObjectData(),a=e&&e.customer&&e.customer.options&&e.customer.options.profiles,o=a?Object.assign({},a.Rbs_User,a.Rbs_Commerce):null;t.atHomeAddress={common:{addressFieldsId:t.atHomeAddress.common.addressFieldsId,useName:t.precheckSaveAddress&&(t.userId||t.accountRequest)},fields:{firstName:o&&o.firstName,lastName:o&&o.lastName,titleCode:o&&o.titleCode,countryCode:t.atHomeAddress.fields.countryCode,companyName:o&&o.companyName,establishmentIdentifier:o&&o.establishmentIdentifier,taxIdentifier:o&&o.taxIdentifier},lines:[]}},t.selectUserAddress=function(e,a){t.validateAddress(e,a)},t.useAddress=function(a){var o=a||angular.copy(t.atHomeAddress);t.userId&&o.common&&o.common.useName&&o.common.name?o.common.id?(t.processEngine.loading(!0),e.putData("Rbs/Geo/Address/"+o.common.id,o).then(function(e){var a=e.data.dataSets;t.setAddress(a),angular.forEach(t.userAddresses,function(e,r){e.common.id===o.common.id&&(t.userAddresses[r]=a)}),t.processEngine.loading(!1)},function(e){console.log("useAddress error",e),t.processEngine.loading(!1)})):(o.default={default:!0,shipping:!0},angular.forEach(t.userAddresses,function(e){e.default&&(e.default.default&&delete o.default.default,e.default.shipping&&delete o.default.shipping)}),t.processEngine.loading(!0),e.postData("Rbs/Geo/Address/",o).then(function(e){var a=e.data.dataSets;t.setAddress(a),t.userAddresses.push(a),t.processEngine.loading(!1)},function(e){console.log("useAddress error",e),t.processEngine.loading(!1)})):t.setAddress(o)},t.setTaxZone=function(e){if(t.processEngine.getObjectData().common.zone!==e){var a={setZone:{zone:e,deliveryIndex:t.shippingMode.deliveryIndex}};t.processEngine.updateObjectData(a)}},t.validateAddress=function(a,o){t.validAddress=null,t.normalizeAddresses=[],t.isAddressFromBook=a.common&&a.common.id;
1var r={address:a,contextCode:"shipping",skipNormalize:!!o},n=t.shippingMode.shippingZone;n&&(r.matchingZone=n);var i=t.shippingMode.taxesZones;i&&(r.compatibleZones=i),t.processEngine.getObjectData().common&&(r.targetIdentifier=t.processEngine.getObjectData().common.identifier,r.targetType="cart"),t.matchingZoneError=null,t.processEngine.loading(!0);var s=e.postData("Rbs/Geo/ValidateAddress",r);return s.then(function(e){if(t.validAddress=e.data.dataSets.address,t.normalizeAddresses=e.data.dataSets.normalizeAddresses||[],t.isOriginalAddressValid=e.data.dataSets.isOriginalAddressValid||!1,t.errorMessages=e.data.dataSets.errorMessages||[],t.normalizeAddresses.length&&(t.editionForm=!1,t.validAddress.common&&t.validAddress.common.id&&angular.forEach(t.normalizeAddresses,function(e){e.common.useName=!0})),i&&i.length)if(angular.isArray(t.validAddress.compatibleZones)&&t.validAddress.compatibleZones.length){t.normalizeAddresses.length||t.useAddress(t.validAddress);var a=t.validAddress.compatibleZones[0];t.setTaxZone(a)}else t.setTaxZone(null);else t.normalizeAddresses.length||t.useAddress(t.validAddress);t.processEngine.loading(!1)},function(e){409===e.status&&e.data&&e.data.error&&("matchingZone"===e.data.code||"compatibleZones"===e.data.code||"normalizeAddress"===e.data.code)?t.errorMessages=[e.data.message]:console.error("validateAddress error",e),t.processEngine.loading(!1)}),s},"atHome"!==(t.shippingMode&&t.shippingMode.category)||t.isEmptyAddress(t.shippingMode.address)?t.userId?t.$wat
1chCollection("userAddresses",function(e){if(t.isEmptyAddress(t.atHomeAddress)){var a=t.getDefaultUserAddress(e);a?t.setAddress(a):t.hasOtherModes||t.chooseAddress()}}):!t.hasOtherModes&&t.isEmptyAddress(t.atHomeAddress)&&t.chooseAddress():(t.shippingMode.options.copyDeliveryToBillingChoice&&(t.copyDeliveryToBillingChoice.value=t.shippingMode.options.copyDeliveryToBillingChoice),t.setAddress(t.shippingMode.address))}}}]),e.directive("rbsCommerceSummaryShippingAtHomeStep",function(){return{restrict:"A",templateUrl:"/rbs-commerce-summary-shipping-at-home-step.twig",scope:{shippingMode:"=",shippingModesInfo:"=",processEngine:"=",giftCapabilities:"="},link:function(e){}}}),e.directive("rbsCommerceShippingOtherStep",function(){return{restrict:"A",template:"<div></div>",scope:{processId:"=",shippingMode:"=",shippingModesInfo:"=",userId:"=",userAddresses:"=",hasOtherModes:"=",processEngine:"=",giftCapabilities:"="},link:function(e,t,a){var o="true"===a.summary;e.showPrices=e.processEngine.showPrices(!0),e.processEngine&&"return"===e.processEngine.type&&(e.showPrices=!1),e.$watchCollection("shippingModesInfo",function(a){var r=[];angular.forEach(a,function(t,n){var i;o?t.common.id==e.shippingMode.id&&(i=t.directiveNames?t.directiveNames.summary:null)&&(r.push("<div "+i+'=""'),r.push(' data-shipping-mode="shippingMode"'),r.push(' data-shipping-mode-info="shippingModesInfo['+n+']"'),r.push(' data-process-engine="processEngine"'),r.push("></div>")):(i=t.directiveNames?t.directiveNames.editor:null)&&(r.push('<div class="mode-selector">'),r.push('<div data-rbs-commerce-mode-selector=""'),r.push(' class="mode-selector-main"'),(a.length>1||e.hasOtherModes)&&r.push(' data-show-radio="true"'),r.push(' data-show-prices="showPrices"'),r.push(' data-shipping-mode="shippingMode"'),r.push(' data-shipping-mode-info="shippingModesInfo['+n+']"'),r.push(' data-process-engine="processEngine"'),r.push(' data-gift-capabilities="giftCapabilities"'),r.push("></div>"),r.push("<div "+i+'=""'),r.push(' class="mode-selector-options"'),r.push(' data-ng-if="shippingMode.id == shippingModesInfo['+n+'].common.id"'),r.push(' data-process-id="processId"'),r.push(' data-show-prices="showPrices"'),r.push(' data-shipping-mode="shippingMode"'),r.push(' data-shipping-mode-info="shippingModesInfo['+n+']"'),r.push(' data-user-id="userId"'),r.push(' data-user-addresses="userAddresses"'),r.push(' data-process-engine="processEngine"'),r.push(' data-gift-capabilities="giftCapabilities"'),r.push("></div>"),r.push("</div>"))}),e.processEngine.replaceChildren(t,e,r.join(""))})}}}),e.directive("rbsCommerceWishCustomerReceiptDate",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-wish-customer-receipt-date.twig",scope:!0,link:function(t){if((t.dates={customerDates:null,customerDate:null,customerDateTime:null},t.state="hidden",t.shippingModeInfo&&t.shippingModeInfo.customerReceiptDate&&t.shippingMode&&t.shippingMode.delivery)&&t.shippingModeInfo.customerReceiptDate.date){t.state="loading",t.shippingMode.delivery.wishCustomerReceiptDate&&(t.shippingMode.wishCustomerReceiptDate=t.shippingMode.delivery.wishCustomerReceiptDate),t.method={value:t.shippingMode.wishCustomerReceiptDate?"specific":"asap"};var a=t.shippingModeInfo.common.category;t.customerPickUp="store"===a||"reservation"===a||"relay"===a;var o={mode:t.shippingModeInfo.common.id,deliveryIndex:t.shippingMode.delivery.index};t.shippingMode.storeId&&(o.store=t.shippingMode.storeId),t.$watch("dates.customerDates",function(e){t.shippingMode.options.invalidMessage=!1}),e.getData("Rbs/Commerce/WishCustomerReceiptDates",o).then(function(e){t.state="noDates";var a=e.data.dataSets.dates;t.dates.customerDates=a,t.asapDate=e.data.dataSets.asapDate;var o=a&&a.length||0;if(o){t.state="asDates";var r=t.shippingMode.wishCustomerReceiptDate;if(t.dates.customerDate=a[0],r){n(r,a[0]);for(var i=1;i<o;i++){var s=a[i];if(!(r>=s.value))break;t.dates.customerDate=s,n(r,s)}}}else t.state="noDates",t.shippingMode.wishCustomerReceiptDate=null},function(){t.state="noDates",t.shippingMode.wishCustomerReceiptDate=null});var r=null;t.$watch("dates.customerDate",function(e){if(e)if(e.hours&&e.hours.length){if(!t.dates.customerDateTime&&(t.dates.customerDateTime=e.hours[0],r&&r!==e.hours[0].title))for(var a=1;a<e.hours.length;a++)if(r===e.hours[a].title)return void(t.dates.customerDateTime=e.hours[a])}else"specific"===t.method.value&&(t.shippingMode.wishCustomerReceiptDate=e.value),t.dates.customerDateTime=null}),t.$watch("dates.customerDateTime",function(e){e&&(r=e.title,"specific"===t.method.value&&(t.shippingMode.wishCustomerReceiptDate=e.value))}),t.$watch("method.value",function(e){"asap"===e?t.shippingMode.wishCustomerReceiptDate=null:"specific"===e&&(t.dates.customerDateTime?t.shippingMode.wishCustomerReceiptDate=t.dates.customerDateTime.value:t.dates.customerDate&&(t.shippingMode.wishCustomerReceiptDate=t.dates.customerDate.value))}),t.onDateChange=function(){t.method.value="specific",t.dates.customerDateTime?t.shippingMode.wishCustomerReceiptDate=t.dates.customerDateTime.value:t.dates.customerDate&&(t.shippingMode.wishCustomerReceiptDate=t.dates.customerDate.value)}}function n(e,a){var o=a.hours&&a.hours.length||0;if(o){t.dates.customerDateTime=a.hours[0];for(var r=1;r<o;r++){var n=a.hours[r];if(!(e>=n.value))break;t.dates.customerDateTime=n}}}}}}]),e.directive("rbsCommerceShippingModeGift",function(){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-mode-gift.twig",scope:!0,link:function(e){e.allowGift=!1,e.shippingModeInfo&&e.shippingMode&&e.shippingMode.delivery&&(e.allowGift=e.giftCapabilities.allow&&e.shippingModeInfo.giftCapabilities.allow,e.shippingMode.containsGift=e.shippingMode.containsGift||!1)}}}),e.directive("rbsCommerceShippingModeMessage",function(){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-mode-message.twig",scope:!0,link:function(e){e.messageCapabilities=e.shippingModeInfo.messageCapabilities,e.messageCapabilities.allow||(e.shippingMode.options.message=null),e.$watch("shippingMode.options.message",function(t){e.shippingMode.options.invalidMessage=!!t&&t.length>e.messageCapabilities.messageMaxLength})}}}),e.directive("rbsCommerceReceiverCompiler",["$compile",function(e){return{restrict:"A",link:function(t,a){t.$watch("shippingModeInfo",function(o){o&&o.directiveNames&&o.directiveNames.informationEditor&&function(e,t,o){var r=a.find("#RbsShippingModeInformation");r.children().remove(),r.html("<div "+o+'=""></div>'),e(r.children())(t)}(e,t,o.directiveNames.informationEditor)})}}}]),e.directive("rbsCommerceShippingReceiverInformationEditor",function(){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-receiver-information-editor.twig",link:function(e){e.data={mobilePhone:null,email:null,firstName:null,lastName:null,showFirstName:!0,showLastName:!0};var t=e.shippingMode;if(t){t.atHomeAddress&&t.atHomeAddress.fields&&(e.data.showLastName=!t.atHomeAddress.fields.lastName,e.data.showFirstName=!t.atHomeAddress.fields.firstName),t.isTransportable=function(){return!(null==e.data.mobilePhone||e.data.showLastName&&null==e.data.lastName||e.data.showFirstName&&null==e.data.firstName)},t.getTransportableOptions=function(){return{mobilePhone:e.data.mobilePhone,firstName:e.data.showFirstName?e.data.firstName:null,lastName:e.data.showLastName?e.data.lastName:null}};var a=t.options;a&&(a.mobilePhone&&(e.data.mobilePhone=a.mobilePhone),a.email&&(e.data.email=a.email),a.lastName&&e.data.showLastName&&(e.data.lastName=a.lastName),a.firstName&&e.data.showFirstName&&(e.data.firstName=a.firstName));var o=e.processEngine.getObjectData(),r=o?o.customer:null;if(r){!e.data.mobilePhone&&r.mobilePhone&&(e.data.mobilePhone=r.mobilePhone),!e.data.email&&r.email&&(e.data.email=r.email);var n=r.options.profiles&&r.options.profiles.Rbs_User;n&&(!e.data.lastName&&n.lastName&&e.data.showLastName&&(e.data.lastName=n.lastName),!e.data.firstName&&n.firstName&&e.data.showFirstName&&(e.data.firstName=n.firstName))}e.$on("$destroy",function(){e.shippingMode.isTransportable=null,e.shippingMode.getTransportableOptions=null})}else console.warn("Require shippingMode")}}}),e.directive("rbsCommerceShippingCheckEligibility",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-shipping-check-eligibility.twig",link:function(t){t.options={mobilePhone:null};var a=t.shippingMode;t.hasCalledApi=!1,t.shippingMode.isEligibilityCheckRequired=function(){return t.isAvailable??!1},a.isTransportable=function(){return t.data&&null!=t.data.mobilePhone},a.getTransportableOptions=function(){return{mobilePhone:t.data.mobilePhone}},t.evaluateEligibility=function(){e.openWaitingModal(),e.postData("Rbs/Commerce/Cart/EligibilityEvaluation",{atHomeAddress:t.shippingMode.atHomeAddress,shippingModeId:t.shippingMode.id,deliveryIntervalStart:t.shippingMode.wishCustomerReceiptDate},{}).then(function(a){t.hasCalledApi=!0,t.data=a.data.dataSets,t.isAvailable=t.data.isAvailable,e.closeWaitingModal()},function(a){t.hasCalledApi=!0,console.error("lastMileEligibilityError",a),t.data=null,e.closeWaitingModal()})},t.$watch("shippingMode.wishCustomerReceiptDate",function(){t.hasCalledApi=!1,t.isAvailable=!1});var o=t.processEngine.getObjectData(),r=o?o.customer:null;r&&!t.options.mobilePhone&&r.mobilePhone&&(t.options.mobilePhone=r.mobilePhone),t.$on("$destroy",function(){t.shippingMode.isTransportable=null,t.shippingMode.getTransportableOptions=null,t.shippingMode.isEligibilityCheckRequired=null})}}}]),e.directive("rbsCommerceGiftStep",["RbsChange.AjaxAPI","$rootScope",function(e,o){return{restrict:"A",templateUrl:"/rbs-commerce-gift-step.twig",scope:{processEngine:"="},controller:["$scope",function(e){e.processData=e.processEngine.getStepProcessData("gift"),e.processData.errors=[],e.processData.id||(e.processData.id=0);var a=e.processEngine.getProcessConfigurationInfo();e.shippingModesInfo=a&&a.shippingModes?a.shippingModes:{},e.resolveShippingModeInfo=function(t){if(!t||!t.category)return null;for(var a=e.shippingModesInfo[t.delivery.index][t.category],o=0;o<a.length;o++)if(a[o].common.id==t.id)return a[o];return null};var o=e.processEngine.getObjectData(),r=o.processData.capabilities;e.giftCapabilities={allow:r.allowGift,allowMessage:r.allowGiftMessage,allowWrap:r.allowGiftWrap,messageMaxLength:r.giftMessageMaxLength,presentation:o.process.gift||{},giftSelectionMode:r.giftSelectionMode},e.processData.shippingModes=t(o,e),e.processData.gift=o.gift}],link:function(r){function n(){var e=r.processEngine.getObjectData();r.processData.shippingModes=t(e,r),r.processData.gift=e.gift,r.processEngine.nextStep(),"premium"===r.processEngine.getCurrentStep()&&e.premium&&e.premium.active&&r.processEngine.nextStep()}r.showPrices=r.processEngine.showPrices(),r.currencyCode=r.processEngine.getCurrencyCode(),r.setCurrentStep=function(){r.processEngine.setCurrentStep("gift")},r.cancelPayment=function(){var t=a(r.processEngine,o,e);return t.then(function(){r.setCurrentStep()},function(){}),t},r.skuGiftValid=function(e,t){for(var a=0;a<e.lines.length;a++){if(e.lines[a].skuCapabilities[t])return!0}return!1},r.giftsValid=function(){for(var e=r.giftCapabilities.messageMaxLength||null,t=0;t<r.processData.shippingModes.length;t++){var a=r.processData.shippingModes[t],o=!0;if("line"===r.giftCapabilities.giftSelectionMode)for(var n=0;n<a.delivery.lines.length;n++){var i=a.delivery.lines[n];i.options.giftAddMessage&&(o=i.options.giftMessage)}else"delivery"===r.giftCapabilities.giftSelectionMode&&a.options.giftAddMessage&&(o=a.options.giftMessage);if(!o)return!1;if(e&&e<o.length)return!1}return!0},r.next=function(){var e=r.saveMode();e?e.then(function(){n()}):n()},r.saveMode=function(){var e={updateGifts:[],updateGiftsLines:[]};return angular.forEach(r.processData.shippingModes,function(t){var a=t.delivery.options.containsGift||!1,o={index:t.delivery.index,lines:[]};e.updateGifts.push({index:t.delivery.index,containsGift:t.delivery.options.containsGift||!1,giftSelectionMode:r.giftCapabilities.giftSelectionMode||!1}),"delivery"===r.giftCapabilities.giftSelectionMode&&(o.giftAddMessage=!!a&&t.delivery.options.giftAddMessage,o.giftMessage=a?t.delivery.options.giftMessage:null,o.giftAddWra
1p=!!a&&t.delivery.options.giftAddWrap);for(var n=0;n<t.delivery.lines.length;n++){var i=t.delivery.lines[n];o.lines.push({key:i.key,giftAddMessage:!!a&&i.options.giftAddMessage,giftMessage:a?i.options.giftMessage:null,giftAddWrap:!!a&&i.options.giftAddWrap})}e.updateGiftsLines.push(o)}),r.processEngine.updateObjectData(e)}}}}]),e.directive("rbsCommercePremiumStep",["RbsChange.AjaxAPI","$rootScope",function(e,t){return{restrict:"A",templateUrl:"/rbs-commerce-premium-step.twig",scope:{processEngine:"="},controller:["$scope",function(e){e.processData=e.processEngine.getStepProcessData("premium"),e.processData.errors=[],e.processData.id||(e.processData.id=0);var t=e.processEngine.getProcessConfigurationInfo();e.processData.premiumTypes=t.premiumTypes||[];var a=e.processEngine.getObjectData();a.premium&&(e.processData.premium=a.premium,e.processData.id=a.premium.common.id);var o=0!==a.customer.userId;!o&&a.customer.options&&(o=a.customer.options.accountRequest||!1),e.processData.premiumEnabled=o}],link:function(o){o.showPrices=o.processEngine.showPrices(!0),o.setCurrentStep=function(e){var t=e||"premium";o.processEngine.setCurrentStep(t)},o.cancelPayment=function(){var r=a(o.processEngine,t,e);return r.then(function(){o.setCurrentStep()},function(){}),r},o.selectPremiumType=function(e){o.processData.id=e.common.id||0,o.processData.premiumType=e},o.next=function(){var e={setPremium:{newId:o.processData.id}},t=o.processEngine.updateObjectData(e);if(t)t.then(function(){var e=o.processEngine.getObjectData();e.premium&&(o.processData.premium=e.premium,o.processData.id=e.premium.common.id||0),o.processEngine.nextStep()});else{var a=o.processEngine.getObjectData();o.processData.premium=a.premium,o.processData.id=a.premium.common.id,o.processEngine.nextStep()}},o.nextWithoutPremium=function(){o.processData.id=0,o.processData.premium=null,o.next()}}}}]),e.directive("rbsCommercePaymentStep",["RbsChange.AjaxAPI","$location","$rootScope",function(e,t,o){return{restrict:"A",templateUrl:"/rbs-commerce-payment-step.twig",scope:{processEngine:"="},link:function(r){r.processData=r.processEngine.getStepProcessData("payment"),r.processData.errors=[],r.processData.id||(r.processData.id=0),r.userAddresses=null,r.transactions=[],r.failedReason=t.search().failedReason||!1,t.search("failedReason",null),r.handleCoupons=r.processEngine.parameters("handleCoupons"),r.precheckSaveAddress=!1,r.copyDeliveryToBillingAddress=!1,r.accountRequest=!1,r.processing=!1;var n=r.processEngine.getObjectData();function i(e){var t=angular.copy(r.processData.coupons);t.push({code:e});var a={setCoupons:t},o=r.processEngine.updateObjectData(a);if(o)o.then(function(){r.processData.errors=[];var e=r.processEngine.getObjectData();s(e),r.processData.coupons=e.coupons,r.processData.couponsNotFound=t.filter(function(t){for(var a in e.updated.setCoupons)if(e.updated.setCoupons.hasOwnProperty(a)&&t.code.toLowerCase()===e.updated.setCoupons[a].code.toLowerCase())return!1;return!0}),r.processData.couponsNotFound.length||(r.processData.newCouponCode=null)},function(e){console.error("addCoupon",e)});else{var n=r.processEngine.getObjectData();s(n),r.processData.coupons=n.coupons}return o}function s(e){var t=e.common;r.displayTaxDetail=e.process.common.displayTaxDetail,r.currencyCode=t.currencyCode,r.totalAmount=t.totalAmount,r.totalTaxesAmount=t.totalTaxesAmount,r.totalTaxes=t.totalTaxes,r.paymentAmount=t.paymentAmount,r.creditNotesAmount=t.creditNotesAmount,r.creditNotesClosestExpiryDate=t.creditNotesClosestExpiryDate}function c(t,a){var o=t.transactionId,n={connectorId:a.common.id,cartIdentifier:r.cartIdentifier||""},i="Rbs/Commerce/Transaction/"+o+"/processing";return e.putData(i,n)}function l(t=0){t>60||e.getData("Rbs/Commerce/Cart/CheckLock").then(function(e){let a=e.data.dataSets;a.cartUnlocked&&a.redirectUrl?window.location.assign(a.redirectUrl):window.setTimeout(l,6e4,++t)},function(e){console.error(e)})}r.cartIdentifier=n&&n.common&&n.common.identifier,r.paymentInfo=n.payment||{},r.cartMessages=n.common.messages||{},r.suggestedCoupons=n.suggestedCoupons||{},r.maximumUsableCoupon=n.processData.capabilities.maximumUsableCoupon,n&&n.process&&(r.precheckSaveAddress=n.process.common.precheckSaveAddress,r.copyDeliveryToBillingAddress=n.process.common.copyDeliveryToBillingAddress),r.$on("objectDataUpdated",function(e,t){n=t;var a=t.customer;r.processData.requireTokenValidation=!(!a.options||!a.options.mobilePhoneRequestId),r.processData.requireMobilePhone=t.processData.capabilities.allowMobilePhone&&t.processData.hasStoreDelivery||!1,r.cartMessages=n.common.messages||{},r.suggestedCoupons=n.suggestedCoupons||{}}),r.loadUserAddresses=function(){r.processData.userId?e.getData("Rbs/Geo/Address/",{userId:r.processData.userId}).then(function(e){r.userAddresses=e.data.items},function(){r.userAddresses=[]}):r.userAddresses=[]},r.getDefaultUserAddress=function(e){var t,a=null,o=null,n=null,i=r.processEngine.getObjectData().deliveries;if(angular.forEach(i,function(e){"atHome"!==e.category||r.isEmptyAddress(e.address)||!r.copyDeliveryToBillingAddress&&!e.options.copyDeliveryToBillingChoice||(o=e.address)}),angular.isArray(e))for(var s=0;s<e.length;s++)(t=e[s]).default&&(t.default.billing||t.default.default)&&(a=t);return!r.copyDeliveryToBillingAddress&&o?n=o:a?n=a:r.copyDeliveryToBillingAddress&&o&&(n=o),n},r.isEmptyAddress=function(e){return!(angular.isObject(e)&&!angular.isArray(e)&&e.fields&&e.fields.countryCode&&e.lines&&e.lines.length)}
1,r.$watchCollection("userAddresses",function(e){if(angular.isArray(e)&&r.isEmptyAddress(r.processData.address)){var t=r.getDefaultUserAddress(e);if(t)return void r.selectUserAddress(t);r.editAddress()}}),r.editAddress=function(e){r.processData.errors=[],r.processData.addressEdition=!0,r.processData.addressEditionForm=!!e,e||r.newAddress()},r.newAddress=function(){var e=r.processEngine.getObjectData(),t=e&&e.customer&&e.customer.options&&e.customer.options.profiles,a=t?Object.assign({},t.Rbs_User,t.Rbs_Commerce):null;r.processData.address={common:{addressFieldsId:r.processData.address.common.addressFieldsId,useName:r.precheckSaveAddress&&(r.processData.userId||r.accountRequest)},fields:{firstName:a&&a.firstName,lastName:a&&a.lastName,titleCode:a&&a.titleCode,countryCode:r.processData.address.fields.countryCode,companyName:a&&a.companyName,establishmentIdentifier:a&&a.establishmentIdentifier,taxIdentifier:a&&a.taxIdentifier},lines:[]},r.processData.addressEditionForm=!0},r.selectUserAddress=function(e){r.processData.address=angular.copy(e),r.processData.addressEdition=!1,r.processData.addressEditionForm=!1},r.useAddress=function(){var t=angular.copy(r.processData.address);r.processEngine.loading(!0),r.processData.userId&&t.common&&t.common.useName&&t.common.name?(t.default={default:!0,billing:!0},angular.forEach(r.userAddresses,function(e){e.default&&(e.default.default&&delete t.default.default,e.default.billing&&delete t.default.billing)}),e.postData("Rbs/Geo/Address/",t).then(function(e){var t=e.data.dataSets;r.userAddresses.push(t),r.selectUserAddress(t),r.processEngine.loading(!1)},function(e){console.log("useAddress error",e),r.processEngine.loading(!1)})):e.postData("Rbs/Geo/ValidateAddress",{address:t}).then(function(e){r.selectUserAddress(e.data.dataSets.address),r.processEngine.loading(!1)},function(e){console.log("validateAddress error",e),r.processEngine.loading(!1)})},r.addCoupon=function(){return i(r.processData.newCouponCode)},r.addSuggestion=function(e){return i(e.code)},r.submitCoupon=function(e){void 0!==e&&13===e.keyCode&&r.processData.newCouponCode&&r.addCoupon()},r.removeCoupon=function(e){var t=[];angular.forEach(r.processData.coupons,function(a,o){o!=e&&t.push(a)});var a={setCoupons:t},o=r.processEngine.updateObjectData(a);if(o)o.then(function(){var e=r.processEngine.getObjectData();s(e),r.processData.coupons=e.coupons,r.processData.errors=[]},function(e){console.error("removeCoupon",e)});else{var n=r.processEngine.getObjectData();s(n),r.processData.coupons=n.coupons}return o},r.cleanupAddress=function(e){return e&&(e.common&&(e.common={addressFieldsId:e.common.addressFieldsId}),e.default&&delete e.default),e},r.savePaymentDisabled=function(){return r.processData.addressEdition||r.processData.errors.length||r.isEmptyAddress(r.processData.address)||r.processData.requireTokenValidation&&r.processData.requireMobilePhone},r.savePayment=function(){var e={setCoupons:r.processData.coupons,setAddress:r.processData.address};r.processData.hasOwnProperty("invoice")&&(e.updateContext={invoice:r.processData.invoice});var t=r.processEngine.updateObjectData(e);t?t.then(function(){s(r.processEngine.getObjectData()),r.makePayment()},function(e){console.log("savePayment error",e)}):(s(r.processEngine.getObjectData()),r.makePayment())},r.makePayment=function(){r.processEngine.loading(!0),r.processData.errors=[];var t={},a={visualFormats:r.processEngine.parameters("imageFormats")};r.$emit("analytics",t),e.postData("Rbs/Commerce/Payment/",{options:t},a).then(function(e){r.processEngine.lockProcess(!0);var t=r.processEngine.getObjectData();t.processData.locked=!0,o.$broadcast("rbsRefreshCart",{cart:t}),r.transactions=e.data.dataSets.transactions||[],r.paymentInfo=e.data.dataSets.common||{},r.$emit("analytics",{category:"process",action:"setCurrentStep",label:"paymentConnectorSelect",value:r.paymentInfo.paymentAmount}),r.processEngine.loading(!1),window.setTimeout(l,36e5)},function(e){console.error("makePayment",e),409==e.status&&e.data&&e.data.data&&angular.forEach(e.data.data,function(e){r.processData.errors.push(e.message)}),r.transactions=[],r.processEngine.loading(!1)})},r.cancelPayment=function(){var t=a(r.processEngine,o,e);return t.then(function(e){r.transactions=e.data.dataSets.transactions||[],r.paymentInfo=e.data.dataSets.common||{}},function(){}),t},r.confirmPayment=function(){return r.processEngine.loading(!0),e.putData("Rbs/Commerce/Payment/finalise",{}).then(function(e){r.processing=!0,r.transactions=e.data.dataSets.transactions||[],r.paymentInfo=e.data.dataSets.common||{},r.paymentInfo.redirectURL?window.location.assign(r.paymentInfo.redirectURL):window.location.reload(!0)},function(){window.location.reload(!0)})},s(n),r.processData.processTransaction=c,r.processData.processId=n.process.common.id,r.processData.requireMobilePhone=n.processData.capabilities.allowMobilePhone&&n.processData.hasStoreDelivery||!1,n&&n.customer&&(r.processData.userId=n.customer.userId,r.processData.address=n.customer.billingAddress,n.customer.options&&(r.accountRequest=n.customer.options.accountRequest,r.processData.requireTokenValidation=!!n.customer.options.mobilePhoneRequestId)),r.processData.address||(r.processData.address={common:{},fields:{}}),r.processData.coupons=n.coupons,n.processData.locked?r.makePayment():r.loadUserAddresses()}}}]),e.directive("rbsCommercePaymentStepTransaction",["$timeout",function(e){return{restrict:"A",templateUrl:"/rbs-commerce-payment-step-transaction.twig",scope:!0,link:function(t,a){t.transaction&&t.transaction.connectors&&(t.selectConnector=function(e){var o=a.find('[data-role="connector-configuration-zone"]');if(!e)return t.processData.id=0,t.selectedConnector=null,void t.processEngine.replaceChildren(o,t,null);t.processData.id=e.common.id,t.selectedConnector=e;var r=[];r.push("<div data-"+e.transaction.directiveName+'=""'),r.push(' data-process-data="processData"'),r.push(' data-transaction="transaction"'),r.push(' data-connector-configuration="selectedConnector"'),r.push(' data-connector-info="selectedConnector"'),r.push("></div>"),t.processEngine.replaceChildren(o,t,r.join(""))},e(function(){var e=!1;1===t.transaction.connectors.length?(t.selectConnector(t.transaction.connectors[0]),e=!0):t.processData.id&&angular.forEach(t.transaction.connectors,function(a){t.processData.id===a.common.id&&(t.selectConnector(a),e=!0)}),!e&&t.transaction.connectors.length&&t.selectConnector(t.transaction.connectors[0])}))}}}]),e.directive("rbsCommerceInvoiceConfiguration",function(){return{restrict:"A",templateUrl:"/rbs-commerce-invoice-configuration.twig",link:function(e){var t=e.processEngine.getObjectData();e.invoiceGenerationMode=t&&t.process?t.process.invoiceGenerationMode:"auto","checkout"===e.invoiceGenerationMode&&e.processData&&(e.processData.hasOwnProperty("invoice")||(t.options.invoice?e.processData.invoice=t.options.invoice:e.processData.invoice={generate:!1})),e.generateInvoiceDisabled=function(){return e.paymentInfo.started}}}}),e.directive("rbsCommerceConfirmStep",["RbsChange.AjaxAPI","$window",function(e,t){return{restrict:"A",templateUrl:"/rbs-commerce-confirm-step.twig",scope:{processEngine:"="},link:function(a){a.processData=a.processEngine.getStepProcessData("confirm");var o=a.processEngine.getObjectData(),r=o.customer;a.processData.requireTokenValidation=!(!r.options||!r.options.mobilePhoneRequestId),a.$on("objectDataUpdated",function(e,t){var o=t.customer;a.processData.requireTokenValidation=!(!o.options||!o.options.mobilePhoneRequestId)}),a.canSendReservation=function(){return!a.processData.requireTokenValidation&&!o.processData.errors.length},a.sendReservation=function(){a.processEngine.loading(!0);var o=a.processEngine.getObjectData().common.identifier;e.postData("Rbs/Commerce/Cart/Reservation",{},{}).then(function(e){var a=e.data.dataSets;a&&a.common&&a.common.redirectURL?t.location=a.common.redirectURL:t.location.search="?targetIdentifier="+o},function(){a.processEngine.loading(!1)})}}}}])}(),function(e){"use strict";angular.module("RbsChangeApp").directive("rbsCommerceSidebarProcess",function(){return{restrict:"A",link:function(e,t){var a=t.offset(),o=angular.element(document.querySelector('[data-name="Rbs_Commerce_OrderProcess"]')),r=angular.element(document.querySelector("body")).prop("offsetHeight");e.offsetTopPosition=a.top-60,e.offsetBottomPosition=r-t.height()-o.height()}}}),e(function(){var t=e(".process-menu"),a=t.parent();function o(){t.width(a.width())}t.on("affixed.bs.affix",function(){e(window).resize(o),o()})})}(window.jQuery),function(){"use strict";angular.module("RbsChangeApp").directive("rbsCommerceTopMenuProcess",function(){return{restrict:"A",link:function(e,t){var a=t.offset();e.offsetTopPosition=a.top;var o=t.find(".process-top-menu");o&&(e.topMenuHeight=o.height())}}})}();class planetShopperWidget{constructor(e,t){this.class="planet-shopper-widget",this.element=e,this.elementsClass={button:this.class.concat("__button"),link:this.class.concat("__link"),popup:{element:this.class.concat("__popup"),iframe:this.class.concat("__iframe")}},this.stateClasses={retailer:this.class.concat("--retailer"),withIcon:this.class.concat("--with-icon"),state:this.class.concat("--state"),show:this.class.concat("--show")},this.elements=this._resetElements(),this.labels={button:{logo:'<svg width="28" height="38" viewBox="0 0 28 38" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="Brand"><path id="Combined Shape" fill-rule="evenodd" clip-rule="evenodd" d="M4.53801 5.54
1102C6.63068 5.54102 8.32602 7.15221 8.32602 9.13961C8.32602 11.1276 6.63068 12.7382 4.53801 12.7382C2.446 12.7382 0.75 11.1276 0.75 9.13961C0.75 7.15221 2.446 5.54102 4.53801 5.54102ZM8.04129 18.7441V30.8743H14.0273V27.2504C15.1686 27.6988 16.418 27.9477 17.7293 27.9477C23.0793 27.9477 27.4167 23.8273 27.4167 18.7441C27.4167 13.6617 23.0793 9.5412 17.7293 9.5412C12.3786 9.5412 8.04129 13.6617 8.04129 18.7441ZM13.3266 18.7441C13.3266 16.4344 15.2973 14.5623 17.7293 14.5623C20.16 14.5623 22.1307 16.4344 22.1307 18.7441C22.1307 21.0539 20.16 22.926 17.7293 22.926C15.2973 22.926 13.3266 21.0539 13.3266 18.7441Z" fill="white"/>/g></svg>',title:"Shop Tax Free",description:{default:"Check if you are eligible for a refund",eligible:"Your tax-free request is in progress. You will receive your Planet Tax Free form by email after<br>payment if approved."}},link:{title:"Learn more about Tax Free",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.26683 12L5.3335 11.0667L8.40016 8L5.3335 4.93333L6.26683 4L10.2668 8L6.26683 12Z"/></svg>'}},this.listeners={_click:this._click.bind(this),_receive:this._receive.bind(this)},this.options=t,this.state="",this.endpoint=this._getEndpoint(),this._init()}_getEndpoint(){return this.options.useSandbox?"https://globaldev-taxfree.planetpayment.com":location.origin.includes("planetpayment")?location.origin:"https://europeuat-taxfree.planetpayment.com"}_resetElements(){return{button:{element:null,title:null,description:null},link:{element:null,title:null},popup:{element:null,iframe:null}}}_loadCSS(){let e=document.createElement("link"),t=`url("${this.endpoint}/ShopperWidget_UI_Resources/tt-commons-#.otf")`;[new FontFace("psw-font-family",t.replace("#","regular"),{weight:"400"}),new FontFace("psw-font-family",t.replace("#","demi-bold"),{weight:"600"}),new FontFace("psw-font-family",t.replace("#","bold"),{weight:"700"})].forEach(e=>{e.load(),document.fonts.add(e)}),e.rel="stylesheet",e.type="text/css",e.href=`${this.endpoint}/ShopperWidget_UI_Resources/shopper-widget.css`,document.head.appendChild(e)}_onClose(){this.close(),this.options.onClose&&this.options.onClose()}_onError(e){this.options.onError&&this.options.onError(JSON.parse(e))}_onSuccess(e){this._setEligible(),this.options.onSuccess&&this.options.onSuccess(JSON.parse(e))}_onReady(){this.options.onReady&&this.options.onReady()}_triggerError(e){this._onError(JSON.stringify({message:e}))}_send(e){this.elements.popup.iframe&&this.elements.popup.iframe.contentWindow.postMessage(JSON.stringify(e),"*")}_receive(e){let t=JSON.parse(e.data);switch(t.type){case"success":this._onSuccess(t.data);break;case"error":this._onError(t.data);break;case"close":this._onClose(t.data);break;case"height":this._setHeight(t.data);break;case"parentHeight":this._send({type:"height",data:window.innerHeight})}}_click(e){this.element.classList.contains(this.stateClasses.show)||(this.elements.popup.element=document.createElement("div"),this.elements.popup.element.classList.add(this.elementsClass.popup.element),this.elements.popup.element.setAttribute("planet-popup",""),this.elements.popup.iframe=document.createElement("iframe"),this.elements.popup.iframe.classList.add(this.elementsClass.popup.iframe),this.elements.popup.iframe.setAttribute("planet-iframe",""),this.elements.popup.iframe.src=`${this.endpoint}/ShopperWidget/Validate?token=${this.token}&store=${this.options.store}&country=${this.options.country}&sm=${this.options.shippingMethod}&da=${this.options.deliveryAddress}`,this.elements.popup.iframe.title="Planet shopper widget",this.elements.popup.element.append(this.elements.popup.iframe),this.element.append(this.elements.popup.element),this.element.classList.add(this.stateClasses.show),window.addEventListener("message",this.listeners._receive))}_build(){this.element.classList.add(this.class),this.elements.button.element=document.createElement("button"),this.elements.button.element.classList.add(this.elementsClass.button),this.elements.button.element.setAttribute("planet-button",""),this.elements.button.title=document.createElement("span"),this.elements.button.description=document.createElement("span"),this.elements.link.element=document.createElement("a"),this.elements.link.title=document.createElement("span"),this.options.retailer?this.element.classList.add(this.stateClasses.retailer):this.options.hasIcon&&(this.elements.button.element.innerHTML=this.labels.button.logo,this.elements.button.element.firstElementChild.classList.add(this.elementsClass.button.concat("-logo")),this.element.classList.add(this.stateClasses.withIcon)),this.elements.button.title.innerText=this.labels.button.title,this.elements.button.title.classList.add(this.elementsClass.button.concat("-title")),this.elements.button.description.innerHTML=this.labels.button.description.default,this.elements.button.description.classList.add(this.elementsClass.button.concat("-description")),this.elements.link.element.href="https://www.weareplanet.com/",this.elements.link.element.setAttribute("planet-link",""),this.elements.link.element.setAttribute("target","_blank"),this.elements.link.element.classList.add(this.elementsClass.link),this.elements.link.title.innerText=this.labels.link.title,this.options.retailer||(this.elements.link.element.innerHTML=this.labels.link.icon),this.elements.link.element.prepe
1nd(this.elements.link.title),this.elements.button.element.append(this.elements.button.title),this.elements.button.element.append(this.elements.button.description),this.element.append(this.elements.button.element),this.element.append(this.elements.link.element),this.elements.button.element.addEventListener("click",this.listeners._click),this._setDisabled(),this.options.store?this.options.country?fetch(`${this.endpoint}/API/rest/TaxfreeWidget/GetStoreInfo?StoreId=${this.options.store}&CountryISOCode=${this.options.country}`,{method:"GET",headers:{Authorization:"Basic "+btoa(this.options.auth.username+":"+this.options.auth.password)}}).then(e=>e.json()).then(e=>{e.Errors?this._triggerError("Service unavailable"):e.response.success?(this.token=e.authResponse.access_token,this._setReady()):this._triggerError(e.response.message)}).catch(e=>{this._triggerError("Service unavailable")}):this._triggerError("No country provided"):this._triggerError("No store provided")}_setOptions(e){let t={hasIcon:!0,retailer:!1,deliveryAddress:"",shippingMethod:"",useSandbox:!1};this.options=e?{...this.options,...e}:{...t,...this.options}}_resetState(){this.element.classList.forEach(e=>{e.startsWith(this.stateClasses.state)&&this.element.classList.remove(e)}),this.elements.button.element&&(this.elements.button.element.removeAttribute("disabled"),this.elements.button.description.innerHTML=this.labels.button.description.default),this.state=""}_setReady(){this._resetState(),this.state="ready",this.options.onReady&&this.options.onReady()}_setDisabled(){this._resetState(),this.elements.button.element.setAttribute("disabled",""),this.element.classList.add(this.stateClasses.state.concat("-disabled")),this.state="disabled",this.token=""}_setEligible(){this._resetState(),this.element.classList.add(this.stateClasses.state.concat("-eligible")),this.elements.button.description.innerHTML=this.labels.button.description.eligible,this.state="eligible"}_setHeight(e){this.elements.popup.iframe&&e&&this.elements.popup.iframe.style.setProperty("--iframe-height",e+"px")}_init(){this._loadCSS(),this._setOptions(),this._build()}getState(){return this.state}update(e){this._setOptions(e),this.reset(),this._build()}reset(){this.token="",this._resetState(),this.element.classList.remove(this.stateClasses.retailer),this.element.classList.remove(this.stateClasses.show),window.removeEventListener("message",this.listeners._receive),this.elements=this._resetElements(),this.element.innerHTML=""}close(){window.removeEventListener("message",this.listeners._receive),this.element.classList.remove(this.stateClasses.show),this.elements.popup.element.remove(),this.elements.popup.element=null,this.elements.popup.iframe=null}}!function(){"use strict";angular.module("RbsChangeApp").controller("rbsCommerceTaxFreeCtrl",["$rootScope","$scope","RbsChange.AjaxAPI",function(e,t,a){t.canLoadTaxFreeWidget=!1,t.guidid="",t.delivery={},t.taxfreeWidget={},t.taxfreeWidget.options={auth:{username:"",password:""},store:"",country:"",hasIcon:!1,retailer:!1,useSandbox:!0},t.taxfreeWidget.isTaxfreeWidgetLoaded=!1,t.handleMessage=function(e){var a=JSON.parse(e.data||"");if("success"===a.type){var o=JSON.parse(a.data);t.guidid=o.guid,t.$digest(),t.updateCartTaxFree()}},window.addEventListener("message",t.handleMessage),t.serializeUriObjectComponent=function(e){var t=[];for(var a in e)e.hasOwnProperty(a)&&t.push(encodeURIComponent(a)+"="+encodeURIComponent(e[a]));return t.join("&")},t.loadCartData=function(){var e=a.getData("Rbs/Commerce/Cart",null,{detailed:!0,dataSets:"process"});return e.then(function(e){var a=e.data.dataSets;a&&!angular.isArray(a)&&(t.cartData=a,t.delivery=a.deliveries[0]||null,1===t.cartData.deliveries.length&&(t.canLoadTaxFreeWidget=!0))},function(e){t.cartData=null,console.error("An error occurred: ",e)}),e},t.loadCartData(),t.loadWidget=function(){!1===t.taxfreeWidget.isTaxfreeWidgetLoaded&&(t.taxfreeWidget.options.auth.username="",t.taxfreeWidget.options.auth.password="",t.taxfreeWidget.myShopperWidget=new planetShopperWidget(document.getElementById("tax-free-widget"),t.taxfreeWidget.options),t.taxfreeWidget.isTaxfreeWidgetLoaded=!0)},t.$watch("canLoadTaxFreeWidget",function(e){e&&t.loadWidget()},!0),t.updateCartTaxFree=function(){var e={updateTaxFree:{guidid:t.guidid}},o=a.putData("Rbs/Commerce/Cart",e,{detailed:!0,dataSets:"process"});return o.then(function(e){t.updated=!0,t.cartData=e},function(e){console.error("An error occurred: ",e)}),o}}])}(window.jQuery),function(){"use strict";angular.module("RbsChangeApp").directive("rbsCommerceCreateAccount",function(){return{restrict:"A",require:"rbsUserCreateAccount",link:function(e,t,a,o){var r=o.getData();a.hasOwnProperty("transactionId")&&(r.transactionId=parseInt(a.transactionId)),a.hasOwnProperty("cartIdentifier")&&(r.cartIdentifier=a.cartIdentifier)}}})}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsDiscountExternal",function(){return{restrict:"A",templateUrl:"/rbs-discount-external.twig",require:["?^rbsCommerceCart","?^rbsCommerceCartDeliveries"],scope:{line:"=",delivery:"="},link:function(e,t,a,o){var r=o[0]||o[1];e.showPrices=r.showPrices(),e.currencyCode=r.getCurrencyCode(),e.parameters=r.parameters(),e.quantity=e.line.quantity,e.cartController=r,!e.line.unitBaseAmountWithTaxes&&e.line.baseAmountWithTaxes&&(e.line.unitBaseAmountWithTaxes=e.line.baseAmountWithTaxes/e.quantity),!e.line.unitBaseAmountWithoutTaxes&&e.line.baseAmountWithoutTaxes&&(e.line.unitBaseAmountWithoutTaxes=e.line.baseAmountWithoutTaxes/e.quantity)}}})}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.animation(".vertical-if-animation",function(){return{enter:function(e,t){jQuery(e).css({overflow:"hidden",height:0}),jQuery(e).animate({height:e.find(".vertical-if-animation-content").height()},500,function(){e.css("height","auto"),t()})},leave:function(e,t){jQuery(e).css({height:e.find(".vertical-if-animation-content").height()}),jQuery(e).animate({overflow:"hidden",height:0},500,t)}}}),e.animation(".vertical-show-hide-animation",function(){return{beforeAddClass:function(e,t,a){"ng-hide"==t?jQuery(e).animate({overflow:"hidden",height:0},a):a()},removeClass:function(e,t,a){"ng-hide"==t?(e.css({height:0,overflow:"hidden"}),jQuery(e).animate({height:e.find(".vertical-show-hide-animation-content").height()},function(){e.css({height:"auto",overflow:"visible"}),a()})):a()}}})}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsWebsiteInterstitial",["RbsChange.AjaxAPI","$http","$compile","$timeout","RbsChange.Cookies",function(e,t,a,o,r){return{restrict:"A",link:function(n,i,s){if(n.modalId=s.modalId,n.contentUrl=s.contentUrl,n.parameters=n.blockParameters||{},n.modalId&&n.contentUrl){var c=n.parameters.allowClosing,l=n.parameters.displayFrequency,d=jQuery("#"+n.modalId),u=jQuery("#"+n.modalId+" .modal
1-main-content"),p=function(){d.modal("hide")},m=function(e){u.html(e.data),a(u.contents())(n),n.modalContentMode="success";var t=parseInt(n.parameters.autoCloseDelay);t>1&&o(p,1e3*t)},g=function(e,t,a){n.modalContentMode="error",console.error("Interstitial",e,t,a)},f=function(){n.modalContentMode="loading",t.get(n.contentUrl,{params:{themeName:e.getThemeName()}}).then(m,g),d.modal({keyboard:c,backdrop:!!c||"static"})};if("always"===l)f();else{var h="rbsWebsiteInterstitial-"+n.parameters.displayedPage;if(r.get(h))return;var b=function(e){var t=new Date;return t.setTime(t.getTime()+e),t.toGMTString()};switch(l){case"session":r.put("technical",h,!0),f();break;case"reprieve":var v=b(24*n.parameters.displayReprieve*3600*1e3);r.put("technical",h,!0,{expires:v}),f();break;case"once":v=b(31536e7),r.put("technical",h,!0,{expires:v}),f()}}}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("rbsWebsiteManageTrackersGdpr",["$scope","$rootScope","RbsChange.Cookies","RbsChange.ModalStack","$attrs",function(e,t,a,o,r){e.cookiesCategories=JSON.parse(r.cookiesCategories),e.hideConsent=!1,e.running=!1;var n=a.getConsent().acceptedCookies;if(n){var i={};e.hideConsent=!0;for(var s=0;s<e.cookiesCategories.length;s++){var c=e.cookiesCategories[s].id;"boolean"!=typeof n[c]?e.hideConsent=!1:i[c]=n[c]}e.hideConsent||a.removeConsent()}function l(t,r,n){e.running=!0,a.setConsent(t,r,n).then(function(){e.running=!1},function(t){e.running=!1,429===t.status?o.open({controller:"RbsMinimalModal",templateUrl:"/rbs-website-trackers-too-many-requests-modal.twig"}):o.open({controller:"RbsMinimalModal",templateUrl:"/rbs-website-trackers-ask-consent-error-modal.twig"})})}e.showCookies=function(){var t={templateUrl:"/rbs-website-trackers-ask-consent-modal.twig",windowClass:"",controller:"rbsWebsiteManageTrackersGdprModalCtrl",size:"lg",resolve:{cookiesCategories:function(){return e.cookiesCategories}}};o.open(t)},e.selectAll=function(){try{for(var t={},a=e.cookiesCategories,o=0;o<a.length;o++)t[a[o].id]=!0;l(t,"all","banner")}catch(e){console.error(e)}},e.deselectAll=function(){try{for(var t={},a=e.cookiesCategories,o=0;o<a.length;o++)t[a[o].id]="true"===a[o].readOnly;l(t,"none","banner")}catch(e){console.error(e)}},t.$on("RbsWebsiteCookies:set",function(){e.hideConsent=!0})}]),e.controller("rbsWebsiteManageTrackersGdprModalCtrl",["$scope","$rootScope","RbsChange.Cookies","RbsChange.ModalStack","cookiesCategories",function(e,t,a,o,r){e.acceptedCookies={},e.running=!1;var n=a.getConsent().acceptedCookies||{};function i(t){for(var a=0;a<r.length;a++){var o=r[a].id,i="true"===r[a].readOnly;e.acceptedCookies[o]="boolean"==typeof n[o]&&t?n[o]:i}}i(!0),e.selectAll=function(){angular.forEach(e.acceptedCookies,function(t,a){e.acceptedCookies[a]=!0}),e.validate("all")},e.deselectAll=function(){i(!1),e.validate("none")},e.validate=function(t){e.running=!0,a.setConsent(e.acceptedCookies,t||"custom","modal").then(function(){e.$dismiss(),e.running=!1},function(t){e.running=!1,429===t.status?o.open({controller:"RbsMinimalModal",templateUrl:"/rbs-website-trackers-too-many-requests-modal.twig"}):o.open({controller:"RbsMinimalModal",templateUrl:"/rbs-website-trackers-ask-consent-error-modal.twig"})})},$("body").on("click",".trackersModalCollapseIcon",function(){$($(this).data("icon")).toggleClass("dropup")})}])}(),function(e){"use strict";var t,a,o,r,n,i;t=e,a=document,o="script",r="ga",t.GoogleAnalyticsObject=r,t[r]=t[r]||function(){(t[r].q=t[r].q||[]).push(arguments)},t[r].l=1*new Date,n=a.createElement(o),i=a.getElementsByTagName(o)[0],n.async=1,n.src="//www.google-analytics.com/analytics.js",i.parentNode.insertBefore(n,i);var s=angular.module("RbsChangeApp");s.provider("RbsChange.GoogleAnalytics",function(){this.$get=["RbsChange.Cookies",function(t){var a;function o(t){angular.isObject(t)&&t.hitType&&e.ga("send",t)}return{create:function(o,r){a=o,t.isAccepted("analytics")&&e.ga("create",a,r||{cookieExpires:31536e3})},send:o,sendEvent:function(e,t,a,r){var n={hitType:"event",eventCategory:e,eventAction:t};a&&(n.eventLabel=a),r&&(n.eventValue=r),o(n)},getContext:function(){var t={href:e.location.href,trackingID:a};if(e.ga.getByName){var o=e.ga.getByName("t0");o?t.clientID=o.get("clientId"):console.warn("No tracker found, possibly due to an add blocker.")}return t}}}]}),s.directive("rbsWebsiteGoogleAnalytics",["RbsChange.GoogleAnalytics","$rootScope","$timeout",function(e,t,a){return{restrict:"A",link:function(o,r,n){e.create(n.identifier),t.$on("analytics",function(t,a){a&&a.category&&a.action?e.sendEvent(a.category,a.action,a.label,a.value):angular.isObject(a)&&angular.copy(e.getContext(),a)}),a(function(){e.send({hitType:"pageview"}),e.getContext()})}}}]),s.directive("rbsWebsiteEventAnalytics",["RbsChange.GoogleAnalytics",function(e){return{restrict:"A",link:function(t,a,o){if("link"===o.analyticsTrigger){var r=o.analyticsCategory||"element",n=""+o.rbsWebsiteEventAnalytics;""===n&&(n="view");var i=""+o.analyticsLabel,s=parseInt(o.analyticsValue);e.sendEvent(r,n,""!==i?i:null,isNaN(s)?null:s)}else a.on("click",function(){var t=o.analyticsCategory||"element",a=""+o.rbsWebsiteEventAnalytics;""===a&&(a="click");var r=""+o.analyticsLabel,n=parseInt(o.analyticsValue);e.sendEvent(t,a,""!==r?r:null,isNaN(n)?null:n)})}}}])}(window),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsWebsiteResponsiveSummary",["$rootScope","$compile","$q","RbsChange.ResponsiveSummaries",function(e,t,a,o){return{restrict:"A",scope:{blockNames:"@"},link:function(r,n){if(r.blockNames){var i=r.blockNames.split(/[\s,]+/),s=n.find(".responsive-summary"),c={};r.items=[],l(),e.$on("ResponsiveSummaries.updated",l)}else console.warn("rbsWebsiteResponsiveSummary","No defined block names!");function l(){var e=[];r.items=[],s.empty();var n=o.getItems(i);
1angular.forEach(n,function(o){if(o.name&&o.toCompile&&o.scope){var n={name:o.name,options:o.options};if(c[o.name])n.compiledItem=c[o.name];else{var i=a.defer();e.push(i),t(o.toCompile)(o.scope,function(e){c[o.name]=e,n.compiledItem=e,i.resolve(!0)})}r.items.push(n)}else console.warn("rbsWebsiteResponsiveSummary","Invalid item!",o)}),e.length?a.all(e).then(function(){d()}):d()}function d(){for(var e=0;e<r.items.length;e++){var t=r.items[e];s.append(t.compiledItem)}}}}}]),e.directive("rbsWebsiteSwitchLang",["RbsChange.ResponsiveSummaries",function(e){return{restrict:"A",link:function(t){t.blockId&&(t.available=t.available?t.available.split(","):[],e.registerItem(t.blockId,t,'<li data-rbs-website-switch-lang-responsive-summary=""></li>'))}}}]),e.directive("rbsWebsiteSwitchLangResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-website-switch-lang-responsive-summary.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-website-switch-lang-responsive-summary-modal.twig",backdropClass:"modal-backdrop-rbs-website-switch-lang-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-website-switch-lang-responsive-summary",scope:t};e.open(a)}}}}]),e.directive("rbsWebsiteMenu",["RbsChange.ResponsiveSummaries","RbsChange.AjaxAPI",function(e,t){return{restrict:"A",scope:{},link:function(a,o,r){var n=r.blockId;n&&(a.menu=t.globalVar(n),e.registerItem(n,a,'<li data-rbs-website-menu-responsive-summary=""></li>'))}}}]),e.directive("rbsWebsiteMenuResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-website-menu-responsive-summary.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-website-menu-responsive-summary-modal.twig",backdropClass:"modal-backdrop-data-rbs-website-menu-responsive-summary",windowClass:"modal-responsive-summary modal-data-rbs-website-menu-responsive-summary",scope:t};e.open(a)}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsMondialrelayModeEditor",["RbsChange.AjaxAPI","$compile","$timeout","$http","$q","RbsGeo.LeafletMapService","RbsGeo.GoogleMapService",function(e,t,a,o,r,n,i){return{restrict:"A",templateUrl:"/rbs-mondialrelay-shipping.twig",scope:{shippingMode:"=",shippingModeInfo:"=",userAddresses:"=",processEngine:"=",giftCapabilities:"="},link:function(o,s){function c(e){if(e){var t=o.shippingMode,a=angular.copy(t.options.relay);delete a.address,a.searchAtAddress=o.currentAddress,a.searchAtPosition=o.currentPosition;var r={id:o.shippingModeInfo.common.id,title:o.shippingModeInfo.common.title,lineKeys:t.lineKeys,address:o.relayAddress,options:{category:"relay",relay:a}};return o.shippingMode.options.message&&(r.options.message=o.shippingMode.options.message),t.options.containsGift&&(r.options.containsGift=t.options.containsGift,t.options.giftAddMessage&&(r.options.giftAddMessage=t.options.giftAddMessage),t.options.giftMessage&&(r.options.giftMessage=t.options.giftMessage),t.options.giftAddWrap&&(r.options.giftAddWrap=t.options.giftAddWrap)),r}return o.shippingModeInfo.common.id==o.shippingMode.id&&null!=o.relayAddress&&!o.shippingMode.options.invalidMessage}o.maps=null,o.selectedIndex=null,o.options={modeId:o.shippingModeInfo.common.id},o.data=[],o.loading=!1,o.defaultLatitude=null,o.defaultLongitude=null,o.defaultZoom=null,o.markers=[],o.bounds=[],o.listDiv=s.find("#mondialRelayList"),o.currentAddress={country:"",zipCode:""},o.currentPosition={latitude:null,longitude:null},o.relayAddress=null,o.locateMeErrors={},o.countries=[],o.$watch("shippingMode.shippingZone",function(t){e.getData("Rbs/Geo/AddressFieldsCountries/",{zoneCode:t}).then(function(e){o.countries=e.data.items,o.shippingModeInfo.countries.length>0&&(o.currentAddress.country=o.shippingModeInfo.countries[0].code)},function(e){console.error("addressFieldsCountries error",e),o.countries=[],o.currentAddress.country=""})}),o.setTaxZone=function(e){if(o.processEngine.getObjectData().common.zone!=e){var t={setZone:{zone:e}};o.processEngine.updateObjectData(t)}},o.loadMap=function(){var e,t,r="mondial-relay-map-"+(angular.isNumber(o.shippingMode.deliveryIndex)?o.shippingMode.deliveryIndex:"")+"-"+o.shippingMode.id;if(i.valid())i.maps().then(function(a){o.maps=a,e=new a.LatLng(o.defaultLatitude,o.defaultLongitude),t={center:e,zoom:15},o.map=new a.Map(document.getElementById(r),t),o.bounds=new a.LatLngBounds,o.infoWindow=new a.InfoWindow({content:'<div class="marker-popup-content"></div>'})});else{if(!n.valid())return void console.warn("No valid map configuration.");n.maps().then(function(a){o.maps=a,e={lat:o.defaultLatitude,lng:o.defaultLongitude},t={center:e,zoom:15},o.map=a.map(r,t);var i=new a.TileLayer(n.defaultTileLayerName(),{attribution:n.getAttribution()});o.map.addLayer(i)})}a(function(){o.invalidateSize()},1e3)},o.locateMe=function(){navigator.geolocation.getCurrentPosition(function(e){o.currentPosition.latitude=e.coords.latitude,o.currentPosition.longitude=e.coords.longitude,o.currentAddress.city="",o.currentAddress.zipCode="";var t=a(function(){s.resolve(),o.locateMeErrors.country=!0},1500),s=r.defer(),c=function(e,t,a){var r=!1;angular.forEach(o.shippingModeInfo.countries,function(t){angular.isString(t.code)&&e.toUpperCase()===t.code.toUpperCase()&&(r=!0)}),r&&a&&t?(o.currentAddress.country=e.toUpperCase(),angular.isString(a)&&
1(o.currentAddress.zipCode=a.split(";")[0]),angular.isString(t)&&(o.currentAddress.city=t),delete o.locateMeErrors.notDeserved,delete o.locateMeErrors.country,o.launchSearch()):(delete o.locateMeErrors.country,o.locateMeErrors.notDeserved=!0,o.$apply())};if(i.valid()){var l=new o.maps.LatLng(e.coords.latitude,e.coords.longitude);o.map.setCenter(l),i.resolveAddress(l).then(function(e){a.cancel(t),c(e.country_code,e.city,e.postcode)},function(e){console.error("[rbsMondialrelayModeEditor]",e),delete o.locateMeErrors.notDeserved,o.locateMeErrors.country=!0,o.$applyAsync()})}else n.valid()?(o.map.setView([e.coords.latitude,e.coords.longitude]),n.resolveAddress(e.coords).then(function(e){for(var o=null,r=["city","town","village","hamlet","suburb"],n=0;n<r.length;n++){var i=r[n];if(angular.isDefined(e[i])){o=e[i];break}}a.cancel(t),c(e.country_code,o,e.postcode)},function(e){console.error("[rbsMondialrelayModeEditor]",e),delete o.locateMeErrors.notDeserved,o.locateMeErrors.country=!0,o.$applyAsync()})):console.warn("No valid map configuration.")},function(e){alert("Localisation failed : ["+e.code+"] "+e.message)},{timeout:5e3,maximumAge:0})},o.searchWithAddress=function(){o.currentPosition={latitude:null,longitude:null},o.launchSearch()},o.launchSearch=function(){o.setDeliveryInformation(null),o.loading=!0,e.getData("Rbs/Geo/Points/",{address:o.currentAddress,position:o.currentPosition,options:o.options,matchingZone:o.shippingMode.shippingZone||o.shippingMode.taxesZones}).then(function(e){o.data=e.data.items,o.updateMarkers(),o.loading=!1},function(e){console.error("launchSearch error",e),o.data=[],o.loading=!1})},o.updateMarkers=function(){var e,t;if(o.removeMarkers(),t=o.data.length){var a=o.preSelectedRelay?o.preSelectedRelay.code:null,r=!1;for(e=0;e<t;e++)o.drawMarkerToMap(o.data[e],e),o.data[e].code==a&&(r=e);o.map.fitBounds(o.bounds),!1!==r&&o.selectRelay(r)}},o.removeMarkers=function(){if(o.bounds=[],i.valid()){o.infoWindow.close();for(var e=0;e<o.markers.length;e++)o.markers[e].setMap(null);o.bounds=new o.maps.LatLngBounds}else if(n.valid())for(var t=0;t<o.markers.length;t++)o.map.removeLayer(o.markers[t]);o.markers=[]},o.drawMarkerToMap=function(e,a){var r,c=o.maps,l=null;if(i.valid()){var d=new c.LatLng(e.latitude,e.longitude),u={position:d,map:o.map,icon:{url:e.options.iconUrl||null,size:new c.Size(30,36),origin:new c.Point(0,0),anchor:new c.Point(15,18)}};r=new c.Marker(u),c.event.addListener(r,"click",function(){o.selectedIndex=a,o.setDeliveryInformation(a);var e=s.find("#point"+a);e&&o.listDiv&&o.listDiv.animate({scrollTop:e.offset().top-o.listDiv.offset().top+o.listDiv.scrollTop()},1e3),o.openPopup(a)}),o.markers.push(r),o.bounds.extend(d)}else if(n.valid()){var p;p=e.options.iconUrl?c.icon({iconUrl:e.options.iconUrl,iconSize:[30,36]}):c.icon({iconSize:[30,36]}),(r=c.marker([e.latitude,e.longitude],{icon:p}).addTo(o.map)).bindPopup('<div class="marker-popup-content"></div>',{minWidth:220,offset:c.point(0,-10)}),r.on("popupopen",function(){o.map.setView([e.latitude,e.longitude]),o.currentOpenedRelay=e;var a=s.find(".marker-popup-content");l=o.$new(),t('<div data-rbs-mondialrelay-popin-detail="" data-relay="currentOpenedRelay"></div>')(l,function(e){a.append(e)});var r=o.map.getBounds();o.map.setView([e.latitude+Math.abs(e.latitude-r._southWest.lat)/5*4,e.longitude])}),r.on("popupclose",function(){o.currentOpenedRelay=null,l&&(l.$destroy(),l=null),s.find(".marker-popup-content").children().remove()}),r.on("click",function(){o.selectedIndex=a,o.setDeliveryInformation(a);var e=s.find("#point"+a);e&&o.listDiv&&o.listDiv.animate({scrollTop:e.offset().top-o.listDiv.offset().top+o.listDiv.scrollTop()},1e3)}),o.markers.push(r),o.bounds.push(L.latLng(e.latitude,e.longitude))}else console.warn("No valid map configuration.")},o.selectRelay=function(e){o.setDeliveryInformation(e),o.openPopup(e)},o.openPopup=function(e){if(i.valid()&&o.map){var a,r=o.maps,c=o.data[e];r.event.addListener(o.infoWindow,"domready",function(){o.currentOpenedRelay=c;var e=s.find(".marker-popup-content");a=o.$new(),t('<div data-rbs-mondialrelay-popin-detail="" data-relay="currentOpenedRelay"></div>')(a,function(t){e.children().remove(),e.append(t)});var n=o.map.getBounds(),i=c.latitude+Math.abs(c.latitude-n.getSouthWest
1().lat())/5*4;o.map.setCenter(new r.LatLng(i,c.longitude))}),r.event.addListener(o.infoWindow,"closeclick",function(){o.currentOpenedRelay=null,a&&(a.$destroy(),a=null),s.find(".marker-popup-content").children().remove()}),o.infoWindow.open(o.map,o.markers[e])}else n.valid()&&o.markers[e].openPopup()},o.setDeliveryInformation=function(e){if(o.shippingMode.valid=c,null==e)o.selectedIndex=null,o.relayAddress=null,o.shippingMode.options.relay=null;else{o.selectedIndex=e,o.relayAddress=o.data[e].address;var t=o.data[e].options.matchingZone;t&&!0!==t&&o.shippingMode.taxesZones&&o.setTaxZone(t),o.shippingMode.options.relay=o.data[e]}},o.getLocation=function(t){return e.getData("Rbs/Geo/CityAutoCompletion/",{beginOfName:t,countryCode:o.currentAddress.country,options:o.options}).then(function(e){return 200==e.status?e.data.items:[]})},o.updateZipCode=function(e){null!=e&&null!=e.zipCode&&(o.currentAddress.zipCode=e.zipCode,o.launchSearch())},o.onSelectCountry=function(){o.currentAddress.city="",o.currentAddress.zipCode="",o.data=[],o.removeMarkers()},o.$watch("shippingModeInfo",function(e){if(e){o.defaultLatitude=e.editor.defaultLatitude,o.defaultLongitude=e.editor.defaultLongitude,o.defaultZoom=e.editor.defaultZoom,o.preSelectedRelay=null;var t=!1;if(o.shippingMode.id==e.common.id&&(o.shippingMode.valid=c,o.shippingMode.options&&o.shippingMode.options.relay)){var a=o.shippingMode.options.relay;a.searchAtPosition&&(o.preSelectedRelay=a,o.currentPosition=a.searchAtPosition,a.searchAtPosition.latitude&&(o.defaultLatitude=a.searchAtPosition.latitude,o.defaultLongitude=a.searchAtPosition.longitude,t=!0)),a.searchAtAddress&&(o.preSelectedRelay=a,o.currentAddress=a.searchAtAddress,o.currentAddress.country&&o.currentAddress.zipCode&&(t=!0))}o.loadMap(),t&&o.launchSearch()}}),o.$watch("shippingMode.id",function(e){e==o.shippingModeInfo.common.id&&(o.invalidateSize(),o.shippingMode.valid=c,o.shippingMode.atHomeAddress=null)}),o.invalidateSize=function(){i.valid()&&o.maps&&o.map?o.maps.event.trigger(o.map,"resize"):n.valid()&&o.map&&o.map.invalidateSize()}}}}]),e.directive("rbsMondialrelayModeSummary",function(){return{restrict:"A",templateUrl:"/rbs-mondialrelay-shipping-readonly.twig",scope:{shippingMode:"="},link:function(e){e.relay=e.shippingMode.options.relay}}}),e.directive("rbsMondialrelayPopinDetail",function(){return{restrict:"A",templateUrl:"/rbs-mondialrelay-popin-detail.twig",replace:!0,scope:{relay:"="},link:function(e){if(e.distance=null,e.distanceUnit="m",e.relay.options.distance){var t=parseInt(e.relay.options.distance);t>=1e3?(e.distance=Math.round(t/10)/100,e.distanceUnit="km"):e.distance=t}}}})}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsEventContextualList",["RbsChange.AjaxAPI","$location","$rootScope",function(e,t,a){return{restrict:"A",templateUrl:"/rbs-event-contextual-list.twig",scope:{blockId:"=",blockParameters:"=",blockData:"="},controller:["$scope",function(o){o.loading=!1,o.useInfiniteScroll=o.blockParameters.useInfiniteScroll||!1;var r=o.blockData;o.eventsData=r.eventsData,o.context=r.context,o.contextData=r.context.data,delete o.context.data,o.pagination=o.context.pagination,o.updateOffset=function(a){e.openWaitingModal(),o.context.pagination.offset=a,e.getData("Rbs/Event/BaseEvent/",o.contextData,o.context).then(function(a){o.eventsData=[],o.pagination=o.context.pagination=a.data.pagination,angular.forEach(a.data.items,function(e){o.eventsData.push(e)}),t.search("pageNumber-"+o.blockId,Math.floor(o.pagination.offset/o.pagination.limit)+1),e.closeWaitingModal()},function(){o.productsData=[],e.closeWaitingModal()})},a.$on("RbsElasticsearchFacetFilters",function(e,t){o.contextData.facetFilters=t.facetFilters,o.context.pagination.offset=0,t.instantSearch?o.reload("instantSearch"):o.reload("facetFilters")}),o.reload=function(t){var a="instantSearch"!==t;a&&e.openWaitingModal(),e.getData("Rbs/Event/BaseEvent/",o.contextData,o.context).then(function(t){o.eventsData=[],o.pagination=o.context.pagination=t.data.pagination,angular.forEach(t.data.items,function(e){o.eventsData.push(e)}),a&&e.closeWaitingModal()},function(){o.eventsData=[],a&&e.closeWaitingModal()})},o.addMoreEvents=function(){o.useInfiniteScroll&&!o.loading&&(o.context.pagination.offset=o.eventsData.length,o.loading=!0,e.getData("Rbs/Event/BaseEvent/",o.contextData,o.context).then(function(e){o.pagination.count=e.data.pagination.count,r.pagination.offset===o.eventsData.length&&angular.forEach(e.data.items,function(e){o.eventsData.push(e)}),o.loading=!1},function(){o.loading=!1}))}}],link:function(e){e.scrollDisabled=function(){return!e.useInfiniteScroll||(e.loading||e.eventsData.length>=e.pagination.count)}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsEventSearchResultItem",function(){return{restrict:"A",scope:{item:"="},templateUrl:"/rbs-event-search-result-item.twig",require:"^rbsElasticsearchResult",link:function(e,t,a,o){}}})}(),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t,a){var o={templateUrl:"/rbs-storelocator-zoom-map-modal.twig",backdropClass:"modal-backdrop-rbs-storelocator-zoom-map",windowClass:"modal-rbs-storelocator-zoom-map",size:"lg",controller:"RbsStorelocatorZoomMapModalCtrl",resolve:{storeData:function(){return e.storeData},loadMap:function(){return a}}};t.open(o)}e.controller("RbsStorelocatorZoomMapModalCtrl",["$scope","storeData","loadMap","$http",function(e,t,a,o){e.storeData=t,e.loadMap=a}]),e.directive("rbsStorelocatorZoomMap",["$timeout",function(e){return{restrict:"A",scope:!1,link:function(t,a,o){e(function(){t.loadMap(o.id)},500)}}}]),e.directive("rbsStorelocatorStore",["RbsChange.ModalStack","RbsGeo.LeafletMapService",function(e,a){return{restrict:"A",controller:["$scope",function(e){var t=e.blockData;
1e.parameters=e.blockParameters,this.getStoreData=function(){return t.storeData},this.getMarkerIconData=function(){return t.storeData.coordinates.marker?t.storeData.coordinates.marker:t.markerIcon}}],link:function(o,r,n,i){function s(e,t){if(o.storeData.coordinates){var r={lat:o.storeData.coordinates.latitude,lng:o.storeData.coordinates.longitude};o.map=t.map(e,{center:r,zoom:15});var n=new t.TileLayer(a.defaultTileLayerName(),{attribution:a.getAttribution()});o.map.addLayer(n);var s={},c=i.getMarkerIconData();c&&(s.icon=t.icon({iconUrl:c.original,iconAnchor:t.point(c.size[0]/2,c.size[1])})),o.marker=t.marker(r,s).addTo(o.map)}}o.storeData=i.getStoreData(),a.maps().then(function(a){s("map-"+o.blockId,a),o.zoomMap=function(){t(o,e,function(e){s(e,a)})}}),o.chooseStore=function(e){o.storeData.common.currentStore=e.common.id==o.storeData.common.id,o.$emit("rbsStorelocatorChooseStore",e.common.id)},o.zoomMap=function(){t(o,e,s)}}}}]),e.directive("rbsStorelocatorGoogleStore",["RbsChange.ModalStack","RbsGeo.GoogleMapService",function(e,a){return{restrict:"A",controller:["$scope",function(e){var t=e.blockData;e.parameters=e.blockParameters,this.getStoreData=function(){return t.storeData},this.getMarkerIconData=function(){return t.storeData.coordinates.marker?t.storeData.coordinates.marker:t.markerIcon}}],link:function(o,r,n,i){function s(e,t){if(o.storeData.coordinates){var a=new t.LatLng(o.storeData.coordinates.latitude,o.storeData.coordinates.longitude),r={center:a,zoom:15};o.map=new t.Map(document.getElementById(e),r);var n={position:a,map:o.map},s=i.getMarkerIconData();angular.isObject(s)&&(n.icon={url:s.original,size:new t.Size(s.size[0],s.size[1]),origin:new t.Point(0,0),anchor:new t.Point(s.size[0]/2,s.size[1])}),o.marker=new t.Marker(n)}}o.storeData=i.getStoreData(),a.maps().then(function(a){s("map-"+o.blockId,a),o.zoomMap=function(){t(o,e,function(e){s(e,a)})}}),o.chooseStore=function(e){o.storeData.common.currentStore=e.common.id==o.storeData.common.id,o.$emit("rbsStorelocatorChooseStore",e.common.id)}}}}]),e.directive("rbsStorelocatorSearch",["$compile","RbsChange.AjaxAPI","$timeout","$http","RbsGeo.LeafletMapService",function(e,t,a,o,r){return{restrict:"A",controller:["$scope","$element",function(o,n){var i=o.blockData;o.parameters=o.blockParameters,o.maps=null,o.markers=null,o.markerIcon=null,o.markerIconUrl=null,o.countries=[],o.searchCountry=null,i.countries&&i.countries.length&&(o.countries=i.countries,o.searchCountry=o.countries[0]),o.searchRadius=10,i.searchRadiusSelected&&(o.searchRadius=parseInt(i.searchRadiusSelected)),o.searchRadiusUnit="km",i.searchRadiusUnit&&(o.searchRadiusUnit=i.searchRadiusUnit),o.searchRadiusArray=[o.searchRadius+o.searchRadiusUnit],i.searchRadiusArray&&i.searchRadiusArray.length&&(o.searchRadiusArray=i.searchRadiusArray),o.parameters.currentStoreId=null,i&&i.currentStoreId&&(o.parameters.currentStoreId=i.currentStoreId),this.getSearchContext=function(){return i?i.searchContext:null},this.getInitialStoresData=function(){return i&&i.storesData?i.storesData:null},this.search=function(e){var a=this.getSearchContext(),r=t.getData("Rbs/Storelocator/Store/",e,a);return r.then(function(){o.$emit("rbsStorelocatorSearchHome",!0)}),r},this.setMarkers=function(e,t){var n=o.maps,i=n.latLng(t[0],t[1]);if(o.markers&&o.markers.clearLayers(),e.length){if(!o.map){o.map=n.map("map-"+o.blockId,{center:i,zoom:11});var s=new n.TileLayer(r.defaultTileLayerName(),{attribution:r.getAttribution()});o.map.addLayer(s)}this.buildMarkersLayer(e),o.bounds.push(i),a(function(){o.map.invalidateSize(!1),o.map.panTo(i),o.map.fitBounds(o.bounds,{padding:[40,30]})},200)}},this.buildMarkersLayer=function(t){var a,r=o.maps,s=o.markerIcon?{icon:o.markerIcon}:{};o.markers=new r.FeatureGroup,o.bounds=[],angular.forEach(t,function(t){var c=r.latLng(t.coordinates.latitude,t.coordinates.longitude);if(t.coordinates.marker){var l=r.icon({iconUrl:t.coordinates.marker.original,iconAnchor:r.point(t.coordinates.marker.size[0]/2,t.coordinates.marker.size[1])});a={icon:l}}else a=s;var d=r.marker(c,a),u='<div class="marker-popup-content" id="store-marker-'+t.common.id+'"></div>';d.bindPopup(u,{minWidth:220,offset:r.point(0,-(o.markerIcon?i.markerIcon.size[1]-5:30)
1),keepInView:!1});var p=null;d.on("popupopen",function(){o.popupStore=t;var a=n.find("#store-marker-"+t.common.id);p=o.$new(),e('<div data-rbs-storelocator-store-popup=""></div>')(p,function(e){a.append(e)})}),d.on("popupclose",function(){o.popupStore=null,p&&(p.$destroy(),p=null),n.find("#store-marker-"+t.common.id).children().remove()}),o.bounds.push(c),t.coordinates.marker=d,o.markers.addLayer(d)}),o.map.addLayer(o.markers)}}],link:function(e,o,n,i){e.stores=null,e.searchAddress=null,e.formattedAddress=null,e.filteredAddress=null,e.myCoordinates=null,e.addressCoordinates=null,e.error=null,e.searchContext=i.getSearchContext(),e.loadingAddresses=!1,e.options={},e.$watch("searchCountry",function(t,a){t&&t!==a&&e.searchAddress&&e.selectLoadedAddress()}),e.$watch("searchRadius",function(t,a){t&&t!==a&&e.searchAddress&&e.selectLoadedAddress()}),e.parameters.commercialSignId?e.commercialSignId=e.parameters.commercialSignId:e.commercialSignId=null,e.showHome=function(){return null===e.stores},e.searchInSignStores=function(){e.commercialSignId=e.parameters.commercialSignId,e.search()},e.searchInAllStores=function(){e.commercialSignId=null,e.search()},e.search=function(){var t=null;if(e.myCoordinates?t=e.myCoordinates:e.addressCoordinates&&(t=e.addressCoordinates),t){var a=e.maps;if(e.map){var o=a.latLng(t.latitude,t.longitude);e.map.setView(o)}e.addressLoading=!0,i.search({coordinates:t,distance:e.distance||e.searchRadius+e.searchRadiusUnit,commercialSign:e.commercialSignId?e.commercialSignId:0}).then(function(a){e.addressLoading=!1,angular.forEach(a.data.items,function(t){t.common.id==e.parameters.currentStoreId&&(t.common.currentStore=!0)}),e.stores=a.data.items,i.setMarkers(e.stores,[t.latitude,t.longitude])},function(t){e.addressLoading=!1,e.stores=[],console.error("Search store",t)})}},e.locateMe=function(){e.error=null,e.addressLoading=!0,navigator.geolocation.getCurrentPosition(function(t){e.addressLoading=!1,e.filteredAddress=null,e.formattedAddress=null,e.addressCoordinates=null,e.myCoordinates={latitude:t.coords.latitude,longitude:t.coords.longitude},e.distance=e.searchRadius+e.searchRadiusUnit,e.search()},function(t){console.error("Localisation failed : ["+t.code+"] "+t.message),e.addressLoading=!1,e.error=2,e.stores=[],e.$emit("rbsStorelocatorSearchHome",!0),e.$apply()},{timeout:5e3,maximumAge:0})},e.viewStoreOnMap=function(t){var a=e.maps.latLng(t.coordinates.latitude,t.coordinates.longitude);e.map.setView(a,15),t.coordinates.marker.isPopupOpen()||t.coordinates.marker.openPopup()},e.showStoreDetail=function(e){window.location.href=e.common.URL.canonical},e.chooseStore=function(t){angular.forEach(e.stores,function(e){e.common.currentStore=!1}),t.common.currentStore=!0,e.parameters.currentStoreId=t.common.id,e.$emit("rbsStorelocatorChooseStore",t.common.id)},e.getLoadedAddresses=function(a){return t.getData("Rbs/Geo/AddressCompletion/",{address:a,countryCode:e.country,options:e.options}).then(function(t){if(200==t.status){var a=e.searchAddress,o=t.data.items;return angular.forEach(o,function(e){e.title==a&&(a=null)}),a&&o.splice(0,0,{title:a}),o}return[]})},e.selectLoadedAddress=function(a){if(!(e.addressLoading||a&&13!=a.keyCode)){e.addressLoading=!0,e.error=null;var o={lines:["",e.searchAddress,e.searchCountry.label],countryCode:e.searchCountry.code};t.getData("Rbs/Geo/CoordinatesByAddress",{address:o}).then(function(t){e.addressLoading=!1,t.data.dataSets&&t.data.dataSets.latitude?(e.myCoordinates=null,e.filteredAddress=null,e.addressCoordinates={latitude:t.data.dataSets.latitude,longitude:t.data.dataSets.longitude},e.formattedAddress=t.data.dataSets.formattedAddress||o.lines[1],e.distance=e.searchRadius+e.searchRadiusUnit,e.search()):(e.stores=[],e.error=1)},function(t){e.addressLoading=!1,e.error=1,console.error("GET Rbs/Geo/CoordinatesByAddress",t)})}},e.selectAutocompleteAddress=function(t,a,o){e.addressLoading||(t.latitude&&t.longitude?(e.addressLoading=!0,e.error=null,e.myCoordinates=null,e.filteredAddress=null,e.addressCoordinates={latitude:t.latitude,longitude:t.longitude}
1,e.formattedAddress=t.label,e.distance=e.searchRadius+e.searchRadiusUnit,e.addressLoading=!1,e.search()):e.selectLoadedAddress())},e.updateDistance=function(t){e.searchRadius=t,e.distance=e.searchRadius+e.searchRadiusUnit,e.search()},r.maps().then(function(t){e.maps=t;var o=e.blockData||{};o.markerIcon&&(e.markerIconUrl=o.markerIcon.original,e.markerIcon=t.icon({iconUrl:e.markerIconUrl,iconAnchor:t.point(o.markerIcon.size[0]/2,o.markerIcon.size[1])}));var r=i.getInitialStoresData();if(angular.isArray(r)&&(e.stores=r,e.filteredAddress=n.facetValueTitle,e.$emit("rbsStorelocatorSearchHome",!0),e.stores.length)){i.setMarkers(e.stores,[e.stores[0].coordinates.latitude,e.stores[0].coordinates.longitude]);var s,c=[];angular.forEach(r,function(e){c.push(t.latLng(e.coordinates.latitude,e.coordinates.longitude))}),s=t.latLngBounds(c),a(function(){e.map.fitBounds(s,{padding:t.point(0,30)})},250)}})}}}]),e.directive("rbsStorelocatorSearchHome",["$rootScope",function(e){return{restrict:"A",link:function(t){t.hideStorelocatorSearchHome=!1,e.$on("rbsStorelocatorSearchHome",function(e,a){t.hideStorelocatorSearchHome=a})}}}]),e.directive("rbsStorelocatorStoreItem",function(){return{restrict:"A",templateUrl:"/rbs-storelocator-store-item.twig"}}),e.directive("rbsStorelocatorGoogleSearch",["$compile","RbsChange.AjaxAPI","RbsGeo.GoogleMapService","$timeout",function(e,t,a,o){return{restrict:"A",controller:["$scope",function(a){var o=a.blockData;a.parameters=a.blockParameters,a.maps=null,a.markers=null,a.markerIcon=null,a.markerIconUrl=null,a.searchRadius=10,o.searchRadiusSelected&&(a.searchRadius=parseInt(o.searchRadiusSelected)),a.searchRadiusUnit="km",o.searchRadiusUnit&&(a.searchRadiusUnit=o.searchRadiusUnit),a.searchRadiusArray=[a.searchRadius+a.searchRadiusUnit],o.searchRadiusArray&&o.searchRadiusArray.length&&(a.searchRadiusArray=o.searchRadiusArray),a.parameters.currentStoreId=null,o&&o.currentStoreId&&(a.parameters.currentStoreId=o.currentStoreId),this.getSearchContext=function(){return o?o.searchContext:null},this.getInitialStoresData=function(){return o&&o.storesData?o.storesData:null},this.search=function(e){var o=this.getSearchContext(),r=t.getData("Rbs/Storelocator/Store/",e,o);return r.then(function(){a.$emit("rbsStorelocatorSearchHome",!0)}),r},this.setMarkers=function(t,r){if(a.markers)for(var n=0;n<a.markers.length;n++)a.markers[n].setMap(null);if(a.markers=[],t.length){if(a.map)a.map.setCenter(new a.maps.LatLng(r[0],r[1]));else{var i={center:new a.maps.LatLng(r[0],r[1]),zoom:11,minZoom:7,maxZoom:15};a.map=new a.maps.Map(document.getElementById("map-"+a.blockId),i)}a.bounds=new a.maps.LatLngBounds,a.bounds.extend(new a.maps.LatLng(r[0],r[1])),angular.forEach(t,function(t){var r=new a.maps.LatLng(t.coordinates.latitude,t.coordinates.longitude),n={position:r,map:a.map},i=t.coordinates.marker;!i||o.markerIcon&&i.id==o.markerIcon.id?a.markerIcon&&(n.icon=a.markerIcon):n.icon={url:i.original,size:new a.maps.Size(i.size[0],i.size[1]),origin:new a.maps.Point(0,0),anchor:new a.maps.Point(i.size[0]/2,i.size[1])};var s=new a.maps.Marker(n);a.markers.push(s),a.bounds.extend(r),t.coordinates.openPopup=function(){a.infoWindow&&(a.infoWindow.close(),a.popupStore=null);a.infoWindow=new a.maps.InfoWindow({content:e('<div data-rbs-storelocator-store-popup=""></div>')(a)[0]}),a.maps.event.addListener(a.infoWindow,"domready",function(){a.popupStore=t,a.$digest()}),a.infoWindow.open(a.map,s)},a.maps.event.addListener(s,"click",function(){t.coordinates.openPopup()})}),a.map.fitBounds(a.bounds)}}}],link:function(e,t,r,n){e.stores=null,e.searchAddress=null,e.formattedAddress=null,e.filteredAddress=null,e.myCoordinates=null,e.addressCoordinates=null,e.error=null,e.searchContext=n.getSearchContext(),e.loadingAddresses=!1,e.options={},e.parameters.commercialSignId?e.commercialSignId=e.parameters.commercialSignId:e.commercialSignId=null,e.showHome=function(){return null===e.stores},e.searchInSignStores=function(){e.commercialSignId=e.parameters.commercialSignId,e.search()},e.searchInAllStores=function(){e.commercialSignId=null,e.search()},e.search=function(){var t=null;e.myCoordinates?t=e.myCoordinates:e.addressCoordinates&&(t=e.addressCoordinates),t&&(e.map&&e.map.setCenter(new e.maps.LatLng(t.latitude,t.longitude)),e.addressLoading=!0,n.search({coordinates:t,distance:e.distance||e.searchR
1adius+e.searchRadiusUnit,commercialSign:e.commercialSignId?e.commercialSignId:0}).then(function(a){e.addressLoading=!1,angular.forEach(a.data.items,function(t){t.common.id==e.parameters.currentStoreId&&(t.common.currentStore=!0)}),e.stores=a.data.items,n.setMarkers(e.stores,[t.latitude,t.longitude])},function(t){e.addressLoading=!1,e.stores=[],console.error("search store",t)}))},e.locateMe=function(){e.error=null,e.addressLoading=!0,navigator.geolocation.getCurrentPosition(function(t){e.addressLoading=!1,e.filteredAddress=null,e.formattedAddress=null,e.addressCoordinates=null,e.myCoordinates={latitude:t.coords.latitude,longitude:t.coords.longitude},e.distance=e.searchRadius+e.searchRadiusUnit,e.search()},function(t){console.error("Localisation failed : ["+t.code+"] "+t.message),e.addressLoading=!1,e.error=2,e.stores=[],e.$emit("rbsStorelocatorSearchHome",!0),e.$apply()},{timeout:5e3,maximumAge:0})},e.viewStoreOnMap=function(t){var a=new e.maps.LatLng(t.coordinates.latitude,t.coordinates.longitude);e.map.setCenter(a),e.map.setZoom(15),t.coordinates.openPopup()},e.showStoreDetail=function(e){window.location.href=e.common.URL.canonical},e.chooseStore=function(t){angular.forEach(e.stores,function(e){e.common.currentStore=!1}),t.common.currentStore=!0,e.parameters.currentStoreId=t.common.id,e.$emit("rbsStorelocatorChooseStore",t.common.id)},e.$watch("searchRadius",function(t,a){t&&t!==a&&e.searchAddress&&e.updateDistance(t)}),e.selectLoadedAddress=function(){var t=e.autocomplete.getPlace();if(t.geometry){e.error=null,e.myCoordinates=null,e.filteredAddress=null;var a=t.geometry.location;e.addressCoordinates={latitude:a.lat(),longitude:a.lng()},e.formattedAddress=t.formatted_address,e.distance=e.searchRadius+e.searchRadiusUnit,e.search()}},e.updateDistance=function(t){e.searchRadius=t,e.distance=e.searchRadius+e.searchRadiusUnit,e.search()},a.maps().then(function(t){e.maps=t;var a=e.blockData||{};a.markerIcon&&(e.markerIconUrl=a.markerIcon.original,e.markerIcon={url:e.markerIconUrl,size:new t.Size(a.markerIcon.size[0],a.markerIcon.size[1]),origin:new t.Point(0,0),anchor:new t.Point(a.markerIcon.size[0]/2,a.markerIcon.size[1])}),e.autocomplete=new t.places.Autocomplete(document.getElementById(e.blockId+"_autocomplete"),{types:["geocode"]}),t.event.addListener(e.autocomplete,"place_changed",function(){e.searchAddress=!0,e.selectLoadedAddress()});var i=n.getInitialStoresData();angular.isArray(i)&&(e.stores=i,e.filteredAddress=r.facetValueTitle,e.$emit("rbsStorelocatorSearchHome",!0),e.stores.length&&o(function(){var a=new t.LatLngBounds;angular.forEach(i,function(e){a.extend(new t.LatLng(e.coordinates.latitude,e.coordinates.longitude))});var o=a.getCenter();n.setMarkers(e.stores,[o.lat(),o.lng()]),e.map.fitBounds(a)}))})}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("RbsBaseStorelocatorSearch",["$scope","$element","$attrs","$compile","RbsChange.AjaxAPI",function(e,t,a,o,r){var n=this,i=e.blockData,s=angular.copy(e.blockParameters);e.maps=null,e.markers=null,e.markerIcon=null,e.markerIconUrl=null,e.stores=null,e.searchAddress=null,e.formattedAddress=null,e.filteredAddress=null,e.myCoordinates=null,e.addressCoordinates=null,e.error=null,e.loadingAddresses=!1,e.options={},e.searchRadius=10,i.searchRadiusSelected&&(e.searchRadius=parseInt(i.searchRadiusSelected)),e.searchRadiusUnit="km",i.searchRadiusUnit&&(e.searchRadiusUnit=i.searchRadiusUnit),e.searchRadiusArray=[e.searchRadius+e.searchRadiusUnit],i.searchRadiusArray&&i.searchRadiusArray.length&&(e.searchRadiusArray=i.searchRadiusArray),e.blockParameters.currentStoreId=null,i&&i.currentStoreId&&(e.blockParameters.currentStoreId=i.currentStoreId),angular.element("select#searchRadius").on("change",function(){e.searchAddress&&e.updateDistance(this.value)}),e.updateDistance=function(t){e.searchRadius=t,e.distance=e.searchRadius+e.searchRadiusUnit,angular.element("select#searchRadius").val(t),e.search()}
1,this.getSearchContext=function(){return i?i.searchContext:null},e.searchContext=n.getSearchContext(),this.getInitialStoresData=function(){return i&&i.storesData?i.storesData:null},this.search=function(e){var t=n.getSearchContext(),a=r.getData("Rbs/Storelocator/Store/",e,t);return a.then(function(){s.showHome=!1}),a},this.handleSearchResults=function(t,a){return e.addressLoading=!1,angular.forEach(t.data.items,function(t){if(t.common.id===e.blockParameters.currentStoreId)return t.common.currentStore=!0,!0}),e.stores=t.data.items,s.searchRadius=e.searchRadius,s.formattedAddress=e.formattedAddress,s.addressCoordinates=e.addressCoordinates,s.myCoordinates=e.myCoordinates,s.filteredAddress=e.filteredAddress,s.commercialSignIdValue=e.commercialSignId,this.reloadBlock(s)},this.reloadBlock=function(a){return a.userActionReload=!0,a.stores=e.stores,a.error=e.error,r.reloadBlock(e.blockName,e.blockId,a,e.blockNavigationContext).then(function(a){var r=jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".content").html();t.find(".content").html(r),o(t.find(".content"))(e)},function(e){console.error("[RbsStorelocatorSearchPreloaded] error reloading block:",e)})},e.blockParameters.commercialSignId?e.commercialSignId=e.blockParameters.commercialSignId:e.commercialSignId=null,e.searchInSignStores=function(){e.commercialSignId=e.blockParameters.commercialSignId,e.search()},e.searchInAllStores=function(){e.commercialSignId=null,e.search()},e.locateMe=function(){e.error=null,e.addressLoading=!0,navigator.geolocation.getCurrentPosition(function(t){e.addressLoading=!1,e.filteredAddress=null,e.formattedAddress=null,e.addressCoordinates=null,e.myCoordinates={latitude:t.coords.latitude,longitude:t.coords.longitude},e.distance=e.searchRadius+e.searchRadiusUnit,e.search()},function(t){console.error("Localisation failed : ["+t.code+"] "+t.message),e.addressLoading=!1,e.error=2,e.stores=[],s.showHome=!1,n.reloadBlock(s)},{timeout:5e3,maximumAge:0})},e.chooseStore=function(t){var a=null;angular.forEach(e.stores,function(e){e.common.id===parseInt(t)?a=e:e.common.currentStore=!1}),a.common.currentStore=!0,e.blockParameters.currentStoreId=a.common.id,e.$emit("rbsStorelocatorChooseStore",a.common.id)}}]),e.controller("RbsStorelocatorLeafletSearch",["$scope","$element","$attrs","$compile","RbsChange.AjaxAPI","$timeout","$http","$controller","RbsGeo.LeafletMapService",function(e,t,a,o,r,n,i,s,c){angular.extend(this,s("RbsBaseStorelocatorSearch",{$scope:e,$element:t,$attrs:a}));var l=this,d=e.blockData,u=angular.copy(e.blockParameters);function p(t){e.map.setView(t.target.getLatLng(),11)}function m(t,a){var o=e.maps,r=o.latLng(a[0],a[1]);if(e.markers&&e.markers.clearLayers(),t.length){e.map=o.map("map-"+e.blockId,{center:r,zoom:11});var i=new o.TileLayer(c.defaultTileLayerName(),{attribution:c.getAttribution()});e.map.addLayer(i),l.buildMarkersLayer(t),e.bounds.push(r),n(function(){e.map.invalidateSize(!1),e.map.panTo(r),e.map.fitBounds(e.bounds,{padding:[40,30]})},200)}}e.countries=[],e.searchCountry=null,d.countries&&d.countries.length&&(e.countries=d.countries,e.searchCountry=e.countries[0]),angular.element("select#searchCountry").on("change",function(){e.searchCountry=e.countries[this.value],e.searchAddress&&e.selectLoadedAddress()}),this.buildMarkersLayer=function(a){var r,n=e.maps,i=e.markerIcon?{icon:e.markerIcon}:{};e.markers=new n.FeatureGroup,e.bounds=[],angular.forEach(a,function(a){var s=n.latLng(a.coordinates.latitude,a.coordinates.longitude);if(a.coordinates.marker){var c=n.icon({iconUrl:a.coordinates.marker.original,iconAnchor:n.point(a.coordinates.marker.size[0]/2,a.coordinates.marker.size[1])});r={icon:c}}else r=i;var l=n.marker(s,r),u='<div class="marker-popup-content" id="store-marker-'+a.common.id+'"></div>';l.bindPopup(u,{minWidth:220,offset:n.point(0,-(e.markerIcon?d.markerIcon.size[1]-5:30)),keepInView:!1});var m=null;l.on("popupopen",function(){e.popupStore=a;var r=t.find("#store-marker-"+a.common.id);m=e.$new(),o('<div data-rbs-storelocator-store-popup=""></div>')(m,function(e){r.append(e)})}),l.on("popupclose",function(){e.popupStore=null,m&&(m.$destroy(),m=null),t.find("#store-marker-"+a.common.id).children().remove()}),l.on("click",p),e.bounds.push(s),a.coordinates.marker=l,e.markers.addLayer(l)}),e.map.addLayer(e.markers)},e.search=function(){var t=null;if(e.myCoordinates?t=e.myCoordinates:e.addressCoordinates&&(t=e.addressCoordinates),t){var a=e.maps;if(e.map){var o=a.latLng(t.latitude,t.longitude);
1e.map.setView(o)}e.addressLoading=!0,l.search({coordinates:t,distance:e.distance||e.searchRadius+e.searchRadiusUnit,commercialSign:e.commercialSignId?e.commercialSignId:0}).then(function(a){l.handleSearchResults(a,t).then(function(){m(e.stores,[t.latitude,t.longitude])})},function(t){e.addressLoading=!1,e.stores=[],console.error("Search store",t)})}},e.viewStoreOnMap=function(t){var a=e.stores[t],o=e.maps.latLng(a.coordinates.latitude,a.coordinates.longitude);e.map.setView(o,15),a.coordinates.marker.isPopupOpen()||a.coordinates.marker.openPopup()},e.getLoadedAddresses=function(t){return r.getData("Rbs/Geo/AddressCompletion/",{address:t,countryCode:e.country,options:e.options}).then(function(t){if(200===t.status){var a=e.searchAddress,o=t.data.items;return angular.forEach(o,function(e){e.title===a&&(a=null)}),a&&o.splice(0,0,{title:a}),o}return[]})},e.selectLoadedAddress=function(t){if(!(e.addressLoading||t&&13!==t.keyCode)){e.addressLoading=!0,e.error=null;var a={lines:["",e.searchAddress,e.searchCountry.label],countryCode:e.searchCountry.code};r.getData("Rbs/Geo/CoordinatesByAddress",{address:a}).then(function(t){e.addressLoading=!1,t.data.dataSets&&t.data.dataSets.latitude?(e.myCoordinates=null,e.filteredAddress=null,e.addressCoordinates={latitude:t.data.dataSets.latitude,longitude:t.data.dataSets.longitude},e.formattedAddress=t.data.dataSets.formattedAddress||a.lines[1],e.distance=e.searchRadius+e.searchRadiusUnit,e.search()):(e.stores=[],e.error=1,l.reloadBlock(u))},function(t){e.addressLoading=!1,e.error=1,console.error("GET Rbs/Geo/CoordinatesByAddress",t),l.reloadBlock(u)})}},e.selectAutocompleteAddress=function(t,a,o){e.addressLoading||(t.latitude&&t.longitude?(e.addressLoading=!0,e.error=null,e.myCoordinates=null,e.filteredAddress=null,e.addressCoordinates={latitude:t.latitude,longitude:t.longitude},e.formattedAddress=t.label,e.distance=e.searchRadius+e.searchRadiusUnit,e.addressLoading=!1,e.search()):e.selectLoadedAddress())},c.maps().then(function(t){e.maps=t;var a=e.blockData||{};a.markerIcon&&(e.markerIconUrl=a.markerIcon.original,e.markerIcon=t.icon({iconUrl:e.markerIconUrl,iconAnchor:t.point(a.markerIcon.size[0]/2,a.markerIcon.size[1])}));var o=l.getInitialStoresData();angular.isArray(o)&&(e.stores=o,e.filteredAddress=a.facetValueTitle,e.stores.length&&(u.filteredAddress=e.filteredAddress,u.showHome=!1,l.reloadBlock(u).then(function(){m(e.stores,[e.stores[0].coordinates.latitude,e.stores[0].coordinates.longitude]);var a,r=[];angular.forEach(o,function(e){r.push(t.latLng(e.coordinates.latitude,e.coordinates.longitude))}),a=t.latLngBounds(r),n(function(){e.map.fitBounds(a,{padding:t.point(0,30)})},250)})))})}]),e.controller("RbsStorelocatorGoogleSearch",["$scope","$element","$attrs","$compile","RbsChange.AjaxAPI","RbsGeo.GoogleMapService","$timeout","$controller",function(e,t,a,o,r,n,i,s){angular.extend(this,s("RbsBaseStorelocatorSearch",{$scope:e,$element:t,$attrs:a}));var c=this,l=e.blockData,d=angular.copy(e.blockParameters);function u(t,a){if(e.markers)for(var r=0;r<e.markers.length;r++)e.markers[r].setMap(null);if(e.markers=[],t.length){var n={center:new e.maps.LatLng(a[0],a[1]),zoom:11,minZoom:7,maxZoom:15};e.map=new e.maps.Map(document.getElementById("map-"+e.blockId),n),e.bounds=new e.maps.LatLngBounds,e.bounds.extend(new e.maps.LatLng(a[0],a[1])),angular.forEach(t,function(t){var a=new e.maps.LatLng(t.coordinates.latitude,t.coordinates.longitude),r={position:a,map:e.map},n=t.coordinates.marker;!n||l.markerIcon&&n.id===l.markerIcon.id?e.markerIcon&&(r.icon=e.markerIcon):r.icon={url:n.original,size:new e.maps.Size(n.size[0],n.size[1]),origin:new e.maps.Point(0,0),anchor:new e.maps.Point(n.size[0]/2,n.size[1])};var i=new e.maps.Marker(r);e.markers.push(i),e.bounds.extend(a),t.coordinates.openPopup=function(){e.infoWindow&&(e.infoWindow.close(),e.popupStore=null);e.infoWindow=new e.maps.InfoWindow({content:o('<div data-rbs-storelocator-store-popup=""></div>')(e)[0]}),e.maps.event.addListener(e.infoWindow,"domready",function(){e.popupStore=t,e.$digest()}),e.infoWindow.open(e.map,i)},e.maps.event.addListener(i,"click",function(){t.coordinates.openPopup()})}),e.map.fitBounds(e.bounds)}}e.search=function(){var t=null;e.myCoordinates?t=e.myCoordinates:e.addressCoordinates&&(t=e.addressCoordinates),t&&(e.map&&e.map.setCenter(new e.maps.LatLng(t.latitude,t.longitude)),e.addressLoading=!0,c.search({coordinates:t,distance:e.distance||e.searchR
1adius+e.searchRadiusUnit,commercialSign:e.commercialSignId?e.commercialSignId:0}).then(function(a){c.handleSearchResults(a,t).then(function(){u(e.stores,[t.latitude,t.longitude])})},function(t){e.addressLoading=!1,e.stores=[],console.error("search store",t)}))},e.viewStoreOnMap=function(t){var a=e.stores[t],o=new e.maps.LatLng(a.coordinates.latitude,a.coordinates.longitude);e.map.setCenter(o),e.map.setZoom(15),a.coordinates.openPopup()},e.selectLoadedAddress=function(){var t=e.autocomplete.getPlace();if(t.geometry){e.error=null,e.myCoordinates=null,e.filteredAddress=null;var a=t.geometry.location;e.addressCoordinates={latitude:a.lat(),longitude:a.lng()},e.formattedAddress=t.formatted_address,e.distance=e.searchRadius+e.searchRadiusUnit,e.search()}},n.maps().then(function(t){e.maps=t;var a=e.blockData||{};a.markerIcon&&(e.markerIconUrl=a.markerIcon.original,e.markerIcon={url:e.markerIconUrl,size:new t.Size(a.markerIcon.size[0],a.markerIcon.size[1]),origin:new t.Point(0,0),anchor:new t.Point(a.markerIcon.size[0]/2,a.markerIcon.size[1])}),e.autocomplete=new t.places.Autocomplete(document.getElementById(e.blockId+"_autocomplete"),{types:["geocode"]}),t.event.addListener(e.autocomplete,"place_changed",function(){e.searchAddress=!0,e.selectLoadedAddress()});var o=c.getInitialStoresData();angular.isArray(o)&&(e.stores=o,e.filteredAddress=a.facetValueTitle,e.stores.length&&i(function(){d.filteredAddress=e.filteredAddress,d.showHome=!1,c.reloadBlock(d).then(function(){var a=new t.LatLngBounds;angular.forEach(o,function(e){a.extend(new t.LatLng(e.coordinates.latitude,e.coordinates.longitude))});var r=a.getCenter();u(e.stores,[r.lat(),r.lng()]),e.map.fitBounds(a)})}))})}]),e.directive("rbsStorelocatorStorePopup",function(){return{restrict:"A",templateUrl:"/rbs-storelocator-store-popup.twig",link:function(e,t,a,o){}}})}(),function(){"use strict";var e=angular.module("RbsChangeApp"),t=window.__change.Rbs_Geo_Config,a=t&&t.Google&&(t.Google.client||t.Google.APIKey)?"google":"default";e.directive("rbsStorelocatorStoreSelector",["RbsChange.AjaxAPI","$timeout","RbsGeo.GoogleMapService",function(e,t,o){return{restrict:"A",templateUrl:"/rbs-storelocator-store-selector.twig",scope:{ajaxService:"<",ajaxData:"<?",ajaxParams:"<?",selectStore:"<?",currentStore:"<?"},link:function(r,n){r.stores=[],r.allowSelect=!!r.selectStore,r.locationMode=a,r.countries=[],r.search={address:null,country:null,coordinates:null,processId:0,storeId:null,useAsDefault:!0},"default"===a&&(e.getData("Rbs/Storelocator/StoreCountries/").then(function(e){if(e.data.items.length){for(var t=0;t<e.data.items.length;t++)r.countries.push(e.data.items[t].title);r.search.country=r.countries[0]}}),r.$watch("search.country",function(e,t){e&&e!==t&&r.search.address&&r.locateByAddress()})),r.loading=!1,r.locateMeLoading=!1,r.locateByAddressLoading=!1,r.emptySearch=!1,r.$watch("search.address",function(e){r.locateByAddressError=!1,e&&(r.search.coordinates=null)}),r.locateMe=function(){r.loading||r.locateMeLoading||(r.locateMeLoading=!0,r.emptySearch=!1,navigator.geolocation.getCurrentPosition(function(e){r.locateMeLoading=!1,r.search.coordinates={latitude:e.coords.latitude,longitude:e.coords.longitude},r.search.address=null,r.$digest(),r.launchSearch()},function(e){console.error(e),r.locateMeLoading=!1,r.locateMeError=!0,r.stores=[],r.$digest(),t(function(){r.locateMeError=!1},5e3)},{timeout:5e3,maximumAge:0}))},r.locateByAddress=function(){if(!r.loading&&!r.locateByAddressLoading&&r.search.address){r.locateByAddressLoading=!0,r.emptySearch=!1;var t={lines:["",r.search.address,r.search.country]};e.getData("Rbs/Geo/CoordinatesByAddress",{address:t}).then(function(e){r.locateByAddressLoading=!1,e.data.dataSets&&e.data.dataSets.latitude?(r.search.coordinates={latitude:e.data.dataSets.latitude,longitude:e.data.dataSets.longitude},r.launchSearch()):(r.locateByAddressError=!0,r.stores=[])},function(){r.locateByAddressLoading=!1,r.locateByAddressError=!0,r.stores=[]})}},r.launchSearch=function(){r.loading=!0,r.emptySearch=!1;var t=angular.copy(r.ajaxData)||{};t.coordinates=r.search.coordinates,e.getData(r.ajaxService,t,r.ajaxParams).then(function(e){r.stores=e.data.items,r.loading=!1,r.emptySearch=0===e.data.items.length},function(e){console.log("launchSearch error",e),r.stores=[],r.loading=!1,r.emptySearch=!0})},"google"===a&&o.maps().then(function(e){t(function(){var t=n.find('[data-role="address-auto-complete"]');r.autocomplete=new e.places.Autocomplete(t[0],{types:["geocode"]}),e.event.addListener(r.autocomplete,"place_changed",function(){var e=r.autocomplete.getPlace();if(e.geometry){var t=e.geometry.location;r.search.coordinates={latitude:t.lat(),longitude:t.lng()},r.search.address=null,r.$digest(),r.launchSearch()}})})})}}}])}(),function(e){"use strict";var t=angular.module("RbsChangeApp");t.directive("rbsCommercePaymentConnectorDeferred",["RbsChange.AjaxAPI",function(t){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/rbs-payment-deferred-connector.twig",link:function(a){a.processing=!1,a.paymentData=a.connectorInfo.transaction,a.confirmOrder=function(){a.processing=!0;var o={connectorId:a.connectorInfo.common.id,transactionId:a.transaction.transactionId};t.putData("Rbs/Payment/Deferred/confirm",o).then(function(t){var a=t.data.dataSets,o=a&&a.common&&a.common.redirectURL;o?e.location.assign(o):e.location.reload(!0)},function(e){a.submitError=e.data,a.processData.paymentError=[e.data.message],a.processing=!1,
1console.error(e)})}}}}]),t.directive("rbsCommercePaymentConnectorHtml",function(){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},template:'<div data-ng-bind-html="connectorInfo.transaction.html | rbsTrustHtml"></div>',link:function(e){}}})}(window),function(){"use strict";angular.module("RbsChangeApp").controller("RbsReviewReviewPreloaded",["$scope","$element","$attrs","$rootScope","$compile","RbsChange.AjaxAPI","RbsChange.Cookies",function(e,t,a,o,r,n,i){var s=parseInt(a.authorId||"0",10),c=angular.copy(e.blockParameters);c.tTL=0,e.data={voting:!1,editing:!1,form:{}},e.vote=function(t,a){e.data.voting=!0,c.canVote=!1;var o={vote:a};n.postData("Rbs/Review/Review/"+t+"/Votes",o,[]).then(function(){if(i.get("reviewVotes")){var e=i.getObject("reviewVotes");e.push(t),i.putObject("technical","reviewVotes",e)}else i.putObject("technical","reviewVotes",[t]);c.voted=!0,d(),c.voted=!1},function(t){e.data.voting=!1,e.error=t.data.message,console.error(t)})};var l=n.globalVar("userContext");function d(a){n.reloadBlock(e.blockName,e.blockId,c,e.blockNavigationContext).then(function(o){t.find(".content").html(jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),a&&n.closeWaitingModal()},function(e){console.error("[RbsReviewReviewPreloaded] error reloading block:",e)})}angular.isObject(l)?l.accessorId&&l.accessorId===s&&(c.renderEdition=!0,d()):n.getData("Rbs/User/Info",null,null).then(function(e){e.data.dataSets.user.accessorId&&e.data.dataSets.user.accessorId===s&&(c.renderEdition=!0,d())},function(e){console.error("[RbsReviewReviewPreloaded] Can't load user info:",e)}),e.editReview=function(){e.data.editing=!0},e.cancelEdition=function(){e.data.editing=!1},e.saveReview=function(t){n.openWaitingModal(),e.error=null;var a={setData:{content:{raw:e.data.form.content},rating:e.data.form.rating}};n.putData("Rbs/Review/Review/"+t,a,{}).then(function(){e.data.editing=!1,d(!0)},function(t){e.error=t.data.message,console.log("error",t),n.closeWaitingModal()})},e.deleteReview=function(t,a){confirm(a.target.getAttribute("data-confirm-message"))&&(n.openWaitingModal(),e.error=null,n.deleteData("Rbs/Review/Review/"+t,{},{}).then(function(){c.deleted=!0,d(!0)},function(t){e.error=t.data.message,console.log("error",t),n.closeWaitingModal()}))}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsReviewReviewsForDocument",["$scope","$element","$attrs","$compile","RbsChange.AjaxAPI","RbsChange.Cookies",function(e,t,a,o,r,n){var i=angular.copy(e.blockParameters);i.TTL=0,i.reviewPageNumber=i.reviewPageNumber||1,e.error=null,e.adding=!1,e.editing=!1,e.data={voting:!1,form:{}};var s=r.globalVar("userContext");function c(a,n){n=n||angular.copy(i);var s=".reviews";return a=a||{},n.listOnly=!1,n.userInteractionOnly=!1,a.userInteractionOnly?(s=".user-interaction",n.userInteractionOnly=!0):a.listOnly&&(s=".reviews-list",n.listOnly=!0),r.reloadBlock(e.blockName,e.blockId,n,e.blockNavigationContext).then(function(a){var r=jQuery(jQuery.parseHTML(a.data.dataSets.html));t.find(s).html(r.filter(s).html()),o(t.find(s))(e)},function(e){console.error("[RbsCatalogProductDetail] error reloading block:",e)})}e.saveReview=function(t){r.openWaitingModal(),e.error=null;var o,n={setData:{content:{raw:e.data.form.content},rating:e.data.form.rating}};o=0===t?"Rbs/Review/CurrentReviewForTarget/"+a.targetId:"Rbs/Review/Review/"+t,r.putData(o,n,{}).then(function(){e.editing=!1,e.adding=!1,c({userInteractionOnly:!0}),r.closeWaitingModal()},function(t){e.error=t.data.message,console.error(t),r.closeWaitingModal()})},e.deleteReview=function(t,a){confirm(a.target.getAttribute("data-confirm-message"))&&(r.openWaitingModal(),e.error=null,r.deleteData("Rbs/Review/Review/"+t,{},{}).then(function(){e.editing=!1,c(),r.closeWaitingModal()},function(t){e.error=t.data.message,console.error(t),r.closeWaitingModal()}))},e.addReview=function(){e.adding=!0},e.editReview=function(){e.editing=!0},e.cancelEdition=function(){e.editing=!1,e.adding=!1},e.onPaginationLinkClick=function(t){t.originalEvent.stopPropagation(),t.originalEvent.preventDefault(),e.changingPage||(e.changingPage=!0,i.reviewPageNumber=parseInt(t.target.getAttribute("data-page-number"),10),c({listOnly:!0}).then(function(){e.changingPage=!1}))},e.vote=function(t,a){e.data.voting=!0,i.canVote=!1;var o={vote:a};r.postData("Rbs/Review/Review/"+t+"/Votes",o,[]).then(function(){if(n.get("reviewVotes")){var a=n.getObject("reviewVotes");a.push(t),n.putObject("technical","reviewVotes",a)}else n.putObject("technical","reviewVotes",[t]);var o=angular.copy(i);o.votedOn=t,c({votedOn:t},o).then(function(){e.data.voting=!1})},function(t){e.data.voting=!1,e.error=t.data.message,console.error(t)})},angular.isObject(s)&&s.accessorId&&c({userInteractionOnly:!0})}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t){angular.isArray(e.avatarSizes)?e.avatarSizes.push(t):e.avatarSizes=[t]}function a(e,t){e.urlFormats?angular.isArray(e.urlFormats)?e.urlFormats.push(t):angular.isString(e.urlFormats)&&(e.urlFormats+=","+t):e.urlFormats=t}function o(e,t){e.dataSetNames?angular.isArray(e.dataSetNames)?e.dataSetNames.push(t):angular.isString(e.dataSetNames)&&(e.dataSetNames+=","+t):e.dataSetNames=t}e.directive("rbsReviewInputStarRating",function(){return{restrict:"A",templateUrl:"/rbs-review-input-star-rating.twig",require:"?ngModel",scope:{scale:"@"},link:function(e,t,a,o){if(o){e.stars=[];for(var r=0;r<e.scale;r++)e.stars.push(r+1);e.scaled={},o.$render=function(){e.scaled.rating=Math.floor(o.$viewValue/(100/e.scale))},e.$watch("scaled.rating",function(t,a){t===a||isNaN(t)||o.$setViewValue(Math.ceil(e.scaled.rating*(100/e.scale)))})}}}}),e.directive("rbsReviewInputStarRatingItem",function(){return{restrict:"A",scope:!1,link:function(e,t,a){t.hover(function(){e.scaled.hover=parseInt(a.rb
1sReviewInputStarRatingItem),e.$digest()},function(){e.scaled.hover=-1,e.$digest()})}}}),e.directive("rbsReviewStarRating",function(){return{restrict:"A",templateUrl:"/rbs-review-star-rating.twig",scope:{rating:"=rbsReviewStarRating",scale:"@"},link:function(e,t,a){e.stars=[];for(var o=0;o<e.scale;o++)e.stars.push(o);e.$watch("rating",function(){"true"!=a.scaled?e.scaledRating=Math.floor(e.rating/(100/e.scale)):e.scaledRating=e.rating})}}}),e.directive("rbsReviewReviewsSummary",function(){return{restrict:"A",templateUrl:"/rbs-review-reviews-summary.twig",scope:{data:"=rbsReviewReviewsSummary",showReviews:"=showReviewsCallback",scale:"@"},link:function(e,t,a){}}}),e.directive("rbsReviewReviewsDetails",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-review-reviews-details.twig",scope:{targetId:"=",ajaxData:"=",ajaxParams:"=",handleVotes:"=",reviewsPerPage:"=",scale:"="},link:function(o,r,n){var i=angular.isObject(o.ajaxData)?o.ajaxData:{};t(i,"60");var s=angular.isObject(o.ajaxParams)?o.ajaxParams:{};s.detailed=!0,a(s,"canonical");var c=n.cacheKey;function l(){e.getData("Rbs/Review/ReviewsForTarget/"+o.targetId+"/Stats",i,s).then(function(e){o.statsData=e.data.dataSets,d()},function(e){o.error=e.data.message,console.log("error",e)})}function d(){o.scaledAverage=o.statsData.common.rating/(100/o.scale),o.scaledDistribution=[];for(var e=0;e<=o.scale;e++)o.scaledDistribution.push({rating:e,count:0,percent:0});for(e=0;e<o.statsData.distribution.length;e++){var t=o.statsData.distribution[e],a=Math.floor(t.rating/(100/o.scale));o.scaledDistribution[a].count+=t.count,o.scaledDistribution[a].percent+=t.percent}for(o.scaledDistribution.reverse(),e=0;e<o.scaledDistribution.length;e++)o.scaledDistribution[e].ngStyle={width:o.scaledDistribution[e].percent+"%"}}c&&angular.isObject($window.__change)&&$window.__change[c]?(angular.isObject($window.__change[c].stats)?(o.statsData=$window.__change[c].stats,d()):l(),angular.isObject($window.__change[c].list)&&(o.listData=$window.__change[c].list)):l()}}}]),e.directive("rbsReviewReviewsList",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-review-reviews-list.twig",scope:{targetId:"=",listData:"=",ajaxData:"=",ajaxParams:"=",handleVotes:"=",reviewsPerPage:"=",scale:"@"},link:function(o){o.reviewsPerPage=o.reviewsPerPage?o.reviewsPerPage:10;var r=angular.isObject(o.ajaxData)?o.ajaxData:{};t(r,"60");var n=angular.isObject(o.ajaxParams)?o.ajaxParams:{};function i(t,a){o.loading=!0,n.pagination={offset:t,limit:a},e.getData("Rbs/Review/ReviewsForTarget/"+o.targetId,r,n).then(function(e){o.listData=e.data,o.loading=!1},function(e){o.error=e.data.message,o.loading=!1,console.log("error",e)})}n.detailed=!0,a(n,"canonical"),angular.isObject(o.listData)||i(0,o.reviewsPerPage),o.updateListDataOffset=function(e){i(e,o.reviewsPerPage)}}}}]),e.directive("rbsReviewEdit",["RbsChange.AjaxAPI",function(e){var t=1;return{restrict:"A",templateUrl:"/rbs-review-edit.twig",scope:{data:"=rbsReviewEdit",scale:"@"},controller:["$scope",function(e){e.reviewUniqueId=t++}],link:function(t){t.identified=!1;var a,r=function(e){angular.isObject(t.data.editableReview)&&angular.isObject(t.data.editableReview.common)?t.editingData={isNew:!1,pseudonym:t.data.editableReview.author.pseudonym,rating:t.data.editableReview.common.rating,content:{raw:t.data.editableReview.edition.content.raw,editor:"PlainText"}}:t.editingData={isNew:!0,pseudonym:e,rating:null,content:{raw:"",editor:"PlainText"}}};t.data.targetId?a="Rbs/Review/CurrentReviewForTarget/"+t.data.targetId:angular.isObject(t.data.editableReview)&&angular.isObject(t.data.editableReview.common)&&t.data.editableReview.common.id?a="Rbs/Review/Review/"+t.data.editableReview.common.id:console.error("rbsReviewEdit","Bad parameters: no target id and no review id");var n=angular.isObject(t.data.ajaxData)?angular.copy(t.data.ajaxData):{},i=angular.isObject(t.data.ajaxParams)?angular.copy(t.data.ajaxParams):{};i.detailed=!0,o(i,"edition"),t.cancelEdition=function(){t.data.isEditing=!1},t.saveReview=function(){e.openWaitingModal(),t.error=null;var o=angular.copy(n);o.setData=t.editingData,e.putData(a,o,i).then(function(a){t.data.editableReview=a.data.dataSets,t.data.isEditing=!1,e.closeWaitingModal()},function(a){t.error=a.data.message,console.log("error",a),e.closeWaitingModal()})},t.deleteReview=function(o){confirm(o.target.getAttribute("data-confirm-message"))&&(e.openWaitingModal(),t.error=null,e.deleteData(a,n,i).then(function(){t.data.review=null,t.data.editableReview={author:t.data.editableReview.author},r(t.editingData.pseudonym),t.data.isEditing=!0,e.closeWaitingModal()},function(a){t.error=a.data.message,console.log("error",a),e.closeWaitingModal()}))},t.$watch("data.isEditing",function(){angular.isObject(t.data.editableReview)&&angular.isObject(t.data.editableReview.author)?r(t.data.editableReview.author.pseudonym):r(null)})}}}]),e.directive("rbsReviewDisplay",["RbsChange.Cookies","RbsChange.AjaxAPI",function(e,t){return{restrict:"A",templateUrl:"/rbs-review-display.twig",scope:{data:"=rbsReviewDisplay",handleVotes:"=",scale:"@"},link:function(a,o,r){a.number=r.number?r.number:null,a.idPrefix=r.idPrefix?r.idPrefix:"review",a.voted=!1,a.canVote=!0;var n=e.getObject("reviewVotes");n&&angular.forEach(n,function(e){e===a.data.common.id&&(a.canVote=!1)}),a.url=null,angular.isObject(a.data.common)&&angular.isObject(a.data.common.URL)&&(a.url=a.data.common.URL.contextual||a.data.common.URL.canonical),a.vote=function(o){a.canVote=!1;var r={vote:o};t.postData("Rbs/Review/Review/"+a.data.common.id+"/Votes",r,[]).then(function(t){if(a.voted=!0,a.data.votes=t.data.dataSets.votes,e.get("reviewVotes")){var o=e.getObject("reviewVotes");o.push(a.data.common.id),e.putObject("technical","reviewVotes",o)}else e.putObject("technical","reviewVotes",[a.data.common.id])},function(e){a.error=e.data.message,console.error(e)})}}}}]),e.directive("rbsReviewReviewDetails",["RbsChange.AjaxAPI","$window",function(e,r){return{restrict:"A",templateUrl:"/rbs-review-review-details.twig",scope:{reviewId:"@",ajaxData:"=",ajaxParams:"="},link:function(n,i,s){n.loading=!0,n.loadingEdition=!1;var c=s.cacheKey;if(c&&(n.parameters=e.getBlockParameters(c)),n.handleVotes=n.parameters.handleVotes||!1,n.scale=n.parameters.scale||5,angular.forEach((n.parameters.avatarSizes||"60").split(","),function(e){t(n.ajaxData,e)}),n.data={review:null,editableReview:null,isEditing:!1,ajaxData:n.ajaxData,ajaxParams:n.ajaxParams},n.editReview=function(){n.data.isEditing=!0},c&&angular.isObject(r.__change)&&r.__change[c])n.data.review=r.__change[c],u(),n.loading=!1;else{var l=angular.isObject(n.ajaxData)?n.ajaxData:{},d=angular.isObject(n.ajaxParams)?n.ajaxParams:{};d.detailed=!0,a(d,"canonical"),e.getData("Rbs/Review/Review/"+n.reviewId,l,d).then(function(e){n.data.review=e.data.dataSets,u(),n.loading=!1},function(e){n.error=e.data.message,console.log("error",e),n.loading=!1})}function u(){var t=e.globalVar("userContext");angular.isObject(t)&&p(t),angular.isObject(t)||e.getData("Rbs/User/Info",null,null).then(function(a){p(t=e.globalVar("userContext",a.data.dataSets.user))},function(a){403!=status&&(n.error=a.data.message,console.log("error",a)),t=e.globalVar("userContext",{accessorId:0})})}function p(t){n.loadingEdition=!0;var r=0;angular.isObject(n.data.review)&&angular.isObject(n.data.review.author)&&(r=n.data.review.author.id);var i=0;if(angular.isObject(t)&&t.accessorId&&(i=t.accessorId),r&&r==i){var s=angular.isObject(n.ajaxData)?n.ajaxData:{},c=angular.isObject(n.ajaxParams)?n.ajaxParams:{};c.detailed=!0,a(c,"canonical"),o(c,"edition"),e.getData("Rbs/Review/Review/"+n.reviewId,s,c).then(function(e){n.data.editableReview=e.data.dataSets,n.loadingEdition=!1},function(e){n.error=e.data.message,console.log("error",e),n.loadingEdition=!1})}else n.data.editableReview=null,n.loadingEdition=!1}}}}]),e.directive("rbsReviewCurrentReview",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-review-current-review.twig",scope:{targetId:"=",ajaxData:"=",ajaxParams:"=",scale:"@"},link:function(t){t.identified=!1,t.loading=!0,t.loadingEdition=!1,t.data={review:null,editableReview:null,targetId:t.targetId,isEditing:!1,ajaxData:t.ajaxData,ajaxParams:t.ajaxParams},t.editReview=function(){t.data.isEditing=!0};var r=e.globalVar("userContext");function n(r){var n,i,s=0;angular.isObject(r)&&r.accessorId&&(s=r.accessorId),s?(t.identified=!0,n=angular.isObject(t.ajaxData)?angular.copy(t.ajaxData):{},(i=angular.isObject(t.ajaxParams)?angular.copy(t.ajaxParams):{}).detailed=!0,e.getData("Rbs/Review/CurrentReviewForTarget/"+t.targetId,n,i).then(function(e){e.data.dataSets.common?t.data.review=e.data.dataSets:t.data.review=null,t.loading=!1},function(e){401!=e.status&&(t.error=e.data.message,console.error(e)),t.data.review=null,t.loading=!1}),function(){t.loadingEdition=!0;var r=angular.isObject(t.ajaxData)?t.ajaxData:{},n=angular.isObject(t.ajaxParams)?t.ajaxParams:{};n.detailed=!0,a(n,"canonical"),o(n,"edition"),e.getData("Rbs/Review/CurrentReviewForTarget/"+t.targetId,r,n).then(function(e){t.data.editableReview=e.data.dataSets,angular.isObject(t.data.editableReview.common)||(t.data.isEditing=!0),t.loadingEdition=!1},function(e){t.error=e.data.message,console.log("error",e),t.loadingEdition=!1})}()):(t.data.review=null,t.data.editableReview=null,t.loading=!1)}angular.isObject(r)&&n(r),angular.isObject(r)||e.getData("Rbs/User/Info",null,null).then(function(t){n(r=e.globalVar("userContext",t.data.dataSets.user))},function(a){403!=a.status&&(t.error=a.data.message,console.log("error",a)),r=e.globalVar("userContext",{accessorId:0}),t.loading=!1})}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t){e.config=null,e.establishmentIdentifierInvalid=!1,e.companyNameInvalid=!1,e.taxIdentifierInvalid=!1,e.$watch("profiles.Rbs_Commerce.professional",function(a){a&&(t.getData("resources/business-validation-config").then(function(t){e.countries=t.data.countries,e.$watch("profiles.Rbs_Commerce.countryCode",function(t){e.config=e.countries[t],e.validateFields()})},function(t){console.error("Unable to retrieve countries configurations",t),e.countries=[]}),e.$watch("profiles.Rbs_Commerce.establishmentIdentifier",function(){e.validateFields()}),e.$watch("profiles.Rbs_Commerce.taxIdentifier",function(){e.validateFields()}),e.$watch("profiles.Rbs_Commerce.companyName",function(){e.validateFields()}))}),e.validateFields=function(){if(e.establishmentIdentifierInvalid=!1,e.companyNameInvalid=!1,e.taxIdentifierInvalid=!1,!e.config)return;let t=e.profiles.Rbs_Commerce.establishmentIdentifier;t&&e.config.establishment_id.regex&&!new RegExp(e.config.establishment_id.regex).test(t)&&(e.establishmentIdentifierInvalid=!0),e.profiles.Rbs_Commerce.companyName||(e.companyNameInvalid=!0);let a=e.profiles.Rbs_Commerce.taxIdentifier;a&&e.config.tax_id&&e.config.tax_id.regex&&!new RegExp(e.config.tax_id.regex).test(a)&&(e.taxIdentifierInvalid=!0)},e.isProfessionalFormValid=function(){if(e.profiles.Rbs_Commerce?.professional){let t=e.profiles.Rbs_Commerce;return t.countryCode&&t.companyName&&!e.establishmentIdentifierInvalid&&!e.companyNameInvalid&&!e.taxIdentifierInvalid}return!0}}e.directive("rbsUserPasswordToggle",function(){return{restrict:"A",templateUrl:"/rbs-user-password-toggle.twig",transclude:!0,scope:{enabled:"<rbsUserPasswordToggle"},link:function(e,t,a,o,r){if(r(function(e){e.length?t.find(".transclude").replaceWith(e):t.find(".transclude").remove()}),e.enabled){var n=t.find("input[type='password']");e.visible=!1,e.toggle=function(){e.visible=!e.visible,n.attr("type",e.visible?"text":"password")}}}}}),e.directive("rbsUserForgotPassword",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-user-forgot-password.twig",link:function(t){t.diplayResetBox=!1,t.sending=!1,t.successSending=!1,t.resetPasswordEmail=null,t.passwordError=null,t.openBox=function(){jQuery("#reset-password-modal-main-content").modal({})},t.invalidMail=function(){return!t.resetPasswordEmail||""==t.resetPasswordEmail},t.askReset=function(){var a;a={email:t.resetPasswordEmail},t.passwordError=null,t.sending=!0,e.postData("Rbs/User/User/ResetPasswordRequest",a).then(function(){t.sending=!1,t.successSending=!0},function(e){t.sending=!1,t.successSending=!1,t.passwordError=e&&e.data&&e.data.message,console.error("rbsUserCreateAccount",e)})}}}}]),e.directive("rbsUserShortAccount",["$rootScope","RbsChange.AjaxAPI","$window","RbsChange.ResponsiveSummaries",function(e,t,a,o){return{restrict:"A",link:function(r){var n=r.blockId,i=r.blockData;r.parameters=r.blockParameters,r.accessorId=r.parameters.accessorId,r.accessorName=r.parameters.accessorName,i&&(r.userAccountPageUrl=i.userAccountPageUrl,r.rootMenuEntry=i.rootMenuEntry),e.$on("rbsUserConnected",function(e,t){r.accessorId=t.accessorId,r.accessorName=t.accessorName}),e.$on("rbsUserProfileUpdated",function(e,t){var a=t.profile.profiles.Rbs_User.fullName;a&&(r.accessorId=t.userId,r.accessorName=a)}),r.logout=function(){t.getData("Rbs/User/Logout").then(function(){localStorage.setItem("PROXIMIS_FRONT_LOGOUT",Date.now().toString()),a.location.reload(!0)},function(e){r.error=e.data.message,console.log("logout error",e)})}
1,o.registerItem(n,r,'<li data-rbs-user-short-account-responsive-summary=""></li>')}}}]),e.directive("rbsUserShortAccountResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-user-short-account-responsive-summary.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-user-short-account-responsive-summary-modal.twig",backdropClass:"modal-backdrop-rbs-user-short-account-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-user-short-account-responsive-summary",scope:t};e.open(a)}}}}]),e.directive("rbsUserUniqueEmail",["$q","RbsChange.AjaxAPI",function(e,t){return{require:"ngModel",link:function(a,o,r,n){var i;n.$asyncValidators.uniqueEmail=function(a,o){if(o&&o.length&&o!==i)return t.getData("Rbs/User/CheckEmailAvailability",{email:o}).then(function(e){i=e.data.dataSets.user.availableEmail},function(t){if(i=void 0,409===t.status&&t.data&&t.data.message&&t.data.code)return n.errorMessage=t.data.message,n.errorCode=t.data.code,e.reject("uniqueEmail");console.error(t)});var r=e.defer();return r.resolve(!0),r.promise}}}}]),e.directive("rbsUserManageAutoLogin",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-user-manage-auto-login.twig",controller:["$scope",function(e){e.parameters=e.blockParameters,e.tokens=e.blockData}],link:function(t){t.errors=null,t.deleteToken=function(a){var o={tokenId:t.tokens[a].id};e.openWaitingModal(),t.errors=null,e.deleteData("Rbs/User/RevokeToken",o).then(function(){e.closeWaitingModal(),t.tokens.splice(a,1),t.errors=null,0===t.tokens.length&&(t.tokens=null)},function(t){e.closeWaitingModal(),console.log("deleteToken error",t)})}}}}]),e.directive("rbsUserLogin",["RbsChange.AjaxAPI","$rootScope","$window",function(e,t,a){return{restrict:"A",templateUrl:"/rbs-user-login.twig",scope:!1,controller:["$scope",function(o){var r;o.error=null,o.parameters=o.blockParameters,o.data={login:null,password:null,realm:o.parameters.realm,rememberMe:!0,device:(r=(new UAParser).getResult(),r.browser.name+" - "+r.os.name)},this.getData=function(){return o.data},this.login=function(r){o.error=null,e.putData("Rbs/User/Login",r).then(function(e){var r=e.data.dataSets.user;o.parameters.accessorId=r.accessorId,o.parameters.accessorName=r.name;var n=o.blockData.onLogin||o.parameters.onLogin;if("reload"===n)a.location.reload(!0);else if("redirectToTarget"===n)a.location=o.blockData.redirectionUrl||o.parameters.redirectionUrl;else{var i={accessorId:r.accessorId,accessorName:r.name};t.$broadcast("rbsUserConnected",i)}},function(e){o.error=e.data.message,o.parameters.password=o.parameters.login=null,console.log("login error",e)})},this.logout=function(){e.getData("Rbs/User/Logout").then(function(){localStorage.setItem("PROXIMIS_FRONT_LOGOUT",Date.now().toString()),a.location.reload(!0)},function(e){o.error=e.data.message,console.log("logout error",e)})},a.addEventListener("pageshow",function(e){setTimeout(function(){o.$apply(function(){let e=document.querySelector('input[name="login"]');e&&e.value&&!o.data.login&&(o.data.login=e.value)})},100)})}],link:function(e,t,a,o){e.showTitle="false"!==a.showTitle,e.login=function(){o.login(e.data)},e.logout=function(){o.logout()}}}}]),e.directive("rbsUserCreateAccount",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-user-create-account.twig",scope:!1,controllerAs:"createAccountController",controller:["$scope","$element","$attrs",function(t,a,o){t.parameters=t.blockParameters,t.hideTitle="true"===o.hideTitle,t.ignoreExistingRequest="true"===o.ignoreExistingRequest,t.fixedEmail=o.fixedEmail,t.confirmationPage=t.parameters.confirmationPage?parseInt(t.parameters.confirmationPage):0,t.handleNewsletter=t.parameters.handleNewsletter,t.customerFields=t.parameters.customerFields,t.allowedTitles=t.parameters.allowedTitles,t.parameters.socialEmail&&(t.fixedEmail=t.parameters.socialEmail),t.data={email:t.fixedEmail?t.fixedEmail:null,password:null,confirmationPage:t.confirmationPage},t.profiles=t.blockData&&t.blockData.profiles||{},t.profiles.Rbs_Commerce={professional:!1},this.getData=function(){return t.data},this.checkAccountRequest=function(a){t.requestAccountCreated=!0,t.error=null,t.errors=null;var o=e.getData("Rbs/User/User/AccountRequest",a);return o.then(function(e){t.requestAccountCreated=e.data.dataSets&&e.data.dataSets.common&&e.data.dataSets.common.hasRequest},function(){t.requestAccountCreated=!1}),o},this.createAccountRequest=function(a){e.openWaitingModal(),t.error=null,t.errors=null;var o=e.postData("Rbs/User/User/AccountRequest",a);return o.then(function(o){delete a.password,t.requestAccountCreated=!0,o.data.dataSets.accountConfirmed&&(t.accountConfirmed=!0),e.closeWaitingModal()},function(a){a.data&&a.data.message&&(t.error=a.data.message,t.errors=a.data.data&&a.data.data.errorMessages||[a.data.message]),console.error("createAccountRequest",a),t.requestAccountCreated=!1,e.closeWaitingModal()}),o},this.confirmAccountRequest=function(a){var o=e.putData("Rbs/User/User/AccountRequest",a);return e.openWaitingModal(),t.error=null,t.errors=null,o.then(function(a){a.data&&a.data.dataSets&&a.data.dataSets.confirmationPage?window.location.href=a.data.dataSets.confirmationPage.url:(t.accountConfirmed=!0,t.parameters.socialRequestAccountCreated=!1,e.closeWaitingModal())},function(a){a.data&&a.data.message&&(t.error=a.data.message,t.errors=a.data.data&&a.data.data.errorMessages||[a.data.message]),console.error("rbsUserConfirmAccount",a),t.accountConfirmed=!0,e.closeWaitingModal()}),o},this.initMailingLists=function(){t.error=null,t.errors=null;var a=e.getData("Rbs/Mailinglist/GetMailingLists",{transactionId:t.blockParameters.transactionId,mailingListsIds:t.blockParameters.displayedMailinglists});return a.then(function(e){var a;t.mailingLists=e.data.dataSets.mailingLists,t.data.profileData=e.data.dataSets.profileData,t.data.device=(a=(new UAParser).getResult()).browser.name+" - "+a.os.name},function(e){e.data&&e.data.message&&(t.error=e.data.message,t.errors=e.data.data&&e.data.data.errorMessages||[e.data.message]),console.error("GetMailingLists",e),t.handleNewsletter=!1}),a},t.parameters.token&&t.parameters.email&&this.confirmAccountRequest({token:t.parameters.token,email:t.parameters.email,confirmationPage:t.data.confirmationPage}),t.handleNewsletter&&!t.parameters.token&&this.initMailingLists(),t.data.email&&!t.ignoreExistingRequest&&this.checkAccountRequest(t.data)}],link:function(a,o,r,n){t(a,e),a.showCreationForm=function(){return!a.requestAccountCreated&&!a.parameters.token},a.showConfirmationForm=function(){return a.requestAccountCreated&&!a.accountConfirmed||a.accountConfirmed&&a.error},a.submit=function(){a.data.profiles=a.profiles,a.data.profileData=a.profiles.Rbs_User||{},n.createAccountRequest(a.data)}}}}]),e.controller("RbsUserFinalizeAccountController",["$scope","$element","RbsChange.AjaxAPI",function(e,t,a){e.parameters=e.blockParameters,e.data={token:e.parameters.token,email:e.parameters.email,password:null,confirmationPage:e.parameters.confirmationPage?parseInt(e.parameters.confirmationPage):0},e.submit=function(){var t=a.putData("Rbs/User/User/AccountSuggestion",e.data);return a.openWaitingModal(),e.error=null,t.then(function(t){t.data&&t.data.dataSets&&t.data.dataSets.confirmationPage?window.location.href=t.data.dataSets.confirmationPage.url:(e.accountConfirmed=!0,a.closeWaitingModal())},function(t){t.data&&t.data.message&&(e.error=t.data.message),console.error("rbsUserConfirmAccount",t),e.accountConfirmed=!0,a.closeWaitingModal()}),t}}]),e.directive("rbsUserGenericFields",function(){return{restrict:"A",templateUrl:"/rbs-user-generic-fields.twig",link:function(e,t,a){e.displayTitleCode=!0,e.getForm=function(){return e[a.formName?a.formName:"rbsUserAccountEdit"]}}}}),e.directive("rbsUserGenericFieldsComplete",function(){return{restrict:"A",templateUrl:"/rbs-user-generic-fields-complete.twig",link:function(e,t,a){e.displayTitleCode=!0,e.getForm=function(){return e[a.formName?a.formName:"rbsUserAccountEdit"]}}}}),e.directive("rbsUserChangeEmail",["$rootScope","$location","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",scope:!1,controllerAs:"changeEmailController",controller:["$rootScope","$scope","$attrs",function(e,o,r){o.data={password:null,email:null,confirmationUrl:r.confirmationUrl||t.absUrl()},e.$on("isPasswordRequired",function(e,t){o.blockParameters.isPasswordRequired=t}),this.getData=function(){return o.data},this.createChangeEmailRequest=function(e){a.openWaitingModal(),o.error=null,a.postData("Rbs/User/User/ChangeEmail",e).then(function(){delete e.password,delete e.confirmationUrl,o.requestEmailCreated=!0,a.closeWaitingModal()},function(e){e.data&&e.data.message&&(o.error=e.data.message),console.error("rbsUserChangeEmail - request creation",e),o.requestEmailCreated=!1,a.closeWaitingModal()})},this.confirmChangeEmailRequest=function(e){a.openWaitingModal(),o.error=null,a.putData("Rbs/User/User/ChangeEmail",e).then(function(){o.emailConfirmed=!0,a.closeWaitingModal()},function(e){e.data&&e.data.message&&(o.error=e.data.message),console.error("rbsUserChangeEmail - request confirmation",e),o.emailConfirmed=!0,a.closeWaitingModal()})}}],link:function(e,t,a,o){e.authenticated=e.blockParameters.authenticated,e.showTitle=e.blockParameters.showTitle,e.blockParameters.token&&e.blockParameters.email&&o.confirmChangeEmailRequest
1({token:e.blockParameters.token,email:e.blockParameters.email}),e.showCreationForm=function(){return e.authenticated&&!e.requestEmailCreated&&!e.blockParameters.token},e.showConfirmationForm=function(){return e.requestEmailCreated&&!e.emailConfirmed||e.emailConfirmed&&e.error}}}}]),e.directive("rbsUserChangeMobilePhone",["RbsChange.AjaxAPI",function(e){return{restrict:"A",controllerAs:"changeMobilePhoneController",controller:["$rootScope","$scope",function(t,a){a.inputNumber=!0,a.confirmNumber=!1,a.success=!1,a.data={password:null,mobilePhone:null,tokenValidation:null},t.$on("isPasswordRequired",function(e,t){a.blockParameters.isPasswordRequired=t}),this.getData=function(){return a.data},this.changeMobilePhoneNumber=function(t){e.openWaitingModal(),a.error=null,a.success=!1,e.postData("Rbs/User/User/ChangeMobilePhoneNumber",t).then(function(t){delete a.data.password,t.data.dataSets.common.id?(a.inputNumber=!1,a.confirmNumber=!0):a.success=!0,e.closeWaitingModal()},function(t){t.data&&t.data.message&&(a.error=t.data.message),console.error("ChangeMobilePhoneNumber",t),e.closeWaitingModal()})},this.confirmMobilePhoneNumber=function(t){e.openWaitingModal(),a.error=null,a.success=!1,e.putData("Rbs/User/User/ChangeMobilePhoneNumber",t).then(function(){delete a.data.password,delete a.data.tokenValidation,a.inputNumber=!0,a.confirmNumber=!1,a.success=!0,e.closeWaitingModal()},function(t){t.data&&t.data.message&&(a.error=t.data.message),console.error("ChangeMobilePhoneNumber",t),e.closeWaitingModal()})}}],link:function(e,t,a,o){e.showTitle=e.blockParameters.showTitle,e.submit=function(){e.inputNumber&&e.data.mobilePhone&&o.changeMobilePhoneNumber(e.data),e.confirmNumber&&e.data.tokenValidation&&o.confirmMobilePhoneNumber(e.data)}}}}]),e.directive("rbsUserResetPassword",["RbsChange.AjaxAPI",function(e){return{restrict:"A",templateUrl:"/rbs-user-reset-password.twig",scope:!1,controller:["$scope",function(t){t.parameters=t.blockParameters,t.data={token:t.parameters.token?t.parameters.token:null,password:null},this.getData=function(){return t.data},this.confirmResetPassword=function(a){e.openWaitingModal(),t.error=null,e.putData("Rbs/User/User/ResetPasswordRequest",a).then(function(){e.closeWaitingModal(),t.passwordConfirmed=!0},function(a){e.closeWaitingModal(),t.passwordConfirmed=!1,a.data&&a.data.message&&(t.error=a.data.message),console.error("rbsUserResetPassword",a)})}}],link:function(e,t,a,o){e.showTitle=e.parameters.showTitle,e.showForm=function(){return e.data.token&&!e.passwordConfirmed},e.submit=function(){o.confirmResetPassword(e.data)}}}}]),e.directive("rbsUserChangePassword",["$rootScope","RbsChange.AjaxAPI","$timeout",function(e,t,a){return{restrict:"A",templateUrl:"/rbs-user-change-password.twig",controller:["$scope",function(a){a.parameters=a.blockParameters,a.data={currentPassword:null,password:null},e.$on("isPasswordRequired",function(e,t){a.parameters.isPasswordRequired=t}),this.getData=function(){return a.data},this.changePassword=function(o){t.openWaitingModal(),a.error=null,t.putData("Rbs/User/User/ChangePassword",o).then(function(){t.closeWaitingModal(),a.passwordConfirmed=!0,a.data={currentPassword:null,password:null},a.confirmPassword=null,a.parameters.isPasswordRequired||e.$emit("isPasswordRequired",!0),angular.isObject(a.rbsUserChangePassword)&&(a.rbsUserChangePassword.$setPristine(),a.rbsUserChangePassword.$setUntouched())},function(e){t.closeWaitingModal(),a.passwordConfirmed=!1,e.data&&e.data.message&&(a.error=e.data.message),console.error("changePassword",e)})}}],link:function(e,t,a,o){e.showTitle=e.blockParameters.showTitle,e.showForm=function(){return e.parameters.authenticated},e.submit=function(){o.changePassword(e.data)}}}}]),e.directive("rbsUserAccount",["RbsChange.AjaxAPI","$rootScope",function(e,a){return{restrict:"A",templateUrl:"/rbs-user-account.twig",controller:["$scope",function(t){t.parameters=t.blockParameters,t.customerFields=t.parameters.customerFields,t.data=null,t.profiles={},t.parameters.authenticated&&(t.parameters.authenticated=!1,e.getData("Rbs/User/User/Profiles").then(function(e){t.parameters.authenticated=!0,t.data=e.data.dataSets,t.profiles=t.data.profiles,null===t.profiles.Rbs_Commerce.professional&&(t.profiles.Rbs_Commerce.professional=!1),t.allowedTitles=t.profiles.Rbs_User.allowedTitles})),this.saveProfiles=function(o){e.openWaitingModal(),t.error=null,e.putData("Rbs/User/User/Profiles",o).then(function(o){e.closeWaitingModal(),t.readonly=!0,t.success=!0,t.data=o.data.dataSets,t.profiles=o.data.dataSets.profiles;var r={profile:t.data,userId:t.data.common.id};a.$broadcast("rbsUserProfileUpdated",r)},function(a){e.closeWaitingModal(),a.data&&a.data.message&&(t.error=a.data.message),console.error("saveProfiles",a)})}}],link:function(a,o,r,n){a.showTitle="false"!==r.showTitle,a.success=!1,a.readonly=!0,t(a,e),a.openEdit=function(){a.success=!1,a.readonly=!1,a.dataBackup=angular.copy(a.data)},a.saveAccount=function(){a.data.profiles=a.profiles,n.saveProfiles(a.data)},a.cancelEdit=function(){a.readonly=!0,a.data=a.dataBackup,a.profiles=a.data.profiles}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserChangeEmail",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=angular.copy(e.blockParameters);function c(a){i.reloadBlock(e.blockName,e.blockId,s,e.blockNavigationContext).then(function(o){t.f
1ind(".content").html(jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),a&&i.closeWaitingModal()},function(e){console.error("[RbsUserChangeEmail] error reloading block:",e)})}s.tTL=0,e.data={},o.$on("isPasswordRequired",function(e,t){s.isPasswordRequired=t,c()}),e.createChangeEmailRequest=function(){i.openWaitingModal(),e.error=null;var t={password:e.data.password,email:e.data.email,confirmationUrl:a.confirmationUrl||n.absUrl()};i.postData("Rbs/User/User/ChangeEmail",t).then(function(){delete e.data.password,s.requestCreated=!0,c(!0),s.requestCreated=!1,s.email=t.email},function(t){t.data&&t.data.message&&(e.error=t.data.message),console.error("rbsUserChangeEmail - request creation",t),i.closeWaitingModal()})},e.confirmChangeEmailRequest=function(){i.openWaitingModal(),e.error=null;var t={token:e.data.token,email:s.email};i.putData("Rbs/User/User/ChangeEmail",t).then(function(){s.requestCreated=!1,s.emailConfirmed=!0,c(!0),s.emailConfirmed=!1},function(t){t.data&&t.data.message&&(e.error=t.data.message),console.error("rbsUserChangeEmail - request confirmation",t),i.closeWaitingModal()})},s.token&&s.email&&(e.data.token=s.token,e.confirmChangeEmailRequest())}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserChangeMobilePhone",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=angular.copy(e.blockParameters);function c(a,o){s.processingStep=o||s.processingStep,i.reloadBlock(e.blockName,e.blockId,s,e.blockNavigationContext).then(function(o){t.find(".content").html(jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),a&&i.closeWaitingModal()},function(e){console.error("[RbsUserChangeMobilePhone] error reloading block:",e)})}e.data={password:null,mobilePhone:null,tokenValidation:null},o.$on("isPasswordRequired",function(e,t){s.isPasswordRequired=t,c()}),e.submitRequest=function(){e.data.mobilePhone&&(i.openWaitingModal(),e.error=null,i.postData("Rbs/User/User/ChangeMobilePhoneNumber",e.data).then(function(t){delete e.data.password,t.data.dataSets.common.id?(s.mobilePhone=e.data.mobilePhone,c(!0,"confirm")):c(!0,"success")},function(t){t.data&&t.data.message&&(e.error=t.data.message),console.error("ChangeMobilePhoneNumber",t),i.closeWaitingModal()}))},e.submitConfirmation=function(){e.data.tokenValidation&&(i.openWaitingModal(),e.error=null,i.putData("Rbs/User/User/ChangeMobilePhoneNumber",e.data).then(function(){delete e.data.tokenValidation,c(!0,"success")},function(t){t.data&&t.data.message&&(e.error=t.data.message),console.error("ChangeMobilePhoneNumber",t),i.closeWaitingModal()}))}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserAccountShort",["$scope","$element","$rootScope","$compile","RbsChange.AjaxAPI","RbsChange.ResponsiveSummaries",function(e,t,a,o,r,n){function i(a){r.reloadBlock(e.blockName,e.blockId,a,e.blockNavigationContext).then(function(a){e.accessorId=a.data.dataSets.parameters.accessorId,e.accessorName=a.data.dataSets.parameters.accessorName,t.find(".content").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".content").html()),o(t.find(".content"))(e)},function(e){console.error("[RbsUserAccountShort] error reloading block:",e)})}e.logout=function(){r.getData("Rbs/User/Logout").then(function(){localStorage.setItem("PROXIMIS_FRONT_LOGOUT",Date.now().toString()),window.location.reload(!0)},function(t){e.error=t.data.message,console.error("["+e.blockName+"] logout error",t)})},a.$on("rbsUserConnected",function(t,a){i(angular.merge(e.blockParameters,a))}),a.$on("rbsUserProfileUpdated",function(t,a){var o=angular.copy(e.blockParameters);o.accessorId=a.profile.common.id;var r=null;a.profile.profiles.Rbs_User&&(r=a.profile.profiles.Rbs_User.fullName),r||(r=a.profile.common.login||a.profile.common.email),o.accessorName=r,i(o)});var s=e.blockData;e.parameters=e.blockParameters,e.accessorId=e.parameters.accessorId,e.accessorName=e.parameters.accessorName,s&&(e.userAccountPageUrl=s.userAccountPageUrl,e.rootMenuEntry=s.rootMenuEntry),n.registerItem(e.blockId,e,'<li data-rbs-u
1ser-short-account-responsive-summary=""></li>')}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserManageAutoLoginToken",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=angular.copy(e.blockParameters);s.tTL=0,e.deleteToken=function(a){t.find(".error-message").addClass("hidden"),i.openWaitingModal(),i.deleteData("Rbs/User/RevokeToken",{tokenId:a}).then(function(){i.reloadBlock(e.blockName,e.blockId,s,e.blockNavigationContext).then(function(a){t.find(".token-list").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".token-list").html()),r(t.find(".token-list"))(e),i.closeWaitingModal()},function(e){console.error("[RbsUserManageAutoLoginToken] error reloading block:",e)})},function(e){t.find(".error-message").removeClass("hidden"),i.closeWaitingModal(),console.error("[RbsUserManageAutoLoginToken] deleteToken error:",e)})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserResetPassword",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=angular.copy(e.blockParameters);s.tTL=0,e.data={token:s.token||null,password:null},e.confirmResetPassword=function(){i.openWaitingModal(),e.error=null,e.errors=null,i.putData("Rbs/User/User/ResetPasswordRequest",e.data).then(function(){var a;delete e.data.password,s.passwordConfirmed=!0,a=!0,i.reloadBlock(e.blockName,e.blockId,s,e.blockNavigationContext).then(function(o){t.find(".content").html(jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),a&&i.closeWaitingModal()},function(e){console.error("[RbsUserResetPassword] error reloading block:",e)}),s.passwordConfirmed=!1},function(t){t.data&&t.data.message&&(e.error=t.data.message,e.errors=t.data.data&&t.data.data.errorMessages||[t.data.message]),console.error("rbsUserResetPassword",t),i.closeWaitingModal()})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserLogin",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=(new UAParser).getResult();e.error=null,e.data={login:null,password:null,realm:e.blockParameters.realm,rememberMe:!0,device:s.browser.name+" - "+s.os.name},e.login=function(){e.error=null,i.openWaitingModal(),i.putData("Rbs/User/Login",e.data).then(function(n){var s=n.data.dataSets.user,c=a.onLogin||e.blockParameters.onLogin;if("reload"===c)window.location.reload(!0);else if("redirectToTarget"===c)window.location=a.redirectionUrl||e.blockParameters.redirectionUrl;else{var l={accessorId:s.accessorId,accessorName:s.name};o.$broadcast("rbsUserConnected",l);var d=angular.copy(e.blockParameters);d.accessorId=s.accessorId,d.accessorName=s.name,function(a,o){i.reloadBlock(e.blockName,e.blockId,a,e.blockNavigationContext).then(function(a){t.find(".content").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),o&&i.closeWaitingModal()},function(e){console.error("[RbsUserLogin] error reloading block:",e)})}(d,!0)}},function(t){i.closeWaitingModal(),e.error=t.data.message,e.blockParameters.password=e.blockParameters.login=null,console.error("[RbsUserLogin] login error",t)})},e.logout=function(){i.getData("Rbs/User/Logout").then(function(){localStorage.setItem("PROXIMIS_FRONT_LOGOUT",Date.now().toString()),window.location.reload(!0)},function(t){e.error=t.data.message,console.error("[RbsUserLogin] logout error",t)})},window.addEventListener("pageshow",function(t){setTimeout(function(){e.$apply(function(){let t=document.querySelector('input[name="login"]');t&&t.value&&!e.data.login&&(e.data.login=t.value)})},100)})}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserChangePassword",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i){var s=angular.copy(e.blockParameters);s.tTL=0,e.data={currentPassword:null,password:null},e.changePassword=function(){i.openWaitingModal(),e.error=null,e.errors=null,i.putData("Rbs/User/User/ChangePassword",e.data).then(function(){var a;e.data={currentPassword:null,password:null},e.confirmPassword=null,s.passwordConfirmed=!0,a=!0,i.reloadBlock(e.blockName,e.blockId,s,e.blockNavigationContext).then(function(o){t.f
1ind(".content").html(jQuery(jQuery.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(t.find(".content"))(e),a&&i.closeWaitingModal()},function(e){console.error("[RbsUserChangePassword] error reloading block:",e)}),s.passwordConfirmed=!1},function(t){t.data&&t.data.message&&(e.error=t.data.message,e.errors=t.data.data&&t.data.data.errorMessages||[t.data.message]),console.error("changePassword",t),i.closeWaitingModal()})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsUserFinalizeAccount",["$scope","$element","$compile","RbsChange.AjaxAPI",function(e,t,a,o){var r=angular.copy(e.blockParameters);function n(r,n){o.reloadBlock(e.blockName,e.blockId,n,e.blockNavigationContext).then(function(n){t.find(".content").html(jQuery(jQuery.parseHTML(n.data.dataSets.html)).filter(".content").html()),a(t.find(".content"))(e),r&&o.closeWaitingModal()},function(e){console.error("[RbsUserFinalizeAccount] error reloading block:",e)})}r.tTL=0,e.data={token:r.token,email:r.email,password:null,confirmationPage:r.confirmationPage?parseInt(r.confirmationPage):0},e.submit=function(){o.openWaitingModal(),o.putData("Rbs/User/User/AccountSuggestion",e.data).then(function(){n(!0,r)},function(e){if(e.data&&e.data.message){var t=angular.copy(r);t.error=e.data.message,t.errors=e.data.data&&e.data.data.errorMessages||[e.data.message],n(!0,t)}o.closeWaitingModal()})}}])}(),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistButtonCtrl",["$scope","$http",function(t,a){t.$watch("blockId",function(){t.reset()}),t.reset=function(){t.addWishlistSuccess=!1,t.sucessMessage=!1,t.error=!1,t.wishlists=t.data.wishlists},t.addToWishlist=function(e,o){t.data.defaultWishlist?a.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:e.id,userId:t.data.userId,productIdsToAdd:t.data.productIds}).then(function(e){t.successMessage=e.data.success,t.warning=e.data.warnings},function(e){t.error=e.data.error}):t.addNewWishlist(o)},t.addNewWishlist=function(a){t.newWishlist={public:!1,userId:t.data.userId,storeId:t.data.storeId,productIds:t.data.productIds},e("#"+a).modal({})},t.confirmNewWishlist=function(){angular.isObject(t.newWishlist)&&a.post("Action/Rbs/Wishlist/AddWishlist",{title:t.newWishlist.title,public:!1,storeId:t.newWishlist.storeId,userId:t.newWishlist.userId,productIds:t.newWishlist.productIds||null}).then(function(e){t.successMessage=e.data.success,t.warning=e.data.warnings,t.error=!1,t.addWishlistSuccess=!0},function(e){t.error=e.data.error})}}])}(jQuery),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistButtonPreloaded",["$scope","$element","$http","$compile","RbsChange.AjaxAPI",function(t,a,o,r,n){var i=angular.copy(t.blockParameters);function s(o){n.reloadBlock(t.blockName,t.blockId,o,t.blockNavigationContext).then(function(o){a.find(".content").html(e(e.parseHTML(o.data.dataSets.html)).filter(".content").html()),r(a.find(".content"))(t)},function(e){console.error("[RbsWishlistButton] error reloading block:",e)})}t.reset=function(){t.addWishlistSuccess=!1,t.error=!1},t.addToWishlist=function(e,a){e?o.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:e,userId:i.userId,productIdsToAdd:i.productIds}).then(function(e){var t=angular.copy(i);t.successMessage=e.data.success,t.warning=e.data.warnings,s(t)},function(e){var t=angular.copy(i);t.error=e.data.error,s(t)}):t.addNewWishlist(a)},t.addNewWishlist=function(a){t.newWishlist={public:!1,userId:i.userId,storeId:i.storeId,productIds:i.productIds},e("#"+a).modal({})},t.confirmNewWishlist=function(){angular.isObject(t.newWishlist)&&o.post("Action/Rbs/Wishlist/AddWishlist",{title:t.newWishlist.title,public:!1,storeId:i.storeId,userId:i.userId,productIds:i.productIds||null}).then(function(e){t.error=!1,t.addWishlistSuccess=!0;var a=angular.copy(i);a.successMessage=e.data.success,a.warning=e.data.warnings,a.error=!1,s(a)},function(e){t.error=e.data.error})}}])}(jQuery),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistDetailCtrl",["$scope","$http",function(t,a){t.changingTitle=!1,t.loading=!0,t.selectedProducts={},t.errorMessage=null,t.$watch("blockId",function(){t.loading=!1,angular.forEach(t.data.productIds,function(e){t.selectedProducts[e]=!1}
1)}),t.openChangeTitle=function(){t.errorMessage=null,t.changingTitle=!0,t.oldTitle=t.data.title},t.cancelTitleEdition=function(){t.errorMessage=null,t.changingTitle=!1,t.data.title=t.oldTitle},t.changeTitle=function(){t.errorMessage=null,a.post("Action/Rbs/Wishlist/UpdateWishlist",{title:t.data.title,wishlistId:t.data.wishlistId,userId:t.data.userId}).then(function(e){t.changingTitle=!1,t.data=e.data},function(e){t.errorMessage=e.data.error})},t.removeSelectedProducts=function(){a.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:t.data.wishlistId,userId:t.data.userId,productIdsToRemove:t.selectedProducts}).then(function(){window.location.reload()},function(e){t.errorMessage=e.data.error})},t.changeIsPublic=function(){a.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:t.data.wishlistId,userId:t.data.userId,changeIsPublic:!t.data.isPublic}).then(function(){window.location.reload()},function(e){t.errorMessage=e.data.error})},t.deleteWishlist=function(t){e("#"+t).modal({})},t.confirmDeleteWishlist=function(){a.post("Action/Rbs/Wishlist/DeleteWishlist",{wishlistId:t.data.wishlistId,userId:t.data.userId}).then(function(){window.location.href=t.wishlistListUrl},function(e){t.errorMessage=e.data.error})}}])}(jQuery),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistDetailPreloaded",["$scope","$element","$http","$compile","RbsChange.AjaxAPI",function(t,a,o,r,n){function i(o,i){n.reloadBlock(t.blockName,t.blockId,o,t.blockNavigationContext).then(function(o){var n=e(e.parseHTML(o.data.dataSets.html)).filter(i).html();a.find(i).html(n),r(a.find(i))(t)},function(e){console.error("[RbsWishlistDetail] error reloading block:",e)})}t.selectedProducts={},angular.forEach(t.blockData.productIds,function(e){t.selectedProducts[e]=!1}),t.openChangeTitle=function(){var e=angular.copy(t.blockParameters);e.renderPart="title-form",i(e,".list-title")},t.cancelTitleEdition=function(){var e=angular.copy(t.blockParameters);e.renderPart="list-header",i(e,".list-title")},t.changeTitle=function(){t.errorMessage=null,o.post("Action/Rbs/Wishlist/UpdateWishlist",{title:t.blockData.title,wishlistId:t.blockData.wishlistId,userId:t.blockData.userId}).then(function(){var e=angular.copy(t.blockParameters);e.renderPart="list-header",i(e,".list-title")},function(e){var a=angular.copy(t.blockParameters);a.errorMessage=e.data.error,a.renderPart="title-form",i(a,".list-title")})},t.removeSelectedProducts=function(){o.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:t.blockData.wishlistId,userId:t.blockData.userId,productIdsToRemove:t.selectedProducts}).then(function(){i(t.blockParameters,".content")},function(e){var a=angular.copy(t.blockParameters);a.errorMessage=e.data.error,a.renderPart="list-header",i(a,".list-title")})},t.changeIsPublic=function(){o.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:t.blockData.wishlistId,userId:t.blockData.userId,changeIsPublic:!t.blockData.isPublic}).then(function(){t.blockData.isPublic=!t.blockData.isPublic,i(t.blockParameters,".content")},function(e){var a=angular.copy(t.blockParameters);a.errorMessage=e.data.error,a.renderPart="list-header",i(a,".list-title")})},t.deleteWishlist=function(t){e("#"+t).modal({})},t.confirmDeleteWishlist=function(e){o.post("Action/Rbs/Wishlist/DeleteWishlist",{wishlistId:t.blockData.wishlistId,userId:t.blockData.userId}).then(function(){window.location.href=e},function(e){var a=angular.copy(t.blockParameters);a.errorMessage=e.data.error,a.renderPart="list-header",i(a,".list-title")})}}])}(jQuery),function(){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistListCtrl",["$scope","$http",function(e,t){e.setDefaultWishlist=function(a){t.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:a,userId:e.data.userId,setDefault:!0}).then(function(){window.location.reload()},function(t){e.errorMessage=t.data.error})}}])}(jQuery),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsWishlistListPreloaded",["$scope","$http","$compile","$element","RbsChange.AjaxAPI",function(t,a,o,r,n){var i=angular.copy(t.blockParameters);t.setDefaultWishlist=function(s){a.post("Action/Rbs/Wishlist/UpdateWishlist",{wishlistId:s,userId:i.userId,setDefault:!0}).then(function(){n.reloadBlock(t.blockName,t.blockId,i,t.blockNavigationContext).then(function(a){r.find(".wishlist-list").html(e(e.parseHTML(a.data.dataSets.html)).filter(".wishlist-list").html()),o(r.find(".wishlist-list"))(t)},function(e){console.error("[RbsWishlistListPreloaded] error reloading block:",e)})},function(e){t.errorMessage=e.data.error})}}])}(jQuery),function(){"use strict";angular.module("RbsChangeApp").directive("rbsStoreWebStoreSelectorInit",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t){t.parameters=t.blockParameters;var a=t.blockData;function o(e){if(t.billingAreaData=[],t.zoneData=[],e&&(1===t.webStoreData.length&&(e.webStoreId=t.webStoreData[0].common.id),e.webStoreId)){for(var a=!1,o=0;o<t.webStoreData.length;o++){var r=t.webStoreData[o];if(r.common.id==e.webStoreId&&(a=!0,t.billingAreaData=r.billingAreas,1===r.billingAreas.length&&(e.billingAreaId=r.billingAreas[0].common.id),e.billingAreaId)){for(var n=!1,i=0;i<r.billingAreas.length;i++){var s=r.billingAreas[i];if(s.common.id==e.billingAreaId){n=!0,t.zoneData=s.zones,1===s.zones.length&&(e.zone=s.zones[0].common.code);for(var c=!1,l=0;l<s.zones.length;
1l++)e.zone==s.zones[l].common.code&&(c=!0);c||(e.zone=null)}}n||(e.billingAreaId=0)}}a||(e.webStoreId=0)}}t.webStoreData=a.webStores,t.originalSelection=angular.copy(a.common),t.selection=a.common,o(t.selection),t.$watch("selection",function(e){o(e)},!0),t.canSubmit=function(){return t.selection.webStoreId!=t.originalSelection.webStoreId||t.selection.billingAreaId!=t.originalSelection.billingAreaId||t.selection.zone!=t.originalSelection.zone},t.submit=function(){e.putData("Rbs/Commerce/Context",t.selection).then(function(){window.location.reload()},function(e){console.log("SelectWebStore error",e)})},t.show=t.webStoreData.length>1,angular.forEach(t.webStoreData,function(e){e.billingAreas.length>1&&(t.show=!0),angular.forEach(e.billingAreas,function(e){e.zones.length>1&&(t.show=!0)})})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsBrandBrandsList",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t){t.currentLetter=t.blockData.currentLetter,t.letters=t.blockData.letters,t.count=t.blockData.count,t.selectedLetter=null,t.context={URLFormats:t.blockData.context.URLFormats.join(","),pagination:t.blockData.context.pagination,imageFormats:t.blockParameters.imageFormats,dataSetNames:t.blockParameters.dataSetNames},t.setCurrentLetter=function(e){if(e.count){var t=jQuery("#"+e.letter).offset();t&&jQuery("html, body").animate({scrollTop:t.top-20},1e3)}};var a=0,o=function(e){angular.forEach(e.data.items,function(e){var a=e.common.category;a&&t.letters[a].data.push(e)}),e.data.items.length===t.context.pagination.limit&&(t.context.pagination=e.data.pagination,t.count.loaded+=e.data.items.length,n())},r=function(e){a<=4&&(console.error(e.data.code+": "+e.data.message),n()),a++},n=function(){var a={imageFormats:t.blockParameters.imageFormats,pagination:t.context.pagination,context:t.context};e.getData("Rbs/Brand/Brand",a).then(o,r)};n()}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsSocialConnectorsProcess",["RbsChange.AjaxAPI","$location",function(e,t){return{restrict:"A",templateUrl:"/rbs-social-connectors-process.twig",scope:!0,link:function(a){var o=t.search();a.socialError=o.socialError||null,e.getData("Rbs/Social/Connectors","GET",{visualFormats:["pictogram"]}).then(function(e){a.connectors=[],e.data.dataSets&&(a.connectors=e.data.dataSets.connectors)})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsSocialButtons",["$location",function(e){return{restrict:"A",templateUrl:"/rbs-social-buttons.twig",scope:{},link:function(t,a,o){var r=["twitter","facebook","pinterest"];t.shareUrl=o.shareUrl?o.shareUrl:encodeURIComponent(e.absUrl()),t.shareTitle=o.shareTitle?o.shareTitle:document.title,t.shareTitleUri=encodeURIComponent(t.shareTitle),t.items=[];for(var n=o.networks?o.networks.toLowerCase().split(","):r,i=0;i<n.length;i++){var s=n[i].trim();if(!(r.indexOf(s)<0)){var c={name:s};switch(s){case"twitter":c.type="link",c.title="Twitter",c.href="https://twitter.com/intent/tweet?text="+t.shareTitleUri+"%20"+t.shareUrl;break;case"facebook":c.type="link",c.title="Facebook",c.href="https://facebook.com/sharer.php?u="+t.shareUrl;break;case"pinterest":c.type="button",c.title="Pinterest",c.ngClick=function(){var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("charset","UTF-8"),e.setAttribute("src","//assets.pinterest.com/js/pinmarklet.js?r="+99999999*Math.random()),document.body.appendChild(e)}}t.items.push(c)}}}}}])}(window.__change),function(){"use strict";angular.module("RbsChangeApp").controller("RbsSocialConnectors",["$scope","$element","$rootScope","$attrs","RbsChange.AjaxAPI","$compile",function(e,t,a,o,r,n){e.isUserConnected=!!o.accessorId,e.accessorName=o.accessorName||"",e.socialConnect=function(e,t,a){(t=t||{}).connectorId=e,t.clearAdapter=!0;var o=Object.keys(t).map(function(e){return encodeURIComponent(e)+"="+encodeURIComponent(t[e])}).join("&");i("Action/Rbs/Social/Authentication?"+o,a)};var i=function(e,t){switch(t){case"tab":window.open(e,"_blank")||(window.location.href=e);break;case"current":window.location.href=e;break;default:var a=void 0!==window.screenX?window.screenX:window.screenLeft,o=void 0!==window.screenY?window.screenY:window.screenTop,r=void 0!==window.outerWidth?window.outerWidth:document.body.clientWidth,n=void 0!==window.outerHeight?window.outerHeight:document.body.clientHeight,i="width=600,height=600,left="+parseInt(a+(r-600)/2,10)+",top="+parseInt(o+(n-600)/2.5,10),s=window.open("","socialWindow",i);s?s.location.href=e:window.location.href=e}};a.$on("rbsUserConnected",function(a,i){if(e.isUserConnected=!0,e.accessorName=i.accessorName,o.reloadBlock){var s=angular.copy(e.blockParameters);s.accessorId=i.accessorId,s.accessorName=i.accessorName,function(a,o){r.reloadBlock(e.blockName,e.blockId,a,e.blockNavigationContext).then(function(a){t.f
1ind(".content-scl").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".content-scl").html()),n(t.find(".content-scl"))(e),o&&r.closeWaitingModal()},function(e){console.error("[RbsSocialConnectors] error reloading block:",e)})}(s)}}),e.logout=function(){r.getData("Rbs/User/Logout").then(function(){window.location.reload(!0)},function(t){e.error=t.data.message,console.error("[RbsSocialConnectors] logout error",t)})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsSocialConnectorLinkAccountController",["$scope","$timeout","RbsChange.AjaxAPI","$attrs","$element","$compile",function(e,t,a,o,r,n){function i(e,t){!function(e,t){switch(t){case"tab":window.open(e,"_blank")||(window.location.href=e);break;case"current":window.location.href=e;break;default:var a=void 0!==window.screenX?window.screenX:window.screenLeft,o=void 0!==window.screenY?window.screenY:window.screenTop,r=void 0!==window.outerWidth?window.outerWidth:document.body.clientWidth,n=void 0!==window.outerHeight?window.outerHeight:document.body.clientHeight,i=600,s=600,c="width="+i+",height="+s+",left="+parseInt(a+(r-i)/2,10)+",top="+parseInt(o+(n-s)/2.5,10),l=window.open("","socialWindow",c);l?l.location.href=e:window.location.href=e}}("Action/Rbs/Social/Authentication?&connectorId="+e,t)}function s(i){a.postData("Rbs/Social/SocialLinkUnlink",{connectorId:i}).catch(function(e){console.error(e)}).finally(function(){var i;o.reloadBlock?(i=e.blockParameters,a.reloadBlock(e.blockName,e.blockId,i,e.blockNavigationContext).then(function(t){r.find(".content").html(jQuery(jQuery.parseHTML(t.data.dataSets.html)).filter(".content").html()),n(r.find(".content"))(e)},function(e){console.error("[RbsSocialConnectors] error reloading block:",e)})):t(c,150)})}function c(){a.getData("Rbs/Social/SocialLinks").then(function(t){e.socialLinks=[],angular.forEach(t.data.dataSets,function(t){e.socialLinks.push(t.provider)})},function(e){console.error(e)})}e.isRunning=!1,e.socialLinks=[],o.reloadBlock||c(),e.changeLinkStatus=function(t,a,r,n){e.isRunning=!0,o.reloadBlock?"link"===r?i(t,n):s(t):e.socialLinks.indexOf(a)>=0?s(t):i(t,n),e.isRunning=!1}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsSocialSharingButtons",["$scope","$element",function(e,t){e.onPinterestButtonClick=function(){var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("charset","UTF-8"),e.setAttribute("src","//assets.pinterest.com/js/pinmarklet.js?r="+99999999*Math.random()),document.body.appendChild(e)}}])}(),function(e){"use strict";angular.module("RbsChangeApp").controller("RbsElasticsearchResultList",["$scope","$element","$attrs","RbsChange.AjaxAPI","$location","$rootScope","$timeout","$compile","$window",function(t,a,o,r,n,i,s,c,l){var d=t.blockId,u=o.paginationMode||"default",p=o.searchResult||!1,m=parseInt(o.pageCount||"0",10),g=angular.copy(t.blockParameters);if(g.pageNumber=parseInt(o.pageNumber||"0",10),delete g.forceClassicPagination,"infinite-click"===u&&m>1){var f=n.search(),h=Math.min(f["page-"+d]||1,m),b=f.position;!function a(){if(h>g.pageNumber)v().then(a);else{e("html, body").animate({scrollTop:b},1e3);var o=!1,r=angular.element(l);r.on("scroll",function(){o||(o=!0,s(function(){o=!1},500),n.search("position",r.scrollTop()).replace(),t.$apply())})}}()}function v(){return t.loading=!0,y(g.pageNumber+1),r.reloadBlock(t.blockName,d,g,t.blockNavigationContext).then(function(e){C(e.data.dataSets.html,!1),s(function(){t.loading=!1})},function(){y(g.pageNumber-1),t.loading=!1})}function C(o,r){var n="list-items-"+g.pageNumber,i=e(e.parseHTML(o)).filter(".list-items").html();r?a.find(".list-items").html('<div class="'+n+'">'+i+"</div>"):a.find(".list-items").append('<div class="'+n+'">'+i+"</div>"),c(a.find("."+n))(t);var s=e(e.parseHTML(o)).filter(".list-pagination").html();a.find(".list-pagination").html(s),c(a.find(".list-pagination > *"))(t)}function y(e){g.pageNumber=e;var t="classic"===u?"pageNumber":"page",a=g.pageNumber>1?g.pageNumber:null;n.search(t+"-"+d,a).replace()}t.loading=!1,t.changingPage=!1,t.sortBy=function(e){g.sortBy=e,n.search("sortBy-"+d,e),y(1),t.reload("sortBy")},t.reload=function(e){var a="instantSearch"!==e;a&&r.openWaitingModal();var o=r.reloadBlock(t.blockName,d,g,t.blockNavigationContext);return o.then(function(e){C(e.data.dataSets.html,!0),a&&r.closeWaitingModal()},function(e){console.error("[RbsElasticsearchShortSearchPreloaded] error reloading block:",e),a&&r.closeWaitingModal()}),o},t.onPaginationLinkClick=function(e){e.originalEvent.stopPropagation(),e.originalEvent.preventDefault(),t.changingPage||(t.changingPage=!0,"classic"===u&&(y(parseInt(e.target.getAttribute("data-page-number"),10)),t.reload().then(function(){t.changingPage=!1},function(){t.changingPage=!1})))},t.addMoreItems=function(){t.loading||"infinite-click"===u&&v()},i.$on("RbsElasticsearchSearchText",function(e,a){!p||void 0!==a.resultFunction&&g.resultFunction!==a.resultFunction||(a.redirect=!1,g.searchText!==a.searchText&&(g.searchText=a.searchText||null,y(1),t.reload(a.instantSearch?"instantSearch":"searchText")))}),i.$on("RbsElasticsearchFacetFilters",function(e,a){a.facetFilters||(a.facetFilters=[]);g.facetFilters=a.facetFilters,g.searchText=a.searchText||null,y(1),t.reload(a.instantSearch?"instantSearch":"facetFilters")})}])}(jQuery),function(){"use strict";angular.module("RbsChangeApp").controller("RbsElasticsearchResultHeaderPreloaded",["$scope","$element","$rootScope","$compile","RbsChange.AjaxAPI",function(e,t,a,o,r){a.$on("RbsElasticsearchSearchText",function(a,n){var i=angular.copy(e.blockParameters);i.searchText=n.searchText,r.reloadBlock(e.blockName,e.blockId,i,e.blockNavigationContext).then(function(a){t.f
1ind(".content").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".content").html()),o(t.find(".content"))(e)},function(e){console.error("[RbsElasticsearchResultHeaderPreloaded] error reloading block:",e)})})}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsElasticsearchShortSearch",["RbsChange.AjaxAPI","$timeout","RbsChange.ResponsiveSummaries","$sce","$location",function(e,t,a,o,r){return{restrict:"A",controller:["$scope",function(t){t.suggester={},t.suggester.search=function(a){return e.getData("Rbs/Elasticsearch/Suggest",{searchText:a,nbElement:t.blockParameters.nbElement},{visualFormats:t.blockParameters.thumbnailFormat}).then(function(e){t.searching?t.searching=!1:e.data.categories&&e.data.categories.length>0&&(jQuery(".short-search-listbox").show(),t.categories=e.data.categories)},function(e){})}}],link:function(n,i,s){n.blockData;n.waitMs=s.waitMs,n.minLength=s.minLength,n.timeoutPromise=null;var c=r.search();n.suggester.searchText=c.searchText||null,n.searching=!1;var l=function(){n.categories=null,jQuery(".short-search-listbox").hide()},d=function(e){l(),e.length>=n.minLength&&n.suggester.search(e)},u=function(){n.timeoutPromise&&(t.cancel(n.timeoutPromise),n.timeoutPromise=null)};if(n.loadSuggestions=function(){var e;0===n.minLength||n.suggester.searchText&&n.suggester.searchText.length>=n.minLength?n.waitMs>0?(u(),e=n.suggester.searchText,n.timeoutPromise=t(function(){d(e)},n.waitMs)):d(n.suggester.searchText):(u(),l())},n.emptySuggestions=function(e){"keydown"===e.type?("key"in e?"Escape"===e.key||"Esc"===e.key:27===e.keyCode)&&jQuery(".short-search-listbox").hide():"blur"===e.type&&(e.relatedTarget&&$(e.relatedTarget).is(".short-search-listbox a")?i.find("input.elastic-search").focus():jQuery(".short-search-listbox").hide())},n.highlightSuggestion=function(e){if(n.suggester.searchText){var t=new RegExp(n.suggester.searchText,"i"),a=e.match(t);return o.trustAsHtml(e.replace(t,"<strong>"+a+"</strong>"))}return o.trustAsHtml(e)},n.searchItem=function(t,a){if(n.suggester.searchText&&n.suggester.searchText.length){u(),l(),n.searching=!0;var o=e.globalVar("RBS_Elasticsearch")||{};o.searchText=n.suggester.searchText,o.redirect=!0,o.instantSearch=!1,o.resultFunction=t||!1,o.models=n.blockParameters.models,e.globalVar("RBS_Elasticsearch",o),n.$emit("RbsElasticsearchSearchText",o),o.redirect?window.location.href=a+"?searchText="+encodeURIComponent(n.suggester.searchText):r.search("searchText",n.suggester.searchText)}},n.submitForm=function(){if(n.suggester.searchText&&n.suggester.searchText.length){u(),l(),n.searching=!0;var t=e.globalVar("RBS_Elasticsearch")||{};t.searchText=n.suggester.searchText,t.redirect=!0,t.instantSearch=!1,t.models=n.blockParameters.models,e.globalVar("RBS_Elasticsearch",t),n.$emit("RbsElasticsearchSearchText",t),t.redirect?e.getData("Rbs/Elasticsearch/Header",{searchText:n.suggester.searchText,typoSearch:n.blockParameters.typoSearch}).then(function(e){if(e.data&&e.data.length){var a=null,o=-1;angular.forEach(e.data,function(e){!a&&o<e.count&&(o=e.count,t.resultFunction=e.resultFunction,a=e.url)}),a&&(window.location.href=a)}}):r.search("searchText",n.suggester.searchText)}},n.getPromiseDocumentSuggest=function(t){var a=n.blockParameters;return a.searchText=t,a.models.length>0?e.getData("Rbs/Elasticsearch/SuggestDocuments",a,{visualFormats:a.thumbnailFormat}):null},!n.inResponsiveSummary){var p="/rbs-elasticsearch-short-search-responsive-summary-modal.twig";n.blockParameters.fullyQualifiedTemplateName&&"Rbs_Catalog:product-short-search.twig"===n.blockParameters.fullyQualifiedTemplateName?p="/rbs-catalog-product-short-search.twig":n.blockParameters.fullyQualifiedTemplateName&&"Rbs_Elasticsearch:documents-short-search.twig"===n.blockParameters.fullyQualifiedTemplateName&&(p="/rbs-elasticsearch-suggest-short-search.twig"),a.registerItem(n.blockId,n,'<li data-rbs-elasticsearch-short-search-responsive-summary="" data-template="'+p+'"></li>')}}}}]),e.directive("rbsElasticsearchShortSearchResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-short-search-responsive-summary.twig",link:function(t,a,o){t.inResponsiveSummary=!0,t.onResponsiveSummaryClick=function(){var a={templateUrl:o.template,backdropClass:"modal-backdrop-rbs-elasticsearch-short-search-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-elasticsearch-short-search-responsive-summary",scope:t},r=e.open(a);t.$on("RbsElasticsearchSearchText",function(){r.close()})}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsElasticsearchDocumentShortSearch",["$scope",function(e){e.suggester.search=function(t){e.documents=null,e.columns=0;var a=e.getPromiseDocumentSuggest(t);a&&a.then(function(t){e.searching?e.searching=!1:t&&t.data.documents&&t.data.documents.length>0&&(jQuery(".short-search-listbox").show(),e.documents=t.data.documents,e.columns++)},function(e){})}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsElasticsearchShortSearchPreloaded",["$scope","RbsChange.AjaxAPI","$element","$compile","RbsChange.ResponsiveSummaries","RbsChange.ModalStack","$location",function(e,t,a,o,r,n,i){e.suggester
1={};var s=i.search();if(e.suggester.searchText=s.searchText||null,e.suggester.search=function(r){var n=angular.copy(e.blockParameters);n.models.length>0&&(n.searchText=r,n.renderSuggestions=!0,t.reloadBlock(e.blockName,e.blockId,n,e.blockNavigationContext).then(function(t){if(e.searching)e.searching=!1;else{var r=jQuery(jQuery.parseHTML(t.data.dataSets.html)).filter(".suggestions").html();a.find(".suggestions").html('<div class="suggestions-content">'+r+"</div>"),o(a.find(".suggestions-content"))(e),a.find(".short-search-listbox").show()}},function(e){console.error("[RbsElasticsearchShortSearchPreloaded] error reloading block:",e)}))},e.loadSuggestions=function(){jQuery(".short-search-listbox").hide(),e.suggester.searchText&&e.suggester.search(e.suggester.searchText)},e.emptySuggestions=function(e){"keydown"===e.type?("key"in e?"Escape"===e.key||"Esc"===e.key:27===e.keyCode)&&a.find(".suggestions").html(""):"blur"===e.type&&(e.relatedTarget&&$(e.relatedTarget).is(".suggestions a")?a.find("input.elastic-search").focus():a.find(".suggestions").html(""))},e.searchItem=function(a,o){if(e.suggester.searchText&&e.suggester.searchText.length){e.searching=!0;var r=t.globalVar("RBS_Elasticsearch")||{};r.searchText=e.suggester.searchText,r.redirect=!0,r.instantSearch=!1,r.resultFunction=a||!1,r.models=e.blockParameters.models,t.globalVar("RBS_Elasticsearch",r),e.$emit("RbsElasticsearchSearchText",r),r.redirect?window.location.href=o+"?searchText="+encodeURIComponent(e.suggester.searchText):i.search("searchText",e.suggester.searchText)}},e.submitForm=function(a){if(a.preventDefault(),e.suggester.searchText&&e.suggester.searchText.length){e.searching=!0;var o=t.globalVar("RBS_Elasticsearch")||{};o.searchText=e.suggester.searchText,o.redirect=!0,o.instantSearch=!1,o.models=e.blockParameters.models,t.globalVar("RBS_Elasticsearch",o),e.$emit("RbsElasticsearchSearchText",o),o.redirect?t.getData("Rbs/Elasticsearch/Header",{searchText:e.suggester.searchText,typoSearch:e.blockParameters.typoSearch}).then(function(e){if(e.data&&e.data.length){var t=null,a=-1;angular.forEach(e.data,function(e){!t&&a<e.count&&(a=e.count,o.resultFunction=e.resultFunction,t=e.url)}),t&&(window.location.href=t)}}):i.search("searchText",e.suggester.searchText)}},e.openShortSearchModal=function(){var t={templateUrl:"/rbs-elasticsearch-short-search-modal.twig",backdropClass:"modal-backdrop-rbs-elasticsearch-short-search-modal",windowClass:"modal-backdrop-rbs-elasticsearch-short-search-modal",scope:e};e.inModal=!0,n.open(t)},!1===e.inModal||void 0===e.inModal){var c="/rbs-elasticsearch-suggest-short-search.twig";e.blockParameters.fullyQualifiedTemplateName&&"Rbs_Catalog:product-short-search-preloaded.twig"===e.blockParameters.fullyQualifiedTemplateName&&(c="/rbs-catalog-product-short-search.twig"),e.parameters=e.blockParameters,e.accessorId=e.parameters.accessorId,e.accessorName=e.parameters.accessorName,r.registerItem(e.blockId,e,'<li data-rbs-elasticsearch-short-search-responsive-summary="" data-template="'+c+'"></li>')}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("RbsElasticsearchResultHeaderController",["$scope","$rootScope","RbsChange.AjaxAPI",function(e,t,a){e.searchText=e.blockParameters&&e.blockParameters.searchText,e.result=e.blockData&&e.blockData.result,t.$on("RbsElasticsearchSearchText",function(t,o){var r=e.blockData&&e.blockData.contextData||{};r.searchText=o.searchText,r.typoSearch=e.blockParameters.typoSearch,r.models=o.models,a.getData("Rbs/Elasticsearch/Header",r,e.blockData&&e.blockData.contextParams).then(function(t){t.data&&t.data.length&&(e.searchText=o.searchText,e.result=t.data)})}),e.$watchCollection("result",function(t){if(e.totalCount=0,t&&t.length){var a=e.blockParameters&&e.blockParameters.resultFunction;angular.forEach(t,function(t){e.totalCount+=t.count,t.active=a==t.resultFunction})}})}]),e.directive("rbsElasticsearchResult",["$compile",function(e){return{restrict:"A",scope:!1,controller:["$scope","$element","$rootScope","RbsChange.AjaxAPI",function(e,t,a,o){e.contextData=e.blockData&&e.blockData.contextData||{},e.items=e.blockData&&e.blockData.items,e.pagination=e.blockData&&e.blockData.pagination||{offset:0,count:0,limit:e.blockParameters.itemsPerPage},e.updateOffset=function(t){var a=e.contextData;a.offset!=t&&(a.offset=t,o.getData("Rbs/Elasticsearch/Search",e.contextData,e.blockData&&e.blockData.contextParams).then(function(t){t.data&&t.data.pagination&&t.data.items&&(e.items=t.data.items,e.pagination=t.data.pagination)}))},a.$on("RbsElasticsearchSearchText",function(t,a){var r=e.contextData;(r.resultFunction===a.resultFunction||a.instantSearch)&&(a.redirect=!1,r.searchText!==a.searchText&&(r.searchText=a.searchText,r.offset=0,o.getData("Rbs/Elasticsearch/Search",r,e.blockData&&e.blockData.contextParams).then(function(t){t.data&&t.data.pagination&&t.data.items&&(e.items=t.data.items,e.pagination=t.data.pagination)})))}),a.$on("RbsElasticsearchFacetFilters",function(t,a){var r=e.contextData;r.facetFilters=a.facetFilters,r.offset=0,o.getData("Rbs/Elasticsearch/Search",r,e.blockData&&e.blockData.contextParams).then(function(t){t.data&&t.data.pagination&&t.data.items&&(e.items=t.data.items,e.pagination=t.data.pagination)})}),this.getBlockParameters=function(){return e.blockParameters},this.getBlockData=function(){return e.blockData},this.refresh=function(){var t=e.contextData;o.getData("Rbs/Elasticsearch/Search",t,e.blockData&&e.blockData.contextParams).then(function(t){t.data&&t.data.pagination&&t.data.items&&(e.items=t.data.items,e.pagination=t.data.pagination)})}}],link:function(t,a,o,r){var n=null,i=a.find('[data-role="items-container"]');t.$watchCollection("items",function(a){var o=[];a&&a.length&&angular.forEach(t.items,function(e,t){o.push('<div data-item="items['+t+']" '+function(e){return e.document&&e.document.searchResult&&e.document.searchResult.directiveName||"data-rbs-elasticsearch-result-item"}(e)+'=""></div>')}),n&&(n.$destroy(),n=null),i.children().remove(),o.length&&(n=t.$new(),e(o.join(""))(n,function(e){i.append(e)}))})}}}]),e.directive("rbsElasticsearchResultItem",function(){return{restrict:"A",scope:{item:"="},templateUrl:"/rbs-elasticsearch-result-item.twig",require:"^rbsElasticsearchResult",link:function(e,t,a,o){}}})}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsElasticsearchInstantSearch",["$scope","RbsChange.AjaxAPI","$location",function(e,t,a){e.instantSearchText=a.search().searchText||null,e.$on("$locationChangeSuccess",function(){e.instantSearchText=a.search().searchText}),e.instantSearch=function(){if(e.instantSearchText&&e.instantSearchText.length){var o=t.globalVar("RBS_
1Elasticsearch")||{};o.searchText=e.instantSearchText,o.instantSearch=!0,o.redirect=!1,o.models=e.blockParameters.models||[],t.globalVar("RBS_Elasticsearch",o),e.$emit("RbsElasticsearchSearchText",o),a.search("searchText",e.instantSearchText)}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsElasticsearchFacetContainerV2",["$location","RbsChange.AjaxAPI","RbsChange.ModalStack",function(e,t,a){return{restrict:"A",scope:!0,controllerAs:"controller",controller:["$scope","$element","$attrs","$rootScope",function(o,r,n,i){o.parameters=o.blockParameters;var s=o.blockData;if(o.facets=s&&s.facetValues||null,o.facets){d(o.facets);var c=m(o.facets);o.appliedCount=c?Object.keys(c).length:0}else o.appliedCount=0;function l(){var a=o.blockData&&o.blockData.contextData||{},r=!0;if(a.facetFilters=[],o.facets&&o.facets.length){r=!1;var n=m(o.facets);o.appliedCount=n?Object.keys(n).length:0,a.facetFilters=n,a.typoSearch=o.blockParameters.typoSearch;var i=o.parameters.ajaxPath||"Rbs/Elasticsearch/Facets",s=o.blockData&&o.blockData.contextParams||{};t.getData(i,a,s).then(function(a){var r=t.globalVar("RBS_Elasticsearch")||{};o.facets=a.data.facetValues||null,d(o.facets),a.data.location?(e.url(a.data.location),o.$emit("RbsSeoUpdateMetas",a.data.metas),o.$emit("RbsSeoUpdateDecorator",{decoratorId:a.data.decoratorId}),r.decoratorId=a.data.decoratorId,t.globalVar("RBS_Elasticsearch",r)):a.data.hasOwnProperty("search")&&e.search(a.data.search),o.$emit("RbsElasticsearchFacetFilters",r)},function(e){console.log("error",e),o.$emit("RbsElasticsearchFacetFilters",t.globalVar("RBS_Elasticsearch")||{})}),o.$emit("RbsElasticsearchUpdateAppliedCount",{appliedCount:o.appliedCount})}var c=t.globalVar("RBS_Elasticsearch")||{};c.facetFilters=a.facetFilters,c.webStoreStockFilter=a.webStoreStockFilter,c.storeStockFilter=a.storeStockFilter,c.searchText=a.searchText||null,c.redirect=!0,t.globalVar("RBS_Elasticsearch",c),r&&o.$emit("RbsElasticsearchFacetFilters",c)}function d(e,t){e&&angular.forEach(e,function(e){t&&(e.parent=t),e.hasChildren&&e.values&&e.values.length&&angular.forEach(e.values,function(t){d(t.aggregationValues,e.fieldName)})})}function u(e){for(var t=0;t<e.length;t++){var a=e[t];if(angular.isFunction(a.reset)&&a.reset(),a.values)for(var r=0;r<a.values.length;r++){var n=a.values[r];n.selected=!1,n.aggregationValues&&u(n.aggregationValues)}}var i=o.blockData&&o.blockData.contextData;i&&i.showStockFilter&&(i.webStoreStockFilter=!1,i.storeStockFilter=!1)}function p(e,t){void 0===t&&(t=o.facets);for(var a=0;a<t.length;a++){var r=t[a];if(r.fieldName===e)return r;if(r.values)for(var n=0;n<r.values.length;n++){var i=r.values[n];if(i.aggregationValues){var s=p(e,i.aggregationValues);if(s)return s}}}return null}function m(e){for(var t=null,a=0;a<e.length;a++){var o=e[a];if(angular.isFunction(o.buildFilter)){var r=o.buildFilter();r&&(t||(t={}),t[o.fieldName]=r)}else if(o.values)for(var n=0;n<o.values.length;n++){var i=o.values[n];if(i.selected){var s=""+i.key;t||(t={}),t[o.fieldName]||(t[o.fieldName]={}),t[o.fieldName][s]=1;var c=null;i.aggregationValues&&i.aggregationValues.length&&(c=m(i.aggregationValues))&&(t[o.fieldName][s]=c)}}}return t}i.$on("RbsElasticsearchUpdateAppliedCount",function(e,t){o.appliedCount=t.appliedCount||0}),o.viewButton=function(){var e=!1;return angular.forEach(o.facets,function(t){!e&&t.values&&t.values.length&&(e=!0)}),e},o.reset=function(){u(o.facets),l()},o.responsiveModal=function(){var e={templateUrl:n.responsiveModalTemplate||"/rbs-elasticsearch-facet-responsive-modal.twig",backdropClass:"modal-backdrop-rbs-elasticsearch-facet-responsive",windowClass:"modal-responsive-summary modal-rbs-elasticsearch-facet-responsive",scope:o};a.open(e)},o.blockParameters.resultFunction&&i.$on("RbsElasticsearchSearchText",function(e,t){var a=o.blockData&&o.blockData.contextData;a&&(a.searchText=t.searchText,l())}),this.refresh=l,this.getFacets=function(){return o.facets},this.getFacetData=function(e){if(e&&e.fieldName){var t=e.fieldName,a=parseInt(t.replace("f_",""),10);if(o.blockData.facets[a])return o.blockData.facets[a]}return null},this.selectAncestors=function(e){var t=p(e.parent);if(t)for(var a=0;a<t.values.length;a++)for(var o=t.values[a],r=0;r<o.aggregationValues.length;r++)if(o.aggregationValues[r]===e)return o.selected=!0,void(angular.isFunction(t.selectionChange)&&t.selectionChange(o,!0))},this.unSelectDescendant=u}]}}]),e.directive("rbsElasticsearchFacetV2",["RbsChange.RecursionHelper","$timeout",function(e,t){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-v2.twig",scope:!1,compile:function(a){return e.compile(a,function(a,o,r){if(a.isCollapsed=!1,a.showContent=!0,"true"===r.collapseNotSelected){if(a.isCollapsed=!0,a.facet&&a.facet.values)for(var n=0;n<a.facet.values.length;
1n++)if(a.facet.values[n].selected){a.isCollapsed=!1;break}a.isCollapsed&&(a.showContent=!1,t(function(){a.showContent=!0},600))}var i=a.facet.parameters.renderingMode;i?i.indexOf("-")<0&&(i="rbs-elasticsearch-facet-"+i):console.error("No rendering mode for facet!",a.facet);var s=o.find(".facet-values-container");s.html("<div data-"+i+"></div>"),e.baseCompile(s.contents())(a),a.facetData=a.controller.getFacetData(a.facet)})}}}])}(),function(e){"use strict";var t=angular.module("RbsChangeApp");function a(e){e.selectionChange=function(t,a){for(var o=0;o<e.facet.values.length;o++)t!==e.facet.values[o]&&(e.facet.values[o].selected=!1);!t.selected&&t.aggregationValues?e.controller.unSelectDescendant(t.aggregationValues):t.selected&&e.facet.parent&&e.controller.selectAncestors(e.facet),!0!==a&&e.controller.refresh()},e.hasValue=function(){return e.facet.values&&e.facet.values.length}}function o(e){e.selectionChange=function(t,a){!t.selected&&t.aggregationValues?e.controller.unSelectDescendant(t.aggregationValues):t.selected&&e.facet.parent&&e.controller.selectAncestors(e.facet),!0!==a&&e.controller.refresh()},e.hasValue=function(){return e.facet.values&&e.facet.values.length}}t.directive("rbsElasticsearchFacetRadio",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-radio.twig",scope:!1,compile:function(t){return e.compile(t,a)}}}]),t.directive("rbsElasticsearchFacetButtonssingle",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-buttons-single.twig",scope:!1,compile:function(t){return e.compile(t,a)}}}]),t.directive("rbsElasticsearchFacetSwatchsingle",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-swatch-single.twig",scope:!1,compile:function(t){return e.compile(t,a)}}}]),t.directive("rbsElasticsearchFacetCheckbox",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-checkbox.twig",scope:!1,compile:function(t){return e.compile(t,o)}}}]),t.directive("rbsElasticsearchFacetButtonsmultiple",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-buttons-multiple.twig",scope:!1,compile:function(t){return e.compile(t,o)}}}]),t.directive("rbsElasticsearchFacetSwatchmultiple",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-swatch-multiple.twig",scope:!1,compile:function(t){return e.compile(t,o)}}}]),t.directive("rbsElasticsearchFacetSwatchItem",function(){return{restrict:"A",link:function(e,t,a){if(angular.isObject(e.value.skin)){var o=a.visualFormat||"selectorItem",r=e.value.skin.colorCode||"";e.value.skin.visual&&(r+=' url("'+e.value.skin.visual[o]+'") no-repeat center center'),e.ngStyle={background:r}}}}}),t.directive("rbsElasticsearchFacetInterval",["$filter",function(t){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-interval.twig",scope:!1,link:function(a,o){var r,n,i,s,c=!1;a.selectionChange=function(e,t){e.selected&&a.facet.parent&&a.controller.selectAncestors(a.facet),!0!==t&&(a.controller.refresh(),c=!0)},a.hasValue=function(){return a.facet.values&&a.facet.values.length};var l={interval:a.facet.parameters.interval,absMin:null,absMax:null,min:null,max:null};if(a.range=angular.copy(l),f(),i={start:[a.range.min,a.range.max],behaviour:"drag-tap",connect:!0,margin:a.range.interval,step:a.range.interval,range:{min:[a.range.absMin?a.range.absMin:0],max:[a.range.absMax?a.range.absMax:a.range.interval]}},!1!==a.facet.parameters.sliderShowTooltips){a.showTooltips=!0;var d=a.blockData.contextData.currencyCode,u={to:function(e){return'<div class="tooltip-arrow"></div><div class="tooltip-inner"><span>'+t("rbsFormatPrice")(e,d,0)+"</span></div>"}};i.tooltips=[u,u]}function p(){var t="range-slider";a.showTooltips&&(t+=" range-slider-tooltips"),a.showPips&&(t+=" range-slider-pips"),o.find(".range-slider").replaceWith('<div class="'+t+'"></div>'),s=o.find(".range-slider").get(0),e.create(s,i),s.noUiSlider.on("slide",m),s.noUiSlider.on("change",g),o.find(".noUi-tooltip").addClass("tooltip top").removeClass("noUi-tooltip")}function m(){var e=s.noUiSlider.get(),t=parseInt(e[0]),o=parseInt(e[1]);a.range.min==t&&a.range.max==o||(a.range.min=t,a.range.max=o,a.$digest())}function g(){var e=s.noUiSlider.get(),t=parseInt(e[0]),o=parseInt(e[1]);if(r!=t||n!=o){a.range.min=r=t,a.range.max=n=o,a.$digest();for(var i=0;i<a.facet.values.length;i++){var c=a.facet.values[i].key;a.facet.values[i].selected=c>
1=a.range.min&&c<a.range.max}a.facet.customValues=[{key:"min",selected:!0,value:a.range.min},{key:"max",selected:!0,value:a.range.max}],a.controller.refresh()}}function f(){if(!a.hasValue())return!1;var e=!1;if(!c){for(var t=angular.copy(l),o=0;o<a.facet.values.length;o++){var i=a.facet.values[o].key,s=i+a.range.interval;(null===t.absMin||i<t.absMin)&&(t.absMin=i,e=!0),(null===t.absMax||s>t.absMax)&&(t.absMax=s,e=!0),a.facet.values[o].selected&&((null===t.min||i<t.min)&&(t.min=i,e=!0),(null===t.max||s>t.max)&&(t.max=s,e=!0))}e&&(a.range=t)}return(null===a.range.min||a.range.min<a.range.absMin)&&(void 0!==a.facet.parameters.minFilter&&null!==a.facet.parameters.minFilter?a.range.min=parseInt(a.facet.parameters.minFilter):a.range.min=a.range.absMin),(null===a.range.max||a.range.max>a.range.absMax)&&(void 0!==a.facet.parameters.maxFilter&&null!==a.facet.parameters.maxFilter?a.range.max=parseInt(a.facet.parameters.maxFilter):a.range.max=a.range.absMax),r=a.range.min,n=a.range.max,c=!1,e}function h(){return a.facet.values?a.facet.values.length:0}1==a.facet.parameters.sliderShowLabels&&(a.showLabels=!0),1==a.facet.parameters.sliderShowPips&&(a.showPips=!0,i.pips={mode:"steps",values:h(),density:a.range.interval}),p(),a.$watch("facet",function(e){e.buildFilter=function(){return a.range.min!==a.range.absMin||a.range.max!==a.range.absMax?{min:a.range.min,max:a.range.max}:null},e.reset=function(){var e=a.range;e.min=e.absMin,e.max=e.absMax,s.noUiSlider.set([e.min,e.max])}}),a.$watch("facet.values",function(){f()&&(i.start=[a.range.min,a.range.max],i.range={min:[a.range.absMin?a.range.absMin:0],max:[a.range.absMax?a.range.absMax:a.range.interval]},a.showPips&&(i.pips.values=h()),p())})}}}])}(window.noUiSlider),function(){"use strict";var e=angular.module("RbsChangeApp"),t=window.__change.Rbs_Geo_Config,a=!(!t||!t.Google||!t.Google.client&&!t.Google.APIKey);e.directive("rbsStoreshippingProductLocator",["RbsChange.AjaxAPI","$timeout","RbsGeo.GoogleMapService",function(e,t,o){return{restrict:"A",templateUrl:"/rbs-storeshipping-product-locator.twig",scope:!1,link:function(r,n){r.useGoogleMap=a,r.countries=[],r.search={address:null,country:null,coordinates:null,processId:0,storeId:null,useAsDefault:!0},a||(e.getData("Rbs/Storelocator/StoreCountries/",{forReservation:!0===r.forReservation}).then(function(e){if(e.data.items.length){for(var t=0;t<e.data.items.length;t++)r.countries.push(e.data.items[t].title);r.search.country=r.countries[0]}}),r.$watch("search.country",function(e,t){e&&e!==t&&r.search.address&&r.locateByAddress()})),r.loading=!1,r.locateMeLoading=!1,r.locateByAddressLoading=!1,r.emptySearch=!1,r.noSearch=!0,r.$watch("search.address",function(e){r.locateByAddressError=!1,e&&(r.search.coordinates=null)}),r.locateMe=function(){r.loading||r.locateMeLoading||(r.locateMeLoading=!0,r.emptySearch=!1,navigator.geolocation.getCurrentPosition(function(e){r.locateMeLoading=!1,r.search.coordinates={latitude:e.coords.latitude,longitude:e.coords.longitude},r.search.address=null,r.$digest(),r.launchSearch()},function(e){console.error(e),r.locateMeLoading=!1,r.locateMeError=!0,r.applyStoresResult([],{}),r.$digest(),t(function(){r.locateMeError=!1},5e3)},{timeout:5e3,maximumAge:0}))},r.locateByAddress=function(){if(!r.loading&&!r.locateByAddressLoading&&r.search.address){r.locateByAddressLoading=!0,r.emptySearch=!1;var t={lines:["",r.search.address,r.search.country]};e.getData("Rbs/Geo/CoordinatesByAddress",{address:t}).then(function(e){r.locateByAddressLoading=!1,e.data.dataSets&&e.data.dataSets.latitude?(r.search.coordinates={latitude:e.data.dataSets.latitude,longitude:e.data.dataSets.longitude},r.launchSearch()):(r.locateByAddressError=!0,r.applyStoresResult([],{}))},function(){r.locateByAddressLoading=!1,r.locateByAddressError=!0,r.applyStoresResult([],{})})}},r.launchSearch=function(){r.loading=!0,r.emptySearch=!1,r.noSearch=!1;var t={search:r.search,skuQuantities:r.skuQuantities,forReservation:!0===r.forReservation,forPickUp:!0===r.forPickUp,allowSelect:r.allowSelect};e.getData("Rbs/Storeshipping/Store/",t,{URLFormats:"canonical",dataSetNames:"address,coordinates,hoursSummary"}).then(function(e){r.applyStoresResult(e.data.items,e.data.pagination),r.loading=!1,r.emptySearch=!e.data.items.length},function(e){console.log("launchSearch error",e),r.applyStoresResult([],{}),r.loading=!1,r.emptySearch=!0})},r.storeId&&(r.search.storeId=r.storeId),r.totalSkuQuantity=0,angular.isObject(r.skuQuantities)&&!angular.isArray(r.skuQuantities)?(angular.forEach(r.
1skuQuantities,function(e){r.totalSkuQuantity+=e}),r.search.storeId&&r.launchSearch()):r.skuQuantities={},a&&o.maps().then(function(e){t(function(){var t=n.find('[data-role="address-auto-complete"]');r.autocomplete=new e.places.Autocomplete(t[0],{types:["geocode"]}),e.event.addListener(r.autocomplete,"place_changed",function(){var e=r.autocomplete.getPlace();if(e.geometry){var t=e.geometry.location;r.search.coordinates={latitude:t.lat(),longitude:t.lng()},r.search.address=null,r.$digest(),r.launchSearch()}})})}),r.applyStoresResult=function(e,t){r.formattedMinPickUpDateTime=t.formattedMinPickUpDateTime,r.formattedMinRelayDateTime=t.formattedMinRelayDateTime,r.pickUpStores=[],r.relayStores=[],angular.forEach(e,function(e){e.storeShipping.hasStoreStock?r.pickUpStores.push(e):r.relayStores.push(e)})}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");function t(e,t,a){return{restrict:"A",templateUrl:"/rbs-storeshipping-store-shipping.twig",scope:{shippingMode:"=",shippingModeInfo:"=",userAddresses:"=",processEngine:"=",giftCapabilities:"=",pricesConfiguration:"=showPrices"},link:function(o){function r(e){if(e){var t=angular.copy(o.store);delete t.address;var a={id:o.shippingModeInfo.common.id,title:o.shippingModeInfo.common.title,wishCustomerReceiptDate:o.shippingMode.wishCustomerReceiptDate,storeId:o.store.common.id,address:o.store.address,options:{store:t,category:o.shippingModeInfo.common.category}};return o.shippingMode.options.message&&(a.options.message=o.shippingMode.options.message),o.shippingMode.options.containsGift&&(a.options.containsGift=o.shippingMode.options.containsGift,o.shippingMode.options.giftAddMessage&&(a.options.giftAddMessage=o.shippingMode.options.giftAddMessage),o.shippingMode.options.giftMessage&&(a.options.giftMessage=o.shippingMode.options.giftMessage),o.shippingMode.options.giftAddWrap&&(a.options.giftAddWrap=o.shippingMode.options.giftAddWrap)),a}return o.shippingModeInfo.common.id==o.shippingMode.id&&o.store&&o.store.common.id&&!o.shippingMode.options.invalidMessage}o.loading=!1,o.edition=null,o.countries=[],o.store=null,o.useGoogleMap=a.valid(),o.$watch("shippingMode.shippingZone",function(t){e.getData("Rbs/Geo/AddressFieldsCountries/",{zoneCode:t}).then(function(e){o.countries=e.data.items},function(e){console.error("addressFieldsCountries",e),o.countries=[]})}),o.$watch("shippingMode.id",function(e){e==o.shippingModeInfo.common.id&&(o.shippingMode.valid=r)}),o.inEdition=function(e){return!0===e&&(o.edition=!0,o.forReservation="reservation"===o.shippingMode.category,o.forPickUp="store"===o.shippingMode.category,o.allowSelect=!0,o.storeId=o.shippingMode.storeId),o.edition},o.openStorePopup=function(e){var a={templateUrl:"/rbs-storeshipping-store-popin.twig",backdropClass:"modal-backdrop-rbs-storeshipping-store",windowClass:"modal-rbs-storeshipping-store",size:"lg",controller:"RbsStoreshippingStoreModalCtrl",resolve:{store:function(){return e}}};t.open(a)},o.selectStore=function(e){o.edition=!1,o.setDeliveryInformation(e)},o.setDeliveryInformation=function(e){o.shippingMode.valid=r,e?(o.store=e,o.shippingMode.storeId=e.common.id,o.shippingMode.options.store=e):(o.store=null,delete o.shippingMode.options.store)},o.$watch("shippingModeInfo",function(e){if(e){o.skuQuantities={};var t=o.shippingMode.delivery;if(angular.forEach(t.lines,function(e){e.quantity&&(o.skuQuantities.hasOwnProperty(e.codeSKU)?o.skuQuantities[e.codeSKU]+=e.quantity:o.skuQuantities[e.codeSKU]=e.quantity)}),o.shippingMode.id==e.common.id){o.shippingMode.valid=r;var a=o.shippingMode.options;if(o.shippingMode.storeId)a&&a.store&&a.store.common.id==o.shippingMode.storeId&&(o.store=o.shippingMode.options.store,o.store.address=o.shippingMode.address);else{var n=o.processEngine.parameters("storeId");n&&(o.shippingMode.storeId=n)}}o.inEdition(!o.store)}}),function(){if("return"===o.processEngine.type){var t=function(){e.getData("Rbs/Storeshipping/Store/Default",{},{URLFormats:"canonical"}).then(function(e){var t=e.data.dataSets;!angular.isArray(t)&&angular.isObject(t)&&t.allow.allowPickUp&&o.selectStore(t)},angular.noop)},a=o.processEngine.getObjectData();a.returnMode.storeId?e.getData("Rbs/Storelocator/Store/"+a.returnMode.storeId).then(function(e){var a=e.data.dataSets;!angular.isArray(a)&&angular.isObject(a)&&a.allow.allowPickUp?o.selectStore(a):t()}):t()}}()}}}function a(){return{restrict:"A",templateUrl:"/rbs-storeshipping-store-shipping-readonly.twig",scope:{shippingMode:"=",shippingModeInfo:"="},link:function(e){e.store=e.shippingMode.options.store}}}e.directive("rbsStoreshippingStoreModeEditor",["RbsChange.AjaxAPI","RbsChange.ModalStack","RbsGeo.GoogleMapService",t]),e.directive("rbsStoreshippingReservationModeEditor",["RbsChange.AjaxAPI","RbsChange.ModalStack","RbsGeo.GoogleMapService",t]),e.controller("RbsStoreshippingStoreModalCtrl",["$timeout","RbsChange.AjaxAPI","RbsChange.ModalStack","$scope","$uibModalInstance","store","RbsGeo.GoogleMapService","RbsGeo.LeafletMapService",function(e,t,a,o,r,n,i,s){function c(){var e,t,a,r="storeshipping-map-store-"+n.common.id;i.valid()?i.maps().then(function(i){if(e=new i.LatLng(n.coordinates.latitude,n.coordinates.longitude),t={center:e,zoom:11},o.map=new i.Map(document.getElementById(r),t),a={position:e,map:o.map},n.coordinates.marker&&n.coordinates.marker.original){var s=n.coordinates.marker.size?n.coordinates.marker.size[0]:30,c=n.coordinates.marker.size?n.coordinates.marker.size[1]:36;a.icon={url:n.coordinates.marker.original,size:new i.Size(s,c),origin:new i.Point(0,0),anchor:new i.Point(s/2,c)}}o.marker=new i.Marker(a)}):s.valid()?s.maps().then(function(i){a={},n.coordinates.marker&&n.coordinates.marker.original&&(a.icon=i.icon({iconUrl:n.coordinates.marker.original,iconSize:n.coordinates.marker.size?n.coordinates.marker.size:[30,36]})),e={lat:n.coordinates.latitude,lng:n.coordinates.longitude},t={center:e,zoom:11},o.map=i.map(r,t);var c=new i.TileLayer(s.defaultTileLayerName(),{attribution:s.getAttribution()});o.map.addLayer(c),o.marker=i.marker(e,a).addTo(o.map)}):console.warn("No valid map configuration.")}o.loadMap=!1,o.map=null,o.store=n,n.card||t.getData("Rbs/Storelocator/Store/"+n.common.id).then(function(e){o.store=e.data.dataSets});function l(){a.showPrevious()}o.showMap=function(){return!o.loadMap&&n.coordinates&&(o.loadMap=!0,e(c,750)),!0},o.closed=function(e){return!(e.amBegin||e.amEnd||e.pmBegin||e.pmEnd)},o.continuousDay=function(e){return e.amBegin&&!e.amEnd&&!e.pmBegin&&e.pmEnd},o.amOpen=function(e){return e.amBegin&&e.amEnd},o.amClosed=function(e){return!e.amBegin&&!e.amEnd&&e.pmBegin&&e.pmEnd},o.pmOpen=function(e){return e.pmBegin&&e.pmEnd},o.pmClosed=function(e){return e.amBegin&&e.amEnd&&!e.pmBegin&&!e.pmEnd},r.result.then(l,l),o.cancel=function(){r.dismiss("cancel")}}]),e.directive("rbsStoreshippingStoreModeSummary",a),e.directive("rbsStoreshippingReservationModeSummary",a)}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("rbsStoreshippingShortStore",["$rootScope","RbsChange.AjaxAPI","RbsChange.ResponsiveSummaries",function(e,t,a){return{restrict:"A",controller:["$scope",function(a){a.parameters=a.blockParameters,a.storeData=a.blockData,e.$on("rbsStorelocatorDefaultStore",function(e,t){a.storeData=t||null}),this.search=function(e){var o=t.getData("Rbs/Storelocator/Store/",e);return o.then(function(e){e.data.items.length&&a.$emit("rbsStorelocatorChooseStore",e.data.items[0].common.id)}),o}}],link:function(e,t,o,r){e.chooseStoreUrl=o.chooseStoreUrl,angular.isString(e.chooseStoreUrl)&&e.chooseStoreUrl.length||(e.chooseStoreUrl=null),e.parameters.autoSelect&&!e.storeData&&navigator.geolocation.getCurrentPosition(function(e){var t={latitude:e.coords.latitude,longitude:e.coords.longitude};r.search({coordinates:t,distance:"50km",allow:{pickUp:1,reservation:1}})},function(){console.error("unable to locate")},{timeout:5e3,maximumAge:0}),a.registerItem(e.blockId,e,'<li data-rbs-storeshipping-short-store-responsive-summary=""></li>')}}}]),e.directive("rbsStoreshippingShortStoreResponsiveSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/rbs-storeshipping-short-store-responsive-summary.twig",link:function(t){t.onResponsiveSummaryClick=function(){var a={templateUrl:"/rbs-storeshipping-short-store-responsive-summary-modal.twig",backdropClass:"modal-backdrop-rbs-storeshipping-short-store-responsive-summary",windowClass:"modal-responsive-summary modal-rbs-storeshipping-short-store-responsive-summary",scope:t};e.open(a)}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("RbsShortStore",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI","RbsChange.ResponsiveSummaries",function(e,t,a,o,r,n,i,s){var c=angular.copy(e.blockParameters);c.tTL=0;c.autoSelect&&!c.storeId&&navigator.geolocation.getCurrentPosition(function(t){var a,o={latitude:t.coords.latitude,longitude:t.coords.longitude};a={coordinates:o,distance:"50km",allow:{pickUp:1,reservation:1}},i.getData("Rbs/Storelocator/Store/",a).then(function(t){t.data.items.length&&e.$emit("rbsStorelocatorChooseStore",t.data.items[0].common.id)})},function(){console.error("[RbsShortStore]Unable to locate user position")},{timeout:5e3,maximumAge:0}),o.$on("rbsStorelocatorDefaultStore",function(a,o){c.storeId=o&&o.common?o.common.id:0,i.reloadBlock(e.blockName,e.blockId,c,e.blockNavigationContext).then(function(a){t.f
1ind(".short-store").html(jQuery(jQuery.parseHTML(a.data.dataSets.html)).filter(".short-store").html()),r(t.find(".short-store"))(e)},function(e){console.error("[RbsShortStore] error reloading block:",e)}),e.storeData=o||null}),e.parameters=e.blockParameters,e.storeData=e.blockData,e.chooseStoreUrl=a.chooseStoreUrl,angular.isString(e.chooseStoreUrl)&&e.chooseStoreUrl.length||(e.chooseStoreUrl=null),s.registerItem(e.blockId,e,'<li data-rbs-storeshipping-short-store-responsive-summary=""></li>')}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("rbsStoreshippingCancelReservation",["RbsChange.AjaxAPI",function(e){return{link:function(t){t.confirmCancel=function(){console.log(t),e.openWaitingModal(),e.closeWaitingModal();var a={accessorId:t.blockParameters.accessorId,reservationId:t.blockParameters.reservationId,targetIdentifier:t.blockParameters.targetIdentifier};e.postData("Rbs/Storeshipping/CancelReservation/",a).then(function(){window.location.reload(!0)},function(e){console.error("CancelReservation",e)})}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("cleverageLyraPayment",["$window","$location","RbsChange.AjaxAPI","$sce","$timeout","$interval",function(e,t,a,o,r,n){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/cleverage-lyra-payment.twig",link:function(t,i){if(t.paymentData=t.connectorInfo.transaction,t.paymentData.lyraVadsPaymentUrl="string"==typeof t.paymentData.lyraVadsPaymentUrl?o.trustAsResourceUrl(t.paymentData.lyraVadsPaymentUrl):"","inlineExtNoLogo"===t.paymentData.integrationMode&&document.getElementById("kr-smart-form").setAttribute("kr-no-card-logo-header",""),"inlineExtNoLogo"!==t.paymentData.integrationMode&&"inlineExtLogo"!==t.paymentData.integrationMode||document.getElementById("kr-smart-form").setAttribute("kr-card-form-expanded",""),t.paymentData.lyraAssets&&null==e.KR_CLIENT_LOADED&&!0!==e.isLyraDirectiveLoaded){!function(){var e=[],a=[];switch(t.paymentData.theme){case"classic":e.push(t.paymentData.lyraAssets+"js/krypton-client/V4.0/ext/classic-reset.min.css"),a.push(t.paymentData.lyraAssets+"js/krypton-client/V4.0/ext/classic.js");break;case"neon":e.push(t.paymentData.lyraAssets+"js/krypton-client/V4.0/ext/neon-reset.min.css"),a.push(t.paymentData.lyraAssets+"js/krypton-client/V4.0/ext/neon.js")}a.forEach(function(e){let t=document.createElement("script");t.setAttribute("src",e);let a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)}),e.forEach(function(e){let t=document.createElement("link");t.setAttribute("href",e),t.setAttribute("rel","stylesheet");let a=document.getElementsByTagName("link")[0];a.parentNode.insertBefore(t,a)})}();let e=t.paymentData.lyraAssets+"js/krypton-client/V4.0/stable/kr-payment-form.min.js",a=document.createElement("script"),o=document.getElementsByTagName("script")[0];a.setAttribute("src",e),a.setAttribute("kr-public-key",t.paymentData.lyraPublicKey),a.setAttribute("kr-post-url-success",t.paymentData.lyraPostUrlSuccess),a.setAttribute("kr-post-url-refused",t.paymentData.failUrl),a.setAttribute("kr-language",t.paymentData.pageLcid),o.parentNode.insertBefore(a,o)}let s;function c(){let e=t.transaction.transactionId;a.openWaitingModal();try{a.postData("Cleverage/Lyra/RemovePaymentInProgressFlag",{transactionId:e}).then(function(a){!0===a.data.dataSets.success&&(console.log("Removed flag for transaction "+e),t.paymentData.paymentInProgress=!1,KR.button.enable()),a.data.dataSets.error&&(console.error("Error while creating the job for transaction "+e),console.error(a.data.dataSets.error))},function(e){console.error("RemovePaymentInProgressFlag",e)})}catch(e){throw console.log("Payment flag removal error",e),e}finally{a.closeWaitingModal()}}async function l(){let o={cardForm:{},smartForm:{}};r(async function(){"undefined"!=typeof KR&&e.KR_CLIENT_LOADED?(console.log("3. In setKrConfig()"),await KR.removeForms().then(async function(){}),console.log("4. Set callbacks"),await KR.smartForm.onClick(function(e){if("beforePaymentStart"===e.action){if(!0===t.paymentData.paymentInProgress)return KR.throwCustomError(t.paymentData.messages.paymentInProgress,e.paymentMethod),!1;{let e=t.transaction.transactionId;a.openWaitingModal(),console.log("Adding the flag to the transaction "+e),a.postData("Cleverage/Lyra/AddPaymentInProgressFlag",{transactionId:e}),a.closeWaitingModal()}return!0}}),await KR.onError(async function(e){"CLIENT_725"===e.errorCode&&await KR.removeForms().then(async function(){await KR.renderElements().then(async function(){})}),"CLIENT_312"!==e.errorCode&&(console.log("Removing payment flag from error"),c())}),await KR.onPopinClosed(function(){console.log("Removing payment modal close"),c()}),"Rbs_Blank"===window.__change.navigationContext.themeName&&$(".list-group-item.ng-scope.active").attr("style","z-index:0;"),console.log("5. Set config object"),!0===t.paymentData.inlineCompact&&(o.smartForm.layout="compact",o.cardForm.layout="compact"),t.paymentData.inlineGrouping&&(o.smartForm.groupingThreshold=t.paymentData.inlineGrouping),t.paymentData.paymentMethods.smartFormData.allowedPaymentMethods&&(o.smartForm.allowedPaymentMethods=t.paymentData.paymentMethods.smartFormData.allowedPaymentMethods),await KR.removeForms().then(async function(){console.log("6. removeForms()"),await KR.setFormConfig(o).then(async function(){console.log("7. setFormConfig()"),console.log(o),await KR.renderElements().then(async function(){console.log("8. renderElements()")})})})):await l()},400)}n(function(){if("cleverage-lyra-payment"!==t.paymentData.directiveName)return;let e={transactionId:t.paymentData.transactionId};a.postData("Cleverage/Lyra/GetTransactionStatusForPaymentStep",e).then(function(e){let o=e.data.dataSets.status,n=e.data.dataSets.brand;"success"!==o?"initiated"!==o&&(a.openWaitingModal("Merci de patienter..."),r(function(){location.reload()},1e3)):"PAYPAL"===n||"PAYPAL_SB"===n?a.openWaitingModal('Votre paiement a bien été pris en compte. Vous pouvez fermer la fenêtre PayPal ou cliquer sur le bouton "Retourner à la boutique" pour revenir sur le site.'):location.assign(t.paymentData.successRedirectUrl)},function(e){console.error("Cleverage/Lyra/GetTransactionStatusForPaymentStep",e),location.reload()})},5e3),angular.isDefined(s)&&n.cancel(s),s=n(function(){(async function(){let e=t.transaction.transactionId;try{return!0===(await a.postData("Cleverage/Lyra/CheckPaymentInProgressFlag",{transactionId:e})).data.dataSets.hasFlag?(t.paymentData.paymentInProgress=!0,!0):(t.paymentData.paymentInProgress=!1,!1)}catch(e){throw console.log("Payment flag check error",e),e}})().then(e=>{e&&(console.log("Payment in progress flag found."),t.paymentData.paymentInProgress=!0)}).catch(e=>{console.error("An error occurred while checking the flag:",e)})},3e3),t.$on("$destroy",function(){angular.isDefined(s)&&(n.cancel(s),console.log("Interval successfully cancelled on destroy."))}),t.formClickCallback=function(e){if(!0===t.paymentData.paymentInProgress)return t.paymentInProgressError=t.paymentData.messages.paymentInProgress,e.preventDefault(),!1;{let e=t.transaction.transactionId;a.openWaitingModal(),console.log("Adding the flag to the transaction "+e),a.postData("Cleverage/Lyra/AddPaymentInProgressFlag",{transactionId:e}),a.closeWaitingModal()}return!0},e.connectorWatched=!1,t.$parent.$parent.$watch("selectedConnector",function(a,o){if("cleverage-lyra-payment"===a.transaction.directiveName&&t.paymentData.connectorId===a.common.id){if(!0===e.connectorWatched)return void console.log("alreadyWatched");console.log("1. Select connector: "+t.connectorInfo.common.title),console.log("2. call setKrConfig() after connector change"),l().then(e=>console.log("Config done after connector change")),e.connectorWatched=!0}}),t.selectPaymentMethod=function(o){console.debug("Selected paymentMethod code "+o),t.selectedPm=o,e.KR&&e.KR.onError(function(e){console.error(e.errorMessage),a.openWaitingModal(),location.href=t.paymentData.failUrl,a.closeWaitingModal()})},e.isLyraDirectiveLoaded=!0}}}])}(),(()=>{"use strict";angular.module("RbsChangeApp").controller("CleverageLyraManageTokenizedCardsController",["$scope","RbsChange.AjaxAPI","$element","RbsChange.ModalStack","$compile","$window",(e,t,a,o,r,n)=>{if(e.smartformData=e.$parent.blockData.smartformData,"success"===window.location.hash.substring(1)&&document.getElementById("success-container").removeAttribute("style"),e.smartformData.lyraAssets&&null==n.KR_CLIENT_LOADED){!function(){var t=[],a=[];switch(e.smartformData.theme){case"classic":t.push(e.smartformData.lyraAssets+"js/krypton-client/V4.0/ext/classic-reset.min.css"),a.push(e.smartformData.lyraAssets+"js/krypton-client/V4.0/ext/classic.js");break;case"neon":t.push(e.smartformData.lyraAssets+"js/krypton-client/V4.0/ext/neon-reset.min.css"),a.push(e.smartformData.lyraAssets+"js/krypton-client/V4.0/ext/neon.js")}
1a.forEach(function(e){let t=document.createElement("script");t.setAttribute("src",e);let a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)}),t.forEach(function(e){let t=document.createElement("link");t.setAttribute("href",e),t.setAttribute("rel","stylesheet");let a=document.getElementsByTagName("link")[0];a.parentNode.insertBefore(t,a)})}();let t=e.smartformData.lyraAssets+"js/krypton-client/V4.0/stable/kr-payment-form.min.js",a=document.createElement("script"),o=document.getElementsByTagName("script")[0];a.setAttribute("src",t),a.setAttribute("kr-public-key",e.smartformData.lyraPublicKey),a.setAttribute("kr-post-url-success",e.smartformData.lyraPostUrlSuccess),a.setAttribute("kr-post-url-refused",e.smartformData.failUrl),a.setAttribute("kr-language",e.smartformData.pageLcid),o.parentNode.insertBefore(a,o)}}])})(),function(){"use strict";angular.module("RbsChangeApp").directive("cleverageAlmaPaymentConnector",["$window","$location","$rootScope","$timeout","RbsChange.AjaxAPI",function(e,t,a,o,r){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/cleverage-alma-payment-connector.twig",link:function(a,o){a.paymentData=a.connectorInfo.transaction,a.selectedFeePlan=null;const n=a.paymentData.actionUrl;a.setSelectedFeePlan=function(e){a.selectedFeePlan=e},a.submit=async function(o){if(!a.processing){a.submitError=null,a.processData.paymentError=[],a.processing=!0,r.openWaitingModal();const o={connectorId:a.connectorInfo.common.id,transactionId:a.transaction.transactionId,feePlanCode:a.AlmaForm.feePlanCode};let i;try{i=await async function(e){const t=(await r.postData(n,e)).data.dataSets;return void 0!==t?t.redirectURL:null}(o)}catch(e){return console.error(e),a.submitError=e,a.processData.paymentError=[e.data.message??"Error"],void r.closeWaitingModal()}finally{a.processing=!1}i||(t.search("failedReason",null),i=t.absUrl()),e.location.assign(i)}}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("cleverageAvisverifiesProductReviews",["RbsChange.AjaxAPI","$compile",function(e,t){return{restrict:"A",link:function(a,o){a.defaultLimit=a.blockData.defaultLimit,a.contextData={},a.contextData.parameters={limit:a.defaultLimit,productId:a.blockData.productId},a.reviewsNumber=a.blockData.reviewsNumber,angular.isDefined(a.blockData.defaultSort)&&(a.contextData.parameters.sortSelect=a.blockData.defaultSort),angular.isDefined(a.blockData.merchantName)&&(a.contextData.parameters.merchantName=a.blockData.merchantName),a.init=-1,a.reloadReviews=function(){params={query:"reviews",limit:a.limit,offset:a.limit*a.pageSelect-a.limit},e.postData("Cleverage/Avisverifies/ProductReviews",params).then(function(e){angular.isDefined(e.data)&&angular.isDefined(e.data.dataSets)},function(e){console.error("Error on collect reviews !",e)})},a.reload=function(){e.openWaitingModal();var r=e.reloadBlock(a.blockName,a.blockId,a.contextData.parameters,a.blockNavigationContext);return r.then(function(r){angular.isDefined(r.data)&&angular.isDefined(r.data.dataSets)&&angular.isDefined(r.data.dataSets.html)&&function(e,r){if(""===e)return;var n="product-reviews-list",i=jQuery(jQuery.parseHTML(e)).filter("[data-cleverage-avisverifies-product-reviews]").html(),s=jQuery(jQuery.parseHTML(i)).filter(".product-reviews-list").html(),c=jQuery(jQuery.parseHTML(s)).filter(".items").html();angular.isDefined(c)&&(r?o.find(".product-reviews-list").html('<div class="'+n+'">'+c+"</div>"):o.find(".product-reviews-list").append('<div class="'+n+'">'+c+"</div>"),t(o.find("."+n))(a))}(r.data.dataSets.html,!0),e.closeWaitingModal()},function(t){console.error("[cleverageAvisverifiesProductReviews] error reloading block:",t),e.closeWaitingModal()}),r},a.viewMore=function(){a.contextData.parameters.limit+=a.defaultLimit,a.reload()},a.$watch("contextData.parameters.sortSelect",function(){a.init>0?a.reload():a.init++}),a.$watch("contextData.parameters.productId",function(){a.init>0?a.reload():a.init++}),a.$on("RbsCatalogProductDetail.updateAxesValues",function(e,t){let o=a.blockData.attachmentOfReviews,r=t.variantId;r&&"root_products"!==o&&(a.contextData.parameters.productId=r)})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("cleverageAvisverifiesMerchantReviews",["RbsChange.AjaxAPI","$compile",function(e,t){return{restrict:"A",link:function(a,o){a.defaultLimit=a.blockData.defaultLimit,a.contextData={},a.contextData.parameters={limit:a.defaultLimit,pageSelect:0},angular.isDefined(a.blockData.defaultSort)&&(a.contextData.parameters.sortSelect=a.blockData.defaultSort),angular.isDefined(a.blockData.defaultSortDirection)&&(a.contextData.parameters.sortDirection=a.blockData.defaultSortDirection),angular.isDefined(a.blockData.merchantName)&&(a.contextData.parameters.merchantName=a.blockData.merchantName),a.init=0,a.reload=function(){e.openWaitingModal();var r=e.reloadBlock(a.blockName,a.blockId,a.contextData.parameters,a.blockNavigationContext);return r.then(function(r){angular.isDefined(r.data)&&angular.isDefined(r.data.dataSets)&&angular.isDefined(r.data.dataSets.html)&&function(e,r){if(""===e)return;var n="merchant-reviews-list",i=jQuery(jQuery.parseHTML(e)).filter("[data-cleverage-avisverifies-merchant-reviews]").html(),s=jQuery(jQuery.parseHTML(i)).filter(".merchant-reviews-list").html(),c=jQuery(jQuery.parseHTML(s)).filter(".items").html();angular.isDefined(c)&&(r?o.find(".merchant-reviews-list").html('<div class="'+n+'">'+c+"</div>"):o.find(".merchant-reviews-list").append('<div class="'+n+'">'+c+"</div>"),t(o.find("."+n))(a))}(r.data.dataSets.html,!0),e.closeWaitingModal()},function(t){console.error("[cleverageAvisverifiesMerchantReviews] error reloading block:",t),e.closeWaitingModal()}),r},a.previousPage=function(){a.contextData.parameters.pageSelect--,a.reload()},a.nextPage=function(){a.contextData.parameters.pageSelect++,a.reload()},a.$watch("contextData.parameters.sortSelect",function(){a.init>1?a.reload():a.init++}
1),a.$watch("contextData.parameters.sortDirection",function(){a.init>1?a.reload():a.init++})}}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.config(["$provide",function(e){e.decorator("rbsCommerceCartDeliveriesDirective",["$rootScope","$compile","RbsChange.AjaxAPI","$window","RbsChange.ModalStack","$delegate",function(e,t,a,o,r,n){let i=n[0],s=i.link;return i.compile=function(){return function(e,t,o,r){s.apply(this,arguments),e.$watch("cartData",function(t){t&&(e.alcoholicStatement=e.cartData.customData.alcoholicStatement)}),e.$watch("alcoholicStatement",function(t,o){if(t!==o&&angular.isDefined(t)){a.openWaitingModal();let o=a.putData("Project/Cart/CustomData",{alcoholicStatement:t},{detailed:!0,URLFormats:"canonical",visualFormats:e.parameters.imageFormats});return o.then(function(e){let t=e.data.dataSets;t&&!angular.isArray(t)&&t.deliveries.length?(r.setCartData(t),a.closeWaitingModal()):location.reload()},function(e){console.error("updateCartCustomData",e),a.closeWaitingModal()}),o}})}},n}])}]),e.config(["$provide",function(e){e.decorator("rbsCommerceIdentificationStepDirective",["$rootScope","$compile","RbsChange.AjaxAPI","$window","RbsChange.ModalStack","$delegate",function(e,t,a,o,r,n){let i=n[0],s=i.link;return i.compile=function(){return function(t,o,r,n){s.apply(this,arguments),t.changeUser=function(){t.processData.errors=[],a.getData("Rbs/User/Logout",{keepCart:!0}).then(function(){e.$broadcast("rbsUserConnected",{accessorId:null,accessorName:null}),t.processData.userId=0,t.processData.login=null,t.processData.email=null,t.processData.confirmed=!1,t.processEngine.updateObjectData({updateContext:{acceptTermsAndConditions:!0}}),window.location.assign(r.redirectUrl)},function(e){t.processData.errors=[e.data.message],console.log("changeUser error",e)})}}},n}])}]),e.directive("projectCartDistanceToFreeDelivery",["$rootScope",e=>({restrict:"A",templateUrl:"/project-cart-distance-to-free-delivery.twig",link:t=>{if(!t.blockParameters.distanceToFreeDeliveryAmount)return;t.computed=!1,t.distance=0,t.distanceAmount=0,t.distanceToFreeDeliveryAmount=Number(t.blockParameters.distanceToFreeDeliveryAmount)??0;const a=()=>{if(!t.cartData.amounts)return;const e=angular.copy(t.cartData);let a=e.amounts.linesAmountWithTaxes;angular.forEach(e.deliveries,e=>{angular.forEach(e.modifiers,e=>{if(e.options.isForShipping)return;const t=e.amountWithTaxes;t&&(a+=t)})});const o=t.distanceToFreeDeliveryAmount-a;o<=0?(t.distance=100,t.distanceAmount=0):(t.distance=100*a/t.distanceToFreeDeliveryAmount,t.distanceAmount=o),t.computed=!0};angular.isUndefined(t.cartData)||a(),e.$on("rbsRefreshCart",()=>{t.computed=!1,a()})}})]),e.directive("projectLddLineOptions",()=>({restrict:"A",link:e=>{const t=e.populateAddProductData;e.populateAddProductData=a=>{const o=e.productData.typology?.attributes;o?.unic_product_shipping_ldd?.value&&angular.forEach(a.lines,e=>{"shippingCategories"===e.category&&(e.options={_lddFeeValue:o?.unic_product_shipping_ldd_fee?.value,_lddSupplierLabel:o?.unic_product_supplier_label?.value})}),t&&t(a)}}})),e.directive("projectCartLddDetails",()=>({restrict:"A",templateUrl:"/project-cart-ldd-details.twig",link:e=>{e.parameters.showAllAmounts&&(e.lddDetails=[],e.cartData.deliveries.forEach(t=>{t.modifiers&&t.modifiers.length&&t.modifiers.forEach(t=>{"project-cart-fee-shipping-ldd"===t.options.applicationType&&(e.lddDetails=e.lddDetails.concat(t.options.lddDetails))})}))}})),e.directive("rbsCommerceCartDeliveriesExtend",function(){return{restrict:"A",require:"rbsCommerceCartDeliveries",link:function(e,t,a,o){o.redrawLines=function(e,t,a){let o=t.find('[data-role="cart-lines"]'),r=angular.isFunction(this.getLineDirectiveName)?this.getLineDirectiveName:function(e){return e.options&&e.options.directiveName?e.options.directiveName:"rbs-commerce-cart-line-default"},n=[];angular.forEach(e,function(e,t){n.push('<div class="cartDelivery-line" data-line="delivery.lines['+t+']" data-delivery="delivery" data-'+r(e)+'=""></div>')}),this.replaceChildren(o,a,n.join(""))}}}}),e.directive("rbsCommerceProcessDeliveryLinesOverride",function(){return{restrict:"A",templateUrl:"/rbs-commerce-process-delivery-lines.twig",scope:{delivery:"=",getLineDirectiveName:"=",processEngine:"=",giftCapabilities:"=",isLocked:"="},link:function(e,t){e.showPrices=e.processEngine.showPrices(),e.currencyCode=e.processEngine.getCurrencyCode(),e.$watch("delivery",function(a){a&&(!function(e,t,a,o){e.linesProducts=0,e.taxesAmount=0;var r=t.find('[data-role="delivery-lines"]'),n=angular.isFunction(e.getLineDirectiveName)?e.getLineDirectiveName:function(){return a},i=e.delivery.lines,s=[];angular.forEach(i,function(t,a){o&&t.options.keyLocked||(s.push('<div class="cartDelivery-line" data-line="delivery.lines['+a+']" data-delivery="delivery" data-process-engine="processEngine" data-shipping-mode-info="shippingModeInfo" data-gift-capabilities="giftCapabilities" '+n(t)+'=""></div>'),e.linesProducts+=t.quantity)}),angular.forEach(e.delivery.totalTaxes,function(t){e.taxesAmount+=t.amount}),e.processEngine.replaceChildren(r,e,s.join(""))}(e,t,"data-rbs-commerce-process-line-default",!1),angular.forEach(e.delivery.lines,function(t,a){if(t.options.discountData){t.baseAmountWithTaxes||t.baseAmountWithoutTaxes||(e.delivery.lines[a].baseAmountWithTaxes=t.amountWithTaxes,e.delivery.lines[a].baseAmountWithoutTaxes=t.amountWithoutTaxes);let o=0,r=0;angular.forEach(t.options.discountData,function(e){o+=Math.abs(e.amountWithTaxes),r+=Math.abs(e.amountWithoutTaxes)}
1),e.delivery.lines[a].amountWithTaxes=t.unitAmountWithTaxes*t.quantity-o,e.delivery.lines[a].amountWithoutTaxes=t.unitAmountWithoutTaxes*t.quantity-r}}))}),e.parameters=e.processEngine.parameters()}}}),e.directive("projectCommonsCartDiscountedPrices",()=>({restrict:"A",link:e=>{let t=0;e.delivery.modifiers.forEach(a=>{if(a.options.amountByLine&&void 0!==a.options.amountByLine[e.line.key]){let o=a.options.amountByLine[e.line.key];o&&a.options.instructionClass&&a.options.instructionClass.includes("LinePriceDiscount")&&(t-=o)}}),e.line.discountedPriceWithTaxes=(e.line.baseAmountWithTaxes??e.line.amountWithTaxes)-t,e.line.discountedPriceWithoutTaxes=(e.line.baseAmountWithoutTaxes??e.line.amountWithoutTaxes)-t}})),e.directive("projectCustomCoupons",[function(){return{restrict:"A",link:function(e){e.$watch("cartData",function(e){e.coupons.forEach(t=>{t.code in e.customData.suggestedCodes?t.options.isSuggested=!0:t.options.isSuggested=!1})})}}}]),e.directive("projectCustomFidCoupons",[function(){return{restrict:"A",templateUrl:"/rbs-commerce-suggest-coupons.twig",link:function(e){let t;t=e.cartData.customData.couponErrors??[],e.couponUnknown=null,e.$on("rbsRefreshCart",()=>{e.fidCoupons=angular.copy(e.cartData.suggestedCoupons),t=e.cartData.customData.couponErrors??[],e.couponUnknown=e.cartData.customData.couponUnknown,console.log(e.cartData.customData.couponUnknown)}),e.fidCoupons=angular.copy(e.cartData.suggestedCoupons),e.$watch("cartData.coupons",function(a){e.fidCoupons.forEach(e=>{e.isInCart=!1,e.error=!1,a.forEach(function(a,o){a.code===e.code&&(e.isInCart=!0,e.index=o,t.includes(a.code)&&(e.error=!0))})})})}}}]),e.directive("projectCtaCartFidelity",["RbsChange.ModalStack",function(e){return{restrict:"A",link:t=>{t.fidelityProductQuickBuy=()=>{e.open({templateUrl:"/rbs-catalog-quick-buy-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-quick-buy",windowClass:"modal-rbs-catalog-quick-buy",size:"lg",controller:"RbsCatalogQuickBuyModalCtrl",resolve:{quickBuyURL:function(){return t.blockData.fidelityProduct.common.quickBuyURL}}})}}}}]),e.directive("projectCartRecap",[function(){return{restrict:"A",link:e=>{e.$watch("cartData.deliveries",function(){let t=e.cartData.deliveries,a=!1,o=0,r=0,n=0;t.forEach(function(t){"email"===t.shippingCondition&&(e.fidCardInCart=!1,e.cartData.hasGiftCard=!1,e.cartData.hasFidCard=!1,t.lines.forEach(function(t){t.product.typology.attributes.unic_product_is_gift_card&&(e.cartData.hasGiftCard=!0),t.product.typology.attributes.unic_product_is_fid_card&&(e.fidCardInCart=!0,e.cartData.hasFidCard=!0)})),t.lines.forEach(e=>{"number"==typeof e.options.ecoTax&&(n+=e.options.ecoTax*e.quantity)}),"atHome"==t.category&&(a=!0),t.modifiers.forEach(function(e){"discount"==e.options.type&&("project-cart-external-bafid-shipping-fee-discount"===e.options.applicationType&&(o+=e.amountWithTaxes),e.options.isForShipping?r+=e.amountWithTaxes:o+=e.amountWithTaxes),"fee"==e.options.type&&(r+=e.amountWithTaxes)})}),e.cartData.atHomeTrue=a,e.cartData.advantages=o,e.cartData.deliveryFees=r,e.cartData.totalEcoTax=n})}}}]),e.directive("projectFidConfirmation",[function(){return{restrict:"A",link:e=>{console.log(e),e.blockData.cart.deliveries.forEach(t=>{"EMAIL"!==t.options.code||(e.blockData.cart.customData.isFid=!0)})}}}]),e.directive("projectPaymentLabels",["$window","$timeout","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",scope:{paypalLabel:"@"},link:o=>{function r(){t(async function(){"undefined"==typeof KR?r():!0!==e.KrConfigured&&(await KR.onError(async function(e){if("PSP_108"===e.errorCode){let e={customer:o.$parent.paymentData.payload.customer,transactionId:o.$parent.paymentData.payload.orderId};a.postData("Project/Cart/ClearCacheToken",e).then(function(e){location.reload()},function(e){console.error("Project/Cart/ClearCacheToken",e),location.reload()})}}),KR.setFormConfig({smartForm:{paymentMethods:{PAYPAL_SB:{label:o.paypalLabel+" (sandbox)"},PAYPAL:{label:o.paypalLabel}}}}),e.KrConfigured=!0)},1e3)}o.$watch("connectorInfo",function(t){e.KrConfigured=!1,r()})}}}]),e.directive("projectCartPayment",["$timeout","$interval","RbsChange.AjaxAPI",function(e,t,a){return{restrict:"A",link:e=>{}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("projectDpdrelayModeEditor",["RbsChange.AjaxAPI","RbsChange.ModalStack","RbsGeo.GoogleMapService",function(e,t,a){return{restrict:"A",templateUrl:"/project-dpdrelay-shipping.twig",scope:{shippingMode:"=",shippingModeInfo:"=",userAddresses:"=",processEngine:"=",giftCapabilities:"="},link:function(o){function r(e){if(e){var t=angular.copy(o.relay);delete t.address;var a={id:o.shippingModeInfo.common.id,title:o.shippingModeInfo.common.title,storeId:null,address:o.relay.address,options:{relayCode:t.code,relay:t,search:o.search}};return angular.isFunction(o.shippingMode.getTransportableOptions)&&angular.forEach(o.shippingMode.getTransportableOptions(),function(e,t){a.options[t]=e}),o.shippingMode.options.message&&(a.options.message=o.shippingMode.options.message),o.shippingMode.options.containsGift&&(a.options.containsGift=o.shippingMode.options.containsGift,o.shippingMode.options.giftAddMessage&&(a.options.giftAddMessage=o.shippingMode.options.giftAddMessage),o.shippingMode.options.giftMessage&&(a.options.giftMessage=o.shippingMode.options.giftMessage),o.shippingMode.options.giftAddWra
1p&&(a.options.giftAddWrap=o.shippingMode.options.giftAddWrap)),a}return o.shippingModeInfo.common.id==o.shippingMode.id&&o.relay&&!o.shippingMode.options.invalidMessage}o.useGoogleMap=a.valid(),o.edition=null,o.relay=!1,o.shippingMode.options.relay=null,o.shippingMode.options.relayCode=null,o.noresult=!1,o.error=null,o.search={zipCode:null,city:null,country:null},o.relayResult=null,o.searchGoogleAddress=function(){var e=o.autocomplete.getPlace();if(!e.address_components)return o.noresult=!0,o.relayResult=!1,void o.$apply();o.search={zipCode:null,city:null,country:null},angular.forEach(e.address_components,function(e){angular.forEach(e.types,function(t){"postal_code"===t?o.search.zipCode=e.short_name:"locality"===t||"postal_town"===t?o.search.city=e.short_name:"country"===t&&(o.search.country=e.short_name)})});var t=document.createEvent("Event");t.initEvent("projectDpdrelaySearchPoints",!0,!1),t.place=e,t.searchAddress=o.search,window.document.dispatchEvent(t),o.search=t.searchAddress,o.search.zipCode&&o.search.city?(o.search.address||angular.forEach(e.types,function(t){"street_address"!==t&&"route"!==t||(o.search.address=e.name)}),o.launchSearch()):(o.noresult=!0,o.relayResult=!1,o.$apply())},o.launchSearch=function(){o.loading=!0,o.error=null,e.openWaitingModal(),e.getData("Rbs/Geo/Points/",{address:o.search,options:{modeId:o.shippingMode.id}}).then(function(t){o.applyResult(t.data.items),o.noresult=!1,o.loading=!1,o.error=null,e.closeWaitingModal()},function(t){o.applyResult([]),o.noresult=!0,o.loading=!1,o.error=t.data.message,e.closeWaitingModal()})},o.applyResult=function(e){o.relayResult=[],o.shippingMode.valid=r,o.relay=null;var t=o.shippingMode.options?o.shippingMode.options.relayCode:null;angular.forEach(e,function(e){e.modeId=o.shippingModeInfo.common.id,e.code==t&&(o.relay=e,o.shippingMode.options.relay=e,null===o.edition&&(o.edition=!1)),o.relayResult.push(e)})},o.selectRelay=function(e){o.edition=!1,o.setDeliveryInformation(e)},o.setDeliveryInformation=function(e){o.shippingMode.valid=r,e?(o.relay=e,o.shippingMode.options.relay=o.relay,o.shippingMode.options.relayCode=o.relay.code):(o.relay=null,delete o.shippingMode.options.relay,delete o.shippingMode.options.relayCode)},o.openRelayPopup=function(e){var a={templateUrl:"/project-dpdrelay-relay-popin.twig",backdropClass:"modal-backdrop-project-dpdrelay-relay",windowClass:"modal-project-dpdrelay-relay",size:"lg",controller:"projectDpdrelayRelayModalCtrl",resolve:{relay:function(){return e}}};t.open(a)},o.$watch("shippingMode.id",function(e){e==o.shippingModeInfo.common.id&&(o.shippingMode.valid=r,o.shippingMode.atHomeAddress=null)}),o.$watch("shippingModeInfo",function(e){if(e){e.countries&&e.countries.length>0&&(o.search.country=e.countries[0].code);var t=!1;if(o.shippingMode.id==e.common.id){o.shippingMode.valid=r;var n=o.shippingMode.options;n&&(n.search&&n.search.zipCode&&n.search.city&&(o.search=n.search,t=!0),n.relayCode&&n.relay&&(o.relay=n.relay,t=!1))}o.useGoogleMap&&a.maps().then(function(e){o.autocomplete=new e.places.Autocomplete(document.getElementById("dpdrelay-shipping-relay-map-auto-complete-"+o.shippingMode.deliveryIndex),{types:["address"],componentRestrictions:{country:["fr"]}}),e.event.addListener(o.autocomplete,"place_changed",function(){o.searchGoogleAddress()})}),t?o.launchSearch():o.relay||(o.edition=!0)}})}}}]),e.directive("projectDpdrelayModeSummary",["RbsChange.ModalStack",function(e){return{restrict:"A",templateUrl:"/project-dpdrelay-shipping-readonly.twig",scope:{shippingMode:"="},link:function(t){t.relay=t.shippingMode.options.relay,t.relay.address=t.shippingMode.address,t.openRelayPopup=function(t){var a={templateUrl:"/project-dpdrelay-relay-popin.twig",backdropClass:"modal-backdrop-project-dpdrelay-relay",windowClass:"modal-project-dpdrelay-relay",size:"lg",controller:"projectDpdrelayRelayModalCtrl",resolve:{relay:function(){return t}}};e.open(a)}}}}]),e.controller("projectDpdrelayRelayModalCtrl",["$timeout","RbsChange.ModalStack","$scope","$uibModalInstance","relay","RbsGeo.GoogleMapService","RbsGeo.LeafletMapService",function(e,t,a,o,r,n,i){var s={latitude:r.latitude,longitude:r.longitude};function c(){var e,t,o,c,l,d,u="project-dpdrelay-map-relay-"+r.code;
1n.valid()?n.maps().then(function(n){e=new n.LatLng(s.latitude,s.longitude),t={center:e,zoom:15},a.map=new n.Map(document.getElementById(u),t),o={position:e,map:a.map},r.options&&r.options.marker&&r.options.marker.img&&(c=r.options.marker,l=c.size?c.size[0]:31,d=c.size?c.size[1]:34,o.icon={url:c.img,size:new n.Size(l,d),origin:new n.Point(0,0),anchor:new n.Point(l/2,d/2)}),a.marker=new n.Marker(o)}):i.valid()?i.maps().then(function(n){o={},r.options&&r.options.marker&&r.options.marker.img&&(c=r.options.marker,l=c.size?c.size[0]:31,d=c.size?c.size[1]:34,o.icon=n.icon({iconUrl:c.img,iconSize:[l,d],iconAnchor:[l/2,d/2]})),t={center:e={lat:s.latitude,lng:s.longitude},zoom:15},a.map=n.map(u,t);var p=new n.TileLayer(i.defaultTileLayerName(),{attribution:i.getAttribution()});a.map.addLayer(p),a.marker=n.marker(e,o).addTo(a.map)}):console.warn("No valid map configuration.")}function l(){t.showPrevious()}a.loadMap=!1,a.map=null,a.relay=r,a.showMap=function(){return!a.loadMap&&s&&(a.loadMap=!0,e(c,750)),!0},a.closed=function(e){return!(e.amBegin||e.amEnd||e.pmBegin||e.pmEnd)},o.result.then(l,l),a.cancel=function(){o.dismiss("cancel")}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");function t(e){"production"!==window.__change.application.env&&console.debug(e)}function a(e){t("pushing "+e.event+" event"),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}e.directive("gtmScript",[function(){return{restrict:"A",link:function(e,t,o){!function(e,t,a,o,r){e[o]=e[o]||[],e[o].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var n=t.getElementsByTagName("meta")[0],i=t.createElement("script");i.async=!0,i.src="//www.googletagmanager.com/gtm.js?id="+r,n.parentNode.insertBefore(i,n)}(window,document,0,"dataLayer",o.gtmScript),a({event:"dataLayerOK",environnement:"production"===window.__change.application.env?"prod":"preprod",full_url:window.location.href})}}}]),e.directive("gtmPushEcomEvents",[function(){return{restrict:"A",link:function(e,o,r){$.each(window.__change.gagtm,function(o,r){if("purchase"===o){if(localStorage.setItem("gagtmStorage","{}"),localStorage.getItem("purchase_"+r.transactionId))return t("Purchase event already pushed for transaction "+r.transactionId),!1;localStorage.setItem("purchase_"+r.transactionId,"true")}"begin_checkout"===o?(e.$parent.$watch("selectedConnector",function(e){return e&&(o="add_payment_info",r.currency=__change.cartData.common.currencyCode,r.value=__change.cartData.common.totalAmount,r.coupon=void 0,__change.cartData.coupons.length>0&&(r.coupon=__change.cartData.coupons.join("|")),r.payment_type=e.common.title,a({event:o,ecommerce:r})),!1}),e.$watch("currentStep",function(n){if("shipping"===n)return r.currency=e.cartData.common.currencyCode,r.value=e.cartData.common.totalAmount,r.coupon=void 0,e.cartData.coupons.length>0&&(r.coupon=e.cartData.coupons.join("|")),a({event:o,ecommerce:r}),!1;if("payment"===n){o="add_shipping_info";var i=[];return angular.forEach(e.cartData.deliveries,function(e){t(e),i.push(e.options.label)}),r.shipping_tier=i.join("|"),a({event:o,ecommerce:r}),!1}return!1})):a({event:o,ecommerce:r})})}}}]),e.directive("gtmCartLine",["$rootScope",function(e){return{restrict:"A",link:function(e){e.gtmUpdateQuantity=function(e,t,o){$.each(window.__change.gagtm,function(r,n){"view_cart"===r&&$.each(n.items,function(r,n){if(n.item_id===o)if(delete n.currency,delete n.value,e>t){n.quantity=e-t,a({event:"add_to_cart",ecommerce:{items:[n]}})}else{n.quantity=t-e,a({event:"remove_from_cart",ecommerce:{items:[n]}})}})})}}}}]),e.directive("gtmAddedToCart",["$rootScope",function(e){return{restrict:"A",link:function(e,o,r){$.each(window.__change.gagtm,function(o,n){if("view_item"===o){if(void 0!==e.$parent.$parent.$parent.productData.view_item){var i=e.$parent.$parent.$parent.productData.view_item;t("Adding to cart with variant data")}else{i=n;t("Adding to cart with root product data")}let o=r.gtmAddedToCart;if(i.items[0].item_id===o){i.items[0].quantity=e.cartBox.quantity,delete i.currency,delete i.value,a({event:"add_to_cart",ecommerce:i});let t=JSON.parse(localStorage.getItem("gagtmStorage"))??{};t[o]=i,localStorage.setItem("gagtmStorage",JSON.stringify(t))}}})}}}]),e.directive("gtmRemovedFromCart",["$rootScope",function(e){return{restrict:"A",link:function(e){e.gtmRemoveFromCart=function(t,o){t||o||(t=e.line.codeSKU,o=e.line.quantity);let r=JSON.parse(localStorage.getItem("gagtmStorage"))??{},n=r[t];n.items[0].quantity=o,a({event:"remove_from_cart",ecommerce:n}),delete r[t],localStorage.setItem("gagtmStorage",JSON.stringify(r))}}}}]),e.directive("gtmPageEvent",["$rootScope",function(e){return{restrict:"A",link:function(e,t,o){void 0!==__change.gagtmEnv&&(a({event:"page_event",ecommerce:__change.gagtmEnv}),e.$broadcast("gtmEnv"))}}}]),e.directive("gtmSubscribeNewsletter",()=>({restrict:"A",link:e=>{const t=()=>{!0!==document.getElementById("OPTIN-EMAIL")?.checked&&!0!==document.getElementById("OPTIN-FID")?.checked||a({event:"newsletter",type:"email"}),!0===document.getElementById("OPTIN-SMS")?.checked&&a({event:"newsletter",type:"sms"})};e.$watch("success",e=>e?t():null),e.$watch("requestAccountCreated",e=>e?t():null)}})),e.directive("gtmMakingContact",["$rootScope",function(e){return{restrict:"A",link:function(e){e.gtmSubmitForm=function(e){let t="name_store",o="object_store",r=document.getElementById(e+"_"+t),n=document.getElementById(e+"_"+o);if(null===r||null===n)return void console.error("gagtm: Incorrect field name");let i=document.getElementById(e+"_"+t).value,s=document.getElementById(e+"_"+o).value;a({event:"contact",magasin:i.substring(0,i.length-4),motif:s})}}}}]),e.directive("gtmCreateAccount",["$rootScope",function(e){return{restrict:"A",link:function(e){e.gtmSubmit=function(t){e.$watch("requestAccountCreated",function(){if(void 0!==e.requestAccountCreated&&!0===e.requestAccountCreated){a({event:"create_account",carte:!0===t?"true":"false"})}})}}}}]),e.directive("gtmAddedToWishlist",["$rootScope",function(e){return{restrict:"A",link:function(e,t,o){e.gtmAddToWishlist=function(){$.each(window.__change.gagtm,function(e,t){"view_item"===e&&a({event:"add_to_wishlist",ecommerce:t})})}}}}]),e.directive("gtmViewItem",["$rootScope",function(e){return{restrict:"A",link:function(e,t,o){$.each(window.__change.gagtm,function(t,o){if("view_item"===t){let t=o;void 0!==e.productData.view_item&&(t=e.productData.view_item);let r=e.blockData.jsonLd.sku??e.productData.jsonLd.sku??"",n=t.items[0].item_category??__change.gagtmEnv.wordingcat??"",i=__change.gagtmEnv.idcat??0;a({event:"view_item",pagetype:"product",idcat:"string"!=typeof i?i.toString():i,wordingcat:n,idp:"string"!=typeof r?r.toString():r,ecommerce:t})}})}}}
1]),e.directive("gtmAppointmentRequest",["$rootScope",function(e){return{restrict:"A",link:function(e){__change.BooxiDatas=[],document.gtag=function(){const t="Select Store",o="Select Service",r="Select Category",n="Booking Complete";let i=arguments[1],s=arguments[2].event_label;switch(i){case t:__change.BooxiDatas[t]=s;break;case r:__change.BooxiDatas[r]=s;break;case o:__change.BooxiDatas[o]=s;break;case n:__change.BooxiDatas[n]=!0}!0===__change.BooxiDatas[n]&&(a({event:"rendez_vous",thematique:__change.BooxiDatas[o]??"",categorie:__change.BooxiDatas[r]??"",magasin:__change.BooxiDatas[t]??e.storeData.common.title??""}),__change.BooxiDatas=[])}}}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.directive("projectProductListStoreLink",["$rootScope",e=>({restrict:"A",link:t=>{e.$on("rbsStorelocatorDefaultStore",(e,a)=>{t.blockParameters.storeId=a.common.id,t.blockParameters.storeName=a.common.title})}})]);e.controller("ProjectProductListModalController",["$scope","$rootScope","$compile","$document","RbsChange.AjaxAPI","parentBlockData",(e,t,a,o,r,n)=>{const i=n.parameters;i.forcedRenderMode="notAsync",i.fullyQualifiedTemplateName="Project_Catalog:storelocator/search-preloaded-facets-modal.twig",i.title="Selectionner mon magasin préféré";const s="Rbs_Storelocator_Search";r.reloadBlock(s,999,i,n.navigationContext).then(function(t){const a=jQuery(jQuery.parseHTML(t.data.dataSets.html));e.blockData=JSON.parse(a.filter("[data-cache]").text()),e.blockParameters=t.data.dataSets.parameters,e.blockParameters.forcedRenderMode=null,e.blockId=999,e.blockName=s,r.replaceElementContent(o.find("[data-content]"),a,e),o.find('[data-ng-controller="RbsStorelocatorGoogleSearch"]').find(".col-xl-10").removeClass("col-xl-10").addClass("col-12 mt-1 mb-md-3")},e=>console.error("[RbsShortStore] error loading block:",e))}]);e.directive("projectProductListModalOpener",["RbsChange.ModalStack",e=>({restrict:"A",controller:["$scope","$element","$attrs",(t,a,o)=>{t.openStorelocatorModal=()=>{e.open({controller:"ProjectProductListModalController",windowClass:"modal-project-catalog-chose-store",ariaLabelledBy:"modal-project-catalog-chose-store-title",templateUrl:"/project-product-list-modal.twig",resolve:{parentBlockData:()=>({parameters:t.blockParameters,data:t.blockData,id:t.blockId,name:t.blockName,navigationContext:t.navigationContext})}})}}]})]),e.config(["$provide",function(t){t.decorator("rbsCatalogProductsListV3Directive",["$delegate","RbsChange.AjaxAPI","$location","$rootScope","$timeout","$compile","$window",function(t,a,o,r,n,i,s){var c=t[0],l=c.link;return c.compile=function(){return function(t,o,c,d){l.apply(this,arguments);var u=t.blockId;t.parameters.blockId=u,t.$watch("resultsCount",function(){t.resultsCount=t.blockData.pagination.count,e.resultsCount=t.resultsCount}),t.facetsAppliedCount=e.facetsAppliedCount,r.$on("RbsElasticsearchUpdateAppliedCount",function(e,a){t.facetsAppliedCount=a.appliedCount||0}),t.triggerFacetsResponsiveModal=function(){var e=document.querySelector(".js-facets-responsive-buttons");e&&e.click()},r.$on("compilePagination",function(e,a){i(a)(t)}),t.reload=function(r){var c="instantSearch"!==r;c&&a.openWaitingModal(),t.contextData.parameters.giftIdeaFilters=s.giftIdeaFilters,t.contextData.parameters.currentQuestionId=s.currentQuestionId,t.contextData.parameters.previousQuestion=s.previousQuestion,t.contextData.parameters.fromPagination=!0;var l=a.reloadBlock(t.blockName,t.blockId,t.contextData.parameters,t.blockNavigationContext);return l.then(function(r){!function(a,r){var s="product-list-"+t.contextData.parameters.pageNumber,c=jQuery(jQuery.parseHTML(a)).filter(".items").html();r?o.find(".product-list").html('<div class="'+s+'">'+c+"</div>"):o.find(".product-list").append('<div class="'+s+'">'+c+"</div>");i(o.find("."+s))(t),n(function(){var a=document.querySelector("[data-product-list-results-count]").getAttribute("data-product-list-results-count");t.blockData.pagination.count=a,e.resultsCount=a},0);var l=jQuery(jQuery.parseHTML(a)).filter(".pagination").html();o.find(".pagination").html(l),i(o.find(".pagination"))(t)}(r.data.dataSets.html,!0),c&&a.closeWaitingModal()},function(e){console.error("[rbsCatalogProductsListV3] error reloading block:",e),c&&a.closeWaitingModal()}),l}}},t}])}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectCatalogFacetsTags",["$rootScope","RbsChange.AjaxAPI","RbsChange.ModalStack","$window",function(e,t,a,o){return{restrict:"A",link:function(a,r,n){var i=r[0];a.facets={},e.$on("RbsElasticsearchFacetFilters",e=>{a.facets=e.targetScope.facets,a.facetTags=[],angular.forEach(a.facets,function(e){"Price"!==e.parameters.configurationType&&angular.forEach(e.values,function(t){if(t.selected){let o={title:t.title,fieldName:e.fieldName,key:t.key,value:t.value};a.facetTags.push(o)}})})}),a.removeFacetTag=function(e,a){t.openWaitingModal();let o=new URL(location.href);o.searchParams.delete("facetFilters["+e+"]["+a+"]"),sessionStorage.setItem("refreshAfterRemovingFacet","true"),location.assign(o.toString())},a.removeAllFacetTag=function(){t.openWaitingModal(),a.facetTags={};let e=new URL(location.href),o=new URLSearchParams;angular.forEach(e.searchParams,function(e,t){t.includes("facetFilters")||o.append(t,e)}),sessionStorage.setItem("refreshAfterRemovingFacet","true"),location.search=o.toString()}
1,a.anchor=function(){i.scrollIntoView(),i.setAttribute("tabindex","-1"),i.focus()},angular.element(o).bind("load",function(){sessionStorage.getItem("refreshAfterRemovingFacet")&&(sessionStorage.removeItem("refreshAfterRemovingFacet"),a.anchor())})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").config(["$provide",function(e){e.decorator("rbsElasticsearchFacetContainerV2Directive",["$delegate","$rootScope","RbsChange.AjaxAPI",function(e,t,a){var o=e[0].controller,r=o[o.length-1];return o[o.length-1]=function(e){r.apply(this,arguments);var o=null;function n(e){return function(){return o||(a.openWaitingModal(),o=t.$on("RbsElasticsearchFacetFilters",function(){o(),o=null,a.closeWaitingModal()})),e.apply(this,arguments)}}this.refresh=n(this.refresh),e.reset=n(e.reset)},e}])}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.controller("ProjectExtendedProductCartBox",["$rootScope","$scope","$element","$timeout","RbsChange.AjaxAPI","RbsChange.ModalStack","RbsChange.ProductService","$controller",function(e,t,a,o,r,n,i,s){angular.extend(this,s("ProductCartBox",{$rootScope:e,$scope:t,$element:a,$timeout:o,AjaxAPI:r,ModalStack:n,ProductService:i})),t.$on("rbsCartBoxStoreSelected",function(e,o){var n=t.parameters;n.storeId=o.common.id,t.currentDisplayedDocumentId&&(n.toDisplayDocumentId=t.currentDisplayedDocumentId),t.currentSelectedAxesValues&&(n.selectedAxesValues=t.currentSelectedAxesValues),(n=angular.copy(n)).consolidatedProductData=t.productData,n.renderPart="cart-box",r.reloadBlock(t.blockName,t.blockId,n,t.blockNavigationContext).then(function(e){var o=jQuery(jQuery.parseHTML(e.data.dataSets.html));r.replaceElementContent(a.find(".add-to-cart-store"),o.find(".add-to-cart-store").html(),t),r.replaceElementContent(a.find(".add-to-cart-shipment"),o.find(".add-to-cart-shipment").html(),t),r.replaceElementContent(a.find(".js-price-unique"),o.find(".js-price-unique").html(),t),r.replaceElementContent(a.find(".js-quantity"),o.find(".js-quantity").html(),t)},function(e){console.error("[ProductCartBox] error reloading block:",e)})}),t.selectStore=function(a){var o=new ProductCartBoxHandler(e,t,r,n,i);t.selectStoreForReservation=a;var s=o,c=t.getStoreAvailabilityModalOption(function(e){return s.onCartBoxSelectStore(e)},a),l=angular.extend({},c,{ariaLabelledBy:"modal-rbs-catalog-show-store-availability-title"});n.open(l)}}]),e.directive("projectCatalogTabsTransformer",["$window","$timeout",function(e,t){return{restrict:"A",link:function(e,t,a){if(e.matchingPanel,e.isMobile,e.isDesktop,e.switchTab=function(t,a){a.focus(),a.setAttribute("tabindex","0"),a.setAttribute("aria-selected","true"),t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1");let o=document.querySelector(a.getAttribute("href")),r=document.querySelector(t.getAttribute("href"));r.hidden=!0,r.classList.remove("is-selected"),o.hidden=!1,o.classList.add("is-selected"),e.matchingPanel=a.getAttribute("href").split("#")[1]},e.changeTabClick=function(t){t.preventDefault();let a=t.currentTarget,o=a.closest('[role="tablist"]').querySelector("[aria-selected=true]");"false"===t.currentTarget.getAttribute("aria-selected")&&e.switchTab(o,a)},e.changeTabKeyDown=function(t){let a=t.currentTarget,o=a.closest('[role="tablist"]').querySelectorAll('[role="tab"]'),r=document.querySelector(a.getAttribute("href")),n=Array.prototype.indexOf.call(o,a),i=37===t.which?n-1:39===t.which?n+1:40===t.which?"down":null;null!==i&&(t.preventDefault(),"down"===i?r.focus():o[i]&&e.switchTab(a,o[i]))},e.toggleAccordion=function(t){t.preventDefault();let a=t.currentTarget.closest("button"),o="true"===a.getAttribute("aria-expanded")||!1,r=document.querySelector("#"+a.getAttribute("aria-controls"));a.setAttribute("aria-expanded",!o),r.hidden=o,r.classList.toggle("is-selected",!o),e.matchingPanel=a.getAttribute("aria-controls")},matchMedia){var o=window.matchMedia("(max-width: 748px)");o.addListener(r),r(o)}function r(a){a.matches?(e.isMobile=!0,e.isDesktop=!1,setTimeout(function(){if(e.$apply(),t[0].querySelectorAll("[aria-controls]").forEach(function(e){e.setAttribute("aria-expanded","fal
1se")}),t[0].querySelectorAll('[role="region"]').forEach(function(e){e.hidden=!0,e.classList.remove("is-selected")}),e.matchingPanel){let a=t[0].querySelector('[aria-controls="'+e.matchingPanel+'"]'),o=document.querySelector("#"+e.matchingPanel);void 0!==a&&null!=a&&(a.setAttribute("aria-expanded","true"),o.hidden=!1,o.classList.add("is-selected"))}},0)):(e.isMobile=!1,e.isDesktop=!0,setTimeout(function(){if(e.$apply(),e.matchingPanel){t[0].querySelectorAll('[role="tabpanel"]').forEach(function(e){e.hidden=!0,e.classList.remove("is-selected")});let a=document.querySelector("#"+e.matchingPanel);void 0!==a&&null!=a&&(a.hidden=!1,a.classList.add("is-selected"))}else{let a=t[0].querySelectorAll('[role="tab"]')[0];if(void 0!==a&&null!=a){a.setAttribute("aria-selected","true"),a.setAttribute("tabindex","0"),e.matchingPanel=a.getAttribute("href").split("#")[1];let t=document.querySelector("#"+e.matchingPanel);void 0!==t&&null!=t&&(t.hidden=!1,t.classList.add("is-selected"))}}},0))}}}}]),e.controller("ProjectProductDetailInformationTabs",["$scope","$element",function(e,t){e.$on("showProductInformation",function(a,o){if(o.name){var r="#"+o.name;if(o.name!=e.matchingPanel)if(!0===e.isDesktop)e.switchTab(t[0].querySelector('a[href="#'+e.matchingPanel+'"]'),t[0].querySelector('a[href="#'+o.name+'"]'));else{let a=t[0].querySelector('[aria-controls="'+o.name+'"]'),r="true"===a.getAttribute("aria-expanded")||!1,n=t[0].querySelector("#"+o.name),i=t[0].querySelector("[aria-expanded=true]");if(i){i.setAttribute("aria-expanded","false"),document.querySelector("#"+i.getAttribute("aria-controls")).hidden=!0}a.setAttribute("aria-expanded",!r),n.hidden=r,n.classList.add("is-selected"),e.matchingPanel=o.name}else if(!0!==e.isDesktop){let e=t[0].querySelector('[aria-controls="'+o.name+'"]').setAttribute("aria-expanded","true"),a=t[0].querySelector("#"+o.name);a.hidden=e,a.classList.add("is-selected")}let a=0;document.querySelector(".preHeader")&&(a+=document.querySelector(".preHeader").offsetHeight),document.getElementById("header")&&(a+=document.getElementById("header").offsetHeight,!0!==e.isDesktop&&(a+=38)),document.getElementById("navigation")&&(a+=document.getElementById("navigation").offsetHeight),0===a&&(a=70),jQuery("html, body").stop().animate({scrollTop:t.find(r).offset().top-a},1e3)}})}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectCatalogIframe",["$window","$uibModal","$timeout","RbsChange.ModalStack","RbsChange.AjaxAPI",function(e,t,a,o,r){return{restrict:"A",link:a=>{a.openBrochure=function(){var e={templateUrl:"brochure-"+a.blockId+".twig",ariaLabelledBy:"modal-project-brochure-title",windowClass:"--fullScreen",scope:a};t.open(e)},window.location.hash&&"brochure"==window.location.hash.substring(1)&&a.openBrochure(),a.openQuickBuyModal=function(e){let t={productSku:e};r.openWaitingModal(),r.postData("Project/Commons/QuickBuyUrl/",t).then(function(e){e.data.dataSets.url&&(a.openDialog(e.data.dataSets.url),r.closeWaitingModal())},function(e){console.error("Project/Commons/QuickBuyUrl",e),r.closeWaitingModal()})},a.openDialog=function(e){var t={templateUrl:"/rbs-catalog-quick-buy-modal-dialog.twig",backdropClass:"modal-backdrop-rbs-catalog-quick-buy",windowClass:"modal-rbs-catalog-quick-buy",size:"lg",ariaLabelledBy:"modal-rbs-catalog-quick-buy-title",controller:"RbsCatalogQuickBuyModalCtrl",resolve:{quickBuyURL:function(){return e}}};o.open(t)},e.addEventListener("message",e=>{if("https://fr.zone-secure.net"!==e.origin)return void console.warn("Origin not allowed :"+e.origin);if(void 0===e.data.action||void 0===e.data.sku)return console.warn("Missing data"),void console.log(e.data);if("openProduct"!==e.data.action)return void console.warn("Action not allowed");console.log(e.data);let t=e.data.sku;a.openQuickBuyModal(t)},!1)}}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.directive("projectOrderClickableTableRow",function(){return{restrict:"A",link:function(e,t){t.preventDefault();let a,o,r=t[0],n=r.querySelector("a");null!==n&&(r.onmousedown=()=>a=+new Date,r.onmouseup=()=>{o=+new Date,o-a<200&&n.click()})}}}),e.directive("projectOrderDownloadInvoice",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t,a){t.downloadTicket=function(t,a){e.openWaitingModal("Veuillez patienter");let o={ticketId:t,codeMag:a};e.postData("Project/Order/PrepareInvoice",o).then(function(t){void 0!==t.data.dataSets.downloadPath&&(e.closeWaitingModal(),location.assign(window.location.origin+t.data.dataSets.downloadPath))},function(e){console.error("Project/Order/PrepareInvoice",e)}),e.closeWaitingModal()}}}}])}(),function(){"use strict";const e=angular.module("RbsChangeApp");e.directive("projectCapencyNormalizeAddressName",[function(){return{restrict:"A",link:(e,t,a)=>{e.normalizeAddressName=function(t,a){"firstName"!==t&&"lastName"!==t||(e.address.fields[t]=a.normalize("NFD").replace(/[^a-zA-Z-' ]/g,"").toUpperCase())}}}}]),e.directive("projectCapencyNormalizeAddressStreet",[function(){return{restrict:"A",link:(e,t,a)=>{e.normalizeAddressStreet=function(t,a){"street"===t&&(e.address.fields[t]=a.normalize("NFD").replaceAll(/[^0-9-a-zA-Z-' ]/g,"").toUpperCase())}}}}]),e.directive("projectCapencyCapAddressAutocomplete",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t){let a;function o(e){switch(t.addressesSuggestions=null,e&&console.log(e),a){case"SearchStreet":if(t.addressFields.street.matchErrorMessage=e,e){document.getElementById(t.addressFields.street.id).focus(),t.addressNotice=!0}else t.streetForm.field.$setValidity("pattern",!0);break;case"CheckStreetNumber":if(t.addressFields.street.matchErrorMessage=e,e){document.getElementById(t.addressFields.street.id).focus()}else t.streetForm.field.$setValidity("pattern",!0);break;case"SearchCP":if(t.addressFields.zipCode.matchErrorMessage=e,e){document.getElementById(t.addressFields.zipCode.id).focus()}else t.zipCodeForm.field.$setValidity("pattern",!0);break;case"SearchLocality":if(t.addressFields.locality.matchErrorMessage=e,e){document.getElementById(t.addressFields.locality.id).focus()}else t.localityForm.field.$setValidity("pattern",!0);break;case"SearchBuilding":if(t.addressFields.destinataireOpt.matchErrorMessage=e,e){document.getElementById(t.addressFields.destinataireOpt.id).focus()}else t.destinataireOptForm.field.$setValidity("pattern",!0)}}function r(r=!1,i=null){3!==t.capAddress.localityFlags?e.postData("Project/Capency/SearchAddress",t.capAddress,{}).then(function(e){const s=e.data.dataSets.addresses;if(e.error)"CheckStreetNumber"!==a&&o(e.data.dataSets.error);else if(s&&s.address){if(s.address=s.address.filter(function(e){return"Forced"!==e.step}),"CheckStreetNumber"===a){t.capAddress=angular.copy(s.address[0]),t.address.fields.locality=t.capAddress.locality,t.address.fields.zipCode=t.capAddress.postalCode,t.capAddress.additionalInfo_7&&(t.address.fields.hamlet=t.capAddress.additionalInfo_7),1===t.capAddress.localityFlags&&t.capAddress.localitySynonym&&(t.address.fields.hamlet=angular.copy(t.capAddress.localitySynonym)),t.disabledFields.destinataireOpt=!1;return void document.getElementById(t.addressFields.destinataireOpt.id).focus()}if(o(null),r){if(s&&s.address){const e=s.address.find(e=>e.locality.toUpperCase()===t.address.fields.locality.toUpperCase());e&&e.localityId&&(t.capAddress.localityId=e.localityId,i&&n(i))}}else t.addressesSuggestions=s}},function(e){e.data.error&&(t.addressesSuggestions=null,"CheckStreetNumber"!==a?o(e.data.message):t.address.fields.hamlet=angular.copy(t.capAddress.additionalInfo_7))}).catch(e=>{"CheckStreetNumber"===a&&(t.address.fields.hamlet=angular.copy(t.capAddress.additionalInfo_7)),t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1}):(t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1)}function n(e){a="SearchStreet",t.capAddress.inputOutput=e,t.capAddress.step=a,r()}function i(){t.address.fields.countryCode&&t.countries.length>0&&(t.capAddressCountryCode=t.countries.filter(e=>e.common.code==t.address.fields.countryCode)[0].common.alpha3code)}function s(){t.capAddressCountryCode&&(null!=t.capAddress?(t.capAddress.countryCode=t.capAddressCountryCode,t.capAddress.languageCode=t.address.fields.countryCode.toLowerCase()):t.capAddress={countryCode:t.capAddressCountryCode,languageCode:t.address.fields.countryCode.toLowerCase()},t.capAddressToString=JSON.stringify(t.capAddress))}t.defaultFields={},t.addressFields={},t.disabledFields={zipCode:!1,locality:!1,hamlet:!0,street:!0,destinataireOpt:!0,destinataireOpt2:!1},t.addressesSuggestions=null,t.previousStreet=null,t.previousCP=null,t.previousLocality=null,t.previousLocalityFlag=null,t.capAddressToString=JSON.stringify(t.capAddress),t.capAddressCountryCode="FRA",t.$wat
1ch("fieldsDef",function(e,a){t.defaultFields={titleCode:e.titleCode,firstName:e.firstName,lastName:e.lastName},t.addressFields={zipCode:e.zipCode,locality:e.locality,hamlet:e.hamlet,street:e.street,destinataireOpt:e.destinataireOpt,destinataireOpt2:e.destinataireOpt2,capAddress:e.capAddress,phoneNumber:e.phoneNumber},function(e){for(const a in e)if(e.hasOwnProperty(a)&&null!==e[a]&&void 0!==e[a]&&""!==e[a])switch(a){case"locality":t.disabledFields.street=!1,t.disabledFields.hamlet=!1;break;case"zipCode":t.disabledFields.locality=!1;break;case"street":t.disabledFields.hamlet=!1,t.disabledFields.destinataireOpt=!1}}(t.address.fields),t.address.fields.capAddress&&(t.capAddress=JSON.parse(t.address.fields.capAddress),t.capAddressToString=t.address.fields.capAddress)}),t.$watch("addressesSuggestions",function(e,o){if(e&&e!==o){let o=angular.copy(e);({SearchLocality:()=>t.searchLocalitySuggestions=o,SearchCP:()=>t.searchCPSuggestions=o,SearchStreet:()=>t.searchStreetSuggestions=o,SearchBuilding:()=>t.searchBuildingSuggestions=o})[a]()}}),t.$watch("capAddress",function(e,a){e&&e!==a&&void 0!==e.locality&&(t.disabledFields.street=!1)}),t.removeSuggestion=function(){t.addressesSuggestions=null,t.searchStreetSuggestions=null,t.searchCPSuggestions=null,t.searchBuildingSuggestions=null},t.searchLocality=function(e){t.addressesSuggestions=null,t.searchStreetSuggestions=null,t.searchCPSuggestions=null,t.searchBuildingSuggestions=null;const o=t.address.fields.zipCode;a="SearchLocality",o&&e?t.capAddress={inputOutput:o+" "+e,step:"SearchLocality"}:o&&!e?t.capAddress={inputOutput:o,step:"SearchLocality"}:!o&&e&&(t.capAddress={inputOutput:e,step:"SearchLocality"}),s(),(o||e)&&r()},t.searchCP=function(e){t.addressesSuggestions=null,t.searchStreetSuggestions=null,t.searchLocalitySuggestions=null,t.searchBuildingSuggestions=null,e&&(a="SearchCP",t.capAddress={inputOutput:e,step:"SearchLocality"},s(),r(),t.disabledFields.locality=!1)},t.selectCP=function(e){s(),t.searchCPSuggestions=null,t.address.fields.street=null,t.address.fields.hamlet=null,t.address.fields.destinataireOpt=null,t.capAddress=angular.copy(e),t.capAddressToString=JSON.stringify(t.capAddress),t.address.fields.capAddress=t.capAddressToString,3===t.capAddress.localityFlags&&(t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1),1===t.capAddress.localityFlags&&t.capAddress.localitySynonym?t.address.fields.hamlet=angular.copy(t.capAddress.localitySynonym):2===t.capAddress.localityFlags?(t.capAddress.additionalInfo_7&&(t.address.fields.hamlet=t.capAddress.additionalInfo_7),t.previousLocalityFlag=t.capAddress.localityFlags,t.previousCP=t.capAddress.postalCode,t.previousLocality=t.capAddress.locality):(t.previousLocalityFlag=null,t.address.fields.hamlet=null,t.address.fields.destinataireOpt=null,t.previousCP=null,t.previousLocality=null),t.address.fields.zipCode=angular.copy(t.capAddress.postalCode),t.address.fields.locality=angular.copy(t.capAddress.locality),t.addressesSuggestions=null;document.getElementById(t.addressFields.street.id).focus()},t.selectLocality=function(e){s(),t.searchLocalitySuggestions=null,t.address.fields.street=null,t.address.fields.hamlet=null,t.address.fields.destinataireOpt=null,t.capAddress=angular.copy(e),t.capAddressToString=JSON.stringify(t.capAddress),t.address.fields.capAddress=t.capAddressToString,3===t.capAddress.localityFlags&&(t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1),1===t.capAddress.localityFlags&&t.capAddress.localitySynonym?t.address.fields.hamlet=angular.copy(t.capAddress.localitySynonym):2===t.capAddress.localityFlags?(t.capAddress.additionalInfo_7&&(t.address.fields.hamlet=t.capAddress.additionalInfo_7),t.previousCP=t.capAddress.postalCode,t.previousLocality=t.capAddress.locality,t.previousLocalityFlag=t.capAddress.localityFlags):(t.address.fields.hamlet=null,t.address.fields.destinataireOpt=null,t.previousCP=null,t.previousLocality=null,t.previousLocalityFlag=null),t.address.fields.zipCode=angular.copy(t.capAddress.postalCode),t.address.fields.locality=angular.copy(t.capAddress.locality),t.addressesSuggestions=null;document.getElementById(t.addressFields.street.id).focus()},t.searchStreet=function(e){s(),t.addressesSuggestions=null,t.searchCPSuggestions=null,t.searchLocalitySuggestions=null,t.searchBuildingSuggestions=null,t.previousStreet&&t.previousStreet===e||(t.previousStreet=e,delete t.capAddress.streetNumber,delete t.capAddress.streetNumberExt,delete t.capAddress.streetNumberPosition,!t.capAddress.postalCode&&t.address.fields.zipCode&&(t.capAddress.postalCode=t.address.fields.zipCode),!t.capAddress.locality&&t.address.fields.locality&&(t.capAddress.locality=t.address.fields.locality),!t.capAddress.localityId&&t.capAddress.locality?(a="SearchLocalityId",t.capAddress={inputOutput:t.address.fields.zipCode,step:"SearchLocality"},s(),e&&r(!0,e)):e&&(s(),n(e)))},t.selectStreet=function(e){t.searchStreetSuggestions=null,t.address.fields.destinataireOpt=null,3===t.capAddress.localityFlags&&(t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1),t.capAddress.additionalInfo_7?(t.capAddress=angular.copy(e),t.previousCP=t.capAddress.postalCode,t.previousLocality=t.capAddress.locality):(t.capAddress=angular.copy(e),t.previousCP=null,t.previousLocality=null),4===t.capAddress.streetFlags||t.capAddress.buildingName?t.address.fields.destinataireOpt=angular.copy(t.capAddress.buildingName):t.address.fields.destinataireOpt=null,t.previousCP&&(t.address.fields.zipCode=t.previousCP,t.capAddress.postalCode=t.previousCP),t.previousLocality&&(t.address.fields.locality=t.previousLocality,t.capAddress.locality=t.previousLocality);let a="";if(a=t.capAddress.streetNumber&&t.capAddress.streetNumberExt?angular.copy(t.capAddress.streetNumber)+angular.copy(t.capAddress.streetNumberExt)+" "+angular.copy(t.capAddress.streetName):t.capAddress.streetNumber?angular.copy(t.capAddress.streetNumber)+" "+angular.copy(t.capAddress.streetName):angular.copy(t.capAddress.streetName),t.addressesSuggestions=null,t.address.fields.street=a,t.capAddressToString=JSON.stringify(t.capAddress),t.address.fields.capAddress=t.capAddressToString,t.capAddress.streetNumber&&!t.previousLocalityFlag)t.checkStreetNumber();else{t.disabledFields.destinataireOpt=!1;document.getElementById(t.addressFields.destinataireOpt.id).focus()}t.addressNotice=!1},t.checkStreetNumber=function(e){a="CheckStreetNumber",t.capAddress.step=a,r()},t.searchBuilding=function(e){t.addressesSuggestions=null,t.searchCPSuggestions=null,t.searchLocalitySuggestions=null,t.searchStreetSuggestions=null,void 0!==t.capAddress.buildingName&&t.capAddress.buildingName===e||(a="SearchBuilding",t.capAddress.inputOutput=e,t.capAddress.step=a,r())},t.selectBuilding=function(e){t.address.fields.destinataireOpt=null,t.searchBuildingSuggestions=null,t.capAddress=angular.copy(e),t.capAddressToString=JSON.stringify(t.capAddress),t.address.fields.capAddress=t.capAddressToString,3===t.capAddress.localityFlags&&(t.disabledFields.street=!1,t.disabledFields.hamlet=!1,t.disabledFields.locality=!1,t.disabledFields.destinataireOpt=!1),t.capAddress.additionalInfo_7&&(t.address.fields.hamlet=t.capAddress.additionalInfo_7),1===t.capAddress.localityFlags&&t.capAddress.localitySynonym&&(t.address.fields.hamlet=angular.copy(t.capAddress.localitySynonym)),t.address.fields.destinataireOpt=angular.copy(t.capAddress.buildingName),t.addressesSuggestions=null;document.getElementById(t.addressFields.destinataireOpt2.id).focus()},t.$watch("address.fields.countryCode",function(e){i()}),t.$watch("countries",function(e){i()}),t.goToSuggestion=function(e){const t=document.querySelectorAll("#addressSuggestions li");let a=-1;if("ArrowDown"===e.key&&(a=(a+1)%t.length,t.length>0)){t[a].focus(),e.preventDefault(),e.stopPropagation()}t.length>0&&t.forEach((e,t)=>{e.addEventListener("focus",()=>{a=t})})},t.goToItem=function(e,t,a,o){const r=document.querySelectorAll(".geoAddress-suggestions li"),n=r.length;if("ArrowDown"===e.key){t>=n-1&&(t=-1);r[t+1].focus()}if("Enter"===e.key||"Tab"===e.key)switch(o){case"zipCode":this.selectCP(a);break;case"locality":this.selectLocality(a);break;case"street":this.selectStreet(a);break;case"building":this.selectBuilding(a)}if("ArrowUp"===e.key){0===t&&(t=n);r[t-1].focus()}e.preventDefault(),e.stopPropagation()},t.closeSuggestion=function(e){t.addressesSuggestions=null,t.searchCPSuggestions=null,t.searchStreetSuggestions=null,t.searchLocalitySuggestions=null,t.searchBuildingSuggestions=null},t.clickOutside=function(e,t){return document.addEventListener("click",handleClick),{remove:function(){document.removeEventListener("click",handleClick)}}}}}}]),e.config(["$provide",function(e){e.decorator("rbsGeoAddressEditorDirective",["RbsChange.AjaxAPI","$delegate",function(e,t){var a=t[0];let o=a.link;return a.compile=function(){return function(e,t,a){o.apply(this,arguments),e.generateFieldsEditor=function(t){var a=t.fields;angular.isObject(a)&&(e.fieldsDef={},angular.forEach(a,function(t){if("countryCode"!==t.name){e.fieldsDef[t.name]=t;var a=null;e.address.fields.hasOwnProperty(t.name)&&(a=e.address.fields[t.name]),null===a&&(a=t.defaultValue,e.address.fields[t.name]=a)}}))}}},t}])}]),e.controller("RbsGeoManageAddressesControllerPreloadedExtend",["$scope","RbsChange.AjaxAPI","$element","$controller",function(e,t,a,o){angular.extend(this,o("RbsGeoManageAddressesControllerPreloaded",{$scope:e,AjaxAPI:t,$element:a})),e.clearAddressExtend=function(){const t=e.data.newAddress.fields.countryCode;e.data.newAddress={common:{name:null},fields:{countryCode:t}}},e.createOrUpdateAddress=function(t){e.data.isEditedAddressValid&&"update"===t?e.updateAddress():e.data.isNewAddressValid&&"newAddress"===t&&e.addNe
1wAddress()},e.validAddressCapency=function(a){let o=null;e.data.isEditedAddressValid?e.data.editedAddress.fields.capAddress&&(o=JSON.parse(e.data.editedAddress.fields.capAddress)):e.data.isNewAddressValid&&e.data.newAddress.fields.capAddress&&(o=JSON.parse(e.data.newAddress.fields.capAddress)),o?(o.inputOutput="",o.step="ValidateForm",t.postData("Project/Capency/SearchAddress",o,{}).then(function(t){void 0!==t.data.dataSets.addresses&&(e.data.isEditedAddressValid?e.updateAddress():e.data.isNewAddressValid&&e.addNewAddress())},function(e){}).catch(()=>{e.data.isEditedAddressValid?e.updateAddress():e.data.isNewAddressValid&&e.addNewAddress()})):e.data.isEditedAddressValid?e.updateAddress():e.data.isNewAddressValid&&e.addNewAddress()}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectGiftcardPaymentGiftcard",["$window","$location","RbsChange.AjaxAPI","$interval",function(e,t,a,o){return{restrict:"A",scope:{processData:"=",transaction:"=",connectorInfo:"="},templateUrl:"/project-giftcard-payment-giftcard.twig",link:function(o,r){o.processData.warningCancelTransactionMessage=!1,o.paymentData=o.connectorInfo.transaction,o.valid=!1,o.submit=function(){if(!o.processing){o.processing=!0,a.openWaitingModal();var r={cardNumber:o.paymentData.cardNumber,cardPin:o.paymentData.cardPin,amount:o.paymentData.giftCardAmountToUse,connectorId:o.connectorInfo.common.id,transactionId:o.transaction.transactionId,sign:o.paymentData.sign};a.postData("Project/Giftcard/Payment/GiftCard",r).then(function(a){o.processing=!1;var r=a.data.dataSets;r.common&&r.common.redirectURL?e.location.assign(r.common.redirectURL):(t.search("failedReason",null),e.location.assign(t.absUrl()))},function(e){console.error(e),o.processing=!1,o.submitError=e.data,a.closeWaitingModal()})}}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.directive("giftCardDirective",["$rootScope","$window","$location","RbsChange.ModalStack","RbsChange.AjaxAPI","$interval",function(e,t,a,o,r,n){return{scope:!0,link:function(e,t){function a(e){return e.processEngine?e:e.$parent?a(e.$parent):null}e.registeredCards=[],e.getRegisteredGiftCards=function(){r.postData("Project/Giftcard/Payment/GiftCard/Get/Valid").then(function(t){e.registeredCards=t.data?.dataSets?.giftCards,e.registeredCards.forEach(e=>{e.statusShown=!1})},function(e){console.error(e)})},e.getRegisteredGiftCards(),e.checkoutRegisterGiftCard=function(t){t.preventDefault(),e.state=null,e.giftCardStatus={};var a={giftCardNumber:e.cardNumber,giftCardPin:e.cardPin,expirationDate:e.expiration};r.openWaitingModal(),r.postData("Project/Giftcard/Payment/GiftCard/Register",a).then(function(t){e.registeredCards=t.data?.dataSets?.giftCards,e.state=t.data?.dataSets?.message,r.closeWaitingModal()},function(e){console.error(e),r.closeWaitingModal()})},e.accountRegisterGiftCard=function(){e.state=null,e.giftCardStatus={};var t={giftCardNumber:e.cardNumber,giftCardPin:e.cardPin};r.openWaitingModal(),r.postData("Project/Proxyapi/CheckGiftCard",t).then(function(a){let o=a.data.dataSets;if(e.expiration=o.expire,e.state=o.state,"ACTIV"===o.status||"ENACTIV"===o.status?e.alertClass="success":e.alertClass="danger",!0===o.canRegisterCard)return t.expirationDate=o.expire,r.postData("Project/Giftcard/Payment/GiftCard/Register",t);o.error&&(e.state=o.error,e.alertClass="danger"),r.closeWaitingModal()}).then(function(t){if(t&&t.data){let a=t.data.dataSets;a&&a.giftCards&&(e.registeredCards=a?.giftCards,e.state=a?.message)}r.closeWaitingModal()}).catch(function(e){console.error(e),r.closeWaitingModal()})},e.checkStatus=function(t,a,o){o.preventDefault(),e.valid=!1,e.registeredCards.forEach(e=>{e.statusShown=!1}),e.state=null,e.giftCardStatus={};var n={giftCardNumber:t,giftCardPin:a,isCheckoutGiftCardCheck:!!document.querySelector(".checkout-cta")};r.openWaitingModal(),r.postData("Project/Proxyapi/CheckGiftCard",n).then(function(t){let a=t.data.dataSets;if(a.error&&(e.state=a.error,e.alertClass="danger"),a.expire&&null!==a.remaining&&a.state&&(e.giftCardStatus={id:n.giftCardNumber,expire:a.expire,remaining:a.remaining,state:a.state},e.expiration=a.expire,"ACTIV"===a.status||"ENACTIV"===a.status?e.alertClass="success":e.alertClass="danger",e.transaction&&e.transaction.amount)){const t=Math.round(100*e.transaction.amount)/100,o=parseFloat(a.remaining)||0;e.formData.amount=Math.min(t,o),e.$parent.paymentData.giftCardAmountToUse=e.formData.amount,e.giftCardForm.$setPristine()}a.canRegisterCard&&(e.valid=!0,e.$parent.paymentData&&(e.$parent.paymentData.cardNumber=e.cardNumber,e.$parent.paymentData.cardPin=e.cardPin)),r.closeWaitingModal()},function(e){console.error(e),r.closeWaitingModal()})},e.fillAndCheck=function(t,a){e.state=null,e.giftCardStatus={},e.cardNumber=t.cardNumber,e.cardPin=t.cardPin,e.checkStatus(t.cardNumber,t.cardPin,a)},e.deleteGiftCardModal=function(t){e.cardToDelete=t;var a={templateUrl:"/delete-gift-card.twig",size:"card",scope:e};e.modalInstance=o.open(a)},e.closeModal=function(){e.modalInstance&&e.modalInstance.close()},e.deleteGiftCard=function(){e.modalInstance&&e.modalInstance.close(),r.openWaitingModal(),r.postData("Project/Giftcard/Payment/GiftCard/Delete",e.cardToDelete).then(function(t){e.registeredCards=t.data?.dataSets?.giftCards,r.closeWaitingModal()},function(e){console.error(e),r.closeWaitingModal()})},e.formData={amount:null},e.validateAmount=function(){e.amountInvalid=!1,e.giftCardAmountInvalid=!1,e.transactionAmountInvalid=!1,e.formData.amount<1&&(e.amountInvalid=!0),e.formData.amount>e.giftCardStatus.remaining&&(e.giftCardAmountInvalid=!0),Math.round(e.formData.amount)>Math.round(e.transaction.amount)&&(e.transactionAmountInvalid=!0),e.$parent.paymentData.giftCardAmountToUse=e.formData.amount},e.removeGiftCardTransaction=function(t){let a={mode:"user removed gift card from checkout",giftCardTransactionIds:[{transactionId:t}]};r.openWaitingModal(),e.processEngine.loading(!0),r.postData("Project/Giftcard/Payment/GiftCard/Remove/Transaction",a).then(function(t){e.cancelPayment(),e.processEngine.loading(!1),r.closeWaitingModal()},function(e){console.error(e),r.closeWaitingModal()})},e.$parent.$watch("transaction.connectors",function(t){if(t){console.log("Prepare interval for GC auto removal"),e.parentScope=a(e);let o=n(function(){console.log("start interval");for(let a=0;a<t.length;a++){let i=t[a].transaction.currentGiftCardTransactions,s=t[a].transaction.cartLastUpdate;if(i){let t=i.sort(function(e,t){return new Date(e.modificationDate)-new Date(t.modificationDate)})[0];if(t&&t.modificationDate&&s){let a=new Date,c=Math.floor((a.getTime()-new Date(t.modificationDate).getTime())/6e4),l=Math.floor((a.getTime()-new Date(s).getTime())/6e4);if(console.log("giftCardTransactionInitSinceInMinutes : ",c),console.log("cartLastUpdateInitSinceInMinutes : ",l),console.log("User will be warned after 30min and giftcards will be removed after 50min"),c>=50&&l>=50){console.log("DELETE GIFT CARD TRANSACTION"),e.parentScope.processEngine.loading(!0);let t={mode:"idle in checkout for more than 50 minutes",giftCardTransactionIds:i};r.openWaitingModal(),r.postData("Project/Giftcard/Payment/GiftCard/Remove/Transaction",t).then(function(t){n.cancel(o),e.parentScope.cancelPayment(),e.parentScope.processEngine.loading(!1),r.closeWaitingModal()},function(e){n.cancel(o),console.error(e),r.closeWaitingModal()})}else c>=30&&l>=30&&(console.log("WARNING MESSAGE"),e.processData.warningCancelTransactionMessage=!0);break}}}},6e4)}})}}}]),e.directive("giftCardCurrentDirective",["RbsChange.AjaxAPI",function(e){return{scope:!0,link:function(t,a){if(void 0===t.currentCardNumber){let a={transactionId:t.transaction.transactionId};e.postData("Project/Giftcard/Payment/GiftCard/GetCardNumber",a).then(function(e){e.data.dataSets.currentCardNumber&&(t.currentCardNumber=e.data.dataSets.currentCardNumber)},function(e){console.error(e)})}}}}])}(),function(){"use strict";var e=angular.module("RbsChangeApp");e.controller("ProjectAlgoliaShortSearch",["$scope","RbsChange.AjaxAPI","$element","$compile","RbsChange.ModalStack","$location","$timeout",function(e,t,a,o,r,n,i){e.suggester
1={};n.search();e.suggester.searchText=null;var s,c,l=a.find(".js-suggestions-default"),d=a.find(".js-suggestions-custom"),u=a.find(".js-suggestions-help"),p=a.find(".js-search-input"),m=-1,g=27,f=9,h=13,b=38,v=40;e.suggester.search=function(r){var n=angular.copy(e.blockParameters);n.searchText=r,n.renderSuggestions=!0,t.reloadBlock(e.blockName,e.blockId,n,e.blockNavigationContext).then(function(t){if(t.data.dataSets.parameters.redirect&&(window.location.href=t.data.dataSets.parameters.redirect),e.searching)e.searching=!1;else{var r=jQuery(jQuery.parseHTML(t.data.dataSets.html)).filter(".js-suggestions").html();r=jQuery(jQuery.parseHTML(r)).filter(".js-suggestions-custom").html();var n=d.find(".suggestions-content");n.length>0&&n.remove(),d.html('<div class="suggestions-content">'+r+"</div>"),o(d.find(".suggestions-content"))(e),a.find(".js-short-search-listbox").removeClass("hidden"),p.attr("aria-autocomplete","list")}},function(e){console.error("[ProjectAlgoliaShortSearch] error reloading block:",e)})},e.clearInput=function(t){e.suggester.searchText="",a.removeClass("has-search-term"),d.addClass("hidden"),l.removeClass("hidden"),e.checkFocus=!0,p.focus(),u.text("Tapez minimum 1 caractère pour obtenir des suggestions."),p.attr("aria-autocomplete","none"),p.attr("aria-activedescendant","")},e.closeSuggestions=function(t){jQuery(".js-short-search-listbox").addClass("hidden"),a.removeClass("is-search-open"),p.attr("aria-expanded","false"),p.attr("aria-activedescendant",""),u.text(""),t||(e.checkFocus=!0,i(function(){p.focus()},200))},document.addEventListener("click",function(t){if(a.hasClass("is-search-open")){if(t.target.closest(".js-search-form"))return;e.closeSuggestions()}},!1),document.addEventListener("blur",function(){c=document.activeElement},!1),e.clearActiveElement=function(){c=null},e.showSuggestions=function(){document.activeElement!==c&&(e.checkFocus&&"false"===document.activeElement.getAttribute("aria-expanded")?e.checkFocus=!1:e.loadSuggestions())},e.showSuggestionsOnClick=function(){e.checkFocus||a.hasClass("is-search-open")||e.loadSuggestions()},e.loadSuggestions=function(){if(a.hasClass("is-search-open")||(a.addClass("is-search-open"),jQuery(".js-short-search-listbox").addClass("hidden"),p.attr("aria-expanded","true")),e.suggester.searchText){a.hasClass("is-search-open")&&e.suggester.search(e.suggester.searchText),a.addClass("has-search-term");var r=d.find("[role=option]").length;u.text(r+" "+(1===r?"résultat":"résultats")+" "+(1===r?"est disponible":"sont disponibles")+"."),d.hasClass("hidden")&&(l.addClass("hidden"),d.removeClass("hidden")),p.attr("aria-autocomplete","list")}else{var n=angular.copy(e.blockParameters);n.renderSuggestions=!0,e.lastSearches=e.getRecentSearches(),u.text("Tapez minimum 1 caractère pour obtenir des suggestions."),t.reloadBlock(e.blockName,e.blockId,n,e.blockNavigationContext).then(function(t){var r=jQuery(jQuery.parseHTML(t.data.dataSets.html)).filter(".js-suggestions").html();r=jQuery(jQuery.parseHTML(r)).filter(".js-suggestions-default").html();var n=l.find(".suggestions-content");n.length>0&&n.remove(),l.html('<div class="suggestions-content">'+r+"</div>"),o(l.find(".suggestions-content"))(e),a.find(".js-short-search-listbox").removeClass("hidden"),l.removeClass("hidden"),d.addClass("hidden"),p.attr("aria-autocomplete","none"),a.removeClass("has-search-term")},function(e){console.error("[ProjectAlgoliaShortSearch] error reloading block:",e)})}},e.keyboardControl=function(t){var a=e.suggester.searchText?d:l;t.keyCode!==g&&t.keyCode!==f||e.closeSuggestions(blur);var o=a.find("[role=option]").length-1;if(t.keyCode===v){if(m++,s)s.attr("aria-selected","false"),void 0!==typeof(n=a.find("[role=option]").eq(m))&&m<=o?s=n:(m=0,s=a.find("[role=option]").eq(m)),s.attr("aria-selected","true");else m=0,(s=a.find("[role=option]").eq(m)).attr("aria-selected","true");var r=s.text();u.text(o+1+" "+(1===o?"résultat":"résultats")+" "+(1===o?"est disponible":"sont disponibles")+"."),u.text(function(e,t){return t+" "+r+" "+(m+1)+" sur "+(o+1)+" est sélectionné"}),p.attr("aria-activedescendant",s.attr("id"))}else if(t.keyCode===b){var n;if(s)s.attr("aria-selected","false"),m--,void 0!==typeof(n=a.find("[role=option]").eq(m))&&m>=0?s=n:(m=o,s=a.find("[role=option]").eq(o)),s.attr("aria-selected","true");else m=0,(s=a.find("[role=option]").eq(o)).attr("aria-selected","true");r=s.text();u.text(o+1+" "+(1===o?"résultat":"résultats")+" "+(1===o?"est disponible":"sont disponibles")+"."),u.text(function(e,t){return t+" "+r+" "+(m+1)+" sur "+(o+1)+" est sélectionné"}),p.attr("aria-activedescendant",s.attr("id"))}if(t.keyCode===h&&s)return t.preventDefault(),e.closeSuggestions(),s.attr("aria-selected","false"),function(e){var t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e[0].dispatchEvent(t)}(s),!1};const C=window.location.hostname+"_recent_searches",y=()=>{const e=localStorage.getItem(C);return e?JSON.parse(e):[]};e.saveLastSearch=function(t){if(!t||""===t.trim())return;let a=y();a=a.filter(e=>e!==t),a.unshift(t),a.length>10&&a.pop(),localStorage.setItem(C,JSON.stringify(a)),console.log("Saved:",t),e.suggester.searchText=null},e.searchLastSearch=function(t,a){var o=a.target.closest("form");e.suggester.searchText=t,e.submitForm(a,o?o.getAttribute("action"):null)},e.removeLastSearch=function(t){let a=y();a=a.filter(e=>e!==t),localStorage.setItem(C,JSON.stringify(a)),e.lastSearches=e.getRecentSearches(),console.log("Removed:",t)},e.removeAllLastSearch=function(){localStorage.removeItem(C),i(function(){e.lastSearches=[]},250),console.log("All searches cleared")},e.getRecentSearches=function(){return y()},e.searchItem=function(a,o){if(e.suggester.searchText&&e.suggester.searchText.length){e.searching=!0;
1var r=t.globalVar("RBS_Elasticsearch")||{};r.searchText=e.suggester.searchText,r.redirect=!0,r.instantSearch=!1,r.resultFunction=a||!1,r.models=e.blockParameters.models,t.globalVar("RBS_Elasticsearch",r),e.$emit("RbsElasticsearchSearchText",r),r.redirect?window.location.href=o+"?searchText="+encodeURIComponent(e.suggester.searchText):n.search("searchText",e.suggester.searchText)}},e.submitForm=function(t,o){let r=angular.element(".js-search-input").controller("ngModel");r&&r.$commitViewValue(),t.preventDefault(),e.suggester.searchText&&e.suggester.searchText.length&&(e.searching=!0,window.location.href=o+"?searchText="+encodeURIComponent(e.suggester.searchText),e.checkFocus=!0,e.suggester.searchText&&a.removeClass("has-search-term"))}}]),e.directive("projectAlgoliaSearchMobileTrigger",["RbsChange.ModalStack",function(e){return{restrict:"A",link:function(t,a,o){a[0].addEventListener("click",function(){var a={templateUrl:"algolia-short-search-mobile.twig",windowClass:"searchModal",scope:t};e.open(a).rendered.then(function(){document.querySelector(".modal").querySelector(".js-search-input").focus()})})}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectAlgoliaFacetValueSearch",["RbsChange.AjaxAPI","$timeout",function(e,t){return{restrict:"A",scope:!1,link:function(a,o){var r=null,n=a.facet;function i(t){var o=parseInt((""+n.fieldName).replace("f_",""),10),r=a.blockData&&a.blockData.contextData||{},i=a.blockData&&a.blockData.contextParams||{},s={facetId:o,facetQuery:t,facetFilters:r.facetFilters||[],searchText:r.searchText||"",webStoreStockFilter:r.webStoreStockFilter||!1,storeStockFilter:r.storeStockFilter||!1};e.getData("Project/Algolia/FacetValues",s,i).then(function(e){var t=e.data&&e.data.facetValues||[],a=function(){var e=[];if(n.values)for(var t=0;t<n.values.length;t++)n.values[t].selected&&e.push(n.values[t]);return e}();t.length&&t[0].values?n.values=function(e,t){for(var a={},o=0;o<e.length;o++)a[""+e[o].key]=!0;for(var r=0;r<t.length;r++)a[""+t[r].key]||e.unshift(t[r]);return e}(t[0].values,a):n.values=a},function(e){console.log("facet value search error",e)})}n&&(o.on("input",function(){var e=o.val()||"";r&&t.cancel(r),r=t(function(){i(e)},250)}),a.$on("$destroy",function(){r&&t.cancel(r),o.off("input")}))}}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.controller("RbsUserLoginExtended",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI","$controller",function(e,t,a,o,r,n,i,s){s("RbsUserLogin",{$scope:e,$element:t,$attrs:a}),e.login=function(){e.error=null,i.openWaitingModal(),i.putData("Rbs/User/Login",e.data).then(function(t){let r=t.data.dataSets.user,n=a.onLogin||e.blockParameters.onLogin;if("reload"===n)window.location.reload(!0);else if("redirectToTarget"===n)window.location=a.redirectionUrl||e.blockParameters.redirectionUrl;else{let t={accessorId:r.accessorId,accessorName:r.name};o.$broadcast("rbsUserConnected",t);let a=angular.copy(e.blockParameters);a.accessorId=r.accessorId,a.accessorName=r.name,reloadBlock(a,!0)}},function(t){e.error=t.data.message,e.blockParameters.password=e.blockParameters.login=null,console.error("[RbsUserLogin] login error",t);let a=t.data.data;a.hasOwnProperty("redirectionUrl")&&null!==a.redirectionUrl?window.location=a.redirectionUrl:i.closeWaitingModal()})}}]),e.controller("projectUserLoginCreateAccount",["$scope","$element","$attrs","$rootScope","$compile","$location","RbsChange.AjaxAPI","$controller",function(e,t,a,o,r,n,i,s){e.showCreateAccountConfirmationForm=!1,o.$on("showConfirmationForm",function(t,a){void 0!==a&&(e.showCreateAccountConfirmationForm=a,o.$emit("showCreateAccountConfirmationForm",a))})}]),e.directive("projectLogout",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:t=>{t.logout=function(){e.getData("Rbs/User/Logout").then(function(){localStorage.setItem("PROXIMIS_FRONT_LOGOUT",Date.now().toString()),window.location.reload(!0)},function(e){t.error=e.data.message,console.log("logout error",e)})}}}}]),e.directive("passwordCheck",[function(){return{restrict:"A",link:e=>{e.pattern={alpha:!1,digit:!1,length:!1,special:!1},e.checkPassword=function(t){!function(t){const a=/\d/,o=/[A-Z]/,r
1=/.{9,}/,n=/[\W_]/g;e.pattern.digit=a.test(t),e.pattern.alpha=o.test(t),e.pattern.length=t&&r.test(t),e.pattern.special=n.test(t)}(t)}}}}]),e.directive("projectUserNormalizeName",[function(){function e(e){return(e||"").normalize("NFD").replace(/[^a-zA-Z-' ]/g,"").toUpperCase()}return{restrict:"A",link:(t,a,o)=>{t.normalizeName=function(a){t.profiles.Rbs_User[a]=e(t.profiles.Rbs_User[a])},a.on("input",function(){const t=a.val(),o=e(t);if(o!==t){const e=a[0],t=e.selectionStart;if(a.val(o),null!==t)try{e.setSelectionRange(t,t)}catch(e){}}})}}}]),e.controller("ProjectUserFidelityToggle",["$scope",function(e){e.toggleFidelity=function(t,a){t||((t={}).fidCard=!1,t.joinLoyaltyProgram=!1),e.$parent.data.joinLoyaltyProgram=!1,"fidCard"===a?(t.fidCard=!t.fidCard,t.fidCard&&(t.joinLoyaltyProgram=!1)):"joinLoyaltyProgram"===a&&(t.joinLoyaltyProgram=!t.joinLoyaltyProgram,t.joinLoyaltyProgram&&(t.fidCard=!1,e.$parent.data.joinLoyaltyProgram=!0))}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectUserAttachLoyaltyCard",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t,a,o){let r=a[0],n=r.querySelector("[data-attach-loyalty-card-error]"),i=r.querySelector("[data-attach-loyalty-card-success]"),s=r.querySelector('button[type="submit"]');function c(e){n&&(n.textContent=e,n.removeAttribute("hidden"))}r.addEventListener("submit",function(t){t.preventDefault(),n&&(n.textContent="",n.setAttribute("hidden","hidden"));let a={firstName:(r.elements.firstName.value||"").trim(),lastName:(r.elements.lastName.value||"").trim(),zipCode:(r.elements.zipCode.value||"").trim(),cardNumber:(r.elements.cardNumber.value||"").trim()};a.firstName&&a.lastName&&a.zipCode&&a.cardNumber?(s&&s.setAttribute("disabled","disabled"),e.openWaitingModal(),e.postData("Project/User/AttachLoyaltyCard",a).then(function(){e.closeWaitingModal(),i&&i.removeAttribute("hidden"),r.querySelectorAll("input, button").forEach(function(e){e.setAttribute("disabled","disabled")})},function(t){e.closeWaitingModal(),s&&s.removeAttribute("disabled"),c(function(e){let t=(e&&e.data||{}).message;return"NOT_FOUND"===t?o.errorNotFound:"EMAIL_MISMATCH"===t?o.errorEmailMismatch:"SAME_ID"===t?o.errorSameId:t&&"NOT_AUTHENTICATED"!==t&&"USER_NOT_FOUND"!==t?t:o.errorGeneric}(t)),console.error("Project/User/AttachLoyaltyCard",t)})):c(o.errorNotFound)})}}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.directive("projectStoreStorelocatorFacets",function(){return{restrict:"A",link:function(e){function t(e){let t=e.querySelector("[aria-expanded]"),a=t.nextElementSibling;e.classList.remove("active"),t.setAttribute("aria-expanded","false"),a.classList.add("collapse")}e.searchContext.data.facetFilters=e.searchContext.data.facetFilters??{},e.filterSearch=function(){let t={},a=angular.copy(e.blockData.searchFacets);a&&Object.entries(a).forEach(([e,a])=>{a&&a.values&&Object.entries(a.values).forEach(([e,o])=>{if(o.selected){let e=""+o.key;t[a.fieldName]||(t[a.fieldName]={}),t[a.fieldName][e]=1}})}),e.searchContext.data.facetFilters=t,setTimeout(function(){document.getElementById("storelocator-result").scrollIntoView({behavior:"smooth"})},500),e.addressCoordinates||e.myCoordinates||(e.addressCoordinates={latitude:46.227638,longitude:2.213749},e.distance="500kilometers"),e.search()},e.toggleFacet=function(e){let a=e.target.closest(".js-facet");"false"==a.querySelector("[aria-expanded]").getAttribute("aria-expanded")?function(e){let t=e.querySelector("[aria-expanded]"),a=t.nextElementSibling;e.classList.add("active"),t.setAttribute("aria-expanded","true"),a.classList.remove("collapse")}(a):t(a)},document.addEventListener("click",function(e){document.querySelectorAll(".js-facet").forEach(function(a){a.contains(e.target)||t(a)})})}}}),e.directive("projectStoreStorelocatorSearch",function(){return{restrict:"A",link:function(e){e.$watch("autocomplete",function(){void 0!==e.autocomplete&&e.autocomplete.setComponentRestrictions({country:["fr"]})})}}})}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.directive("projectStoreRemainingOpenTime",["dateFilter",function(e){return{restrict:"A",scope:!0,link:function(e,t,a){if(a.isOpen){const t=a.closedAt??null;if(!t)return;const o=new Date,[r,n]=t.split(":"),i=new Date(o.getUTCFullYear(),o.getUTCMonth(),o.getDate(),r,n)-o,s=60*1e3,c=60*s,l=Math.floor(i%864e5/c),d=Math.floor(i%36e5/s);e.closingIn=l+"h"+d+"m"}}}}]),e.directive("projectStoreGoogleItinerary",["$window",e=>({restrict:"A",scope:!0,link:(t,a,o)=>{t.redirectToItinerary=()=>{let a=t.storeData??t.blockData.storeData??t.stores[o.store];const r=a.coordinates.latitude+","+a.coordinates.longitude,n=(e,t)=>
1"https://maps.google.fr/maps?saddr="+e+"&daddr="+t;e.navigator.geolocation.getCurrentPosition(t=>{const a=t.coords.latitude+","+t.coords.longitude;e.open(n(a,r),"_blank")},()=>{e.open(n("",r),"_blank")})}}})]),e.directive("projectStoreGoogleReviews",["$location","RbsGeo.GoogleMapService",(e,t)=>({restrict:"A",link:async(e,a,o)=>{e.googleRatingLoaded=!1,e.googleReviewsLoaded=!1;const r=o.reviewsAnchor??null,n=e.blockData.storeData.typology?.attributes?.unic_store_placeid?.value??null;if(!n)return;const i=await t.maps();if(!i.Map)return;new IntersectionObserver(t=>{t.forEach(t=>{!0===t.isIntersecting&&!1===e.googleReviewsLoaded&&e.loadReviews()})}).observe(document.getElementById(r));const s=new i.places.PlacesService(document.createElement("div")),c=(e,t,a)=>{s.getDetails({placeId:e,fields:t},a)};e.loadRating=()=>{c(n,["rating","user_ratings_total"],(t,a)=>{a===i.places.PlacesServiceStatus.OK?(e.googleRating=t.rating,e.googleUserRatingTotal=t.user_ratings_total,e.googleRatingLoaded=!0,e.$apply()):console.error(a)})},e.loadRating(),e.loadReviews=()=>{c(n,["reviews"],(t,a)=>{a===i.places.PlacesServiceStatus.OK?(e.googleReviews=t.reviews,e.googleReviewsLoaded=!0,e.$apply()):console.error(a)})}}})]),e.controller("projectStorelocatorGoogleSearchExtend",["$scope","$element","$attrs","$compile","RbsChange.AjaxAPI","RbsGeo.GoogleMapService","$timeout","$controller",function(e,t,a,o,r,n,i,s){angular.extend(this,s("RbsStorelocatorGoogleSearch",{$scope:e,$element:t,$attrs:a}));var c=this,l=e.blockData,d=angular.copy(e.blockParameters);function u(t,a){if(e.markers)for(var r=0;r<e.markers.length;r++)e.markers[r].setMap(null);if(e.markers=[],t.length){var n={center:new e.maps.LatLng(a[0],a[1]),zoom:11,minZoom:7,maxZoom:15},i=document.getElementById("map-"+e.blockId);i&&(e.map=new e.maps.Map(i,n),e.bounds=new e.maps.LatLngBounds,e.bounds.extend(new e.maps.LatLng(a[0],a[1])),angular.forEach(t,function(t){var a=new e.maps.LatLng(t.coordinates.latitude,t.coordinates.longitude),r={position:a,map:e.map},n=t.coordinates.marker;!n||l.markerIcon&&n.id===l.markerIcon.id?e.markerIcon&&(r.icon=e.markerIcon):r.icon={url:n.original,scaledSize:new e.maps.Size(n.size[0]/2,n.size[1]/2)};var i=new e.maps.Marker(r);e.markers.push(i),e.bounds.extend(a),t.coordinates.openPopup=function(){e.infoWindow&&(e.infoWindow.close(),e.popupStore=null);e.infoWindow=new e.maps.InfoWindow({content:o('<div data-rbs-storelocator-store-popup=""></div>')(e)[0]}),e.maps.event.addListener(e.infoWindow,"domready",function(){e.popupStore=t,e.$digest()}),e.infoWindow.open(e.map,i)},e.maps.event.addListener(i,"click",function(){t.coordinates.openPopup()})}),e.map.fitBounds(e.bounds))}}e.search=function(){var t=null;e.myCoordinates?t=e.myCoordinates:e.addressCoordinates&&(t=e.addressCoordinates),t&&(e.map&&e.map.setCenter(new e.maps.LatLng(t.latitude,t.longitude)),e.addressLoading=!0,c.search({coordinates:t,distance:e.distance||e.searchRadius+e.searchRadiusUnit,commercialSign:e.commercialSignId?e.commercialSignId:0}).then(function(a){c.handleSearchResults(a,t).then(function(){u(e.stores,[t.latitude,t.longitude])})},function(t){e.addressLoading=!1,e.stores=[],console.error("search store",t)}))},e.viewStoreOnMap=function(t){var a=e.stores[t],o=new e.maps.LatLng(a.coordinates.latitude,a.coordinates.longitude);e.map.setCenter(o),e.map.setZoom(15),a.coordinates.openPopup()},e.selectLoadedAddress=function(){var t=e.autocomplete.getPlace();if(t.geometry){e.error=null,e.myCoordinates=null,e.filteredAddress=null;var a=t.geometry.location;e.addressCoordinates={latitude:a.lat(),longitude:a.lng()},e.formattedAddress=t.formatted_address,e.distance=e.searchRadius+e.searchRadiusUnit,e.search()}},n.maps().then(function(t){e.maps=t;var a=e.blockData||{};a.markerIcon&&(e.markerIconUrl=a.markerIcon.original,e.markerIcon={url:e.markerIconUrl,scaledSize:new t.Size(a.markerIcon.size[0]/2,a.markerIcon.size[1]/2)});var o=document.getElementById(e.blockId+"_autocomplete"),r=o.parentNode.querySelector("label");e.autocomplete||(e.autocomplete=new t.places.Autocomplete(o,{types:["geocode"],componentRestrictions:{country:["fr"]}})),t.event.addListener(e.autocomplete,"place_changed",function(){e.searchAddress=!0,e.selectLoadedAddress(),r&&r.scrollIntoView({behavior:"smooth"})});var n=c.getInitialStoresData();angular.isArray(n)&&(e.stores=n,e.filteredAddress=a.facetValueTitle,e.stores.length&&i(function(){d.filteredAddress=e.filteredAddress,d.showHome=!1,c.reloadBlock(d).then(function(){var a=new t.LatLngBounds;angular.forEach(n,function(e){a.extend(new t.LatLng(e.coordinates.latitude,e.coordinates.longitude))});var o=a.getCenter();e.map&&(u(e.stores,[o.lat(),o.lng()]),e.map.fitBounds(a))})}))})}]),e.config(["$provide",function(e){e.decorator("rbsStorelocatorGoogleStoreDirective",["$delegate","RbsChange.ModalStack","RbsGeo.GoogleMapService",function(e,t,a){var o=e[0],r=function(e,o,r,n){function i(t,a){if(e.storeData.coordinates){var o=new a.LatLng(e.storeData.coordinates.latitude,e.storeData.coordinates.longitude),r={center:o,zoom:15};e.map=new a.Map(document.getElementById(t),r);var i={position:o,map:e.map},s=n.getMarkerIconData();angular.isObject(s)&&(i.icon={url:s.original,scaledSize:new a.Size(s.size[0]/2,s.size[1]/2)}),e.marker=new a.Marker(i)}}
1e.storeData=n.getStoreData(),a.maps().then(function(a){i("map-"+e.blockId,a),e.zoomMap=function(){zoomMap(e,t,function(e){i(e,a)})}}),e.chooseStore=function(t){e.storeData.common.currentStore=t.common.id==e.storeData.common.id,e.$emit("rbsStorelocatorChooseStore",t.common.id)}};return o.compile=function(){return function(e,t,a,o){r.apply(this,arguments)}},e}])}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");function t(e,t,a){e(function(){var e=document.getElementById(a);e&&(t(a),e.setAttribute("tabindex",-1),e.focus())},150)}e.directive("projectCommonsCheckoutDiscountedPrices",()=>({restrict:"A",link:e=>{let t=0;e.delivery.modifiers.forEach(a=>{if(a.options.amountByLine&&void 0!==a.options.amountByLine[e.line.key]){let o=a.options.amountByLine[e.line.key];o&&a.options.instructionClass&&a.options.instructionClass.includes("LinePriceDiscount")&&(t-=o)}}),e.line.discountedPriceWithTaxes=(e.line.baseAmountWithTaxes??e.line.amountWithTaxes)-t,e.line.discountedPriceWithoutTaxes=(e.line.baseAmountWithoutTaxes??e.line.amountWithoutTaxes)-t}})),e.config(["$provide",function(e){e.decorator("rbsCommercePaymentStepDirective",["$delegate","RbsChange.AjaxAPI","$location","$rootScope","$timeout","$anchorScroll",function(e,a,o,r,n,i){var s=e[0],c=s.link;return s.compile=function(){return function(e,o,s){c.apply(this,arguments),e.selectUserAddress=function(a){e.processData.address=angular.copy(a),e.processData.addressEdition=!1,e.processData.addressEditionForm=!1,t(n,i,"billing-address")},e.makePayment=function(){e.processEngine.loading(!0),e.processData.errors=[];var o={},s={visualFormats:e.processEngine.parameters("imageFormats")};e.$emit("analytics",o),a.postData("Rbs/Commerce/Payment/",{options:o},s).then(function(a){e.processEngine.lockProcess(!0);var o=e.processEngine.getObjectData();o.processData.locked=!0,r.$broadcast("rbsRefreshCart",{cart:o}),e.transactions=a.data.dataSets.transactions||[],e.paymentInfo=a.data.dataSets.common||{},e.$emit("analytics",{category:"process",action:"setCurrentStep",label:"paymentConnectorSelect",value:e.paymentInfo.paymentAmount}),t(n,i,"js-payment-anchor"),e.processEngine.loading(!1)},function(a){console.error("makePayment",a),409==a.status&&a.data&&a.data.data&&angular.forEach(a.data.data,function(t){e.processData.errors.push(t.message)}),e.transactions=[],t(n,i,"js-payment-anchor"),e.processEngine.loading(!1)})}}},e}])}]),e.config(["$provide",function(e){e.decorator("rbsCommerceShippingAtHomeStepDirective",["$delegate","RbsChange.AjaxAPI","$timeout","$anchorScroll",function(e,a,o,r){var n=e[0],i=n.link;return n.compile=function(){return function(e,a,n){i.apply(this,arguments),e.selectUserAddress=function(a,n){e.validateAddress(a,n),t(o,r,"shipping-at-home")}}},e}])}]),e.config(["$provide",function(e){e.decorator("rbsSocolissimoModeEditorDirective",["$delegate","RbsChange.ModalStack",function(e,t){var a=e[0],o=a.link;return a.compile=function(){return function(e,a,r){o.apply(this,arguments),e.openRelayPopup=function(e){var a={templateUrl:"/rbs-socolissimo-relay-popin.twig",backdropClass:"modal-backdrop-rbs-socolissimo-relay",windowClass:"modal-rbs-socolissimo-relay",ariaLabelledBy:"modal-rbs-socolissimo-relay-title",size:"lg",controller:"RbsSocolissimoRelayModalCtrl",resolve:{relay:function(){return e}}};t.open(a)}}},e}])}]),e.directive("projectCommonsIdentificationTabs",["$timeout","$anchorScroll","$rootScope",function(e,a,o){return{restrict:"A",link:function(r,n,i){r.hasAccountForm=!1;var s="create-account";document.getElementById(s)&&(r.hasAccountForm=!0,r.activateAccountCreationTab=!1,o.$on("showCreateAccountConfirmationForm",function(e,t){void 0!==t&&(r.activateAccountCreationTab=t)}),r.goToAccountCreation=function(o){t(e,a,s)})}}}]),e.config(["$provide",function(e){e.decorator("rbsUserCreateAccountDirective",["$delegate","RbsChange.AjaxAPI","$timeout","$anchorScroll","$rootScope",function(e,a,o,r,n){var i=e[0],s=i.link;return i.compile=function(){return function(e,a,i,c){s.apply(this,arguments),e.submit=function(){e.data.profiles=e.profiles,e.data.profileData=e.profiles.Rbs_User||{},c.createAccountRequest(e.data),o(function(){t(o,r,"create-account")},250)},e.$watch("requestAccountCreated",function(t){t&&(e.accountConfirmed?n.$emit("showConfirmationForm",!1):n.$emit("showConfirmationForm",!0))}),e.$watch("accountConfirmed",function(e){e&&n.$emit("showConfirmationForm",!1)})}},e}])}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectCommonsAlmaTimeline",[function(){return{restrict:"A",link:function(e,t,a){e.showTimeline=function(t,a,o){let r="is-active",n=$("#alma-"+a+"-"+t),i=$("#alma-"+a+"-"+(4===t?3:4));n.addClass(r).attr("aria-checked","true"),i.removeClass(r).attr("aria-checked","fal
1se"),"webStore"===a?e.timelineWeb=o:e.timelineStore=o}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectCommonsMenuExternal",()=>({restrict:"A",link:(e,t,a)=>{new URL(t.attr("href"),window.location.href).host!==window.location.host&&t.attr("target","_blank")}}))}(),function(){"use strict";angular.module("RbsChangeApp").directive("projectCommonsGiftCardChecker",["RbsChange.AjaxAPI","$timeout","$anchorScroll",function(e,t,a){return{restrict:"A",link:function(o,r,n){o.checkGiftCard=function(){delete o.error,delete o.success;let i={};i.giftCardNumber=o.giftCardNumber,i.giftCardPin=o.giftCardPin,e.openWaitingModal("Chargement en cours..."),e.postData("Project/Proxyapi/CheckGiftCard",i).then(function(i){i.data.dataSets.error?(o.error=i.data.dataSets.error,t(function(){var e=r[0];e&&(a(n.id),e.setAttribute("tabindex",-1),e.focus())},0)):o.success=i.data.dataSets,e.closeWaitingModal()},function(t){console.error("Project/ProxyApi/CheckGiftCard",t),e.closeWaitingModal()})},o.checkFields=function(){return!o.giftCardNumber||!o.giftCardPin||!(13===o.giftCardNumber.length&&4===o.giftCardPin.length)}}}}])}(),function(){"use strict";angular.module("RbsChangeApp").controller("ProjectCommonsGiftIdeaEngine",["$rootScope","$scope","$element","$window","$compile","$timeout","$location","RbsChange.AjaxAPI",function(e,t,a,o,r,n,i,s){t.giftIdeaFilters=[],t.questionsHistory=[],t.nextGenericQuestionId=0,t.firstQuestionId=0,t.currentQuestionId=0,t.hasNextQuestion=!0,t.checkedStatus={},t.hasPrevious=!1,t.toggleSelection=function(e,a,o,r){const n=e.find(e=>e.id===a);if(r)if(n&&n.values[0]===o){const t=e.indexOf(n);e.splice(t,1)}else n?n.values=[o]:e.push({id:a,values:[o]});else t.toggleFilter(e,a,o)},t.toggleFilter=function(e,t,a){const o=e.find(e=>e.id===t);if(o){const t=o.values.indexOf(a);if(t>-1){if(o.values.splice(t,1),0===o.values.length){const t=e.indexOf(o);e.splice(t,1)}}else o.values.push(a)}else e.push({id:t,values:[a]})},t.toggleGiftIdeaFilter=function(e,a,o){t.toggleSelection(t.giftIdeaFilters,e,a,o),t.updateCheckedStatus(e,a)},t.toggleQuestionHistory=function(e,a,o){t.toggleSelection(t.questionsHistory,e,a,o)},t.isChecked=function(e){return t.giftIdeaFilters.some(function(t){return t.values.includes(e)})},t.updateCheckedStatus=function(e,a){const o=t.giftIdeaFilters.find(t=>t.id===e);t.checkedStatus[e]=!(!o||!o.values)},t.updateHasPrevious=function(){t.hasPrevious=t.firstQuestionId!==t.currentQuestionId},t.nextGenericQuestion=function(e,o,c){s.openWaitingModal(),i.search("pageNumber-"+t.blockId,null),t.nextGenericQuestionId=e;var l=t.giftIdeaFilters.find(function(e){return e.id===o});l?l.values=[]:t.giftIdeaFilters.push({id:o,values:[]});var d=t.questionsHistory.find(function(e){return e.id===c});d?d.values=[]:t.questionsHistory.push({id:c,values:[]});var u=angular.copy(t.blockParameters);t.nextGenericQuestionId&&(u.nextGenericQuestionId=t.nextGenericQuestionId),s.reloadBlock(t.blockName,t.blockId,u,t.blockNavigationContext).then(function(e){t.firstQuestionId=e.data.dataSets.parameters.giftIdeaQuestionId,t.currentQuestionId=e.data.dataSets.parameters.currentQuestionId,t.updateHasPrevious(),t.giftIdeaFilters.forEach(function(e){t.checkedStatus[e.id]=!1}),t.accessorId=e.data.dataSets.parameters.accessorId,t.accessorName=e.data.dataSets.parameters.accessorName;var o=jQuery.parseHTML(e.data.dataSets.html),i=jQuery(o).find(".js-gift-engine-form").html();let c=a.find(".js-gift-engine-form");c.html(i),r(c)(t),n(function(){a.parents(".js-gift-engine")[0].scrollIntoView({behavior:"instant",block:"start"}),c.attr("tabindex","-1"),c.focus()},10),s.closeWaitingModal()},function(e){s.closeWaitingModal(),console.error("[ProjectCommonsGiftIdeaEngine] error reloading block:",e)})},t.hasPreviousQuestion=function(){return t.firstQuestionId!==t.currentQuestionId},t.previousQuestion=function(c){s.openWaitingModal(),i.search("pageNumber-"+t.blockId,null),c&&(t.currentQuestionId=0);let l=angular.copy(t.blockParameters);t.giftIdeaFilters&&(l.giftIdeaFilters=t.giftIdeaFilters),t.questionsHistory&&(l.previousQuestion=t.questions
1History),t.currentQuestionId&&(l.currentQuestionId=t.currentQuestionId),s.reloadBlock(t.blockName,t.blockId,l,t.blockNavigationContext).then(function(i){t.firstQuestionId=i.data.dataSets.parameters.giftIdeaQuestionId,t.currentQuestionId=i.data.dataSets.parameters.currentQuestionId,t.updateHasPrevious(),t.giftIdeaFilters=i.data.dataSets.parameters.giftIdeaFilters,t.giftIdeaFilters.forEach(function(e){t.checkedStatus[e.id]=!1}),t.questionsHistory=i.data.dataSets.parameters.previousQuestion,t.accessorId=i.data.dataSets.parameters.accessorId,t.accessorName=i.data.dataSets.parameters.accessorName,o.giftIdeaFilters=i.data.dataSets.parameters.giftIdeaFilters,o.currentQuestionId=i.data.dataSets.parameters.currentQuestionId,o.previousQuestion=i.data.dataSets.parameters.previousQuestion;let c=jQuery.parseHTML(i.data.dataSets.html),l=jQuery(c).find(".js-gift-engine-form").html(),d=jQuery(c).filter(".items").html(),u=jQuery(c).filter("#pagination").html(),p=jQuery(c).filter("#pagination-count").html(),m=a.find(".js-gift-engine-form");m.html(l),r(m)(t),n(function(){a.parents(".js-gift-engine")[0].scrollIntoView({behavior:"instant",block:"start"}),m.attr("tabindex","-1"),m.focus()},10);let g=document.getElementsByClassName("product-list")[0];g.innerHTML=d,r(g)(t);let f=document.getElementById("pagination-count");f.innerHTML=p,r(f)(t);let h=document.getElementById("pagination");h.innerHTML=u,e.$emit("compilePagination",h),s.closeWaitingModal()},function(e){s.closeWaitingModal(),console.error("[ProjectCommonsGiftIdeaEngine] error reloading block:",e)})},t.submitGiftIdeaForm=function(c){s.openWaitingModal(),i.search("pageNumber-"+t.blockId,null);var l=angular.copy(t.blockParameters);t.giftIdeaFilters&&(l.giftIdeaFilters=t.giftIdeaFilters),t.questionsHistory&&(l.nextQuestion=t.questionsHistory),l.currentQuestionId=c,s.reloadBlock(t.blockName,t.blockId,l,t.blockNavigationContext).then(function(i){t.firstQuestionId=i.data.dataSets.parameters.giftIdeaQuestionId,t.currentQuestionId=i.data.dataSets.parameters.currentQuestionId,t.updateHasPrevious(),t.giftIdeaFilters=i.data.dataSets.parameters.giftIdeaFilters,t.giftIdeaFilters.forEach(function(e){t.checkedStatus[e.id]=!1}),t.accessorId=i.data.dataSets.parameters.accessorId,t.accessorName=i.data.dataSets.parameters.accessorName,o.giftIdeaFilters=i.data.dataSets.parameters.giftIdeaFilters,o.currentQuestionId=i.data.dataSets.parameters.currentQuestionId,o.previousQuestion=t.questionsHistory;let c=jQuery.parseHTML(i.data.dataSets.html),l=jQuery(c).filter(".items").html(),d=jQuery(c).find(".js-gift-engine-form").html(),u=jQuery(c).filter("#pagination").html(),p=jQuery(c).filter("#pagination-count").html(),m=a.find(".js-gift-engine-form");m.html(d),r(m)(t),n(function(){a.parents(".js-gift-engine")[0].scrollIntoView({behavior:"instant",block:"start"}),m.attr("tabindex","-1"),m.focus()},10);let g=document.getElementsByClassName("product-list")[0];g.innerHTML=l,r(g)(t);let f=document.getElementById("pagination-count");f.innerHTML=p,r(f)(t);let h=document.getElementById("pagination");h.innerHTML=u,e.$emit("compilePagination",h),s.closeWaitingModal()},function(e){s.closeWaitingModal(),console.error("[ProjectCommonsGiftIdeaEngine] error reloading block:",e)})}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");e.directive("projectCommonsTimeline",["$timeout",function(e){return{restrict:"A",link:function(t,a,o){const r=a[0],n=r.querySelectorAll(".js-timeline-entry"),i=r.querySelector(".js-timeline-entry.--current");let s=null;const c=function(e){e.forEach(function(e){e.isIntersecting&&(e.target.classList.add("is-in-view"),e.boundingClientRect.top<0&&e.target.classList.add("is-from-bottom"))})};var l;n.length>0&&(l=n,null!==s&&l.forEach(function(e){s.unobserve(e)}),s=new IntersectionObserver(c,{rootMargin:"-20px 0px -20px 0px"}
1),n.forEach(function(e){s.observe(e)}),e(function(){if(i&&!i.classList.contains("is-in-view")){var e=i.getBoundingClientRect();jQuery("html, body").animate({scrollTop:e.top},3e3,function(){i.setAttribute("tabindex",-1),i.focus()})}},250))}}}]),e.directive("projectCommonsTimelineExpandContent",function(){return{restrict:"A",scope:!0,link:function(e,t,a){function o(){e.deployed?(e.contentNode.classList.remove("hidden"),e.contentNode.setAttribute("tabindex","-1"),e.contentNode.focus(),e.focusableNodes.forEach(function(e){e.removeAttribute("tabindex")})):(e.contentNode.removeAttribute("tabindex"),e.contentNode.classList.add("hidden"),e.focusableNodes.forEach(function(e){e.setAttribute("tabindex","-1")}))}e.contentNode=t[0].querySelector(".js-expand"),e.focusableNodes=e.contentNode.querySelectorAll("a"),e.deployed=!1,e.toggle=function(){e.deployed=!e.deployed,o()}}}})}(),function(){"use strict";angular.module("RbsChangeApp").directive("proxyapi",["RbsChange.AjaxAPI",function(e){return{restrict:"A",link:function(t){t.createNympheaUser=function(){if(void 0===t.nymphea||t.processData.email!==t.nymphea.email){let a={email:t.processData.email};e.postData("Project/Proxyapi/CreateNympheaUser",a).then(function(e){t.nymphea={clientId:e.data.dataSets.clientId,email:e.data.dataSets.email}},function(e){console.error("Project/Proxyapi/CreateNympheaUser",e)})}}}}}])}(window.jQuery),function(){"use strict";angular.module("RbsChangeApp").controller("ProjectExtendedShortSearchPreloaded",["$scope","RbsChange.AjaxAPI","$element","$compile","RbsChange.ResponsiveSummaries","RbsChange.ModalStack","$location","$controller",function(e,t,a,o,r,n,i,s){function c(e){if(!a.find(".suggestions").is(":empty")){if(e.target.closest(".js-search-form")&&"formSearchSubmitSvg"!==e.target.id&&"formSearchSubmit"!==e.target.id)return;a.find(".suggestions").html(""),a.find(".js-search-input").focus()}e.target.closest(".js-search-trigger")&&a[0].closest(".js-search-form").classList.toggle("is-deployed")}angular.extend(this,s("RbsElasticsearchShortSearchPreloaded",{$scope:e,AjaxAPI:t,$element:a,$compile:o,ResponsiveSummaries:r,ModalStack:n,$location:i})),document.addEventListener("click",c,!1),document.getElementById("formSearchSubmit").addEventListener("click",c,!1),e.emptySuggestions=function(e){"keydown"===e.type&&(("key"in e?"Escape"===e.key||"Esc"===e.key:27===e.keyCode)&&a.find(".suggestions").html(""))},e.loadSuggestions=function(){jQuery(".short-search-listbox").hide(),e.suggester.searchText&&(e.suggester.search(e.suggester.searchText),a.find(".js-search-close-suggestions").removeClass("hidden")),""!=a.find(".js-search-input").val()&&a.find(".js-search-close-suggestions").removeClass("hidden")},e.clearSuggestions=function(e){a.find(".js-search-input").val(""),a.find(".suggestions").html(""),a.find(".js-search-close-suggestions").addClass("hidden"),a.find(".js-search-input").focus()}}])}(),function(){"use strict";let e=angular.module("RbsChangeApp");function t(e){e.selectionChange=function(t,a){!t.selected&&t.aggregationValues?e.controller.unSelectDescendant(t.aggregationValues):t.selected&&e.facet.parent&&e.controller.selectAncestors(e.facet),!0!==a&&e.controller.refresh()},e.hasValue=function(){return e.facet.values&&e.facet.values.length}}e.directive("rbsElasticsearchFacetRenderstarmultiple",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-star-multiple.twig",scope:!1,compile:function(a){return e.compile(a,t)}}}]),e.directive("rbsElasticsearchFacetRenderseasonality",["RbsChange.RecursionHelper",function(e){return{restrict:"A",templateUrl:"/rbs-elasticsearch-facet-seasonality.twig",scope:!1,compile:function(a){return e.compile(a,t)}}}]),e.config(["$provide",function(e){e.decorator("rbsElasticsearchFacetIntervalDirective",["$delegate","$filter",function(e,t){var a=e[0],o=a.link;return a.compile=function(){return function(e,t,a){o.apply(this,arguments);var r,n,i,s=!1,c={interval:e.facet.parameters.interval,absMin:null,absMax:null,min:null,max:null},l=null,d=t.find(".range-slider-labels"),u=d.attr("data-label-lower"),p=d.attr("data-label-upper"),m={start:[e.range.min,e.range.max],behaviour:"drag-tap",connect:!0,margin:e.range.interval,step:e.range.interval,range:{min:[e.range.absMin?e.range.absMin:0],max:[e.range.absMax?e.range.absMax:e.range.interval]},handleAttributes:[{"aria-label":u},{"aria-label":p}]};function g(){var a="range-slider";e.showTooltips&&(a+=" range-slider-tooltips"),e.showPips&&(a+=" range-slider-pips"),t.find(".range-slider").replaceWith('<div class="'+a+'"></div>'),i=t.find(".range-slider").get(0),noUiSlider.create(i,m),i.noUiSlider.on("slide",f),i.noUiSlider.on("change",h),t.find(".noUi-tooltip").addClass("tooltip top").removeClass("noUi-tooltip")}function f(){var t=i.noUiSlider.get(),a=parseInt(t[0]),o=parseInt(t[1]);e.range.min==a&&e.range.max==o||(e.range.min=a,e.range.max=o,e.$digest())}function h(){var t=i.noUiSlider.get(),a=parseInt(t[0]),o=parseInt(t[1]);if(r!=a||n!=o){e.range.min=r=a,e.range.max=n=o,e.$digest();for(var s=0;s<e.facet.values.length;s++){var c=e.facet.values[s].key;e.facet.values[s].selected=c>
1=e.range.min&&c<e.range.max}e.facet.customValues=[{key:"min",selected:!0,value:e.range.min},{key:"max",selected:!0,value:e.range.max}],e.controller.refresh()}}g(),e.$watch("facet",function(t){t.buildFilter=function(){return e.range.min!==e.range.absMin||e.range.max!==e.range.absMax?{min:e.range.min,max:e.range.max}:null},t.reset=function(){var t=e.range;t.min=t.absMin,t.max=t.absMax,i.noUiSlider.set([t.min,t.max])}}),e.$watch("facet.values",function(){(function(){if(!e.hasValue())return!1;var t=!1;if(!s){for(var a=angular.copy(c),o=0;o<e.facet.values.length;o++){var i=e.facet.values[o].key,d=i+e.range.interval;(null===a.absMin||i<a.absMin)&&(a.absMin=i,t=!0),(null===a.absMax||d>a.absMax)&&(a.absMax=d,t=!0),e.facet.values[o].selected&&((null===a.min||i<a.min)&&(a.min=i,t=!0),(null===a.max||d>a.max)&&(a.max=d,t=!0))}t&&(!function(t){var a=e.facet.parameters;if(!(void 0!==a.minFilter&&null!==a.minFilter||void 0!==a.maxFilter&&null!==a.maxFilter))return void(l={absMin:t.absMin,absMax:t.absMax});if(!l)return;null!==l.absMin&&(null===t.absMin||l.absMin<t.absMin)&&(t.absMin=l.absMin);null!==l.absMax&&(null===t.absMax||l.absMax>t.absMax)&&(t.absMax=l.absMax)}(a),e.range=a)}(null===e.range.min||e.range.min<e.range.absMin)&&(void 0!==e.facet.parameters.minFilter&&null!==e.facet.parameters.minFilter?e.range.min=parseInt(e.facet.parameters.minFilter):e.range.min=e.range.absMin);(null===e.range.max||e.range.max>e.range.absMax)&&(void 0!==e.facet.parameters.maxFilter&&null!==e.facet.parameters.maxFilter?e.range.max=parseInt(e.facet.parameters.maxFilter):e.range.max=e.range.absMax);return r=e.range.min,n=e.range.max,s=!1,t})()&&(m.start=[e.range.min,e.range.max],m.range={min:[e.range.absMin?e.range.absMin:0],max:[e.range.absMax?e.range.absMax:e.range.interval]},e.showPips&&(m.pips.values=countValues()),g())})}},e}])}]),e.config(["$provide",function(t){t.decorator("rbsElasticsearchFacetContainerV2Directive",["$delegate","$injector","$rootScope","$location","RbsChange.AjaxAPI","RbsChange.ModalStack","$timeout","$compile",function(t,a,o,r,n,i,s,c){var l=t[0],d=l.controller;l.controller=["$scope","$element","$attrs","$rootScope",function(t,o,r,n){a.invoke(d,this,{$scope:t,$element:o,$attrs:r,$rootScope:n}),t.resultsCount=e.resultsCount,t.$watch(function(){t.resultsCount=e.resultsCount}),e.facetsAppliedCount=t.appliedCount,t.responsiveModal=function(){var e={templateUrl:r.responsiveModalTemplate||"/rbs-elasticsearch-facet-responsive-modal.twig",backdropClass:"modal-backdrop-rbs-elasticsearch-facet-responsive",windowClass:"modal-responsive-summary modal-rbs-elasticsearch-facet-responsive",ariaLabelledBy:"modal-rbs-elasticsearch-facet-responsive-title",scope:t};i.open(e)}}];const u=function(e,t,a){o.$on("rbsStorelocatorDefaultStore",(t,a)=>{e.blockData.storeId=a.common.id,e.blockData.storeName=a.common.title})};return l.compile=function(){return function(e,t,a){u.apply(this,arguments)}},t}])}]),e.directive("projectFacetsShowMore",["$timeout",function(e){return{restrict:"A",link:function(t,a,o){t.facetsLimit=parseInt(o.facetsLimit,10),t.facetsTotal=parseInt(o.facetsTotal,10),t.isLimited=t.facetsLimit<t.facetsTotal,t.isExpanded=!1;var r=a[0].querySelector(".js-facets-list");t.showMore=function(){r.setAttribute("aria-hidden","false"),r.setAttribute("tabindex","-1"),r.focus(),t.isExpanded=!0,t.facetsLimit=t.facetsTotal,e(function(){r.querySelectorAll("input, button").forEach(function(e){e.removeAttribute("tabindex")})},0)},t.showLess=function(){r.setAttribute("aria-hidden","true"),r.removeAttribute("tabindex"),r.querySelectorAll("input, button").forEach(function(e){e.setAttribute("tabindex","-1")}),t.isExpanded=!1,t.facetsLimit=parseInt(o.facetsLimit,10),e(function(){r.nextElementSibling.querySelector("button").focus()},0)}}}}]),e.directive("projectFacetsDefaultCollapse",[function(){return{restrict:"A",link:function(e,t,a){e.facetIsCollapsed=function(){return!0!==e.defaultSet&&(e.collapsibleFacet.isCollapsed=e.facetData.isCollapse,e.defaultSet=!0),e.collapsibleFacet.isCollapsed}}}}])}(); 2//# sourceMappingURL=blocks.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.