1(function(){"use strict";var NS=window.BWJLoyalty=window.BWJLoyalty||{};if(NS.__rework_inited)return;NS.__rework_inited=!0;var SETTLE_TIMEOUT_MS=2e3,POINTS_PER_VOUCHER=25,EUR_PER_POINT=.99,VOUCHER_EUR=2.5;function unresolved(v){return v==null||v===""||String(v).indexOf("{{")===0}function qsa(sel,root){try{return Array.prototype.slice.call((root||document).querySelectorAll(sel))}catch(e){return[]}}function on(el,evt,fn,opts){el&&el.addEventListener&&el.addEventListener(evt,fn,opts||!1)}function readCurrencyHints(){var symEl=document.querySelector("[data-lr-currency]"),decEl=document.querySelector("[data-lr-decimal]"),symbol=symEl?symEl.getAttribute("data-lr-currency"):"",decimal=decEl?decEl.getAttribute("data-lr-decimal"):"";return symbol||(symbol="\u20AC"),decimal!=="."&&decimal!==","&&(decimal=","),{symbol:symbol,decimal:decimal}}function formatMoney(amount,hints){var n=typeof amount=="number"&&isFinite(amount)?amount:0,str=n.toFixed(2);return hints.decimal===","&&(str=str.replace(".",",")),hints.symbol+str}function readI18n(){var el=document.getElementById("lr-i18n");if(!el)return{};try{return JSON.parse(el.textContent||el.innerText||"{}")||{}}catch(e){return{}}}var I18N=readI18n();function t(key,vars){var s=I18N&&typeof I18N[key]=="string"?I18N[key]:key;if(vars)for(var k in vars)Object.prototype.hasOwnProperty.call(vars,k)&&(s=s.replace(new RegExp("\\{"+k+"\\}","g"),String(vars[k])));return s}NS.t=t;function pickData(){return NS.data&&typeof NS.data=="object"?NS.data:NS.bootstrap&&typeof NS.bootstrap=="object"?NS.bootstrap:null}function computeModel(data){var model={state:"unknown",status:"",points:0,vouchers:0,voucherValue:0,pointsRemaining:POINTS_PER_VOUCHER,pct:0,guid:""};if(!data||typeof data!="object")return model;var status=data.status;if(unresolved(status)||String(status).trim().toLowerCase()!=="active")return model;model.status="Active",model.guid=unresolved(data.guid)?"":String(data.guid);var balance=data.balance;model.points=unresolved(balance)?0:Math.round((parseFloat(String(balance).replace(",","."))||0)/EUR_PER_POINT);var vouchers=data.vouchers;model.vouchers=unresolved(vouchers)?0:parseInt(vouchers,10)||0;var vValue=data.voucherValue;return model.voucherValue=model.vouchers>0?model.vouchers*VOUCHER_EUR:unresolved(vValue)?0:parseFloat(String(vValue).replace(",","."))||0,model.pointsRemaining=Math.max(POINTS_PER_VOUCHER-model.points,0),model.pct=Math.min(Math.round(model.points/POINTS_PER_VOUCHER*100),100),model.state=model.vouchers>=1?"with-voucher":"no-voucher",model}var lastState=null;function apply(model){var hints=readCurrencyHints();qsa("[data-lr-root]").forEach(function(root){root.setAttribute("data-lr-state",model.state)}),qsa("[data-lr-fab]").forEach(function(fab){fab.setAttribute("data-lr-state",model.state)});var html=document.documentElement;model.state!=="unknown"?html.setAttribute("data-lr-member",""):html.removeAttribute("data-lr-member"),model.state==="with-voucher"?html.setAttribute("data-lr-voucher",""):html.removeAttribute("data-lr-voucher"),qsa("[data-lr-field]").forEach(function(el){var field=el.getAttribute("data-lr-field");switch(field){case"points":el.textContent=model.points;break;case"vouchers":el.textContent=model.vouchers;break;case"voucher-value":el.textContent=formatMoney(model.voucherValue,hints);break;case"points-remaining":el.textContent=model.pointsRemaining;break;default:break}}),qsa("[data-lr-bar]").forEach(function(el){el.style.width=model.pct+"%"}),qsa("[data-lr-i18n]").forEach(function(el){var key=el.getAttribute("data-lr-i18n");key&&(el.textContent=t(key,{n:model.vouchers,points:model.points,remaining:model.pointsRemaining}))}),lastState=model.state;try{document.dispatchEvent(new CustomEvent("bwj:loyalty:applied",{detail:model}))}catch(e){}}function publish(model){NS.model=model,apply(model)}var gotMember=!1;function settle(data){var model=computeModel(data);model.state!=="unknown"&&(gotMember=!0),publish(model)}function resolve(){publish(computeModel(null));var onBeacon=function(e){var d=e&&e.detail&&typeof e.detail=="object"?e.detail:pickData();settle(d)};document.addEventListener("bwj:loyalty",onBeacon);var data=pickData(),m=computeModel(data);if(data&&m.state!=="unknown"){settle(data);return}window.setTimeout(function(){gotMember||settle(pickData())},SETTLE_TIMEOUT_MS)}function initFabs(){qsa("[data-lr-fab]").forEach(function(fab){if(fab.__lrFabInit)return;fab.__lrFabInit=!0;var backdrop=fab.querySelector("[data-lr-fab-backdrop]")||document.querySelector('[data-lr-fab-backdrop][data-lr-fab-for="'+fab.id+'"]'),launcher=fab.querySelector("[data-lr-fab-toggle]"),panel=fab.querySelector(".lr-fab__panel"),closeBtn=fab.querySelector("[data-lr-fab-close]");function focusPanel(){var target=closeBtn||panel;if(target){target===panel&&!panel.hasAttribute("tabindex")&&panel.setAttribute("tabindex","-1");
1try{target.focus()}catch(e){}}}function setOpen(open2){var wasOpen=fab.classList.contains("is-open");if(fab.classList.toggle("is-open",open2),backdrop&&backdrop.classList.toggle("is-visible",open2),launcher&&launcher.setAttribute("aria-expanded",open2?"true":"false"),open2&&!wasOpen)focusPanel();else if(!open2&&wasOpen&&launcher)try{launcher.focus()}catch(e){}}function open(){setOpen(!0)}function close(){fab.classList.contains("is-open")&&setOpen(!1)}function toggle(){setOpen(!fab.classList.contains("is-open"))}on(launcher,"click",toggle),qsa("[data-lr-fab-close]",fab).forEach(function(btn){on(btn,"click",close)}),on(backdrop,"click",close),fab.lrOpen=open,fab.lrClose=close,fab.lrToggle=toggle}),NS.__escBound||(NS.__escBound=!0,on(document,"keydown",function(e){(e.key==="Escape"||e.keyCode===27)&&qsa("[data-lr-fab].is-open").forEach(function(fab){if(typeof fab.lrClose=="function")fab.lrClose();else{fab.classList.remove("is-open");var l=fab.querySelector("[data-lr-fab-toggle]");l&&l.setAttribute("aria-expanded","false")}})}))}NS.refresh=function(){initFabs(),NS.model&&apply(NS.model)};function boot(){initFabs(),resolve()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",boot,{once:!0}):boot()})(); 2//# sourceMappingURL=/cdn/shop/t/7/assets/loyalty-rework.js.map?v=132225924678266780071782304286
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.