1<!doctype html> 2<html lang="nl"> 3<head prefix="og: http://ogp.me/ns# category: http://ogp.me/ns/category#"> 4 <meta charset="utf-8"/> 5<meta name="title" content="Incontinentiemateriaal | Uitgebreid Assortiment"/> 6<meta name="description" content="Incontinentiemateriaal voor elke behoefte â Kies uit ons uitgebreide assortiment producten voor elk type incontinentie. Betrouwbare bescherming, dag na dag, met comfort en zekerheid in gedachten."/> 7<meta name="robots" content="INDEX,FOLLOW"/> 8<meta name="viewport" content="width=device-width, initial-scale=1"/> 9<title>Incontinentiemateriaal | Uitgebreid Assortiment</title> 10 <link rel="stylesheet" type="text/css" media="all" href="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/css/styles.css" />
11<script type="text/javascript" src="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/Smile_ElasticsuiteTracker/js/tracking.js"></script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript" src="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/Doofinder_Feed/js/df_add_to_cart_hyva.js"></script>
12 13<link rel="preload" as="font" crossorigin="anonymous" href="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/fonts/Poppins-400.woff2" /> 14<link rel="preload" as="font" crossorigin="anonymous" href="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/fonts/Poppins-500.woff2" /> 15<link rel="preload" as="font" crossorigin="anonymous" href="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/fonts/Poppins-700.woff2" /> 16<link rel="canonical" href="https://www.123drogisterij.nl/incontinentiemateriaal" /> 17<link rel="icon" type="image/x-icon" href="https://www.123drogisterij.nl/media/favicon/default/favicon.ico" /> 18<link rel="shortcut icon" type="image/x-icon" href="https://www.123drogisterij.nl/media/favicon/default/favicon.ico" /> 19<meta name="google-site-verification" content="qG8Tf2kX_npftVwSXy0AxjuBJYCfmBGXMruiRHYYYv4" /> 20<!-- Start Sooqr.com on-site search and navigation code --> 21 <!--
21<script type="text/javascript"> 22 var _wssq = _wssq || []; 23 var setResizeFunction1= false; 24 var sooqrAccount1 = '100848-1'; 25 26 _wssq.push(['_load', { 'suggest' : { 'account' : 'SQ-' + sooqrAccount1, 'version' : 4, fieldId : 'q'}}]); 27 _wssq.push(['suggest._setPosition', 'screen-middle', {top:0}]); 28 _wssq.push(['suggest._setLocale', 'nl_NL']); 29 _wssq.push(['suggest._excludePlaceholders', 'Zoek uw product']); 30 _wssq.push(['suggest._bindEvent', 'open', function() { 31 if(!setResizeFunction1) {$jQ( window ).resize(function() {if($jQ('.sooqrSearchContainer-' + sooqrAccount1).is(':visible')) {websight.sooqr.instances['SQ-' + sooqrAccount1].positionContainer(null, null, true);}});setResizeFunction1 = true;} 32 }]); 33 34 var setResizeFunction2= false; 35 var sooqrAccount2 = '100848-2'; 36 37 _wssq.push(['_load', { 'suggest' : { 'namespace' : 'secondview', 'account' : 'SQ-' + sooqrAccount2, 'version' : 4, fieldId : 'q2'}}]); 38 _wssq.push(['secondview._setPosition', 'screen-middle', {top:0}]); 39 _wssq.push(['secondview._setLocale', 'nl_NL']); 40 _wssq.push(['secondview._excludePlaceholders', 'Zoek uw product']); 41 _wssq.push(['secondview._bindEvent', 'open', function() { 42 if(!setResizeFunction2) {$jQ( window ).resize(function() {if($jQ('.sooqrSearchContainer-' + sooqrAccount2).is(':visible')) {websight.sooqr.instances['SQ-' + sooqrAccount2].positionContainer(null, null, true);}});setResizeFunction2 = true;} 43 }]); 44 45 (function() { 46 var ws = document.createElement('script'); ws.type = 'text/javascript'; ws.async = true; 47 ws.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'static.sooqr.com/sooqr.js'; 48 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ws, s); 49 })(); 50 </script>
50 --> 51<!-- End Sooqr.com on-site search and navigation code --> 52 53<!-- Start VWO Async SmartCode --> 54<link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" />
55<script type='text/javascript' id='vwoCode'> 56window._vwo_code || (function() { 57var account_id=777352, 58version=2.0, 59settings_tolerance=2000, 60hide_element='body', 61hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', 62/* DO NOT EDIT BELOW THIS LINE */ 63f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(){if(!f){f=true;var e=d.getElementById('_vis_opt_path_hides');if(e)e.parentNode.removeChild(e)}},finished:function(){return f},load:function(e){var t=this.getSettings(),n=d.createElement('script'),i=this;if(t){n.textContent=t;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);i.load(e)}}else{n.fetchPriority='high';n.src=e;n.type='text/javascript';n.onerror=function(){_vwo_code.finish()};d.getElementsByTagName('head')[0].appendChild(n)}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t=d.currentScript,n=d.createElement('style'),i=this.hide_element(),r=t&&!t.async&&i?i+this.hide_element_style():'',c=d.getElementsByTagName('head')[0];n.setAttribute('id','_vis_opt_path_hides');v&&n.setAttribute('nonce',v.nonce);n.setAttribute('type','text/css');if(n.styleSheet)n.styleSheet.cssText=r;else n.appendChild(d.createTextNode(r));c.appendChild(n);this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version)}};w._vwo_code=code;code.init();})(); 64</script>
64 65<!-- End VWO Async SmartCode --> 66 <link rel="alternate" hreflang="nl-be" href="https://www.zorgland.be/incontinentiemateriaal"/> 67 <link rel="alternate" hreflang="nl-nl" href="https://www.123drogisterij.nl/incontinentiemateriaal"/> 68 <link rel="alternate" hreflang="de-de" href="https://www.dryonline.de/inkontinenzmaterial"/> 69<!-- Google Tag Manager --> 70 71
71<script> 72 window.mfGtmUserActionDetected = true; 73 74 window.mfGtmUserCookiesAllowed = true; 75 mfLoadGtm(); 76 77 78 function getMfGtmCustomerData() { 79 return localStorage.getItem('mf_gtm_customer_data') ? JSON.parse(localStorage.getItem('mf_gtm_customer_data')) : {}; 80 }; 81 82 function mfLoadGtm() { 83 if (!window.mfGtmUserActionDetected) return false; 84 if (!window.mfGtmLoadBeforeCookieAllowed && !window.mfGtmUserCookiesAllowed) return false; 85 86 if (window.mfGTMTriedToLoad) return; 87 window.mfGTMTriedToLoad = true; 88 89 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 90 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 91 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.setAttributeNode(d.createAttribute('data-ot-ignore'));j.async=true; 92 j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 93 })(window,document,'script','dataLayer','GTM-K5WHH8'); 94 95 }; 96 </script>
96 97
97<script> 98 /* Hyva code */ 99 function mfHyvaGtmSetCustomerData(event) { 100 let data, j; 101 let sections = event.detail.data; 102 for (j in sections) { 103 data = sections[j]; 104 if (data.mf_gtm_customer_data) { 105 localStorage.setItem('mf_gtm_customer_data', JSON.stringify(data.mf_gtm_customer_data)); 106 return; 107 } 108 } 109 }; 110 window.addEventListener('private-content-loaded', mfHyvaGtmSetCustomerData); 111 /* End Hyva code */ 112 </script>
112<!-- End Google Tag Manager --> 113
113<script> 114 //<![CDATA[ 115 function userConsentEsTraking(config) 116 { 117 return config.cookieRestrictionEnabled == false || hyva.getCookie(config.cookieRestrictionName) !== null; 118 } 119 120 try { 121 smileTracker.setConfig({ 122 beaconUrl : 'https://www.123drogisterij.nl/elasticsuite/tracker/hit/image/h.png', 123 telemetryUrl : 'https://t.elasticsuite.io/track', 124 telemetryEnabled : '', 125 sessionConfig : {"visit_cookie_name":"STUID","visit_cookie_lifetime":"3600","visitor_cookie_lifetime":"365","visitor_cookie_name":"STVID","domain":"www.123drogisterij.nl","path":"\/"}, 126 }); 127 128 smileTracker.addPageVar('store_id', '2'); 129 130 document.addEventListener('DOMContentLoaded', function () { 131 if (userConsentEsTraking({"cookieRestrictionEnabled":"0","cookieRestrictionName":"user_allowed_save_cookie"})) { 132 smileTracker.sendTag(); 133 } 134 }); 135 } catch (err) { 136 ; 137 } 138 //]]> 139 </script>
vendor: 1 bytes, line 139
139
140<script> 141 var BASE_URL = 'https://www.123drogisterij.nl/'; 142 var THEME_PATH = 'https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL'; 143 var COOKIE_CONFIG = { 144 "expires": null, 145 "path": "\u002F", 146 "domain": ".www.123drogisterij.nl", 147 "secure": true, 148 "lifetime": "3600", 149 "cookie_restriction_enabled": false }; 150 var CURRENT_STORE_CODE = 'default_migrated'; 151 var CURRENT_WEBSITE_ID = '2'; 152 153 window.hyva = window.hyva || {} 154 155 window.cookie_consent_groups = window.cookie_consent_groups || {} 156 window.cookie_consent_groups['necessary'] = true; 157 158 window.cookie_consent_config = window.cookie_consent_config || {}; 159 window.cookie_consent_config['necessary'] = [].concat( 160 window.cookie_consent_config['necessary'] || [], 161 [ 162 'user_allowed_save_cookie', 163 'form_key', 164 'mage-messages', 165 'private_content_version', 166 'mage-cache-sessid', 167 'last_visited_store', 168 'section_data_ids' 169 ] 170 ); 171</script>
vendor: 1 bytes, line 171
171
172<script> 173 (function( hyva, undefined ) { 174 175 function lifetimeToExpires(options, defaults) { 176 177 const lifetime = options.lifetime || defaults.lifetime; 178 179 if (lifetime) { 180 const date = new Date; 181 date.setTime(date.getTime() + lifetime * 1000); 182 return date; 183 } 184 185 return null; 186 } 187 188 function generateRandomString() { 189 190 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 191 length = 16; 192 193 let formKey = '', 194 charactersLength = allowedCharacters.length; 195 196 for (let i = 0; i < length; i++) { 197 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 198 } 199 200 return formKey; 201 } 202 203 const sessionCookieMarker = {noLifetime: true} 204 205 const cookieTempStorage = {}; 206 207 const internalCookie = { 208 get(name) { 209 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 210 return v ? v[2] : null; 211 }, 212 set(name, value, days, skipSetDomain) { 213 let expires, 214 path, 215 domain, 216 secure, 217 samesite; 218 219 const defaultCookieConfig = { 220 expires: null, 221 path: '/', 222 domain: null, 223 secure: false, 224 lifetime: null, 225 samesite: 'lax' 226 }; 227 228 const cookieConfig = window.COOKIE_CONFIG || {}; 229 230 expires = days && days !== sessionCookieMarker 231 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 232 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 233 234 path = cookieConfig.path || defaultCookieConfig.path; 235 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 236 secure = cookieConfig.secure || defaultCookieConfig.secure; 237 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 238 239 document.cookie = name + "=" + encodeURIComponent(value) + 240 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 241 (path ? '; path=' + path : '') + 242 (domain ? '; domain=' + domain : '') + 243 (secure ? '; secure' : '') + 244 (samesite ? '; samesite=' + samesite : 'lax'); 245 }, 246 isWebsiteAllowedToSaveCookie() { 247 const allowedCookies = this.get('user_allowed_save_cookie'); 248 if (allowedCookies) { 249 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 250 251 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 252 } 253 return false; 254 }, 255 getGroupByCookieName(name) { 256 const cookieConsentConfig = window.cookie_consent_config || {}; 257 let group = null; 258 for (let prop in cookieConsentConfig) { 259 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 260 if (cookieConsentConfig[prop].includes(name)) { 261 group = prop; 262 break; 263 } 264 } 265 return group; 266 }, 267 isCookieAllowed(name) { 268 const cookieGroup = this.getGroupByCookieName(name); 269 return cookieGroup 270 ? window.cookie_consent_groups[cookieGroup] 271 : this.isWebsiteAllowedToSaveCookie(); 272 }, 273 saveTempStorageCookies() { 274 for (const [name, data] of Object.entries(cookieTempStorage)) { 275 if (this.isCookieAllowed(name)) { 276 this.set(name, data['value'], data['days'], data['skipSetDomain']); 277 delete cookieTempStorage[name]; 278 } 279 } 280 } 281 }; 282 283 hyva.getCookie = (name) => { 284 const cookieConfig = window.COOKIE_CONFIG || {}; 285 286 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 287 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 288 } 289 290 return internalCookie.get(name); 291 } 292 293 hyva.setCookie = (name, value, days, skipSetDomain) => { 294 const cookieConfig = window.COOKIE_CONFIG || {}; 295 296 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 297 cookieTempStorage[name] = {value, days, skipSetDomain}; 298 return; 299 } 300 return internalCookie.set(name, value, days, skipSetDomain); 301 } 302 303 304 hyva.setSessionCookie = (name, value, skipSetDomain) => { 305 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 306 } 307 308 hyva.getBrowserStorage = () => { 309 const browserStorage = window.localStorage || window.sessionStorage; 310 if (!browserStorage) { 311 console.warn('Browser Storage is unavailable'); 312 return false;
313 } 314 try { 315 browserStorage.setItem('storage_test', '1'); 316 browserStorage.removeItem('storage_test'); 317 } catch (error) { 318 console.warn('Browser Storage is not accessible', error); 319 return false; 320 } 321 return browserStorage; 322 } 323 324 hyva.postForm = (postParams) => { 325 const form = document.createElement("form"); 326 327 let data = postParams.data; 328 329 if (! postParams.skipUenc && ! data.uenc) { 330 data.uenc = btoa(window.location.href); 331 } 332 form.method = "POST"; 333 form.action = postParams.action; 334 335 Object.keys(postParams.data).map(key => { 336 const field = document.createElement("input"); 337 field.type = 'hidden' 338 field.value = postParams.data[key]; 339 field.name = key; 340 form.appendChild(field); 341 }); 342 343 const form_key = document.createElement("input"); 344 form_key.type = 'hidden'; 345 form_key.value = hyva.getFormKey(); 346 form_key.name="form_key"; 347 form.appendChild(form_key); 348 349 document.body.appendChild(form); 350 351 form.submit(); 352 } 353 354 hyva.getFormKey = function () { 355 let formKey = hyva.getCookie('form_key'); 356 357 if (!formKey) { 358 formKey = generateRandomString(); 359 hyva.setCookie('form_key', formKey); 360 } 361 362 return formKey; 363 } 364 365 hyva.formatPrice = (value, showSign, options = {}) => { 366 const groupSeparator = options.groupSeparator; 367 const decimalSeparator = options.decimalSeparator 368 delete options.groupSeparator; 369 delete options.decimalSeparator; 370 const formatter = new Intl.NumberFormat( 371 'nl\u002DNL', 372 Object.assign({ 373 style: 'currency', 374 currency: 'EUR', 375 signDisplay: showSign ? 'always' : 'auto' 376 }, options) 377 ); 378 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 379 formatter.formatToParts(value).map(({type, value}) => { 380 switch (type) { 381 case 'currency': 382 return '\u20AC' || value; 383 case 'minusSign': 384 return '- '; 385 case 'plusSign': 386 return '+ '; 387 case 'group': 388 return groupSeparator !== undefined ? groupSeparator : value; 389 case 'decimal': 390 return decimalSeparator !== undefined ? decimalSeparator : value; 391 default : 392 return value; 393 } 394 }).reduce((string, part) => string + part) : 395 formatter.format(value); 396 } 397 398 const formatStr = function (str, nStart) { 399 const args = Array.from(arguments).slice(2); 400 401 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 402 const idx = parseInt(n) - nStart; 403 404 if (args[idx] === null || args[idx] === void 0) { 405 return m; 406 } 407 return p.length % 2 408 ? p.slice(0, -1).replace('%%', '%') + args[idx] 409 : p.replace('%%', '%') + n; 410 }) 411 } 412 413 hyva.str = function (string) { 414 const args = Array.from(arguments); 415 args.splice(1, 0, 1); 416 417 return formatStr.apply(undefined, args); 418 } 419 420 hyva.strf = function () { 421 const args = Array.from(arguments); 422 args.splice(1, 0, 0); 423 424 return formatStr.apply(undefined, args); 425 } 426 427 /** 428 * Take a html string as `content` parameter and 429 * extract an element from the DOM to replace in 430 * the current page under the same selector, 431 * defined by `targetSelector` 432 */ 433 hyva.replaceDomElement = (targetSelector, content) => { 434 // Parse the content and extract the DOM node using the `targetSelector` 435 const parser = new DOMParser(); 436 const doc = parser.parseFromString(content, 'text/html');
437 const contentNode = doc.querySelector(targetSelector); 438 439 // Bail if content or target can't be found 440 if (!contentNode || !document.querySelector(targetSelector)) { 441 return; 442 } 443 444 hyva.activateScripts(contentNode); 445 446 // Replace the old DOM node with the new content 447 document.querySelector(targetSelector).replaceWith(contentNode); 448 449 // Reload customerSectionData and display cookie-messages if present 450 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 451 hyva.initMessages(); 452 } 453 454 hyva.removeScripts = (contentNode) => { 455 const scripts = contentNode.getElementsByTagName('script'); 456 for (let i = 0; i < scripts.length; i++) { 457 scripts[i].parentNode.removeChild(scripts[i]); 458 } 459 const templates = contentNode.getElementsByTagName('template'); 460 for (let i = 0; i < templates.length; i++) { 461 const container = document.createElement('div'); 462 container.innerHTML = templates[i].innerHTML; 463 hyva.removeScripts(container); 464 templates[i].innerHTML = container.innerHTML; 465 } 466 } 467 468 hyva.activateScripts = (contentNode) => { 469 // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM. 470 const scripts = Array.from(contentNode.getElementsByTagName('script')); 471 472 // Iterate over all script tags to duplicate+inject each into the head 473 for (const original of scripts) { 474 const script = document.createElement('script'); 475 original.type && (script.type = original.type); 476 script.innerHTML = original.innerHTML; 477 478 // Remove the original (non-executing) script from the contentNode 479 original.parentNode.removeChild(original) 480 481 // Add script to head 482 document.head.appendChild(script); 483 } 484 485 return contentNode; 486 } 487 488 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 489 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 490 491 let currentTrap; 492 493 const focusableElements = (rootElement) => { 494 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 495 return Array.from(rootElement.querySelectorAll(selector)) 496 .filter(el => { 497 return el.style.display !== 'none' 498 && !el.disabled 499 && el.tabIndex !== -1 500 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 501 }) 502 } 503 504 const focusTrap = (e) => { 505 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 506 if (!isTabPressed) return; 507 508 const focusable = focusableElements(currentTrap) 509 const firstFocusableElement = focusable[0] 510 const lastFocusableElement = focusable[focusable.length - 1] 511 512 e.shiftKey 513 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 514 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 515 }; 516 517 hyva.releaseFocus = (rootElement) => { 518 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 519 currentTrap.removeEventListener('keydown', focusTrap) 520 currentTrap = null 521 } 522 } 523 hyva.trapFocus = (rootElement) => { 524 if (!rootElement) return; 525 hyva.releaseFocus() 526 currentTrap = rootElement 527 rootElement.addEventListener('keydown', focusTrap) 528 const firstElement = focusableElements(rootElement)[0] 529 firstElement && firstElement.focus() 530 } 531 532 hyva.safeParseNumber = (rawValue) => { 533 const number = rawValue ? parseFloat(rawValue) : null; 534 535 return Array.isArray(number) || isNaN(number) ? rawValue : number; 536 } 537 538 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 539 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 540 541 const camelCase = toCamelCase(name);
542 const key = '__hyva_bool_' + name 543 544 return new Proxy(Object.assign( 545 additionalMethods, 546 { 547 [key]: !!value, 548 [name]() {return !!this[key]}, 549 ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine 550 ['not' + camelCase]() {return !this[key]}, 551 ['toggle' + camelCase]() {this[key] = !this[key]}, 552 [`set${camelCase}True`]() {this[key] = true}, 553 [`set${camelCase}False`]() {this[key] = false}, 554 } 555 ), { 556 set(target, prop, value) { 557 return prop === name 558 ? (target[key] = !!value) 559 : Reflect.set(...arguments); 560 } 561 }) 562 } 563 564 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 565 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 566 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 567 568 }( window.hyva = window.hyva || {} )); 569</script>
569 570<!-- BEGIN CHATGPT ADS MEASUREMENT PIXEL -->
571<script> 572 { 573 (function () { 574 var pixelId = "6uQadyXVKUiqKoBqYtRvys"; 575 var config = { 576 isCookieRestrictionModeEnabled: false, 577 cookieName: 'user_allowed_save_cookie', 578 currentWebsite: '2' 579 }; 580 581 function hasMagentoCookieConsent() { 582 if (!config.isCookieRestrictionModeEnabled) return true; 583 if (typeof hyva === 'undefined' || !hyva.getCookie) return false; 584 585 var allowedCookies = hyva.getCookie(config.cookieName); 586 if (allowedCookies === null) return false; 587 588 var allowedWebsites = JSON.parse(unescape(allowedCookies)); 589 return allowedWebsites[config.currentWebsite] === 1; 590 } 591 592 function hasCookiebotConsent() { 593 return !!(Cookiebot.hasResponse && Cookiebot.consent && Cookiebot.consent.marketing); 594 } 595 596 function initChatGptPixel() { 597 if (window.oaiq || !hasMagentoCookieConsent()) return; 598 if (typeof Cookiebot !== 'undefined' && !hasCookiebotConsent()) return; 599 600 (function (w, d, s, u) { 601 if (w.oaiq) return; 602 var q = function () { 603 q.q.push(arguments); 604 }; 605 q.q = []; 606 w.oaiq = q; 607 var js = d.createElement(s); 608 js.async = true; 609 js.src = u; 610 var f = d.getElementsByTagName(s)[0]; 611 f.parentNode.insertBefore(js, f); 612 })(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js"); 613 614 oaiq("init", { 615 pixelId: pixelId 616 }); 617 } 618 619 window.addEventListener('user-allowed-save-cookie', initChatGptPixel); 620 window.addEventListener('CookiebotOnConsentReady', initChatGptPixel); 621 window.addEventListener('CookiebotOnAccept', initChatGptPixel); 622 623 // Cookiebot loads asynchronously (via GTM); wait for it to appear before 624 // treating its absence as "this store does not use Cookiebot". 625 (function waitForCookiebot(attemptsLeft) { 626 if (typeof Cookiebot !== 'undefined' || attemptsLeft <= 0) { 627 initChatGptPixel(); 628 return; 629 } 630 setTimeout(function () { waitForCookiebot(attemptsLeft - 1); }, 200); 631 })(25); 632 }()) 633 } 634</script>
634 635<!-- END CHATGPT ADS MEASUREMENT PIXEL -->
636<script type="speculationrules"> 637{ 638 "tag": "Hyva Theme", 639 "prefetch": [{ 640 "source": "document", 641 "where": { 642 "and": [ 643 { "href_matches": "/*" }, 644 { "not": { 645 "href_matches": ["/customer/*","*/customer/*","/search/*","*/search/*","/sales/*","*/sales/*","/wishlist/*","*/wishlist/*","/checkout/*","*/checkout/*","/paypal/*","*/paypal/*"] }}, 646 { "not": { 647 "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"] 648 }} 649 ] 650 }, 651 "eagerness": "moderate" 652 }] 653} 654</script>
vendor: 1 bytes, line 654
654
655<script nonce="azE4bWg3dmRjeDM1ZnlvYmUyNGQwN3Rzbjd3eDI3ZDM="> 656 var dfPageType = "category"; 657 var dfProductId = ""; 658 var dfCategoryName = "Incontinentiemateriaal"; 659</script>
659 660
660<script nonce="azE4bWg3dmRjeDM1ZnlvYmUyNGQwN3Rzbjd3eDI3ZDM="> 661 (function(w, k) {w[k] = window[k] || 662 function () { (window[k].q = window[k].q || []).push(arguments) }})(window, "doofinderApp") 663 664 doofinderApp("config", "language", "nl") 665 doofinderApp("config", "currency", "EUR") 666 doofinderApp("config", "priceName", "EUR") 667 </script>
vendor: 1 bytes, line 667
667
668<script src="https://eu1-config.doofinder.com/2.x/bac20ef8-c1e7-4f6f-83a4-a38262eb76d2.js" async></script>
668<link rel="next" href="https://www.123drogisterij.nl/incontinentiemateriaal?p=2" /> 669</head> 670<body id="html-body" class="page-with-filter page-products categorypath-incontinentiemateriaal category-incontinentiemateriaal catalog-category-view page-layout-2columns-left">
671<script data-mfmofile="true"> 672 function mfGtmGetEcommPageType() { 673 var body = document.getElementsByTagName('body')[0]; 674 var ept = 'other'; 675 676 if (body.className.indexOf('cms-index-index') > -1) { 677 ept = 'home'; 678 } else if (body.className.indexOf('catalog-category-view') > -1) { 679 ept = 'category'; 680 } else if (body.className.indexOf('catalog-product-view') > -1) { 681 ept = 'product'; 682 } else if (body.className.indexOf('checkout-cart-index') > -1) { 683 ept = 'cart'; 684 } else if (body.className.indexOf('checkout-index-index') > -1) { 685 ept = 'checkout'; 686 } else if (body.className.indexOf('contact-index-index') > -1) { 687 ept = 'contact'; 688 } else if (body.className.indexOf('catalogsearch-result-index') > -1) { 689 ept = 'searchresults'; 690 } else if (body.className.indexOf('cms-page-view') > -1) { 691 ept = 'cmspage'; 692 }; 693 return ept; 694 }; 695</script>
695 696
696<script> 697 function mfHyvaGtmCustomerDataLayer(event) { 698 let data, eventFired, i, j, k; 699 let sections = event.detail.data; 700 for ( j in sections) { 701 data = sections[j]; 702 if (!data.mf_datalayer) continue; 703 704 for (i = 0; i < data.mf_datalayer.length; i++) { 705 window.dataLayer = window.dataLayer || []; 706 eventFired = false; 707 for (k = 0; k < window.dataLayer.length; k++) { 708 if (data.mf_datalayer[i].magefanUniqueEventId 709 && data.mf_datalayer[i].magefanUniqueEventId == window.dataLayer[k].magefanUniqueEventId 710 ) { 711 eventFired = true; 712 break; 713 } 714 } 715 if (!eventFired) { 716 /* 717 if (!data.mf_datalayer[i].customer_identifier 718 || (data.mf_datalayer[i].customer_identifier.indexOf('getMfGtmCustomerIdentifier') != -1) 719 ) { 720 data.mf_datalayer[i].customer_identifier = getMfGtmCustomerIdentifier(); 721 } 722 */ 723 724 var ept = data.mf_datalayer[i].ecomm_pagetype; 725 if ('other' === ept) { 726 ept = mfGtmGetEcommPageType(); 727 data.mf_datalayer[i].ecomm_pagetype = ept; 728 if (data.mf_datalayer[i].google_tag_params) { 729 data.mf_datalayer[i].google_tag_params.ecomm_pagetype = ept; 730 } 731 }; 732 window.dataLayer.push(data.mf_datalayer[i]); 733 } 734 } 735 736 delete event.detail.data[j].mf_datalayer; 737 let mcs = localStorage.getItem('mage-cache-storage'); 738 if (mcs) { 739 mcs = JSON.parse(mcs); 740 if (mcs && mcs[j] && mcs[j].mf_datalayer) { 741 delete mcs[j].mf_datalayer; 742 localStorage.setItem('mage-cache-storage', JSON.stringify(mcs)); 743 } 744 } 745 } 746 }; 747 window.addEventListener('private-content-loaded', mfHyvaGtmCustomerDataLayer); 748</script>
vendor: 1 bytes, line 748
748
749<script> 750 document.addEventListener("DOMContentLoaded", function() { 751 document.querySelectorAll("a").forEach(function(link) { 752 link.addEventListener("click", function(event) { 753 let url = link.href; 754 let items, j, x, newDataLayer, dli, index; 755 if (url && window.dataLayer && window.dataLayer.length) { 756 for (let i=0; i<window.dataLayer.length; i++) { 757 dli = window.dataLayer[i]; 758 if (dli.event == "view_item_list" 759 && dli.ecommerce 760 && dli.ecommerce.items 761 && dli.ecommerce.items.length 762 ) { 763 items = dli.ecommerce.items; 764 newDataLayer = false; 765 index = -1; 766 for (j=0; j<items.length; j++) { 767 index++; 768 if (items[j].item_url == url) { 769 newDataLayer = { 770 "event": "select_item", 771 "ecommerce": { 772 "item_list_id": dli.ecommerce.item_list_id, 773 "item_list_name": dli.ecommerce.item_list_name, 774 "items": [items[j]] 775 }, 776 "magefanUniqueEventId": "select_item_" + dli.magefanUniqueEventId, 777 "ecomm_pagetype": dli.ecomm_pagetype, 778 "google_tag_params": { 779 "ecomm_pagetype": dli.google_tag_params.ecomm_pagetype 780 } 781 }; 782 783 let dynamicKeys = ["customer_firstname","customer_lastname","customer_email","customer_dob","customer_gender","customer_telephone","customer_postcode","customer_city","customer_region","customer_country_id","customer_identifier","customerGroup"]; 784 for (x=0; x<dynamicKeys.length;x++) { 785 let key = dynamicKeys[x]; 786 newDataLayer[key] = dli[key]; 787 } 788 789 newDataLayer.ecommerce.items[0].index = index; 790 break; 791 }; 792 }; 793 794 if (newDataLayer) { 795 window.dataLayer.push(newDataLayer); 796 797 //window.location = url; 798 //return false; 799 } 800 } 801 } 802 } 803 }); 804 }); 805 }); 806</script>
806 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 806-807
806 807 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
807GTM-K5WHH8
vendor: 117 bytes, lines 807-809
807" 808 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 809
809<!-- End Google Tag Manager (noscript) --> 810
810<script src="https://app.aiden.cx/webshop/build/aiden-embedded.min.js" async=""></script>
810<input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> 811 <noscript> 812 <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> 813 <div class="container text-center"> 814 <p> 815 <strong>JavaScript lijkt te zijn uitgeschakeld in uw browser.</strong> 816 <span> 817 Voor de beste gebruikerservaring, zorg ervoor dat javascript ingeschakeld is voor uw browser. </span> 818 </p> 819 </div> 820 </section> 821 </noscript> 822 823
824<script> 825 document.body.addEventListener('touchstart', () => {}, {passive: true}) 826</script>
826 827<div class="page-wrapper"> 828<div class="bg-gray-100 py-1.5 font-medium text-sm h-[54px] lg:text-md"> 829 <div class="relative container w-full justify-between"> 830 <div class="flex w-full justify-center items-center gap-8 invisible sm:justify-start lg:visible" data-content-type="header-usps"> 831 <div class="flex justify-center items-center gap-1.5"> 832 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-primary-500" width="24" height="24" role="img"> 833 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 834 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 835 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 836<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 837 <span class="relative"> 838 Tot 22:30 uur besteld = morgen in huis <span 839 class="relative inline-flex items-center z-30" 840 x-data="{ open: false, top: 0, left: 0, setPosition() { const rect = this.$refs.trigger.getBoundingClientRect(); this.top = rect.bottom + 8; this.left = rect.left + (rect.width / 2); } }" 841 @mouseenter="open = true; setPosition()" 842 @mouseleave="open = false" 843 > 844 <button 845 type="button" 846 class="inline-flex items-center cursor-pointer" 847 x-ref="trigger" 848 @focus="open = true; setPosition()" 849 @blur="open = false" 850 @keydown.escape.window="open = false" 851 aria-label="Delivery info" 852 > 853 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative top-1 ml-1 h-5 w-5" width="24" height="24" role="img"> 854 <path stroke-linecap="round" stroke-linejoin="round" d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"/> 855<title/></svg> 856 </button> 857 <template x-teleport="body"> 858 <span 859 x-show="open" 860 x-cloak 861 class="fixed p-2 bg-white text-black text-sm rounded shadow-lg pointer-events-none z-[9999] break-words w-[70vw] max-w-[240px]" 862 :style="`top:${top}px;left:${left}px;transform:translateX(-50%);`" 863 > 864 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 865 </template> 866 </span> 867 </span> 868 </div> 869 <div class="flex justify-center items-center gap-1.5"> 870 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-primary-500" width="24" height="24" role="img"> 871 <path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-1.902 7.098a3.75 3.75 0 013.903-.884.75.75 0 10.498-1.415A5.25 5.25 0 008.005 9.75H7.5a.75.75 0 000 1.5h.054a5.281 5.281 0 000 1.5H7.5a.75.75 0 000 1.5h.505a5.25 5.25 0 006.494 2.701.75.75 0 00-.498-1.415 3.75 3.75 0 01-4.252-1.286h3.001a.75.75 0 000-1.5H9.075a3.77 3.77 0 010-1.5h3.675a.75.75 0 000-1.5h-3c.105-.14.221-.274.348-.402z" clip-rule="evenodd"/> 872<title>Achteraf betalen</title></svg>
873 <span> 874 Achteraf betalen </span> 875 </div> 876 <div class="flex justify-center items-center gap-1.5"> 877 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-primary-500" width="24" height="24" role="img"> 878 <path fill-rule="evenodd" d="M12 1.5a5.25 5.25 0 00-5.25 5.25v3a3 3 0 00-3 3v6.75a3 3 0 003 3h10.5a3 3 0 003-3v-6.75a3 3 0 00-3-3v-3c0-2.9-2.35-5.25-5.25-5.25zm3.75 8.25v-3a3.75 3.75 0 10-7.5 0v3h7.5z" clip-rule="evenodd"/> 879<title>100% anoniem verpakt</title></svg> 880 <span> 881 100% anoniem verpakt </span> 882 </div> 883 <div class="flex justify-center items-center gap-1.5"> 884 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-primary-500" width="24" height="24" role="img"> 885 <path fill-rule="evenodd" d="M19.916 4.626a.75.75 0 01.208 1.04l-9 13.5a.75.75 0 01-1.154.114l-6-6a.75.75 0 011.06-1.06l5.353 5.353 8.493-12.739a.75.75 0 011.04-.208z" clip-rule="evenodd"/> 886<title>Niet goed, geld terug</title></svg> 887 <span> 888 Niet goed, geld terug </span> 889 </div> 890 <a class="flex items-center p-1 gap-1 bg-white rounded-lg xl:ml-auto hover:underline" 891 href="https://www.kiyoh.com/reviews/1044623/123drogisterij_nl" target="_blank" 892 title="Ga naar Kiyoh" 893 > 894 <div class="relative"> 895 <img height="32" width="32" alt="Kiyoh reviews" src="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/Magento_Theme/images/kiyoh.svg"/> 896 <span class="absolute top-2.5 left-2 text-xs font-medium">9.5</span> 897 </div> 898 <span class="font-normal ml-1"> 899 5231 beoordelingen </span> 900 </a> 901 </div> 902 </div> 903</div> 904<header class="page-header bg-white z-20"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focu
904s:bg-white 905 contentarea" 906 href="#contentarea"> 907 <span> 908 Ga naar de inhoud </span> 909</a>
910<script type="application/javascript" async 911 src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=VE3mHN"></script>
911 912<div x-data="initKlaviyoCustomerTracking()" 913 @private-content-loaded.window="sendCustomerDataToKlaviyo(event.detail.data)"></div> 914
914<script> 915 function initKlaviyoCustomerTracking() { 916 return { 917 sendCustomerDataToKlaviyo(data) { 918 window._learnq = window._learnq || []; 919 const customer = data.customer; 920 921 if (customer && customer.email) { 922 window._learnq.push(['identify', { 923 $email: customer.email, 924 $first_name: customer.firstname ? customer.firstname : '', 925 $last_name: customer.lastname ? customer.lastname : '' 926 }]); 927 } 928 } 929 } 930 } 931 </script>
931 932
933<script> 934 function initHeader () { 935 return { 936 customer: false, 937 searchOpen: false, 938 cart: {}, 939 isCartOpen: false, 940 getData(data) { 941 if (data.cart) { 942 this.cart = data.cart 943 } 944 if (data.customer) { 945 this.customer = data.customer; 946 } 947 }, 948 isCartEmpty() { 949 return !this.cart.summary_count 950 }, 951 toggleCart(event) { 952 if (event.detail && event.detail.isOpen !== undefined) { 953 this.isCartOpen = event.detail.isOpen 954 if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { 955 this.$refs.cartButton.focus() 956 } 957 } else { 958 this.isCartOpen = true 959 } 960 } 961 } 962 } 963 964 function initCompareHeader() { 965 return { 966 compareProducts: null, 967 itemCount: 0, 968 receiveCompareData(data) { 969 if (data['compare-products']) { 970 this.compareProducts = data['compare-products']; 971 this.itemCount = this.compareProducts.count; 972 } 973 } 974 } 975 } 976 977 let lastScroll = 0; 978 let isScrolled = false; 979 let scrollUpThreshold = 200; 980 let scrollUpDistance = 0; 981 982 window.addEventListener("scroll", function () { 983 var topHeader = document.querySelector(".page-header"); 984 var searchWrapper = document.querySelector("#sticky-search-wrapper"); 985 var currentScroll = 986 window.pageYOffset || 987 document.documentElement.scrollTop || 988 document.body.scrollTop || 989 0; 990 991 var isScrollingUp = currentScroll < lastScroll; 992 isScrolled = currentScroll > 100; // Header becomes sticky 993 994 var isMenuOpen = document.querySelector('.menu-open'); 995 996 // Only if meun is not open 997 if (isMenuOpen === null) { 998 if (isScrollingUp) { 999 scrollUpDistance += lastScroll - currentScroll; 1000 } else { 1001 scrollUpDistance = 0; 1002 } 1003 1004 // Only make the header sticky if user has scrolled up more than 200px 1005 var shouldToggle = isScrolled && isScrollingUp && scrollUpDistance > scrollUpThreshold; 1006 1007 topHeader.classList.toggle("sticky", shouldToggle); 1008 topHeader.classList.toggle("top-0", shouldToggle); 1009 1010 var showSearch = 1011 currentScroll > 200 && 1012 !shouldToggle; 1013 1014 searchWrapper.classList.toggle("search-sticky", showSearch); 1015 document.body.classList.toggle("search-sticky-active", showSearch); 1016 1017 lastScroll = currentScroll; 1018 } else { 1019 searchWrapper.classList.remove("search-sticky"); 1020 document.body.classList.remove("search-sticky-active"); 1021 } 1022 }); 1023</script>
1023 1024 1025<nav id="header" 1026 class="w-full lg:pb-0 lg:shadow-soft-no-top" 1027 x-data="initHeader()" 1028 @private-content-loaded.window="getData(event.detail.data)" 1029> 1030 <div class="border-b border-gray-200"> 1031 <div class="container flex flex-wrap items-center w-full py-2 mx-auto gap-y-4 lg:py-0"> 1032 <div class="order-1 w-2/5 md:w-2/3 lg:w-auto lg:max-w-[275px]"> 1033 <a id="logo" class="flex items-center justify-start text-xl no-underline hover:no-underline font-title" 1034 href="https://www.123drogisterij.nl/" 1035 aria-label="Go to Home page" 1036 > 1037 <picture> 1038 <img src="https://www.123drogisterij.nl/media/logo/stores/2/123drogisterij.jpeg" 1039 alt="Store logo" 1040 width="333" height="100" /> 1041 </picture> 1042 </a> 1043</div> 1044
1044<script> 1045 'use strict'; 1046 1047 const initMenuMobile_6ac1ddf5f1513 = () => { 1048 return { 1049 open: false, 1050 currentLevel: 0, 1051 activeNode: null, 1052 activeNode1: null, 1053 activeNode2: null, 1054 activeNode3: null, 1055 activeNode4: null, 1056 openMenu(event) { 1057 this.open = true 1058 this.$nextTick(() => hyva.trapFocus(this.$refs['menu-dialog'])) 1059 document.getElementsByTagName('html')[0].classList.add('overflow-y-hidden') 1060 }, 1061 openSubmenu() { 1062 this.currentLevel++; 1063 document.querySelector('.mobile-menu-page').scrollTop = 0; 1064 }, 1065 closeMenu(event) { 1066 event.stopPropagation() 1067 document.getElementsByTagName('html')[0].classList.remove('overflow-y-hidden') 1068 this.open = false; 1069 this.activeNode1 = null; 1070 this.$nextTick(() => this.$refs['open-menu-button'].focus() || hyva.releaseFocus()) 1071 }, 1072 } 1073 } 1074 </script>
1074 1075 1076 <nav class=" order-3 flex px-1 py-0.5 justify-between bg-tertiary-300 z-20 rounded-md navigation text-base lg:hidden" 1077 x-data="initMenuMobile_6ac1ddf5f1513()" 1078 x-defer="interact" 1079 @keydown.escape="open && closeMenu" 1080 @click.outside="open && closeMenu" 1081 aria-label="Main menu" 1082 role="navigation" 1083 > 1084 <button x-ref="open-menu-button" 1085 class="flex flex-col items-center outline-none" 1086 @click="openMenu" 1087 type="button" 1088 aria-label="Open menu" 1089 :aria-expanded="open" 1090 aria-haspopup="menu" 1091 > 1092 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-6 w-6" width="24" height="24"> 1093 <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"/> 1094</svg> 1095 <span class="leading-none"> 1096 Menu </span> 1097 </button> 1098 1099 <div class="backdrop" 1100 x-show="open" 1101 x-transition:enter="ease-in-out duration-500" 1102 x-transition:enter-start="opacity-0" 1103 x-transition:enter-end="opacity-100" 1104 x-transition:leave="ease-in-out duration-500" 1105 x-transition:leave-start="opacity-100" 1106 x-transition:leave-end="opacity-0" 1107 @click="closeMenu" 1108 x-cloak 1109 ></div> 1110 1111 <div class="fixed z-30 top-0 left-0 w-11/12 max-w-lg h-full bg-white shadow-2xl overflow-y-auto overflow-x-hidden transform transition ease-in-out duration-500 sm:duration-700" 1112 :class="{ 1113 '-translate-x-full' : !open, 1114 'translate-x-0' : open, 1115 }" 1116 x-cloak 1117 x-ref="menu-dialog" 1118 role="dialog" 1119 aria-modal="true" 1120 aria-label="Main menu" 1121 :aria-hidden="open ? 'false' : 'true'" 1122 > 1123 <div x-show="open" 1124 class="flex flex-col h-full" 1125 > 1126 <div class="px-8"> 1127 <button @click="closeMenu" 1128 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1129 aria-label="Close menu" 1130 type="button" 1131 > 1132 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1133 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1134</svg> 1135 </button> 1136 </div> 1137 1138 <div class="mb-1"> 1139 <button type="button" class="group menu-item-with-submenu font-semibold" 1140 @click="openSubmenu(), activeNode1 = 'node196', activeNode = 'node196'" 1141 > 1142 Incontinentiemateriaal <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1143 class="h-5 w-5" 1144 :class="0 === currentLevel ? 'relative' : ''" 1145 > 1146 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1147 </svg> 1148 </button> 1149 <div class="mobile-menu-page" 1150 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1151 x-transition:enter-start="translate-x-full" 1152 x-transition:enter-end="-translate-x-0" 1153 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1154 x-transition:leave-start="-translate-x-0" 1155 x-transition:leave-end="translate-x-full" 1156 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1157 x-show="activeNode1 === 'node196'" 1158 > 1159 <div class="flex justify-between px-8">
1160 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1161 @click="currentLevel--, activeNode1 = '', activeNode = 'node196'" 1162 > 1163 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1164 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Incontinentiemateriaal" 1165 > 1166 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1167 </svg> 1168 Terug </span> 1169 <button @click="closeMenu" 1170 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1171 aria-label="Close menu" 1172 type="button" 1173 > 1174 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1175 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1176</svg> 1177 </button> 1178 </div> 1179 1180 1181<a href="https://www.123drogisterij.nl/incontinentiemateriaal" 1182 class="menu-item underline" 1183 > 1184 Bekijk alles van: Incontinentiemateriaal</a> 1185 1186<a href="https://www.123drogisterij.nl/incontinentiemateriaal/koopjeshoek" 1187 class="menu-item " 1188 > 1189 Koopjeshoek</a> 1190 <button type="button" class="group menu-item-with-submenu" 1191 @click="openSubmenu(), activeNode2 = 'node198', activeNode = 'node198'" 1192 > 1193 TENA <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1194 class="h-5 w-5" 1195 :class="1 === currentLevel ? 'relative' : ''" 1196 > 1197 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1198 </svg> 1199 </button> 1200 <div class="mobile-menu-page" 1201 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1202 x-transition:enter-start="translate-x-full" 1203 x-transition:enter-end="-translate-x-0" 1204 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1205 x-transition:leave-start="-translate-x-0" 1206 x-transition:leave-end="translate-x-full" 1207 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1208 x-show="activeNode2 === 'node198'" 1209 > 1210 <div class="flex justify-between px-8"> 1211 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1212 @click="currentLevel--, activeNode2 = '', activeNode = 'node198'" 1213 > 1214 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1215 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to TENA" 1216 > 1217 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1218 </svg> 1219 Terug </span> 1220 <button @click="closeMenu" 1221 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1222 aria-label="Close menu" 1223 type="button" 1224 > 1225 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1226 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1227</svg> 1228 </button> 1229 </div> 1230 1231 1232<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie" 1233 class="menu-item underline" 1234 > 1235 Bekijk alles van: TENA</a> 1236 <button type="button" class="group menu-item-with-submenu" 1237 @click="openSubmenu(), activeNode3 = 'node199', activeNode = 'node199'" 1238 > 1239 TENA Pants <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1240 class="h-5 w-5" 1241 :class="2 === currentLevel ? 'relative' : ''" 1242 > 1243 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1244 </svg> 1245 </button> 1246 <div class="mobile-menu-page" 1247 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1248 x-transition:enter-start="translate-x-full" 1249 x-transition:enter-end="-translate-x-0" 1250 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1251 x-transition:leave-start="-translate-x-0" 1252 x-transition:leave-end="translate-x-full" 1253 :class="3 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1254 x-show="activeNode3 === 'node199'" 1255 > 1256 <div class="flex justify-between px-8">
1257 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1258 @click="currentLevel--, activeNode3 = '', activeNode = 'node199'" 1259 > 1260 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1261 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to TENA Pants" 1262 > 1263 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1264 </svg> 1265 Terug </span> 1266 <button @click="closeMenu" 1267 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1268 aria-label="Close menu" 1269 type="button" 1270 > 1271 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1272 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1273</svg> 1274 </button> 1275 </div> 1276 1277 1278<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants" 1279 class="menu-item underline" 1280 > 1281 Bekijk alles van: TENA Pants</a> 1282 1283<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants/tena-pants-voor-vrouwen" 1284 class="menu-item " 1285 > 1286 TENA Pants voor vrouwen</a> 1287 1288<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants/tena-pants-voor-mannen" 1289 class="menu-item " 1290 > 1291 TENA Pants voor mannen</a> 1292 </div> 1293 1294<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-lady" 1295 class="menu-item " 1296 > 1297 TENA Lady</a> 1298 1299<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-for-men" 1300 class="menu-item " 1301 > 1302 TENA For Men</a> 1303 1304<a href="#" 1305 class="menu-item " 1306 > 1307 TENA Slip Active Fit</a> 1308 1309<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-lady-broekjes" 1310 class="menu-item " 1311 > 1312 TENA Lady Pants</a> 1313 1314<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-discreet" 1315 class="menu-item " 1316 > 1317 TENA Discreet</a> 1318 1319<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-flex" 1320 class="menu-item " 1321 > 1322 TENA Flex</a> 1323 1324<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-bed-onderleggers" 1325 class="menu-item " 1326 > 1327 TENA Bed Onderlegger</a> 1328 1329<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-huidverzorging" 1330 class="menu-item " 1331 > 1332 TENA Huidverzorging</a> 1333 1334<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-slips-confioair" 1335 class="menu-item " 1336 > 1337 TENA Slips - PROskin</a> 1338 1339<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-comfort-confioair" 1340 class="menu-item " 1341 > 1342 TENA Comfort - PROskin</a> 1343 1344<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-bariatric-slip" 1345 class="menu-item " 1346 > 1347 TENA Bariatric Slip</a> 1348 1349<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-fix" 1350 class="menu-item " 1351 > 1352 TENA Fix</a> 1353 1354<a href="#" 1355 class="menu-item " 1356 > 1357 TENA Pants Original</a> 1358 1359<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-steeklaken" 1360 class="menu-item " 1361 > 1362 TENA Steeklaken</a> 1363 1364<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-men" 1365 class="menu-item " 1366 > 1367 TENA Men</a> 1368 1369<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-comfort-mini" 1370 class="menu-item " 1371 > 1372 TENA Comfort Mini</a> 1373 </div> 1374 1375<a href="https://www.123drogisterij.nl/incontinentiemateriaal/plastic-broekjes-voor-volwassenen" 1376 class="menu-item " 1377 > 1378 Plastic Broek Volwassenen</a> 1379 1380<a href="https://www.123drogisterij.nl/incontinentiemateriaal/inleggers-voor-extra-absorptie" 1381 class="menu-item " 1382 > 1383 Inleggers voor extra absorptie</a> 1384 1385<a href="https://www.123drogisterij.nl/incontinentiemateriaal/zwemluiers" 1386 class="menu-item " 1387 > 1388 Zwemluiers</a> 1389 <button type="button" class="group menu-item-with-submenu"
1390 @click="openSubmenu(), activeNode2 = 'node221', activeNode = 'node221'" 1391 > 1392 Abena <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1393 class="h-5 w-5" 1394 :class="1 === currentLevel ? 'relative' : ''" 1395 > 1396 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1397 </svg> 1398 </button> 1399 <div class="mobile-menu-page" 1400 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1401 x-transition:enter-start="translate-x-full" 1402 x-transition:enter-end="-translate-x-0" 1403 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1404 x-transition:leave-start="-translate-x-0" 1405 x-transition:leave-end="translate-x-full" 1406 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1407 x-show="activeNode2 === 'node221'" 1408 > 1409 <div class="flex justify-between px-8"> 1410 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1411 @click="currentLevel--, activeNode2 = '', activeNode = 'node221'" 1412 > 1413 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1414 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Abena" 1415 > 1416 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1417 </svg> 1418 Terug </span> 1419 <button @click="closeMenu" 1420 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1421 aria-label="Close menu" 1422 type="button" 1423 > 1424 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1425 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1426</svg> 1427 </button> 1428 </div> 1429 1430 1431<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena" 1432 class="menu-item underline" 1433 > 1434 Bekijk alles van: Abena</a> 1435 1436<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-flex" 1437 class="menu-item " 1438 > 1439 Abena Pants</a> 1440 1441<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-form" 1442 class="menu-item " 1443 > 1444 Abena Slip</a> 1445 1446<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-man" 1447 class="menu-item " 1448 > 1449 Abena Man</a> 1450 1451<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/verzorgend-wassen-abena" 1452 class="menu-item " 1453 > 1454 Verzorgend Wassen van Abena</a> 1455 1456<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-san" 1457 class="menu-item " 1458 > 1459 Abena San</a> 1460 1461<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abena-geurneutralisator" 1462 class="menu-item " 1463 > 1464 Abena Geurneutralisator</a> 1465 1466<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abena-abri-let" 1467 class="menu-item " 1468 > 1469 Abena Let</a> 1470 1471<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-light" 1472 class="menu-item " 1473 > 1474 Abena Light</a> 1475 1476<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-soft" 1477 class="menu-item " 1478 > 1479 Abena Abri-Soft</a> 1480 1481<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-form-junior" 1482 class="menu-item " 1483 > 1484 Abena Slip Junior</a> 1485 </div> 1486 <button type="button" class="group menu-item-with-submenu"
1487 @click="openSubmenu(), activeNode2 = 'node232', activeNode = 'node232'" 1488 > 1489 Depend <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1490 class="h-5 w-5" 1491 :class="1 === currentLevel ? 'relative' : ''" 1492 > 1493 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1494 </svg> 1495 </button> 1496 <div class="mobile-menu-page" 1497 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1498 x-transition:enter-start="translate-x-full" 1499 x-transition:enter-end="-translate-x-0" 1500 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1501 x-transition:leave-start="-translate-x-0" 1502 x-transition:leave-end="translate-x-full" 1503 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1504 x-show="activeNode2 === 'node232'" 1505 > 1506 <div class="flex justify-between px-8"> 1507 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1508 @click="currentLevel--, activeNode2 = '', activeNode = 'node232'" 1509 > 1510 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1511 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Depend" 1512 > 1513 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1514 </svg> 1515 Terug </span> 1516 <button @click="closeMenu" 1517 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1518 aria-label="Close menu" 1519 type="button" 1520 > 1521 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1522 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1523</svg> 1524 </button> 1525 </div> 1526 1527 1528<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend" 1529 class="menu-item underline" 1530 > 1531 Bekijk alles van: Depend</a> 1532 1533<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-inleggers" 1534 class="menu-item " 1535 > 1536 Depend Inleggers</a> 1537 1538<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-slip" 1539 class="menu-item " 1540 > 1541 Depend Slip</a> 1542 <button type="button" class="group menu-item-with-submenu" 1543 @click="openSubmenu(), activeNode3 = 'node235', activeNode = 'node235'" 1544 > 1545 Depend Pants <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1546 class="h-5 w-5" 1547 :class="2 === currentLevel ? 'relative' : ''" 1548 > 1549 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1550 </svg> 1551 </button> 1552 <div class="mobile-menu-page" 1553 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1554 x-transition:enter-start="translate-x-full" 1555 x-transition:enter-end="-translate-x-0" 1556 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1557 x-transition:leave-start="-translate-x-0" 1558 x-transition:leave-end="translate-x-full" 1559 :class="3 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1560 x-show="activeNode3 === 'node235'" 1561 > 1562 <div class="flex justify-between px-8">
1563 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1564 @click="currentLevel--, activeNode3 = '', activeNode = 'node235'" 1565 > 1566 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1567 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Depend Pants" 1568 > 1569 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1570 </svg> 1571 Terug </span> 1572 <button @click="closeMenu" 1573 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1574 aria-label="Close menu" 1575 type="button" 1576 > 1577 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1578 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1579</svg> 1580 </button> 1581 </div> 1582 1583 1584<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants" 1585 class="menu-item underline" 1586 > 1587 Bekijk alles van: Depend Pants</a> 1588 1589<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants/depend-pants-for-women" 1590 class="menu-item " 1591 > 1592 Depend Pants for Women</a> 1593 1594<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants/depend-pants-for-men" 1595 class="menu-item " 1596 > 1597 Depend Pants for Men</a> 1598 </div> 1599 1600<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-verband" 1601 class="menu-item " 1602 > 1603 Depend Verband</a> 1604 1605<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-for-men" 1606 class="menu-item " 1607 > 1608 Depend For Men</a> 1609 1610<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-anatomic" 1611 class="menu-item " 1612 > 1613 Depend Anatomic</a> 1614 </div> 1615 <button type="button" class="group menu-item-with-submenu" 1616 @click="openSubmenu(), activeNode2 = 'node242', activeNode = 'node242'" 1617 > 1618 Attends <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1619 class="h-5 w-5" 1620 :class="1 === currentLevel ? 'relative' : ''" 1621 > 1622 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1623 </svg> 1624 </button> 1625 <div class="mobile-menu-page" 1626 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1627 x-transition:enter-start="translate-x-full" 1628 x-transition:enter-end="-translate-x-0" 1629 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1630 x-transition:leave-start="-translate-x-0" 1631 x-transition:leave-end="translate-x-full" 1632 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1633 x-show="activeNode2 === 'node242'" 1634 > 1635 <div class="flex justify-between px-8"> 1636 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1637 @click="currentLevel--, activeNode2 = '', activeNode = 'node242'" 1638 > 1639 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1640 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Attends" 1641 > 1642 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1643 </svg> 1644 Terug </span> 1645 <button @click="closeMenu" 1646 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1647 aria-label="Close menu" 1648 type="button" 1649 > 1650 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1651 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1652</svg> 1653 </button> 1654 </div> 1655 1656 1657<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie" 1658 class="menu-item underline" 1659 > 1660 Bekijk alles van: Attends</a> 1661 1662<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-slip" 1663 class="menu-item " 1664 > 1665 Attends Slip</a> 1666 1667<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-inleggers-2" 1668 class="menu-item " 1669 > 1670 Attends inleggers</a> 1671 1672<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-pull-ons" 1673 class="menu-item " 1674 > 1675 Attends Pull-Ons</a> 1676 1677<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-for-men" 1678 class="menu-item " 1679 > 1680 Attends For Men</a> 1681 1682<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-soft" 1683 class="menu-item " 1684 > 1685 Attends Soft</a> 1686 1687<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-contours" 1688 class="menu-item " 1689 > 1690 Attends Contours</a> 1691 1692<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-contours-air-comfort" 1693 class="menu-item " 1694 > 1695 Attends Contours Air Comfort</a> 1696 1697<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-cover-dri" 1698 class="menu-item " 1699 > 1700 Attends Cover Dri</a> 1701 </div> 1702 <button type="button" class="group menu-item-with-submenu"
1703 @click="openSubmenu(), activeNode2 = 'node253', activeNode = 'node253'" 1704 > 1705 Absorin <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1706 class="h-5 w-5" 1707 :class="1 === currentLevel ? 'relative' : ''" 1708 > 1709 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1710 </svg> 1711 </button> 1712 <div class="mobile-menu-page" 1713 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1714 x-transition:enter-start="translate-x-full" 1715 x-transition:enter-end="-translate-x-0" 1716 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1717 x-transition:leave-start="-translate-x-0" 1718 x-transition:leave-end="translate-x-full" 1719 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1720 x-show="activeNode2 === 'node253'" 1721 > 1722 <div class="flex justify-between px-8"> 1723 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1724 @click="currentLevel--, activeNode2 = '', activeNode = 'node253'" 1725 > 1726 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1727 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Absorin" 1728 > 1729 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1730 </svg> 1731 Terug </span> 1732 <button @click="closeMenu" 1733 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1734 aria-label="Close menu" 1735 type="button" 1736 > 1737 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1738 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1739</svg> 1740 </button> 1741 </div> 1742 1743 1744<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie" 1745 class="menu-item underline" 1746 > 1747 Bekijk alles van: Absorin</a> 1748 1749<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-slip" 1750 class="menu-item " 1751 > 1752 Absorin Slip</a> 1753 1754<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-pants" 1755 class="menu-item " 1756 > 1757 Absorin Pants</a> 1758 1759<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-sanette" 1760 class="menu-item " 1761 > 1762 Absorin Sanette</a> 1763 1764<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-finette" 1765 class="menu-item " 1766 > 1767 Absorin Finette</a> 1768 1769<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-onderlegger" 1770 class="menu-item " 1771 > 1772 Absorin Onderlegger</a> 1773 1774<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-inlay" 1775 class="menu-item " 1776 > 1777 Absorin Classic Inlay</a> 1778 1779<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-mincy" 1780 class="menu-item " 1781 > 1782 Absorin Mannen</a> 1783 </div> 1784 1785<a href="https://www.123drogisterij.nl/incontinentiemateriaal/betterdry" 1786 class="menu-item " 1787 > 1788 BetterDry</a> 1789 1790<a href="https://www.123drogisterij.nl/incontinentiemateriaal/inco-s" 1791 class="menu-item " 1792 > 1793 Inco's</a> 1794 1795<a href="https://www.123drogisterij.nl/incontinentiemateriaal/netbroekjes" 1796 class="menu-item " 1797 > 1798 Netbroekjes</a> 1799 1800<a href="#" 1801 class="menu-item " 1802 > 1803 DryNites</a> 1804 <button type="button" class="group menu-item-with-submenu"
1805 @click="openSubmenu(), activeNode2 = 'node265', activeNode = 'node265'" 1806 > 1807 Seni <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1808 class="h-5 w-5" 1809 :class="1 === currentLevel ? 'relative' : ''" 1810 > 1811 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1812 </svg> 1813 </button> 1814 <div class="mobile-menu-page" 1815 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1816 x-transition:enter-start="translate-x-full" 1817 x-transition:enter-end="-translate-x-0" 1818 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1819 x-transition:leave-start="-translate-x-0" 1820 x-transition:leave-end="translate-x-full" 1821 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1822 x-show="activeNode2 === 'node265'" 1823 > 1824 <div class="flex justify-between px-8"> 1825 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1826 @click="currentLevel--, activeNode2 = '', activeNode = 'node265'" 1827 > 1828 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1829 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Seni" 1830 > 1831 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1832 </svg> 1833 Terug </span> 1834 <button @click="closeMenu" 1835 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1836 aria-label="Close menu" 1837 type="button" 1838 > 1839 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1840 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1841</svg> 1842 </button> 1843 </div> 1844 1845 1846<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni" 1847 class="menu-item underline" 1848 > 1849 Bekijk alles van: Seni</a> 1850 1851<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-bed-onderlegger" 1852 class="menu-item " 1853 > 1854 Seni Bed Onderlegger</a> 1855 1856<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-slips" 1857 class="menu-item " 1858 > 1859 Seni Slips</a> 1860 1861<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-lady" 1862 class="menu-item " 1863 > 1864 Seni Lady</a> 1865 1866<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-care" 1867 class="menu-item " 1868 > 1869 Seni Care</a> 1870 1871<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-pants" 1872 class="menu-item " 1873 > 1874 Seni Pants</a> 1875 1876<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-man" 1877 class="menu-item " 1878 > 1879 Seni Man</a> 1880 1881<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/san-seni-inleggers" 1882 class="menu-item " 1883 > 1884 San Seni inleggers</a> 1885 1886<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-kids-junior" 1887 class="menu-item " 1888 > 1889 Seni Kids Junior</a> 1890 </div> 1891 1892<a href="https://www.123drogisterij.nl/incontinentiemateriaal/matrasbeschermer" 1893 class="menu-item " 1894 > 1895 Incontinentie matrasbeschermer</a> 1896 <button type="button" class="group menu-item-with-submenu" 1897 @click="openSubmenu(), activeNode2 = 'node276', activeNode = 'node276'" 1898 > 1899 Verzorging <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1900 class="h-5 w-5" 1901 :class="1 === currentLevel ? 'relative' : ''" 1902 > 1903 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1904 </svg> 1905 </button> 1906 <div class="mobile-menu-page" 1907 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1908 x-transition:enter-start="translate-x-full" 1909 x-transition:enter-end="-translate-x-0" 1910 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1911 x-transition:leave-start="-translate-x-0" 1912 x-transition:leave-end="translate-x-full" 1913 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1914 x-show="activeNode2 === 'node276'" 1915 > 1916 <div class="flex justify-between px-8">
1917 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1918 @click="currentLevel--, activeNode2 = '', activeNode = 'node276'" 1919 > 1920 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1921 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Verzorging" 1922 > 1923 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1924 </svg> 1925 Terug </span> 1926 <button @click="closeMenu" 1927 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1928 aria-label="Close menu" 1929 type="button" 1930 > 1931 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1932 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 1933</svg> 1934 </button> 1935 </div> 1936 1937 1938<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging" 1939 class="menu-item underline" 1940 > 1941 Bekijk alles van: Verzorging</a> 1942 1943<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/washandjes" 1944 class="menu-item " 1945 > 1946 Washandjes</a> 1947 1948<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/tena-verzorging" 1949 class="menu-item " 1950 > 1951 TENA Verzorging</a> 1952 1953<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/seni-verzorging" 1954 class="menu-item " 1955 > 1956 Seni Verzorging</a> 1957 1958<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/abena-verzorging" 1959 class="menu-item " 1960 > 1961 Abena Verzorging</a> 1962 </div> 1963 <button type="button" class="group menu-item-with-submenu" 1964 @click="openSubmenu(), activeNode2 = 'node281', activeNode = 'node281'" 1965 > 1966 Molicare <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1967 class="h-5 w-5" 1968 :class="1 === currentLevel ? 'relative' : ''" 1969 > 1970 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 1971 </svg> 1972 </button> 1973 <div class="mobile-menu-page" 1974 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 1975 x-transition:enter-start="translate-x-full" 1976 x-transition:enter-end="-translate-x-0" 1977 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 1978 x-transition:leave-start="-translate-x-0" 1979 x-transition:leave-end="translate-x-full" 1980 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 1981 x-show="activeNode2 === 'node281'" 1982 > 1983 <div class="flex justify-between px-8"> 1984 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 1985 @click="currentLevel--, activeNode2 = '', activeNode = 'node281'" 1986 > 1987 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 1988 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Molicare" 1989 > 1990 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 1991 </svg> 1992 Terug </span> 1993 <button @click="closeMenu" 1994 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 1995 aria-label="Close menu" 1996 type="button" 1997 > 1998 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 1999 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2000</svg> 2001 </button> 2002 </div> 2003 2004 2005<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare" 2006 class="menu-item underline" 2007 > 2008 Bekijk alles van: Molicare</a> 2009 2010<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare/molicare-mobile" 2011 class="menu-item " 2012 > 2013 Hartmann Molicare Mobile</a> 2014 2015<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare/hartmann-molicare-men" 2016 class="menu-item " 2017 > 2018 Hartmann Molicare Men</a> 2019 </div> 2020 <button type="button" class="group menu-item-with-submenu"
2021 @click="openSubmenu(), activeNode2 = 'node285', activeNode = 'node285'" 2022 > 2023 Egosan <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2024 class="h-5 w-5" 2025 :class="1 === currentLevel ? 'relative' : ''" 2026 > 2027 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2028 </svg> 2029 </button> 2030 <div class="mobile-menu-page" 2031 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2032 x-transition:enter-start="translate-x-full" 2033 x-transition:enter-end="-translate-x-0" 2034 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2035 x-transition:leave-start="-translate-x-0" 2036 x-transition:leave-end="translate-x-full" 2037 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2038 x-show="activeNode2 === 'node285'" 2039 > 2040 <div class="flex justify-between px-8"> 2041 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2042 @click="currentLevel--, activeNode2 = '', activeNode = 'node285'" 2043 > 2044 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2045 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Egosan" 2046 > 2047 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2048 </svg> 2049 Terug </span> 2050 <button @click="closeMenu" 2051 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2052 aria-label="Close menu" 2053 type="button" 2054 > 2055 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2056 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2057</svg> 2058 </button> 2059 </div> 2060 2061 2062<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan" 2063 class="menu-item underline" 2064 > 2065 Bekijk alles van: Egosan</a> 2066 2067<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-pants" 2068 class="menu-item " 2069 > 2070 Egosan Pants</a> 2071 2072<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-slip" 2073 class="menu-item " 2074 > 2075 Egosan Slip</a> 2076 2077<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-man" 2078 class="menu-item " 2079 > 2080 Egosan Man</a> 2081 2082<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-bed" 2083 class="menu-item " 2084 > 2085 Egosan Bed</a> 2086 </div> 2087 <button type="button" class="group menu-item-with-submenu" 2088 @click="openSubmenu(), activeNode2 = 'node290', activeNode = 'node290'" 2089 > 2090 Incontinentiemateriaal voor kinderen <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2091 class="h-5 w-5" 2092 :class="1 === currentLevel ? 'relative' : ''" 2093 > 2094 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2095 </svg> 2096 </button> 2097 <div class="mobile-menu-page" 2098 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2099 x-transition:enter-start="translate-x-full" 2100 x-transition:enter-end="-translate-x-0" 2101 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2102 x-transition:leave-start="-translate-x-0" 2103 x-transition:leave-end="translate-x-full" 2104 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2105 x-show="activeNode2 === 'node290'" 2106 > 2107 <div class="flex justify-between px-8">
2108 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2109 @click="currentLevel--, activeNode2 = '', activeNode = 'node290'" 2110 > 2111 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2112 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Incontinentiemateriaal voor kinderen" 2113 > 2114 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2115 </svg> 2116 Terug </span> 2117 <button @click="closeMenu" 2118 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2119 aria-label="Close menu" 2120 type="button" 2121 > 2122 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2123 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2124</svg> 2125 </button> 2126 </div> 2127 2128 2129<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen" 2130 class="menu-item underline" 2131 > 2132 Bekijk alles van: Incontinentiemateriaal voor kinderen</a> 2133 2134<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/luiers-voor-kinderen" 2135 class="menu-item " 2136 > 2137 Luiers voor kinderen</a> 2138 2139<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/incontinentiebroekjes-voor-kinderen" 2140 class="menu-item " 2141 > 2142 Incontinentiebroekjes voor kinderen</a> 2143 2144<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/matrasbescherming-voor-kinderen" 2145 class="menu-item " 2146 > 2147 Matrasbescherming voor kinderen</a> 2148 </div> 2149 <button type="button" class="group menu-item-with-submenu" 2150 @click="openSubmenu(), activeNode2 = 'node294', activeNode = 'node294'" 2151 > 2152 Fix <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2153 class="h-5 w-5" 2154 :class="1 === currentLevel ? 'relative' : ''" 2155 > 2156 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2157 </svg> 2158 </button> 2159 <div class="mobile-menu-page" 2160 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2161 x-transition:enter-start="translate-x-full" 2162 x-transition:enter-end="-translate-x-0" 2163 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2164 x-transition:leave-start="-translate-x-0" 2165 x-transition:leave-end="translate-x-full" 2166 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2167 x-show="activeNode2 === 'node294'" 2168 > 2169 <div class="flex justify-between px-8"> 2170 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2171 @click="currentLevel--, activeNode2 = '', activeNode = 'node294'" 2172 > 2173 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2174 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Fix" 2175 > 2176 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2177 </svg> 2178 Terug </span> 2179 <button @click="closeMenu" 2180 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2181 aria-label="Close menu" 2182 type="button" 2183 > 2184 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2185 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2186</svg> 2187 </button> 2188 </div> 2189 2190 2191<a href="https://www.123drogisterij.nl/incontinentiemateriaal/fixatie-broekjes-incontinentie" 2192 class="menu-item underline" 2193 > 2194 Bekijk alles van: Fix</a> 2195 2196<a href="https://www.123drogisterij.nl/incontinentiemateriaal/fixatie-broekjes-incontinentie/tena-fixatie-broekjes" 2197 class="menu-item " 2198 > 2199 TENA Fixatie Broekjes</a> 2200 </div> 2201 </div> 2202 <button type="button" class="group menu-item-with-submenu font-semibold" 2203 @click="openSubmenu(), activeNode1 = 'node297', activeNode = 'node297'" 2204 > 2205 Luiers <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2206 class="h-5 w-5" 2207 :class="0 === currentLevel ? 'relative' : ''" 2208 > 2209 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2210 </svg> 2211 </button> 2212 <div class="mobile-menu-page" 2213 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2214 x-transition:enter-start="translate-x-full" 2215 x-transition:enter-end="-translate-x-0" 2216 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2217 x-transition:leave-start="-translate-x-0" 2218 x-transition:leave-end="translate-x-full" 2219 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2220 x-show="activeNode1 === 'node297'" 2221 > 2222 <div class="flex justify-between px-8">
2223 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2224 @click="currentLevel--, activeNode1 = '', activeNode = 'node297'" 2225 > 2226 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2227 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Luiers" 2228 > 2229 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2230 </svg> 2231 Terug </span> 2232 <button @click="closeMenu" 2233 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2234 aria-label="Close menu" 2235 type="button" 2236 > 2237 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2238 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2239</svg> 2240 </button> 2241 </div> 2242 2243 2244<a href="https://www.123drogisterij.nl/incontinentie-luiers" 2245 class="menu-item underline" 2246 > 2247 Bekijk alles van: Luiers</a> 2248 2249<a href="https://www.123drogisterij.nl/incontinentie-luiers/zwemluiers" 2250 class="menu-item " 2251 > 2252 Zwemluiers</a> 2253 2254<a href="https://www.123drogisterij.nl/incontinentie-luiers/tena-luiers-voor-volwassenen" 2255 class="menu-item " 2256 > 2257 TENA Luiers</a> 2258 2259<a href="https://www.123drogisterij.nl/incontinentie-luiers/abena-luiers" 2260 class="menu-item " 2261 > 2262 Abena Luiers</a> 2263 2264<a href="https://www.123drogisterij.nl/incontinentie-luiers/attends-luiers" 2265 class="menu-item " 2266 > 2267 Attends Luiers</a> 2268 2269<a href="https://www.123drogisterij.nl/incontinentie-luiers/absorin-luiers" 2270 class="menu-item " 2271 > 2272 Absorin Luiers</a> 2273 2274<a href="https://www.123drogisterij.nl/incontinentie-luiers/plastic-luiers-voor-volwassenen" 2275 class="menu-item " 2276 > 2277 Plastic luiers voor volwassenen</a> 2278 2279<a href="https://www.123drogisterij.nl/incontinentie-luiers/luiers-voor-volwassenen" 2280 class="menu-item " 2281 > 2282 Luiers voor volwassenen</a> 2283 2284<a href="https://www.123drogisterij.nl/incontinentie-luiers/depend-luiers" 2285 class="menu-item " 2286 > 2287 Depend Luiers</a> 2288 2289<a href="https://www.123drogisterij.nl/incontinentie-luiers/seni-luiers" 2290 class="menu-item " 2291 > 2292 Seni Luiers</a> 2293 2294<a href="https://www.123drogisterij.nl/incontinentie-luiers/nachtluiers" 2295 class="menu-item " 2296 > 2297 Nachtluiers volwassenen</a> 2298 </div> 2299 2300<a href="https://www.123drogisterij.nl/incontinentiemateriaal-voor-mannen" 2301 class="flex items-center justify-between w-full px-8 py-4 text-left group font-semibold hover:bg-tertiary-300 hover:underline" 2302 > 2303 Mannen</a> 2304 <button type="button" class="group menu-item-with-submenu font-semibold" 2305 @click="openSubmenu(), activeNode1 = 'node310', activeNode = 'node310'" 2306 > 2307 Slip <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2308 class="h-5 w-5" 2309 :class="0 === currentLevel ? 'relative' : ''" 2310 > 2311 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2312 </svg> 2313 </button> 2314 <div class="mobile-menu-page" 2315 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2316 x-transition:enter-start="translate-x-full" 2317 x-transition:enter-end="-translate-x-0" 2318 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2319 x-transition:leave-start="-translate-x-0" 2320 x-transition:leave-end="translate-x-full" 2321 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2322 x-show="activeNode1 === 'node310'" 2323 > 2324 <div class="flex justify-between px-8">
2325 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2326 @click="currentLevel--, activeNode1 = '', activeNode = 'node310'" 2327 > 2328 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2329 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Slip" 2330 > 2331 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2332 </svg> 2333 Terug </span> 2334 <button @click="closeMenu" 2335 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2336 aria-label="Close menu" 2337 type="button" 2338 > 2339 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2340 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2341</svg> 2342 </button> 2343 </div> 2344 2345 2346<a href="https://www.123drogisterij.nl/incontinentie-slips" 2347 class="menu-item underline" 2348 > 2349 Bekijk alles van: Slip</a> 2350 2351<a href="https://www.123drogisterij.nl/incontinentie-slips/tena-slips" 2352 class="menu-item " 2353 > 2354 TENA Slips</a> 2355 2356<a href="https://www.123drogisterij.nl/incontinentie-slips/absorin-slip" 2357 class="menu-item " 2358 > 2359 Absorin Slip</a> 2360 2361<a href="https://www.123drogisterij.nl/incontinentie-slips/attends-slip" 2362 class="menu-item " 2363 > 2364 Attends Slip</a> 2365 2366<a href="https://www.123drogisterij.nl/incontinentie-slips/abena-slips" 2367 class="menu-item " 2368 > 2369 Abena Slips</a> 2370 2371<a href="https://www.123drogisterij.nl/incontinentie-slips/depend-slip" 2372 class="menu-item " 2373 > 2374 Depend Slip</a> 2375 2376<a href="https://www.123drogisterij.nl/incontinentie-slips/seni-slip" 2377 class="menu-item " 2378 > 2379 Seni Slip</a> 2380 2381<a href="https://www.123drogisterij.nl/incontinentie-slips/betterdry-slip" 2382 class="menu-item " 2383 > 2384 BetterDry Slip</a> 2385 </div> 2386 <button type="button" class="group menu-item-with-submenu font-semibold" 2387 @click="openSubmenu(), activeNode1 = 'node318', activeNode = 'node318'" 2388 > 2389 Pants <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2390 class="h-5 w-5" 2391 :class="0 === currentLevel ? 'relative' : ''" 2392 > 2393 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2394 </svg> 2395 </button> 2396 <div class="mobile-menu-page" 2397 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2398 x-transition:enter-start="translate-x-full" 2399 x-transition:enter-end="-translate-x-0" 2400 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2401 x-transition:leave-start="-translate-x-0" 2402 x-transition:leave-end="translate-x-full" 2403 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2404 x-show="activeNode1 === 'node318'" 2405 > 2406 <div class="flex justify-between px-8"> 2407 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2408 @click="currentLevel--, activeNode1 = '', activeNode = 'node318'" 2409 > 2410 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2411 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Pants" 2412 > 2413 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2414 </svg> 2415 Terug </span> 2416 <button @click="closeMenu" 2417 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2418 aria-label="Close menu" 2419 type="button" 2420 > 2421 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2422 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2423</svg> 2424 </button> 2425 </div> 2426 2427 2428<a href="https://www.123drogisterij.nl/incontinentie-pants" 2429 class="menu-item underline" 2430 > 2431 Bekijk alles van: Pants</a> 2432 2433<a href="https://www.123drogisterij.nl/pants/abso-x-pants" 2434 class="menu-item " 2435 > 2436 ABSO-X Ultra Pants</a> 2437 2438<a href="https://www.123drogisterij.nl/incontinentie-pants/tena-pants" 2439 class="menu-item " 2440 > 2441 TENA Pants</a> 2442 2443<a href="https://www.123drogisterij.nl/incontinentie-pants/abena-pants" 2444 class="menu-item " 2445 > 2446 Abena Pants</a> 2447 2448<a href="https://www.123drogisterij.nl/incontinentie-pants/attends-pants" 2449 class="menu-item " 2450 > 2451 Attends Pants</a> 2452 <button type="button" class="group menu-item-with-submenu"
2453 @click="openSubmenu(), activeNode2 = 'node322', activeNode = 'node322'" 2454 > 2455 Depend Pants <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2456 class="h-5 w-5" 2457 :class="1 === currentLevel ? 'relative' : ''" 2458 > 2459 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2460 </svg> 2461 </button> 2462 <div class="mobile-menu-page" 2463 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2464 x-transition:enter-start="translate-x-full" 2465 x-transition:enter-end="-translate-x-0" 2466 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2467 x-transition:leave-start="-translate-x-0" 2468 x-transition:leave-end="translate-x-full" 2469 :class="2 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2470 x-show="activeNode2 === 'node322'" 2471 > 2472 <div class="flex justify-between px-8"> 2473 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2474 @click="currentLevel--, activeNode2 = '', activeNode = 'node322'" 2475 > 2476 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2477 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Depend Pants" 2478 > 2479 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2480 </svg> 2481 Terug </span> 2482 <button @click="closeMenu" 2483 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2484 aria-label="Close menu" 2485 type="button" 2486 > 2487 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2488 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2489</svg> 2490 </button> 2491 </div> 2492 2493 2494<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants" 2495 class="menu-item underline" 2496 > 2497 Bekijk alles van: Depend Pants</a> 2498 2499<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants/vrouwen" 2500 class="menu-item " 2501 > 2502 Vrouwen</a> 2503 2504<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants/mannen" 2505 class="menu-item " 2506 > 2507 Mannen</a> 2508 </div> 2509 2510<a href="https://www.123drogisterij.nl/pants/incontinentiebroekjes" 2511 class="menu-item " 2512 > 2513 Incontinentiebroekjes</a> 2514 2515<a href="https://www.123drogisterij.nl/incontinentie-pants/lille-pants" 2516 class="menu-item " 2517 > 2518 Lille Pants</a> 2519 2520<a href="https://www.123drogisterij.nl/incontinentie-pants/seni-active-pants" 2521 class="menu-item " 2522 > 2523 Seni Active pants</a> 2524 2525<a href="https://www.123drogisterij.nl/incontinentie-pants/absorin-pants" 2526 class="menu-item " 2527 > 2528 Absorin Comfort Pants</a> 2529 </div> 2530 <button type="button" class="group menu-item-with-submenu font-semibold" 2531 @click="openSubmenu(), activeNode1 = 'node329', activeNode = 'node329'" 2532 > 2533 Inlegger <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2534 class="h-5 w-5" 2535 :class="0 === currentLevel ? 'relative' : ''" 2536 > 2537 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2538 </svg> 2539 </button> 2540 <div class="mobile-menu-page" 2541 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2542 x-transition:enter-start="translate-x-full" 2543 x-transition:enter-end="-translate-x-0" 2544 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2545 x-transition:leave-start="-translate-x-0" 2546 x-transition:leave-end="translate-x-full" 2547 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2548 x-show="activeNode1 === 'node329'" 2549 > 2550 <div class="flex justify-between px-8">
2551 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2552 @click="currentLevel--, activeNode1 = '', activeNode = 'node329'" 2553 > 2554 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2555 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Inlegger" 2556 > 2557 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2558 </svg> 2559 Terug </span> 2560 <button @click="closeMenu" 2561 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2562 aria-label="Close menu" 2563 type="button" 2564 > 2565 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2566 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2567</svg> 2568 </button> 2569 </div> 2570 2571 2572<a href="https://www.123drogisterij.nl/incontinentie-inleggers" 2573 class="menu-item underline" 2574 > 2575 Bekijk alles van: Inlegger</a> 2576 2577<a href="https://www.123drogisterij.nl/incontinentie-inleggers/tena-inleggers" 2578 class="menu-item " 2579 > 2580 TENA Inleggers</a> 2581 2582<a href="https://www.123drogisterij.nl/incontinentie-inleggers/abena-inleggers" 2583 class="menu-item " 2584 > 2585 Abena Inleggers</a> 2586 2587<a href="https://www.123drogisterij.nl/incontinentie-inleggers/depend-inleggers" 2588 class="menu-item " 2589 > 2590 Depend Inleggers</a> 2591 2592<a href="https://www.123drogisterij.nl/incontinentie-inleggers/absorin-inleggers" 2593 class="menu-item " 2594 > 2595 Absorin Inleggers</a> 2596 2597<a href="https://www.123drogisterij.nl/incontinentie-inleggers/seni-inleggers" 2598 class="menu-item " 2599 > 2600 Seni inleggers</a> 2601 2602<a href="https://www.123drogisterij.nl/incontinentie-inleggers/attends-inleggers" 2603 class="menu-item " 2604 > 2605 Attends Inlegger</a> 2606 2607<a href="https://www.123drogisterij.nl/incontinentie-inleggers/inlegverband-incontinentieverband" 2608 class="menu-item " 2609 > 2610 Inlegverband / incontinentieverband</a> 2611 2612<a href="https://www.123drogisterij.nl/incontinentie-inleggers/mannenverband" 2613 class="menu-item " 2614 > 2615 Mannenverband</a> 2616 </div> 2617 <button type="button" class="group menu-item-with-submenu font-semibold" 2618 @click="openSubmenu(), activeNode1 = 'node338', activeNode = 'node338'" 2619 > 2620 Verzorging <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2621 class="h-5 w-5" 2622 :class="0 === currentLevel ? 'relative' : ''" 2623 > 2624 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2625 </svg> 2626 </button> 2627 <div class="mobile-menu-page" 2628 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2629 x-transition:enter-start="translate-x-full" 2630 x-transition:enter-end="-translate-x-0" 2631 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2632 x-transition:leave-start="-translate-x-0" 2633 x-transition:leave-end="translate-x-full" 2634 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2635 x-show="activeNode1 === 'node338'" 2636 > 2637 <div class="flex justify-between px-8">
2638 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2639 @click="currentLevel--, activeNode1 = '', activeNode = 'node338'" 2640 > 2641 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2642 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Verzorging" 2643 > 2644 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2645 </svg> 2646 Terug </span> 2647 <button @click="closeMenu" 2648 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2649 aria-label="Close menu" 2650 type="button" 2651 > 2652 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2653 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2654</svg> 2655 </button> 2656 </div> 2657 2658 2659<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie" 2660 class="menu-item underline" 2661 > 2662 Bekijk alles van: Verzorging</a> 2663 2664<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/wegwerp-washandjes-nat-en-droog" 2665 class="menu-item " 2666 > 2667 Wegwerp Washandjes</a> 2668 2669<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgingsproducten-cremes-wasgels" 2670 class="menu-item " 2671 > 2672 Crèmes & wasgels</a> 2673 2674<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgend-wassen-natte-washandjes" 2675 class="menu-item " 2676 > 2677 Verzorgend wassen - Wet Wash - Shampoo Cap</a> 2678 2679<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/luieremmer-janibell-akord" 2680 class="menu-item " 2681 > 2682 Luieremmer Janibell Akord</a> 2683 2684<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/uri-go" 2685 class="menu-item " 2686 > 2687 Uri-Go</a> 2688 2689<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/vochtige-washandjes" 2690 class="menu-item " 2691 > 2692 Vochtige washandjes</a> 2693 2694<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/slabben-voor-volwassenen" 2695 class="menu-item " 2696 > 2697 Slab voor volwassenen</a> 2698 2699<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/shampoo-cap" 2700 class="menu-item " 2701 > 2702 Shampoo cap</a> 2703 2704<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/opvangzakken" 2705 class="menu-item " 2706 > 2707 Opvangzakken | Dr. Helewa</a> 2708 2709<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/producten-voor-mantelzorgers" 2710 class="menu-item " 2711 > 2712 Producten voor mantelzorgers</a> 2713 2714<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/handschoenen" 2715 class="menu-item " 2716 > 2717 Handschoenen</a> 2718 </div> 2719 <button type="button" class="group menu-item-with-submenu font-semibold" 2720 @click="openSubmenu(), activeNode1 = 'node350', activeNode = 'node350'" 2721 > 2722 Onderlegger <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2723 class="h-5 w-5" 2724 :class="0 === currentLevel ? 'relative' : ''" 2725 > 2726 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" /> 2727 </svg> 2728 </button> 2729 <div class="mobile-menu-page" 2730 x-transition:enter="transform transition ease-in-out duration-500 opacity-100" 2731 x-transition:enter-start="translate-x-full" 2732 x-transition:enter-end="-translate-x-0" 2733 x-transition:leave="transform transition ease-in-out duration-500 opacity-0" 2734 x-transition:leave-start="-translate-x-0" 2735 x-transition:leave-end="translate-x-full" 2736 :class="1 === currentLevel ? 'overflow-y-scroll' : 'overflow-y-hidden'" 2737 x-show="activeNode1 === 'node350'" 2738 > 2739 <div class="flex justify-between px-8">
2740 <span class="flex items-center gap-2 w-full cursor-pointer group hover:underline" 2741 @click="currentLevel--, activeNode1 = '', activeNode = 'node350'" 2742 > 2743 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" 2744 class="relative transition-all duration-150 ease-in-out left-0 group-hover:-left-1 h-4 w-4" title="Back to Onderlegger" 2745 > 2746 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 2747 </svg> 2748 Terug </span> 2749 <button @click="closeMenu" 2750 class="flex items-center justify-end w-16 h-16 ml-auto outline-none" 2751 aria-label="Close menu" 2752 type="button" 2753 > 2754 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" width="24" height="24"> 2755 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 2756</svg> 2757 </button> 2758 </div> 2759 2760 2761<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers" 2762 class="menu-item underline" 2763 > 2764 Bekijk alles van: Onderlegger</a> 2765 2766<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/abso-x-ultra-bed" 2767 class="menu-item " 2768 > 2769 ABSO-X Ultra Bed</a> 2770 2771<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/tena-bed-onderleggers" 2772 class="menu-item " 2773 > 2774 TENA Bed Onderleggers</a> 2775 2776<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/wasbare-onderleggers" 2777 class="menu-item " 2778 > 2779 Wasbare onderleggers</a> 2780 2781<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/matrasbeschermer" 2782 class="menu-item " 2783 > 2784 Waterdichte matrasbeschermer</a> 2785 2786<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/abena-bed-onderleggers" 2787 class="menu-item " 2788 > 2789 Abena Bed Onderleggers</a> 2790 2791<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/seni-bed-onderleggers" 2792 class="menu-item " 2793 > 2794 Seni Bed Onderlegger</a> 2795 2796<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/absorin-bed-onderleggers" 2797 class="menu-item " 2798 > 2799 Absorin Bed Onderleggers</a> 2800 2801<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/attends-bed-onderleggers" 2802 class="menu-item " 2803 > 2804 Attends Bed Onderleggers</a> 2805 2806<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/stoelbeschermer" 2807 class="menu-item " 2808 > 2809 Stoelbeschermer</a> 2810 2811<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/bedzeil" 2812 class="menu-item " 2813 > 2814 Bedzeil</a> 2815 2816<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/celstofmatjes" 2817 class="menu-item " 2818 > 2819 Celstofmatjes</a> 2820 2821<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/steeklaken" 2822 class="menu-item " 2823 > 2824 Steeklaken</a> 2825 </div> 2826 </div> 2827 </div> 2828 </div> 2829 </nav> 2830 2831 <div id="sticky-search-wrapper" 2832 class="order-4 ml-auto relative w-search lg:mx-4 lg:order-2 lg:ml-12 lg:my-4 lg:w-[380px] xl:ml-16" 2833 > 2834 <div id="search-content" 2835 class="relative transition-all duration-300 ease-in-out" 2836 > 2837
2838<script> 2839 function initMiniSearchComponent() { 2840 "use strict"; 2841 2842 return { 2843 show: false, 2844 showNoResults: false, 2845 query: null, 2846 formSelector: "#search_mini_form", 2847 url: "https://www.123drogisterij.nl/search/ajax/suggest/", 2848 destinationSelector: "#search_autocomplete", 2849 templates: {"term":{"title":"Zoektermen","template":"Hyva_SmileElasticsuite::core\/autocomplete\/term.phtml"},"product":{"title":"Producten","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product.phtml"},"category":{"title":"Categorie\u00ebn","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/category.phtml"},"product_attribute":{"title":"Attributen","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product_attribute.phtml","titleRenderer":"renderEsAutocompleteTitleAttribute"},"cms_page":{"title":"Cms page","template":"Hyva_SmileElasticsuite::cms-search\/autocomplete\/cms.phtml"}}, 2850 priceFormat: {"pattern":"\u20ac\u00a0%s","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false}, 2851 minSearchLength: 2, 2852 searchResultsByType: {}, 2853 currentRequest: null, 2854 2855 /** 2856 * Get search results. 2857 */ 2858 getSearchResults: function () { 2859 this.showNoResults = false; 2860 2861 let value = document.querySelector('#search').value.trim(); 2862 this.query = value; 2863 2864 if (value.length < parseInt(this.minSearchLength, 10)) { 2865 this.searchResultsByType = []; 2866 2867 return false; 2868 } 2869 2870 let url = this.url + '?' + new URLSearchParams({ 2871 q: document.querySelector('#search').value, 2872 _: Date.now() 2873 }).toString(); 2874 2875 if (this.currentRequest !== null) { 2876 this.currentRequest.abort(); 2877 } 2878 this.currentRequest = new AbortController(); 2879 2880 fetch(url, { 2881 method: 'GET', 2882 signal: this.currentRequest.signal, 2883 }).then((response) => { 2884 if (response.ok) { 2885 return response.json(); 2886 } 2887 }).then((data) => { 2888 this.show = data.length > 0; 2889 2890 if (data.length === 0) { 2891 this.showNoResults = true; 2892 } else { 2893 this.showNoResults = false; 2894 } 2895 2896 this.searchResultsByType = data.reduce((acc, result) => { 2897 if (! acc[result.type]) acc[result.type] = []; 2898 acc[result.type].push(result); 2899 return acc; 2900 }, {}); 2901 }).catch((error) => { 2902 ; 2903 }); 2904 }, 2905 } 2906 } 2907</script>
2907 2908 2909<div id="search-content" x-show="true"> 2910 <div x-data="initMiniSearchComponent()" @click.away="show = false; showNoResults = false"> 2911 <form class="form minisearch" id="search_mini_form" action="https://www.123drogisterij.nl/catalogsearch/result/" method="get" role="search"> 2912 <div class="relative"> 2913 <label class="sr-only" for="search"> 2914 Zoek naar... </label> 2915 <input id="search" 2916 x-on:input.debounce="getSearchResults()" 2917 x-ref="searchInput" 2918 type="search" 2919 class="w-full pl-4 transition border-gray-400 h-[44px] lg:!flex lg:h-[54px]" 2920 autocapitalize="off" autocomplete="off" autocorrect="off" 2921 name="q" 2922 value="" 2923 placeholder="Zoek naar..." 2924 maxlength="128" 2925 @search-open.window.debounce.10=" 2926 $el.focus(); 2927 $el.select(); 2928 " 2929 /> 2930 </div> 2931 <div x-cloak x-show="showNoResults" class="absolute text-md bg-white z-50 f-w top-[110%] right-0 card w-full"> 2932 Geen resultaten gevonden voor: "<strong x-html="query"></strong>" 2933 </div> 2934 <div id="search_autocomplete" class="search-autocomplete w-full" x-show="show" style="display:none;"> 2935 <div class="absolute bg-white z-50 top-[110%] card f-w py-0 right-0 max-h-screen-75 overflow-y-scroll sm:w-full"> 2936 <template x-for="searchResultByType in Object.values(searchResultsByType).reverse()"> 2937 <div class="border-t py-4 first-of-type:border-t-0"> 2938 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].title && templates[searchResultByType[0].type].titleRenderer === undefined"> 2939 <div class="font-bold text-md" x-text="templates[searchResultByType[0].type].title"></div> 2940 </template> 2941 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].titleRenderer !== undefined"> 2942 <div class="font-bold text-md" x-text="window[templates[searchResultByType[0].type].titleRenderer](searchResultByType)"></div> 2943 </template> 2944 <template x-for="searchResult in searchResultByType"> 2945 <div class="rounded-md p-2"> 2946 2947<template x-if="searchResult.type == 'term'"> 2948 <a class="flex gap-2 w-full block p-2" 2949 x-bind:href="'https://www.123drogisterij.nl/catalogsearch/result/?q=' + searchResult.title" 2950 :title="searchResult.title"> 2951 <span class="text-sm" x-text="searchResult.title"></span> 2952 <span class="text-sm" x-text="'(' + searchResult.num_results + ')'"></span> 2953 </a> 2954</template> 2955 2956<template x-if="searchResult.type == 'product'"> 2957 <a class="w-full block" :href="searchResult.url" :title="searchResult.title"> 2958 <div class="grid grid-cols-4 gap-4 p-3"> 2959 <div> 2960 <img :src="searchResult.image" class="inline-block" /> 2961 </div> 2962 <div class="col-span-3"> 2963 <span class="block text-md font-bold mb-2" x-text="searchResult.title"></span> 2964 <span class="text-md price-wrapper-search" x-html="searchResult.price"></span> 2965 </div> 2966 </div> 2967 </a> 2968</template> 2969 2970<template x-if="searchResult.type == 'category'"> 2971 <a class="flex gap-2 w-full block p-2" :href="searchResult.url" :title="searchResult.title"> 2972 <span class="text-md italic block text-gray-500" x-text="searchResult.breadcrumb.join(' > ').concat(' > ')"></span> 2973 <span class="text-md" x-text="searchResult.title"></span> 2974 </a> 2975</template> 2976 2977<template x-if="searchResult.type == 'product_attribute'"> 2978 <a class="flex gap-2 w-full block p-2" :href="searchResult.url" :title="searchResult.title">
2979 <span class="text-md" x-text="searchResult.title"></span> 2980 <span class="text-md uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span> 2981 </a> 2982</template> 2983
2984<script> 2985 function renderEsAutocompleteTitleAttribute(data) 2986 { 2987 data = data.filter(function(item) { 2988 return item.type === 'product_attribute'; 2989 }).map(function(item) { 2990 return item['attribute_label'] 2991 }).reduce(function(prev, item) { 2992 if (item in prev) { 2993 prev[item]++; 2994 } else { 2995 prev[item] = 1; 2996 } 2997 return prev; 2998 }, {}); 2999 3000 data = Object.entries(data).sort(function(item1, item2) { 3001 return item2[1] - item1[1] 3002 }).map(function(item) {return item[0]}); 3003 3004 if (data.length > 2) { 3005 data = data.slice(0, 2); 3006 data.push('...'); 3007 } 3008 3009 return data.join(', '); 3010 } 3011</script>
3011 3012 3013<template x-if="searchResult.type == 'cms_page'"> 3014 <a class="flex gap-2 w-full block p-2" :href="searchResult.url" :title="searchResult.title"> 3015 <span class="text-sm" x-text="searchResult.title"></span> 3016 </a> 3017</template> 3018 </div> 3019 </template> 3020 </div> 3021 </template> 3022 </div> 3023 </div> 3024 </form> 3025 </div> 3026</div> 3027 3028 <a class="flex p-1.5 bg-primary-500 rounded-md no-underline cursor-pointer absolute top-1 left-auto right-1 transition lg:p-2.5 lg:right-1 lg:top-[0.325rem] hover:bg-primary-300" 3029 title="Zoeken" 3030 @click="document.getElementById('search_mini_form').submit();" 3031 > 3032 <span class="hidden md:block text-white mr-1">Zoeken</span> 3033 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-6 h-6 text-white" width="24" height="24" role="img"> 3034 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"/> 3035<title/></svg> 3036 </a> 3037 </div> 3038 </div> 3039 3040 <div class="order-2 flex justify-end items-center ml-auto w-3/5 md:w-1/3 lg:mr-2 lg:my-4 lg:w-auto"> 3041 <a class="p-2 xl:flex gap-1 items-center group" href="tel:0492-747100" title="Bel ons"> 3042 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-6 w-6 text-green-600" width="24" height="24" role="img"> 3043 <path fill-rule="evenodd" d="M1.5 4.5a3 3 0 013-3h1.372c.86 0 1.61.586 1.819 1.42l1.105 4.423a1.875 1.875 0 01-.694 1.955l-1.293.97c-.135.101-.164.249-.126.352a11.285 11.285 0 006.697 6.697c.103.038.25.009.352-.126l.97-1.293a1.875 1.875 0 011.955-.694l4.423 1.105c.834.209 1.42.959 1.42 1.82V19.5a3 3 0 01-3 3h-2.25C8.552 22.5 1.5 15.448 1.5 6.75V4.5z" clip-rule="evenodd"/> 3044<title>Bel ons</title></svg> 3045 <div class="text-md"> 3046 <strong class="hidden xl:block"> 3047 Ma - vrij van 9.00 â 13.00 uur </strong> 3048 <span class="hidden text-secondary-800 group-hover:underline font-medium xl:block"> 3049 0492-747100 </span> 3050 </div> 3051 </a> 3052 <a class="flex flex-row items-center gap-y-2 py-2 px-4 group min-w-14 xl:min-w-44 xl:px-8" 3053 href="https://www.123drogisterij.nl/customer/account/index/" 3054 title="Account" 3055 > 3056 <template x-if="!customer.signin_token"> 3057 <div class="flex items-center gap-1"> 3058 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-6 w-6" width="24" height="24" role="img"> 3059 <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd"/> 3060<title>Mijn account</title></svg> 3061 <div class="hidden whitespace-nowrap flex-col mb-auto xl:flex"> 3062 <strong class="text-md"> 3063 Mijn account </strong> 3064 3065 <span class="text-secondary-800 text-md font-medium group-hover:underline group-hover:underline"> 3066 Log in </span> 3067 </div> 3068 </div> 3069 </template> 3070 3071 <template x-if="customer.signin_token"> 3072 <div class="flex items-center gap-1 hover:underline"> 3073 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-6 w-6" width="24" height="24" role="img"> 3074 <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd"/> 3075<title>Mijn account</title></svg> 3076 <div class="hidden whitespace-nowrap lg:flex lg:flex-col lg:mb-auto"> 3077 <strong class="text-md"> 3078 Mijn account </strong> 3079
3080 <span class="text-secondary-800 text-md font-medium group-hover:underline group-hover:underline"> 3081 Overzicht </span> 3082 </div> 3083 </div> 3084 </template> 3085 </a> 3086 3087 <a id="compare-link" 3088 class="flex gap-1 items-center fixed bottom-4 right-4 bg-white border-none text-sm rounded-full shadow-hard h-12 py-2 px-4 md:relative md:top-0 md:right-0 md:shadow-none " 3089 :class="{ 'hidden': !(itemCount > 0) }" 3090 href="https://www.123drogisterij.nl/catalog/product_compare/index/" 3091 title="Vergelijken" 3092 x-data="initCompareHeader()" x-cloak 3093 @private-content-loaded.window="receiveCompareData($event.detail.data)" 3094 > 3095 <span class="md:hidden"> 3096 Vergelijken </span> 3097 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-6 w-6 text-primary-500" width="24" height="24" role="img"> 3098 <path stroke-linecap="round" stroke-linejoin="round" d="M7.5 21L3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"/> 3099<title>Vergelijken</title></svg> 3100 3101 <span class="absolute top-[0.35rem] right-2 bg-black text-white text-xs font-bold leading-none rounded-full items-center justify-center w-4 h-4 flex "> 3102 3103 <span class="-mt-px ml-px" x-text="itemCount"></span> 3104 3105 <span x-show="itemCount === 1" class="sr-only"> 3106 product </span> 3107 3108 <span x-show="itemCount > 1" class="sr-only"> 3109 producten </span> 3110 </span> 3111 </a> 3112 <button 3113 id="menu-cart-icon" 3114 class="relative flex flex-col items-center py-2 pl-2 pr-1 xl:pr-0" 3115 x-ref="cartButton" 3116 :aria-disabled="isCartEmpty()" 3117 title="Winkelmand" 3118 @click.prevent.stop="() => { 3119 $dispatch('toggle-cart', { isOpen: true }) 3120 }" 3121 @toggle-cart.window="toggleCart($event)" 3122 :aria-expanded="isCartOpen" 3123 aria-haspopup="dialog" 3124 > 3125 <span 3126 class="sr-only label" 3127 x-text="` 3128 Open of sluit winkelmand, 3129 ${isCartEmpty() ? 3130 'Winkelmand is leeg' : 3131 hyva.str( 3132 'You have %1 product%2 in your cart.', 3133 cart.summary_count, 3134 cart.summary_count === 1 ? '' : 's' 3135 )}` 3136 "> 3137 </span> 3138 3139 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-6 w-6 xl:h-8 xl:w-8" width="24" height="24" role="img"> 3140 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 3141<title/></svg> 3142 3143 <div class="absolute top-0 -right-2.5 hidden bg-primary-500 text-white text-xs font-bold leading-none 3144 rounded-full items-center justify-center w-5 h-5 hover:bg-primary-300" 3145 :class="{'hidden': !cart.summary_count,'flex': cart.summary_count }" 3146 >
3147 <span class="-mt-px ml-px" x-text="cart.summary_count"></span> 3148 </div> 3149 </button> 3150 </div> 3151 </div> 3152 </div> 3153 3154
3154<script> 3155 'use strict'; 3156 3157 const initTopmenuDesktop_6ac1ddf6235c5 = () => ({ 3158 backdrop: false, 3159 openSubmenuId: null, 3160 toggleSubmenu(menuNode) { 3161 if (menuNode === this.openSubmenuId) { 3162 this.backdrop = false 3163 this.openSubmenuId = null 3164 hyva.releaseFocus() 3165 } else { 3166 this.backdrop = true 3167 this.openSubmenuId = menuNode 3168 this.$nextTick(() => { 3169 hyva.trapFocus(this.$refs['submenu-' + menuNode]) 3170 }) 3171 } 3172 } 3173 }) 3174 </script>
3174 3175 3176 <div x-data="initTopmenuDesktop_6ac1ddf6235c5()" 3177 x-defer="interact" 3178 class="navigation hidden w-full lg:block" 3179 :class="{'menu-open': backdrop}" 3180 > 3181 <div class="backdrop desktopmenu mt-h" 3182 x-show="backdrop" 3183 x-transition:enter="ease-in-out duration-250" 3184 x-transition:enter-start="opacity-0" 3185 x-transition:enter-end="opacity-100" 3186 x-transition:leave="ease-in-out duration-250" 3187 x-transition:leave-start="opacity-100" 3188 x-transition:leave-end="opacity-0" 3189 x-cloak 3190 ></div> 3191 <nav class="container lg:block" 3192 aria-label="Main menu" 3193 @mouseleave="backdrop = false; openSubmenuId = 0;" 3194 @keydown.escape="backdrop = false; openSubmenuId = 0;" 3195 > 3196 <ul class="relative flex justify-between"> 3197 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent rounded-sm group" 3198 :class="{'hovered' : openSubmenuId === '27'}" 3199 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '27'; backdrop = true;}, 200)" 3200 @mouseleave="clearTimeout(openSubmenuTimer)" 3201 > 3202 <div class="group " 3203 :class="{'' : openSubmenuId === '27'}" 3204 > 3205 3206<a href="https://www.123drogisterij.nl/incontinentiemateriaal" 3207 class="flex justify-between items-center w-full hover:underline" 3208 data-menu="menu-27" 3209> 3210 Incontinentiemateriaal</a> 3211 </div> 3212 <button type="button" 3213 x-ref="sr-button-27" 3214 :aria-expanded="openSubmenuId === '27' ? 'true' : 'false'" 3215 aria-label="Open submenu" 3216 @click="toggleSubmenu('27'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 3217 > 3218 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 3219 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 3220</svg> 3221 </button> 3222 <div x-ref="submenu-27" 3223 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 3224 x-show="openSubmenuId === '27'" 3225 x-cloak 3226 > 3227
3227<script> 3228 'use strict'; 3229 3230 const initSubMenu27 = () => ({ 3231 openLevel2SubmenuId: null, 3232 openLevel2Submenu(menuNode) { 3233 this.openLevel2SubmenuId = menuNode 3234 this.$nextTick(() => { 3235 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 3236 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 3237 }) 3238 }, 3239 openLevel3SubmenuId: null, 3240 openLevel3Submenu(menuNode) { 3241 this.openLevel3SubmenuId = menuNode 3242 this.$nextTick(() => { 3243 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 3244 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 3245 }) 3246 }, 3247 }) 3248 </script>
3248 3249 3250 <div class="flex container pb-8 h-full" 3251 x-data="initSubMenu27()" 3252 > 3253 <ul class="w-80"> 3254 <li class="py-2 px-4" 3255 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '28' }" 3256 @mouseenter="openLevel2SubmenuId = '28'" 3257 x-init="openLevel2SubmenuId = '28'" 3258 > 3259 <div class="flex justify-stretch"> 3260 3261<a href="https://www.123drogisterij.nl/incontinentiemateriaal/koopjeshoek" 3262 class="flex justify-between items-center w-full font-semibold hover:underline" 3263 data-menu="menu-28" 3264> 3265 Koopjeshoek</a> 3266 </div> 3267 </li> 3268 <li class="py-2 px-4" 3269 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '29' }" 3270 @mouseenter="openLevel2SubmenuId = '29'" 3271 > 3272 <div class="flex justify-stretch"> 3273 3274<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie" 3275 class="flex justify-between items-center w-full font-semibold hover:underline" 3276 data-menu="menu-29" 3277> 3278 TENA</a> 3279 <button type="button" 3280 class="flex flex-1 justify-end items-center pr-1" 3281 :aria-expanded="openLevel2SubmenuId === '29' ? 'true' : 'false'" 3282 aria-controls="level-2-submenu-29" 3283 @click="openLevel2Submenu('29')" 3284 > 3285 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3286 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3287</svg> 3288 <span class="sr-only"> 3289 Open submenu for TENA </span> 3290 </button> 3291 </div> 3292 </li> 3293 <li class="py-2 px-4" 3294 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '49' }" 3295 @mouseenter="openLevel2SubmenuId = '49'" 3296 > 3297 <div class="flex justify-stretch"> 3298 3299<a href="https://www.123drogisterij.nl/incontinentiemateriaal/plastic-broekjes-voor-volwassenen" 3300 class="flex justify-between items-center w-full font-semibold hover:underline" 3301 data-menu="menu-49" 3302> 3303 Plastic Broek Volwassenen</a> 3304 </div> 3305 </li> 3306 <li class="py-2 px-4" 3307 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '50' }" 3308 @mouseenter="openLevel2SubmenuId = '50'" 3309 > 3310 <div class="flex justify-stretch"> 3311 3312<a href="https://www.123drogisterij.nl/incontinentiemateriaal/inleggers-voor-extra-absorptie" 3313 class="flex justify-between items-center w-full font-semibold hover:underline" 3314 data-menu="menu-50" 3315> 3316 Inleggers voor extra absorptie</a> 3317 </div> 3318 </li> 3319 <li class="py-2 px-4" 3320 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '51' }" 3321 @mouseenter="openLevel2SubmenuId = '51'" 3322 > 3323 <div class="flex justify-stretch"> 3324 3325<a href="https://www.123drogisterij.nl/incontinentiemateriaal/zwemluiers" 3326 class="flex justify-between items-center w-full font-semibold hover:underline" 3327 data-menu="menu-51" 3328> 3329 Zwemluiers</a> 3330 </div> 3331 </li> 3332 <li class="py-2 px-4" 3333 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '52' }" 3334 @mouseenter="openLevel2SubmenuId = '52'" 3335 > 3336 <div class="flex justify-stretch"> 3337 3338<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena" 3339 class="flex justify-between items-center w-full font-semibold hover:underline" 3340 data-menu="menu-52" 3341> 3342 Abena</a> 3343 <button type="button" 3344 class="flex flex-1 justify-end items-center pr-1" 3345 :aria-expanded="openLevel2SubmenuId === '52' ? 'true' : 'false'" 3346 aria-controls="level-2-submenu-52" 3347 @click="openLevel2Submenu('52')" 3348 > 3349 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3350 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3351</svg>
3352 <span class="sr-only"> 3353 Open submenu for Abena </span> 3354 </button> 3355 </div> 3356 </li> 3357 <li class="py-2 px-4" 3358 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '63' }" 3359 @mouseenter="openLevel2SubmenuId = '63'" 3360 > 3361 <div class="flex justify-stretch"> 3362 3363<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend" 3364 class="flex justify-between items-center w-full font-semibold hover:underline" 3365 data-menu="menu-63" 3366> 3367 Depend</a> 3368 <button type="button" 3369 class="flex flex-1 justify-end items-center pr-1" 3370 :aria-expanded="openLevel2SubmenuId === '63' ? 'true' : 'false'" 3371 aria-controls="level-2-submenu-63" 3372 @click="openLevel2Submenu('63')" 3373 > 3374 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3375 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3376</svg> 3377 <span class="sr-only"> 3378 Open submenu for Depend </span> 3379 </button> 3380 </div> 3381 </li> 3382 <li class="py-2 px-4" 3383 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '73' }" 3384 @mouseenter="openLevel2SubmenuId = '73'" 3385 > 3386 <div class="flex justify-stretch"> 3387 3388<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie" 3389 class="flex justify-between items-center w-full font-semibold hover:underline" 3390 data-menu="menu-73" 3391> 3392 Attends</a> 3393 <button type="button" 3394 class="flex flex-1 justify-end items-center pr-1" 3395 :aria-expanded="openLevel2SubmenuId === '73' ? 'true' : 'false'" 3396 aria-controls="level-2-submenu-73" 3397 @click="openLevel2Submenu('73')" 3398 > 3399 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3400 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3401</svg> 3402 <span class="sr-only"> 3403 Open submenu for Attends </span> 3404 </button> 3405 </div> 3406 </li> 3407 <li class="py-2 px-4" 3408 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '84' }" 3409 @mouseenter="openLevel2SubmenuId = '84'" 3410 > 3411 <div class="flex justify-stretch"> 3412 3413<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie" 3414 class="flex justify-between items-center w-full font-semibold hover:underline" 3415 data-menu="menu-84" 3416> 3417 Absorin</a> 3418 <button type="button" 3419 class="flex flex-1 justify-end items-center pr-1" 3420 :aria-expanded="openLevel2SubmenuId === '84' ? 'true' : 'false'" 3421 aria-controls="level-2-submenu-84" 3422 @click="openLevel2Submenu('84')" 3423 > 3424 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3425 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3426</svg>
3427 <span class="sr-only"> 3428 Open submenu for Absorin </span> 3429 </button> 3430 </div> 3431 </li> 3432 <li class="py-2 px-4" 3433 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '92' }" 3434 @mouseenter="openLevel2SubmenuId = '92'" 3435 > 3436 <div class="flex justify-stretch"> 3437 3438<a href="https://www.123drogisterij.nl/incontinentiemateriaal/betterdry" 3439 class="flex justify-between items-center w-full font-semibold hover:underline" 3440 data-menu="menu-92" 3441> 3442 BetterDry</a> 3443 </div> 3444 </li> 3445 <li class="py-2 px-4" 3446 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '93' }" 3447 @mouseenter="openLevel2SubmenuId = '93'" 3448 > 3449 <div class="flex justify-stretch"> 3450 3451<a href="https://www.123drogisterij.nl/incontinentiemateriaal/inco-s" 3452 class="flex justify-between items-center w-full font-semibold hover:underline" 3453 data-menu="menu-93" 3454> 3455 Inco's</a> 3456 </div> 3457 </li> 3458 <li class="py-2 px-4" 3459 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '94' }" 3460 @mouseenter="openLevel2SubmenuId = '94'" 3461 > 3462 <div class="flex justify-stretch"> 3463 3464<a href="https://www.123drogisterij.nl/incontinentiemateriaal/netbroekjes" 3465 class="flex justify-between items-center w-full font-semibold hover:underline" 3466 data-menu="menu-94" 3467> 3468 Netbroekjes</a> 3469 </div> 3470 </li> 3471 <li class="py-2 px-4" 3472 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '96' }" 3473 @mouseenter="openLevel2SubmenuId = '96'" 3474 > 3475 <div class="flex justify-stretch"> 3476 3477<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni" 3478 class="flex justify-between items-center w-full font-semibold hover:underline" 3479 data-menu="menu-96" 3480> 3481 Seni</a> 3482 <button type="button" 3483 class="flex flex-1 justify-end items-center pr-1" 3484 :aria-expanded="openLevel2SubmenuId === '96' ? 'true' : 'false'" 3485 aria-controls="level-2-submenu-96" 3486 @click="openLevel2Submenu('96')" 3487 > 3488 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3489 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3490</svg> 3491 <span class="sr-only"> 3492 Open submenu for Seni </span> 3493 </button> 3494 </div> 3495 </li> 3496 <li class="py-2 px-4" 3497 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '105' }" 3498 @mouseenter="openLevel2SubmenuId = '105'" 3499 > 3500 <div class="flex justify-stretch"> 3501 3502<a href="https://www.123drogisterij.nl/incontinentiemateriaal/matrasbeschermer" 3503 class="flex justify-between items-center w-full font-semibold hover:underline" 3504 data-menu="menu-105" 3505> 3506 Incontinentie matrasbeschermer</a> 3507 </div> 3508 </li> 3509 <li class="py-2 px-4" 3510 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '107' }" 3511 @mouseenter="openLevel2SubmenuId = '107'" 3512 > 3513 <div class="flex justify-stretch"> 3514 3515<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging" 3516 class="flex justify-between items-center w-full font-semibold hover:underline" 3517 data-menu="menu-107" 3518> 3519 Verzorging</a> 3520 <button type="button" 3521 class="flex flex-1 justify-end items-center pr-1" 3522 :aria-expanded="openLevel2SubmenuId === '107' ? 'true' : 'false'" 3523 aria-controls="level-2-submenu-107" 3524 @click="openLevel2Submenu('107')" 3525 > 3526 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3527 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3528</svg>
3529 <span class="sr-only"> 3530 Open submenu for Verzorging </span> 3531 </button> 3532 </div> 3533 </li> 3534 <li class="py-2 px-4" 3535 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '112' }" 3536 @mouseenter="openLevel2SubmenuId = '112'" 3537 > 3538 <div class="flex justify-stretch"> 3539 3540<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare" 3541 class="flex justify-between items-center w-full font-semibold hover:underline" 3542 data-menu="menu-112" 3543> 3544 Molicare</a> 3545 <button type="button" 3546 class="flex flex-1 justify-end items-center pr-1" 3547 :aria-expanded="openLevel2SubmenuId === '112' ? 'true' : 'false'" 3548 aria-controls="level-2-submenu-112" 3549 @click="openLevel2Submenu('112')" 3550 > 3551 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3552 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3553</svg> 3554 <span class="sr-only"> 3555 Open submenu for Molicare </span> 3556 </button> 3557 </div> 3558 </li> 3559 <li class="py-2 px-4" 3560 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '116' }" 3561 @mouseenter="openLevel2SubmenuId = '116'" 3562 > 3563 <div class="flex justify-stretch"> 3564 3565<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan" 3566 class="flex justify-between items-center w-full font-semibold hover:underline" 3567 data-menu="menu-116" 3568> 3569 Egosan</a> 3570 <button type="button" 3571 class="flex flex-1 justify-end items-center pr-1" 3572 :aria-expanded="openLevel2SubmenuId === '116' ? 'true' : 'false'" 3573 aria-controls="level-2-submenu-116" 3574 @click="openLevel2Submenu('116')" 3575 > 3576 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3577 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3578</svg> 3579 <span class="sr-only"> 3580 Open submenu for Egosan </span> 3581 </button> 3582 </div> 3583 </li> 3584 <li class="py-2 px-4" 3585 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '121' }" 3586 @mouseenter="openLevel2SubmenuId = '121'" 3587 > 3588 <div class="flex justify-stretch"> 3589 3590<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen" 3591 class="flex justify-between items-center w-full font-semibold hover:underline" 3592 data-menu="menu-121" 3593> 3594 Incontinentiemateriaal voor kinderen</a> 3595 <button type="button" 3596 class="flex flex-1 justify-end items-center pr-1" 3597 :aria-expanded="openLevel2SubmenuId === '121' ? 'true' : 'false'" 3598 aria-controls="level-2-submenu-121" 3599 @click="openLevel2Submenu('121')" 3600 > 3601 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3602 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3603</svg>
3604 <span class="sr-only"> 3605 Open submenu for Incontinentiemateriaal voor kinderen </span> 3606 </button> 3607 </div> 3608 </li> 3609 <li class="py-2 px-4" 3610 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '125' }" 3611 @mouseenter="openLevel2SubmenuId = '125'" 3612 > 3613 <div class="flex justify-stretch"> 3614 3615<a href="https://www.123drogisterij.nl/incontinentiemateriaal/fixatie-broekjes-incontinentie" 3616 class="flex justify-between items-center w-full font-semibold hover:underline" 3617 data-menu="menu-125" 3618> 3619 Fix</a> 3620 <button type="button" 3621 class="flex flex-1 justify-end items-center pr-1" 3622 :aria-expanded="openLevel2SubmenuId === '125' ? 'true' : 'false'" 3623 aria-controls="level-2-submenu-125" 3624 @click="openLevel2Submenu('125')" 3625 > 3626 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 3627 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3628</svg> 3629 <span class="sr-only"> 3630 Open submenu for Fix </span> 3631 </button> 3632 </div> 3633 </li> 3634 </ul> 3635 3636 3637 <ul id="level-2-submenu-29" 3638 x-ref="level-2-submenu-29" 3639 x-show="openLevel2SubmenuId === '29'" 3640 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 3641 > 3642 <li class="py-2" 3643 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '30' }" 3644 @mouseenter="openLevel3SubmenuId = '30'" 3645 > 3646 <div class="flex justify-stretch"> 3647 3648<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants" 3649 class="flex justify-between items-center w-full hover:underline" 3650 data-menu="menu-30" 3651> 3652 TENA Pants</a> 3653 3654 <button type="button" 3655 class="flex flex-1 justify-end items-center pr-1" 3656 :aria-expanded="openLevel2SubmenuId === '30' ? 'true' : 'false'" 3657 aria-controls="level-2-submenu-30" 3658 @click="openLevel2Submenu('30')" 3659 > 3660 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0" width="20" height="20"> 3661 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 3662</svg> 3663 <span class="sr-only"> 3664 Open submenu for TENA Pants </span> 3665 </button> 3666 </div> 3667 3668 <ul id="level-3-submenu-30" 3669 x-ref="level-3-submenu-30" 3670 x-show="openLevel3SubmenuId === '30'" 3671 class="flex flex-col w-80 bg-white absolute left-full top-0" 3672 > 3673 <li class="pl-12 py-2 hover:bg-tertiary-100"> 3674 3675<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants/tena-pants-voor-vrouwen" 3676 class="flex justify-between items-center w-full hover:underline" 3677 data-menu="menu-31" 3678> 3679 TENA Pants voor vrouwen</a> 3680 </li> 3681 <li class="pl-12 py-2 hover:bg-tertiary-100"> 3682 3683<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-pants/tena-pants-voor-mannen" 3684 class="flex justify-between items-center w-full hover:underline" 3685 data-menu="menu-32" 3686> 3687 TENA Pants voor mannen</a> 3688 </li> 3689 </ul> 3690 </li> 3691 <li class="py-2" 3692 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '33' }" 3693 @mouseenter="openLevel3SubmenuId = '33'" 3694 > 3695 <div class="flex justify-stretch"> 3696 3697<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-lady" 3698 class="flex justify-between items-center w-full hover:underline" 3699 data-menu="menu-33" 3700> 3701 TENA Lady</a> 3702 3703 </div> 3704 </li> 3705 <li class="py-2" 3706 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '34' }" 3707 @mouseenter="openLevel3SubmenuId = '34'" 3708 > 3709 <div class="flex justify-stretch"> 3710 3711<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-for-men" 3712 class="flex justify-between items-center w-full hover:underline" 3713 data-menu="menu-34" 3714> 3715 TENA For Men</a> 3716 3717 </div> 3718 </li> 3719 <li class="py-2" 3720 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '35' }" 3721 @mouseenter="openLevel3SubmenuId = '35'" 3722 > 3723 <div class="flex justify-stretch"> 3724 3725<a href="#" 3726 class="flex justify-between items-center w-full hover:underline" 3727 data-menu="menu-35" 3728> 3729 TENA Slip Active Fit</a> 3730 3731 </div> 3732 </li> 3733 <li class="py-2" 3734 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '36' }" 3735 @mouseenter="openLevel3SubmenuId = '36'" 3736 > 3737 <div class="flex justify-stretch"> 3738 3739<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-lady-broekjes" 3740 class="flex justify-between items-center w-full hover:underline" 3741 data-menu="menu-36" 3742> 3743 TENA Lady Pants</a> 3744 3745 </div> 3746 </li> 3747 <li class="py-2" 3748 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '37' }" 3749 @mouseenter="openLevel3SubmenuId = '37'" 3750 > 3751 <div class="flex justify-stretch"> 3752 3753<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-discreet" 3754 class="flex justify-between items-center w-full hover:underline" 3755 data-menu="menu-37" 3756> 3757 TENA Discreet</a> 3758 3759 </div> 3760 </li> 3761 <li class="py-2" 3762 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '38' }" 3763 @mouseenter="openLevel3SubmenuId = '38'" 3764 > 3765 <div class="flex justify-stretch"> 3766 3767<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-flex" 3768 class="flex justify-between items-center w-full hover:underline" 3769 data-menu="menu-38" 3770> 3771 TENA Flex</a> 3772 3773 </div> 3774 </li> 3775 <li class="py-2" 3776 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '39' }" 3777 @mouseenter="openLevel3SubmenuId = '39'" 3778 > 3779 <div class="flex justify-stretch"> 3780 3781<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-bed-onderleggers" 3782 class="flex justify-between items-center w-full hover:underline" 3783 data-menu="menu-39" 3784> 3785 TENA Bed Onderlegger</a> 3786 3787 </div> 3788 </li> 3789 <li class="py-2" 3790 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '40' }" 3791 @mouseenter="openLevel3SubmenuId = '40'" 3792 > 3793 <div class="flex justify-stretch"> 3794 3795<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-huidverzorging" 3796 class="flex justify-between items-center w-full hover:underline" 3797 data-menu="menu-40" 3798> 3799 TENA Huidverzorging</a> 3800 3801 </div> 3802 </li> 3803 <li class="py-2" 3804 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '41' }" 3805 @mouseenter="openLevel3SubmenuId = '41'" 3806 > 3807 <div class="flex justify-stretch"> 3808 3809<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-slips-confioair" 3810 class="flex justify-between items-center w-full hover:underline" 3811 data-menu="menu-41" 3812> 3813 TENA Slips - PROskin</a> 3814 3815 </div> 3816 </li> 3817 <li class="py-2" 3818 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '42' }" 3819 @mouseenter="openLevel3SubmenuId = '42'" 3820 > 3821 <div class="flex justify-stretch"> 3822 3823<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-comfort-confioair" 3824 class="flex justify-between items-center w-full hover:underline" 3825 data-menu="menu-42" 3826> 3827 TENA Comfort - PROskin</a> 3828 3829 </div> 3830 </li> 3831 <li class="py-2" 3832 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '43' }" 3833 @mouseenter="openLevel3SubmenuId = '43'" 3834 > 3835 <div class="flex justify-stretch"> 3836 3837<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-bariatric-slip" 3838 class="flex justify-between items-center w-full hover:underline" 3839 data-menu="menu-43" 3840> 3841 TENA Bariatric Slip</a> 3842 3843 </div> 3844 </li> 3845 <li class="py-2" 3846 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '44' }" 3847 @mouseenter="openLevel3SubmenuId = '44'" 3848 > 3849 <div class="flex justify-stretch"> 3850 3851<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-fix" 3852 class="flex justify-between items-center w-full hover:underline" 3853 data-menu="menu-44" 3854> 3855 TENA Fix</a> 3856 3857 </div> 3858 </li> 3859 <li class="py-2" 3860 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '46' }" 3861 @mouseenter="openLevel3SubmenuId = '46'" 3862 > 3863 <div class="flex justify-stretch"> 3864 3865<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-steeklaken" 3866 class="flex justify-between items-center w-full hover:underline" 3867 data-menu="menu-46" 3868> 3869 TENA Steeklaken</a> 3870 3871 </div> 3872 </li> 3873 <li class="py-2" 3874 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '47' }" 3875 @mouseenter="openLevel3SubmenuId = '47'" 3876 > 3877 <div class="flex justify-stretch"> 3878 3879<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-men" 3880 class="flex justify-between items-center w-full hover:underline" 3881 data-menu="menu-47" 3882> 3883 TENA Men</a> 3884 3885 </div> 3886 </li> 3887 <li class="py-2" 3888 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '48' }" 3889 @mouseenter="openLevel3SubmenuId = '48'" 3890 > 3891 <div class="flex justify-stretch"> 3892 3893<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-comfort-mini" 3894 class="flex justify-between items-center w-full hover:underline" 3895 data-menu="menu-48" 3896> 3897 TENA Comfort Mini</a> 3898 3899 </div> 3900 </li> 3901 </ul> 3902 3903 <ul id="level-2-submenu-52" 3904 x-ref="level-2-submenu-52" 3905 x-show="openLevel2SubmenuId === '52'" 3906 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 3907 > 3908 <li class="py-2" 3909 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '53' }" 3910 @mouseenter="openLevel3SubmenuId = '53'" 3911 > 3912 <div class="flex justify-stretch"> 3913 3914<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-flex" 3915 class="flex justify-between items-center w-full hover:underline" 3916 data-menu="menu-53" 3917> 3918 Abena Pants</a> 3919 3920 </div> 3921 </li> 3922 <li class="py-2" 3923 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '54' }" 3924 @mouseenter="openLevel3SubmenuId = '54'" 3925 > 3926 <div class="flex justify-stretch"> 3927 3928<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-form" 3929 class="flex justify-between items-center w-full hover:underline" 3930 data-menu="menu-54" 3931> 3932 Abena Slip</a> 3933 3934 </div> 3935 </li> 3936 <li class="py-2" 3937 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '55' }" 3938 @mouseenter="openLevel3SubmenuId = '55'" 3939 > 3940 <div class="flex justify-stretch"> 3941 3942<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-man" 3943 class="flex justify-between items-center w-full hover:underline" 3944 data-menu="menu-55" 3945> 3946 Abena Man</a> 3947 3948 </div> 3949
3949 </li> 3950 <li class="py-2" 3951 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '56' }" 3952 @mouseenter="openLevel3SubmenuId = '56'" 3953 > 3954 <div class="flex justify-stretch"> 3955 3956<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/verzorgend-wassen-abena" 3957 class="flex justify-between items-center w-full hover:underline" 3958 data-menu="menu-56" 3959> 3960 Verzorgend Wassen van Abena</a> 3961 3962 </div> 3963 </li> 3964 <li class="py-2" 3965 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '57' }" 3966 @mouseenter="openLevel3SubmenuId = '57'" 3967 > 3968 <div class="flex justify-stretch"> 3969 3970<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-san" 3971 class="flex justify-between items-center w-full hover:underline" 3972 data-menu="menu-57" 3973> 3974 Abena San</a> 3975 3976 </div> 3977 </li> 3978 <li class="py-2" 3979 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '58' }" 3980 @mouseenter="openLevel3SubmenuId = '58'" 3981 > 3982 <div class="flex justify-stretch"> 3983 3984<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abena-geurneutralisator" 3985 class="flex justify-between items-center w-full hover:underline" 3986 data-menu="menu-58" 3987> 3988 Abena Geurneutralisator</a> 3989 3990 </div> 3991 </li> 3992 <li class="py-2" 3993 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '59' }" 3994 @mouseenter="openLevel3SubmenuId = '59'" 3995 > 3996 <div class="flex justify-stretch"> 3997 3998<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abena-abri-let" 3999 class="flex justify-between items-center w-full hover:underline" 4000 data-menu="menu-59" 4001> 4002 Abena Let</a> 4003 4004 </div> 4005 </li> 4006 <li class="py-2" 4007 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '60' }" 4008 @mouseenter="openLevel3SubmenuId = '60'" 4009 > 4010 <div class="flex justify-stretch"> 4011 4012<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-light" 4013 class="flex justify-between items-center w-full hover:underline" 4014 data-menu="menu-60" 4015> 4016 Abena Light</a> 4017 4018 </div> 4019 </li> 4020 <li class="py-2" 4021 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '61' }" 4022 @mouseenter="openLevel3SubmenuId = '61'" 4023 > 4024 <div class="flex justify-stretch"> 4025 4026<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-soft" 4027 class="flex justify-between items-center w-full hover:underline" 4028 data-menu="menu-61" 4029> 4030 Abena Abri-Soft</a> 4031 4032 </div> 4033 </li> 4034 <li class="py-2" 4035 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '62' }" 4036 @mouseenter="openLevel3SubmenuId = '62'" 4037 > 4038 <div class="flex justify-stretch"> 4039 4040<a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena/abri-form-junior" 4041 class="flex justify-between items-center w-full hover:underline" 4042 data-menu="menu-62" 4043> 4044 Abena Slip Junior</a> 4045 4046 </div> 4047 </li> 4048 </ul> 4049 4050 <ul id="level-2-submenu-63" 4051 x-ref="level-2-submenu-63" 4052 x-show="openLevel2SubmenuId === '63'" 4053 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4054 > 4055 <li class="py-2" 4056 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '64' }" 4057 @mouseenter="openLevel3SubmenuId = '64'" 4058 > 4059 <div class="flex justify-stretch"> 4060 4061<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend
4061/depend-inleggers" 4062 class="flex justify-between items-center w-full hover:underline" 4063 data-menu="menu-64" 4064> 4065 Depend Inleggers</a> 4066 4067 </div> 4068 </li> 4069 <li class="py-2" 4070 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '65' }" 4071 @mouseenter="openLevel3SubmenuId = '65'" 4072 > 4073 <div class="flex justify-stretch"> 4074 4075<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-slip" 4076 class="flex justify-between items-center w-full hover:underline" 4077 data-menu="menu-65" 4078> 4079 Depend Slip</a> 4080 4081 </div> 4082 </li> 4083 <li class="py-2" 4084 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '66' }" 4085 @mouseenter="openLevel3SubmenuId = '66'" 4086 > 4087 <div class="flex justify-stretch"> 4088 4089<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants" 4090 class="flex justify-between items-center w-full hover:underline" 4091 data-menu="menu-66" 4092> 4093 Depend Pants</a> 4094 4095 <button type="button" 4096 class="flex flex-1 justify-end items-center pr-1" 4097 :aria-expanded="openLevel2SubmenuId === '66' ? 'true' : 'false'" 4098 aria-controls="level-2-submenu-66" 4099 @click="openLevel2Submenu('66')" 4100 > 4101 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0" width="20" height="20"> 4102 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 4103</svg> 4104 <span class="sr-only"> 4105 Open submenu for Depend Pants </span> 4106 </button> 4107 </div> 4108 4109 <ul id="level-3-submenu-66" 4110 x-ref="level-3-submenu-66" 4111 x-show="openLevel3SubmenuId === '66'" 4112 class="flex flex-col w-80 bg-white absolute left-full top-0" 4113 > 4114 <li class="pl-12 py-2 hover:bg-tertiary-100"> 4115 4116<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants/depend-pants-for-women" 4117 class="flex justify-between items-center w-full hover:underline" 4118 data-menu="menu-67" 4119> 4120 Depend Pants for Women</a> 4121 </li> 4122 <li class="pl-12 py-2 hover:bg-tertiary-100"> 4123 4124<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-pants/depend-pants-for-men" 4125 class="flex justify-between items-center w-full hover:underline" 4126 data-menu="menu-68" 4127> 4128 Depend Pants for Men</a> 4129 </li> 4130 </ul> 4131 </li> 4132 <li class="py-2" 4133 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '69' }" 4134 @mouseenter="openLevel3SubmenuId = '69'" 4135 > 4136 <div class="flex justify-stretch"> 4137 4138<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-verband" 4139 class="flex justify-between items-center w-full hover:underline" 4140 data-menu="menu-69" 4141> 4142 Depend Verband</a> 4143 4144 </div> 4145 </li> 4146 <li class="py-2" 4147 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '70' }" 4148 @mouseenter="openLevel3SubmenuId = '70'" 4149 > 4150 <div class="flex justify-stretch"> 4151 4152<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend
4152/depend-for-men" 4153 class="flex justify-between items-center w-full hover:underline" 4154 data-menu="menu-70" 4155> 4156 Depend For Men</a> 4157 4158 </div> 4159 </li> 4160 <li class="py-2" 4161 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '71' }" 4162 @mouseenter="openLevel3SubmenuId = '71'" 4163 > 4164 <div class="flex justify-stretch"> 4165 4166<a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend/depend-anatomic" 4167 class="flex justify-between items-center w-full hover:underline" 4168 data-menu="menu-71" 4169> 4170 Depend Anatomic</a> 4171 4172 </div> 4173 </li> 4174 </ul> 4175 4176 <ul id="level-2-submenu-73" 4177 x-ref="level-2-submenu-73" 4178 x-show="openLevel2SubmenuId === '73'" 4179 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4180 > 4181 <li class="py-2" 4182 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '74' }" 4183 @mouseenter="openLevel3SubmenuId = '74'" 4184 > 4185 <div class="flex justify-stretch"> 4186 4187<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-slip" 4188 class="flex justify-between items-center w-full hover:underline" 4189 data-menu="menu-74" 4190> 4191 Attends Slip</a> 4192 4193 </div> 4194 </li> 4195 <li class="py-2" 4196 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '75' }" 4197 @mouseenter="openLevel3SubmenuId = '75'" 4198 > 4199 <div class="flex justify-stretch"> 4200 4201<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-inleggers-2" 4202 class="flex justify-between items-center w-full hover:underline" 4203 data-menu="menu-75" 4204> 4205 Attends inleggers</a> 4206 4207 </div> 4208 </li> 4209 <li class="py-2" 4210 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '76' }" 4211 @mouseenter="openLevel3SubmenuId = '76'" 4212 > 4213 <div class="flex justify-stretch"> 4214 4215<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-pull-ons" 4216 class="flex justify-between items-center w-full hover:underline" 4217 data-menu="menu-76" 4218> 4219 Attends Pull-Ons</a> 4220 4221 </div> 4222 </li> 4223 <li class="py-2" 4224 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '77' }" 4225 @mouseenter="openLevel3SubmenuId = '77'" 4226 > 4227 <div class="flex justify-stretch"> 4228 4229<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-for-men" 4230 class="flex justify-between items-center w-full hover:underline" 4231 data-menu="menu-77" 4232> 4233 Attends For Men</a> 4234 4235 </div> 4236 </li> 4237 <li class="py-2" 4238 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '78' }" 4239 @mouseenter="openLevel3SubmenuId = '78'" 4240 > 4241 <div class="flex justify-stretch"> 4242 4243<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-soft" 4244 class="flex justify-between items-center w-full hover:underline" 4245 data-menu="menu-78" 4246> 4247 Attends Soft</a> 4248 4249 </div> 4250 </li> 4251 <li class="py-2" 4252 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '79' }" 4253 @mouseenter="openLevel3SubmenuId = '79'" 4254 > 4255 <div class="flex justify-stretch"> 4256 4257<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-contours" 4258 class="flex justify-between items-center w-full hover:underline" 4259 data-menu="menu-79" 4260> 4261 Attends Contours</a> 4262 4263 </div> 4264 </li> 4265 <li class="py-2" 4266 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '80' }" 4267 @mouseenter="openLevel3SubmenuId = '80'" 4268 > 4269 <div class="flex justify-stretch"> 4270 4271<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-contours-air-comfort" 4272 class="flex justify-between items-center w-full hover:underline" 4273 data-menu="menu-80" 4274> 4275 Attends Contours Air Comfort</a> 4276 4277 </div> 4278 </li> 4279 <li class="py-2" 4280 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '82' }" 4281 @mouseenter="openLevel3SubmenuId = '82'" 4282 > 4283 <div class="flex justify-stretch"> 4284 4285<a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie/attends-cover-dri" 4286 class="flex justify-between items-center w-full hover:underline" 4287 data-menu="menu-82" 4288> 4289 Attends Cover Dri</a> 4290 4291 </div> 4292 </li> 4293 </ul> 4294 4295 <ul id="level-2-submenu-84" 4296 x-ref="level-2-submenu-84" 4297 x-show="openLevel2SubmenuId === '84'" 4298 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4299 > 4300 <li class="py-2" 4301 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '85' }" 4302 @mouseenter="openLevel3SubmenuId = '85'" 4303 > 4304 <div class="flex justify-stretch"> 4305 4306<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-slip" 4307 class="flex justify-between items-center w-full hover:underline" 4308 data-menu="menu-85" 4309> 4310 Absorin Slip</a> 4311 4312 </div> 4313 </li> 4314 <li class="py-2" 4315 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '86' }" 4316 @mouseenter="openLevel3SubmenuId = '86'" 4317 > 4318 <div class="flex justify-stretch"> 4319 4320<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-pants" 4321 class="flex justify-between items-center w-full hover:underline" 4322 data-menu="menu-86" 4323> 4324 Absorin Pants</a> 4325 4326 </div> 4327 </li> 4328 <li class="py-2" 4329 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '87' }" 4330 @mouseenter="openLevel3SubmenuId = '87'" 4331 > 4332 <div class="flex justify-stretch"> 4333 4334<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-sanette" 4335 class="flex justify-between items-center w-full hover:underline" 4336 data-menu="menu-87" 4337> 4338 Absorin Sanette</a> 4339 4340 </div> 4341 </li> 4342 <li class="py-2" 4343 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '88' }" 4344 @mouseenter="openLevel3SubmenuId = '88'" 4345 > 4346 <div class="flex justify-stretch"> 4347 4348<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-finette" 4349 class="flex justify-between items-center w-full hover:underline" 4350 data-menu="menu-88" 4351> 4352 Absorin Finette</a> 4353 4354 </div> 4355 </li> 4356 <li class="py-2" 4357 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '89' }" 4358 @mouseenter="openLevel3SubmenuId = '89'" 4359 > 4360 <div class="flex justify-stretch"> 4361 4362<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-onderlegger" 4363 class="flex justify-between items-center w-full hover:underline" 4364 data-menu="menu-89" 4365> 4366 Absorin Onderlegger</a> 4367 4368 </div> 4369 </li> 4370 <li class="py-2" 4371 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '90' }" 4372 @mouseenter="openLevel3SubmenuId = '90'" 4373 > 4374 <div class="flex justify-stretch"> 4375 4376<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-inlay" 4377 class="flex justify-between items-center w-full hover:underline" 4378 data-menu="menu-90" 4379> 4380 Absorin Classic Inlay</a> 4381 4382 </div> 4383 </li> 4384 <li class="py-2" 4385 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '91' }" 4386 @mouseenter="openLevel3SubmenuId = '91'" 4387 > 4388 <div class="flex justify-stretch"> 4389 4390<a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie/absorin-mincy" 4391 class="flex justify-between items-center w-full hover:underline" 4392 data-menu="menu-91" 4393> 4394 Absorin Mannen</a> 4395 4396 </div> 4397 </li> 4398 </ul> 4399 4400 <ul id="level-2-submenu-96" 4401 x-ref="level-2-submenu-96" 4402 x-show="openLevel2SubmenuId === '96'" 4403 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4404 > 4405 <li class="py-2" 4406 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '97' }" 4407 @mouseenter="openLevel3SubmenuId = '97'" 4408 > 4409 <div class="flex justify-stretch"> 4410 4411<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-bed-onderlegger" 4412 class="flex justify-between items-center w-full hover:underline" 4413 data-menu="menu-97" 4414> 4415 Seni Bed Onderlegger</a> 4416 4417 </div> 4418 </li> 4419 <li class="py-2" 4420 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '98' }" 4421 @mouseenter="openLevel3SubmenuId = '98'" 4422 > 4423 <div class="flex justify-stretch"> 4424 4425<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-slips" 4426 class="flex justify-between items-center w-full hover:underline" 4427 data-menu="menu-98" 4428> 4429 Seni Slips</a> 4430 4431 </div> 4432 </li> 4433 <li class="py-2" 4434 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '99' }" 4435 @mouseenter="openLevel3SubmenuId = '99'" 4436 > 4437 <div class="flex justify-stretch"> 4438 4439<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-lady" 4440 class="flex justify-between items-center w-full hover:underline" 4441 data-menu="menu-99" 4442> 4443 Seni Lady</a> 4444 4445 </div> 4446 </li> 4447 <li class="py-2" 4448 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '100' }" 4449 @mouseenter="openLevel3SubmenuId = '100'" 4450 > 4451 <div class="flex justify-stretch"> 4452 4453<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-care" 4454 class="flex justify-between items-center w-full hover:underline" 4455 data-menu="menu-100" 4456> 4457 Seni Care</a> 4458 4459 </div> 4460 </li> 4461 <li class="py-2" 4462 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '101' }" 4463 @mouseenter="openLevel3SubmenuId = '101'" 4464 > 4465 <div class="flex justify-stretch"> 4466 4467<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-
4467pants" 4468 class="flex justify-between items-center w-full hover:underline" 4469 data-menu="menu-101" 4470> 4471 Seni Pants</a> 4472 4473 </div> 4474 </li> 4475 <li class="py-2" 4476 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '102' }" 4477 @mouseenter="openLevel3SubmenuId = '102'" 4478 > 4479 <div class="flex justify-stretch"> 4480 4481<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-man" 4482 class="flex justify-between items-center w-full hover:underline" 4483 data-menu="menu-102" 4484> 4485 Seni Man</a> 4486 4487 </div> 4488 </li> 4489 <li class="py-2" 4490 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '103' }" 4491 @mouseenter="openLevel3SubmenuId = '103'" 4492 > 4493 <div class="flex justify-stretch"> 4494 4495<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/san-seni-inleggers" 4496 class="flex justify-between items-center w-full hover:underline" 4497 data-menu="menu-103" 4498> 4499 San Seni inleggers</a> 4500 4501 </div> 4502 </li> 4503 <li class="py-2" 4504 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '104' }" 4505 @mouseenter="openLevel3SubmenuId = '104'" 4506 > 4507 <div class="flex justify-stretch"> 4508 4509<a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni/seni-kids-junior" 4510 class="flex justify-between items-center w-full hover:underline" 4511 data-menu="menu-104" 4512> 4513 Seni Kids Junior</a> 4514 4515 </div> 4516 </li> 4517 </ul> 4518 4519 <ul id="level-2-submenu-107" 4520 x-ref="level-2-submenu-107" 4521 x-show="openLevel2SubmenuId === '107'" 4522 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4523 > 4524 <li class="py-2" 4525 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '108' }" 4526 @mouseenter="openLevel3SubmenuId = '108'" 4527 > 4528 <div class="flex justify-stretch"> 4529 4530<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/washandjes" 4531 class="flex justify-between items-center w-full hover:underline" 4532 data-menu="menu-108" 4533> 4534 Washandjes</a> 4535 4536 </div> 4537 </li> 4538 <li class="py-2" 4539 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '109' }" 4540 @mouseenter="openLevel3SubmenuId = '109'" 4541 > 4542 <div class="flex justify-stretch"> 4543 4544<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/tena-verzorging" 4545 class="flex justify-between items-center w-full hover:underline" 4546 data-menu="menu-109" 4547> 4548 TENA Verzorging</a> 4549 4550 </div> 4551 </li> 4552 <li class="py-2" 4553 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '110' }" 4554 @mouseenter="openLevel3SubmenuId = '110'" 4555 > 4556 <div class="flex justify-stretch"> 4557 4558<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/seni-verzorging" 4559 class="flex justify-between items-center w-full hover:underline" 4560 data-menu="menu-110" 4561> 4562 Seni Verzorging</a> 4563 4564 </div> 4565 </li> 4566 <li class="py-2" 4567 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '111' }" 4568 @mouseenter="openLevel3SubmenuId = '111'" 4569 > 4570 <div class="flex justify-stretch"> 4571 4572<a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging/abena-verzorging" 4573 class="flex justify-between items-center w-full hover:underline" 4574 data-menu="menu-111" 4575> 4576 Abena Verzorging</a> 4577 4578 </div> 4579 </li> 4580 </ul> 4581 4582 <ul id="level-2-submenu-112" 4583 x-ref="level-2-submenu-112" 4584 x-show="openLevel2SubmenuId === '112'" 4585 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4586 > 4587 <li class="py-2" 4588 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '113' }" 4589 @mouseenter="openLevel3SubmenuId = '113'" 4590 > 4591 <div class="flex justify-stretch"> 4592 4593<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare/molicare-mobile" 4594 class="flex justify-between items-center w-full hover:underline" 4595 data-menu="menu-113" 4596> 4597 Hartmann Molicare Mobile</a> 4598 4599 </div> 4600 </li> 4601 <li class="py-2" 4602 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '114' }" 4603 @mouseenter="openLevel3SubmenuId = '114'" 4604 > 4605 <div class="flex justify-stretch"> 4606 4607<a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare/hartmann-molicare-men" 4608 class="flex justify-between items-center w-full hover:underline" 4609 data-menu="menu-114" 4610> 4611 Hartmann Molicare Men</a> 4612 4613 </div> 4614 </li> 4615 </ul> 4616 4617 <ul id="level-2-submenu-116" 4618 x-ref="level-2-submenu-116" 4619 x-show="openLevel2SubmenuId === '116'" 4620 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4621 > 4622 <li class="py-2" 4623 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '117' }" 4624 @mouseenter="openLevel3SubmenuId = '117'" 4625 > 4626 <div class="flex justify-stretch"> 4627 4628<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-pants" 4629 class="flex justify-between items-center w-full hover:underline" 4630 data-menu="menu-117" 4631> 4632 Egosan Pants</a> 4633 4634 </div> 4635 </li> 4636 <li class="py-2" 4637 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '118' }" 4638 @mouseenter="openLevel3SubmenuId = '118'" 4639 > 4640 <div class="flex justify-stretch"> 4641 4642<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-slip" 4643 class="flex justify-between items-center w-full hover:underline" 4644 data-menu="menu-118" 4645> 4646 Egosan Slip</a> 4647 4648 </div> 4649 </li> 4650 <li class="py-2" 4651 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '119' }" 4652 @mouseenter="openLevel3SubmenuId = '119'" 4653 > 4654 <div class="flex justify-stretch"> 4655 4656<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-man" 4657 class="flex justify-between items-center w-full hover:underline" 4658 data-menu="menu-119" 4659> 4660 Egosan Man</a> 4661 4662 </div> 4663 </li> 4664 <li class="py-2" 4665 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '120' }" 4666 @mouseenter="openLevel3SubmenuId = '120'" 4667 > 4668 <div class="flex justify-stretch"> 4669 4670<a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan/egosan-bed" 4671 class="flex justify-between items-center w-full hover:underline" 4672 data-menu="menu-120" 4673> 4674 Egosan Bed</a> 4675 4676 </div> 4677 </li> 4678 </ul> 4679 4680 <ul id="level-2-submenu-121" 4681 x-ref="level-2-submenu-121" 4682 x-show="openLevel2SubmenuId === '121'" 4683 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4684 > 4685 <li class="py-2" 4686 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '122' }" 4687 @mouseenter="openLevel3SubmenuId = '122'" 4688 > 4689 <div class="flex justify-stretch"> 4690 4691<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/luiers-voor-kinderen" 4692 class="flex justify-between items-center w-full hover:underline" 4693 data-menu="menu-122" 4694> 4695 Luiers voor kinderen</a> 4696 4697 </div> 4698 </li> 4699 <li class="py-2" 4700 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '123' }" 4701 @mouseenter="openLevel3SubmenuId = '123'" 4702 > 4703 <div class="flex justify-stretch"> 4704 4705<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/incontinentiebroekjes-voor-kinderen" 4706 class="flex justify-between items-center w-full hover:underline" 4707 data-menu="menu-123" 4708> 4709 Incontinentiebroekjes voor kinderen</a> 4710 4711 </div> 4712 </li> 4713 <li class="py-2" 4714 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '124' }" 4715 @mouseenter="openLevel3SubmenuId = '124'" 4716 > 4717 <div class="flex justify-stretch"> 4718 4719<a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen/matrasbescherming-voor-kinderen" 4720 class="flex justify-between items-center w-full hover:underline" 4721 data-menu="menu-124" 4722> 4723 Matrasbescherming voor kinderen</a> 4724 4725 </div> 4726 </li> 4727 </ul> 4728 4729 <ul id="level-2-submenu-125" 4730 x-ref="level-2-submenu-125" 4731 x-show="openLevel2SubmenuId === '125'" 4732 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 4733 > 4734 <li class="py-2" 4735 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '126' }" 4736 @mouseenter="openLevel3SubmenuId = '126'" 4737 > 4738 <div class="flex justify-stretch"> 4739 4740<a href="https://www.123drogisterij.nl/incontinentiemateriaal/fixatie-broekjes-incontinentie/tena-fixatie-broekjes" 4741 class="flex justify-between items-center w-full hover:underline" 4742 data-menu="menu-126" 4743> 4744 TENA Fixatie Broekjes</a> 4745 4746 </div> 4747 </li> 4748 </ul> 4749 </div> 4750 </div> 4751 4752 </li> 4753 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
4753ded-sm group" 4754 :class="{'hovered' : openSubmenuId === '128'}" 4755 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '128'; backdrop = true;}, 200)" 4756 @mouseleave="clearTimeout(openSubmenuTimer)" 4757 > 4758 <div class="group " 4759 :class="{'' : openSubmenuId === '128'}" 4760 > 4761 4762<a href="https://www.123drogisterij.nl/incontinentie-luiers" 4763 class="flex justify-between items-center w-full hover:underline" 4764 data-menu="menu-128" 4765> 4766 Luiers</a> 4767 </div> 4768 <button type="button" 4769 x-ref="sr-button-128" 4770 :aria-expanded="openSubmenuId === '128' ? 'true' : 'false'" 4771 aria-label="Open submenu" 4772 @click="toggleSubmenu('128'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 4773 > 4774 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 4775 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 4776</svg> 4777 </button> 4778 <div x-ref="submenu-128" 4779 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 4780 x-show="openSubmenuId === '128'" 4781 x-cloak 4782 > 4783
4783<script> 4784 'use strict'; 4785 4786 const initSubMenu128 = () => ({ 4787 openLevel2SubmenuId: null, 4788 openLevel2Submenu(menuNode) { 4789 this.openLevel2SubmenuId = menuNode 4790 this.$nextTick(() => { 4791 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 4792 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 4793 }) 4794 }, 4795 openLevel3SubmenuId: null, 4796 openLevel3Submenu(menuNode) { 4797 this.openLevel3SubmenuId = menuNode 4798 this.$nextTick(() => { 4799 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 4800 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 4801 }) 4802 }, 4803 }) 4804 </script>
4804 4805 4806 <div class="flex container pb-8 h-full" 4807 x-data="initSubMenu128()" 4808 > 4809 <ul class="w-80"> 4810 <li class="py-2 px-4" 4811 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '129' }" 4812 @mouseenter="openLevel2SubmenuId = '129'" 4813 x-init="openLevel2SubmenuId = '129'" 4814 > 4815 <div class="flex justify-stretch"> 4816 4817<a href="https://www.123drogisterij.nl/incontinentie-luiers/zwemluiers" 4818 class="flex justify-between items-center w-full font-semibold hover:underline" 4819 data-menu="menu-129" 4820> 4821 Zwemluiers</a> 4822 </div> 4823 </li> 4824 <li class="py-2 px-4" 4825 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '130' }" 4826 @mouseenter="openLevel2SubmenuId = '130'" 4827 > 4828 <div class="flex justify-stretch"> 4829 4830<a href="https://www.123drogisterij.nl/incontinentie-luiers/tena-luiers-voor-volwassenen" 4831 class="flex justify-between items-center w-full font-semibold hover:underline" 4832 data-menu="menu-130" 4833> 4834 TENA Luiers</a> 4835 </div> 4836 </li> 4837 <li class="py-2 px-4" 4838 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '131' }" 4839 @mouseenter="openLevel2SubmenuId = '131'" 4840 > 4841 <div class="flex justify-stretch"> 4842 4843<a href="https://www.123drogisterij.nl/incontinentie-luiers/abena-luiers" 4844 class="flex justify-between items-center w-full font-semibold hover:underline" 4845 data-menu="menu-131" 4846> 4847 Abena Luiers</a> 4848 </div> 4849 </li> 4850 <li class="py-2 px-4" 4851 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '132' }" 4852 @mouseenter="openLevel2SubmenuId = '132'" 4853 > 4854 <div class="flex justify-stretch"> 4855 4856<a href="https://www.123drogisterij.nl/incontinentie-luiers/attends-luiers" 4857 class="flex justify-between items-center w-full font-semibold hover:underline" 4858 data-menu="menu-132" 4859> 4860 Attends Luiers</a> 4861 </div> 4862 </li> 4863 <li class="py-2 px-4" 4864 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '133' }" 4865 @mouseenter="openLevel2SubmenuId = '133'" 4866 > 4867 <div class="flex justify-stretch"> 4868 4869<a href="https://www.123drogisterij.nl/incontinentie-luiers/absorin-luiers" 4870 class="flex justify-between items-center w-full font-semibold hover:underline" 4871 data-menu="menu-133" 4872> 4873 Absorin Luiers</a> 4874 </div> 4875 </li> 4876 <li class="py-2 px-4" 4877 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '134' }" 4878 @mouseenter="openLevel2SubmenuId = '134'" 4879 > 4880 <div class="flex justify-stretch"> 4881 4882<a href="https://www.123drogisterij.nl/incontinentie-luiers/plastic-luiers-voor-volwassenen" 4883 class="flex justify-between items-center w-full font-semibold hover:underline" 4884 data-menu="menu-134" 4885> 4886 Plastic luiers voor volwassenen</a> 4887 </div> 4888 </li> 4889 <li class="py-2 px-4" 4890 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '135' }" 4891 @mouseenter="openLevel2SubmenuId = '135'" 4892 > 4893 <div class="flex justify-stretch"> 4894 4895<a href="https://www.123drogisterij.nl/incontinentie-luiers/luiers-voor-volwassenen" 4896 class="flex justify-between items-center w-full font-semibold hover:underline" 4897 data-menu="menu-135" 4898> 4899 Luiers voor volwassenen</a> 4900 </div> 4901 </li> 4902 <li class="py-2 px-4" 4903 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '136' }" 4904 @mouseenter="openLevel2SubmenuId = '136'" 4905 > 4906 <div class="flex justify-stretch"> 4907 4908<a href="https://www.123drogisterij.nl/incontinentie-luiers/depend-luiers" 4909 class="flex justify-between items-center w-full font-semibold hover:underline" 4910 data-menu="menu-136" 4911> 4912 Depend Luiers</a> 4913 </div> 4914 </li> 4915 <li class="py-2 px-4" 4916 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '137' }" 4917 @mouseenter="openLevel2SubmenuId = '137'" 4918 > 4919 <div class="flex justify-stretch"> 4920 4921<a href="https://www.123drogisterij.nl/incontinentie-luiers/seni-luiers" 4922 class="flex justify-between items-center w-full font-semibold hover:underline" 4923 data-menu="menu-137" 4924> 4925 Seni Luiers</a> 4926 </div> 4927 </li> 4928 <li class="py-2 px-4" 4929 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '138' }" 4930 @mouseenter="openLevel2SubmenuId = '138'" 4931 > 4932 <div class="flex justify-stretch"> 4933 4934<a href="https://www.123drogisterij.nl/incontinentie-luiers/nachtluiers" 4935 class="flex justify-between items-center w-full font-semibold hover:underline" 4936 data-menu="menu-138" 4937> 4938 Nachtluiers volwassenen</a> 4939 </div> 4940 </li> 4941 </ul> 4942 4943 </div> 4944 </div> 4945 4946 </li> 4947 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
4947ded-sm group" 4948 > 4949 <div class="group " 4950 :class="{'' : openSubmenuId === '140'}" 4951 > 4952 4953<a href="https://www.123drogisterij.nl/incontinentiemateriaal-voor-mannen" 4954 class="flex justify-between items-center w-full hover:underline" 4955 data-menu="menu-140" 4956> 4957 Mannen</a> 4958 </div> 4959 </li> 4960 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent rounded-sm group" 4961 :class="{'hovered' : openSubmenuId === '141'}" 4962 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '141'; backdrop = true;}, 200)" 4963 @mouseleave="clearTimeout(openSubmenuTimer)" 4964 > 4965 <div class="group " 4966 :class="{'' : openSubmenuId === '141'}" 4967 > 4968 4969<a href="https://www.123drogisterij.nl/incontinentie-slips" 4970 class="flex justify-between items-center w-full hover:underline" 4971 data-menu="menu-141" 4972> 4973 Slip</a> 4974 </div> 4975 <button type="button" 4976 x-ref="sr-button-141" 4977 :aria-expanded="openSubmenuId === '141' ? 'true' : 'false'" 4978 aria-label="Open submenu" 4979 @click="toggleSubmenu('141'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 4980 > 4981 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 4982 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 4983</svg> 4984 </button> 4985 <div x-ref="submenu-141" 4986 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 4987 x-show="openSubmenuId === '141'" 4988 x-cloak 4989 > 4990
4990<script> 4991 'use strict'; 4992 4993 const initSubMenu141 = () => ({ 4994 openLevel2SubmenuId: null, 4995 openLevel2Submenu(menuNode) { 4996 this.openLevel2SubmenuId = menuNode 4997 this.$nextTick(() => { 4998 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 4999 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5000 }) 5001 }, 5002 openLevel3SubmenuId: null, 5003 openLevel3Submenu(menuNode) { 5004 this.openLevel3SubmenuId = menuNode 5005 this.$nextTick(() => { 5006 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5007 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5008 }) 5009 }, 5010 }) 5011 </script>
5011 5012 5013 <div class="flex container pb-8 h-full" 5014 x-data="initSubMenu141()" 5015 > 5016 <ul class="w-80"> 5017 <li class="py-2 px-4" 5018 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '142' }" 5019 @mouseenter="openLevel2SubmenuId = '142'" 5020 x-init="openLevel2SubmenuId = '142'" 5021 > 5022 <div class="flex justify-stretch"> 5023 5024<a href="https://www.123drogisterij.nl/incontinentie-slips/tena-slips" 5025 class="flex justify-between items-center w-full font-semibold hover:underline" 5026 data-menu="menu-142" 5027> 5028 TENA Slips</a> 5029 </div> 5030 </li> 5031 <li class="py-2 px-4" 5032 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '143' }" 5033 @mouseenter="openLevel2SubmenuId = '143'" 5034 > 5035 <div class="flex justify-stretch"> 5036 5037<a href="https://www.123drogisterij.nl/incontinentie-slips/absorin-slip" 5038 class="flex justify-between items-center w-full font-semibold hover:underline" 5039 data-menu="menu-143" 5040> 5041 Absorin Slip</a> 5042 </div> 5043 </li> 5044 <li class="py-2 px-4" 5045 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '144' }" 5046 @mouseenter="openLevel2SubmenuId = '144'" 5047 > 5048 <div class="flex justify-stretch"> 5049 5050<a href="https://www.123drogisterij.nl/incontinentie-slips/attends-slip" 5051 class="flex justify-between items-center w-full font-semibold hover:underline" 5052 data-menu="menu-144" 5053> 5054 Attends Slip</a> 5055 </div> 5056 </li> 5057 <li class="py-2 px-4" 5058 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '145' }" 5059 @mouseenter="openLevel2SubmenuId = '145'" 5060 > 5061 <div class="flex justify-stretch"> 5062 5063<a href="https://www.123drogisterij.nl/incontinentie-slips/abena-slips" 5064 class="flex justify-between items-center w-full font-semibold hover:underline" 5065 data-menu="menu-145" 5066> 5067 Abena Slips</a> 5068 </div> 5069 </li> 5070 <li class="py-2 px-4" 5071 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '146' }" 5072 @mouseenter="openLevel2SubmenuId = '146'" 5073 > 5074 <div class="flex justify-stretch"> 5075 5076<a href="https://www.123drogisterij.nl/incontinentie-slips/depend-slip" 5077 class="flex justify-between items-center w-full font-semibold hover:underline" 5078 data-menu="menu-146" 5079> 5080 Depend Slip</a> 5081 </div> 5082 </li> 5083 <li class="py-2 px-4" 5084 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '147' }" 5085 @mouseenter="openLevel2SubmenuId = '147'" 5086 > 5087 <div class="flex justify-stretch"> 5088 5089<a href="https://www.123drogisterij.nl/incontinentie-slips/seni-slip" 5090 class="flex justify-between items-center w-full font-semibold hover:underline" 5091 data-menu="menu-147" 5092> 5093 Seni Slip</a> 5094 </div> 5095 </li> 5096 <li class="py-2 px-4" 5097 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '148' }" 5098 @mouseenter="openLevel2SubmenuId = '148'" 5099 > 5100 <div class="flex justify-stretch"> 5101 5102<a href="https://www.123drogisterij.nl/incontinentie-slips/betterdry-slip" 5103 class="flex justify-between items-center w-full font-semibold hover:underline" 5104 data-menu="menu-148" 5105> 5106 BetterDry Slip</a> 5107 </div> 5108 </li> 5109 </ul> 5110 5111 </div> 5112 </div> 5113 5114 </li> 5115 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
5115ded-sm group" 5116 :class="{'hovered' : openSubmenuId === '149'}" 5117 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '149'; backdrop = true;}, 200)" 5118 @mouseleave="clearTimeout(openSubmenuTimer)" 5119 > 5120 <div class="group " 5121 :class="{'' : openSubmenuId === '149'}" 5122 > 5123 5124<a href="https://www.123drogisterij.nl/incontinentie-pants" 5125 class="flex justify-between items-center w-full hover:underline" 5126 data-menu="menu-149" 5127> 5128 Pants</a> 5129 </div> 5130 <button type="button" 5131 x-ref="sr-button-149" 5132 :aria-expanded="openSubmenuId === '149' ? 'true' : 'false'" 5133 aria-label="Open submenu" 5134 @click="toggleSubmenu('149'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 5135 > 5136 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 5137 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 5138</svg> 5139 </button> 5140 <div x-ref="submenu-149" 5141 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 5142 x-show="openSubmenuId === '149'" 5143 x-cloak 5144 > 5145
5145<script> 5146 'use strict'; 5147 5148 const initSubMenu149 = () => ({ 5149 openLevel2SubmenuId: null, 5150 openLevel2Submenu(menuNode) { 5151 this.openLevel2SubmenuId = menuNode 5152 this.$nextTick(() => { 5153 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5154 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5155 }) 5156 }, 5157 openLevel3SubmenuId: null, 5158 openLevel3Submenu(menuNode) { 5159 this.openLevel3SubmenuId = menuNode 5160 this.$nextTick(() => { 5161 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5162 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5163 }) 5164 }, 5165 }) 5166 </script>
5166 5167 5168 <div class="flex container pb-8 h-full" 5169 x-data="initSubMenu149()" 5170 > 5171 <ul class="w-80"> 5172 <li class="py-2 px-4" 5173 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '889' }" 5174 @mouseenter="openLevel2SubmenuId = '889'" 5175 x-init="openLevel2SubmenuId = '889'" 5176 > 5177 <div class="flex justify-stretch"> 5178 5179<a href="https://www.123drogisterij.nl/pants/abso-x-pants" 5180 class="flex justify-between items-center w-full font-semibold hover:underline" 5181 data-menu="menu-889" 5182> 5183 ABSO-X Ultra Pants</a> 5184 </div> 5185 </li> 5186 <li class="py-2 px-4" 5187 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '150' }" 5188 @mouseenter="openLevel2SubmenuId = '150'" 5189 > 5190 <div class="flex justify-stretch"> 5191 5192<a href="https://www.123drogisterij.nl/incontinentie-pants/tena-pants" 5193 class="flex justify-between items-center w-full font-semibold hover:underline" 5194 data-menu="menu-150" 5195> 5196 TENA Pants</a> 5197 </div> 5198 </li> 5199 <li class="py-2 px-4" 5200 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '151' }" 5201 @mouseenter="openLevel2SubmenuId = '151'" 5202 > 5203 <div class="flex justify-stretch"> 5204 5205<a href="https://www.123drogisterij.nl/incontinentie-pants/abena-pants" 5206 class="flex justify-between items-center w-full font-semibold hover:underline" 5207 data-menu="menu-151" 5208> 5209 Abena Pants</a> 5210 </div> 5211 </li> 5212 <li class="py-2 px-4" 5213 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '152' }" 5214 @mouseenter="openLevel2SubmenuId = '152'" 5215 > 5216 <div class="flex justify-stretch"> 5217 5218<a href="https://www.123drogisterij.nl/incontinentie-pants/attends-pants" 5219 class="flex justify-between items-center w-full font-semibold hover:underline" 5220 data-menu="menu-152" 5221> 5222 Attends Pants</a> 5223 </div> 5224 </li> 5225 <li class="py-2 px-4" 5226 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '153' }" 5227 @mouseenter="openLevel2SubmenuId = '153'" 5228 > 5229 <div class="flex justify-stretch"> 5230 5231<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants" 5232 class="flex justify-between items-center w-full font-semibold hover:underline" 5233 data-menu="menu-153" 5234> 5235 Depend Pants</a> 5236 <button type="button" 5237 class="flex flex-1 justify-end items-center pr-1" 5238 :aria-expanded="openLevel2SubmenuId === '153' ? 'true' : 'false'" 5239 aria-controls="level-2-submenu-153" 5240 @click="openLevel2Submenu('153')" 5241 > 5242 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="relative transition-all duration-150 ease-in-out left-0 cursor-default" width="20" height="20"> 5243 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"/> 5244</svg>
5245 <span class="sr-only"> 5246 Open submenu for Depend Pants </span> 5247 </button> 5248 </div> 5249 </li> 5250 <li class="py-2 px-4" 5251 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '156' }" 5252 @mouseenter="openLevel2SubmenuId = '156'" 5253 > 5254 <div class="flex justify-stretch"> 5255 5256<a href="https://www.123drogisterij.nl/pants/incontinentiebroekjes" 5257 class="flex justify-between items-center w-full font-semibold hover:underline" 5258 data-menu="menu-156" 5259> 5260 Incontinentiebroekjes</a> 5261 </div> 5262 </li> 5263 <li class="py-2 px-4" 5264 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '157' }" 5265 @mouseenter="openLevel2SubmenuId = '157'" 5266 > 5267 <div class="flex justify-stretch"> 5268 5269<a href="https://www.123drogisterij.nl/incontinentie-pants/lille-pants" 5270 class="flex justify-between items-center w-full font-semibold hover:underline" 5271 data-menu="menu-157" 5272> 5273 Lille Pants</a> 5274 </div> 5275 </li> 5276 <li class="py-2 px-4" 5277 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '158' }" 5278 @mouseenter="openLevel2SubmenuId = '158'" 5279 > 5280 <div class="flex justify-stretch"> 5281 5282<a href="https://www.123drogisterij.nl/incontinentie-pants/seni-active-pants" 5283 class="flex justify-between items-center w-full font-semibold hover:underline" 5284 data-menu="menu-158" 5285> 5286 Seni Active pants</a> 5287 </div> 5288 </li> 5289 <li class="py-2 px-4" 5290 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '159' }" 5291 @mouseenter="openLevel2SubmenuId = '159'" 5292 > 5293 <div class="flex justify-stretch"> 5294 5295<a href="https://www.123drogisterij.nl/incontinentie-pants/absorin-pants" 5296 class="flex justify-between items-center w-full font-semibold hover:underline" 5297 data-menu="menu-159" 5298> 5299 Absorin Comfort Pants</a> 5300 </div> 5301 </li> 5302 </ul> 5303 5304 5305 <ul id="level-2-submenu-153" 5306 x-ref="level-2-submenu-153" 5307 x-show="openLevel2SubmenuId === '153'" 5308 class="flex flex-col w-80 bg-tertiary-100 pl-12 relative pr-4" 5309 > 5310 <li class="py-2" 5311 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '154' }" 5312 @mouseenter="openLevel3SubmenuId = '154'" 5313 > 5314 <div class="flex justify-stretch"> 5315 5316<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants/vrouwen" 5317 class="flex justify-between items-center w-full hover:underline" 5318 data-menu="menu-154" 5319> 5320 Vrouwen</a> 5321 5322 </div> 5323 </li> 5324 <li class="py-2" 5325 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel3SubmenuId === '155' }" 5326 @mouseenter="openLevel3SubmenuId = '155'" 5327 > 5328 <div class="flex justify-stretch"> 5329 5330<a href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants/mannen" 5331 class="flex justify-between items-center w-full hover:underline" 5332 data-menu="menu-155" 5333> 5334 Mannen</a> 5335 5336 </div> 5337 </li> 5338 </ul> 5339 </div> 5340 </div> 5341 5342 </li> 5343 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
5343ded-sm group" 5344 :class="{'hovered' : openSubmenuId === '160'}" 5345 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '160'; backdrop = true;}, 200)" 5346 @mouseleave="clearTimeout(openSubmenuTimer)" 5347 > 5348 <div class="group " 5349 :class="{'' : openSubmenuId === '160'}" 5350 > 5351 5352<a href="https://www.123drogisterij.nl/incontinentie-inleggers" 5353 class="flex justify-between items-center w-full hover:underline" 5354 data-menu="menu-160" 5355> 5356 Inlegger</a> 5357 </div> 5358 <button type="button" 5359 x-ref="sr-button-160" 5360 :aria-expanded="openSubmenuId === '160' ? 'true' : 'false'" 5361 aria-label="Open submenu" 5362 @click="toggleSubmenu('160'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 5363 > 5364 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 5365 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 5366</svg> 5367 </button> 5368 <div x-ref="submenu-160" 5369 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 5370 x-show="openSubmenuId === '160'" 5371 x-cloak 5372 > 5373
5373<script> 5374 'use strict'; 5375 5376 const initSubMenu160 = () => ({ 5377 openLevel2SubmenuId: null, 5378 openLevel2Submenu(menuNode) { 5379 this.openLevel2SubmenuId = menuNode 5380 this.$nextTick(() => { 5381 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5382 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5383 }) 5384 }, 5385 openLevel3SubmenuId: null, 5386 openLevel3Submenu(menuNode) { 5387 this.openLevel3SubmenuId = menuNode 5388 this.$nextTick(() => { 5389 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5390 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5391 }) 5392 }, 5393 }) 5394 </script>
5394 5395 5396 <div class="flex container pb-8 h-full" 5397 x-data="initSubMenu160()" 5398 > 5399 <ul class="w-80"> 5400 <li class="py-2 px-4" 5401 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '161' }" 5402 @mouseenter="openLevel2SubmenuId = '161'" 5403 x-init="openLevel2SubmenuId = '161'" 5404 > 5405 <div class="flex justify-stretch"> 5406 5407<a href="https://www.123drogisterij.nl/incontinentie-inleggers/tena-inleggers" 5408 class="flex justify-between items-center w-full font-semibold hover:underline" 5409 data-menu="menu-161" 5410> 5411 TENA Inleggers</a> 5412 </div> 5413 </li> 5414 <li class="py-2 px-4" 5415 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '162' }" 5416 @mouseenter="openLevel2SubmenuId = '162'" 5417 > 5418 <div class="flex justify-stretch"> 5419 5420<a href="https://www.123drogisterij.nl/incontinentie-inleggers/abena-inleggers" 5421 class="flex justify-between items-center w-full font-semibold hover:underline" 5422 data-menu="menu-162" 5423> 5424 Abena Inleggers</a> 5425 </div> 5426 </li> 5427 <li class="py-2 px-4" 5428 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '163' }" 5429 @mouseenter="openLevel2SubmenuId = '163'" 5430 > 5431 <div class="flex justify-stretch"> 5432 5433<a href="https://www.123drogisterij.nl/incontinentie-inleggers/depend-inleggers" 5434 class="flex justify-between items-center w-full font-semibold hover:underline" 5435 data-menu="menu-163" 5436> 5437 Depend Inleggers</a> 5438 </div> 5439 </li> 5440 <li class="py-2 px-4" 5441 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '164' }" 5442 @mouseenter="openLevel2SubmenuId = '164'" 5443 > 5444 <div class="flex justify-stretch"> 5445 5446<a href="https://www.123drogisterij.nl/incontinentie-inleggers/absorin-inleggers" 5447 class="flex justify-between items-center w-full font-semibold hover:underline" 5448 data-menu="menu-164" 5449> 5450 Absorin Inleggers</a> 5451 </div> 5452 </li> 5453 <li class="py-2 px-4" 5454 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '165' }" 5455 @mouseenter="openLevel2SubmenuId = '165'" 5456 > 5457 <div class="flex justify-stretch"> 5458 5459<a href="https://www.123drogisterij.nl/incontinentie-inleggers/seni-inleggers" 5460 class="flex justify-between items-center w-full font-semibold hover:underline" 5461 data-menu="menu-165" 5462> 5463 Seni inleggers</a> 5464 </div> 5465 </li> 5466 <li class="py-2 px-4" 5467 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '166' }" 5468 @mouseenter="openLevel2SubmenuId = '166'" 5469 > 5470 <div class="flex justify-stretch"> 5471 5472<a href="https://www.123drogisterij.nl/incontinentie-inleggers/attends-inleggers" 5473 class="flex justify-between items-center w-full font-semibold hover:underline" 5474 data-menu="menu-166" 5475> 5476 Attends Inlegger</a> 5477 </div> 5478 </li> 5479 <li class="py-2 px-4" 5480 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '167' }" 5481 @mouseenter="openLevel2SubmenuId = '167'" 5482 > 5483 <div class="flex justify-stretch"> 5484 5485<a href="https://www.123drogisterij.nl/incontinentie-inleggers/inlegverband-incontinentieverband" 5486 class="flex justify-between items-center w-full font-semibold hover:underline" 5487 data-menu="menu-167" 5488> 5489 Inlegverband / incontinentieverband</a> 5490 </div> 5491 </li> 5492 <li class="py-2 px-4" 5493 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '168' }" 5494 @mouseenter="openLevel2SubmenuId = '168'" 5495 > 5496 <div class="flex justify-stretch"> 5497 5498<a href="https://www.123drogisterij.nl/incontinentie-inleggers/mannenverband" 5499 class="flex justify-between items-center w-full font-semibold hover:underline" 5500 data-menu="menu-168" 5501> 5502 Mannenverband</a> 5503 </div> 5504 </li> 5505 </ul> 5506 5507 </div> 5508 </div> 5509 5510 </li> 5511 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
5511ded-sm group" 5512 :class="{'hovered' : openSubmenuId === '169'}" 5513 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '169'; backdrop = true;}, 200)" 5514 @mouseleave="clearTimeout(openSubmenuTimer)" 5515 > 5516 <div class="group " 5517 :class="{'' : openSubmenuId === '169'}" 5518 > 5519 5520<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie" 5521 class="flex justify-between items-center w-full hover:underline" 5522 data-menu="menu-169" 5523> 5524 Verzorging</a> 5525 </div> 5526 <button type="button" 5527 x-ref="sr-button-169" 5528 :aria-expanded="openSubmenuId === '169' ? 'true' : 'false'" 5529 aria-label="Open submenu" 5530 @click="toggleSubmenu('169'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 5531 > 5532 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 5533 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 5534</svg> 5535 </button> 5536 <div x-ref="submenu-169" 5537 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 5538 x-show="openSubmenuId === '169'" 5539 x-cloak 5540 > 5541
5541<script> 5542 'use strict'; 5543 5544 const initSubMenu169 = () => ({ 5545 openLevel2SubmenuId: null, 5546 openLevel2Submenu(menuNode) { 5547 this.openLevel2SubmenuId = menuNode 5548 this.$nextTick(() => { 5549 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5550 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5551 }) 5552 }, 5553 openLevel3SubmenuId: null, 5554 openLevel3Submenu(menuNode) { 5555 this.openLevel3SubmenuId = menuNode 5556 this.$nextTick(() => { 5557 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5558 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5559 }) 5560 }, 5561 }) 5562 </script>
5562 5563 5564 <div class="flex container pb-8 h-full" 5565 x-data="initSubMenu169()" 5566 > 5567 <ul class="w-80"> 5568 <li class="py-2 px-4" 5569 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '170' }" 5570 @mouseenter="openLevel2SubmenuId = '170'" 5571 x-init="openLevel2SubmenuId = '170'" 5572 > 5573 <div class="flex justify-stretch"> 5574 5575<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/wegwerp-washandjes-nat-en-droog" 5576 class="flex justify-between items-center w-full font-semibold hover:underline" 5577 data-menu="menu-170" 5578> 5579 Wegwerp Washandjes</a> 5580 </div> 5581 </li> 5582 <li class="py-2 px-4" 5583 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '171' }" 5584 @mouseenter="openLevel2SubmenuId = '171'" 5585 > 5586 <div class="flex justify-stretch"> 5587 5588<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgingsproducten-cremes-wasgels" 5589 class="flex justify-between items-center w-full font-semibold hover:underline" 5590 data-menu="menu-171" 5591> 5592 Crèmes & wasgels</a> 5593 </div> 5594 </li> 5595 <li class="py-2 px-4" 5596 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '172' }" 5597 @mouseenter="openLevel2SubmenuId = '172'" 5598 > 5599 <div class="flex justify-stretch"> 5600 5601<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgend-wassen-natte-washandjes" 5602 class="flex justify-between items-center w-full font-semibold hover:underline" 5603 data-menu="menu-172" 5604> 5605 Verzorgend wassen - Wet Wash - Shampoo Cap</a> 5606 </div> 5607 </li> 5608 <li class="py-2 px-4" 5609 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '173' }" 5610 @mouseenter="openLevel2SubmenuId = '173'" 5611 > 5612 <div class="flex justify-stretch"> 5613 5614<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/luieremmer-janibell-akord" 5615 class="flex justify-between items-center w-full font-semibold hover:underline" 5616 data-menu="menu-173" 5617> 5618 Luieremmer Janibell Akord</a> 5619 </div> 5620 </li> 5621 <li class="py-2 px-4" 5622 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '174' }" 5623 @mouseenter="openLevel2SubmenuId = '174'" 5624 > 5625 <div class="flex justify-stretch"> 5626 5627<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/uri-go" 5628 class="flex justify-between items-center w-full font-semibold hover:underline" 5629 data-menu="menu-174" 5630> 5631 Uri-Go</a> 5632 </div> 5633 </li> 5634 <li class="py-2 px-4" 5635 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '175' }" 5636 @mouseenter="openLevel2SubmenuId = '175'" 5637 > 5638 <div class="flex justify-stretch"> 5639 5640<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/vochtige-washandjes" 5641 class="flex justify-between items-center w-full font-semibold hover:underline" 5642 data-menu="menu-175" 5643> 5644 Vochtige washandjes</a> 5645 </div> 5646 </li> 5647 <li class="py-2 px-4" 5648 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '176' }" 5649 @mouseenter="openLevel2SubmenuId = '176'" 5650 > 5651 <div class="flex justify-stretch"> 5652 5653<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/slabben-voor-volwassenen" 5654 class="flex justify-between items-center w-full font-semibold hover:underline" 5655 data-menu="menu-176" 5656> 5657 Slab voor volwassenen</a> 5658 </div> 5659 </li> 5660 <li class="py-2 px-4" 5661 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '177' }" 5662 @mouseenter="openLevel2SubmenuId = '177'" 5663 > 5664 <div class="flex justify-stretch"> 5665 5666<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/shampoo-cap" 5667 class="flex justify-between items-center w-full font-semibold hover:underline" 5668 data-menu="menu-177" 5669> 5670 Shampoo cap</a> 5671 </div> 5672 </li> 5673 <li class="py-2 px-4" 5674 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '178' }" 5675 @mouseenter="openLevel2SubmenuId = '178'" 5676 > 5677 <div class="flex justify-stretch"> 5678 5679<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/opvangzakken" 5680 class="flex justify-between items-center w-full font-semibold hover:underline" 5681 data-menu="menu-178" 5682> 5683 Opvangzakken | Dr. Helewa</a> 5684 </div> 5685 </li> 5686 <li class="py-2 px-4" 5687 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '179' }" 5688 @mouseenter="openLevel2SubmenuId = '179'" 5689 > 5690 <div class="flex justify-stretch"> 5691 5692<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/producten-voor-mantelzorgers" 5693 class="flex justify-between items-center w-full font-semibold hover:underline" 5694 data-menu="menu-179" 5695> 5696 Producten voor mantelzorgers</a> 5697 </div> 5698 </li> 5699 <li class="py-2 px-4" 5700 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '180' }" 5701 @mouseenter="openLevel2SubmenuId = '180'" 5702 > 5703 <div class="flex justify-stretch"> 5704 5705<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/handschoenen" 5706 class="flex justify-between items-center w-full font-semibold hover:underline" 5707 data-menu="menu-180" 5708> 5709 Handschoenen</a> 5710 </div> 5711 </li> 5712 </ul> 5713 5714 </div> 5715 </div> 5716 5717 </li> 5718 <li class="flex items-center justify-between font-medium pt-4 pb-[13px] border-b-3 border-transparent roun
5718ded-sm group" 5719 :class="{'hovered' : openSubmenuId === '181'}" 5720 @mouseenter="openSubmenuTimer = setTimeout(function () { openSubmenuId = '181'; backdrop = true;}, 200)" 5721 @mouseleave="clearTimeout(openSubmenuTimer)" 5722 > 5723 <div class="group " 5724 :class="{'' : openSubmenuId === '181'}" 5725 > 5726 5727<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers" 5728 class="flex justify-between items-center w-full hover:underline" 5729 data-menu="menu-181" 5730> 5731 Onderlegger</a> 5732 </div> 5733 <button type="button" 5734 x-ref="sr-button-181" 5735 :aria-expanded="openSubmenuId === '181' ? 'true' : 'false'" 5736 aria-label="Open submenu" 5737 @click="toggleSubmenu('181'); document.querySelector('.page-header').classList.add('sticky', 'top-0');" 5738 > 5739 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="h-5 w-5 transition level-0 ml-1" width="16" height="16"> 5740 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 5741</svg> 5742 </button> 5743 <div x-ref="submenu-181" 5744 class="absolute left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] top-full shadow-soft-no-top w-screen z-30 bg-white flex border-t border-gray-200 max-h-[75vh] overflow-auto" 5745 x-show="openSubmenuId === '181'" 5746 x-cloak 5747 > 5748
5748<script> 5749 'use strict'; 5750 5751 const initSubMenu181 = () => ({ 5752 openLevel2SubmenuId: null, 5753 openLevel2Submenu(menuNode) { 5754 this.openLevel2SubmenuId = menuNode 5755 this.$nextTick(() => { 5756 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5757 this.$refs['level-2-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5758 }) 5759 }, 5760 openLevel3SubmenuId: null, 5761 openLevel3Submenu(menuNode) { 5762 this.openLevel3SubmenuId = menuNode 5763 this.$nextTick(() => { 5764 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 5765 this.$refs['level-3-submenu-' + menuNode]?.querySelector(focusableElements)?.focus() 5766 }) 5767 }, 5768 }) 5769 </script>
5769 5770 5771 <div class="flex container pb-8 h-full" 5772 x-data="initSubMenu181()" 5773 > 5774 <ul class="w-80"> 5775 <li class="py-2 px-4" 5776 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '890' }" 5777 @mouseenter="openLevel2SubmenuId = '890'" 5778 x-init="openLevel2SubmenuId = '890'" 5779 > 5780 <div class="flex justify-stretch"> 5781 5782<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/abso-x-ultra-bed" 5783 class="flex justify-between items-center w-full font-semibold hover:underline" 5784 data-menu="menu-890" 5785> 5786 ABSO-X Ultra Bed</a> 5787 </div> 5788 </li> 5789 <li class="py-2 px-4" 5790 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '182' }" 5791 @mouseenter="openLevel2SubmenuId = '182'" 5792 > 5793 <div class="flex justify-stretch"> 5794 5795<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/tena-bed-onderleggers" 5796 class="flex justify-between items-center w-full font-semibold hover:underline" 5797 data-menu="menu-182" 5798> 5799 TENA Bed Onderleggers</a> 5800 </div> 5801 </li> 5802 <li class="py-2 px-4" 5803 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '183' }" 5804 @mouseenter="openLevel2SubmenuId = '183'" 5805 > 5806 <div class="flex justify-stretch"> 5807 5808<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/wasbare-onderleggers" 5809 class="flex justify-between items-center w-full font-semibold hover:underline" 5810 data-menu="menu-183" 5811> 5812 Wasbare onderleggers</a> 5813 </div> 5814 </li> 5815 <li class="py-2 px-4" 5816 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '184' }" 5817 @mouseenter="openLevel2SubmenuId = '184'" 5818 > 5819 <div class="flex justify-stretch"> 5820 5821<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/matrasbeschermer" 5822 class="flex justify-between items-center w-full font-semibold hover:underline" 5823 data-menu="menu-184" 5824> 5825 Waterdichte matrasbeschermer</a> 5826 </div> 5827 </li> 5828 <li class="py-2 px-4" 5829 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '185' }" 5830 @mouseenter="openLevel2SubmenuId = '185'" 5831 > 5832 <div class="flex justify-stretch"> 5833 5834<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/abena-bed-onderleggers" 5835 class="flex justify-between items-center w-full font-semibold hover:underline" 5836 data-menu="menu-185" 5837> 5838 Abena Bed Onderleggers</a> 5839 </div> 5840 </li> 5841 <li class="py-2 px-4" 5842 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '186' }" 5843 @mouseenter="openLevel2SubmenuId = '186'" 5844 > 5845 <div class="flex justify-stretch"> 5846 5847<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/seni-bed-onderleggers" 5848 class="flex justify-between items-center w-full font-semibold hover:underline" 5849 data-menu="menu-186" 5850> 5851 Seni Bed Onderlegger</a> 5852 </div> 5853 </li> 5854 <li class="py-2 px-4" 5855 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '187' }" 5856 @mouseenter="openLevel2SubmenuId = '187'" 5857 > 5858 <div class="flex justify-stretch"> 5859 5860<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/absorin-bed-onderleggers" 5861 class="flex justify-between items-center w-full font-semibold hover:underline" 5862 data-menu="menu-187" 5863> 5864 Absorin Bed Onderleggers</a> 5865 </div> 5866 </li> 5867 <li class="py-2 px-4" 5868 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '188' }" 5869 @mouseenter="openLevel2SubmenuId = '188'" 5870 > 5871 <div class="flex justify-stretch"> 5872 5873<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/attends-bed-onderleggers" 5874 class="flex justify-between items-center w-full font-semibold hover:underline" 5875 data-menu="menu-188" 5876> 5877 Attends Bed Onderleggers</a> 5878 </div> 5879 </li> 5880 <li class="py-2 px-4" 5881 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '189' }" 5882 @mouseenter="openLevel2SubmenuId = '189'" 5883 > 5884 <div class="flex justify-stretch"> 5885 5886<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/stoelbeschermer" 5887 class="flex justify-between items-center w-full font-semibold hover:underline" 5888 data-menu="menu-189" 5889> 5890 Stoelbeschermer</a> 5891 </div> 5892 </li> 5893 <li class="py-2 px-4" 5894 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '190' }" 5895 @mouseenter="openLevel2SubmenuId = '190'" 5896 > 5897 <div class="flex justify-stretch"> 5898 5899<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/bedzeil" 5900 class="flex justify-between items-center w-full font-semibold hover:underline" 5901 data-menu="menu-190"
5902> 5903 Bedzeil</a> 5904 </div> 5905 </li> 5906 <li class="py-2 px-4" 5907 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '191' }" 5908 @mouseenter="openLevel2SubmenuId = '191'" 5909 > 5910 <div class="flex justify-stretch"> 5911 5912<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/celstofmatjes" 5913 class="flex justify-between items-center w-full font-semibold hover:underline" 5914 data-menu="menu-191" 5915> 5916 Celstofmatjes</a> 5917 </div> 5918 </li> 5919 <li class="py-2 px-4" 5920 :class="{ 'bg-tertiary-100 desktop-menu-item-active': openLevel2SubmenuId === '193' }" 5921 @mouseenter="openLevel2SubmenuId = '193'" 5922 > 5923 <div class="flex justify-stretch"> 5924 5925<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/steeklaken" 5926 class="flex justify-between items-center w-full font-semibold hover:underline" 5927 data-menu="menu-193" 5928> 5929 Steeklaken</a> 5930 </div> 5931 </li> 5932 </ul> 5933 5934 </div> 5935 </div> 5936 5937 </li> 5938 </ul> 5939 </nav> 5940 </div> 5941
5942<script> 5943 function initCartDrawer() { 5944 return { 5945 open: false, 5946 isLoading: false, 5947 cart: {}, 5948 maxItemsToDisplay: 100, 5949 itemsCount: 0, 5950 getData(data) { 5951 if (data.cart) { 5952 this.cart = data.cart; 5953 this.itemsCount = data.cart.items && data.cart.items.length || 0; 5954 this.setCartItems(); 5955 } 5956 this.isLoading = false; 5957 }, 5958 cartItems: [], 5959 getItemCountTitle() { 5960 return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount) 5961 }, 5962 setCartItems() { 5963 this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; 5964 5965 if (this.maxItemsToDisplay > 0) { 5966 this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); 5967 } 5968 }, 5969 updateItemQty(form) { 5970 this.isLoading = true; 5971 5972 hyvaAjaxFormMinicart({ 5973 form, 5974 redirect: false 5975 }, () => { 5976 this.isLoading = false; 5977 }); 5978 }, 5979 deleteItemFromCart(itemId) { 5980 this.isLoading = true; 5981 5982 const formKey = hyva.getFormKey(); 5983 hyvaAjaxFormMinicart({ 5984 url: BASE_URL + 'checkout/sidebar/removeItem/', 5985 body: 'form_key=' + formKey + '&item_id=' + itemId, 5986 message: 'U\u0020heeft\u0020het\u0020item\u0020verwijderd.' 5987 }, () => { 5988 this.isLoading = false 5989 }); 5990 }, 5991 scrollLock(use = true) { 5992 document.body.style.overflow = use ? 'hidden' : ''; 5993 }, 5994 toggleCartDrawer(event) { 5995 if (event.detail && event.detail.isOpen) { 5996 this.open = event.detail.isOpen; 5997 } else { 5998 this.open = !this.open; 5999 } 6000 6001 if (this.open) { 6002 this.$root.showModal(); 6003 } else { 6004 this.$root.close(); 6005 } 6006 6007 this.scrollLock(this.open); 6008 }, 6009 openCartDrawer() { 6010 this.$root.showModal(); 6011 this.open = true; 6012 this.scrollLock(true); 6013 }, 6014 closeCartDrawer() { 6015 this.$root.close(); 6016 this.open = false; 6017 this.scrollLock(false); 6018 }, 6019 getSectionDataExtraActions() { 6020 if (!this.cart.extra_actions) { 6021 return ''; 6022 } 6023 6024 const contentNode = document.createElement('div'); 6025 contentNode.innerHTML = this.cart.extra_actions; 6026 hyva.activateScripts(contentNode); 6027 6028 return contentNode.innerHTML; 6029 }, 6030 onDialogBackdropClickHelper(event, target) { 6031 const rect = target.getBoundingClientRect(); 6032 const isInDialog = 6033 rect.top <= event.clientY && 6034 event.clientY <= rect.top + rect.height && 6035 rect.left <= event.clientX && 6036 event.clientX <= rect.left + rect.width; 6037 return isInDialog; 6038 }, 6039 setItemMessage(itemId, message) { 6040 const items = this.cartItems; 6041 items.forEach((item) => { 6042 if (item.item_id === itemId) { 6043 item.message = message; 6044 } 6045 }); 6046 }, 6047 cartListeners: { 6048 ['@private-content-loaded.window'](event) { 6049 this.getData(event.detail.data); 6050 }, 6051 ['@click'](event) { 6052 if (this.onDialogBackdropClickHelper(event, this.$root)) return; 6053 this.closeCartDrawer(); 6054 }, 6055 ['@toggle-cart.window'](event) { 6056 this.toggleCartDrawer(event); 6057 }, 6058 ['@keydown.window.escape']() { 6059 this.closeCartDrawer(); 6060 }, 6061 ['@minicart-error-message.window'](event) { 6062 if (!event.detail) return; 6063 const { itemId, message } = event.detail; 6064 this.setItemMessage(itemId, message); 6065 } 6066 } 6067 } 6068 } 6069 6070 async function hyvaAjaxFormMinicart( 6071 { 6072 form = null, 6073 url = '', 6074 body = '', 6075 redirect = 'default', 6076 message = '', 6077 } = {}, 6078 callback = () => {} 6079 ) { 6080 const formData = body ? body : (form ? new FormData(form) : ''); 6081 const postUrl = url ? url : (form ? form.action : ''); 6082 if (!formData || !postUrl) { 6083 console.warn('You must provide the form or formData and postUrl!'); 6084 return; 6085 } 6086 6087 const formUenc = hyva.getUenc(); 6088 const itemId = body ? new URLSearchParams(body).get('item_id') : formData.get('item_id'); 6089 let bodyUrl = new URLSearchParams(formData); 6090 bodyUrl.append('uenc', formUenc); 6091 6092 try { 6093 const response = await fetch(postUrl, { 6094 method: 'POST', 6095 body: bodyUrl.toString(), 6096 mode: 'cors', 6097 credentials: 'include', 6098 headers: { 6099 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 6100 'X-Requested-With': 'XMLHttpRequest' 6101 } 6102 }); 6103 6104 if (!response.ok) { 6105 return form.submit(); 6106 } 6107 6108 if (redirect === 'default' && response.redirected) { 6109 return window.location.href = response.url; 6110 } else if (redirect !== 'default' && redirect !== false) { 6111 return window.location.href = redirect; 6112 } 6113 6114 const responseBody = await response.json(); 6115 6116 if (!responseBody.success) { 6117 throw responseBody.error_message; 6118 } 6119 6120 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 6121 } catch (error) { 6122 window.dispatchEvent(new CustomEvent('minicart-error-message', { detail: { itemId, message: error } })); 6123 } finally { 6124 callback(); 6125 } 6126 } 6127</script>
6127 6128 6129 6130<template id="cart-drawer" 6131 x-data="initCartDrawer()" 6132 @private-content-loaded.window="getData(event.detail.data)" 6133 @toggle-cart.window="open=true" 6134 @keydown.window.escape="open=false" 6135 x-if="cart && cart.summary_count" 6136> 6137 <div role="dialog" 6138 aria-labelledby="cart-drawer-title" 6139 aria-modal="true" 6140 @click.outside="open = false" 6141 class="fixed inset-y-0 right-0 z-30 flex justify-end max-w-full cart-drawer-dialog" 6142 > 6143 <div class="backdrop" 6144 x-show="open" 6145 x-transition:enter="ease-in-out duration-500" 6146 x-transition:enter-start="opacity-0" 6147 x-transition:enter-end="opacity-100" 6148 x-transition:leave="ease-in-out duration-500" 6149 x-transition:leave-start="opacity-100" 6150 x-transition:leave-end="opacity-0" 6151 @click="open = false" 6152 aria-label="Close panel"></div> 6153 <div class="relative w-11/12 max-w-sm min-w-md shadow-hard md:min-w-[32rem] md:max-w-lg" 6154 x-show="open" 6155 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 6156 x-transition:enter-start="translate-x-full" 6157 x-transition:enter-end="translate-x-0" 6158 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 6159 x-transition:leave-start="translate-x-0" 6160 x-transition:leave-end="translate-x-full" 6161 > 6162 <div 6163 x-show="open" 6164 x-transition:enter="ease-in-out duration-500" 6165 x-transition:enter-start="opacity-0" 6166 x-transition:enter-end="opacity-100" 6167 x-transition:leave="ease-in-out duration-500" 6168 x-transition:leave-start="opacity-100" 6169 x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex p-2"> 6170 <button @click="open = false;" aria-label="Close panel" 6171 class="p-2 transition duration-150 ease-in-out hover:text-secondary-900"> 6172 <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"> 6173 <path stroke-linecap="round" stroke-linejoin="round" 6174 stroke-width="2" d="M6 18L18 6M6 6l12 12"> 6175 </path> 6176 </svg> 6177 </button> 6178 </div> 6179 <div class="flex flex-col h-full bg-white"> 6180 <header class="pt-4 px-4 sm:px-6"> 6181 <h2 id="cart-drawer-title" class="text-xl font-bold pb-4 border-b lg:text-2xl"> 6182 Winkelmand </h2> 6183 </header> 6184 <div class="overflow-y-auto bg-white sm:gap-8 pt-3 px-4 sm:px-6"> 6185 <template x-for="item in cartItems"> 6186 <div class="flex items-start space-x-4 border-b w-full pb-4 mb-4"> 6187 <a :href="item.product_url"> 6188 <img 6189 :src="item.product_image.src" 6190 :width="item.product_image.width" 6191 :height="item.product_image.height" 6192 loading="lazy" 6193 class="border rounded-md max-w-[100px]" 6194 /> 6195 </a> 6196 <div class="w-3/4 space-y-2"> 6197 <div> 6198 <strong class="block mb-2 lg:text-lg" x-html="item.product_name"></strong> 6199 <p class="block text-md"> 6200 <span>Artikelnummer: </span> 6201 <span x-html="item.product_sku"></span> 6202 </p> 6203 </div> 6204 6205 <template x-for="option in item.options"> 6206 <template x-if="option.label !== 'Tracking Parameters'"> 6207 <div class="text-xs">
6208 <span class="block font-semibold" x-text="option.label + ':'"></span> 6209 <span class="font-normal" x-html="option.value"></span> 6210 </div> 6211 </template> 6212 </template> 6213 6214 <p><span x-html="item.product_price"></span></p> 6215 6216 <div class="flex justify-between flex-wrap gap-4 mx-auto grid-cols-2 w-full !mt-6"> 6217 <div class="w-7/12 font-semibold w-auto"> 6218 <form 6219 action="https://www.123drogisterij.nl/checkout/sidebar/updateItemQty/" 6220 x-data="{ 6221 initQty: item.qty, 6222 itemQty: item.qty, 6223 prevQty: item.qty, 6224 updateQty() { 6225 const submitEvent = new Event('submit', { cancelable: true }); 6226 this.$root.dispatchEvent(submitEvent); 6227 }, 6228 setQtyDefaults() { 6229 this.initQty = item.qty; 6230 this.itemQty = item.qty; 6231 this.prevQty = item.qty; 6232 } 6233 }" 6234 @submit.prevent="` 6235 ${itemQty > 0 6236 ? updateItemQty($event.target) 6237 : deleteItemFromCart(item.item_id) 6238 }`" 6239 x-init="$watch('item.qty', () => setQtyDefaults());" 6240 method="post" 6241 class="form form-cart flex gap-1" 6242 > 6243 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="item_id" :value="item.item_id"> 6244 <label class="flex items-center border rounded-md mb-0 border-gray-400"> 6245 <button 6246 class="h-13 pl-2 text-gray-500" 6247 type="button" 6248 @click="itemQty === 1 ? itemQty = 1 : itemQty--" 6249 @click.debounce.1000ms="updateQty($event)" 6250 > 6251 <span> 6252 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5 text-gray-900" width="24" height="24" role="img"> 6253 <path fill-rule="evenodd" d="M3.75 12a.75.75 0 01.75-.75h15a.75.75 0 010 1.5h-15a.75.75 0 01-.75-.75z" clip-rule="evenodd"/> 6254<title>minus</title></svg> 6255 </span> 6256 </button> 6257 <input 6258 type="number" 6259 class="qty form-input w-10 h-10 px-0 py-2 text-center border-x-0 rounded-none border-0 font-normal focus:outline-none focus:border-0 [&::-webkit-inner-spin-button]:hidden" 6260 required 6261 step="any" 6262 x-model.number="itemQty" 6263 :id="`minicart-${item.item_id}-qty`" 6264 name="item_qty" 6265 @change="updateQty($event)" 6266 min="1" 6267 > 6268 <button 6269 class="h-10 pr-2 text-gray-500" 6270 type="button" 6271 @click="itemQty++" 6272 @click.debounce.1000ms="updateQty($event)" 6273 > 6274 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="20" height="20"> 6275 <path fill-rule="evenodd" d="M12 3.75a.75.75 0 01.75.75v6.75h6.75a.75.75 0 010 1.5h-6.75v6.75a.75.75 0 01-1.5 0v-6.75H4.5a.75.75 0 010-1.5h6.75V4.5a.75.75 0 01.75-.75z" clip-rule="evenodd"/> 6276</svg> 6277 </button> 6278 </label> 6279 </form> 6280 </div> 6281 <div class="flex justify-end items-baseline gap-4 w-5/12 w-auto"> 6282 <a :href="item.configure_url" 6283 x-show="item.product_type !== 'grouped'" 6284 class="action action-edit block float-right h-full text-gray-500 text-right text-sm group transition hover:text-black" 6285 :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022\u0020aanpassen', item.product_name)" 6286 > 6287 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 md:h-6 md:w-6 h-full align-middle inline" width="24" height="24"> 6288 <path d="M21.731 2.269a2.625 2.625 0 00-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 000-3.712zM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 00-1.32 2.214l-.8 2.685a.75.75 0 00.933.933l2.685-.8a5.25 5.25 0 002.214-1.32L19.513 8.2z"/> 6289</svg>
6290 <span class="hidden lg:inline-block"> 6291 Bewerken </span> 6292 </a> 6293 <button type="button" 6294 class="action action-remove block h-full text-gray-500 text-right text-sm group transition p-2 hover:text-black" 6295 @click="deleteItemFromCart(item.item_id)" 6296 :aria-label="hyva.strf('Verwijder\u0020product\u0020\u0022\u00250\u0022\u0020van\u0020winkelmand', item.product_name)" 6297 > 6298 6299 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 md:h-6 md:w-6 h-full align-middle inline group-hover:text-red-600" width="24" height="24"> 6300 <path fill-rule="evenodd" d="M16.5 4.478v.227a48.816 48.816 0 013.878.512.75.75 0 11-.256 1.478l-.209-.035-1.005 13.07a3 3 0 01-2.991 2.77H8.084a3 3 0 01-2.991-2.77L4.087 6.66l-.209.035a.75.75 0 01-.256-1.478A48.567 48.567 0 017.5 4.705v-.227c0-1.564 1.213-2.9 2.816-2.951a52.662 52.662 0 013.369 0c1.603.051 2.815 1.387 2.815 2.951zm-6.136-1.452a51.196 51.196 0 013.273 0C14.39 3.05 15 3.684 15 4.478v.113a49.488 49.488 0 00-6 0v-.113c0-.794.609-1.428 1.364-1.452zm-.355 5.945a.75.75 0 10-1.5.058l.347 9a.75.75 0 101.499-.058l-.346-9zm5.48.058a.75.75 0 10-1.498-.058l-.347 9a.75.75 0 001.5.058l.345-9z" clip-rule="evenodd"/> 6301</svg> 6302 </button> 6303 </div> 6304 </div> 6305 </div> 6306 </div> 6307 </template> 6308 </div> 6309 <div class="relative px-6 pb-4 border-t mt-auto lg:pb-12"> 6310 <div class="grid gap-4 py-2"> 6311 <div class="flex w-full grid-cols-2 py-2"> 6312 <div class="w-5/12"> 6313 <span 6314 class="font-semibold" 6315 x-html="` 6316 ${cart.summary_count === 1 6317 ? hyva.str('%1 product', cart.summary_count) 6318 : hyva.str('%1 producten', cart.summary_count) 6319 }`"> 6320 </span> 6321 </div> 6322 <div class="w-7/12 text-right"> 6323 <p class="font-semibold"> 6324 Subtotaal: <span x-html="cart.subtotal"></span> 6325 </p> 6326 </div> 6327 </div> 6328 <div class="flex flex-col gap-2"> 6329 <a href="https://www.123drogisterij.nl/checkout/index/" 6330 class="inline-flex btn btn-primary"> 6331 Ik ga bestellen </a> 6332 <a href="https://www.123drogisterij.nl/checkout/cart/" 6333 class="inline-flex btn text-black hover:underline"> 6334 Bekijk winkelmand </a> 6335 </div> 6336 <div class="payment-methods"> 6337 <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#fff" d="M25.275 28H12.977A1.98 1.98 0 0 1 11 26.023V5.977A1.98 1.98 0 0 1 12.977 4h12.298c11.663 0 13.404 7.501 13.404 11.973C38.68 23.729 33.92 28 25.275 28"></path><path fill="#000" fill-rule="evenodd" d="M12.978 26.8h12.297c4.14 0 7.164-1.023 9.142-2.798 1.958-1.757 3.063-4.403 3.063-8.029 0-2.113-.418-4.794-2.076-6.927C33.789 6.971 30.829 5.2 25.274 5.2H12.979a.78.78 0 0 0-.778.778v20.044a.78.78 0 0 0 .778.778m-.001 1.2h12.298c8.644 0 13.404-4.271 13.404-12.027C38.68
633711.501 36.939 4 25.275 4H12.977A1.98 1.98 0 0 0 11 5.977v20.046A1.98 1.98 0 0 0 12.977 28" clip-rule="evenodd"></path><path fill="#C06" d="M18.539 7.92v17.479h7.61c6.912 0 9.91-3.906 9.91-9.417 0-5.278-2.998-9.381-9.91-9.381h-6.292a1.32 1.32 0 0 0-1.318 1.318"></path><path fill="#fff" d="M21.154 17.026q.198 0 .386-.064a.85.85 0 0 0 .333-.214 1.1 1.1 0 0 0 .234-.389 1.7 1.7 0 0 0 .088-.585q0-.315-.062-.57a1.1 1.1 0 0 0-.202-.436.9.9 0 0 0-.37-.277 1.5 1.5 0 0 0-.571-.097h-.655v2.632zm.064-3.404q.404 0 .751.13c.227.082.433.213.603.385q.255.257.398.643.143.387.143.907 0 .456-.117.842t-.354.666c-.161.19-.363.341-.59.442q-.355.162-.834.161h-1.802v-4.176zm5.627 0v.772H24.64v.895h2.023v.714H24.64v1.023h2.252v.772h-3.17v-4.176zm3.197 2.562-.527-1.533h-.012l-.543 1.533zm-.053-2.562 1.561 4.176h-.953l-.316-.93H28.72l-.328.93h-.924l1.58-4.176zm3.057 0v3.404h2.035v.772h-2.953v-4.176z"></path><path fill="#000" d="M17.026 15.71a1.926 1.926 0 1 1-3.853 0 1.926 1.926 0 0 1 3.853 0m-.466 9.69a2.92 2.92 0 0 1-2.919-2.919v-2.276a1.46 1.46 0 1 1 2.919 0z"></path></g><defs><clippath id="a"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met iDeal</title></svg> 6338 6339<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_2)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#000" d="M43 10.5v9.523h-2.167V10.5zm-2.965 3.214v6.327H38.11v-.546a2.6 2.6 0 0 1-.83.546q-.465.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.5 3.5 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q-.001-.708.238-1.313.252-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.466.19.83.545v-.545h1.925zm-3.414 4.604q.592.001.97-.407.39-.404.39-1.035c0-.42-.13-.769-.39-1.036a1.27 1.27 0 0 0-.97-.406c-.391 0-.722.134-.983.406q-.377.405-.377 1.036c0 .42.127.769.377 1.035q.391.406.983.407M29.996 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.157.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24h-1.044v3.238h-2.205V10.5zm-.316 4.34c.296 0 .519-.03.681-.09q.254-.103.415-.253.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.239-.101-.681-.102h-.731v2.378zm-11.055-1.126h2.393l1.624 3.034h.027l1.447-3.034h2.216l-4.748 9.538h-2.205l2.167-4.363zm-.427 0v6.327h-1.926v-.546a2.6 2.6 0 0 1-.83.546q-.466.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.6 3.6 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q0-.708.238-1.313.251-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.467.19.83.545v-.545h1.925zm-3.414 4.604q.591.001.972-.407.392-.404.392-1.035c0-.42-.13-.769-.392-1.036a1.27 1.27 0 0 0-.972-.406q-.591-.001-.983.406-.378.405-.377 1.036c0 .42.128.769.377 1.035q.392.406.983.407M8.25 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.156.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24H7.205v3.238H5V10.5zm-.313 4.34c.295 0 .519-.03.681-.09a1.3 1.3 0 0 0 .415-.253q.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.24-.101-.681-.102h-.731v2.378z"></path></g><defs><clippath id="a_2"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met PayPal</title></svg> 6340 6341<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_3)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#000" d="M39.478 18.825c-.884 0-1.572-.724-1.572-1.603 0-.88.688-1.603 1.572-1.603s1.573.724 1.573 1.603c0 .88-.69 1.603-1.573 1.603m-.442 1.694c.754 0 1.716-.284 2.249-1.396l.052.025c-.234.608-.234.97-.234 1.06v.143H43v-6.258h-1.897v.142c0 .09 0 .453.233 1.06l-.051.026c-.533-1.112-1.495-1.396-2.249-1.396-1.806 0-3.08 1.422-3.08 3.297s1.274 3.297 3.08 3.297m-6.38-6.594c-.858 0-1.534.297-2.08 1.396l-.052-.026c.234-.607.234-.97.234-1.06v-.142H28.86v6.258h1.95v-3.297c0-.866.507-1.41 1.325-1.41.82 0 1.222.466 1.222 1.397v3.31h1.95v-3.982c0-1.423-1.118-2.444-2.652-2.444M26.04 15.32l-.052-.026c.234-.607.234-.97.234-1.
634106v-.142h-1.897v6.258h1.95l.012-3.013c0-.879.468-1.41 1.235-1.41.208 0 .377.027.572.078v-1.913c-.858-.181-1.625.142-2.054 1.228m-6.199 3.504c-.883 0-1.572-.724-1.572-1.603 0-.88.689-1.603 1.572-1.603s1.573.724 1.573 1.603c0 .88-.689 1.603-1.573 1.603M19.4 20.52c.754 0 1.716-.284 2.249-1.396l.052.025c-.234.608-.234.97-.234 1.06v.143h1.897v-6.258h-1.897v.142c0 .09 0 .453.234 1.06l-.052.026c-.533-1.112-1.495-1.396-2.248-1.396-1.807 0-3.08 1.422-3.08 3.297s1.273 3.297 3.08 3.297m-5.796-.168h1.95V11.3h-1.95zm-1.43-9.051h-1.988c0 1.616-1 3.064-2.52 4.099l-.599.414V11.3H5v9.05h2.066v-4.486l3.418 4.487h2.521l-3.288-4.293c1.495-1.073 2.47-2.74 2.457-4.758"></path></g><defs><clippath id="a_3"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Klarna</title></svg> 6342 6343<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_4)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#FF5F00" d="M28.376 8.139h-8.75v15.725h8.75z"></path><path fill="#EB001B" d="M20.181 16a9.98 9.98 0 0 1 3.82-7.861A9.96 9.96 0 0 0 17.82 6c-5.522 0-10 4.478-10 10s4.478 10 10 10A9.96 9.96 0 0 0 24 23.861 9.98 9.98 0 0 1 20.182 16"></path><path fill="#F79E1B" d="M40.178 16c0 5.522-4.477 10-10 10-2.333 0-4.477-.8-6.18-2.139A9.98 9.98 0 0 0 27.818 16a9.98 9.98 0 0 0-3.82-7.861A9.96 9.96 0 0 1 30.178 6c5.522 0 10 4.478 10 10"></path></g><defs><clippath id="a_4"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Mastercard</title></svg> 6344 6345<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_5)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#1434CB" d="M19.108 10.212 14.243 21.82H11.07l-2.393-9.263c-.146-.57-.272-.78-.714-1.02-.722-.391-1.913-.759-2.962-.987l.071-.337h5.109c.651 0 1.237.434 1.385 1.184l1.264 6.715 3.124-7.9zm12.435 7.817c.013-3.063-4.236-3.232-4.206-4.6.009-.417.405-.86 1.273-.973.43-.056 1.616-.099 2.96.52l.527-2.461A8.1 8.1 0 0 0 29.29 10c-2.968 0-5.056 1.578-5.074 3.837-.019 1.67 1.491 2.603 2.629 3.158 1.17.569 1.563.934 1.558 1.443-.008.778-.933 1.122-1.798 1.135-1.509.024-2.385-.408-3.083-.733l-.544 2.543c.702.322 1.997.603 3.339.617 3.154 0 5.218-1.558 5.227-3.97m7.837 3.79h2.777l-2.424-11.607H37.17c-.577 0-1.063.336-1.278.852L31.387 21.82h3.152l.626-1.734h3.852zm-3.35-4.113 1.58-4.358.91 4.358zm-12.632-7.494L20.915 21.82h-3.002l2.483-11.607z"></path></g><defs><clippath id="a_5"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met VISA</title></svg> 6346 6347<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_6)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#1E3764" d="M7.9 25.92v-4.652h1.436c1.043 0 1.714.392 1.714 1.203 0 .458-.213.777-.512.963.432.2.685.585.685 1.11 0 .937-.685 1.376-1.748 1.376zm.924-2.719h.684c.419 0 .599-.206.599-.584 0-.406-.326-.539-.765-.539h-.518zm0 1.908h.571c.559 0 .884-.14.884-.578 0-.432-.279-.612-.804-.612h-.651zm4.19.89c-.91 0-1.369-.445-1.369-1.043 0-.658.539-1.043 1.336-1.05q.297.006.592.053v-.16c0-.405-.233-.598-.678-.598-.3-.003-.598.05-.877.16l-.167-.718c.286-.12.745-.2 1.15-.2.977 0 1.462.52 1.462 1.416v1.848c-.272.14-.784.293-1.449.293m.559-.75v-.712a2.2 2.2 0 0 0-.472-.053c-.306 0-.545.12-.545.432 0 .28.2.426.552.426.16.005.319-.027.465-.093m1.536.67v-3.183a4.1 4.1 0 0 1 1.502-.292c.97 0 1.529.478 1.529 1.362v2.114h-.918v-2.047c0-.459-.212-.672-.618-.672-.201-.002-.4.038-.584.12v2.599zm6.236-3.276-.173.725a2 2 0 0 0-.751-.166c-.538 0-.83.378-.83 1.003 0 .685.305 1.037.876 1.037.255-.007.506-.066.738-.173l.146.738c-.3.134-.627.2-.957.193-1.103 0-1.741-.685-1.741-1.768 0-1.077.631-1.788 1.688-1.788.345-.002.686.066 1.004.2M23.325 26c-1.023 0-1.66-.712-1.66-1.782 0-1.063.637-1.774 1.66-1.774 1.031 0 1.656.711 1.656 1.774 0 1.07-.625 1.782-1.655 1.782m0-.758c.473 0 .719-.392.719-1.024 0-.624-.246-1.017-.718-1.017-.465 0-.724.393-.724 1.017 0 .632.259 1.024.724 1.024m2.187.678v-3.184a4.1 4.1 0 0 1 1.502-.292c.97 0 1.528.478 1.528 1.362v2.114h-.917v-2.047c0-.459-.213-.672-.618-.672a1.4 1.4 0 0 0-.585.12v2.599zm5.098.08c-.79 0-1.196-.433-1.196-1.31v-1.435h-.452v-.731h.452v-.738l.917-.047v.785h.738v.73h-.738v1.423c0 .385.16.565.459.565q.178 0 .352-.04l.047.738q-.286.063-.579.06m2.315 0c-.91 0-1.369-.446-1.369-1.044 0-.658.539-1.043 1.336-1.05q.297.006.592.053v-.16c0-.405-.233-.598-.678-.598-.3-.003-.598.05-.877.16l-.167-.718c.286-.12.745-.2 1.15-.2.977 0 1.462.52 1.462 1.416v1.848c-.272.14-.784.293-1.449.293m.559-.751v-.712a2.2 2.2 0 0 0-.472-.053c-.306 0-.545.12-.545.432 0 .28.2.426.551.426.16.005.32-.027.466-.093m4.028-2.606-.173.725a2 2 0 0 0-.75-.166c-.539 0-.831.378-.831 1.003 0 .685.305 1.037.877 1.037.255-.007.506-.066.738-.173l.146.738c-.301.134-.628.2-.957.193-1.103 0-1.741-.685-1.741-1.768 0-1.077.63-1.788 1.688-1.788.344-.002.685.066 1.003.2M39.53 26c-.791 0-1.197-.433-1.197-1.31v
6347-1.435h-.452v-.731h.452v-.738l.917-.047v.785h.738v.73h-.738v1.423c0 .385.16.565.459.565q.179 0 .352-.04l.047.738q-.286.063-.578.06"></path><path fill="url(#b)" d="M14.297 18.942c4.853 0 7.28-3.236 9.706-6.471H7.9v6.47z"></path><path fill="url(#c)" d="M33.71 6c-4.854 0-7.28 3.235-9.707 6.47h16.104V6z"></path></g><defs><lineargradient id="b" x1="11.157" x2="22.938" y1="16.005" y2="11.629" gradientunits="userSpaceOnUse"><stop stop-color="#005AB9"></stop><stop offset="1" stop-color="#1E3764"></stop></lineargradient><lineargradient id="c" x1="24.978" x2="37.487" y1="13.032" y2="8.764" gradientunits="userSpaceOnUse"><stop stop-color="#FBA900"></stop><stop offset="1" stop-color="#FFD800"></stop></lineargradient><clippath id="a_6"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Bancontact</title></svg> 6348 6349</div> </div> 6350 </div> 6351 </div> 6352 </div> 6353 </div> 6354 </div> 6355</template> 6356 <!-- BLOCK authentication-popup -->
6356<script> 6357 function initAuthentication() { 6358 return { 6359 open: false, 6360 close() { 6361 this.open = false; 6362 }, 6363 forceAuthentication: false, 6364 checkoutUrl: 'https://www.123drogisterij.nl/checkout/index/', 6365 errors: 0, 6366 hasCaptchaToken: 0, 6367 displayErrorMessage: false, 6368 errorMessages: [], 6369 setErrorMessages(message) { 6370 this.errorMessages = [message]; 6371 this.displayErrorMessage = true; 6372 }, 6373 submitForm() { 6374 // Do not rename $form, the variable is expected to be declared in the recaptcha output 6375 const $form = document.querySelector('#login-form'); 6376 if (!this.hasCaptchaToken) { 6377 this.errors = 1; 6378 6379 6380 const executeGreCaptcha = () => { 6381 grecaptcha.ready(() => { 6382 grecaptcha.execute( 6383 '6LdEduIrAAAAADLY9aaFf8Q0ZRbb6LN6NnyhO\u002D5V', 6384 {action: 'submit'} 6385 ).then((token) => { 6386 const tokenElement = $form['g\u002Drecaptcha\u002Dresponse']; 6387 6388 if (tokenElement && token && token.length > 0) { 6389 $form['g\u002Drecaptcha\u002Dresponse'].value = token; 6390 this.errors = 0; 6391 this.hasCaptchaToken = 1; 6392 (this.submitForm || $form.submit).call(this); 6393 } else { 6394 this.errors = 1; 6395 const error = tokenElement 6396 ? 'ReCaptcha\u0020validation\u0020failed,\u0020please\u0020try\u0020again' 6397 : 'ReCaptcha\u0020token\u0020element\u0020is\u0020missing.\u0020Please\u0020refresh\u0020the\u0020page\u0020and\u0020trying\u0020again.'; 6398 if (this.setErrorMessages) { 6399 this.setErrorMessages([error]) 6400 this.displayErrorMessage = true; 6401 } else { 6402 window.dispatchMessages && window.dispatchMessages([{type: "error", text: error}], 5000); 6403 } 6404 } 6405 }).catch(exception => { 6406 console.error(exception || `An unknown error occurred during ReCaptcha validation. Are the tokens and the domain correctly set up in the Google console?`) 6407 }); 6408 }) 6409 } 6410 6411 if (window.grecaptcha) { 6412 executeGreCaptcha(); 6413 } else { 6414 const recaptchaUrl = "https://www.google.com/recaptcha/api.js?render=6LdEduIrAAAAADLY9aaFf8Q0ZRbb6LN6NnyhO\u002D5V"; 6415 const script = document.createElement('script'); 6416 script.setAttribute('type', 'text/javascript'); 6417 script.setAttribute('src', recaptchaUrl); 6418 document.head.appendChild(script); 6419 6420 script.addEventListener("load", executeGreCaptcha, false); 6421 } 6422 } 6423 6424 if (this.errors === 0) { 6425 this.dispatchLoginRequest($form); 6426 } 6427 }, 6428 onPrivateContentLoaded() { 6429 const data = this.$event.detail.data; 6430 const isLoggedIn = data.customer && data.customer.firstname; 6431 if (data.cart && !isLoggedIn) { 6432 this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; 6433 } 6434 }, 6435 redirectIfAuthenticated() { 6436 const event = this.$event; 6437 this.open = this.forceAuthentication; 6438 6439 if (event.detail && event.detail.url) { 6440 this.checkoutUrl = event.detail.url; 6441 } 6442 if (!this.forceAuthentication) { 6443 window.location.href = this.checkoutUrl; 6444 } 6445 }, 6446 resetErrors() { 6447 this.errors = 0; 6448 }, 6449 dispatchLoginRequest(form) { 6450 this.isLoading = true; 6451 const username = this.$refs['customer-email'].value; 6452 const password = this.$refs['customer-password'].value; 6453 const formKey = hyva.getFormKey(); 6454 const bodyFields = { 6455 'username': username, 6456 'password': password, 6457 'formKey': formKey 6458 }; 6459 const fieldName = 'g\u002Drecaptcha\u002Dresponse'; 6460 const recaptchaField = fieldName && form[fieldName]; 6461 if (recaptchaField) { 6462 bodyFields[fieldName] = recaptchaField.value; 6463 } 6464 fetch('https://www.123drogisterij.nl/customer/ajax/login/', { 6465 method: 'POST', 6466 headers: { 6467 'Content-Type': 'application/json', 6468 'X-Requested-With': 'XMLHttpRequest' 6469 }, 6470 body: JSON.stringify(bodyFields) 6471 } 6472 ).then(response => { 6473 return response.json() 6474 } 6475 ).then(data => { 6476 this.isLoading = false;
6477 if (data.errors) { 6478 this.setErrorMessages(data.message); 6479 this.errors = 1; 6480 this.hasCaptchaToken = 0; 6481 } else { 6482 window.location.href = this.checkoutUrl; 6483 } 6484 }); 6485 } 6486 } 6487 } 6488 6489 window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true}) 6490</script>
6490 6491<section id="authentication-popup" 6492 x-data="initAuthentication" 6493 @private-content-loaded.window="onPrivateContentLoaded" 6494 @toggle-authentication.window="redirectIfAuthenticated" 6495 @keydown.window.escape="close" 6496> 6497 <div 6498 class="backdrop" 6499 aria-hidden="true" 6500 x-cloak 6501 x-show="open" 6502 x-transition:enter="ease-in-out duration-500" 6503 x-transition:enter-start="opacity-0" 6504 x-transition:enter-end="opacity-100" 6505 x-transition:leave="ease-in-out duration-500" 6506 x-transition:leave-start="opacity-100" 6507 x-transition:leave-end="opacity-0" 6508 @click="close" 6509 ></div> 6510 <div role="dialog" 6511 aria-modal="true" 6512 @click.outside="close" 6513 class="inset-y-0 right-0 z-30 flex max-w-full fixed" 6514 x-cloak 6515 x-show="open" 6516 > 6517 <div class="relative w-screen max-w-md pt-16 bg-container-lighter" 6518 x-show="open" 6519 x-cloak 6520 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 6521 x-transition:enter-start="translate-x-full" 6522 x-transition:enter-end="translate-x-0" 6523 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 6524 x-transition:leave-start="translate-x-0" 6525 x-transition:leave-end="translate-x-full" 6526 > 6527 <div 6528 x-show="open" 6529 x-cloak 6530 x-transition:enter="ease-in-out duration-500" 6531 x-transition:enter-start="opacity-0" 6532 x-transition:enter-end="opacity-100" 6533 x-transition:leave="ease-in-out duration-500" 6534 x-transition:leave-start="opacity-100" 6535 x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2"> 6536 <button 6537 type="button" 6538 @click="close" 6539 aria-label="Close panel" 6540 class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black" 6541 > 6542 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 6543 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 6544</svg> 6545 </button> 6546 </div> 6547 <template x-if="open"> 6548 <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto"> 6549 <div class="mx-4"> 6550 <div class="message error mb-0" x-show="errors" x-cloak> 6551 <template x-for="(message, index) in errorMessages" :key="index"> 6552 <div> 6553 <template x-if="message"> 6554 <span x-html="message"></span> 6555 </template> 6556 </div> 6557 </template> 6558 </div> 6559 </div> 6560 <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> 6561 <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> 6562 <strong class="font-medium">Reken af met uw account</strong> 6563 </p> 6564 6565 <form class="form form-login" 6566 method="post" 6567 @submit.prevent="submitForm" 6568 id="login-form" 6569 > 6570 <div class="control"> 6571 <input type="hidden" 6572 value="" 6573 name="g-recaptcha-response" 6574 /> 6575</div> 6576 <div class="fieldset login"> 6577 <div class="field email required"> 6578 <label class="label" for="form-login-username" form="login-form" >
6579 <span>E-mail adres</span> 6580 </label> 6581 <div class="control"> 6582 <input name="username" 6583 id="form-login-username" 6584 x-ref="customer-email" 6585 @change="resetErrors" 6586 type="email" 6587 required 6588 autocomplete="off" 6589 class="form-input input-text" 6590 > 6591 </div> 6592 </div> 6593 <div class="field password required"> 6594 <label for="form-login-password" class="label" form="login-form"> 6595 <span>Wachtwoord</span> 6596 </label> 6597 <div class="control"> 6598 <input name="password" 6599 id="form-login-password" 6600 type="password" 6601 class="form-input input-text" 6602 required 6603 x-ref="customer-password" 6604 autocomplete="off" 6605 @change="resetErrors" 6606 > 6607 </div> 6608 </div> 6609 6610 <input name="context" type="hidden" value="checkout" /> 6611 <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center"> 6612 <button type="submit" class="inline-flex btn btn-primary disabled:opacity-75" 6613 > 6614 Inloggen </button> 6615 <a href="https://www.123drogisterij.nl/customer/account/forgotpassword/" 6616 > 6617 Wachtwoord vergeten? </a> 6618 </div> 6619 6620 </div> 6621 </form> 6622 </div> 6623 <div class="mx-4"> 6624 <p class="my-4 text-sm text-gray-900"> 6625Dit formulier is beveiligd met reCAPTCHA - het <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Privacybeleid</a> en de <a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Servicevoorwaarden</a> van <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google</a> zijn van toepassing.</p> 6626 </div> 6627 <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> 6628 <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> 6629 <strong class="font-medium">Afrekenen als een nieuwe klant</strong> 6630 </p> 6631 6632 <div class="block-content"> 6633 <p class="mb-1"> 6634 Het aanmaken van een account heeft vele voordelen: </p> 6635 <ul class="list-disc pl-5"> 6636 <li> Bekijk bestelling en verzendstatus</li> 6637 <li> Bekijk bestelgeschiedenis</li> 6638 <li> Reken sneller af</li> 6639 </ul> 6640 <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center"> 6641 <a href="https://www.123drogisterij.nl/customer/account/create/" 6642 class="inline-flex btn btn-primary"> 6643 Registreren </a> 6644 </div> 6645 </div> 6646 </div> 6647 </div> 6648 </template> 6649 </div> 6650 </div> 6651</section> 6652<!-- /BLOCK authentication-popup --></nav> 6653</header><div class="top-container"> <nav class="breadcrumbs mt-4" aria-label="Breadcrumb"> 6654 <div class="container"> 6655 <ol class="items list-reset flex flex-wrap px-4 py-2 text-base bg-gray-100 rounded-md w-fit"> 6656 <li class="item flex home"> 6657 <a href="https://www.123drogisterij.nl/" 6658 class="text-black hover:underline" 6659 title="Naar de hoofdpagina" 6660 > 6661 Home </a> 6662 </li> 6663 <li class="item flex category10">
6664 <span aria-hidden="true" class="separator px-1 m-auto"> 6665 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4 text-black" width="16" height="16" role="img"> 6666 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"/> 6667<title/></svg> 6668 </span> 6669 <span class="text-secondary-800 font-bold"> 6670 Incontinentiemateriaal </span> 6671 </li> 6672 </ol> 6673 </div> 6674 </nav> 6675 </div><main id="maincontent" class="page-main"> <div class="grid grid-cols-1 gap-x-8 container overflow-x-auto my-4 sm:grid-cols-2 lg:grid-cols-4"> 6676 <div class="block text-2xl font-bold col-span-1 lg:text-3xl"> 6677 </div> 6678 <div class="mx-auto overflow-hidden relative col-span-3"> 6679 <h1 > 6680 <span class="base" data-ui-id="page-title-wrapper" >Incontinentiemateriaal</span> </h1> 6681 </div> 6682 </div> 6683<div id="contentarea" tabindex="-1"></div> 6684<div class="page messages">
6684<script> 6685 function initMessages() { 6686 "use strict"; 6687 return { 6688 messages: window.mageMessages || [], 6689 isEmpty() { 6690 return this.messages.reduce( 6691 function (isEmpty, message) { 6692 return isEmpty && message === undefined 6693 }, true 6694 ) 6695 }, 6696 removeMessage(messageIndex) { 6697 this.messages[messageIndex] = undefined; 6698 }, 6699 addMessages(messages, hideAfter) { 6700 messages.map((message) => { 6701 this.messages = this.messages.concat(message); 6702 if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { 6703 hideAfter = window.defaultSuccessMessageTimeout; 6704 } 6705 if (hideAfter) { 6706 this.setHideTimeOut(this.messages.length -1, hideAfter); 6707 } 6708 }); 6709 }, 6710 setHideTimeOut(messageIndex, hideAfter) { 6711 setTimeout((messageIndex) => { 6712 this.removeMessage(messageIndex); 6713 }, hideAfter, messageIndex); 6714 }, 6715 eventListeners: { 6716 ['@messages-loaded.window'](event) { 6717 this.addMessages(event.detail.messages, event.detail.hideAfter) 6718 }, 6719 ['@private-content-loaded.window'](event) { 6720 const data = event.detail.data; 6721 if ( 6722 data.messages && 6723 data.messages.messages && 6724 data.messages.messages.length 6725 ) { 6726 this.addMessages(data.messages.messages); 6727 } 6728 }, 6729 ['@clear-messages.window']() { 6730 this.messages = []; 6731 } 6732 } 6733 } 6734 } 6735</script>
6735 6736<section class="w-full" 6737 id="messages" 6738 x-data="initMessages()" 6739 x-bind="eventListeners" 6740 aria-live="assertive" 6741 role="alert" 6742> 6743 <template x-if="!isEmpty()"> 6744 <div class="w-full"> 6745 <div class="messages container mt-4"> 6746 <template x-for="(message, index) in messages" :key="index"> 6747 <div> 6748 <template x-if="message"> 6749 <div class="message shadow-hard " :class="message.type" 6750 :ui-id="'message-' + message.type" 6751 > 6752 <span x-html="message.text"></span> 6753 <button 6754 type="button" 6755 class="text-white hover:scale-110 transition" 6756 aria-label="Close message" 6757 @click.prevent="removeMessage(index)" 6758 > 6759 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="stroke-current" width="18" height="18"> 6760 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 6761</svg> 6762 </button> 6763 </div> 6764 </template> 6765 </div> 6766 </template> 6767 </div> 6768 </div> 6769 </template> 6770</section> 6771</div> <div class="grid grid-cols-1 gap-x-8 container my-4 sm:grid-cols-2 lg:grid-cols-4"> 6772 <span class="block text-2xl font-bold col-span-1 lg:text-3xl"> 6773 Zoek uw product </span> 6774
6774<script> 6775 function initSmileAttibute_6ac3024e23cad() { 6776 "use strict"; 6777 6778 return { 6779 options : {"component":"Smile_ElasticsuiteCatalog\/js\/attribute-filter","maxSize":10,"displayProductCount":true,"hasMoreItems":false,"displayRelNofollow":"","ajaxLoadUrl":"https:\/\/www.123drogisterij.nl\/catalog\/navigation_filter\/ajax\/id\/10\/?cat=10&filterName=soort","items":[{"label":"Broekje","count":119,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Broekje","is_selected":false},{"label":"Inlegger","count":108,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Inlegger","is_selected":false},{"label":"Slip","count":73,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Slip","is_selected":false},{"label":"Onderlegger","count":32,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Onderlegger","is_selected":false},{"label":"Verzorging","count":29,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Verzorging","is_selected":false},{"label":"Fixatie","count":10,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Fixatie","is_selected":false},{"label":"Flex","count":10,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Flex","is_selected":false},{"label":"Matrasbeschermer","count":4,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Matrasbeschermer","is_selected":false}]}, 6780 searchLabel : 'Zoeken (%s)', 6781 noSearchResultLabel : 'Geen waarde die overeenkomt met de zoekopdracht <b>%s</b>.', 6782 items: [], 6783 lastSelectIndex: 0, 6784 maxSize: 0, 6785 displaySearch: false, 6786 displayedItems: [], 6787 fulltextSearch: null, 6788 searchPlaceholder: '', 6789 result: 0, 6790 6791 /** 6792 * Component initialization 6793 */ 6794 initialize: function () { 6795 6796 this.items = this.options.items.map(this.addItemId.bind(this)); 6797 6798 var lastSelectedIndex = Math.max.apply(null, (this.items.map( 6799 function (v, k) {return v['is_selected'] ? k : 0;})) 6800 ); 6801 this.maxSize = Math.max(this.options.maxSize, lastSelectedIndex + 1); 6802 6803 this.initSearchPlaceholder(); 6804 this.displayedItems = this.getDisplayedItems(); 6805 }, 6806 6807 /** 6808 * Init the place holder 6809 */ 6810 initSearchPlaceholder: function () { 6811 var examples = this.items.slice(0, 2).map(function (item) {return item.label}); 6812 6813 if (this.items.length > 2) { 6814 examples.push('...'); 6815 } 6816 6817 // Tip to make html chars interpretable by the browser when the value is get from JS. 6818 let placeholder = document.createElement('div'); 6819 placeholder.innerHTML = this.searchLabel.replace('%s', examples.join(', ')); 6820 6821 this.searchPlaceholder = placeholder.textContent; 6822 }, 6823 6824 /** 6825 * Triggered when typing on the search input 6826 */ 6827 onSearchChange: function (event) { 6828 var text = event.target.value; 6829 if (text.trim() === "") { 6830 this.fulltextSearch = null; 6831 this.onShowLess(); 6832 } else { 6833 this.fulltextSearch = text; 6834 this.onShowMore(); 6835 } 6836 6837 return true; 6838 }, 6839 6840 /** 6841 * Triggered when leaving the search field. 6842 */ 6843 onSearchFocusOut: function(event) { 6844 var text = event.target.value; 6845 if (text.trim() === "") { 6846 this.fulltextSearch = null; 6847 } 6848 }, 6849 6850 /** 6851 * Retrieve additional Results 6852 * 6853 * @param callback 6854 */ 6855 loadAdditionalItems: function (callback) { 6856 fetch(this.options.ajaxLoadUrl, { 6857 method: 'GET', 6858 headers: { 6859 'X-Requested-With': 'XMLHttpRequest', 6860 }, 6861 }) 6862 .then((response) => response.json()) 6863 .then((data) => { 6864 this.items = data.map(this.addItemId.bind(this)); 6865 this.options.hasMoreItems = false;
6866 6867 if (callback) { 6868 return callback(); 6869 } 6870 } 6871 ); 6872 }, 6873 6874 /** 6875 * Retrieve items to display 6876 * 6877 * @returns {*} 6878 */ 6879 getDisplayedItems: function () { 6880 var items = this.items; 6881 6882 if (this.expanded === false) { 6883 items = this.items.slice(0, this.maxSize); 6884 } 6885 6886 if (this.getFulltextSearch()) { 6887 var searchTokens = this.slugify(this.getFulltextSearch()).split('-'); 6888 var lastSearchToken = searchTokens.splice(-1, 1)[0]; 6889 6890 items = items.filter(function(item) { 6891 var isValidItem = true; 6892 var itemTokens = this.slugify(item.label).split('-'); 6893 searchTokens.forEach(function(currentToken) { 6894 if (itemTokens.indexOf(currentToken) === -1) { 6895 isValidItem = false; 6896 } 6897 }) 6898 if (isValidItem && lastSearchToken) { 6899 var ngrams = itemTokens.map(function(token) {return token.substring(0, lastSearchToken.length)}); 6900 isValidItem = ngrams.indexOf(lastSearchToken) !== -1; 6901 } 6902 return isValidItem; 6903 }.bind(this)) 6904 } 6905 this.result = items.length; 6906 return items; 6907 }, 6908 6909 /** 6910 * Does the search have a result 6911 */ 6912 hasSearchResult: function () { 6913 return this.getDisplayedItems().length > 0 6914 }, 6915 6916 /** 6917 * Search result message 6918 */ 6919 getSearchResultMessage : function() { 6920 return this.noSearchResultLabel.replace("%s", '"' + this.getFulltextSearch() + '"') 6921 }, 6922 6923 getFulltextSearch : function() { 6924 return this.fulltextSearch; 6925 }, 6926 6927 /** 6928 * Index the text to be searched. 6929 */ 6930 slugify: function(text) { 6931 return text.toString().toLowerCase() 6932 .replace(/\s+/g, '-') // Replace spaces with - 6933 .replace(/[^\w\u0400-\u052F\u2DE0-\u2DFF\uA640-\uA69F'\-]+/g, '') // Remove all non-word chars 6934 .replace(/\-\-+/g, '-') // Replace multiple - with single - 6935 .replace(/^-+/, '') // Trim - from start of text 6936 }, 6937 6938 /** 6939 * Add an id to items. 6940 */ 6941 addItemId: function (item) { 6942 item.id = Math.floor(Math.random() * 1000000) + "_option_"; 6943 item.displayProductCount = this.options.displayProductCount && (item.count >= 1); 6944 6945 return item; 6946 }, 6947 }; 6948 }; 6949</script>
6949 6950 <div class="soortFilter slider-container overflow-hidden w-full relative cursor-grab col-span-3" 6951 x-data="initSmileAttibute_6ac3024e23cad()" x-init="initialize();" 6952 > 6953 <div class="horizontal-slider overflow-x-scroll flex flex-row items-center min-h-[76px] select-none cursor-grab gap-4 horizontal-filter-scrollbar pt-4 pb-2 md:gap-8"> 6954 <template x-for="attribute in getDisplayedItems()" hidden> 6955 <div class="slider-item h-fit border border-gray-400 rounded-md transition hover:bg-tertiary-100" 6956 :class="{'border-secondary-800 border-2 bg-tertiary-100 hover:bg-white hover:border-gray-400': attribute?.is_selected}" 6957 :title="attribute.label" 6958 > 6959 <a :href="attribute.url" x-show="attribute.count >= 1" :rel="options.displayRelNofollow"> 6960 <input type="checkbox" 6961 :id="attribute.id" 6962 :checked="attribute.is_selected" 6963 onclick="this.parentNode.click();" 6964 class="hidden" 6965 /> 6966 <label :for="attribute.id" 6967 class="flex items-baseline w-fit p-4 mb-0 cursor-pointer" 6968 > 6969 <span :class="{'font-bold': attribute.is_selected}" 6970 x-html="attribute.label" 6971 ></span> 6972 <div class="text-md"> 6973 (<span class="count" x-text="attribute.count"></span>) 6974 </div> 6975 </label> 6976 </a> 6977 6978 <div x-show="attribute.count < 1"> 6979 <span class="text-base" x-html="attribute.label"></span> 6980 <span class="count" x-text="attribute.count"></span> 6981 </div> 6982 </div> 6983 </template> 6984 </div> 6985 6986 <div class="no-results-message" x-model="result" x-show="getFulltextSearch() && !hasSearchResult()" class="empty"> 6987 <p x-html="getSearchResultMessage()"></p> 6988 </div> 6989 </div> 6990 6991
6991<script> 6992 const slider = document.querySelector('.horizontal-slider'); 6993 6994 let isDown = false; 6995 let startX; 6996 let scrollLeft; 6997 6998 slider.addEventListener('mousedown', (e) => { 6999 isDown = true; 7000 slider.classList.add('active'); // Optional: Add visual feedback 7001 startX = e.pageX - slider.offsetLeft; 7002 scrollLeft = slider.scrollLeft; 7003 slider.style.cursor = 'grabbing'; // Change cursor to indicate grabbing 7004 }); 7005 7006 slider.addEventListener('mouseleave', () => { 7007 isDown = false; 7008 slider.classList.remove('active'); 7009 slider.style.cursor = 'grab'; 7010 }); 7011 7012 slider.addEventListener('mouseup', () => { 7013 isDown = false; 7014 slider.classList.remove('active'); 7015 slider.style.cursor = 'grab'; 7016 }); 7017 7018 slider.addEventListener('mousemove', (e) => { 7019 if (!isDown) return; // Stop if not holding the mouse 7020 e.preventDefault(); 7021 const x = e.pageX - slider.offsetLeft; 7022 const walk = (x - startX) * 1; // Scroll-fast multiplier (adjust as needed) 7023 slider.scrollLeft = scrollLeft - walk; 7024 }); 7025 </script>
7025 7026 </div> 7027 <div class="columns"><aside class="sidebar sidebar-main"> <div x-data="initLayeredNavigation()" 7028 x-init="checkIsMobileResolution()" 7029 @resize.window.debounce="checkIsMobileResolution()" 7030 @visibilitychange.window.debounce="checkIsMobileResolution()" 7031 role="region" 7032 aria-label="Product filters" 7033 > 7034 <div id="filter-button" class="bg-white shadow-soft py-2 fixed block bottom-0 left-1/2 -translate-x-1/2 z-10 w-full md:hidden"> 7035 <div class="relative container w-fit md:w-full md:-translate-x-0 md:static md:text-left md:border-0 md:bg-transparent md:py-0 md:px-0"> 7036 <div class="btn btn-outline bg-white px-16 md:justify-start md:p-0 md:mb-4 md:border-none md:cursor-default 7037 md:text-secondary-900 md:hover:bg-white md:hover:shadow-none" 7038 @click="isMobile === true ? blockOpen = !blockOpen : ''" 7039 > 7040 <div class="flex items-center relative gap-1 text-base md:text-3xl md:font-semibold"> 7041 <span class="flex md:hidden"> 7042 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="rotate-90 h-6 w-6" width="24" height="24" role="img"> 7043 <path d="M6 12a.75.75 0 01-.75-.75v-7.5a.75.75 0 111.5 0v7.5A.75.75 0 016 12zM18 12a.75.75 0 01-.75-.75v-7.5a.75.75 0 011.5 0v7.5A.75.75 0 0118 12zM6.75 20.25v-1.5a.75.75 0 00-1.5 0v1.5a.75.75 0 001.5 0zM18.75 18.75v1.5a.75.75 0 01-1.5 0v-1.5a.75.75 0 011.5 0zM12.75 5.25v-1.5a.75.75 0 00-1.5 0v1.5a.75.75 0 001.5 0zM12 21a.75.75 0 01-.75-.75v-7.5a.75.75 0 011.5 0v7.5A.75.75 0 0112 21zM3.75 15a2.25 2.25 0 104.5 0 2.25 2.25 0 00-4.5 0zM12 11.25a2.25 2.25 0 110-4.5 2.25 2.25 0 010 4.5zM15.75 15a2.25 2.25 0 104.5 0 2.25 2.25 0 00-4.5 0z"/> 7044<title>Filter</title></svg> 7045 </span> 7046 Filter <div class="hidden absolute -top-0.5 -left-1 bg-secondary-800 7047 text-white text-2xs font-bold leading-none rounded-full items-center justify-center w-4 h-4" 7048 > 7049 0 </div> 7050 </div> 7051 </div> 7052 </div> 7053 </div> 7054 7055 <div class="backdrop z-50" 7056 x-show="blockOpen" 7057 x-cloak 7058 x-transition:enter="ease-in-out duration-500" 7059 x-transition:enter-start="opacity-0" 7060 x-transition:enter-end="opacity-100" 7061 x-transition:leave="ease-in-out duration-500" 7062 x-transition:leave-start="opacity-100" 7063 x-transition:leave-end="opacity-0" 7064 @click="blockOpen=false" 7065 aria-label="Close panel" 7066 > 7067 </div> 7068 7069 <div class="block-content filter-content overflow-y-scroll fixed flex flex-col top-0 right-0 bottom-0 px-6 py-6 bg-white mt-auto h-full w-[95%] z-50 7070 md:overflow-visible md:relative md:w-full md:bg-transparent md:p-0 md:z-0" 7071 x-show="isMobile && blockOpen || !isMobile" 7072 x-cloak 7073 x-transition:enter="transform transition ease-in-out duration-500" 7074 x-transition:enter-start="translate-x-full" 7075 x-transition:enter-end="-translate-x-0" 7076 x-transition:leave="transform transition ease-in-out duration-500" 7077 x-transition:leave-start="-translate-x-0" 7078 x-transition:leave-end="translate-x-full" 7079 id="filters-content" 7080 > 7081 <div class="flex items-center justify-between mb-4 block md:hidden"> 7082 <h2 class="text-xl lg:text-3xl"> 7083 Filter op </h2> 7084 <span @click="blockOpen=false"> 7085 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-6 w-6 md:hidden" width="24" height="24" role="img"> 7086 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 7087<title>x-mark</title></svg> 7088 </span> 7089 </div> 7090 7091 7092 <a href="#products-list"
7093 class="sr-only focus:not-sr-only bg-blue-600 text-white px-12 py-4 text-center block rounded-sm" 7094 > 7095 Skip to product list </a> 7096 7097 <div class="divide-y"> 7098 <div class="filter-option" 7099 x-data="{ open: false }" 7100 role="group" 7101 aria-labelledby="filter-option-1-title" 7102 > 7103 <div class="filter-options-title flex justify-between items-center py-3 lg:py-4 cursor-pointer"> 7104 <span class="flex items-center gap-2 font-bold text-base lg:text-lg"> 7105 <span @click="open = !open" >Categorie</span> 7106 </span> 7107 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 7108 @click="open = !open" 7109 xmlns="http://www.w3.org/2000/svg" 7110 class="transition-transform transform duration-150 ease-in-out h-6 w-6 rotate-180" 7111 :class="open ? '!rotate-0' : 'rotate-180'" 7112 > 7113 <path d="M19 9L12 16L5 9" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7114 </svg> 7115 </div> 7116 7117 <div class="filter-options-content text-base" 7118 x-show="open" 7119 > 7120 7121<ol class="items"> 7122 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7123 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/koopjeshoek"> 7124 Koopjeshoek <span class="text-md">(15)</span> 7125 </a> 7126 </li> 7127 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7128 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie"> 7129 TENA <span class="text-md">(119)</span> 7130 </a> 7131 </li> 7132 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7133 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/abso-x"> 7134 ABSO-X <span class="text-md">(2)</span> 7135 </a> 7136 </li> 7137 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7138 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/plastic-broekjes-voor-volwassenen"> 7139 Plastic Broek Volwassenen <span class="text-md">(4)</span> 7140 </a> 7141 </li> 7142 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7143 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/inleggers-voor-extra-absorptie"> 7144 Inleggers voor extra absorptie <span class="text-md">(10)</span> 7145 </a> 7146 </li> 7147 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7148 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/zwemluiers"> 7149 Zwemluiers <span class="text-md">(4)</span> 7150 </a> 7151 </li> 7152 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7153 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/swimmm-zwemluiers"> 7154 Swimmm zwemluiers <sp
7154an class="text-md">(3)</span> 7155 </a> 7156 </li> 7157 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7158 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/egosan"> 7159 Egosan <span class="text-md">(21)</span> 7160 </a> 7161 </li> 7162 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7163 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/abena"> 7164 Abena <span class="text-md">(53)</span> 7165 </a> 7166 </li> 7167 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7168 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/depend"> 7169 Depend <span class="text-md">(31)</span> 7170 </a> 7171 </li> 7172 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7173 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/attends-incontinentie"> 7174 Attends <span class="text-md">(49)</span> 7175 </a> 7176 </li> 7177 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7178 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/absorin-incontinentie"> 7179 Absorin <span class="text-md">(34)</span> 7180 </a> 7181 </li> 7182 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7183 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/betterdry"> 7184 BetterDry <span class="text-md">(4)</span> 7185 </a> 7186 </li> 7187 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7188 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/inco-s"> 7189 Inco's <span class="text-md">(34)</span> 7190 </a> 7191 </li> 7192 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7193 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/netbroekjes"> 7194 Netbroekjes <span class="text-md">(10)</span> 7195 </a> 7196 </li> 7197 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7198 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/seni"> 7199 Seni <span class="text-md">(56)</span> 7200 </a> 7201 </li> 7202 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7203 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/wat-is-een-flex"> 7204 Flex <span class="text-md">(12)</span> 7205 </a> 7206 </li> 7207 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7208 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/matrasbeschermer"> 7209 Incontinentie matrasbeschermer <span class="text-md">(9)</span> 7210 </a> 7211 </li> 7212 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7213 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/verzorging">
7214 Verzorging <span class="text-md">(30)</span> 7215 </a> 7216 </li> 7217 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7218 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/hartmann-molicare"> 7219 Molicare <span class="text-md">(7)</span> 7220 </a> 7221 </li> 7222 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7223 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-vrouwen"> 7224 Incontinentiemateriaal vrouwen <span class="text-md">(42)</span> 7225 </a> 7226 </li> 7227 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7228 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/incontinentiemateriaal-kinderen"> 7229 Incontinentiemateriaal voor kinderen <span class="text-md">(25)</span> 7230 </a> 7231 </li> 7232 <li class="item pb-4 cursor-pointer !mb-0 hover:underline"> 7233 <a href="https://www.123drogisterij.nl/incontinentiemateriaal/fixatie-broekjes-incontinentie"> 7234 Fix <span class="text-md">(10)</span> 7235 </a> 7236 </li> 7237 </ol> 7238 </div> 7239 </div> 7240 <div class="filter-option" 7241 x-data="{ open: true }" 7242 role="group" 7243 aria-labelledby="filter-option-2-title" 7244 > 7245 <div class="filter-options-title flex justify-between items-center py-3 lg:py-4 cursor-pointer"> 7246 <span class="flex items-center gap-2 font-bold text-base lg:text-lg"> 7247 <span @click="open = !open" >Voor man of vrouw</span> 7248 </span> 7249 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 7250 @click="open = !open" 7251 xmlns="http://www.w3.org/2000/svg" 7252 class="transition-transform transform duration-150 ease-in-out h-6 w-6 " 7253 :class="open ? '' : 'rotate-180'" 7254 > 7255 <path d="M19 9L12 16L5 9" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7256 </svg> 7257 </div> 7258 7259 <div class="filter-options-content text-base" 7260 x-show="open" 7261 > 7262
7262<script> 7263 function initSmileAttibute_6ac3024e27153() { 7264 "use strict"; 7265 7266 return { 7267 options : {"component":"Smile_ElasticsuiteCatalog\/js\/attribute-filter","maxSize":10,"displayProductCount":true,"hasMoreItems":false,"displayRelNofollow":"","ajaxLoadUrl":"https:\/\/www.123drogisterij.nl\/catalog\/navigation_filter\/ajax\/id\/10\/?cat=10&filterName=doelgroep","items":[{"label":"Beide","count":281,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?doelgroep=Beide","is_selected":false},{"label":"Vrouw","count":49,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?doelgroep=Vrouw","is_selected":false},{"label":"Man","count":40,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?doelgroep=Man","is_selected":false}]}, 7268 searchLabel : 'Zoeken (%s)', 7269 showMoreLabel : 'Toon meer', 7270 showLessLabel : 'Toon minder', 7271 noSearchResultLabel : 'Geen waarde die overeenkomt met de zoekopdracht <b>%s</b>.', 7272 expanded: false, 7273 items: [], 7274 lastSelectIndex: 0, 7275 maxSize: 0, 7276 displaySearch: false, 7277 displayedItems: [], 7278 fulltextSearch: null, 7279 searchPlaceholder: '', 7280 result: 0, 7281 7282 /** 7283 * Component initialization 7284 */ 7285 initialize: function () { 7286 7287 this.items = this.options.items.map(this.addItemId.bind(this)); 7288 7289 var lastSelectedIndex = Math.max.apply(null, (this.items.map( 7290 function (v, k) {return v['is_selected'] ? k : 0;})) 7291 ); 7292 this.maxSize = Math.max(this.options.maxSize, lastSelectedIndex + 1); 7293 7294 this.initSearchPlaceholder(); 7295 this.onShowLess(); 7296 this.displaySearch = this.displayShowMore(); 7297 this.displayedItems = this.getDisplayedItems(); 7298 }, 7299 7300 /** 7301 * Init the place holder 7302 */ 7303 initSearchPlaceholder: function () { 7304 var examples = this.items.slice(0, 2).map(function (item) {return item.label}); 7305 7306 if (this.items.length > 2) { 7307 examples.push('...'); 7308 } 7309 7310 // Tip to make html chars interpretable by the browser when the value is get from JS. 7311 let placeholder = document.createElement('div'); 7312 placeholder.innerHTML = this.searchLabel.replace('%s', examples.join(', ')); 7313 7314 this.searchPlaceholder = placeholder.textContent; 7315 }, 7316 7317 /** 7318 * Triggered when typing on the search input 7319 */ 7320 onSearchChange: function (event) { 7321 var text = event.target.value; 7322 if (text.trim() === "") { 7323 this.fulltextSearch = null; 7324 this.onShowLess(); 7325 } else { 7326 this.fulltextSearch = text; 7327 this.onShowMore(); 7328 } 7329 7330 return true; 7331 }, 7332 7333 /** 7334 * Triggered when leaving the search field. 7335 */ 7336 onSearchFocusOut: function(event) { 7337 var text = event.target.value; 7338 if (text.trim() === "") { 7339 this.fulltextSearch = null; 7340 } 7341 }, 7342 7343 /** 7344 * Retrieve additional Results 7345 * 7346 * @param callback 7347 */ 7348 loadAdditionalItems: function (callback) { 7349 fetch(this.options.ajaxLoadUrl, { 7350 method: 'GET', 7351 headers: { 7352 'X-Requested-With': 'XMLHttpRequest', 7353 }, 7354 }) 7355 .then((response) => response.json()) 7356 .then((data) => { 7357 this.items = data.map(this.addItemId.bind(this)); 7358 this.options.hasMoreItems = false; 7359 7360 if (callback) { 7361 return callback(); 7362 } 7363 } 7364 ); 7365 }, 7366 7367 /** 7368 * Retrieve items to display 7369 * 7370 * @returns {*} 7371 */ 7372 getDisplayedItems: function () { 7373 var items = this.items; 7374 7375 if (this.expanded === false) { 7376 items = this.items.slice(0, this.maxSize); 7377 } 7378 7379 if (this.getFulltextSearch()) { 7380 var searchTokens = this.slugify(this.getFulltextSearch()).split('-'); 7381 var lastSearchToken = searchTokens.splice(-1, 1)[0]; 7382 7383 items = items.filter(function(item) { 7384 var isValidItem = true; 7385 var itemTokens = this.slugify(item.label).split('-'); 7386 searchTokens.forEach(function(currentToken) { 7387 if (itemTokens.indexOf(currentToken) === -1) { 7388 isValidItem = false;
7389 } 7390 }) 7391 if (isValidItem && lastSearchToken) { 7392 var ngrams = itemTokens.map(function(token) {return token.substring(0, lastSearchToken.length)}); 7393 isValidItem = ngrams.indexOf(lastSearchToken) !== -1; 7394 } 7395 return isValidItem; 7396 }.bind(this)) 7397 } 7398 this.result = items.length; 7399 return items; 7400 }, 7401 7402 /** 7403 * Does the search have a result 7404 */ 7405 hasSearchResult: function () { 7406 return this.getDisplayedItems().length > 0 7407 }, 7408 7409 /** 7410 * Search result message 7411 */ 7412 getSearchResultMessage : function() { 7413 return this.noSearchResultLabel.replace("%s", '"' + this.getFulltextSearch() + '"') 7414 }, 7415 7416 getFulltextSearch : function() { 7417 return this.fulltextSearch; 7418 }, 7419 7420 /** 7421 * Callback for the "Show more" button 7422 */ 7423 onShowMore: function () { 7424 if (this.options.hasMoreItems) { 7425 this.loadAdditionalItems(this.onShowMore.bind(this)); 7426 } else { 7427 this.expanded = true; 7428 } 7429 7430 this.displayedItems = this.getDisplayedItems(); 7431 }, 7432 7433 /** 7434 * Index the text to be searched. 7435 */ 7436 slugify: function(text) { 7437 return text.toString().toLowerCase() 7438 .replace(/\s+/g, '-') // Replace spaces with - 7439 .replace(/[^\w\u0400-\u052F\u2DE0-\u2DFF\uA640-\uA69F'\-]+/g, '') // Remove all non-word chars 7440 .replace(/\-\-+/g, '-') // Replace multiple - with single - 7441 .replace(/^-+/, '') // Trim - from start of text 7442 }, 7443 7444 /** 7445 * Callback for the "Show less" button 7446 */ 7447 onShowLess: function () { 7448 this.expanded = false; 7449 this.displayedItems = this.getDisplayedItems(); 7450 }, 7451 7452 /** 7453 * Check if the filter can be expanded 7454 * 7455 * @returns {boolean} 7456 */ 7457 enableExpansion : function () { 7458 return this.options.hasMoreItems || this.items.length > this.maxSize; 7459 }, 7460 7461 /** 7462 * Displays the "Show More" link 7463 * 7464 * @returns {*|boolean} 7465 */ 7466 displayShowMore: function () { 7467 return this.enableExpansion() && this.expanded === false && !this.getFulltextSearch(); 7468 }, 7469 7470 /** 7471 * Displays the "Show Less" link 7472 * 7473 * @returns {*|boolean} 7474 */ 7475 displayShowLess: function () { 7476 return this.enableExpansion() && this.expanded === true && !this.getFulltextSearch(); 7477 }, 7478 7479 /** 7480 * Add an id to items. 7481 */ 7482 addItemId: function (item) { 7483 item.id = Math.floor(Math.random() * 1000000) + "_option_"; 7484 item.displayProductCount = this.options.displayProductCount && (item.count >= 1); 7485 7486 return item; 7487 }, 7488 }; 7489 }; 7490</script>
7490 7491 <div class="doelgroepFilter lg:px-4" 7492 x-data="initSmileAttibute_6ac3024e27153()" 7493 x-init="initialize(); sortedItems = getDisplayedItems().sort((a, b) => b.label - a.label);"> 7494 <ol class="items"> 7495 <!-- Use the sorted array --> 7496 <template x-for="attribute in sortedItems" hidden> 7497 <li class="item pb-4 !mb-0"> 7498 <a :href="attribute.url" class="flex items-center" x-show="attribute.count >= 1" :rel="options.displayRelNofollow"> 7499 <input type="checkbox" 7500 :id="attribute.id" 7501 :checked="attribute.is_selected" 7502 onclick="this.parentNode.click();" 7503 /> 7504 <label :for="attribute.id" class="flex items-baseline w-full ml-2 mb-0 cursor-pointer"> 7505 <span x-html="attribute.label" class="text-base"></span> 7506 <div class="text-base"> 7507 (<span class="count" x-text="attribute.count"></span>) 7508 </div> 7509 </label> 7510 </a> 7511 <div x-show="attribute.count < 1"> 7512 <span class="text-base" x-html="attribute.label"></span> 7513 <span class="count" x-text="attribute.count"></span> 7514 </div> 7515 </li> 7516 </template> 7517 </ol> 7518 7519 <div class="no-results-message" x-model="result" x-show="getFulltextSearch() && !hasSearchResult()" class="empty"> 7520 <p x-html="getSearchResultMessage()"></p> 7521 </div> 7522 7523 <div class="actions" x-show="enableExpansion()"> 7524 <div class="secondary"> 7525 <a class="flex gap-1 mb-4 items-center action show-more font-semibold cursor-pointer hover:underline" 7526 x-on:click="onShowMore()" x-show="displayShowMore()" 7527 > 7528 <span x-text="showMoreLabel"></span> 7529 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 7530 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 7531<title/></svg> 7532 </a> 7533 <a class="flex gap-1 mb-4 items-center action show-less font-semibold cursor-pointer hover:underline" 7534 x-on:click="onShowLess()" x-show="displayShowLess()" 7535 > 7536 <span x-text="showLessLabel"></span> 7537 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 7538 <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5"/> 7539<title/></svg> 7540 </a> 7541 </div> 7542 </div> 7543 </div> 7544 </div> 7545 </div> 7546 <div class="filter-option" 7547 x-data="{ open: true }" 7548 role="group" 7549 aria-labelledby="filter-option-3-title" 7550 > 7551 <div class="filter-options-title flex justify-between items-center py-3 lg:py-4 cursor-pointer"> 7552 <span class="flex items-center gap-2 font-bold text-base lg:text-lg"> 7553 <span @click="open = !open" >Merk</span> 7554 </span> 7555 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 7556 @click="open = !open" 7557 xmlns="http://www.w3.org/2000/svg" 7558 class="transition-transform transform duration-150 ease-in-out h-6 w-6 " 7559 :class="open ? '' : 'rotate-180'" 7560 > 7561 <path d="M19 9L12 16L5 9" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7562 </svg> 7563 </div> 7564 7565 <div class="filter-options-content text-base" 7566 x-show="open" 7567 > 7568
7568<script> 7569 function initSmileAttibute_6ac3024e27817() { 7570 "use strict"; 7571 7572 return { 7573 options : {"component":"Smile_ElasticsuiteCatalog\/js\/attribute-filter","maxSize":10,"displayProductCount":true,"hasMoreItems":true,"displayRelNofollow":"","ajaxLoadUrl":"https:\/\/www.123drogisterij.nl\/catalog\/navigation_filter\/ajax\/id\/10\/?cat=10&filterName=manufacturer","items":[{"label":"TENA","count":119,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=TENA","is_selected":false},{"label":"Abena","count":53,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Abena","is_selected":false},{"label":"Attends","count":49,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Attends","is_selected":false},{"label":"Seni","count":49,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Seni","is_selected":false},{"label":"Absorin","count":34,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Absorin","is_selected":false},{"label":"Depend","count":31,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Depend","is_selected":false},{"label":"Egosan","count":21,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Egosan","is_selected":false},{"label":"Careland","count":11,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Careland","is_selected":false},{"label":"Hartmann","count":7,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=Hartmann","is_selected":false},{"label":"BetterDry","count":4,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?manufacturer=BetterDry","is_selected":false}]}, 7574 searchLabel : 'Zoeken (%s)', 7575 showMoreLabel : 'Toon meer', 7576 showLessLabel : 'Toon minder', 7577 noSearchResultLabel : 'Geen waarde die overeenkomt met de zoekopdracht <b>%s</b>.', 7578 expanded: false, 7579 items: [], 7580 lastSelectIndex: 0, 7581 maxSize: 0, 7582 displaySearch: false, 7583 displayedItems: [], 7584 fulltextSearch: null, 7585 searchPlaceholder: '', 7586 result: 0, 7587 7588 /** 7589 * Component initialization 7590 */ 7591 initialize: function () { 7592 7593 this.items = this.options.items.map(this.addItemId.bind(this)); 7594 7595 var lastSelectedIndex = Math.max.apply(null, (this.items.map( 7596 function (v, k) {return v['is_selected'] ? k : 0;})) 7597 ); 7598 this.maxSize = Math.max(this.options.maxSize, lastSelectedIndex + 1); 7599 7600 this.initSearchPlaceholder(); 7601 this.onShowLess(); 7602 this.displaySearch = this.displayShowMore(); 7603 this.displayedItems = this.getDisplayedItems(); 7604 }, 7605 7606 /** 7607 * Init the place holder 7608 */ 7609 initSearchPlaceholder: function () { 7610 var examples = this.items.slice(0, 2).map(function (item) {return item.label}); 7611 7612 if (this.items.length > 2) { 7613 examples.push('...'); 7614 } 7615 7616 // Tip to make html chars interpretable by the browser when the value is get from JS. 7617 let placeholder = document.createElement('div'); 7618 placeholder.innerHTML = this.searchLabel.replace('%s', examples.join(', ')); 7619 7620 this.searchPlaceholder = placeholder.textContent; 7621 }, 7622 7623 /** 7624 * Triggered when typing on the search input 7625 */ 7626 onSearchChange: function (event) { 7627 var text = event.target.value; 7628 if (text.trim() === "") { 7629 this.fulltextSearch = null; 7630 this.onShowLess(); 7631 } else { 7632 this.fulltextSearch = text; 7633 this.onShowMore(); 7634 } 7635 7636 return true; 7637 }, 7638 7639 /**
7640 * Triggered when leaving the search field. 7641 */ 7642 onSearchFocusOut: function(event) { 7643 var text = event.target.value; 7644 if (text.trim() === "") { 7645 this.fulltextSearch = null; 7646 } 7647 }, 7648 7649 /** 7650 * Retrieve additional Results 7651 * 7652 * @param callback 7653 */ 7654 loadAdditionalItems: function (callback) { 7655 fetch(this.options.ajaxLoadUrl, { 7656 method: 'GET', 7657 headers: { 7658 'X-Requested-With': 'XMLHttpRequest', 7659 }, 7660 }) 7661 .then((response) => response.json()) 7662 .then((data) => { 7663 this.items = data.map(this.addItemId.bind(this)); 7664 this.options.hasMoreItems = false; 7665 7666 if (callback) { 7667 return callback(); 7668 } 7669 } 7670 ); 7671 }, 7672 7673 /** 7674 * Retrieve items to display 7675 * 7676 * @returns {*} 7677 */ 7678 getDisplayedItems: function () { 7679 var items = this.items; 7680 7681 if (this.expanded === false) { 7682 items = this.items.slice(0, this.maxSize); 7683 } 7684 7685 if (this.getFulltextSearch()) { 7686 var searchTokens = this.slugify(this.getFulltextSearch()).split('-'); 7687 var lastSearchToken = searchTokens.splice(-1, 1)[0]; 7688 7689 items = items.filter(function(item) { 7690 var isValidItem = true; 7691 var itemTokens = this.slugify(item.label).split('-'); 7692 searchTokens.forEach(function(currentToken) { 7693 if (itemTokens.indexOf(currentToken) === -1) { 7694 isValidItem = false; 7695 } 7696 }) 7697 if (isValidItem && lastSearchToken) { 7698 var ngrams = itemTokens.map(function(token) {return token.substring(0, lastSearchToken.length)}); 7699 isValidItem = ngrams.indexOf(lastSearchToken) !== -1; 7700 } 7701 return isValidItem; 7702 }.bind(this)) 7703 } 7704 this.result = items.length; 7705 return items; 7706 }, 7707 7708 /** 7709 * Does the search have a result 7710 */ 7711 hasSearchResult: function () { 7712 return this.getDisplayedItems().length > 0 7713 }, 7714 7715 /** 7716 * Search result message 7717 */ 7718 getSearchResultMessage : function() { 7719 return this.noSearchResultLabel.replace("%s", '"' + this.getFulltextSearch() + '"') 7720 }, 7721 7722 getFulltextSearch : function() { 7723 return this.fulltextSearch; 7724 }, 7725 7726 /** 7727 * Callback for the "Show more" button 7728 */ 7729 onShowMore: function () { 7730 if (this.options.hasMoreItems) { 7731 this.loadAdditionalItems(this.onShowMore.bind(this)); 7732 } else { 7733 this.expanded = true; 7734 } 7735 7736 this.displayedItems = this.getDisplayedItems(); 7737 }, 7738 7739 /** 7740 * Index the text to be searched. 7741 */ 7742 slugify: function(text) { 7743 return text.toString().toLowerCase() 7744 .replace(/\s+/g, '-') // Replace spaces with - 7745 .replace(/[^\w\u0400-\u052F\u2DE0-\u2DFF\uA640-\uA69F'\-]+/g, '') // Remove all non-word chars 7746 .replace(/\-\-+/g, '-') // Replace multiple - with single - 7747 .replace(/^-+/, '') // Trim - from start of text 7748 }, 7749 7750 /** 7751 * Callback for the "Show less" button 7752 */ 7753 onShowLess: function () { 7754 this.expanded = false;
7755 this.displayedItems = this.getDisplayedItems(); 7756 }, 7757 7758 /** 7759 * Check if the filter can be expanded 7760 * 7761 * @returns {boolean} 7762 */ 7763 enableExpansion : function () { 7764 return this.options.hasMoreItems || this.items.length > this.maxSize; 7765 }, 7766 7767 /** 7768 * Displays the "Show More" link 7769 * 7770 * @returns {*|boolean} 7771 */ 7772 displayShowMore: function () { 7773 return this.enableExpansion() && this.expanded === false && !this.getFulltextSearch(); 7774 }, 7775 7776 /** 7777 * Displays the "Show Less" link 7778 * 7779 * @returns {*|boolean} 7780 */ 7781 displayShowLess: function () { 7782 return this.enableExpansion() && this.expanded === true && !this.getFulltextSearch(); 7783 }, 7784 7785 /** 7786 * Add an id to items. 7787 */ 7788 addItemId: function (item) { 7789 item.id = Math.floor(Math.random() * 1000000) + "_option_"; 7790 item.displayProductCount = this.options.displayProductCount && (item.count >= 1); 7791 7792 return item; 7793 }, 7794 }; 7795 }; 7796</script>
7796 7797 <div class="manufacturerFilter lg:px-4" 7798 x-data="initSmileAttibute_6ac3024e27817()" 7799 x-init="initialize(); sortedItems = getDisplayedItems().sort((a, b) => b.label - a.label);"> 7800 <ol class="items"> 7801 <!-- Use the sorted array --> 7802 <template x-for="attribute in sortedItems" hidden> 7803 <li class="item pb-4 !mb-0"> 7804 <a :href="attribute.url" class="flex items-center" x-show="attribute.count >= 1" :rel="options.displayRelNofollow"> 7805 <input type="checkbox" 7806 :id="attribute.id" 7807 :checked="attribute.is_selected" 7808 onclick="this.parentNode.click();" 7809 /> 7810 <label :for="attribute.id" class="flex items-baseline w-full ml-2 mb-0 cursor-pointer"> 7811 <span x-html="attribute.label" class="text-base"></span> 7812 <div class="text-base"> 7813 (<span class="count" x-text="attribute.count"></span>) 7814 </div> 7815 </label> 7816 </a> 7817 <div x-show="attribute.count < 1"> 7818 <span class="text-base" x-html="attribute.label"></span> 7819 <span class="count" x-text="attribute.count"></span> 7820 </div> 7821 </li> 7822 </template> 7823 </ol> 7824 7825 <div class="no-results-message" x-model="result" x-show="getFulltextSearch() && !hasSearchResult()" class="empty"> 7826 <p x-html="getSearchResultMessage()"></p> 7827 </div> 7828 7829 <div class="actions" x-show="enableExpansion()"> 7830 <div class="secondary"> 7831 <a class="flex gap-1 mb-4 items-center action show-more font-semibold cursor-pointer hover:underline" 7832 x-on:click="onShowMore()" x-show="displayShowMore()" 7833 > 7834 <span x-text="showMoreLabel"></span> 7835 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 7836 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 7837<title/></svg> 7838 </a> 7839 <a class="flex gap-1 mb-4 items-center action show-less font-semibold cursor-pointer hover:underline" 7840 x-on:click="onShowLess()" x-show="displayShowLess()" 7841 > 7842 <span x-text="showLessLabel"></span> 7843 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 7844 <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5"/> 7845<title/></svg> 7846 </a> 7847 </div> 7848 </div> 7849 </div> 7850 </div> 7851 </div> 7852 <div class="filter-option" 7853 x-data="{ open: true }" 7854 role="group" 7855 aria-labelledby="filter-option-4-title" 7856 > 7857 <div class="filter-options-title flex justify-between items-center py-3 lg:py-4 cursor-pointer"> 7858 <span class="flex items-center gap-2 font-bold text-base lg:text-lg"> 7859 <span @click="open = !open" >Type product</span> 7860 </span> 7861 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 7862 @click="open = !open" 7863 xmlns="http://www.w3.org/2000/svg" 7864 class="transition-transform transform duration-150 ease-in-out h-6 w-6 " 7865 :class="open ? '' : 'rotate-180'" 7866 > 7867 <path d="M19 9L12 16L5 9" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 7868 </svg> 7869 </div> 7870 7871 <div class="filter-options-content text-base" 7872 x-show="open" 7873 > 7874
7874<script> 7875 function initSmileAttibute_6ac3024e27f30() { 7876 "use strict"; 7877 7878 return { 7879 options : {"component":"Smile_ElasticsuiteCatalog\/js\/attribute-filter","maxSize":10,"displayProductCount":true,"hasMoreItems":false,"displayRelNofollow":"","ajaxLoadUrl":"https:\/\/www.123drogisterij.nl\/catalog\/navigation_filter\/ajax\/id\/10\/?cat=10&filterName=soort","items":[{"label":"Broekje","count":119,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Broekje","is_selected":false},{"label":"Inlegger","count":108,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Inlegger","is_selected":false},{"label":"Slip","count":73,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Slip","is_selected":false},{"label":"Onderlegger","count":32,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Onderlegger","is_selected":false},{"label":"Verzorging","count":29,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Verzorging","is_selected":false},{"label":"Fixatie","count":10,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Fixatie","is_selected":false},{"label":"Flex","count":10,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Flex","is_selected":false},{"label":"Matrasbeschermer","count":4,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal?soort=Matrasbeschermer","is_selected":false}]}, 7880 searchLabel : 'Zoeken (%s)', 7881 showMoreLabel : 'Toon meer', 7882 showLessLabel : 'Toon minder', 7883 noSearchResultLabel : 'Geen waarde die overeenkomt met de zoekopdracht <b>%s</b>.', 7884 expanded: false, 7885 items: [], 7886 lastSelectIndex: 0, 7887 maxSize: 0, 7888 displaySearch: false, 7889 displayedItems: [], 7890 fulltextSearch: null, 7891 searchPlaceholder: '', 7892 result: 0, 7893 7894 /** 7895 * Component initialization 7896 */ 7897 initialize: function () { 7898 7899 this.items = this.options.items.map(this.addItemId.bind(this)); 7900 7901 var lastSelectedIndex = Math.max.apply(null, (this.items.map( 7902 function (v, k) {return v['is_selected'] ? k : 0;})) 7903 ); 7904 this.maxSize = Math.max(this.options.maxSize, lastSelectedIndex + 1); 7905 7906 this.initSearchPlaceholder(); 7907 this.onShowLess(); 7908 this.displaySearch = this.displayShowMore(); 7909 this.displayedItems = this.getDisplayedItems(); 7910 }, 7911 7912 /** 7913 * Init the place holder 7914 */ 7915 initSearchPlaceholder: function () { 7916 var examples = this.items.slice(0, 2).map(function (item) {return item.label}); 7917 7918 if (this.items.length > 2) { 7919 examples.push('...'); 7920 } 7921 7922 // Tip to make html chars interpretable by the browser when the value is get from JS. 7923 let placeholder = document.createElement('div'); 7924 placeholder.innerHTML = this.searchLabel.replace('%s', examples.join(', ')); 7925 7926 this.searchPlaceholder = placeholder.textContent; 7927 }, 7928 7929 /** 7930 * Triggered when typing on the search input 7931 */ 7932 onSearchChange: function (event) { 7933 var text = event.target.value; 7934 if (text.trim() === "") { 7935 this.fulltextSearch = null; 7936 this.onShowLess(); 7937 } else { 7938 this.fulltextSearch = text; 7939 this.onShowMore(); 7940 } 7941 7942 return true; 7943 }, 7944 7945 /** 7946 * Triggered when leaving the search field. 7947 */ 7948 onSearchFocusOut: function(event) { 7949 var text = event.target.value; 7950 if (text.trim() === "") { 7951 this.fulltextSearch = null; 7952 } 7953 }, 7954 7955 /** 7956 * Retrieve additional Results 7957 * 7958 * @param callback 7959 */ 7960 loadAdditionalItems: function (callback) { 7961 fetch(this.options.ajaxLoadUrl, { 7962 method: 'GET', 7963 headers: { 7964 'X-Requested-With': 'XMLHttpRequest', 7965 }, 7966 }) 7967 .then((response) => response.json()) 7968 .then((data) => { 7969 this.items = data.map(this.addItemId.bind(this)); 7970 this.options.hasMoreItems = false;
7971 7972 if (callback) { 7973 return callback(); 7974 } 7975 } 7976 ); 7977 }, 7978 7979 /** 7980 * Retrieve items to display 7981 * 7982 * @returns {*} 7983 */ 7984 getDisplayedItems: function () { 7985 var items = this.items; 7986 7987 if (this.expanded === false) { 7988 items = this.items.slice(0, this.maxSize); 7989 } 7990 7991 if (this.getFulltextSearch()) { 7992 var searchTokens = this.slugify(this.getFulltextSearch()).split('-'); 7993 var lastSearchToken = searchTokens.splice(-1, 1)[0]; 7994 7995 items = items.filter(function(item) { 7996 var isValidItem = true; 7997 var itemTokens = this.slugify(item.label).split('-'); 7998 searchTokens.forEach(function(currentToken) { 7999 if (itemTokens.indexOf(currentToken) === -1) { 8000 isValidItem = false; 8001 } 8002 }) 8003 if (isValidItem && lastSearchToken) { 8004 var ngrams = itemTokens.map(function(token) {return token.substring(0, lastSearchToken.length)}); 8005 isValidItem = ngrams.indexOf(lastSearchToken) !== -1; 8006 } 8007 return isValidItem; 8008 }.bind(this)) 8009 } 8010 this.result = items.length; 8011 return items; 8012 }, 8013 8014 /** 8015 * Does the search have a result 8016 */ 8017 hasSearchResult: function () { 8018 return this.getDisplayedItems().length > 0 8019 }, 8020 8021 /** 8022 * Search result message 8023 */ 8024 getSearchResultMessage : function() { 8025 return this.noSearchResultLabel.replace("%s", '"' + this.getFulltextSearch() + '"') 8026 }, 8027 8028 getFulltextSearch : function() { 8029 return this.fulltextSearch; 8030 }, 8031 8032 /** 8033 * Callback for the "Show more" button 8034 */ 8035 onShowMore: function () { 8036 if (this.options.hasMoreItems) { 8037 this.loadAdditionalItems(this.onShowMore.bind(this)); 8038 } else { 8039 this.expanded = true; 8040 } 8041 8042 this.displayedItems = this.getDisplayedItems(); 8043 }, 8044 8045 /** 8046 * Index the text to be searched. 8047 */ 8048 slugify: function(text) { 8049 return text.toString().toLowerCase() 8050 .replace(/\s+/g, '-') // Replace spaces with - 8051 .replace(/[^\w\u0400-\u052F\u2DE0-\u2DFF\uA640-\uA69F'\-]+/g, '') // Remove all non-word chars 8052 .replace(/\-\-+/g, '-') // Replace multiple - with single - 8053 .replace(/^-+/, '') // Trim - from start of text 8054 }, 8055 8056 /** 8057 * Callback for the "Show less" button 8058 */ 8059 onShowLess: function () { 8060 this.expanded = false; 8061 this.displayedItems = this.getDisplayedItems(); 8062 }, 8063 8064 /** 8065 * Check if the filter can be expanded 8066 * 8067 * @returns {boolean} 8068 */ 8069 enableExpansion : function () { 8070 return this.options.hasMoreItems || this.items.length > this.maxSize; 8071 }, 8072 8073 /** 8074 * Displays the "Show More" link 8075 * 8076 * @returns {*|boolean} 8077 */ 8078 displayShowMore: function () { 8079 return this.enableExpansion() && this.expanded === false && !this.getFulltextSearch(); 8080 }, 8081 8082 /**
8083 * Displays the "Show Less" link 8084 * 8085 * @returns {*|boolean} 8086 */ 8087 displayShowLess: function () { 8088 return this.enableExpansion() && this.expanded === true && !this.getFulltextSearch(); 8089 }, 8090 8091 /** 8092 * Add an id to items. 8093 */ 8094 addItemId: function (item) { 8095 item.id = Math.floor(Math.random() * 1000000) + "_option_"; 8096 item.displayProductCount = this.options.displayProductCount && (item.count >= 1); 8097 8098 return item; 8099 }, 8100 }; 8101 }; 8102</script>
8102 8103 <div class="soortFilter lg:px-4" 8104 x-data="initSmileAttibute_6ac3024e27f30()" 8105 x-init="initialize(); sortedItems = getDisplayedItems().sort((a, b) => b.label - a.label);"> 8106 <ol class="items"> 8107 <!-- Use the sorted array --> 8108 <template x-for="attribute in sortedItems" hidden> 8109 <li class="item pb-4 !mb-0"> 8110 <a :href="attribute.url" class="flex items-center" x-show="attribute.count >= 1" :rel="options.displayRelNofollow"> 8111 <input type="checkbox" 8112 :id="attribute.id" 8113 :checked="attribute.is_selected" 8114 onclick="this.parentNode.click();" 8115 /> 8116 <label :for="attribute.id" class="flex items-baseline w-full ml-2 mb-0 cursor-pointer"> 8117 <span x-html="attribute.label" class="text-base"></span> 8118 <div class="text-base"> 8119 (<span class="count" x-text="attribute.count"></span>) 8120 </div> 8121 </label> 8122 </a> 8123 <div x-show="attribute.count < 1"> 8124 <span class="text-base" x-html="attribute.label"></span> 8125 <span class="count" x-text="attribute.count"></span> 8126 </div> 8127 </li> 8128 </template> 8129 </ol> 8130 8131 <div class="no-results-message" x-model="result" x-show="getFulltextSearch() && !hasSearchResult()" class="empty"> 8132 <p x-html="getSearchResultMessage()"></p> 8133 </div> 8134 8135 <div class="actions" x-show="enableExpansion()"> 8136 <div class="secondary"> 8137 <a class="flex gap-1 mb-4 items-center action show-more font-semibold cursor-pointer hover:underline" 8138 x-on:click="onShowMore()" x-show="displayShowMore()" 8139 > 8140 <span x-text="showMoreLabel"></span> 8141 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 8142 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 8143<title/></svg> 8144 </a> 8145 <a class="flex gap-1 mb-4 items-center action show-less font-semibold cursor-pointer hover:underline" 8146 x-on:click="onShowLess()" x-show="displayShowLess()" 8147 > 8148 <span x-text="showLessLabel"></span> 8149 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 8150 <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5"/> 8151<title/></svg> 8152 </a> 8153 </div> 8154 </div> 8155 </div> 8156 </div> 8157 </div> 8158 </div> 8159 </div> 8160 </div> 8161 8162
8162<script> 8163 function initLayeredNavigation() { 8164 return { 8165 isMobile: false, 8166 blockOpen: false, 8167 checkIsMobileResolution: function () { 8168 this.isMobile = window.innerWidth < 768 8169 } 8170 } 8171 } 8172 8173 window.onscroll = function(){ 8174 if(document.querySelector('.pagination')?.getBoundingClientRect().top <= 800){ 8175 document.querySelector('#filter-button').classList.add('hidden'); 8176 } else { 8177 document.querySelector('#filter-button').classList.remove('hidden'); 8178 } 8179 } 8180 </script>
8180 8181 </aside><div class="column main"><div class="flex flex-row text-white bg-green-600 relative mt-8 mb-8 rounded-xl"> 8182 <div class="w-[140px]"> 8183 <div class="absolute bottom-0 left-0"> 8184 <picture class="object-cover h-[180px]"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/image.webp"><img src="https://www.123drogisterij.nl/media/wysiwyg/image.png" alt="Keuzehulp mederwerker" width="140" height="180" class="object-cover h-[180px]" loading="lazy" /></picture> 8185 </div> 8186 </div> 8187 8188 <div class="flex flex-col w-2/3 p-4 pr-8 justify-between md:w-full md:p-7 md:px-8 md:gap-4 lg:flex-row lg:items-center"> 8189 <div class="flex flex-col"> 8190 <strong class="mb-0.5 uppercase md:mb-2 lg:text-xl"> 8191 Twijfelt u welk product u nodig hebt? </strong> 8192 8193 <span class="mb-2 md:m-0"> 8194 Ontdek snel wat het best past bij uw situatie! </span> 8195 </div> 8196 8197 <button 8198 data-advisor-id="728236a7-44df-4820-ae80-59590615ecc3" 8199 type="button" 8200 class="btn btn-primary" 8201 > 8202 Start de keuzehulp </button> 8203 </div> 8204</div> 8205 8206 <section id="product-list" aria-label="Product list" tabindex="-1"> 8207
8207<script> 8208 function initToolbar_6ac3024e3005a() { 8209 return { 8210 options: {"productListToolbarForm":{"mode":"product_list_mode","direction":"product_list_dir","order":"product_list_order","limit":"product_list_limit","modeDefault":"list","directionDefault":"asc","orderDefault":"position","limitDefault":20,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal","formKey":"f0jqOmkURacY2mRh","post":false,"page":"p"}}.productListToolbarForm || {}, 8211 getUrlParams: function () { 8212 let decode = window.decodeURIComponent, 8213 urlPaths = this.options.url.split('?'), 8214 urlParams = urlPaths[1] ? urlPaths[1].split('&') : [], 8215 params = {}, 8216 parameters, i; 8217 8218 for (i = 0; i < urlParams.length; i++) { 8219 parameters = urlParams[i].split('='); 8220 params[decode(parameters[0])] = parameters[1] !== undefined ? 8221 decode(parameters[1].replace(/\+/g, '%20')) : 8222 ''; 8223 } 8224 8225 return params; 8226 }, 8227 getCurrentLimit: function () { 8228 return this.getUrlParams()[this.options.limit] || this.options.limitDefault; 8229 }, 8230 getCurrentPage: function () { 8231 return this.getUrlParams()[this.options.page] || 1; 8232 }, 8233 changeUrl(paramName, paramValue, defaultValue) { 8234 let urlPaths = this.options.url.split('?'), 8235 baseUrl = urlPaths[0], 8236 paramData = this.getUrlParams(), 8237 currentPage = this.getCurrentPage(), 8238 newPage; 8239 8240 /** 8241 * calculates the page on which the first item of the current page will 8242 * be with the new limit and sets that number as the new page 8243 */ 8244 if (currentPage > 1 && paramName === this.options.limit) { 8245 newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1; 8246 8247 if (newPage > 1) { 8248 paramData[this.options.page] = newPage; 8249 } else { 8250 delete paramData[this.options.page]; 8251 } 8252 } 8253 8254 paramData[paramName] = paramValue; 8255 8256 if (this.options.post) { 8257 hyva.postForm({action: baseUrl, data: paramData, skipUenc: true}); 8258 } else { 8259 if (paramValue === defaultValue.toString()) { 8260 delete paramData[paramName]; 8261 } 8262 paramData = Object.keys(paramData).length === 0 8263 ? '' 8264 : '?' + (new URLSearchParams(paramData)); 8265 location.href = baseUrl + paramData 8266 } 8267 } 8268 } 8269 } 8270</script>
8270 8271 <div x-data="initToolbar_6ac3024e3005a()" 8272 class="mfgtm-list-product-812a54a0dd1e26c0be6063458afc223a44f74ed0c99d56cdbdf56f7f44deaf73318787083 toolbar toolbar-products grid grid-cols-2 mb-6 grid-flow-row gap-2 items-center"> 8273 <p class="toolbar-amount order-1 gap-x-1" id="toolbar-amount"> 8274 <span class="hidden md:inline-block">Artikelen</span> <span class="toolbar-number">1</span>-<span class="toolbar-number">20</span> van <span class="toolbar-number">399</span> </p> 8275 <div class="toolbar-sorter sorter flex items-center order-2 justify-end"> 8276 <label class="flex items-center mr-2"> 8277 <span class="hidden md:block"> 8278 Sorteer op </span> 8279 <select data-role="sorter" 8280 class="form-select sorter-options ml-1 py-2 text-md" 8281 aria-label="Sorteer op" 8282 @change="changeUrl( 8283 'product_list_order', 8284 $event.currentTarget.options[$event.currentTarget.selectedIndex].value, 8285 options.orderDefault 8286 )"> 8287 <option value="position" 8288 selected="selected" 8289 > 8290 Positie </option> 8291 <option value="name" 8292 > 8293 Productnaam </option> 8294 <option value="price" 8295 > 8296 Prijs </option> 8297 </select> 8298 </label> 8299 <a title="Van hoog naar laag sorteren" 8300 href="#" 8301 class="action sorter-action sort-asc" 8302 @click.prevent="changeUrl('product_list_dir', 'desc', options.directionDefault)" 8303 > 8304 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 8305 <path stroke-linecap="round" stroke-linejoin="round" d="M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"/> 8306</svg> 8307 </a> 8308 </div> 8309 </div> 8310 <div class="products wrapper mode-list products-list"> 8311 <ul 8312 role="list" 8313 class="mx-auto grid grid-cols-1 " 8314 > 8315 <li> 8316
8316<script> 8317 function initQtyFromTier2035() { 8318 return { 8319 qty: 1, 8320 updateQty(event) { 8321 this.qty = event.detail; 8322 } 8323 } 8324 } 8325</script>
8325 8326 8327<form method="post" 8328 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/2035/" 8329 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 8330 x-data="initQtyFromTier2035()" 8331 @update-qty-2035="updateQty(event)" 8332 8333 > 8334 <input name="form_key" type="hidden" value="5N533bX3SDn7eXbd" /> <input type="hidden" name="product" value="2035"/> 8335 <input type="hidden" 8336 name="qty" 8337 id="qty[2035]" 8338 :value="qty" 8339 x-model.number="qty" 8340 /> 8341 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 8342 <a href="https://www.123drogisterij.nl/swimmm-zwemluiers-voor-volwassenen" 8343 title="Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen" 8344 class="product photo product-item-photo block w-1/3 lg:w-1/4" 8345 tabindex="-1" 8346 > 8347 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/s/w/swimmm_diposable_swim_pants.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-2035.window="$root.src = $event.detail" loading="eager" fetchpriority="high" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/s/w/swimmm_diposable_swim_pants.png" width="187" height="234" alt="Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen" title="Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen" /></picture> 8348 </a> 8349 8350 <div class="w-2/3 lg:mx-8"> 8351 <strong> 8352 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 8353 href="https://www.123drogisterij.nl/swimmm-zwemluiers-voor-volwassenen" 8354 :id="`slide-desc-2035-${$id('slider-id')}`" 8355 > 8356 Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen </a> 8357 </strong> 8358 8359 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 8360 <span class="block text-gray-500 mb-1"> 8361 Artikelnummer: ZL-81800 </span> 8362 8363 <span class="block text-gray-500 mb-1 lg:text-md"> 8364 Verpakking: </span> 8365 </div> 8366 8367 8368 <div class="lg:hidden"> 8369 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 8370 " 8371 title="Beschikbaarheid" 8372 > 8373 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 8374 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 8375<title>check-circle</title></svg> 8376Op voorraad </p> 8377 </div> 8378 8379 <div class="hidden lg:block" 8380 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 8381 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
8382 content = trimToSentence(originalContent, maxLength); 8383 isVisible = false"; 8384 > 8385 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 8386 Swimmm is een hoogwaardige wegwerp zwemluier voor volwassenen en jongeren. Beschermt bij ontlastingsverlies, niet bij verlies van urine. </div> 8387 8388 <div class="prose md:prose-base text-md" x-show="isVisible"> 8389 Swimmm is een hoogwaardige wegwerp zwemluier voor volwassenen en jongeren. Beschermt bij ontlastingsverlies, niet bij verlies van urine. </div> 8390 8391 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 8392 @click="isCollapsed = !isCollapsed" 8393 x-show="originalContent.length > maxLength ? true : false" 8394 type="button" 8395 > 8396 <span x-text="isCollapsed ? 8397 'Lees minder' : 8398 'Lees meer'" 8399 ></span> 8400 </button> 8401 </div> 8402 </div> 8403 </div> 8404 8405 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 8406 <div class="lg:hidden" 8407 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 8408 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
8409 content = trimToSentence(originalContent, maxLength); 8410 isVisible = false"; 8411 > 8412 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 8413 Swimmm is een hoogwaardige wegwerp zwemluier voor volwassenen en jongeren. Beschermt bij ontlastingsverlies, niet bij verlies van urine. </div> 8414 8415 <div class="prose md:prose-base" x-show="isVisible"> 8416 Swimmm is een hoogwaardige wegwerp zwemluier voor volwassenen en jongeren. Beschermt bij ontlastingsverlies, niet bij verlies van urine. </div> 8417 8418 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 8419 @click="isCollapsed = !isCollapsed" 8420 x-show="originalContent.length > maxLength ? true : false" 8421 type="button" 8422 > 8423 <span x-text="isCollapsed ? 8424 'Lees minder' : 8425 'Lees meer'" 8426 ></span> 8427 </button> 8428 </div> 8429 8430 8431 <div class="hidden lg:block lg:text-md"> 8432 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 8433 " 8434 title="Beschikbaarheid" 8435 > 8436 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 8437 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 8438<title>check-circle</title></svg> 8439Op voorraad </p> 8440 </div> 8441 8442 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 8443 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 8444 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 8445 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 8446 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 8447<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 8448 <span> 8449 Tot 22:30 uur besteld = morgen in huis <span 8450 class="absolute group cursor-pointer inline-flex"> 8451 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 8452 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 8453<title/></svg> 8454 <span class="absolute top-full left-1/2 -translate-x-[80%] 8455 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 8456 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 8457 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 8458 </span> 8459 </span> 8460 </div> 8461 8462 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 8463 <div class="pt-1 text-gray-900" 8464 x-data="initPriceBox()" 8465 x-defer="intersect" 8466 @update-prices-2035.window="updatePrice($event.detail);" 8467 > 8468 <div class="price-box price-final_price" data-role="priceBox" data-product-id="2035" data-price-box="product-id-2035"> <span class="normal-price"> 8469<span
8470 x-data x-id="['product\u002Dprice\u002D2035']" class="price-container price-final_price tax weee" 8471 > 8472 <span :id="$id('product\u002Dprice\u002D2035')" data-price-amount="29.99" 8473 data-price-type="finalPrice" 8474 class="price-wrapper " 8475 ><span class="price">â¬Â 29,99</span></span> 8476 </span> 8477</span> 8478 8479 8480</div> </div> 8481 8482 <button class="btn btn-primary gap-2 lg:w-full" type="submit"> 8483 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 8484 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 8485<title>In Winkelmand</title></svg> 8486 In Winkelmand </button> 8487 </div> 8488 8489 <div class="flex items-center gap-1 lg:hidden"> 8490 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 8491 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 8492 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 8493 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 8494<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 8495 <span> 8496 Tot 22:30 uur besteld = morgen in huis <span 8497 class="absolute group cursor-pointer inline-flex items-center justify-center"> 8498 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 8499 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 8500<title/></svg> 8501 <span class="absolute top-full left-1/2 -translate-x-[80%] 8502 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 8503 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 8504 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 8505 </span> 8506 </span> 8507 </div> 8508 </div> 8509</form> 8510 </li> 8511 <li> 8512
8512<script> 8513 function initQtyFromTier1804() { 8514 return { 8515 qty: 1, 8516 updateQty(event) { 8517 this.qty = event.detail; 8518 } 8519 } 8520 } 8521</script>
8521 8522 8523<form method="post" 8524 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1804/" 8525 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 8526 x-data="initQtyFromTier1804()" 8527 @update-qty-1804="updateQty(event)" 8528 8529 > 8530 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="1804"/> 8531 <input type="hidden" 8532 name="qty" 8533 id="qty[1804]" 8534 :value="qty" 8535 x-model.number="qty" 8536 /> 8537 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 8538 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm" 8539 title="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." 8540 class="product photo product-item-photo block w-1/3 lg:w-1/4" 8541 tabindex="-1" 8542 > 8543 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/f/o/fotofluvius-careland-1920px-20240704-004.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1804.window="$root.src = $event.detail" loading="eager" fetchpriority="high" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/f/o/fotofluvius-careland-1920px-20240704-004.jpg" width="187" height="234" alt="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." title="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." /></picture> 8544 </a> 8545 8546 <div class="w-2/3 lg:mx-8"> 8547 <strong> 8548 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 8549 href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm" 8550 :id="`slide-desc-1804-${$id('slider-id')}`" 8551 > 8552 Wasbare matrasbeschermer met instopstroken - 85 x 90 cm. </a> 8553 </strong> 8554 8555 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 8556 <span class="block text-gray-500 mb-1"> 8557 Artikelnummer: WO-68187 </span> 8558 8559 <span class="block text-gray-500 mb-1 lg:text-md"> 8560 Verpakking: 1 stuks </span> 8561 </div> 8562 8563 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 8564 Absorptievermogen: 8565 <div class="flex gap-2"> 8566 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8567 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8568 </svg> 8569 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8570 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8571 </svg> 8572 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8573 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8574 </svg> 8575 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8576 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
8576697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8577 </svg> 8578 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8579 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8580 </svg> 8581 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8582 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8583 </svg> 8584 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8585 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8586 </svg> 8587 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8588 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8589 </svg> 8590 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8591 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8592 </svg> 8593 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8594 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8595 </svg> 8596 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 8597 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 8598 </svg> 8599 </div> 8600 </span> 8601 8602 <div class="lg:hidden"> 8603 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 8604 " 8605 title="Beschikbaarheid" 8606 > 8607 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 8608 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 8609<title>check-circle</title></svg> 8610Op voorraad </p> 8611 </div> 8612 8613 <div class="hidden lg:block" 8614 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 8615 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
8616 content = trimToSentence(originalContent, maxLength); 8617 isVisible = false"; 8618 > 8619 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 8620 Deze matrasbeschermer met instopstroken blijft perfect op zân plek. Ideaal voor onrustige slapers, kinderen of zorggebruik. Topcomfort en maximale matrasbescherming in één slimme oplossing. </div> 8621 8622 <div class="prose md:prose-base text-md" x-show="isVisible"> 8623 Deze matrasbeschermer met instopstroken blijft perfect op zân plek. Ideaal voor onrustige slapers, kinderen of zorggebruik. Topcomfort en maximale matrasbescherming in één slim </div> 8624 8625 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 8626 @click="isCollapsed = !isCollapsed" 8627 x-show="originalContent.length > maxLength ? true : false" 8628 type="button" 8629 > 8630 <span x-text="isCollapsed ? 8631 'Lees minder' : 8632 'Lees meer'" 8633 ></span> 8634 </button> 8635 </div> 8636 </div> 8637 </div> 8638 8639 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 8640 <div class="lg:hidden" 8641 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 8642 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
8643 content = trimToSentence(originalContent, maxLength); 8644 isVisible = false"; 8645 > 8646 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 8647 Deze matrasbeschermer met instopstroken blijft perfect op zân plek. Ideaal voor onrustige slapers, kinderen of zorggebruik. Topcomfort en maximale matrasbescherming in één slimme oplossing. </div> 8648 8649 <div class="prose md:prose-base" x-show="isVisible"> 8650 Deze matrasbeschermer met instopstroken blijft perfect op zân plek. Ideaal voor onrustige slapers, kinderen of zorggebruik. Topcomfort en maximale matrasbescherming in één slimme oplossi </div> 8651 8652 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 8653 @click="isCollapsed = !isCollapsed" 8654 x-show="originalContent.length > maxLength ? true : false" 8655 type="button" 8656 > 8657 <span x-text="isCollapsed ? 8658 'Lees minder' : 8659 'Lees meer'" 8660 ></span> 8661 </button> 8662 </div> 8663 8664 8665 <div class="hidden lg:block lg:text-md"> 8666 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 8667 " 8668 title="Beschikbaarheid" 8669 > 8670 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 8671 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 8672<title>check-circle</title></svg> 8673Op voorraad </p> 8674 </div> 8675 8676 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 8677 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 8678 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 8679 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 8680 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 8681<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 8682 <span> 8683 Tot 22:30 uur besteld = morgen in huis <span 8684 class="absolute group cursor-pointer inline-flex"> 8685 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 8686 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 8687<title/></svg> 8688 <span class="absolute top-full left-1/2 -translate-x-[80%] 8689 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 8690 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 8691 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 8692 </span> 8693 </span> 8694 </div> 8695 8696 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 8697 <div class="pt-1 text-gray-900" 8698 x-data="initPriceBox()" 8699 x-defer="intersect" 8700 @update-prices-1804.window="updatePrice($event.detail);" 8701 > 8702 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1804" data-price-box="product-id-1804"> 8703 8704 <span
8705 x-data x-id="['product\u002Dprice\u002D1804']" class="price-container price-final_price tax weee" 8706 > 8707 <span :id="$id('product\u002Dprice\u002D1804')" data-price-amount="11.49" 8708 data-price-type="finalPrice" 8709 class="price-wrapper " 8710 ><span class="price">â¬Â 11,49</span></span> 8711 </span> 8712 8713 <span class="minimal-price-link"> 8714 <span 8715 x-data x-id="['1804']" class="price-container price-final_price tax weee" 8716 > 8717 <span class="price-label">Vanaf</span> 8718 <span :id="$id('1804')" data-price-amount="9.5" 8719 data-price-type="" 8720 class="price-wrapper " 8721 >â¬Â 9,50</span> 8722 </span> 8723 </span> 8724</div> </div> 8725 8726 <div x-data="hyva.modal()" class="lg:w-full"> 8727 <div x-cloak data-dialog-ref-name="dialog" 8728 x-bind="overlay" 8729 class="fixed inset-0 bg-black/50 z-50"> 8730 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 8731 <div x-ref="dialog" role="dialog" aria-modal="true" 8732 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 8733 8734<button @click="hide" type="button"> 8735 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 8736 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 8737<title>Sluiten</title></svg> 8738</button> 8739 8740<h2 class="text-primary-500 text-center mb-4"> 8741 Extra besparen?</h2> 8742 8743<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 8744 <div class="flex gap-2 mb-4"> 8745 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm" 8746 title="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." 8747 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 8748 tabindex="-1" 8749 > 8750 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/f/o/fotofluvius-careland-1920px-20240704-004.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1804.window="$root.src = $event.detail" loading="eager" fetchpriority="high" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/f/o/fotofluvius-careland-1920px-20240704-004.jpg" width="261" height="261" alt="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." title="Wasbare matrasbeschermer met instopstroken - 85 x 90 cm." /></picture> 8751 </a> 8752 8753 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 8754 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm"> 8755 <strong class="text-xl"> 8756 Wasbare matrasbeschermer met instopstroken - 85 x 90 cm. </strong> 8757 </a> 8758 8759
8759<script> 8760 function initPrice1804() { 8761 8762 const regularPriceInclTaxKey = 'oldPrice', 8763 regularPriceExclTaxKey = 'baseOldPrice', 8764 finalPriceInclTaxKey = 'finalPrice', 8765 finalPriceExclTaxKey = 'basePrice'; 8766 8767 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 8768 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 8769 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 8770 if (customOptionPrice) { 8771 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 8772 } 8773 return priceAccumulator; 8774 }, 0); 8775 } 8776 8777 return { 8778 regularPriceKey: regularPriceInclTaxKey, 8779 finalPriceKey: finalPriceInclTaxKey, 8780 activeProductsPriceData: false, 8781 initialFinalPrice: 11.49, 8782 calculatedFinalPrice: false, 8783 calculatedFinalPriceWithCustomOptions: false, 8784 initialTierPrices: [{"price_id":"3656","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":3,"percentage_value":null,"product_id":"1804","website_price":10.5,"price_incl_tax":10.5,"price_excl_tax":9.6330265229358},{"price_id":"3672","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1804","website_price":9.5,"price_incl_tax":9.5,"price_excl_tax":8.7155953302752}], 8785 showRegularPriceLabel: false, 8786 customOptionPrices: [], 8787 activeCustomOptions: [], 8788 qty: 1, 8789 updateCustomOptionActive(data) { 8790 let activeCustomOptions = this.activeCustomOptions; 8791 const customOptionId = data.customOptionId; 8792 8793 if (data.active) { 8794 if (!activeCustomOptions.includes(customOptionId)) { 8795 activeCustomOptions.push(data.customOptionId); 8796 } 8797 } else { 8798 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 8799 let index = activeCustomOptions.indexOf(customOptionId); 8800 activeCustomOptions.splice(index, 1); 8801 } 8802 } 8803 this.calculateFinalPriceWithCustomOptions() 8804 }, 8805 updateCustomOptionPrices(prices, basePrices) { 8806 if (prices) { 8807 this.customOptionPrices = prices; 8808 } 8809 8810 8811 this.calculateFinalPriceWithCustomOptions(); 8812 }, 8813 calculateFinalPrice() { 8814 8815 const getOptionTierPrice = (tierPrice, withTax) => { 8816 return tierPrice[withTax ? 'price' : 'basePrice']; 8817 } 8818 8819 const findApplicableTierPrice = (initialPrice, withTax) => { 8820 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 8821 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 8822 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 8823 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 8824 return tierPriceCandidate; 8825 } 8826 return acc; 8827 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 8828 8829 } else { 8830 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 8831 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 8832 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 8833 return tierPrice[key]; 8834 } 8835 return acc; 8836 }, initialPrice); 8837 8838 } 8839 } 8840 8841 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 8842 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 8843 8844 },
8845 calculatePriceLabelVisibility() { 8846 this.showRegularPriceLabel = 8847 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 8848 this.activeProductsPriceData.isMinimalPrice; 8849 }, 8850 calculateFinalPriceWithCustomOptions() { 8851 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 8852 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 8853 }, 8854 getCustomOptionPrice() { 8855 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 8856 }, 8857 getFormattedFinalPrice() { 8858 return hyva.formatPrice( 8859 this.calculatedFinalPriceWithCustomOptions || 8860 this.calculatedFinalPrice || 8861 this.initialFinalPrice 8862 ) 8863 }, 8864 isPriceHidden() { 8865 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 8866 this.calculatedFinalPrice || 8867 this.initialFinalPrice; 8868 return false && finalPrice === 0; 8869 }, 8870 eventListeners: { 8871 ['@update-prices-1804.window'](event) { 8872 this.activeProductsPriceData = event.detail; 8873 8874 this.calculateFinalPrice(); 8875 this.calculateFinalPriceWithCustomOptions(); 8876 this.calculatePriceLabelVisibility(); 8877 }, 8878 ['@update-qty-1804.window'](event) { 8879 this.qty = event.detail; 8880 this.calculateFinalPrice(); 8881 this.calculateFinalPriceWithCustomOptions(); 8882 }, 8883 ['@update-custom-option-active.window'](event) { 8884 this.updateCustomOptionActive(event.detail); 8885 }, 8886 ['@update-custom-option-prices.window'](event) { 8887 this.updateCustomOptionPrices(event.detail); 8888 }, 8889 } 8890 } 8891 } 8892</script>
8892 8893<div x-data="initPrice1804()" 8894 x-bind="eventListeners" 8895 class="price-box price-final_price" 8896> 8897 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 8898 <div class="price-container"> 8899 8900 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 8901 <span id="product-price-1804" 8902 class="price-wrapper font-bold text-3xl text-secondary-800"> 8903 <span class="price" x-html="getFormattedFinalPrice()"> 8904 <span class="price">â¬Â 11,49</span> </span> 8905 </span> 8906 <meta itemprop="price" content="11.49"> 8907 <meta itemprop="priceCurrency" 8908 content="EUR"> 8909 </div> 8910 </div> 8911 </div> 8912 <template x-if="activeProductsPriceData && 8913 activeProductsPriceData.oldPrice && 8914 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 8915 "> 8916 <div class="old-price flex mr-2"> 8917 <span id="product-price-1804" 8918 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 8919 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 8920 </span> 8921 </div> 8922 </template> 8923 <template x-if="activeProductsPriceData"> 8924 <div class="final-price inline-block"> 8925 <span id="product-price-1804" 8926 class="price-wrapper font-bold text-3xl text-secondary-800"> 8927 <span class="price" x-html="getFormattedFinalPrice()"></span> 8928 </span> 8929 </div> 8930 </template> 8931 </div> 8932 </div> 8933 </div> 8934 8935 <div class="tier-price-popup lg:w-1/2"> 8936 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm"> 8937 <strong class="text-2xl"> 8938 Wasbare matrasbeschermer met instopstroken - 85 x 90 cm. </strong> 8939 </a> 8940 8941
8941<script> 8942 function initTierPrice1804() { 8943 return { 8944 qty: 1, 8945 minSalesQty: 1, 8946 isStandardSelected() { 8947 return this.qty < 3; 8948 }, 8949 eventListeners: { 8950 ['@update-qty-1804.window'](event) { 8951 if (this.qty !== event.detail) { 8952 this.qty = event.detail; 8953 } 8954 } 8955 } 8956 } 8957 } 8958 </script>
8958 8959 <div class="prices-tier items mb-4" 8960 x-data="initTierPrice1804()" 8961 x-bind="eventListeners" 8962 > 8963 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 8964 :class="{'active-tier-price1804 border-green-600 shadow-hard': 8965 qty >= 3 && qty < 5}" 8966 @click="$dispatch('update-qty-1804', 3);" 8967 data-qty="3" 8968 > 8969 8970 <div class="flex flex-row items-center"> 8971 <div class="flex flex-col flex-grow"> 8972 <div class="flex flex-row items-center justify-between"> 8973 <div class="flex items-center space-x-2"> 8974 <div class="price-container font-bold text-lg"> 8975 <span 8976 class="price-container price-tier_price tax weee" 8977 > 8978 <span data-price-amount="10.5" 8979 data-price-type="" 8980 class="price-wrapper " 8981 ><span class="price">â¬Â 10,50</span></span> 8982 </span> 8983 </div> 8984 <span class="ml-2 text-base"> 8985 per stuk </span> 8986 </div> 8987 <span> 8988 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 9</span>%</strong> </span> 8989 </div> 8990 8991 <div class="mt-1"> 8992 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 8993 <span>3 verpakkingen</span> </span> 8994 </div> 8995 </div> 8996 </div> 8997 </div> 8998 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 8999 :class="{'active-tier-price1804 border-green-600 shadow-hard': 9000 qty >= 5 && qty < 10000}" 9001 @click="$dispatch('update-qty-1804', 5);" 9002 data-qty="5" 9003 > 9004 9005 <div class="flex flex-row items-center"> 9006 <div class="flex flex-col flex-grow"> 9007 <div class="flex flex-row items-center justify-between"> 9008 <div class="flex items-center space-x-2"> 9009 <div class="price-container font-bold text-lg"> 9010 <span 9011 x-data x-id="['1']" class="price-container price-tier_price tax weee" 9012 > 9013 <span :id="$id('1')" data-price-amount="9.5" 9014 data-price-type="" 9015 class="price-wrapper " 9016 ><span class="price">â¬Â 9,50</span></span> 9017 </span> 9018 </div> 9019 <span class="ml-2 text-base"> 9020 per stuk </span> 9021 </div> 9022 <span 9023 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 9024 <strong>Voordeligste keuze</strong> 9025 </span> 9026 <span> 9027 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 17</span>%</strong> </span> 9028 </div> 9029 9030 <div class="mt-1">
9031 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 9032 <span>5 verpakkingen</span> </span> 9033 </div> 9034 </div> 9035 </div> 9036 <div class="choice-mobile mt-4 xl:hidden"> 9037 <hr class="p-2"> 9038 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 9039 <strong>Voordeligste keuze</strong> 9040 </span> 9041 </div> 9042 </div> 9043 9044 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 9045 :class="{'active-tier-price1804 border-green-600 shadow-hard': isStandardSelected() }" 9046 @click="$dispatch('update-qty-1804', minSalesQty);" 9047 > 9048 <div class="flex flex-row items-center"> 9049 <div class="flex flex-col flex-grow"> 9050 <div class="flex flex-row items-center"> 9051 <div class="flex items-center space-x-2"> 9052 <div class="price-container font-bold text-lg"> 9053 <span class="price">â¬Â 11,49</span> </div> 9054 <span class="ml-2 text-base"> 9055 per stuk </span> 9056 </div> 9057 <strong class="ml-auto text-gray-500"> 9058 Standaard </strong> 9059 </div> 9060 9061 <div class="mt-1"> 9062 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 9063 <span>1 verpakking</span> </span> 9064 </div> 9065 </div> 9066 </div> 9067 </div> 9068 9069 <div class="relative mt-2 block border border-primary-300 p-4 md:max-w-[65%] xl:max-w-[70%] before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 9070 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 9071 x-show="isStandardSelected() && true" 9072 x-cloak> 9073 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 9074 <div class="ml-6 text-sm opacity-90"> 9075 <strong>Let op:</strong> 9076 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 9077 <div class="ml-6 text-sm leading-snug opacity-60"> 9078 Kies een andere optie voor extra voordeel! </div> 9079 </div> 9080 </div> 9081 9082 <div class="hidden lg:block"> 9083
9083<script> 9084 function initPrice1804() { 9085 9086 const regularPriceInclTaxKey = 'oldPrice', 9087 regularPriceExclTaxKey = 'baseOldPrice', 9088 finalPriceInclTaxKey = 'finalPrice', 9089 finalPriceExclTaxKey = 'basePrice'; 9090 9091 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 9092 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 9093 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 9094 if (customOptionPrice) { 9095 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 9096 } 9097 return priceAccumulator; 9098 }, 0); 9099 } 9100 9101 return { 9102 regularPriceKey: regularPriceInclTaxKey, 9103 finalPriceKey: finalPriceInclTaxKey, 9104 activeProductsPriceData: false, 9105 initialFinalPrice: 11.49, 9106 calculatedFinalPrice: false, 9107 calculatedFinalPriceWithCustomOptions: false, 9108 initialTierPrices: [{"price_id":"3656","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":3,"percentage_value":null,"product_id":"1804","website_price":10.5,"price_incl_tax":10.5,"price_excl_tax":9.6330265229358},{"price_id":"3672","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1804","website_price":9.5,"price_incl_tax":9.5,"price_excl_tax":8.7155953302752}], 9109 showRegularPriceLabel: false, 9110 customOptionPrices: [], 9111 activeCustomOptions: [], 9112 qty: 1, 9113 updateCustomOptionActive(data) { 9114 let activeCustomOptions = this.activeCustomOptions; 9115 const customOptionId = data.customOptionId; 9116 9117 if (data.active) { 9118 if (!activeCustomOptions.includes(customOptionId)) { 9119 activeCustomOptions.push(data.customOptionId); 9120 } 9121 } else { 9122 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 9123 let index = activeCustomOptions.indexOf(customOptionId); 9124 activeCustomOptions.splice(index, 1); 9125 } 9126 } 9127 this.calculateFinalPriceWithCustomOptions() 9128 }, 9129 updateCustomOptionPrices(prices, basePrices) { 9130 if (prices) { 9131 this.customOptionPrices = prices; 9132 } 9133 9134 9135 this.calculateFinalPriceWithCustomOptions(); 9136 }, 9137 calculateFinalPrice() { 9138 9139 const getOptionTierPrice = (tierPrice, withTax) => { 9140 return tierPrice[withTax ? 'price' : 'basePrice']; 9141 } 9142 9143 const findApplicableTierPrice = (initialPrice, withTax) => { 9144 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 9145 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 9146 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 9147 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 9148 return tierPriceCandidate; 9149 } 9150 return acc; 9151 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 9152 9153 } else { 9154 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 9155 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 9156 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 9157 return tierPrice[key]; 9158 } 9159 return acc; 9160 }, initialPrice); 9161 9162 } 9163 } 9164 9165 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 9166 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 9167 9168 },
9169 calculatePriceLabelVisibility() { 9170 this.showRegularPriceLabel = 9171 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 9172 this.activeProductsPriceData.isMinimalPrice; 9173 }, 9174 calculateFinalPriceWithCustomOptions() { 9175 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 9176 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 9177 }, 9178 getCustomOptionPrice() { 9179 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 9180 }, 9181 getFormattedFinalPrice() { 9182 return hyva.formatPrice( 9183 this.calculatedFinalPriceWithCustomOptions || 9184 this.calculatedFinalPrice || 9185 this.initialFinalPrice 9186 ) 9187 }, 9188 isPriceHidden() { 9189 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 9190 this.calculatedFinalPrice || 9191 this.initialFinalPrice; 9192 return false && finalPrice === 0; 9193 }, 9194 eventListeners: { 9195 ['@update-prices-1804.window'](event) { 9196 this.activeProductsPriceData = event.detail; 9197 9198 this.calculateFinalPrice(); 9199 this.calculateFinalPriceWithCustomOptions(); 9200 this.calculatePriceLabelVisibility(); 9201 }, 9202 ['@update-qty-1804.window'](event) { 9203 this.qty = event.detail; 9204 this.calculateFinalPrice(); 9205 this.calculateFinalPriceWithCustomOptions(); 9206 }, 9207 ['@update-custom-option-active.window'](event) { 9208 this.updateCustomOptionActive(event.detail); 9209 }, 9210 ['@update-custom-option-prices.window'](event) { 9211 this.updateCustomOptionPrices(event.detail); 9212 }, 9213 } 9214 } 9215 } 9216</script>
9216 9217<div x-data="initPrice1804()" 9218 x-bind="eventListeners" 9219 class="price-box price-final_price" 9220> 9221 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 9222 <div class="price-container"> 9223 9224 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 9225 <span id="product-price-1804" 9226 class="price-wrapper font-bold text-3xl text-secondary-800"> 9227 <span class="price" x-html="getFormattedFinalPrice()"> 9228 <span class="price">â¬Â 11,49</span> </span> 9229 </span> 9230 <meta itemprop="price" content="11.49"> 9231 <meta itemprop="priceCurrency" 9232 content="EUR"> 9233 </div> 9234 </div> 9235 </div> 9236 <template x-if="activeProductsPriceData && 9237 activeProductsPriceData.oldPrice && 9238 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 9239 "> 9240 <div class="old-price flex mr-2"> 9241 <span id="product-price-1804" 9242 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 9243 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 9244 </span> 9245 </div> 9246 </template> 9247 <template x-if="activeProductsPriceData"> 9248 <div class="final-price inline-block"> 9249 <span id="product-price-1804" 9250 class="price-wrapper font-bold text-3xl text-secondary-800"> 9251 <span class="price" x-html="getFormattedFinalPrice()"></span> 9252 </span> 9253 </div> 9254 </template> 9255 </div> 9256 </div> 9257 </div> 9258</div> 9259 9260<div class="flex flex-col items-center"> 9261 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 9262 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 9263 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 9264<title>In Winkelmand</title></svg> 9265 In Winkelmand </button> 9266 9267 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 9268 Nee, vandaag niet </button> 9269</div> 9270 </div> 9271 </div> 9272 </div> 9273 9274 <button @click="show('dialog', this.$event || $event)" 9275 class="btn btn-primary lg:w-full" 9276 type="button" 9277 aria-haspopup="dialog" 9278 > 9279 Kies uw voordeel </button> 9280 </div> 9281 </div> 9282 9283 <div class="flex items-center gap-1 lg:hidden"> 9284 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 9285 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 9286 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 9287 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 9288<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
9289 <span> 9290 Tot 22:30 uur besteld = morgen in huis <span 9291 class="absolute group cursor-pointer inline-flex items-center justify-center"> 9292 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 9293 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 9294<title/></svg> 9295 <span class="absolute top-full left-1/2 -translate-x-[80%] 9296 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 9297 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 9298 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 9299 </span> 9300 </span> 9301 </div> 9302 </div> 9303</form> 9304 </li> 9305 <li> 9306
9306<script> 9307 function initQtyFromTier2031() { 9308 return { 9309 qty: 1, 9310 updateQty(event) { 9311 this.qty = event.detail; 9312 } 9313 } 9314 } 9315</script>
9315 9316 9317<form method="post" 9318 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/2031/" 9319 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 9320 x-data="initQtyFromTier2031()" 9321 @update-qty-2031="updateQty(event)" 9322 9323 > 9324 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="2031"/> 9325 <input type="hidden" 9326 name="qty" 9327 id="qty[2031]" 9328 :value="qty" 9329 x-model.number="qty" 9330 /> 9331 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 9332 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-85-x-90-cm" 9333 title="Wasbare matrasbeschermer - 85 x 90 cm." 9334 class="product photo product-item-photo block w-1/3 lg:w-1/4" 9335 tabindex="-1" 9336 > 9337 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/f/o/fotofluvius-careland-1920px-20240704-003.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-2031.window="$root.src = $event.detail" loading="eager" fetchpriority="high" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/f/o/fotofluvius-careland-1920px-20240704-003.jpg" width="187" height="234" alt="Wasbare matrasbeschermer - 85 x 90 cm." title="Wasbare matrasbeschermer - 85 x 90 cm." /></picture> 9338 </a> 9339 9340 <div class="w-2/3 lg:mx-8"> 9341 <strong> 9342 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 9343 href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-85-x-90-cm" 9344 :id="`slide-desc-2031-${$id('slider-id')}`" 9345 > 9346 Wasbare matrasbeschermer - 85 x 90 cm. </a> 9347 </strong> 9348 9349 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 9350 <span class="block text-gray-500 mb-1"> 9351 Artikelnummer: WO-68189 </span> 9352 9353 <span class="block text-gray-500 mb-1 lg:text-md"> 9354 Verpakking: 1 stuks </span> 9355 </div> 9356 9357 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 9358 Absorptievermogen: 9359 <div class="flex gap-2"> 9360 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9361 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9362 </svg> 9363 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9364 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9365 </svg> 9366 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9367 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9368 </svg> 9369 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9370 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
9370697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9371 </svg> 9372 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9373 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9374 </svg> 9375 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9376 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9377 </svg> 9378 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9379 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9380 </svg> 9381 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9382 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9383 </svg> 9384 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9385 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9386 </svg> 9387 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9388 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9389 </svg> 9390 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 9391 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 9392 </svg> 9393 </div> 9394 </span> 9395 9396 <div class="lg:hidden"> 9397 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 9398 " 9399 title="Beschikbaarheid" 9400 > 9401 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 9402 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 9403<title>check-circle</title></svg> 9404Op voorraad </p> 9405 </div> 9406 9407 <div class="hidden lg:block" 9408 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 9409 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
9410 content = trimToSentence(originalContent, maxLength); 9411 isVisible = false"; 9412 > 9413 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 9414 Nooit meer een nat matras! Deze wasbare matrasbeschermer (85 x 90 cm) is dé oplossing voor nachtelijke ongelukjes, zweet of incontinentie. Comfortabel, superabsorberend en herbruikbaar â bescherm je matras én slaap met een gerust hart. </div> 9415 9416 <div class="prose md:prose-base text-md" x-show="isVisible"> 9417 Nooit meer een nat matras! Deze wasbare matrasbeschermer (85 x 90 cm) is dé oplossing voor nachtelijke ongelukjes, zweet of incontinentie. Comfortabel, superabsorberend en herbrui </div> 9418 9419 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 9420 @click="isCollapsed = !isCollapsed" 9421 x-show="originalContent.length > maxLength ? true : false" 9422 type="button" 9423 > 9424 <span x-text="isCollapsed ? 9425 'Lees minder' : 9426 'Lees meer'" 9427 ></span> 9428 </button> 9429 </div> 9430 </div> 9431 </div> 9432 9433 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 9434 <div class="lg:hidden" 9435 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 9436 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
9437 content = trimToSentence(originalContent, maxLength); 9438 isVisible = false"; 9439 > 9440 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 9441 Nooit meer een nat matras! Deze wasbare matrasbeschermer (85 x 90 cm) is dé oplossing voor nachtelijke ongelukjes, zweet of incontinentie. Comfortabel, superabsorberend en herbruikbaar â bescherm je matras én slaap met een gerust hart. </div> 9442 9443 <div class="prose md:prose-base" x-show="isVisible"> 9444 Nooit meer een nat matras! Deze wasbare matrasbeschermer (85 x 90 cm) is dé oplossing voor nachtelijke ongelukjes, zweet of incontinentie. Comfortabel, superabsorberend en herbruikbaar â </div> 9445 9446 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 9447 @click="isCollapsed = !isCollapsed" 9448 x-show="originalContent.length > maxLength ? true : false" 9449 type="button" 9450 > 9451 <span x-text="isCollapsed ? 9452 'Lees minder' : 9453 'Lees meer'" 9454 ></span> 9455 </button> 9456 </div> 9457 9458 9459 <div class="hidden lg:block lg:text-md"> 9460 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 9461 " 9462 title="Beschikbaarheid" 9463 > 9464 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 9465 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 9466<title>check-circle</title></svg> 9467Op voorraad </p> 9468 </div> 9469 9470 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 9471 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 9472 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 9473 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 9474 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 9475<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 9476 <span> 9477 Tot 22:30 uur besteld = morgen in huis <span 9478 class="absolute group cursor-pointer inline-flex"> 9479 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 9480 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 9481<title/></svg> 9482 <span class="absolute top-full left-1/2 -translate-x-[80%] 9483 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 9484 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 9485 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 9486 </span> 9487 </span> 9488 </div> 9489 9490 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 9491 <div class="pt-1 text-gray-900" 9492 x-data="initPriceBox()" 9493 x-defer="intersect" 9494 @update-prices-2031.window="updatePrice($event.detail);" 9495 > 9496 <div class="price-box price-final_price" data-role="priceBox" data-product-id="2031" data-price-box="product-id-2031"> 9497 9498 <span
9499 x-data x-id="['product\u002Dprice\u002D2031']" class="price-container price-final_price tax weee" 9500 > 9501 <span :id="$id('product\u002Dprice\u002D2031')" data-price-amount="10.49" 9502 data-price-type="finalPrice" 9503 class="price-wrapper " 9504 ><span class="price">â¬Â 10,49</span></span> 9505 </span> 9506 9507 <span class="minimal-price-link"> 9508 <span 9509 x-data x-id="['2031']" class="price-container price-final_price tax weee" 9510 > 9511 <span class="price-label">Vanaf</span> 9512 <span :id="$id('2031')" data-price-amount="8.5" 9513 data-price-type="" 9514 class="price-wrapper " 9515 >â¬Â 8,50</span> 9516 </span> 9517 </span> 9518</div> </div> 9519 9520 <div x-data="hyva.modal()" class="lg:w-full"> 9521 <div x-cloak data-dialog-ref-name="dialog6ac3024e4d16b" 9522 x-bind="overlay" 9523 class="fixed inset-0 bg-black/50 z-50"> 9524 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 9525 <div x-ref="dialog6ac3024e4d16b" role="dialog" aria-modal="true" 9526 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 9527 9528<button @click="hide" type="button"> 9529 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 9530 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 9531<title>Sluiten</title></svg> 9532</button> 9533 9534<h2 class="text-primary-500 text-center mb-4"> 9535 Extra besparen?</h2> 9536 9537<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 9538 <div class="flex gap-2 mb-4"> 9539 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-85-x-90-cm" 9540 title="Wasbare matrasbeschermer - 85 x 90 cm." 9541 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 9542 tabindex="-1" 9543 > 9544 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/f/o/fotofluvius-careland-1920px-20240704-003.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-2031.window="$root.src = $event.detail" loading="eager" fetchpriority="high" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/f/o/fotofluvius-careland-1920px-20240704-003.jpg" width="261" height="261" alt="Wasbare matrasbeschermer - 85 x 90 cm." title="Wasbare matrasbeschermer - 85 x 90 cm." /></picture> 9545 </a> 9546 9547 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 9548 <a href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-85-x-90-cm"> 9549 <strong class="text-xl"> 9550 Wasbare matrasbeschermer - 85 x 90 cm. </strong> 9551 </a> 9552 9553
9553<script> 9554 function initPrice2031() { 9555 9556 const regularPriceInclTaxKey = 'oldPrice', 9557 regularPriceExclTaxKey = 'baseOldPrice', 9558 finalPriceInclTaxKey = 'finalPrice', 9559 finalPriceExclTaxKey = 'basePrice'; 9560 9561 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 9562 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 9563 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 9564 if (customOptionPrice) { 9565 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 9566 } 9567 return priceAccumulator; 9568 }, 0); 9569 } 9570 9571 return { 9572 regularPriceKey: regularPriceInclTaxKey, 9573 finalPriceKey: finalPriceInclTaxKey, 9574 activeProductsPriceData: false, 9575 initialFinalPrice: 10.49, 9576 calculatedFinalPrice: false, 9577 calculatedFinalPriceWithCustomOptions: false, 9578 initialTierPrices: [{"price_id":"3658","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":3,"percentage_value":null,"product_id":"2031","website_price":9.5,"price_incl_tax":9.5,"price_excl_tax":8.7155953302752},{"price_id":"3670","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"2031","website_price":8.5,"price_incl_tax":8.5,"price_excl_tax":7.7981641376147}], 9579 showRegularPriceLabel: false, 9580 customOptionPrices: [], 9581 activeCustomOptions: [], 9582 qty: 1, 9583 updateCustomOptionActive(data) { 9584 let activeCustomOptions = this.activeCustomOptions; 9585 const customOptionId = data.customOptionId; 9586 9587 if (data.active) { 9588 if (!activeCustomOptions.includes(customOptionId)) { 9589 activeCustomOptions.push(data.customOptionId); 9590 } 9591 } else { 9592 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 9593 let index = activeCustomOptions.indexOf(customOptionId); 9594 activeCustomOptions.splice(index, 1); 9595 } 9596 } 9597 this.calculateFinalPriceWithCustomOptions() 9598 }, 9599 updateCustomOptionPrices(prices, basePrices) { 9600 if (prices) { 9601 this.customOptionPrices = prices; 9602 } 9603 9604 9605 this.calculateFinalPriceWithCustomOptions(); 9606 }, 9607 calculateFinalPrice() { 9608 9609 const getOptionTierPrice = (tierPrice, withTax) => { 9610 return tierPrice[withTax ? 'price' : 'basePrice']; 9611 } 9612 9613 const findApplicableTierPrice = (initialPrice, withTax) => { 9614 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 9615 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 9616 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 9617 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 9618 return tierPriceCandidate; 9619 } 9620 return acc; 9621 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 9622 9623 } else { 9624 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 9625 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 9626 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 9627 return tierPrice[key]; 9628 } 9629 return acc; 9630 }, initialPrice); 9631 9632 } 9633 } 9634 9635 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 9636 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 9637 9638 },
9639 calculatePriceLabelVisibility() { 9640 this.showRegularPriceLabel = 9641 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 9642 this.activeProductsPriceData.isMinimalPrice; 9643 }, 9644 calculateFinalPriceWithCustomOptions() { 9645 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 9646 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 9647 }, 9648 getCustomOptionPrice() { 9649 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 9650 }, 9651 getFormattedFinalPrice() { 9652 return hyva.formatPrice( 9653 this.calculatedFinalPriceWithCustomOptions || 9654 this.calculatedFinalPrice || 9655 this.initialFinalPrice 9656 ) 9657 }, 9658 isPriceHidden() { 9659 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 9660 this.calculatedFinalPrice || 9661 this.initialFinalPrice; 9662 return false && finalPrice === 0; 9663 }, 9664 eventListeners: { 9665 ['@update-prices-2031.window'](event) { 9666 this.activeProductsPriceData = event.detail; 9667 9668 this.calculateFinalPrice(); 9669 this.calculateFinalPriceWithCustomOptions(); 9670 this.calculatePriceLabelVisibility(); 9671 }, 9672 ['@update-qty-2031.window'](event) { 9673 this.qty = event.detail; 9674 this.calculateFinalPrice(); 9675 this.calculateFinalPriceWithCustomOptions(); 9676 }, 9677 ['@update-custom-option-active.window'](event) { 9678 this.updateCustomOptionActive(event.detail); 9679 }, 9680 ['@update-custom-option-prices.window'](event) { 9681 this.updateCustomOptionPrices(event.detail); 9682 }, 9683 } 9684 } 9685 } 9686</script>
9686 9687<div x-data="initPrice2031()" 9688 x-bind="eventListeners" 9689 class="price-box price-final_price" 9690> 9691 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 9692 <div class="price-container"> 9693 9694 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 9695 <span id="product-price-2031" 9696 class="price-wrapper font-bold text-3xl text-secondary-800"> 9697 <span class="price" x-html="getFormattedFinalPrice()"> 9698 <span class="price">â¬Â 10,49</span> </span> 9699 </span> 9700 <meta itemprop="price" content="10.49"> 9701 <meta itemprop="priceCurrency" 9702 content="EUR"> 9703 </div> 9704 </div> 9705 </div> 9706 <template x-if="activeProductsPriceData && 9707 activeProductsPriceData.oldPrice && 9708 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 9709 "> 9710 <div class="old-price flex mr-2"> 9711 <span id="product-price-2031" 9712 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 9713 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 9714 </span> 9715 </div> 9716 </template> 9717 <template x-if="activeProductsPriceData"> 9718 <div class="final-price inline-block"> 9719 <span id="product-price-2031" 9720 class="price-wrapper font-bold text-3xl text-secondary-800"> 9721 <span class="price" x-html="getFormattedFinalPrice()"></span> 9722 </span> 9723 </div> 9724 </template> 9725 </div> 9726 </div> 9727 </div> 9728 9729 <div class="tier-price-popup lg:w-1/2"> 9730 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/wasbare-matrasbeschermer-85-x-90-cm"> 9731 <strong class="text-2xl"> 9732 Wasbare matrasbeschermer - 85 x 90 cm. </strong> 9733 </a> 9734 9735
9735<script> 9736 function initTierPrice2031() { 9737 return { 9738 qty: 1, 9739 minSalesQty: 1, 9740 isStandardSelected() { 9741 return this.qty < 3; 9742 }, 9743 eventListeners: { 9744 ['@update-qty-2031.window'](event) { 9745 if (this.qty !== event.detail) { 9746 this.qty = event.detail; 9747 } 9748 } 9749 } 9750 } 9751 } 9752 </script>
9752 9753 <div class="prices-tier items mb-4" 9754 x-data="initTierPrice2031()" 9755 x-bind="eventListeners" 9756 > 9757 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 9758 :class="{'active-tier-price2031 border-green-600 shadow-hard': 9759 qty >= 3 && qty < 5}" 9760 @click="$dispatch('update-qty-2031', 3);" 9761 data-qty="3" 9762 > 9763 9764 <div class="flex flex-row items-center"> 9765 <div class="flex flex-col flex-grow"> 9766 <div class="flex flex-row items-center justify-between"> 9767 <div class="flex items-center space-x-2"> 9768 <div class="price-container font-bold text-lg"> 9769 <span 9770 class="price-container price-tier_price tax weee" 9771 > 9772 <span data-price-amount="9.5" 9773 data-price-type="" 9774 class="price-wrapper " 9775 ><span class="price">â¬Â 9,50</span></span> 9776 </span> 9777 </div> 9778 <span class="ml-2 text-base"> 9779 per stuk </span> 9780 </div> 9781 <span> 9782 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 9</span>%</strong> </span> 9783 </div> 9784 9785 <div class="mt-1"> 9786 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 9787 <span>3 verpakkingen</span> </span> 9788 </div> 9789 </div> 9790 </div> 9791 </div> 9792 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 9793 :class="{'active-tier-price2031 border-green-600 shadow-hard': 9794 qty >= 5 && qty < 10000}" 9795 @click="$dispatch('update-qty-2031', 5);" 9796 data-qty="5" 9797 > 9798 9799 <div class="flex flex-row items-center"> 9800 <div class="flex flex-col flex-grow"> 9801 <div class="flex flex-row items-center justify-between"> 9802 <div class="flex items-center space-x-2"> 9803 <div class="price-container font-bold text-lg"> 9804 <span 9805 x-data x-id="['1']" class="price-container price-tier_price tax weee" 9806 > 9807 <span :id="$id('1')" data-price-amount="8.5" 9808 data-price-type="" 9809 class="price-wrapper " 9810 ><span class="price">â¬Â 8,50</span></span> 9811 </span> 9812 </div> 9813 <span class="ml-2 text-base"> 9814 per stuk </span> 9815 </div> 9816 <span 9817 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 9818 <strong>Voordeligste keuze</strong> 9819 </span> 9820 <span> 9821 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 19</span>%</strong> </span> 9822 </div> 9823 9824 <div class="mt-1">
9825 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 9826 <span>5 verpakkingen</span> </span> 9827 </div> 9828 </div> 9829 </div> 9830 <div class="choice-mobile mt-4 xl:hidden"> 9831 <hr class="p-2"> 9832 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 9833 <strong>Voordeligste keuze</strong> 9834 </span> 9835 </div> 9836 </div> 9837 9838 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 9839 :class="{'active-tier-price2031 border-green-600 shadow-hard': isStandardSelected() }" 9840 @click="$dispatch('update-qty-2031', minSalesQty);" 9841 > 9842 <div class="flex flex-row items-center"> 9843 <div class="flex flex-col flex-grow"> 9844 <div class="flex flex-row items-center"> 9845 <div class="flex items-center space-x-2"> 9846 <div class="price-container font-bold text-lg"> 9847 <span class="price">â¬Â 10,49</span> </div> 9848 <span class="ml-2 text-base"> 9849 per stuk </span> 9850 </div> 9851 <strong class="ml-auto text-gray-500"> 9852 Standaard </strong> 9853 </div> 9854 9855 <div class="mt-1"> 9856 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 9857 <span>1 verpakking</span> </span> 9858 </div> 9859 </div> 9860 </div> 9861 </div> 9862 9863 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 9864 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 9865 x-show="isStandardSelected() && true" 9866 x-cloak> 9867 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 9868 <div class="ml-6 text-sm opacity-90"> 9869 <strong>Let op:</strong> 9870 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 9871 <div class="ml-6 text-sm leading-snug opacity-60"> 9872 Kies een andere optie voor extra voordeel! </div> 9873 </div> 9874 </div> 9875 9876 <div class="hidden lg:block"> 9877
9877<script> 9878 function initPrice2031() { 9879 9880 const regularPriceInclTaxKey = 'oldPrice', 9881 regularPriceExclTaxKey = 'baseOldPrice', 9882 finalPriceInclTaxKey = 'finalPrice', 9883 finalPriceExclTaxKey = 'basePrice'; 9884 9885 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 9886 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 9887 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 9888 if (customOptionPrice) { 9889 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 9890 } 9891 return priceAccumulator; 9892 }, 0); 9893 } 9894 9895 return { 9896 regularPriceKey: regularPriceInclTaxKey, 9897 finalPriceKey: finalPriceInclTaxKey, 9898 activeProductsPriceData: false, 9899 initialFinalPrice: 10.49, 9900 calculatedFinalPrice: false, 9901 calculatedFinalPriceWithCustomOptions: false, 9902 initialTierPrices: [{"price_id":"3658","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":3,"percentage_value":null,"product_id":"2031","website_price":9.5,"price_incl_tax":9.5,"price_excl_tax":8.7155953302752},{"price_id":"3670","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"2031","website_price":8.5,"price_incl_tax":8.5,"price_excl_tax":7.7981641376147}], 9903 showRegularPriceLabel: false, 9904 customOptionPrices: [], 9905 activeCustomOptions: [], 9906 qty: 1, 9907 updateCustomOptionActive(data) { 9908 let activeCustomOptions = this.activeCustomOptions; 9909 const customOptionId = data.customOptionId; 9910 9911 if (data.active) { 9912 if (!activeCustomOptions.includes(customOptionId)) { 9913 activeCustomOptions.push(data.customOptionId); 9914 } 9915 } else { 9916 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 9917 let index = activeCustomOptions.indexOf(customOptionId); 9918 activeCustomOptions.splice(index, 1); 9919 } 9920 } 9921 this.calculateFinalPriceWithCustomOptions() 9922 }, 9923 updateCustomOptionPrices(prices, basePrices) { 9924 if (prices) { 9925 this.customOptionPrices = prices; 9926 } 9927 9928 9929 this.calculateFinalPriceWithCustomOptions(); 9930 }, 9931 calculateFinalPrice() { 9932 9933 const getOptionTierPrice = (tierPrice, withTax) => { 9934 return tierPrice[withTax ? 'price' : 'basePrice']; 9935 } 9936 9937 const findApplicableTierPrice = (initialPrice, withTax) => { 9938 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 9939 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 9940 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 9941 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 9942 return tierPriceCandidate; 9943 } 9944 return acc; 9945 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 9946 9947 } else { 9948 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 9949 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 9950 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 9951 return tierPrice[key]; 9952 } 9953 return acc; 9954 }, initialPrice); 9955 9956 } 9957 } 9958 9959 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 9960 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 9961 9962 },
9963 calculatePriceLabelVisibility() { 9964 this.showRegularPriceLabel = 9965 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 9966 this.activeProductsPriceData.isMinimalPrice; 9967 }, 9968 calculateFinalPriceWithCustomOptions() { 9969 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 9970 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 9971 }, 9972 getCustomOptionPrice() { 9973 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 9974 }, 9975 getFormattedFinalPrice() { 9976 return hyva.formatPrice( 9977 this.calculatedFinalPriceWithCustomOptions || 9978 this.calculatedFinalPrice || 9979 this.initialFinalPrice 9980 ) 9981 }, 9982 isPriceHidden() { 9983 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 9984 this.calculatedFinalPrice || 9985 this.initialFinalPrice; 9986 return false && finalPrice === 0; 9987 }, 9988 eventListeners: { 9989 ['@update-prices-2031.window'](event) { 9990 this.activeProductsPriceData = event.detail; 9991 9992 this.calculateFinalPrice(); 9993 this.calculateFinalPriceWithCustomOptions(); 9994 this.calculatePriceLabelVisibility(); 9995 }, 9996 ['@update-qty-2031.window'](event) { 9997 this.qty = event.detail; 9998 this.calculateFinalPrice(); 9999 this.calculateFinalPriceWithCustomOptions(); 10000 }, 10001 ['@update-custom-option-active.window'](event) { 10002 this.updateCustomOptionActive(event.detail); 10003 }, 10004 ['@update-custom-option-prices.window'](event) { 10005 this.updateCustomOptionPrices(event.detail); 10006 }, 10007 } 10008 } 10009 } 10010</script>
10010 10011<div x-data="initPrice2031()" 10012 x-bind="eventListeners" 10013 class="price-box price-final_price" 10014> 10015 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 10016 <div class="price-container"> 10017 10018 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 10019 <span id="product-price-2031" 10020 class="price-wrapper font-bold text-3xl text-secondary-800"> 10021 <span class="price" x-html="getFormattedFinalPrice()"> 10022 <span class="price">â¬Â 10,49</span> </span> 10023 </span> 10024 <meta itemprop="price" content="10.49"> 10025 <meta itemprop="priceCurrency" 10026 content="EUR"> 10027 </div> 10028 </div> 10029 </div> 10030 <template x-if="activeProductsPriceData && 10031 activeProductsPriceData.oldPrice && 10032 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 10033 "> 10034 <div class="old-price flex mr-2"> 10035 <span id="product-price-2031" 10036 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 10037 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 10038 </span> 10039 </div> 10040 </template> 10041 <template x-if="activeProductsPriceData"> 10042 <div class="final-price inline-block"> 10043 <span id="product-price-2031" 10044 class="price-wrapper font-bold text-3xl text-secondary-800"> 10045 <span class="price" x-html="getFormattedFinalPrice()"></span> 10046 </span> 10047 </div> 10048 </template> 10049 </div> 10050 </div> 10051 </div> 10052</div> 10053 10054<div class="flex flex-col items-center"> 10055 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 10056 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 10057 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 10058<title>In Winkelmand</title></svg> 10059 In Winkelmand </button> 10060 10061 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 10062 Nee, vandaag niet </button> 10063</div> 10064 </div> 10065 </div> 10066 </div> 10067 10068 <button @click="show('dialog6ac3024e4d16b', this.$event || $event)" 10069 class="btn btn-primary lg:w-full" 10070 type="button" 10071 aria-haspopup="dialog" 10072 > 10073 Kies uw voordeel </button> 10074 </div> 10075 </div> 10076 10077 <div class="flex items-center gap-1 lg:hidden"> 10078 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 10079 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 10080 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 10081 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 10082<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
10083 <span> 10084 Tot 22:30 uur besteld = morgen in huis <span 10085 class="absolute group cursor-pointer inline-flex items-center justify-center"> 10086 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 10087 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 10088<title/></svg> 10089 <span class="absolute top-full left-1/2 -translate-x-[80%] 10090 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 10091 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 10092 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 10093 </span> 10094 </span> 10095 </div> 10096 </div> 10097</form> 10098 </li> 10099 <div class="flex flex-col gap-4 mb-5 bg-tertiary-300 rounded-xl p-4 lg:flex-row xl:gap-16"> 10100 <div class="flex items-center gap-2"> 10101 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-8 w-8 min-h-8 min-w-8 text-primary-500 lg:h-10 lg:w-10 lg:min-h-10 lg:min-w-10" width="32" height="32" role="img"> 10102 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 10103 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 10104 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 10105<title/></svg> 10106 <p><strong class="text-base font-semibold lg:text-lg">Boven 20 euro</strong><br><strong class="text-lg font-semibold lg:text-xl">GRATIS BEZORGD</strong></p> 10107 </div> 10108 <div class="flex items-start gap-2 lg:items-center"> 10109 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-8 w-8 min-h-8 min-w-8 text-primary-500 lg:h-10 lg:w-10 lg:min-h-10 lg:min-w-10" width="32" height="32" role="img"> 10110 <path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zM12.75 6a.75.75 0 00-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 000-1.5h-3.75V6z" clip-rule="evenodd"/> 10111<title/></svg> 10112 <p><strong class="text-base font-semibold lg:text-lg">Morgen in huis?</strong><br><span class="text-md lg:text-base">Op werkdagen vóór 22.30 besteld = Morgen in huis</span></p> 10113 </div> 10114 </div> 10115 <li> 10116
10116<script> 10117 function initQtyFromTier316() { 10118 return { 10119 qty: 1, 10120 updateQty(event) { 10121 this.qty = event.detail; 10122 } 10123 } 10124 } 10125</script>
10125 10126 10127<form method="post" 10128 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/316/" 10129 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 10130 x-data="initQtyFromTier316()" 10131 @update-qty-316="updateQty(event)" 10132 10133 > 10134 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="316"/> 10135 <input type="hidden" 10136 name="qty" 10137 id="qty[316]" 10138 :value="qty" 10139 x-model.number="qty" 10140 /> 10141 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 10142 <a href="https://www.123drogisterij.nl/tena-men-protective-shield-level-0" 10143 title="TENA Men Protective Shield - Level 0" 10144 class="product photo product-item-photo block w-1/3 lg:w-1/4" 10145 tabindex="-1" 10146 > 10147 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_protective_shield_-_level_0_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-316.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_protective_shield_-_level_0_2.jpg" loading="lazy" width="187" height="234" alt="Tena Men Protective Shield - Extra Light level 0 750403" title="Tena Men Protective Shield - Extra Light level 0 750403" loading="lazy" /></picture> 10148 </a> 10149 10150 <div class="w-2/3 lg:mx-8"> 10151 <strong> 10152 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 10153 href="https://www.123drogisterij.nl/tena-men-protective-shield-level-0" 10154 :id="`slide-desc-316-${$id('slider-id')}`" 10155 > 10156 TENA Men Protective Shield - Level 0 </a> 10157 </strong> 10158 10159 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 10160 <span class="block text-gray-500 mb-1"> 10161 Artikelnummer: 750403 </span> 10162 10163 <span class="block text-gray-500 mb-1 lg:text-md"> 10164 Verpakking: 14 stuks </span> 10165 </div> 10166 10167 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 10168 Absorptievermogen: 10169 <div class="flex gap-2"> 10170 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10171 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10172 </svg> 10173 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10174 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10175 </svg> 10176 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10177 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10178 </svg> 10179 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10180 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
10180697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10181 </svg> 10182 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10183 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10184 </svg> 10185 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10186 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10187 </svg> 10188 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10189 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10190 </svg> 10191 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10192 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10193 </svg> 10194 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10195 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10196 </svg> 10197 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10198 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10199 </svg> 10200 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10201 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10202 </svg> 10203 </div> 10204 </span> 10205 10206 <div class="lg:hidden"> 10207 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 10208 " 10209 title="Beschikbaarheid" 10210 > 10211 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 10212 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 10213<title>check-circle</title></svg> 10214Op voorraad </p> 10215 </div> 10216 10217 <div class="hidden lg:block" 10218 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 10219 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
10220 content = trimToSentence(originalContent, maxLength); 10221 isVisible = false"; 10222 > 10223 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 10224 TENA Men Protective Shield - Level 0 is speciaal ontworpen voor mannen en volgt de lijnen van het lichaam. Het biedt de hele dag comfort en zekerheid. Door de handige plakstrip blijft het op de juiste plek in het ondergoed zitten, zodat u zonder zorgen door kunt gaan met uw bezigheden. TENA for Men is zo discreet dat niemand ziet dat u het draagt. De unieke Lock Away Core bevat microabsorbens die de vloeistof absorberen en weghouden van het lichaam. Bovendien is het voorzien van Odour Control dat geurtjes tegengaat. </div> 10225 10226 <div class="prose md:prose-base text-md" x-show="isVisible"> 10227 TENA Men Protective Shield - Level 0 is speciaal ontworpen voor mannen en volgt de lijnen van het lichaam. Het biedt de hele dag comfort en zekerheid. Door de handige plakstrip bli </div> 10228 10229 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 10230 @click="isCollapsed = !isCollapsed" 10231 x-show="originalContent.length > maxLength ? true : false" 10232 type="button" 10233 > 10234 <span x-text="isCollapsed ? 10235 'Lees minder' : 10236 'Lees meer'" 10237 ></span> 10238 </button> 10239 </div> 10240 </div> 10241 </div> 10242 10243 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 10244 <div class="lg:hidden" 10245 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 10246 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
10247 content = trimToSentence(originalContent, maxLength); 10248 isVisible = false"; 10249 > 10250 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 10251 TENA Men Protective Shield - Level 0 is speciaal ontworpen voor mannen en volgt de lijnen van het lichaam. Het biedt de hele dag comfort en zekerheid. Door de handige plakstrip blijft het op de juiste plek in het ondergoed zitten, zodat u zonder zorgen door kunt gaan met uw bezigheden. TENA for Men is zo discreet dat niemand ziet dat u het draagt. De unieke Lock Away Core bevat microabsorbens die de vloeistof absorberen en weghouden van het lichaam. Bovendien is het voorzien van Odour Control dat geurtjes tegengaat. </div> 10252 10253 <div class="prose md:prose-base" x-show="isVisible"> 10254 TENA Men Protective Shield - Level 0 is speciaal ontworpen voor mannen en volgt de lijnen van het lichaam. Het biedt de hele dag comfort en zekerheid. Door de handige plakstrip blijft het op </div> 10255 10256 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 10257 @click="isCollapsed = !isCollapsed" 10258 x-show="originalContent.length > maxLength ? true : false" 10259 type="button" 10260 > 10261 <span x-text="isCollapsed ? 10262 'Lees minder' : 10263 'Lees meer'" 10264 ></span> 10265 </button> 10266 </div> 10267 10268 10269 <div class="hidden lg:block lg:text-md"> 10270 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 10271 " 10272 title="Beschikbaarheid" 10273 > 10274 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 10275 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 10276<title>check-circle</title></svg> 10277Op voorraad </p> 10278 </div> 10279 10280 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 10281 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 10282 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 10283 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 10284 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 10285<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 10286 <span> 10287 Tot 22:30 uur besteld = morgen in huis <span 10288 class="absolute group cursor-pointer inline-flex"> 10289 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 10290 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 10291<title/></svg> 10292 <span class="absolute top-full left-1/2 -translate-x-[80%] 10293 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 10294 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 10295 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 10296 </span> 10297 </span> 10298 </div> 10299 10300 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 10301 <div class="pt-1 text-gray-900" 10302 x-data="initPriceBox()" 10303 x-defer="intersect" 10304 @update-prices-316.window="updatePrice($event.detail);" 10305 > 10306 <div class="price-box price-final_price" data-role="priceBox" data-product-id="316" data-price-box="product-id-316"> 10307 10308 <span
10309 x-data x-id="['product\u002Dprice\u002D316']" class="price-container price-final_price tax weee" 10310 > 10311 <span :id="$id('product\u002Dprice\u002D316')" data-price-amount="5.72" 10312 data-price-type="finalPrice" 10313 class="price-wrapper " 10314 ><span class="price">â¬Â 5,72</span></span> 10315 </span> 10316 10317 <span class="minimal-price-link"> 10318 <span 10319 x-data x-id="['316']" class="price-container price-final_price tax weee" 10320 > 10321 <span class="price-label">Vanaf</span> 10322 <span :id="$id('316')" data-price-amount="4.58" 10323 data-price-type="" 10324 class="price-wrapper " 10325 >â¬Â 4,58</span> 10326 </span> 10327 </span> 10328</div> </div> 10329 10330 <div x-data="hyva.modal()" class="lg:w-full"> 10331 <div x-cloak data-dialog-ref-name="dialog6ac3024e5368a" 10332 x-bind="overlay" 10333 class="fixed inset-0 bg-black/50 z-50"> 10334 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 10335 <div x-ref="dialog6ac3024e5368a" role="dialog" aria-modal="true" 10336 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 10337 10338<button @click="hide" type="button"> 10339 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 10340 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 10341<title>Sluiten</title></svg> 10342</button> 10343 10344<h2 class="text-primary-500 text-center mb-4"> 10345 Extra besparen?</h2> 10346 10347<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 10348 <div class="flex gap-2 mb-4"> 10349 <a href="https://www.123drogisterij.nl/tena-men-protective-shield-level-0" 10350 title="TENA Men Protective Shield - Level 0" 10351 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 10352 tabindex="-1" 10353 > 10354 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_protective_shield_-_level_0_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-316.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_protective_shield_-_level_0_2.jpg" loading="lazy" width="261" height="261" alt="Tena Men Protective Shield - Extra Light level 0 750403" title="Tena Men Protective Shield - Extra Light level 0 750403" loading="lazy" /></picture> 10355 </a> 10356 10357 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 10358 <a href="https://www.123drogisterij.nl/tena-men-protective-shield-level-0"> 10359 <strong class="text-xl"> 10360 TENA Men Protective Shield - Level 0 </strong> 10361 </a> 10362 10363
10363<script> 10364 function initPrice316() { 10365 10366 const regularPriceInclTaxKey = 'oldPrice', 10367 regularPriceExclTaxKey = 'baseOldPrice', 10368 finalPriceInclTaxKey = 'finalPrice', 10369 finalPriceExclTaxKey = 'basePrice'; 10370 10371 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 10372 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 10373 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 10374 if (customOptionPrice) { 10375 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 10376 } 10377 return priceAccumulator; 10378 }, 0); 10379 } 10380 10381 return { 10382 regularPriceKey: regularPriceInclTaxKey, 10383 finalPriceKey: finalPriceInclTaxKey, 10384 activeProductsPriceData: false, 10385 initialFinalPrice: 5.72, 10386 calculatedFinalPrice: false, 10387 calculatedFinalPriceWithCustomOptions: false, 10388 initialTierPrices: [{"price_id":"2076","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"316","website_price":5.09,"price_incl_tax":5.09,"price_excl_tax":4.6697237706422},{"price_id":"2077","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"316","website_price":4.58,"price_incl_tax":4.58,"price_excl_tax":4.2018338623853}], 10389 showRegularPriceLabel: false, 10390 customOptionPrices: [], 10391 activeCustomOptions: [], 10392 qty: 1, 10393 updateCustomOptionActive(data) { 10394 let activeCustomOptions = this.activeCustomOptions; 10395 const customOptionId = data.customOptionId; 10396 10397 if (data.active) { 10398 if (!activeCustomOptions.includes(customOptionId)) { 10399 activeCustomOptions.push(data.customOptionId); 10400 } 10401 } else { 10402 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 10403 let index = activeCustomOptions.indexOf(customOptionId); 10404 activeCustomOptions.splice(index, 1); 10405 } 10406 } 10407 this.calculateFinalPriceWithCustomOptions() 10408 }, 10409 updateCustomOptionPrices(prices, basePrices) { 10410 if (prices) { 10411 this.customOptionPrices = prices; 10412 } 10413 10414 10415 this.calculateFinalPriceWithCustomOptions(); 10416 }, 10417 calculateFinalPrice() { 10418 10419 const getOptionTierPrice = (tierPrice, withTax) => { 10420 return tierPrice[withTax ? 'price' : 'basePrice']; 10421 } 10422 10423 const findApplicableTierPrice = (initialPrice, withTax) => { 10424 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 10425 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 10426 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 10427 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 10428 return tierPriceCandidate; 10429 } 10430 return acc; 10431 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 10432 10433 } else { 10434 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 10435 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 10436 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 10437 return tierPrice[key]; 10438 } 10439 return acc; 10440 }, initialPrice); 10441 10442 } 10443 } 10444 10445 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 10446 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 10447 10448 },
10449 calculatePriceLabelVisibility() { 10450 this.showRegularPriceLabel = 10451 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 10452 this.activeProductsPriceData.isMinimalPrice; 10453 }, 10454 calculateFinalPriceWithCustomOptions() { 10455 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 10456 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 10457 }, 10458 getCustomOptionPrice() { 10459 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 10460 }, 10461 getFormattedFinalPrice() { 10462 return hyva.formatPrice( 10463 this.calculatedFinalPriceWithCustomOptions || 10464 this.calculatedFinalPrice || 10465 this.initialFinalPrice 10466 ) 10467 }, 10468 isPriceHidden() { 10469 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 10470 this.calculatedFinalPrice || 10471 this.initialFinalPrice; 10472 return false && finalPrice === 0; 10473 }, 10474 eventListeners: { 10475 ['@update-prices-316.window'](event) { 10476 this.activeProductsPriceData = event.detail; 10477 10478 this.calculateFinalPrice(); 10479 this.calculateFinalPriceWithCustomOptions(); 10480 this.calculatePriceLabelVisibility(); 10481 }, 10482 ['@update-qty-316.window'](event) { 10483 this.qty = event.detail; 10484 this.calculateFinalPrice(); 10485 this.calculateFinalPriceWithCustomOptions(); 10486 }, 10487 ['@update-custom-option-active.window'](event) { 10488 this.updateCustomOptionActive(event.detail); 10489 }, 10490 ['@update-custom-option-prices.window'](event) { 10491 this.updateCustomOptionPrices(event.detail); 10492 }, 10493 } 10494 } 10495 } 10496</script>
10496 10497<div x-data="initPrice316()" 10498 x-bind="eventListeners" 10499 class="price-box price-final_price" 10500> 10501 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 10502 <div class="price-container"> 10503 10504 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 10505 <span id="product-price-316" 10506 class="price-wrapper font-bold text-3xl text-secondary-800"> 10507 <span class="price" x-html="getFormattedFinalPrice()"> 10508 <span class="price">â¬Â 5,72</span> </span> 10509 </span> 10510 <meta itemprop="price" content="5.72"> 10511 <meta itemprop="priceCurrency" 10512 content="EUR"> 10513 </div> 10514 </div> 10515 </div> 10516 <template x-if="activeProductsPriceData && 10517 activeProductsPriceData.oldPrice && 10518 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 10519 "> 10520 <div class="old-price flex mr-2"> 10521 <span id="product-price-316" 10522 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 10523 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 10524 </span> 10525 </div> 10526 </template> 10527 <template x-if="activeProductsPriceData"> 10528 <div class="final-price inline-block"> 10529 <span id="product-price-316" 10530 class="price-wrapper font-bold text-3xl text-secondary-800"> 10531 <span class="price" x-html="getFormattedFinalPrice()"></span> 10532 </span> 10533 </div> 10534 </template> 10535 </div> 10536 </div> 10537 </div> 10538 10539 <div class="tier-price-popup lg:w-1/2"> 10540 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-protective-shield-level-0"> 10541 <strong class="text-2xl"> 10542 TENA Men Protective Shield - Level 0 </strong> 10543 </a> 10544 10545
10545<script> 10546 function initTierPrice316() { 10547 return { 10548 qty: 1, 10549 minSalesQty: 1, 10550 isStandardSelected() { 10551 return this.qty < 10; 10552 }, 10553 eventListeners: { 10554 ['@update-qty-316.window'](event) { 10555 if (this.qty !== event.detail) { 10556 this.qty = event.detail; 10557 } 10558 } 10559 } 10560 } 10561 } 10562 </script>
10562 10563 <div class="prices-tier items mb-4" 10564 x-data="initTierPrice316()" 10565 x-bind="eventListeners" 10566 > 10567 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 10568 :class="{'active-tier-price316 border-green-600 shadow-hard': 10569 qty >= 10 && qty < 20}" 10570 @click="$dispatch('update-qty-316', 10);" 10571 data-qty="10" 10572 > 10573 10574 <div class="flex flex-row items-center"> 10575 <div class="flex flex-col flex-grow"> 10576 <div class="flex flex-row items-center justify-between"> 10577 <div class="flex items-center space-x-2"> 10578 <div class="price-container font-bold text-lg"> 10579 <span 10580 class="price-container price-tier_price tax weee" 10581 > 10582 <span data-price-amount="5.09" 10583 data-price-type="" 10584 class="price-wrapper " 10585 ><span class="price">â¬Â 5,09</span></span> 10586 </span> 10587 </div> 10588 <span class="ml-2 text-base"> 10589 per stuk </span> 10590 </div> 10591 <span> 10592 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 11</span>%</strong> </span> 10593 </div> 10594 10595 <div class="mt-1"> 10596 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 10597 <span>10 verpakkingen</span> </span> 10598 </div> 10599 </div> 10600 </div> 10601 </div> 10602 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 10603 :class="{'active-tier-price316 border-green-600 shadow-hard': 10604 qty >= 20 && qty < 10000}" 10605 @click="$dispatch('update-qty-316', 20);" 10606 data-qty="20" 10607 > 10608 10609 <div class="flex flex-row items-center"> 10610 <div class="flex flex-col flex-grow"> 10611 <div class="flex flex-row items-center justify-between"> 10612 <div class="flex items-center space-x-2"> 10613 <div class="price-container font-bold text-lg"> 10614 <span 10615 x-data x-id="['1']" class="price-container price-tier_price tax weee" 10616 > 10617 <span :id="$id('1')" data-price-amount="4.58" 10618 data-price-type="" 10619 class="price-wrapper " 10620 ><span class="price">â¬Â 4,58</span></span> 10621 </span> 10622 </div> 10623 <span class="ml-2 text-base"> 10624 per stuk </span> 10625 </div> 10626 <span 10627 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 10628 <strong>Voordeligste keuze</strong> 10629 </span> 10630 <span> 10631 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 20</span>%</strong> </span> 10632 </div> 10633 10634 <div class="mt-1">
10635 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 10636 <span>20 verpakkingen</span> </span> 10637 </div> 10638 </div> 10639 </div> 10640 <div class="choice-mobile mt-4 xl:hidden"> 10641 <hr class="p-2"> 10642 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 10643 <strong>Voordeligste keuze</strong> 10644 </span> 10645 </div> 10646 </div> 10647 10648 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 10649 :class="{'active-tier-price316 border-green-600 shadow-hard': isStandardSelected() }" 10650 @click="$dispatch('update-qty-316', minSalesQty);" 10651 > 10652 <div class="flex flex-row items-center"> 10653 <div class="flex flex-col flex-grow"> 10654 <div class="flex flex-row items-center"> 10655 <div class="flex items-center space-x-2"> 10656 <div class="price-container font-bold text-lg"> 10657 <span class="price">â¬Â 5,72</span> </div> 10658 <span class="ml-2 text-base"> 10659 per stuk </span> 10660 </div> 10661 <strong class="ml-auto text-gray-500"> 10662 Standaard </strong> 10663 </div> 10664 10665 <div class="mt-1"> 10666 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 10667 <span>1 verpakking</span> </span> 10668 </div> 10669 </div> 10670 </div> 10671 </div> 10672 10673 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 10674 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 10675 x-show="isStandardSelected() && true" 10676 x-cloak> 10677 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 10678 <div class="ml-6 text-sm opacity-90"> 10679 <strong>Let op:</strong> 10680 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 10681 <div class="ml-6 text-sm leading-snug opacity-60"> 10682 Kies een andere optie voor extra voordeel! </div> 10683 </div> 10684 </div> 10685 10686 <div class="hidden lg:block"> 10687
10687<script> 10688 function initPrice316() { 10689 10690 const regularPriceInclTaxKey = 'oldPrice', 10691 regularPriceExclTaxKey = 'baseOldPrice', 10692 finalPriceInclTaxKey = 'finalPrice', 10693 finalPriceExclTaxKey = 'basePrice'; 10694 10695 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 10696 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 10697 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 10698 if (customOptionPrice) { 10699 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 10700 } 10701 return priceAccumulator; 10702 }, 0); 10703 } 10704 10705 return { 10706 regularPriceKey: regularPriceInclTaxKey, 10707 finalPriceKey: finalPriceInclTaxKey, 10708 activeProductsPriceData: false, 10709 initialFinalPrice: 5.72, 10710 calculatedFinalPrice: false, 10711 calculatedFinalPriceWithCustomOptions: false, 10712 initialTierPrices: [{"price_id":"2076","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"316","website_price":5.09,"price_incl_tax":5.09,"price_excl_tax":4.6697237706422},{"price_id":"2077","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"316","website_price":4.58,"price_incl_tax":4.58,"price_excl_tax":4.2018338623853}], 10713 showRegularPriceLabel: false, 10714 customOptionPrices: [], 10715 activeCustomOptions: [], 10716 qty: 1, 10717 updateCustomOptionActive(data) { 10718 let activeCustomOptions = this.activeCustomOptions; 10719 const customOptionId = data.customOptionId; 10720 10721 if (data.active) { 10722 if (!activeCustomOptions.includes(customOptionId)) { 10723 activeCustomOptions.push(data.customOptionId); 10724 } 10725 } else { 10726 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 10727 let index = activeCustomOptions.indexOf(customOptionId); 10728 activeCustomOptions.splice(index, 1); 10729 } 10730 } 10731 this.calculateFinalPriceWithCustomOptions() 10732 }, 10733 updateCustomOptionPrices(prices, basePrices) { 10734 if (prices) { 10735 this.customOptionPrices = prices; 10736 } 10737 10738 10739 this.calculateFinalPriceWithCustomOptions(); 10740 }, 10741 calculateFinalPrice() { 10742 10743 const getOptionTierPrice = (tierPrice, withTax) => { 10744 return tierPrice[withTax ? 'price' : 'basePrice']; 10745 } 10746 10747 const findApplicableTierPrice = (initialPrice, withTax) => { 10748 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 10749 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 10750 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 10751 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 10752 return tierPriceCandidate; 10753 } 10754 return acc; 10755 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 10756 10757 } else { 10758 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 10759 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 10760 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 10761 return tierPrice[key]; 10762 } 10763 return acc; 10764 }, initialPrice); 10765 10766 } 10767 } 10768 10769 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 10770 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 10771 10772 },
10773 calculatePriceLabelVisibility() { 10774 this.showRegularPriceLabel = 10775 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 10776 this.activeProductsPriceData.isMinimalPrice; 10777 }, 10778 calculateFinalPriceWithCustomOptions() { 10779 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 10780 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 10781 }, 10782 getCustomOptionPrice() { 10783 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 10784 }, 10785 getFormattedFinalPrice() { 10786 return hyva.formatPrice( 10787 this.calculatedFinalPriceWithCustomOptions || 10788 this.calculatedFinalPrice || 10789 this.initialFinalPrice 10790 ) 10791 }, 10792 isPriceHidden() { 10793 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 10794 this.calculatedFinalPrice || 10795 this.initialFinalPrice; 10796 return false && finalPrice === 0; 10797 }, 10798 eventListeners: { 10799 ['@update-prices-316.window'](event) { 10800 this.activeProductsPriceData = event.detail; 10801 10802 this.calculateFinalPrice(); 10803 this.calculateFinalPriceWithCustomOptions(); 10804 this.calculatePriceLabelVisibility(); 10805 }, 10806 ['@update-qty-316.window'](event) { 10807 this.qty = event.detail; 10808 this.calculateFinalPrice(); 10809 this.calculateFinalPriceWithCustomOptions(); 10810 }, 10811 ['@update-custom-option-active.window'](event) { 10812 this.updateCustomOptionActive(event.detail); 10813 }, 10814 ['@update-custom-option-prices.window'](event) { 10815 this.updateCustomOptionPrices(event.detail); 10816 }, 10817 } 10818 } 10819 } 10820</script>
10820 10821<div x-data="initPrice316()" 10822 x-bind="eventListeners" 10823 class="price-box price-final_price" 10824> 10825 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 10826 <div class="price-container"> 10827 10828 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 10829 <span id="product-price-316" 10830 class="price-wrapper font-bold text-3xl text-secondary-800"> 10831 <span class="price" x-html="getFormattedFinalPrice()"> 10832 <span class="price">â¬Â 5,72</span> </span> 10833 </span> 10834 <meta itemprop="price" content="5.72"> 10835 <meta itemprop="priceCurrency" 10836 content="EUR"> 10837 </div> 10838 </div> 10839 </div> 10840 <template x-if="activeProductsPriceData && 10841 activeProductsPriceData.oldPrice && 10842 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 10843 "> 10844 <div class="old-price flex mr-2"> 10845 <span id="product-price-316" 10846 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 10847 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 10848 </span> 10849 </div> 10850 </template> 10851 <template x-if="activeProductsPriceData"> 10852 <div class="final-price inline-block"> 10853 <span id="product-price-316" 10854 class="price-wrapper font-bold text-3xl text-secondary-800"> 10855 <span class="price" x-html="getFormattedFinalPrice()"></span> 10856 </span> 10857 </div> 10858 </template> 10859 </div> 10860 </div> 10861 </div> 10862</div> 10863 10864<div class="flex flex-col items-center"> 10865 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 10866 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 10867 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 10868<title>In Winkelmand</title></svg> 10869 In Winkelmand </button> 10870 10871 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 10872 Nee, vandaag niet </button> 10873</div> 10874 </div> 10875 </div> 10876 </div> 10877 10878 <button @click="show('dialog6ac3024e5368a', this.$event || $event)" 10879 class="btn btn-primary lg:w-full" 10880 type="button" 10881 aria-haspopup="dialog" 10882 > 10883 Kies uw voordeel </button> 10884 </div> 10885 </div> 10886 10887 <div class="flex items-center gap-1 lg:hidden"> 10888 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 10889 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 10890 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 10891 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 10892<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
10893 <span> 10894 Tot 22:30 uur besteld = morgen in huis <span 10895 class="absolute group cursor-pointer inline-flex items-center justify-center"> 10896 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 10897 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 10898<title/></svg> 10899 <span class="absolute top-full left-1/2 -translate-x-[80%] 10900 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 10901 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 10902 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 10903 </span> 10904 </span> 10905 </div> 10906 </div> 10907</form> 10908 </li> 10909 <li> 10910
10910<script> 10911 function initQtyFromTier19() { 10912 return { 10913 qty: 1, 10914 updateQty(event) { 10915 this.qty = event.detail; 10916 } 10917 } 10918 } 10919</script>
10919 10920 10921<form method="post" 10922 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/19/" 10923 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 10924 x-data="initQtyFromTier19()" 10925 @update-qty-19="updateQty(event)" 10926 10927 > 10928 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="19"/> 10929 <input type="hidden" 10930 name="qty" 10931 id="qty[19]" 10932 :value="qty" 10933 x-model.number="qty" 10934 /> 10935 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 10936 <a href="https://www.123drogisterij.nl/tena-for-men-level-1" 10937 title="TENA For Men Level 1" 10938 class="product photo product-item-photo block w-1/3 lg:w-1/4" 10939 tabindex="-1" 10940 > 10941 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_level_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-19.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_level_1.jpg" loading="lazy" width="187" height="234" alt="Tena Men Level 1" title="Tena Men Level 1" loading="lazy" /></picture> 10942 </a> 10943 10944 <div class="w-2/3 lg:mx-8"> 10945 <strong> 10946 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 10947 href="https://www.123drogisterij.nl/tena-for-men-level-1" 10948 :id="`slide-desc-19-${$id('slider-id')}`" 10949 > 10950 TENA For Men Level 1 </a> 10951 </strong> 10952 10953 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 10954 <span class="block text-gray-500 mb-1"> 10955 Artikelnummer: 750651 </span> 10956 10957 <span class="block text-gray-500 mb-1 lg:text-md"> 10958 Verpakking: 24 stuks </span> 10959 </div> 10960 10961 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 10962 Absorptievermogen: 10963 <div class="flex gap-2"> 10964 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10965 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10966 </svg> 10967 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10968 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10969 </svg> 10970 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10971 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10972 </svg> 10973 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10974 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10975 </svg> 10976 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10977 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
10977697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10978 </svg> 10979 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10980 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10981 </svg> 10982 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10983 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10984 </svg> 10985 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10986 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10987 </svg> 10988 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10989 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10990 </svg> 10991 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10992 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10993 </svg> 10994 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 10995 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 10996 </svg> 10997 </div> 10998 </span> 10999 11000 <div class="lg:hidden"> 11001 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 11002 " 11003 title="Beschikbaarheid" 11004 > 11005 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 11006 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 11007<title>check-circle</title></svg> 11008Op voorraad </p> 11009 </div> 11010 11011 <div class="hidden lg:block" 11012 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 11013 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
11014 content = trimToSentence(originalContent, maxLength); 11015 isVisible = false"; 11016 > 11017 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 11018 TENA Men Level 1 is een inlegger speciaal voor mannen die druppels verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 20 centimeter 'hoog' en 19 centimeter breed. De opname is maximaal 250 milliliter. </div> 11019 11020 <div class="prose md:prose-base text-md" x-show="isVisible"> 11021 TENA Men Level 1 is een inlegger speciaal voor mannen die druppels verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger i </div> 11022 11023 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 11024 @click="isCollapsed = !isCollapsed" 11025 x-show="originalContent.length > maxLength ? true : false" 11026 type="button" 11027 > 11028 <span x-text="isCollapsed ? 11029 'Lees minder' : 11030 'Lees meer'" 11031 ></span> 11032 </button> 11033 </div> 11034 </div> 11035 </div> 11036 11037 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 11038 <div class="lg:hidden" 11039 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 11040 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
11041 content = trimToSentence(originalContent, maxLength); 11042 isVisible = false"; 11043 > 11044 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 11045 TENA Men Level 1 is een inlegger speciaal voor mannen die druppels verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 20 centimeter 'hoog' en 19 centimeter breed. De opname is maximaal 250 milliliter. </div> 11046 11047 <div class="prose md:prose-base" x-show="isVisible"> 11048 TENA Men Level 1 is een inlegger speciaal voor mannen die druppels verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer </div> 11049 11050 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 11051 @click="isCollapsed = !isCollapsed" 11052 x-show="originalContent.length > maxLength ? true : false" 11053 type="button" 11054 > 11055 <span x-text="isCollapsed ? 11056 'Lees minder' : 11057 'Lees meer'" 11058 ></span> 11059 </button> 11060 </div> 11061 11062 11063 <div class="hidden lg:block lg:text-md"> 11064 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 11065 " 11066 title="Beschikbaarheid" 11067 > 11068 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 11069 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 11070<title>check-circle</title></svg> 11071Op voorraad </p> 11072 </div> 11073 11074 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 11075 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 11076 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 11077 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 11078 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 11079<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 11080 <span> 11081 Tot 22:30 uur besteld = morgen in huis <span 11082 class="absolute group cursor-pointer inline-flex"> 11083 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 11084 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 11085<title/></svg> 11086 <span class="absolute top-full left-1/2 -translate-x-[80%] 11087 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 11088 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 11089 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 11090 </span> 11091 </span> 11092 </div> 11093 11094 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 11095 <div class="pt-1 text-gray-900" 11096 x-data="initPriceBox()" 11097 x-defer="intersect" 11098 @update-prices-19.window="updatePrice($event.detail);" 11099 > 11100 <div class="price-box price-final_price" data-role="priceBox" data-product-id="19" data-price-box="product-id-19"> 11101 11102 <span
11103 x-data x-id="['product\u002Dprice\u002D19']" class="price-container price-final_price tax weee" 11104 > 11105 <span :id="$id('product\u002Dprice\u002D19')" data-price-amount="10.49" 11106 data-price-type="finalPrice" 11107 class="price-wrapper " 11108 ><span class="price">â¬Â 10,49</span></span> 11109 </span> 11110 11111 <span class="minimal-price-link"> 11112 <span 11113 x-data x-id="['19']" class="price-container price-final_price tax weee" 11114 > 11115 <span class="price-label">Vanaf</span> 11116 <span :id="$id('19')" data-price-amount="8.29" 11117 data-price-type="" 11118 class="price-wrapper " 11119 >â¬Â 8,29</span> 11120 </span> 11121 </span> 11122</div> </div> 11123 11124 <div x-data="hyva.modal()" class="lg:w-full"> 11125 <div x-cloak data-dialog-ref-name="dialog6ac3024e595f2" 11126 x-bind="overlay" 11127 class="fixed inset-0 bg-black/50 z-50"> 11128 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 11129 <div x-ref="dialog6ac3024e595f2" role="dialog" aria-modal="true" 11130 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 11131 11132<button @click="hide" type="button"> 11133 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 11134 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 11135<title>Sluiten</title></svg> 11136</button> 11137 11138<h2 class="text-primary-500 text-center mb-4"> 11139 Extra besparen?</h2> 11140 11141<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 11142 <div class="flex gap-2 mb-4"> 11143 <a href="https://www.123drogisterij.nl/tena-for-men-level-1" 11144 title="TENA For Men Level 1" 11145 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 11146 tabindex="-1" 11147 > 11148 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_level_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-19.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_level_1.jpg" loading="lazy" width="261" height="261" alt="Tena Men Level 1" title="Tena Men Level 1" loading="lazy" /></picture> 11149 </a> 11150 11151 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 11152 <a href="https://www.123drogisterij.nl/tena-for-men-level-1"> 11153 <strong class="text-xl"> 11154 TENA For Men Level 1 </strong> 11155 </a> 11156 11157
11157<script> 11158 function initPrice19() { 11159 11160 const regularPriceInclTaxKey = 'oldPrice', 11161 regularPriceExclTaxKey = 'baseOldPrice', 11162 finalPriceInclTaxKey = 'finalPrice', 11163 finalPriceExclTaxKey = 'basePrice'; 11164 11165 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 11166 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 11167 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 11168 if (customOptionPrice) { 11169 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 11170 } 11171 return priceAccumulator; 11172 }, 0); 11173 } 11174 11175 return { 11176 regularPriceKey: regularPriceInclTaxKey, 11177 finalPriceKey: finalPriceInclTaxKey, 11178 activeProductsPriceData: false, 11179 initialFinalPrice: 10.49, 11180 calculatedFinalPrice: false, 11181 calculatedFinalPriceWithCustomOptions: false, 11182 initialTierPrices: [{"price_id":"1541","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"19","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1622","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"19","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 11183 showRegularPriceLabel: false, 11184 customOptionPrices: [], 11185 activeCustomOptions: [], 11186 qty: 1, 11187 updateCustomOptionActive(data) { 11188 let activeCustomOptions = this.activeCustomOptions; 11189 const customOptionId = data.customOptionId; 11190 11191 if (data.active) { 11192 if (!activeCustomOptions.includes(customOptionId)) { 11193 activeCustomOptions.push(data.customOptionId); 11194 } 11195 } else { 11196 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 11197 let index = activeCustomOptions.indexOf(customOptionId); 11198 activeCustomOptions.splice(index, 1); 11199 } 11200 } 11201 this.calculateFinalPriceWithCustomOptions() 11202 }, 11203 updateCustomOptionPrices(prices, basePrices) { 11204 if (prices) { 11205 this.customOptionPrices = prices; 11206 } 11207 11208 11209 this.calculateFinalPriceWithCustomOptions(); 11210 }, 11211 calculateFinalPrice() { 11212 11213 const getOptionTierPrice = (tierPrice, withTax) => { 11214 return tierPrice[withTax ? 'price' : 'basePrice']; 11215 } 11216 11217 const findApplicableTierPrice = (initialPrice, withTax) => { 11218 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 11219 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 11220 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 11221 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 11222 return tierPriceCandidate; 11223 } 11224 return acc; 11225 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 11226 11227 } else { 11228 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 11229 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 11230 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 11231 return tierPrice[key]; 11232 } 11233 return acc; 11234 }, initialPrice); 11235 11236 } 11237 } 11238 11239 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 11240 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 11241 11242 },
11243 calculatePriceLabelVisibility() { 11244 this.showRegularPriceLabel = 11245 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 11246 this.activeProductsPriceData.isMinimalPrice; 11247 }, 11248 calculateFinalPriceWithCustomOptions() { 11249 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 11250 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 11251 }, 11252 getCustomOptionPrice() { 11253 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 11254 }, 11255 getFormattedFinalPrice() { 11256 return hyva.formatPrice( 11257 this.calculatedFinalPriceWithCustomOptions || 11258 this.calculatedFinalPrice || 11259 this.initialFinalPrice 11260 ) 11261 }, 11262 isPriceHidden() { 11263 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 11264 this.calculatedFinalPrice || 11265 this.initialFinalPrice; 11266 return false && finalPrice === 0; 11267 }, 11268 eventListeners: { 11269 ['@update-prices-19.window'](event) { 11270 this.activeProductsPriceData = event.detail; 11271 11272 this.calculateFinalPrice(); 11273 this.calculateFinalPriceWithCustomOptions(); 11274 this.calculatePriceLabelVisibility(); 11275 }, 11276 ['@update-qty-19.window'](event) { 11277 this.qty = event.detail; 11278 this.calculateFinalPrice(); 11279 this.calculateFinalPriceWithCustomOptions(); 11280 }, 11281 ['@update-custom-option-active.window'](event) { 11282 this.updateCustomOptionActive(event.detail); 11283 }, 11284 ['@update-custom-option-prices.window'](event) { 11285 this.updateCustomOptionPrices(event.detail); 11286 }, 11287 } 11288 } 11289 } 11290</script>
11290 11291<div x-data="initPrice19()" 11292 x-bind="eventListeners" 11293 class="price-box price-final_price" 11294> 11295 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 11296 <div class="price-container"> 11297 11298 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 11299 <span id="product-price-19" 11300 class="price-wrapper font-bold text-3xl text-secondary-800"> 11301 <span class="price" x-html="getFormattedFinalPrice()"> 11302 <span class="price">â¬Â 10,49</span> </span> 11303 </span> 11304 <meta itemprop="price" content="10.49"> 11305 <meta itemprop="priceCurrency" 11306 content="EUR"> 11307 </div> 11308 </div> 11309 </div> 11310 <template x-if="activeProductsPriceData && 11311 activeProductsPriceData.oldPrice && 11312 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 11313 "> 11314 <div class="old-price flex mr-2"> 11315 <span id="product-price-19" 11316 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 11317 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 11318 </span> 11319 </div> 11320 </template> 11321 <template x-if="activeProductsPriceData"> 11322 <div class="final-price inline-block"> 11323 <span id="product-price-19" 11324 class="price-wrapper font-bold text-3xl text-secondary-800"> 11325 <span class="price" x-html="getFormattedFinalPrice()"></span> 11326 </span> 11327 </div> 11328 </template> 11329 </div> 11330 </div> 11331 </div> 11332 11333 <div class="tier-price-popup lg:w-1/2"> 11334 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-for-men-level-1"> 11335 <strong class="text-2xl"> 11336 TENA For Men Level 1 </strong> 11337 </a> 11338 11339
11339<script> 11340 function initTierPrice19() { 11341 return { 11342 qty: 1, 11343 minSalesQty: 1, 11344 isStandardSelected() { 11345 return this.qty < 5; 11346 }, 11347 eventListeners: { 11348 ['@update-qty-19.window'](event) { 11349 if (this.qty !== event.detail) { 11350 this.qty = event.detail; 11351 } 11352 } 11353 } 11354 } 11355 } 11356 </script>
11356 11357 <div class="prices-tier items mb-4" 11358 x-data="initTierPrice19()" 11359 x-bind="eventListeners" 11360 > 11361 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 11362 :class="{'active-tier-price19 border-green-600 shadow-hard': 11363 qty >= 5 && qty < 10}" 11364 @click="$dispatch('update-qty-19', 5);" 11365 data-qty="5" 11366 > 11367 11368 <div class="flex flex-row items-center"> 11369 <div class="flex flex-col flex-grow"> 11370 <div class="flex flex-row items-center justify-between"> 11371 <div class="flex items-center space-x-2"> 11372 <div class="price-container font-bold text-lg"> 11373 <span 11374 class="price-container price-tier_price tax weee" 11375 > 11376 <span data-price-amount="9.19" 11377 data-price-type="" 11378 class="price-wrapper " 11379 ><span class="price">â¬Â 9,19</span></span> 11380 </span> 11381 </div> 11382 <span class="ml-2 text-base"> 11383 per stuk </span> 11384 </div> 11385 <span> 11386 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 12</span>%</strong> </span> 11387 </div> 11388 11389 <div class="mt-1"> 11390 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 11391 <span>5 verpakkingen</span> </span> 11392 </div> 11393 </div> 11394 </div> 11395 </div> 11396 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 11397 :class="{'active-tier-price19 border-green-600 shadow-hard': 11398 qty >= 10 && qty < 10000}" 11399 @click="$dispatch('update-qty-19', 10);" 11400 data-qty="10" 11401 > 11402 11403 <div class="flex flex-row items-center"> 11404 <div class="flex flex-col flex-grow"> 11405 <div class="flex flex-row items-center justify-between"> 11406 <div class="flex items-center space-x-2"> 11407 <div class="price-container font-bold text-lg"> 11408 <span 11409 x-data x-id="['1']" class="price-container price-tier_price tax weee" 11410 > 11411 <span :id="$id('1')" data-price-amount="8.29" 11412 data-price-type="" 11413 class="price-wrapper " 11414 ><span class="price">â¬Â 8,29</span></span> 11415 </span> 11416 </div> 11417 <span class="ml-2 text-base"> 11418 per stuk </span> 11419 </div> 11420 <span 11421 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 11422 <strong>Voordeligste keuze</strong> 11423 </span> 11424 <span> 11425 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 21</span>%</strong> </span> 11426 </div> 11427 11428 <div class="mt-1">
11429 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 11430 <span>10 verpakkingen</span> </span> 11431 </div> 11432 </div> 11433 </div> 11434 <div class="choice-mobile mt-4 xl:hidden"> 11435 <hr class="p-2"> 11436 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 11437 <strong>Voordeligste keuze</strong> 11438 </span> 11439 </div> 11440 </div> 11441 11442 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 11443 :class="{'active-tier-price19 border-green-600 shadow-hard': isStandardSelected() }" 11444 @click="$dispatch('update-qty-19', minSalesQty);" 11445 > 11446 <div class="flex flex-row items-center"> 11447 <div class="flex flex-col flex-grow"> 11448 <div class="flex flex-row items-center"> 11449 <div class="flex items-center space-x-2"> 11450 <div class="price-container font-bold text-lg"> 11451 <span class="price">â¬Â 10,49</span> </div> 11452 <span class="ml-2 text-base"> 11453 per stuk </span> 11454 </div> 11455 <strong class="ml-auto text-gray-500"> 11456 Standaard </strong> 11457 </div> 11458 11459 <div class="mt-1"> 11460 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 11461 <span>1 verpakking</span> </span> 11462 </div> 11463 </div> 11464 </div> 11465 </div> 11466 11467 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 11468 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 11469 x-show="isStandardSelected() && true" 11470 x-cloak> 11471 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 11472 <div class="ml-6 text-sm opacity-90"> 11473 <strong>Let op:</strong> 11474 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 11475 <div class="ml-6 text-sm leading-snug opacity-60"> 11476 Kies een andere optie voor extra voordeel! </div> 11477 </div> 11478 </div> 11479 11480 <div class="hidden lg:block"> 11481
11481<script> 11482 function initPrice19() { 11483 11484 const regularPriceInclTaxKey = 'oldPrice', 11485 regularPriceExclTaxKey = 'baseOldPrice', 11486 finalPriceInclTaxKey = 'finalPrice', 11487 finalPriceExclTaxKey = 'basePrice'; 11488 11489 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 11490 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 11491 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 11492 if (customOptionPrice) { 11493 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 11494 } 11495 return priceAccumulator; 11496 }, 0); 11497 } 11498 11499 return { 11500 regularPriceKey: regularPriceInclTaxKey, 11501 finalPriceKey: finalPriceInclTaxKey, 11502 activeProductsPriceData: false, 11503 initialFinalPrice: 10.49, 11504 calculatedFinalPrice: false, 11505 calculatedFinalPriceWithCustomOptions: false, 11506 initialTierPrices: [{"price_id":"1541","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"19","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1622","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"19","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 11507 showRegularPriceLabel: false, 11508 customOptionPrices: [], 11509 activeCustomOptions: [], 11510 qty: 1, 11511 updateCustomOptionActive(data) { 11512 let activeCustomOptions = this.activeCustomOptions; 11513 const customOptionId = data.customOptionId; 11514 11515 if (data.active) { 11516 if (!activeCustomOptions.includes(customOptionId)) { 11517 activeCustomOptions.push(data.customOptionId); 11518 } 11519 } else { 11520 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 11521 let index = activeCustomOptions.indexOf(customOptionId); 11522 activeCustomOptions.splice(index, 1); 11523 } 11524 } 11525 this.calculateFinalPriceWithCustomOptions() 11526 }, 11527 updateCustomOptionPrices(prices, basePrices) { 11528 if (prices) { 11529 this.customOptionPrices = prices; 11530 } 11531 11532 11533 this.calculateFinalPriceWithCustomOptions(); 11534 }, 11535 calculateFinalPrice() { 11536 11537 const getOptionTierPrice = (tierPrice, withTax) => { 11538 return tierPrice[withTax ? 'price' : 'basePrice']; 11539 } 11540 11541 const findApplicableTierPrice = (initialPrice, withTax) => { 11542 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 11543 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 11544 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 11545 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 11546 return tierPriceCandidate; 11547 } 11548 return acc; 11549 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 11550 11551 } else { 11552 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 11553 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 11554 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 11555 return tierPrice[key]; 11556 } 11557 return acc; 11558 }, initialPrice); 11559 11560 } 11561 } 11562 11563 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 11564 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 11565 11566 },
11567 calculatePriceLabelVisibility() { 11568 this.showRegularPriceLabel = 11569 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 11570 this.activeProductsPriceData.isMinimalPrice; 11571 }, 11572 calculateFinalPriceWithCustomOptions() { 11573 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 11574 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 11575 }, 11576 getCustomOptionPrice() { 11577 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 11578 }, 11579 getFormattedFinalPrice() { 11580 return hyva.formatPrice( 11581 this.calculatedFinalPriceWithCustomOptions || 11582 this.calculatedFinalPrice || 11583 this.initialFinalPrice 11584 ) 11585 }, 11586 isPriceHidden() { 11587 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 11588 this.calculatedFinalPrice || 11589 this.initialFinalPrice; 11590 return false && finalPrice === 0; 11591 }, 11592 eventListeners: { 11593 ['@update-prices-19.window'](event) { 11594 this.activeProductsPriceData = event.detail; 11595 11596 this.calculateFinalPrice(); 11597 this.calculateFinalPriceWithCustomOptions(); 11598 this.calculatePriceLabelVisibility(); 11599 }, 11600 ['@update-qty-19.window'](event) { 11601 this.qty = event.detail; 11602 this.calculateFinalPrice(); 11603 this.calculateFinalPriceWithCustomOptions(); 11604 }, 11605 ['@update-custom-option-active.window'](event) { 11606 this.updateCustomOptionActive(event.detail); 11607 }, 11608 ['@update-custom-option-prices.window'](event) { 11609 this.updateCustomOptionPrices(event.detail); 11610 }, 11611 } 11612 } 11613 } 11614</script>
11614 11615<div x-data="initPrice19()" 11616 x-bind="eventListeners" 11617 class="price-box price-final_price" 11618> 11619 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 11620 <div class="price-container"> 11621 11622 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 11623 <span id="product-price-19" 11624 class="price-wrapper font-bold text-3xl text-secondary-800"> 11625 <span class="price" x-html="getFormattedFinalPrice()"> 11626 <span class="price">â¬Â 10,49</span> </span> 11627 </span> 11628 <meta itemprop="price" content="10.49"> 11629 <meta itemprop="priceCurrency" 11630 content="EUR"> 11631 </div> 11632 </div> 11633 </div> 11634 <template x-if="activeProductsPriceData && 11635 activeProductsPriceData.oldPrice && 11636 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 11637 "> 11638 <div class="old-price flex mr-2"> 11639 <span id="product-price-19" 11640 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 11641 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 11642 </span> 11643 </div> 11644 </template> 11645 <template x-if="activeProductsPriceData"> 11646 <div class="final-price inline-block"> 11647 <span id="product-price-19" 11648 class="price-wrapper font-bold text-3xl text-secondary-800"> 11649 <span class="price" x-html="getFormattedFinalPrice()"></span> 11650 </span> 11651 </div> 11652 </template> 11653 </div> 11654 </div> 11655 </div> 11656</div> 11657 11658<div class="flex flex-col items-center"> 11659 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 11660 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 11661 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 11662<title>In Winkelmand</title></svg> 11663 In Winkelmand </button> 11664 11665 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 11666 Nee, vandaag niet </button> 11667</div> 11668 </div> 11669 </div> 11670 </div> 11671 11672 <button @click="show('dialog6ac3024e595f2', this.$event || $event)" 11673 class="btn btn-primary lg:w-full" 11674 type="button" 11675 aria-haspopup="dialog" 11676 > 11677 Kies uw voordeel </button> 11678 </div> 11679 </div> 11680 11681 <div class="flex items-center gap-1 lg:hidden"> 11682 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 11683 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 11684 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 11685 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 11686<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
11687 <span> 11688 Tot 22:30 uur besteld = morgen in huis <span 11689 class="absolute group cursor-pointer inline-flex items-center justify-center"> 11690 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 11691 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 11692<title/></svg> 11693 <span class="absolute top-full left-1/2 -translate-x-[80%] 11694 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 11695 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 11696 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 11697 </span> 11698 </span> 11699 </div> 11700 </div> 11701</form> 11702 </li> 11703 <li> 11704
11704<script> 11705 function initQtyFromTier20() { 11706 return { 11707 qty: 1, 11708 updateQty(event) { 11709 this.qty = event.detail; 11710 } 11711 } 11712 } 11713</script>
11713 11714 11715<form method="post" 11716 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/20/" 11717 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 11718 x-data="initQtyFromTier20()" 11719 @update-qty-20="updateQty(event)" 11720 11721 > 11722 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="20"/> 11723 <input type="hidden" 11724 name="qty" 11725 id="qty[20]" 11726 :value="qty" 11727 x-model.number="qty" 11728 /> 11729 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 11730 <a href="https://www.123drogisterij.nl/tena-for-men-level-2" 11731 title="TENA For Men Level 2" 11732 class="product photo product-item-photo block w-1/3 lg:w-1/4" 11733 tabindex="-1" 11734 > 11735 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/m/e/men_level_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-20.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/m/e/men_level_2.jpg" loading="lazy" width="187" height="234" alt="Men Level 2 (Tena)" title="Men Level 2 (Tena)" loading="lazy" /></picture> 11736 </a> 11737 11738 <div class="w-2/3 lg:mx-8"> 11739 <strong> 11740 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 11741 href="https://www.123drogisterij.nl/tena-for-men-level-2" 11742 :id="`slide-desc-20-${$id('slider-id')}`" 11743 > 11744 TENA For Men Level 2 </a> 11745 </strong> 11746 11747 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 11748 <span class="block text-gray-500 mb-1"> 11749 Artikelnummer: 750776 </span> 11750 11751 <span class="block text-gray-500 mb-1 lg:text-md"> 11752 Verpakking: 20 stuks </span> 11753 </div> 11754 11755 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 11756 Absorptievermogen: 11757 <div class="flex gap-2"> 11758 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11759 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11760 </svg> 11761 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11762 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11763 </svg> 11764 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11765 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11766 </svg> 11767 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11768 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11769 </svg> 11770 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11771 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
11771697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11772 </svg> 11773 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11774 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11775 </svg> 11776 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11777 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11778 </svg> 11779 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11780 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11781 </svg> 11782 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11783 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11784 </svg> 11785 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11786 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11787 </svg> 11788 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 11789 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 11790 </svg> 11791 </div> 11792 </span> 11793 11794 <div class="lg:hidden"> 11795 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 11796 " 11797 title="Beschikbaarheid" 11798 > 11799 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 11800 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 11801<title>check-circle</title></svg> 11802Op voorraad </p> 11803 </div> 11804 11805 <div class="hidden lg:block" 11806 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 11807 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
11808 content = trimToSentence(originalContent, maxLength); 11809 isVisible = false"; 11810 > 11811 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 11812 TENA Men Level 2 is een inlegger speciaal voor mannen die druppels of iets meer verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 450 milliliter. </div> 11813 11814 <div class="prose md:prose-base text-md" x-show="isVisible"> 11815 TENA Men Level 2 is een inlegger speciaal voor mannen die druppels of iets meer verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. </div> 11816 11817 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 11818 @click="isCollapsed = !isCollapsed" 11819 x-show="originalContent.length > maxLength ? true : false" 11820 type="button" 11821 > 11822 <span x-text="isCollapsed ? 11823 'Lees minder' : 11824 'Lees meer'" 11825 ></span> 11826 </button> 11827 </div> 11828 </div> 11829 </div> 11830 11831 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 11832 <div class="lg:hidden" 11833 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 11834 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
11835 content = trimToSentence(originalContent, maxLength); 11836 isVisible = false"; 11837 > 11838 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 11839 TENA Men Level 2 is een inlegger speciaal voor mannen die druppels of iets meer verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 450 milliliter. </div> 11840 11841 <div class="prose md:prose-base" x-show="isVisible"> 11842 TENA Men Level 2 is een inlegger speciaal voor mannen die druppels of iets meer verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegge </div> 11843 11844 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 11845 @click="isCollapsed = !isCollapsed" 11846 x-show="originalContent.length > maxLength ? true : false" 11847 type="button" 11848 > 11849 <span x-text="isCollapsed ? 11850 'Lees minder' : 11851 'Lees meer'" 11852 ></span> 11853 </button> 11854 </div> 11855 11856 11857 <div class="hidden lg:block lg:text-md"> 11858 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 11859 " 11860 title="Beschikbaarheid" 11861 > 11862 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 11863 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 11864<title>check-circle</title></svg> 11865Op voorraad </p> 11866 </div> 11867 11868 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 11869 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 11870 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 11871 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 11872 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 11873<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 11874 <span> 11875 Tot 22:30 uur besteld = morgen in huis <span 11876 class="absolute group cursor-pointer inline-flex"> 11877 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 11878 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 11879<title/></svg> 11880 <span class="absolute top-full left-1/2 -translate-x-[80%] 11881 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 11882 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 11883 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 11884 </span> 11885 </span> 11886 </div> 11887 11888 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 11889 <div class="pt-1 text-gray-900" 11890 x-data="initPriceBox()" 11891 x-defer="intersect" 11892 @update-prices-20.window="updatePrice($event.detail);" 11893 > 11894 <div class="price-box price-final_price" data-role="priceBox" data-product-id="20" data-price-box="product-id-20"> 11895 11896 <span
11897 x-data x-id="['product\u002Dprice\u002D20']" class="price-container price-final_price tax weee" 11898 > 11899 <span :id="$id('product\u002Dprice\u002D20')" data-price-amount="10.49" 11900 data-price-type="finalPrice" 11901 class="price-wrapper " 11902 ><span class="price">â¬Â 10,49</span></span> 11903 </span> 11904 11905 <span class="minimal-price-link"> 11906 <span 11907 x-data x-id="['20']" class="price-container price-final_price tax weee" 11908 > 11909 <span class="price-label">Vanaf</span> 11910 <span :id="$id('20')" data-price-amount="8.29" 11911 data-price-type="" 11912 class="price-wrapper " 11913 >â¬Â 8,29</span> 11914 </span> 11915 </span> 11916</div> </div> 11917 11918 <div x-data="hyva.modal()" class="lg:w-full"> 11919 <div x-cloak data-dialog-ref-name="dialog6ac3024e5f176" 11920 x-bind="overlay" 11921 class="fixed inset-0 bg-black/50 z-50"> 11922 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 11923 <div x-ref="dialog6ac3024e5f176" role="dialog" aria-modal="true" 11924 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 11925 11926<button @click="hide" type="button"> 11927 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 11928 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 11929<title>Sluiten</title></svg> 11930</button> 11931 11932<h2 class="text-primary-500 text-center mb-4"> 11933 Extra besparen?</h2> 11934 11935<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 11936 <div class="flex gap-2 mb-4"> 11937 <a href="https://www.123drogisterij.nl/tena-for-men-level-2" 11938 title="TENA For Men Level 2" 11939 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 11940 tabindex="-1" 11941 > 11942 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/m/e/men_level_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-20.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/m/e/men_level_2.jpg" loading="lazy" width="261" height="261" alt="Men Level 2 (Tena)" title="Men Level 2 (Tena)" loading="lazy" /></picture> 11943 </a> 11944 11945 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 11946 <a href="https://www.123drogisterij.nl/tena-for-men-level-2"> 11947 <strong class="text-xl"> 11948 TENA For Men Level 2 </strong> 11949 </a> 11950 11951
11951<script> 11952 function initPrice20() { 11953 11954 const regularPriceInclTaxKey = 'oldPrice', 11955 regularPriceExclTaxKey = 'baseOldPrice', 11956 finalPriceInclTaxKey = 'finalPrice', 11957 finalPriceExclTaxKey = 'basePrice'; 11958 11959 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 11960 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 11961 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 11962 if (customOptionPrice) { 11963 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 11964 } 11965 return priceAccumulator; 11966 }, 0); 11967 } 11968 11969 return { 11970 regularPriceKey: regularPriceInclTaxKey, 11971 finalPriceKey: finalPriceInclTaxKey, 11972 activeProductsPriceData: false, 11973 initialFinalPrice: 10.49, 11974 calculatedFinalPrice: false, 11975 calculatedFinalPriceWithCustomOptions: false, 11976 initialTierPrices: [{"price_id":"1542","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"20","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1623","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"20","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 11977 showRegularPriceLabel: false, 11978 customOptionPrices: [], 11979 activeCustomOptions: [], 11980 qty: 1, 11981 updateCustomOptionActive(data) { 11982 let activeCustomOptions = this.activeCustomOptions; 11983 const customOptionId = data.customOptionId; 11984 11985 if (data.active) { 11986 if (!activeCustomOptions.includes(customOptionId)) { 11987 activeCustomOptions.push(data.customOptionId); 11988 } 11989 } else { 11990 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 11991 let index = activeCustomOptions.indexOf(customOptionId); 11992 activeCustomOptions.splice(index, 1); 11993 } 11994 } 11995 this.calculateFinalPriceWithCustomOptions() 11996 }, 11997 updateCustomOptionPrices(prices, basePrices) { 11998 if (prices) { 11999 this.customOptionPrices = prices; 12000 } 12001 12002 12003 this.calculateFinalPriceWithCustomOptions(); 12004 }, 12005 calculateFinalPrice() { 12006 12007 const getOptionTierPrice = (tierPrice, withTax) => { 12008 return tierPrice[withTax ? 'price' : 'basePrice']; 12009 } 12010 12011 const findApplicableTierPrice = (initialPrice, withTax) => { 12012 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 12013 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 12014 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 12015 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 12016 return tierPriceCandidate; 12017 } 12018 return acc; 12019 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 12020 12021 } else { 12022 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 12023 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 12024 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 12025 return tierPrice[key]; 12026 } 12027 return acc; 12028 }, initialPrice); 12029 12030 } 12031 } 12032 12033 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 12034 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 12035 12036 },
12037 calculatePriceLabelVisibility() { 12038 this.showRegularPriceLabel = 12039 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 12040 this.activeProductsPriceData.isMinimalPrice; 12041 }, 12042 calculateFinalPriceWithCustomOptions() { 12043 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 12044 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 12045 }, 12046 getCustomOptionPrice() { 12047 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 12048 }, 12049 getFormattedFinalPrice() { 12050 return hyva.formatPrice( 12051 this.calculatedFinalPriceWithCustomOptions || 12052 this.calculatedFinalPrice || 12053 this.initialFinalPrice 12054 ) 12055 }, 12056 isPriceHidden() { 12057 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 12058 this.calculatedFinalPrice || 12059 this.initialFinalPrice; 12060 return false && finalPrice === 0; 12061 }, 12062 eventListeners: { 12063 ['@update-prices-20.window'](event) { 12064 this.activeProductsPriceData = event.detail; 12065 12066 this.calculateFinalPrice(); 12067 this.calculateFinalPriceWithCustomOptions(); 12068 this.calculatePriceLabelVisibility(); 12069 }, 12070 ['@update-qty-20.window'](event) { 12071 this.qty = event.detail; 12072 this.calculateFinalPrice(); 12073 this.calculateFinalPriceWithCustomOptions(); 12074 }, 12075 ['@update-custom-option-active.window'](event) { 12076 this.updateCustomOptionActive(event.detail); 12077 }, 12078 ['@update-custom-option-prices.window'](event) { 12079 this.updateCustomOptionPrices(event.detail); 12080 }, 12081 } 12082 } 12083 } 12084</script>
12084 12085<div x-data="initPrice20()" 12086 x-bind="eventListeners" 12087 class="price-box price-final_price" 12088> 12089 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 12090 <div class="price-container"> 12091 12092 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 12093 <span id="product-price-20" 12094 class="price-wrapper font-bold text-3xl text-secondary-800"> 12095 <span class="price" x-html="getFormattedFinalPrice()"> 12096 <span class="price">â¬Â 10,49</span> </span> 12097 </span> 12098 <meta itemprop="price" content="10.49"> 12099 <meta itemprop="priceCurrency" 12100 content="EUR"> 12101 </div> 12102 </div> 12103 </div> 12104 <template x-if="activeProductsPriceData && 12105 activeProductsPriceData.oldPrice && 12106 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 12107 "> 12108 <div class="old-price flex mr-2"> 12109 <span id="product-price-20" 12110 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 12111 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 12112 </span> 12113 </div> 12114 </template> 12115 <template x-if="activeProductsPriceData"> 12116 <div class="final-price inline-block"> 12117 <span id="product-price-20" 12118 class="price-wrapper font-bold text-3xl text-secondary-800"> 12119 <span class="price" x-html="getFormattedFinalPrice()"></span> 12120 </span> 12121 </div> 12122 </template> 12123 </div> 12124 </div> 12125 </div> 12126 12127 <div class="tier-price-popup lg:w-1/2"> 12128 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-for-men-level-2"> 12129 <strong class="text-2xl"> 12130 TENA For Men Level 2 </strong> 12131 </a> 12132 12133
12133<script> 12134 function initTierPrice20() { 12135 return { 12136 qty: 1, 12137 minSalesQty: 1, 12138 isStandardSelected() { 12139 return this.qty < 5; 12140 }, 12141 eventListeners: { 12142 ['@update-qty-20.window'](event) { 12143 if (this.qty !== event.detail) { 12144 this.qty = event.detail; 12145 } 12146 } 12147 } 12148 } 12149 } 12150 </script>
12150 12151 <div class="prices-tier items mb-4" 12152 x-data="initTierPrice20()" 12153 x-bind="eventListeners" 12154 > 12155 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 12156 :class="{'active-tier-price20 border-green-600 shadow-hard': 12157 qty >= 5 && qty < 10}" 12158 @click="$dispatch('update-qty-20', 5);" 12159 data-qty="5" 12160 > 12161 12162 <div class="flex flex-row items-center"> 12163 <div class="flex flex-col flex-grow"> 12164 <div class="flex flex-row items-center justify-between"> 12165 <div class="flex items-center space-x-2"> 12166 <div class="price-container font-bold text-lg"> 12167 <span 12168 class="price-container price-tier_price tax weee" 12169 > 12170 <span data-price-amount="9.19" 12171 data-price-type="" 12172 class="price-wrapper " 12173 ><span class="price">â¬Â 9,19</span></span> 12174 </span> 12175 </div> 12176 <span class="ml-2 text-base"> 12177 per stuk </span> 12178 </div> 12179 <span> 12180 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 12</span>%</strong> </span> 12181 </div> 12182 12183 <div class="mt-1"> 12184 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 12185 <span>5 verpakkingen</span> </span> 12186 </div> 12187 </div> 12188 </div> 12189 </div> 12190 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 12191 :class="{'active-tier-price20 border-green-600 shadow-hard': 12192 qty >= 10 && qty < 10000}" 12193 @click="$dispatch('update-qty-20', 10);" 12194 data-qty="10" 12195 > 12196 12197 <div class="flex flex-row items-center"> 12198 <div class="flex flex-col flex-grow"> 12199 <div class="flex flex-row items-center justify-between"> 12200 <div class="flex items-center space-x-2"> 12201 <div class="price-container font-bold text-lg"> 12202 <span 12203 x-data x-id="['1']" class="price-container price-tier_price tax weee" 12204 > 12205 <span :id="$id('1')" data-price-amount="8.29" 12206 data-price-type="" 12207 class="price-wrapper " 12208 ><span class="price">â¬Â 8,29</span></span> 12209 </span> 12210 </div> 12211 <span class="ml-2 text-base"> 12212 per stuk </span> 12213 </div> 12214 <span 12215 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 12216 <strong>Voordeligste keuze</strong> 12217 </span> 12218 <span> 12219 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 21</span>%</strong> </span> 12220 </div> 12221 12222 <div class="mt-1">
12223 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 12224 <span>10 verpakkingen</span> </span> 12225 </div> 12226 </div> 12227 </div> 12228 <div class="choice-mobile mt-4 xl:hidden"> 12229 <hr class="p-2"> 12230 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 12231 <strong>Voordeligste keuze</strong> 12232 </span> 12233 </div> 12234 </div> 12235 12236 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 12237 :class="{'active-tier-price20 border-green-600 shadow-hard': isStandardSelected() }" 12238 @click="$dispatch('update-qty-20', minSalesQty);" 12239 > 12240 <div class="flex flex-row items-center"> 12241 <div class="flex flex-col flex-grow"> 12242 <div class="flex flex-row items-center"> 12243 <div class="flex items-center space-x-2"> 12244 <div class="price-container font-bold text-lg"> 12245 <span class="price">â¬Â 10,49</span> </div> 12246 <span class="ml-2 text-base"> 12247 per stuk </span> 12248 </div> 12249 <strong class="ml-auto text-gray-500"> 12250 Standaard </strong> 12251 </div> 12252 12253 <div class="mt-1"> 12254 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 12255 <span>1 verpakking</span> </span> 12256 </div> 12257 </div> 12258 </div> 12259 </div> 12260 12261 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 12262 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 12263 x-show="isStandardSelected() && true" 12264 x-cloak> 12265 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 12266 <div class="ml-6 text-sm opacity-90"> 12267 <strong>Let op:</strong> 12268 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 12269 <div class="ml-6 text-sm leading-snug opacity-60"> 12270 Kies een andere optie voor extra voordeel! </div> 12271 </div> 12272 </div> 12273 12274 <div class="hidden lg:block"> 12275
12275<script> 12276 function initPrice20() { 12277 12278 const regularPriceInclTaxKey = 'oldPrice', 12279 regularPriceExclTaxKey = 'baseOldPrice', 12280 finalPriceInclTaxKey = 'finalPrice', 12281 finalPriceExclTaxKey = 'basePrice'; 12282 12283 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 12284 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 12285 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 12286 if (customOptionPrice) { 12287 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 12288 } 12289 return priceAccumulator; 12290 }, 0); 12291 } 12292 12293 return { 12294 regularPriceKey: regularPriceInclTaxKey, 12295 finalPriceKey: finalPriceInclTaxKey, 12296 activeProductsPriceData: false, 12297 initialFinalPrice: 10.49, 12298 calculatedFinalPrice: false, 12299 calculatedFinalPriceWithCustomOptions: false, 12300 initialTierPrices: [{"price_id":"1542","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"20","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1623","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"20","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 12301 showRegularPriceLabel: false, 12302 customOptionPrices: [], 12303 activeCustomOptions: [], 12304 qty: 1, 12305 updateCustomOptionActive(data) { 12306 let activeCustomOptions = this.activeCustomOptions; 12307 const customOptionId = data.customOptionId; 12308 12309 if (data.active) { 12310 if (!activeCustomOptions.includes(customOptionId)) { 12311 activeCustomOptions.push(data.customOptionId); 12312 } 12313 } else { 12314 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 12315 let index = activeCustomOptions.indexOf(customOptionId); 12316 activeCustomOptions.splice(index, 1); 12317 } 12318 } 12319 this.calculateFinalPriceWithCustomOptions() 12320 }, 12321 updateCustomOptionPrices(prices, basePrices) { 12322 if (prices) { 12323 this.customOptionPrices = prices; 12324 } 12325 12326 12327 this.calculateFinalPriceWithCustomOptions(); 12328 }, 12329 calculateFinalPrice() { 12330 12331 const getOptionTierPrice = (tierPrice, withTax) => { 12332 return tierPrice[withTax ? 'price' : 'basePrice']; 12333 } 12334 12335 const findApplicableTierPrice = (initialPrice, withTax) => { 12336 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 12337 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 12338 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 12339 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 12340 return tierPriceCandidate; 12341 } 12342 return acc; 12343 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 12344 12345 } else { 12346 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 12347 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 12348 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 12349 return tierPrice[key]; 12350 } 12351 return acc; 12352 }, initialPrice); 12353 12354 } 12355 } 12356 12357 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 12358 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 12359 12360 },
12361 calculatePriceLabelVisibility() { 12362 this.showRegularPriceLabel = 12363 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 12364 this.activeProductsPriceData.isMinimalPrice; 12365 }, 12366 calculateFinalPriceWithCustomOptions() { 12367 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 12368 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 12369 }, 12370 getCustomOptionPrice() { 12371 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 12372 }, 12373 getFormattedFinalPrice() { 12374 return hyva.formatPrice( 12375 this.calculatedFinalPriceWithCustomOptions || 12376 this.calculatedFinalPrice || 12377 this.initialFinalPrice 12378 ) 12379 }, 12380 isPriceHidden() { 12381 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 12382 this.calculatedFinalPrice || 12383 this.initialFinalPrice; 12384 return false && finalPrice === 0; 12385 }, 12386 eventListeners: { 12387 ['@update-prices-20.window'](event) { 12388 this.activeProductsPriceData = event.detail; 12389 12390 this.calculateFinalPrice(); 12391 this.calculateFinalPriceWithCustomOptions(); 12392 this.calculatePriceLabelVisibility(); 12393 }, 12394 ['@update-qty-20.window'](event) { 12395 this.qty = event.detail; 12396 this.calculateFinalPrice(); 12397 this.calculateFinalPriceWithCustomOptions(); 12398 }, 12399 ['@update-custom-option-active.window'](event) { 12400 this.updateCustomOptionActive(event.detail); 12401 }, 12402 ['@update-custom-option-prices.window'](event) { 12403 this.updateCustomOptionPrices(event.detail); 12404 }, 12405 } 12406 } 12407 } 12408</script>
12408 12409<div x-data="initPrice20()" 12410 x-bind="eventListeners" 12411 class="price-box price-final_price" 12412> 12413 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 12414 <div class="price-container"> 12415 12416 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 12417 <span id="product-price-20" 12418 class="price-wrapper font-bold text-3xl text-secondary-800"> 12419 <span class="price" x-html="getFormattedFinalPrice()"> 12420 <span class="price">â¬Â 10,49</span> </span> 12421 </span> 12422 <meta itemprop="price" content="10.49"> 12423 <meta itemprop="priceCurrency" 12424 content="EUR"> 12425 </div> 12426 </div> 12427 </div> 12428 <template x-if="activeProductsPriceData && 12429 activeProductsPriceData.oldPrice && 12430 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 12431 "> 12432 <div class="old-price flex mr-2"> 12433 <span id="product-price-20" 12434 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 12435 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 12436 </span> 12437 </div> 12438 </template> 12439 <template x-if="activeProductsPriceData"> 12440 <div class="final-price inline-block"> 12441 <span id="product-price-20" 12442 class="price-wrapper font-bold text-3xl text-secondary-800"> 12443 <span class="price" x-html="getFormattedFinalPrice()"></span> 12444 </span> 12445 </div> 12446 </template> 12447 </div> 12448 </div> 12449 </div> 12450</div> 12451 12452<div class="flex flex-col items-center"> 12453 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 12454 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 12455 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 12456<title>In Winkelmand</title></svg> 12457 In Winkelmand </button> 12458 12459 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 12460 Nee, vandaag niet </button> 12461</div> 12462 </div> 12463 </div> 12464 </div> 12465 12466 <button @click="show('dialog6ac3024e5f176', this.$event || $event)" 12467 class="btn btn-primary lg:w-full" 12468 type="button" 12469 aria-haspopup="dialog" 12470 > 12471 Kies uw voordeel </button> 12472 </div> 12473 </div> 12474 12475 <div class="flex items-center gap-1 lg:hidden"> 12476 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 12477 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 12478 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 12479 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 12480<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
12481 <span> 12482 Tot 22:30 uur besteld = morgen in huis <span 12483 class="absolute group cursor-pointer inline-flex items-center justify-center"> 12484 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 12485 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 12486<title/></svg> 12487 <span class="absolute top-full left-1/2 -translate-x-[80%] 12488 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 12489 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 12490 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 12491 </span> 12492 </span> 12493 </div> 12494 </div> 12495</form> 12496 </li> 12497 <li> 12498
12498<script> 12499 function initQtyFromTier121() { 12500 return { 12501 qty: 1, 12502 updateQty(event) { 12503 this.qty = event.detail; 12504 } 12505 } 12506 } 12507</script>
12507 12508 12509<form method="post" 12510 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/121/" 12511 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 12512 x-data="initQtyFromTier121()" 12513 @update-qty-121="updateQty(event)" 12514 12515 > 12516 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="121"/> 12517 <input type="hidden" 12518 name="qty" 12519 id="qty[121]" 12520 :value="qty" 12521 x-model.number="qty" 12522 /> 12523 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 12524 <a href="https://www.123drogisterij.nl/tena-for-men-level-3" 12525 title="TENA For Men Level 3" 12526 class="product photo product-item-photo block w-1/3 lg:w-1/4" 12527 tabindex="-1" 12528 > 12529 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_level_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-121.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_level_3.jpg" loading="lazy" width="187" height="234" alt="Tena Men Level 3" title="Tena Men Level 3" loading="lazy" /></picture> 12530 </a> 12531 12532 <div class="w-2/3 lg:mx-8"> 12533 <strong> 12534 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 12535 href="https://www.123drogisterij.nl/tena-for-men-level-3" 12536 :id="`slide-desc-121-${$id('slider-id')}`" 12537 > 12538 TENA For Men Level 3 </a> 12539 </strong> 12540 12541 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 12542 <span class="block text-gray-500 mb-1"> 12543 Artikelnummer: 750830 </span> 12544 12545 <span class="block text-gray-500 mb-1 lg:text-md"> 12546 Verpakking: 16 stuks </span> 12547 </div> 12548 12549 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 12550 Absorptievermogen: 12551 <div class="flex gap-2"> 12552 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12553 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12554 </svg> 12555 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12556 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12557 </svg> 12558 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12559 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12560 </svg> 12561 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12562 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12563 </svg> 12564 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12565 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
12565697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12566 </svg> 12567 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12568 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12569 </svg> 12570 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12571 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12572 </svg> 12573 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12574 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12575 </svg> 12576 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12577 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12578 </svg> 12579 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12580 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12581 </svg> 12582 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 12583 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 12584 </svg> 12585 </div> 12586 </span> 12587 12588 <div class="lg:hidden"> 12589 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 12590 " 12591 title="Beschikbaarheid" 12592 > 12593 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 12594 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 12595<title>check-circle</title></svg> 12596Op voorraad </p> 12597 </div> 12598 12599 <div class="hidden lg:block" 12600 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 12601 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
12602 content = trimToSentence(originalContent, maxLength); 12603 isVisible = false"; 12604 > 12605 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 12606 TENA Men Level 3 is een inlegger speciaal voor mannen die wat meer opname nodig hebben. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 710 milliliter. </div> 12607 12608 <div class="prose md:prose-base text-md" x-show="isVisible"> 12609 TENA Men Level 3 is een inlegger speciaal voor mannen die wat meer opname nodig hebben. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De </div> 12610 12611 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 12612 @click="isCollapsed = !isCollapsed" 12613 x-show="originalContent.length > maxLength ? true : false" 12614 type="button" 12615 > 12616 <span x-text="isCollapsed ? 12617 'Lees minder' : 12618 'Lees meer'" 12619 ></span> 12620 </button> 12621 </div> 12622 </div> 12623 </div> 12624 12625 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 12626 <div class="lg:hidden" 12627 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 12628 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
12629 content = trimToSentence(originalContent, maxLength); 12630 isVisible = false"; 12631 > 12632 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 12633 TENA Men Level 3 is een inlegger speciaal voor mannen die wat meer opname nodig hebben. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 710 milliliter. </div> 12634 12635 <div class="prose md:prose-base" x-show="isVisible"> 12636 TENA Men Level 3 is een inlegger speciaal voor mannen die wat meer opname nodig hebben. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger i </div> 12637 12638 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 12639 @click="isCollapsed = !isCollapsed" 12640 x-show="originalContent.length > maxLength ? true : false" 12641 type="button" 12642 > 12643 <span x-text="isCollapsed ? 12644 'Lees minder' : 12645 'Lees meer'" 12646 ></span> 12647 </button> 12648 </div> 12649 12650 12651 <div class="hidden lg:block lg:text-md"> 12652 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 12653 " 12654 title="Beschikbaarheid" 12655 > 12656 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 12657 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 12658<title>check-circle</title></svg> 12659Op voorraad </p> 12660 </div> 12661 12662 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 12663 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 12664 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 12665 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 12666 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 12667<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 12668 <span> 12669 Tot 22:30 uur besteld = morgen in huis <span 12670 class="absolute group cursor-pointer inline-flex"> 12671 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 12672 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 12673<title/></svg> 12674 <span class="absolute top-full left-1/2 -translate-x-[80%] 12675 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 12676 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 12677 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 12678 </span> 12679 </span> 12680 </div> 12681 12682 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 12683 <div class="pt-1 text-gray-900" 12684 x-data="initPriceBox()" 12685 x-defer="intersect" 12686 @update-prices-121.window="updatePrice($event.detail);" 12687 > 12688 <div class="price-box price-final_price" data-role="priceBox" data-product-id="121" data-price-box="product-id-121"> 12689 12690 <span
12691 x-data x-id="['product\u002Dprice\u002D121']" class="price-container price-final_price tax weee" 12692 > 12693 <span :id="$id('product\u002Dprice\u002D121')" data-price-amount="10.49" 12694 data-price-type="finalPrice" 12695 class="price-wrapper " 12696 ><span class="price">â¬Â 10,49</span></span> 12697 </span> 12698 12699 <span class="minimal-price-link"> 12700 <span 12701 x-data x-id="['121']" class="price-container price-final_price tax weee" 12702 > 12703 <span class="price-label">Vanaf</span> 12704 <span :id="$id('121')" data-price-amount="8.29" 12705 data-price-type="" 12706 class="price-wrapper " 12707 >â¬Â 8,29</span> 12708 </span> 12709 </span> 12710</div> </div> 12711 12712 <div x-data="hyva.modal()" class="lg:w-full"> 12713 <div x-cloak data-dialog-ref-name="dialog6ac3024e6571c" 12714 x-bind="overlay" 12715 class="fixed inset-0 bg-black/50 z-50"> 12716 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 12717 <div x-ref="dialog6ac3024e6571c" role="dialog" aria-modal="true" 12718 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 12719 12720<button @click="hide" type="button"> 12721 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 12722 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 12723<title>Sluiten</title></svg> 12724</button> 12725 12726<h2 class="text-primary-500 text-center mb-4"> 12727 Extra besparen?</h2> 12728 12729<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 12730 <div class="flex gap-2 mb-4"> 12731 <a href="https://www.123drogisterij.nl/tena-for-men-level-3" 12732 title="TENA For Men Level 3" 12733 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 12734 tabindex="-1" 12735 > 12736 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_level_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-121.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_level_3.jpg" loading="lazy" width="261" height="261" alt="Tena Men Level 3" title="Tena Men Level 3" loading="lazy" /></picture> 12737 </a> 12738 12739 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 12740 <a href="https://www.123drogisterij.nl/tena-for-men-level-3"> 12741 <strong class="text-xl"> 12742 TENA For Men Level 3 </strong> 12743 </a> 12744 12745
12745<script> 12746 function initPrice121() { 12747 12748 const regularPriceInclTaxKey = 'oldPrice', 12749 regularPriceExclTaxKey = 'baseOldPrice', 12750 finalPriceInclTaxKey = 'finalPrice', 12751 finalPriceExclTaxKey = 'basePrice'; 12752 12753 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 12754 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 12755 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 12756 if (customOptionPrice) { 12757 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 12758 } 12759 return priceAccumulator; 12760 }, 0); 12761 } 12762 12763 return { 12764 regularPriceKey: regularPriceInclTaxKey, 12765 finalPriceKey: finalPriceInclTaxKey, 12766 activeProductsPriceData: false, 12767 initialFinalPrice: 10.49, 12768 calculatedFinalPrice: false, 12769 calculatedFinalPriceWithCustomOptions: false, 12770 initialTierPrices: [{"price_id":"1543","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"121","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1624","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"121","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 12771 showRegularPriceLabel: false, 12772 customOptionPrices: [], 12773 activeCustomOptions: [], 12774 qty: 1, 12775 updateCustomOptionActive(data) { 12776 let activeCustomOptions = this.activeCustomOptions; 12777 const customOptionId = data.customOptionId; 12778 12779 if (data.active) { 12780 if (!activeCustomOptions.includes(customOptionId)) { 12781 activeCustomOptions.push(data.customOptionId); 12782 } 12783 } else { 12784 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 12785 let index = activeCustomOptions.indexOf(customOptionId); 12786 activeCustomOptions.splice(index, 1); 12787 } 12788 } 12789 this.calculateFinalPriceWithCustomOptions() 12790 }, 12791 updateCustomOptionPrices(prices, basePrices) { 12792 if (prices) { 12793 this.customOptionPrices = prices; 12794 } 12795 12796 12797 this.calculateFinalPriceWithCustomOptions(); 12798 }, 12799 calculateFinalPrice() { 12800 12801 const getOptionTierPrice = (tierPrice, withTax) => { 12802 return tierPrice[withTax ? 'price' : 'basePrice']; 12803 } 12804 12805 const findApplicableTierPrice = (initialPrice, withTax) => { 12806 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 12807 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 12808 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 12809 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 12810 return tierPriceCandidate; 12811 } 12812 return acc; 12813 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 12814 12815 } else { 12816 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 12817 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 12818 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 12819 return tierPrice[key]; 12820 } 12821 return acc; 12822 }, initialPrice); 12823 12824 } 12825 } 12826 12827 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 12828 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 12829 12830 },
12831 calculatePriceLabelVisibility() { 12832 this.showRegularPriceLabel = 12833 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 12834 this.activeProductsPriceData.isMinimalPrice; 12835 }, 12836 calculateFinalPriceWithCustomOptions() { 12837 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 12838 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 12839 }, 12840 getCustomOptionPrice() { 12841 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 12842 }, 12843 getFormattedFinalPrice() { 12844 return hyva.formatPrice( 12845 this.calculatedFinalPriceWithCustomOptions || 12846 this.calculatedFinalPrice || 12847 this.initialFinalPrice 12848 ) 12849 }, 12850 isPriceHidden() { 12851 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 12852 this.calculatedFinalPrice || 12853 this.initialFinalPrice; 12854 return false && finalPrice === 0; 12855 }, 12856 eventListeners: { 12857 ['@update-prices-121.window'](event) { 12858 this.activeProductsPriceData = event.detail; 12859 12860 this.calculateFinalPrice(); 12861 this.calculateFinalPriceWithCustomOptions(); 12862 this.calculatePriceLabelVisibility(); 12863 }, 12864 ['@update-qty-121.window'](event) { 12865 this.qty = event.detail; 12866 this.calculateFinalPrice(); 12867 this.calculateFinalPriceWithCustomOptions(); 12868 }, 12869 ['@update-custom-option-active.window'](event) { 12870 this.updateCustomOptionActive(event.detail); 12871 }, 12872 ['@update-custom-option-prices.window'](event) { 12873 this.updateCustomOptionPrices(event.detail); 12874 }, 12875 } 12876 } 12877 } 12878</script>
12878 12879<div x-data="initPrice121()" 12880 x-bind="eventListeners" 12881 class="price-box price-final_price" 12882> 12883 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 12884 <div class="price-container"> 12885 12886 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 12887 <span id="product-price-121" 12888 class="price-wrapper font-bold text-3xl text-secondary-800"> 12889 <span class="price" x-html="getFormattedFinalPrice()"> 12890 <span class="price">â¬Â 10,49</span> </span> 12891 </span> 12892 <meta itemprop="price" content="10.49"> 12893 <meta itemprop="priceCurrency" 12894 content="EUR"> 12895 </div> 12896 </div> 12897 </div> 12898 <template x-if="activeProductsPriceData && 12899 activeProductsPriceData.oldPrice && 12900 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 12901 "> 12902 <div class="old-price flex mr-2"> 12903 <span id="product-price-121" 12904 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 12905 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 12906 </span> 12907 </div> 12908 </template> 12909 <template x-if="activeProductsPriceData"> 12910 <div class="final-price inline-block"> 12911 <span id="product-price-121" 12912 class="price-wrapper font-bold text-3xl text-secondary-800"> 12913 <span class="price" x-html="getFormattedFinalPrice()"></span> 12914 </span> 12915 </div> 12916 </template> 12917 </div> 12918 </div> 12919 </div> 12920 12921 <div class="tier-price-popup lg:w-1/2"> 12922 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-for-men-level-3"> 12923 <strong class="text-2xl"> 12924 TENA For Men Level 3 </strong> 12925 </a> 12926 12927
12927<script> 12928 function initTierPrice121() { 12929 return { 12930 qty: 1, 12931 minSalesQty: 1, 12932 isStandardSelected() { 12933 return this.qty < 5; 12934 }, 12935 eventListeners: { 12936 ['@update-qty-121.window'](event) { 12937 if (this.qty !== event.detail) { 12938 this.qty = event.detail; 12939 } 12940 } 12941 } 12942 } 12943 } 12944 </script>
12944 12945 <div class="prices-tier items mb-4" 12946 x-data="initTierPrice121()" 12947 x-bind="eventListeners" 12948 > 12949 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 12950 :class="{'active-tier-price121 border-green-600 shadow-hard': 12951 qty >= 5 && qty < 10}" 12952 @click="$dispatch('update-qty-121', 5);" 12953 data-qty="5" 12954 > 12955 12956 <div class="flex flex-row items-center"> 12957 <div class="flex flex-col flex-grow"> 12958 <div class="flex flex-row items-center justify-between"> 12959 <div class="flex items-center space-x-2"> 12960 <div class="price-container font-bold text-lg"> 12961 <span 12962 class="price-container price-tier_price tax weee" 12963 > 12964 <span data-price-amount="9.19" 12965 data-price-type="" 12966 class="price-wrapper " 12967 ><span class="price">â¬Â 9,19</span></span> 12968 </span> 12969 </div> 12970 <span class="ml-2 text-base"> 12971 per stuk </span> 12972 </div> 12973 <span> 12974 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 12</span>%</strong> </span> 12975 </div> 12976 12977 <div class="mt-1"> 12978 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 12979 <span>5 verpakkingen</span> </span> 12980 </div> 12981 </div> 12982 </div> 12983 </div> 12984 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 12985 :class="{'active-tier-price121 border-green-600 shadow-hard': 12986 qty >= 10 && qty < 10000}" 12987 @click="$dispatch('update-qty-121', 10);" 12988 data-qty="10" 12989 > 12990 12991 <div class="flex flex-row items-center"> 12992 <div class="flex flex-col flex-grow"> 12993 <div class="flex flex-row items-center justify-between"> 12994 <div class="flex items-center space-x-2"> 12995 <div class="price-container font-bold text-lg"> 12996 <span 12997 x-data x-id="['1']" class="price-container price-tier_price tax weee" 12998 > 12999 <span :id="$id('1')" data-price-amount="8.29" 13000 data-price-type="" 13001 class="price-wrapper " 13002 ><span class="price">â¬Â 8,29</span></span> 13003 </span> 13004 </div> 13005 <span class="ml-2 text-base"> 13006 per stuk </span> 13007 </div> 13008 <span 13009 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 13010 <strong>Voordeligste keuze</strong> 13011 </span> 13012 <span> 13013 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 21</span>%</strong> </span> 13014 </div> 13015 13016 <div class="mt-1">
13017 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 13018 <span>10 verpakkingen</span> </span> 13019 </div> 13020 </div> 13021 </div> 13022 <div class="choice-mobile mt-4 xl:hidden"> 13023 <hr class="p-2"> 13024 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 13025 <strong>Voordeligste keuze</strong> 13026 </span> 13027 </div> 13028 </div> 13029 13030 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 13031 :class="{'active-tier-price121 border-green-600 shadow-hard': isStandardSelected() }" 13032 @click="$dispatch('update-qty-121', minSalesQty);" 13033 > 13034 <div class="flex flex-row items-center"> 13035 <div class="flex flex-col flex-grow"> 13036 <div class="flex flex-row items-center"> 13037 <div class="flex items-center space-x-2"> 13038 <div class="price-container font-bold text-lg"> 13039 <span class="price">â¬Â 10,49</span> </div> 13040 <span class="ml-2 text-base"> 13041 per stuk </span> 13042 </div> 13043 <strong class="ml-auto text-gray-500"> 13044 Standaard </strong> 13045 </div> 13046 13047 <div class="mt-1"> 13048 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 13049 <span>1 verpakking</span> </span> 13050 </div> 13051 </div> 13052 </div> 13053 </div> 13054 13055 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 13056 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 13057 x-show="isStandardSelected() && true" 13058 x-cloak> 13059 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 13060 <div class="ml-6 text-sm opacity-90"> 13061 <strong>Let op:</strong> 13062 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 13063 <div class="ml-6 text-sm leading-snug opacity-60"> 13064 Kies een andere optie voor extra voordeel! </div> 13065 </div> 13066 </div> 13067 13068 <div class="hidden lg:block"> 13069
13069<script> 13070 function initPrice121() { 13071 13072 const regularPriceInclTaxKey = 'oldPrice', 13073 regularPriceExclTaxKey = 'baseOldPrice', 13074 finalPriceInclTaxKey = 'finalPrice', 13075 finalPriceExclTaxKey = 'basePrice'; 13076 13077 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 13078 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 13079 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 13080 if (customOptionPrice) { 13081 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 13082 } 13083 return priceAccumulator; 13084 }, 0); 13085 } 13086 13087 return { 13088 regularPriceKey: regularPriceInclTaxKey, 13089 finalPriceKey: finalPriceInclTaxKey, 13090 activeProductsPriceData: false, 13091 initialFinalPrice: 10.49, 13092 calculatedFinalPrice: false, 13093 calculatedFinalPriceWithCustomOptions: false, 13094 initialTierPrices: [{"price_id":"1543","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"121","website_price":9.19,"price_incl_tax":9.19,"price_excl_tax":8.4311916605505},{"price_id":"1624","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"121","website_price":8.29,"price_incl_tax":8.29,"price_excl_tax":7.605503587156}], 13095 showRegularPriceLabel: false, 13096 customOptionPrices: [], 13097 activeCustomOptions: [], 13098 qty: 1, 13099 updateCustomOptionActive(data) { 13100 let activeCustomOptions = this.activeCustomOptions; 13101 const customOptionId = data.customOptionId; 13102 13103 if (data.active) { 13104 if (!activeCustomOptions.includes(customOptionId)) { 13105 activeCustomOptions.push(data.customOptionId); 13106 } 13107 } else { 13108 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 13109 let index = activeCustomOptions.indexOf(customOptionId); 13110 activeCustomOptions.splice(index, 1); 13111 } 13112 } 13113 this.calculateFinalPriceWithCustomOptions() 13114 }, 13115 updateCustomOptionPrices(prices, basePrices) { 13116 if (prices) { 13117 this.customOptionPrices = prices; 13118 } 13119 13120 13121 this.calculateFinalPriceWithCustomOptions(); 13122 }, 13123 calculateFinalPrice() { 13124 13125 const getOptionTierPrice = (tierPrice, withTax) => { 13126 return tierPrice[withTax ? 'price' : 'basePrice']; 13127 } 13128 13129 const findApplicableTierPrice = (initialPrice, withTax) => { 13130 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 13131 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 13132 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 13133 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 13134 return tierPriceCandidate; 13135 } 13136 return acc; 13137 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 13138 13139 } else { 13140 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 13141 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 13142 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 13143 return tierPrice[key]; 13144 } 13145 return acc; 13146 }, initialPrice); 13147 13148 } 13149 } 13150 13151 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 13152 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 13153 13154 },
13155 calculatePriceLabelVisibility() { 13156 this.showRegularPriceLabel = 13157 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 13158 this.activeProductsPriceData.isMinimalPrice; 13159 }, 13160 calculateFinalPriceWithCustomOptions() { 13161 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 13162 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 13163 }, 13164 getCustomOptionPrice() { 13165 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 13166 }, 13167 getFormattedFinalPrice() { 13168 return hyva.formatPrice( 13169 this.calculatedFinalPriceWithCustomOptions || 13170 this.calculatedFinalPrice || 13171 this.initialFinalPrice 13172 ) 13173 }, 13174 isPriceHidden() { 13175 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 13176 this.calculatedFinalPrice || 13177 this.initialFinalPrice; 13178 return false && finalPrice === 0; 13179 }, 13180 eventListeners: { 13181 ['@update-prices-121.window'](event) { 13182 this.activeProductsPriceData = event.detail; 13183 13184 this.calculateFinalPrice(); 13185 this.calculateFinalPriceWithCustomOptions(); 13186 this.calculatePriceLabelVisibility(); 13187 }, 13188 ['@update-qty-121.window'](event) { 13189 this.qty = event.detail; 13190 this.calculateFinalPrice(); 13191 this.calculateFinalPriceWithCustomOptions(); 13192 }, 13193 ['@update-custom-option-active.window'](event) { 13194 this.updateCustomOptionActive(event.detail); 13195 }, 13196 ['@update-custom-option-prices.window'](event) { 13197 this.updateCustomOptionPrices(event.detail); 13198 }, 13199 } 13200 } 13201 } 13202</script>
13202 13203<div x-data="initPrice121()" 13204 x-bind="eventListeners" 13205 class="price-box price-final_price" 13206> 13207 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 13208 <div class="price-container"> 13209 13210 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 13211 <span id="product-price-121" 13212 class="price-wrapper font-bold text-3xl text-secondary-800"> 13213 <span class="price" x-html="getFormattedFinalPrice()"> 13214 <span class="price">â¬Â 10,49</span> </span> 13215 </span> 13216 <meta itemprop="price" content="10.49"> 13217 <meta itemprop="priceCurrency" 13218 content="EUR"> 13219 </div> 13220 </div> 13221 </div> 13222 <template x-if="activeProductsPriceData && 13223 activeProductsPriceData.oldPrice && 13224 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 13225 "> 13226 <div class="old-price flex mr-2"> 13227 <span id="product-price-121" 13228 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 13229 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 13230 </span> 13231 </div> 13232 </template> 13233 <template x-if="activeProductsPriceData"> 13234 <div class="final-price inline-block"> 13235 <span id="product-price-121" 13236 class="price-wrapper font-bold text-3xl text-secondary-800"> 13237 <span class="price" x-html="getFormattedFinalPrice()"></span> 13238 </span> 13239 </div> 13240 </template> 13241 </div> 13242 </div> 13243 </div> 13244</div> 13245 13246<div class="flex flex-col items-center"> 13247 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 13248 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 13249 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 13250<title>In Winkelmand</title></svg> 13251 In Winkelmand </button> 13252 13253 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 13254 Nee, vandaag niet </button> 13255</div> 13256 </div> 13257 </div> 13258 </div> 13259 13260 <button @click="show('dialog6ac3024e6571c', this.$event || $event)" 13261 class="btn btn-primary lg:w-full" 13262 type="button" 13263 aria-haspopup="dialog" 13264 > 13265 Kies uw voordeel </button> 13266 </div> 13267 </div> 13268 13269 <div class="flex items-center gap-1 lg:hidden"> 13270 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 13271 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 13272 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 13273 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 13274<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
13275 <span> 13276 Tot 22:30 uur besteld = morgen in huis <span 13277 class="absolute group cursor-pointer inline-flex items-center justify-center"> 13278 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 13279 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 13280<title/></svg> 13281 <span class="absolute top-full left-1/2 -translate-x-[80%] 13282 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 13283 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 13284 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 13285 </span> 13286 </span> 13287 </div> 13288 </div> 13289</form> 13290 </li> 13291 <li> 13292
13292<script> 13293 function initQtyFromTier1191() { 13294 return { 13295 qty: 1, 13296 updateQty(event) { 13297 this.qty = event.detail; 13298 } 13299 } 13300 } 13301</script>
13301 13302 13303<form method="post" 13304 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1191/" 13305 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 13306 x-data="initQtyFromTier1191()" 13307 @update-qty-1191="updateQty(event)" 13308 13309 > 13310 <input name="form_key" type="hidden" value="jKR67ytg1wE7dTx6" /> <input type="hidden" name="product" value="1191"/> 13311 <input type="hidden" 13312 name="qty" 13313 id="qty[1191]" 13314 :value="qty" 13315 x-model.number="qty" 13316 /> 13317 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 13318 <a href="https://www.123drogisterij.nl/tena-men-active-fit-large-extra-large" 13319 title="TENA Men Active Fit Large/Extra Large" 13320 class="product photo product-item-photo block w-1/3 lg:w-1/4" 13321 tabindex="-1" 13322 > 13323 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_active_fit.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1191.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_active_fit.jpg" loading="lazy" width="187" height="234" alt="Tena Men Active Fit L/XL" title="Tena Men Active Fit L/XL" loading="lazy" /></picture> 13324 </a> 13325 13326 <div class="w-2/3 lg:mx-8"> 13327 <strong> 13328 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 13329 href="https://www.123drogisterij.nl/tena-men-active-fit-large-extra-large" 13330 :id="`slide-desc-1191-${$id('slider-id')}`" 13331 > 13332 TENA Men Active Fit Large/Extra Large </a> 13333 </strong> 13334 13335 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 13336 <span class="block text-gray-500 mb-1"> 13337 Artikelnummer: 772610 </span> 13338 13339 <span class="block text-gray-500 mb-1 lg:text-md"> 13340 Verpakking: 10 stuks </span> 13341 </div> 13342 13343 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 13344 Absorptievermogen: 13345 <div class="flex gap-2"> 13346 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13347 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13348 </svg> 13349 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13350 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13351 </svg> 13352 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13353 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13354 </svg> 13355 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13356 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13357 </svg> 13358 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13359 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
13359697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13360 </svg> 13361 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13362 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13363 </svg> 13364 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13365 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13366 </svg> 13367 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13368 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13369 </svg> 13370 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13371 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13372 </svg> 13373 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13374 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13375 </svg> 13376 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 13377 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 13378 </svg> 13379 </div> 13380 </span> 13381 13382 <div class="lg:hidden"> 13383 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 13384 " 13385 title="Beschikbaarheid" 13386 > 13387 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 13388 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 13389<title>check-circle</title></svg> 13390Op voorraad </p> 13391 </div> 13392 13393 <div class="hidden lg:block" 13394 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 13395 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
13396 content = trimToSentence(originalContent, maxLength); 13397 isVisible = false"; 13398 > 13399 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 13400 TENA Men Active Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Large heeft een discreet en mannelijk design. </div> 13401 13402 <div class="prose md:prose-base text-md" x-show="isVisible"> 13403 TENA Men Active Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is </div> 13404 13405 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 13406 @click="isCollapsed = !isCollapsed" 13407 x-show="originalContent.length > maxLength ? true : false" 13408 type="button" 13409 > 13410 <span x-text="isCollapsed ? 13411 'Lees minder' : 13412 'Lees meer'" 13413 ></span> 13414 </button> 13415 </div> 13416 </div> 13417 </div> 13418 13419 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 13420 <div class="lg:hidden" 13421 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 13422 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
13423 content = trimToSentence(originalContent, maxLength); 13424 isVisible = false"; 13425 > 13426 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 13427 TENA Men Active Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Large heeft een discreet en mannelijk design. </div> 13428 13429 <div class="prose md:prose-base" x-show="isVisible"> 13430 TENA Men Active Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010ml. D </div> 13431 13432 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 13433 @click="isCollapsed = !isCollapsed" 13434 x-show="originalContent.length > maxLength ? true : false" 13435 type="button" 13436 > 13437 <span x-text="isCollapsed ? 13438 'Lees minder' : 13439 'Lees meer'" 13440 ></span> 13441 </button> 13442 </div> 13443 13444 13445 <div class="hidden lg:block lg:text-md"> 13446 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 13447 " 13448 title="Beschikbaarheid" 13449 > 13450 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 13451 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 13452<title>check-circle</title></svg> 13453Op voorraad </p> 13454 </div> 13455 13456 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 13457 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 13458 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 13459 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 13460 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 13461<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 13462 <span> 13463 Tot 22:30 uur besteld = morgen in huis <span 13464 class="absolute group cursor-pointer inline-flex"> 13465 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 13466 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 13467<title/></svg> 13468 <span class="absolute top-full left-1/2 -translate-x-[80%] 13469 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 13470 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 13471 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 13472 </span> 13473 </span> 13474 </div> 13475 13476 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 13477 <div class="pt-1 text-gray-900" 13478 x-data="initPriceBox()" 13479 x-defer="intersect" 13480 @update-prices-1191.window="updatePrice($event.detail);" 13481 > 13482 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1191" data-price-box="product-id-1191"> 13483 13484 <span
13485 x-data x-id="['product\u002Dprice\u002D1191']" class="price-container price-final_price tax weee" 13486 > 13487 <span :id="$id('product\u002Dprice\u002D1191')" data-price-amount="15.98" 13488 data-price-type="finalPrice" 13489 class="price-wrapper " 13490 ><span class="price">â¬Â 15,98</span></span> 13491 </span> 13492 13493 <span class="minimal-price-link"> 13494 <span 13495 x-data x-id="['1191']" class="price-container price-final_price tax weee" 13496 > 13497 <span class="price-label">Vanaf</span> 13498 <span :id="$id('1191')" data-price-amount="14.19" 13499 data-price-type="" 13500 class="price-wrapper " 13501 >â¬Â 14,19</span> 13502 </span> 13503 </span> 13504</div> </div> 13505 13506 <div x-data="hyva.modal()" class="lg:w-full"> 13507 <div x-cloak data-dialog-ref-name="dialog6ac2fb3127c65" 13508 x-bind="overlay" 13509 class="fixed inset-0 bg-black/50 z-50"> 13510 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 13511 <div x-ref="dialog6ac2fb3127c65" role="dialog" aria-modal="true" 13512 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 13513 13514<button @click="hide" type="button"> 13515 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 13516 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 13517<title>Sluiten</title></svg> 13518</button> 13519 13520<h2 class="text-primary-500 text-center mb-4"> 13521 Extra besparen?</h2> 13522 13523<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 13524 <div class="flex gap-2 mb-4"> 13525 <a href="https://www.123drogisterij.nl/tena-men-active-fit-large-extra-large" 13526 title="TENA Men Active Fit Large/Extra Large" 13527 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 13528 tabindex="-1" 13529 > 13530 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_active_fit.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1191.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_active_fit.jpg" loading="lazy" width="261" height="261" alt="Tena Men Active Fit L/XL" title="Tena Men Active Fit L/XL" loading="lazy" /></picture> 13531 </a> 13532 13533 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 13534 <a href="https://www.123drogisterij.nl/tena-men-active-fit-large-extra-large"> 13535 <strong class="text-xl"> 13536 TENA Men Active Fit Large/Extra Large </strong> 13537 </a> 13538 13539
13539<script> 13540 function initPrice1191() { 13541 13542 const regularPriceInclTaxKey = 'oldPrice', 13543 regularPriceExclTaxKey = 'baseOldPrice', 13544 finalPriceInclTaxKey = 'finalPrice', 13545 finalPriceExclTaxKey = 'basePrice'; 13546 13547 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 13548 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 13549 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 13550 if (customOptionPrice) { 13551 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 13552 } 13553 return priceAccumulator; 13554 }, 0); 13555 } 13556 13557 return { 13558 regularPriceKey: regularPriceInclTaxKey, 13559 finalPriceKey: finalPriceInclTaxKey, 13560 activeProductsPriceData: false, 13561 initialFinalPrice: 15.98, 13562 calculatedFinalPrice: false, 13563 calculatedFinalPriceWithCustomOptions: false, 13564 initialTierPrices: [{"price_id":"1547","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1191","website_price":15.35,"price_incl_tax":15.35,"price_excl_tax":14.082567807339},{"price_id":"1628","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1191","website_price":14.19,"price_incl_tax":14.19,"price_excl_tax":13.018347623853}], 13565 showRegularPriceLabel: false, 13566 customOptionPrices: [], 13567 activeCustomOptions: [], 13568 qty: 1, 13569 updateCustomOptionActive(data) { 13570 let activeCustomOptions = this.activeCustomOptions; 13571 const customOptionId = data.customOptionId; 13572 13573 if (data.active) { 13574 if (!activeCustomOptions.includes(customOptionId)) { 13575 activeCustomOptions.push(data.customOptionId); 13576 } 13577 } else { 13578 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 13579 let index = activeCustomOptions.indexOf(customOptionId); 13580 activeCustomOptions.splice(index, 1); 13581 } 13582 } 13583 this.calculateFinalPriceWithCustomOptions() 13584 }, 13585 updateCustomOptionPrices(prices, basePrices) { 13586 if (prices) { 13587 this.customOptionPrices = prices; 13588 } 13589 13590 13591 this.calculateFinalPriceWithCustomOptions(); 13592 }, 13593 calculateFinalPrice() { 13594 13595 const getOptionTierPrice = (tierPrice, withTax) => { 13596 return tierPrice[withTax ? 'price' : 'basePrice']; 13597 } 13598 13599 const findApplicableTierPrice = (initialPrice, withTax) => { 13600 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 13601 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 13602 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 13603 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 13604 return tierPriceCandidate; 13605 } 13606 return acc; 13607 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 13608 13609 } else { 13610 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 13611 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 13612 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 13613 return tierPrice[key]; 13614 } 13615 return acc; 13616 }, initialPrice); 13617 13618 } 13619 } 13620 13621 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 13622 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 13623 13624 },
13625 calculatePriceLabelVisibility() { 13626 this.showRegularPriceLabel = 13627 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 13628 this.activeProductsPriceData.isMinimalPrice; 13629 }, 13630 calculateFinalPriceWithCustomOptions() { 13631 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 13632 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 13633 }, 13634 getCustomOptionPrice() { 13635 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 13636 }, 13637 getFormattedFinalPrice() { 13638 return hyva.formatPrice( 13639 this.calculatedFinalPriceWithCustomOptions || 13640 this.calculatedFinalPrice || 13641 this.initialFinalPrice 13642 ) 13643 }, 13644 isPriceHidden() { 13645 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 13646 this.calculatedFinalPrice || 13647 this.initialFinalPrice; 13648 return false && finalPrice === 0; 13649 }, 13650 eventListeners: { 13651 ['@update-prices-1191.window'](event) { 13652 this.activeProductsPriceData = event.detail; 13653 13654 this.calculateFinalPrice(); 13655 this.calculateFinalPriceWithCustomOptions(); 13656 this.calculatePriceLabelVisibility(); 13657 }, 13658 ['@update-qty-1191.window'](event) { 13659 this.qty = event.detail; 13660 this.calculateFinalPrice(); 13661 this.calculateFinalPriceWithCustomOptions(); 13662 }, 13663 ['@update-custom-option-active.window'](event) { 13664 this.updateCustomOptionActive(event.detail); 13665 }, 13666 ['@update-custom-option-prices.window'](event) { 13667 this.updateCustomOptionPrices(event.detail); 13668 }, 13669 } 13670 } 13671 } 13672</script>
13672 13673<div x-data="initPrice1191()" 13674 x-bind="eventListeners" 13675 class="price-box price-final_price" 13676> 13677 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 13678 <div class="price-container"> 13679 13680 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 13681 <span id="product-price-1191" 13682 class="price-wrapper font-bold text-3xl text-secondary-800"> 13683 <span class="price" x-html="getFormattedFinalPrice()"> 13684 <span class="price">â¬Â 15,98</span> </span> 13685 </span> 13686 <meta itemprop="price" content="15.98"> 13687 <meta itemprop="priceCurrency" 13688 content="EUR"> 13689 </div> 13690 </div> 13691 </div> 13692 <template x-if="activeProductsPriceData && 13693 activeProductsPriceData.oldPrice && 13694 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 13695 "> 13696 <div class="old-price flex mr-2"> 13697 <span id="product-price-1191" 13698 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 13699 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 13700 </span> 13701 </div> 13702 </template> 13703 <template x-if="activeProductsPriceData"> 13704 <div class="final-price inline-block"> 13705 <span id="product-price-1191" 13706 class="price-wrapper font-bold text-3xl text-secondary-800"> 13707 <span class="price" x-html="getFormattedFinalPrice()"></span> 13708 </span> 13709 </div> 13710 </template> 13711 </div> 13712 </div> 13713 </div> 13714 13715 <div class="tier-price-popup lg:w-1/2"> 13716 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-active-fit-large-extra-large"> 13717 <strong class="text-2xl"> 13718 TENA Men Active Fit Large/Extra Large </strong> 13719 </a> 13720 13721
13721<script> 13722 function initTierPrice1191() { 13723 return { 13724 qty: 1, 13725 minSalesQty: 1, 13726 isStandardSelected() { 13727 return this.qty < 5; 13728 }, 13729 eventListeners: { 13730 ['@update-qty-1191.window'](event) { 13731 if (this.qty !== event.detail) { 13732 this.qty = event.detail; 13733 } 13734 } 13735 } 13736 } 13737 } 13738 </script>
13738 13739 <div class="prices-tier items mb-4" 13740 x-data="initTierPrice1191()" 13741 x-bind="eventListeners" 13742 > 13743 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 13744 :class="{'active-tier-price1191 border-green-600 shadow-hard': 13745 qty >= 5 && qty < 10}" 13746 @click="$dispatch('update-qty-1191', 5);" 13747 data-qty="5" 13748 > 13749 13750 <div class="flex flex-row items-center"> 13751 <div class="flex flex-col flex-grow"> 13752 <div class="flex flex-row items-center justify-between"> 13753 <div class="flex items-center space-x-2"> 13754 <div class="price-container font-bold text-lg"> 13755 <span 13756 class="price-container price-tier_price tax weee" 13757 > 13758 <span data-price-amount="15.35" 13759 data-price-type="" 13760 class="price-wrapper " 13761 ><span class="price">â¬Â 15,35</span></span> 13762 </span> 13763 </div> 13764 <span class="ml-2 text-base"> 13765 per stuk </span> 13766 </div> 13767 <span> 13768 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 4</span>%</strong> </span> 13769 </div> 13770 13771 <div class="mt-1"> 13772 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 13773 <span>5 verpakkingen</span> </span> 13774 </div> 13775 </div> 13776 </div> 13777 </div> 13778 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 13779 :class="{'active-tier-price1191 border-green-600 shadow-hard': 13780 qty >= 10 && qty < 10000}" 13781 @click="$dispatch('update-qty-1191', 10);" 13782 data-qty="10" 13783 > 13784 13785 <div class="flex flex-row items-center"> 13786 <div class="flex flex-col flex-grow"> 13787 <div class="flex flex-row items-center justify-between"> 13788 <div class="flex items-center space-x-2"> 13789 <div class="price-container font-bold text-lg"> 13790 <span 13791 x-data x-id="['1']" class="price-container price-tier_price tax weee" 13792 > 13793 <span :id="$id('1')" data-price-amount="14.19" 13794 data-price-type="" 13795 class="price-wrapper " 13796 ><span class="price">â¬Â 14,19</span></span> 13797 </span> 13798 </div> 13799 <span class="ml-2 text-base"> 13800 per stuk </span> 13801 </div> 13802 <span 13803 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 13804 <strong>Voordeligste keuze</strong> 13805 </span> 13806 <span> 13807 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 11</span>%</strong> </span> 13808 </div> 13809 13810 <div class="mt-1">
13811 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 13812 <span>10 verpakkingen</span> </span> 13813 </div> 13814 </div> 13815 </div> 13816 <div class="choice-mobile mt-4 xl:hidden"> 13817 <hr class="p-2"> 13818 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 13819 <strong>Voordeligste keuze</strong> 13820 </span> 13821 </div> 13822 </div> 13823 13824 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 13825 :class="{'active-tier-price1191 border-green-600 shadow-hard': isStandardSelected() }" 13826 @click="$dispatch('update-qty-1191', minSalesQty);" 13827 > 13828 <div class="flex flex-row items-center"> 13829 <div class="flex flex-col flex-grow"> 13830 <div class="flex flex-row items-center"> 13831 <div class="flex items-center space-x-2"> 13832 <div class="price-container font-bold text-lg"> 13833 <span class="price">â¬Â 15,98</span> </div> 13834 <span class="ml-2 text-base"> 13835 per stuk </span> 13836 </div> 13837 <strong class="ml-auto text-gray-500"> 13838 Standaard </strong> 13839 </div> 13840 13841 <div class="mt-1"> 13842 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 13843 <span>1 verpakking</span> </span> 13844 </div> 13845 </div> 13846 </div> 13847 </div> 13848 13849 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 13850 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 13851 x-show="isStandardSelected() && true" 13852 x-cloak> 13853 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 13854 <div class="ml-6 text-sm opacity-90"> 13855 <strong>Let op:</strong> 13856 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 13857 <div class="ml-6 text-sm leading-snug opacity-60"> 13858 Kies een andere optie voor extra voordeel! </div> 13859 </div> 13860 </div> 13861 13862 <div class="hidden lg:block"> 13863
13863<script> 13864 function initPrice1191() { 13865 13866 const regularPriceInclTaxKey = 'oldPrice', 13867 regularPriceExclTaxKey = 'baseOldPrice', 13868 finalPriceInclTaxKey = 'finalPrice', 13869 finalPriceExclTaxKey = 'basePrice'; 13870 13871 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 13872 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 13873 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 13874 if (customOptionPrice) { 13875 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 13876 } 13877 return priceAccumulator; 13878 }, 0); 13879 } 13880 13881 return { 13882 regularPriceKey: regularPriceInclTaxKey, 13883 finalPriceKey: finalPriceInclTaxKey, 13884 activeProductsPriceData: false, 13885 initialFinalPrice: 15.98, 13886 calculatedFinalPrice: false, 13887 calculatedFinalPriceWithCustomOptions: false, 13888 initialTierPrices: [{"price_id":"1547","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1191","website_price":15.35,"price_incl_tax":15.35,"price_excl_tax":14.082567807339},{"price_id":"1628","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1191","website_price":14.19,"price_incl_tax":14.19,"price_excl_tax":13.018347623853}], 13889 showRegularPriceLabel: false, 13890 customOptionPrices: [], 13891 activeCustomOptions: [], 13892 qty: 1, 13893 updateCustomOptionActive(data) { 13894 let activeCustomOptions = this.activeCustomOptions; 13895 const customOptionId = data.customOptionId; 13896 13897 if (data.active) { 13898 if (!activeCustomOptions.includes(customOptionId)) { 13899 activeCustomOptions.push(data.customOptionId); 13900 } 13901 } else { 13902 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 13903 let index = activeCustomOptions.indexOf(customOptionId); 13904 activeCustomOptions.splice(index, 1); 13905 } 13906 } 13907 this.calculateFinalPriceWithCustomOptions() 13908 }, 13909 updateCustomOptionPrices(prices, basePrices) { 13910 if (prices) { 13911 this.customOptionPrices = prices; 13912 } 13913 13914 13915 this.calculateFinalPriceWithCustomOptions(); 13916 }, 13917 calculateFinalPrice() { 13918 13919 const getOptionTierPrice = (tierPrice, withTax) => { 13920 return tierPrice[withTax ? 'price' : 'basePrice']; 13921 } 13922 13923 const findApplicableTierPrice = (initialPrice, withTax) => { 13924 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 13925 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 13926 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 13927 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 13928 return tierPriceCandidate; 13929 } 13930 return acc; 13931 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 13932 13933 } else { 13934 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 13935 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 13936 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 13937 return tierPrice[key]; 13938 } 13939 return acc; 13940 }, initialPrice); 13941 13942 } 13943 } 13944 13945 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 13946 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 13947 13948 },
13949 calculatePriceLabelVisibility() { 13950 this.showRegularPriceLabel = 13951 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 13952 this.activeProductsPriceData.isMinimalPrice; 13953 }, 13954 calculateFinalPriceWithCustomOptions() { 13955 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 13956 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 13957 }, 13958 getCustomOptionPrice() { 13959 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 13960 }, 13961 getFormattedFinalPrice() { 13962 return hyva.formatPrice( 13963 this.calculatedFinalPriceWithCustomOptions || 13964 this.calculatedFinalPrice || 13965 this.initialFinalPrice 13966 ) 13967 }, 13968 isPriceHidden() { 13969 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 13970 this.calculatedFinalPrice || 13971 this.initialFinalPrice; 13972 return false && finalPrice === 0; 13973 }, 13974 eventListeners: { 13975 ['@update-prices-1191.window'](event) { 13976 this.activeProductsPriceData = event.detail; 13977 13978 this.calculateFinalPrice(); 13979 this.calculateFinalPriceWithCustomOptions(); 13980 this.calculatePriceLabelVisibility(); 13981 }, 13982 ['@update-qty-1191.window'](event) { 13983 this.qty = event.detail; 13984 this.calculateFinalPrice(); 13985 this.calculateFinalPriceWithCustomOptions(); 13986 }, 13987 ['@update-custom-option-active.window'](event) { 13988 this.updateCustomOptionActive(event.detail); 13989 }, 13990 ['@update-custom-option-prices.window'](event) { 13991 this.updateCustomOptionPrices(event.detail); 13992 }, 13993 } 13994 } 13995 } 13996</script>
13996 13997<div x-data="initPrice1191()" 13998 x-bind="eventListeners" 13999 class="price-box price-final_price" 14000> 14001 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 14002 <div class="price-container"> 14003 14004 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 14005 <span id="product-price-1191" 14006 class="price-wrapper font-bold text-3xl text-secondary-800"> 14007 <span class="price" x-html="getFormattedFinalPrice()"> 14008 <span class="price">â¬Â 15,98</span> </span> 14009 </span> 14010 <meta itemprop="price" content="15.98"> 14011 <meta itemprop="priceCurrency" 14012 content="EUR"> 14013 </div> 14014 </div> 14015 </div> 14016 <template x-if="activeProductsPriceData && 14017 activeProductsPriceData.oldPrice && 14018 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 14019 "> 14020 <div class="old-price flex mr-2"> 14021 <span id="product-price-1191" 14022 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 14023 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 14024 </span> 14025 </div> 14026 </template> 14027 <template x-if="activeProductsPriceData"> 14028 <div class="final-price inline-block"> 14029 <span id="product-price-1191" 14030 class="price-wrapper font-bold text-3xl text-secondary-800"> 14031 <span class="price" x-html="getFormattedFinalPrice()"></span> 14032 </span> 14033 </div> 14034 </template> 14035 </div> 14036 </div> 14037 </div> 14038</div> 14039 14040<div class="flex flex-col items-center"> 14041 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 14042 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 14043 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 14044<title>In Winkelmand</title></svg> 14045 In Winkelmand </button> 14046 14047 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 14048 Nee, vandaag niet </button> 14049</div> 14050 </div> 14051 </div> 14052 </div> 14053 14054 <button @click="show('dialog6ac2fb3127c65', this.$event || $event)" 14055 class="btn btn-primary lg:w-full" 14056 type="button" 14057 aria-haspopup="dialog" 14058 > 14059 Kies uw voordeel </button> 14060 </div> 14061 </div> 14062 14063 <div class="flex items-center gap-1 lg:hidden"> 14064 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 14065 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 14066 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 14067 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 14068<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
14069 <span> 14070 Tot 22:30 uur besteld = morgen in huis <span 14071 class="absolute group cursor-pointer inline-flex items-center justify-center"> 14072 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 14073 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 14074<title/></svg> 14075 <span class="absolute top-full left-1/2 -translate-x-[80%] 14076 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 14077 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 14078 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 14079 </span> 14080 </span> 14081 </div> 14082 </div> 14083</form> 14084 </li> 14085 <li> 14086
14086<script> 14087 function initQtyFromTier1188() { 14088 return { 14089 qty: 1, 14090 updateQty(event) { 14091 this.qty = event.detail; 14092 } 14093 } 14094 } 14095</script>
14095 14096 14097<form method="post" 14098 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1188/" 14099 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 14100 x-data="initQtyFromTier1188()" 14101 @update-qty-1188="updateQty(event)" 14102 14103 > 14104 <input name="form_key" type="hidden" value="hbdWN5hkMrk0Mr9H" /> <input type="hidden" name="product" value="1188"/> 14105 <input type="hidden" 14106 name="qty" 14107 id="qty[1188]" 14108 :value="qty" 14109 x-model.number="qty" 14110 /> 14111 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 14112 <a href="https://www.123drogisterij.nl/tena-men-active-fit-small-medium" 14113 title="TENA Men Active Fit  Small/Medium" 14114 class="product photo product-item-photo block w-1/3 lg:w-1/4" 14115 tabindex="-1" 14116 > 14117 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_active_fit_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1188.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_active_fit_1.jpg" loading="lazy" width="187" height="234" alt="Tena Men Active Fit Small/Medium" title="Tena Men Active Fit Small/Medium" loading="lazy" /></picture> 14118 </a> 14119 14120 <div class="w-2/3 lg:mx-8"> 14121 <strong> 14122 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 14123 href="https://www.123drogisterij.nl/tena-men-active-fit-small-medium" 14124 :id="`slide-desc-1188-${$id('slider-id')}`" 14125 > 14126 TENA Men Active Fit Small/Medium </a> 14127 </strong> 14128 14129 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 14130 <span class="block text-gray-500 mb-1"> 14131 Artikelnummer: 772512 </span> 14132 14133 <span class="block text-gray-500 mb-1 lg:text-md"> 14134 Verpakking: 12 stuks </span> 14135 </div> 14136 14137 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 14138 Absorptievermogen: 14139 <div class="flex gap-2"> 14140 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14141 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14142 </svg> 14143 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14144 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14145 </svg> 14146 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14147 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14148 </svg> 14149 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14150 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14151 </svg> 14152 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14153 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
14153697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14154 </svg> 14155 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14156 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14157 </svg> 14158 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14159 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14160 </svg> 14161 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14162 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14163 </svg> 14164 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14165 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14166 </svg> 14167 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14168 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14169 </svg> 14170 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14171 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14172 </svg> 14173 </div> 14174 </span> 14175 14176 <div class="lg:hidden"> 14177 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 14178 " 14179 title="Beschikbaarheid" 14180 > 14181 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 14182 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 14183<title>check-circle</title></svg> 14184Op voorraad </p> 14185 </div> 14186 14187 <div class="hidden lg:block" 14188 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 14189 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
14190 content = trimToSentence(originalContent, maxLength); 14191 isVisible = false"; 14192 > 14193 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 14194 TENA Men Active Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Medium heeft een discreet en mannelijk design. </div> 14195 14196 <div class="prose md:prose-base text-md" x-show="isVisible"> 14197 TENA Men Active Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname i </div> 14198 14199 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 14200 @click="isCollapsed = !isCollapsed" 14201 x-show="originalContent.length > maxLength ? true : false" 14202 type="button" 14203 > 14204 <span x-text="isCollapsed ? 14205 'Lees minder' : 14206 'Lees meer'" 14207 ></span> 14208 </button> 14209 </div> 14210 </div> 14211 </div> 14212 14213 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 14214 <div class="lg:hidden" 14215 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 14216 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
14217 content = trimToSentence(originalContent, maxLength); 14218 isVisible = false"; 14219 > 14220 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 14221 TENA Men Active Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Medium heeft een discreet en mannelijk design. </div> 14222 14223 <div class="prose md:prose-base" x-show="isVisible"> 14224 TENA Men Active Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010 ml. </div> 14225 14226 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 14227 @click="isCollapsed = !isCollapsed" 14228 x-show="originalContent.length > maxLength ? true : false" 14229 type="button" 14230 > 14231 <span x-text="isCollapsed ? 14232 'Lees minder' : 14233 'Lees meer'" 14234 ></span> 14235 </button> 14236 </div> 14237 14238 14239 <div class="hidden lg:block lg:text-md"> 14240 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 14241 " 14242 title="Beschikbaarheid" 14243 > 14244 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 14245 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 14246<title>check-circle</title></svg> 14247Op voorraad </p> 14248 </div> 14249 14250 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 14251 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 14252 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 14253 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 14254 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 14255<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 14256 <span> 14257 Tot 22:30 uur besteld = morgen in huis <span 14258 class="absolute group cursor-pointer inline-flex"> 14259 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 14260 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 14261<title/></svg> 14262 <span class="absolute top-full left-1/2 -translate-x-[80%] 14263 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 14264 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 14265 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 14266 </span> 14267 </span> 14268 </div> 14269 14270 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 14271 <div class="pt-1 text-gray-900" 14272 x-data="initPriceBox()" 14273 x-defer="intersect" 14274 @update-prices-1188.window="updatePrice($event.detail);" 14275 > 14276 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1188" data-price-box="product-id-1188"> 14277 14278 <span
14279 x-data x-id="['product\u002Dprice\u002D1188']" class="price-container price-final_price tax weee" 14280 > 14281 <span :id="$id('product\u002Dprice\u002D1188')" data-price-amount="15.98" 14282 data-price-type="finalPrice" 14283 class="price-wrapper " 14284 ><span class="price">â¬Â 15,98</span></span> 14285 </span> 14286 14287 <span class="minimal-price-link"> 14288 <span 14289 x-data x-id="['1188']" class="price-container price-final_price tax weee" 14290 > 14291 <span class="price-label">Vanaf</span> 14292 <span :id="$id('1188')" data-price-amount="14.19" 14293 data-price-type="" 14294 class="price-wrapper " 14295 >â¬Â 14,19</span> 14296 </span> 14297 </span> 14298</div> </div> 14299 14300 <div x-data="hyva.modal()" class="lg:w-full"> 14301 <div x-cloak data-dialog-ref-name="dialog6ac2fac9b21ac" 14302 x-bind="overlay" 14303 class="fixed inset-0 bg-black/50 z-50"> 14304 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 14305 <div x-ref="dialog6ac2fac9b21ac" role="dialog" aria-modal="true" 14306 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 14307 14308<button @click="hide" type="button"> 14309 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 14310 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 14311<title>Sluiten</title></svg> 14312</button> 14313 14314<h2 class="text-primary-500 text-center mb-4"> 14315 Extra besparen?</h2> 14316 14317<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 14318 <div class="flex gap-2 mb-4"> 14319 <a href="https://www.123drogisterij.nl/tena-men-active-fit-small-medium" 14320 title="TENA Men Active Fit  Small/Medium" 14321 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 14322 tabindex="-1" 14323 > 14324 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_active_fit_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1188.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_active_fit_1.jpg" loading="lazy" width="261" height="261" alt="Tena Men Active Fit Small/Medium" title="Tena Men Active Fit Small/Medium" loading="lazy" /></picture> 14325 </a> 14326 14327 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 14328 <a href="https://www.123drogisterij.nl/tena-men-active-fit-small-medium"> 14329 <strong class="text-xl"> 14330 TENA Men Active Fit Small/Medium </strong> 14331 </a> 14332 14333
14333<script> 14334 function initPrice1188() { 14335 14336 const regularPriceInclTaxKey = 'oldPrice', 14337 regularPriceExclTaxKey = 'baseOldPrice', 14338 finalPriceInclTaxKey = 'finalPrice', 14339 finalPriceExclTaxKey = 'basePrice'; 14340 14341 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 14342 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 14343 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 14344 if (customOptionPrice) { 14345 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 14346 } 14347 return priceAccumulator; 14348 }, 0); 14349 } 14350 14351 return { 14352 regularPriceKey: regularPriceInclTaxKey, 14353 finalPriceKey: finalPriceInclTaxKey, 14354 activeProductsPriceData: false, 14355 initialFinalPrice: 15.98, 14356 calculatedFinalPrice: false, 14357 calculatedFinalPriceWithCustomOptions: false, 14358 initialTierPrices: [{"price_id":"1546","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1188","website_price":15.35,"price_incl_tax":15.35,"price_excl_tax":14.082567807339},{"price_id":"1627","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1188","website_price":14.19,"price_incl_tax":14.19,"price_excl_tax":13.018347623853}], 14359 showRegularPriceLabel: false, 14360 customOptionPrices: [], 14361 activeCustomOptions: [], 14362 qty: 1, 14363 updateCustomOptionActive(data) { 14364 let activeCustomOptions = this.activeCustomOptions; 14365 const customOptionId = data.customOptionId; 14366 14367 if (data.active) { 14368 if (!activeCustomOptions.includes(customOptionId)) { 14369 activeCustomOptions.push(data.customOptionId); 14370 } 14371 } else { 14372 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 14373 let index = activeCustomOptions.indexOf(customOptionId); 14374 activeCustomOptions.splice(index, 1); 14375 } 14376 } 14377 this.calculateFinalPriceWithCustomOptions() 14378 }, 14379 updateCustomOptionPrices(prices, basePrices) { 14380 if (prices) { 14381 this.customOptionPrices = prices; 14382 } 14383 14384 14385 this.calculateFinalPriceWithCustomOptions(); 14386 }, 14387 calculateFinalPrice() { 14388 14389 const getOptionTierPrice = (tierPrice, withTax) => { 14390 return tierPrice[withTax ? 'price' : 'basePrice']; 14391 } 14392 14393 const findApplicableTierPrice = (initialPrice, withTax) => { 14394 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 14395 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 14396 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 14397 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 14398 return tierPriceCandidate; 14399 } 14400 return acc; 14401 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 14402 14403 } else { 14404 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 14405 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 14406 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 14407 return tierPrice[key]; 14408 } 14409 return acc; 14410 }, initialPrice); 14411 14412 } 14413 } 14414 14415 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 14416 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 14417 14418 },
14419 calculatePriceLabelVisibility() { 14420 this.showRegularPriceLabel = 14421 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 14422 this.activeProductsPriceData.isMinimalPrice; 14423 }, 14424 calculateFinalPriceWithCustomOptions() { 14425 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 14426 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 14427 }, 14428 getCustomOptionPrice() { 14429 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 14430 }, 14431 getFormattedFinalPrice() { 14432 return hyva.formatPrice( 14433 this.calculatedFinalPriceWithCustomOptions || 14434 this.calculatedFinalPrice || 14435 this.initialFinalPrice 14436 ) 14437 }, 14438 isPriceHidden() { 14439 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 14440 this.calculatedFinalPrice || 14441 this.initialFinalPrice; 14442 return false && finalPrice === 0; 14443 }, 14444 eventListeners: { 14445 ['@update-prices-1188.window'](event) { 14446 this.activeProductsPriceData = event.detail; 14447 14448 this.calculateFinalPrice(); 14449 this.calculateFinalPriceWithCustomOptions(); 14450 this.calculatePriceLabelVisibility(); 14451 }, 14452 ['@update-qty-1188.window'](event) { 14453 this.qty = event.detail; 14454 this.calculateFinalPrice(); 14455 this.calculateFinalPriceWithCustomOptions(); 14456 }, 14457 ['@update-custom-option-active.window'](event) { 14458 this.updateCustomOptionActive(event.detail); 14459 }, 14460 ['@update-custom-option-prices.window'](event) { 14461 this.updateCustomOptionPrices(event.detail); 14462 }, 14463 } 14464 } 14465 } 14466</script>
14466 14467<div x-data="initPrice1188()" 14468 x-bind="eventListeners" 14469 class="price-box price-final_price" 14470> 14471 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 14472 <div class="price-container"> 14473 14474 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 14475 <span id="product-price-1188" 14476 class="price-wrapper font-bold text-3xl text-secondary-800"> 14477 <span class="price" x-html="getFormattedFinalPrice()"> 14478 <span class="price">â¬Â 15,98</span> </span> 14479 </span> 14480 <meta itemprop="price" content="15.98"> 14481 <meta itemprop="priceCurrency" 14482 content="EUR"> 14483 </div> 14484 </div> 14485 </div> 14486 <template x-if="activeProductsPriceData && 14487 activeProductsPriceData.oldPrice && 14488 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 14489 "> 14490 <div class="old-price flex mr-2"> 14491 <span id="product-price-1188" 14492 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 14493 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 14494 </span> 14495 </div> 14496 </template> 14497 <template x-if="activeProductsPriceData"> 14498 <div class="final-price inline-block"> 14499 <span id="product-price-1188" 14500 class="price-wrapper font-bold text-3xl text-secondary-800"> 14501 <span class="price" x-html="getFormattedFinalPrice()"></span> 14502 </span> 14503 </div> 14504 </template> 14505 </div> 14506 </div> 14507 </div> 14508 14509 <div class="tier-price-popup lg:w-1/2"> 14510 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-active-fit-small-medium"> 14511 <strong class="text-2xl"> 14512 TENA Men Active Fit Small/Medium </strong> 14513 </a> 14514 14515
14515<script> 14516 function initTierPrice1188() { 14517 return { 14518 qty: 1, 14519 minSalesQty: 1, 14520 isStandardSelected() { 14521 return this.qty < 5; 14522 }, 14523 eventListeners: { 14524 ['@update-qty-1188.window'](event) { 14525 if (this.qty !== event.detail) { 14526 this.qty = event.detail; 14527 } 14528 } 14529 } 14530 } 14531 } 14532 </script>
14532 14533 <div class="prices-tier items mb-4" 14534 x-data="initTierPrice1188()" 14535 x-bind="eventListeners" 14536 > 14537 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 14538 :class="{'active-tier-price1188 border-green-600 shadow-hard': 14539 qty >= 5 && qty < 10}" 14540 @click="$dispatch('update-qty-1188', 5);" 14541 data-qty="5" 14542 > 14543 14544 <div class="flex flex-row items-center"> 14545 <div class="flex flex-col flex-grow"> 14546 <div class="flex flex-row items-center justify-between"> 14547 <div class="flex items-center space-x-2"> 14548 <div class="price-container font-bold text-lg"> 14549 <span 14550 class="price-container price-tier_price tax weee" 14551 > 14552 <span data-price-amount="15.35" 14553 data-price-type="" 14554 class="price-wrapper " 14555 ><span class="price">â¬Â 15,35</span></span> 14556 </span> 14557 </div> 14558 <span class="ml-2 text-base"> 14559 per stuk </span> 14560 </div> 14561 <span> 14562 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 4</span>%</strong> </span> 14563 </div> 14564 14565 <div class="mt-1"> 14566 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 14567 <span>5 verpakkingen</span> </span> 14568 </div> 14569 </div> 14570 </div> 14571 </div> 14572 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 14573 :class="{'active-tier-price1188 border-green-600 shadow-hard': 14574 qty >= 10 && qty < 10000}" 14575 @click="$dispatch('update-qty-1188', 10);" 14576 data-qty="10" 14577 > 14578 14579 <div class="flex flex-row items-center"> 14580 <div class="flex flex-col flex-grow"> 14581 <div class="flex flex-row items-center justify-between"> 14582 <div class="flex items-center space-x-2"> 14583 <div class="price-container font-bold text-lg"> 14584 <span 14585 x-data x-id="['1']" class="price-container price-tier_price tax weee" 14586 > 14587 <span :id="$id('1')" data-price-amount="14.19" 14588 data-price-type="" 14589 class="price-wrapper " 14590 ><span class="price">â¬Â 14,19</span></span> 14591 </span> 14592 </div> 14593 <span class="ml-2 text-base"> 14594 per stuk </span> 14595 </div> 14596 <span 14597 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 14598 <strong>Voordeligste keuze</strong> 14599 </span> 14600 <span> 14601 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 11</span>%</strong> </span> 14602 </div> 14603 14604 <div class="mt-1">
14605 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 14606 <span>10 verpakkingen</span> </span> 14607 </div> 14608 </div> 14609 </div> 14610 <div class="choice-mobile mt-4 xl:hidden"> 14611 <hr class="p-2"> 14612 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 14613 <strong>Voordeligste keuze</strong> 14614 </span> 14615 </div> 14616 </div> 14617 14618 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 14619 :class="{'active-tier-price1188 border-green-600 shadow-hard': isStandardSelected() }" 14620 @click="$dispatch('update-qty-1188', minSalesQty);" 14621 > 14622 <div class="flex flex-row items-center"> 14623 <div class="flex flex-col flex-grow"> 14624 <div class="flex flex-row items-center"> 14625 <div class="flex items-center space-x-2"> 14626 <div class="price-container font-bold text-lg"> 14627 <span class="price">â¬Â 15,98</span> </div> 14628 <span class="ml-2 text-base"> 14629 per stuk </span> 14630 </div> 14631 <strong class="ml-auto text-gray-500"> 14632 Standaard </strong> 14633 </div> 14634 14635 <div class="mt-1"> 14636 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 14637 <span>1 verpakking</span> </span> 14638 </div> 14639 </div> 14640 </div> 14641 </div> 14642 14643 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 14644 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 14645 x-show="isStandardSelected() && true" 14646 x-cloak> 14647 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 14648 <div class="ml-6 text-sm opacity-90"> 14649 <strong>Let op:</strong> 14650 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 14651 <div class="ml-6 text-sm leading-snug opacity-60"> 14652 Kies een andere optie voor extra voordeel! </div> 14653 </div> 14654 </div> 14655 14656 <div class="hidden lg:block"> 14657
14657<script> 14658 function initPrice1188() { 14659 14660 const regularPriceInclTaxKey = 'oldPrice', 14661 regularPriceExclTaxKey = 'baseOldPrice', 14662 finalPriceInclTaxKey = 'finalPrice', 14663 finalPriceExclTaxKey = 'basePrice'; 14664 14665 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 14666 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 14667 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 14668 if (customOptionPrice) { 14669 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 14670 } 14671 return priceAccumulator; 14672 }, 0); 14673 } 14674 14675 return { 14676 regularPriceKey: regularPriceInclTaxKey, 14677 finalPriceKey: finalPriceInclTaxKey, 14678 activeProductsPriceData: false, 14679 initialFinalPrice: 15.98, 14680 calculatedFinalPrice: false, 14681 calculatedFinalPriceWithCustomOptions: false, 14682 initialTierPrices: [{"price_id":"1546","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1188","website_price":15.35,"price_incl_tax":15.35,"price_excl_tax":14.082567807339},{"price_id":"1627","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1188","website_price":14.19,"price_incl_tax":14.19,"price_excl_tax":13.018347623853}], 14683 showRegularPriceLabel: false, 14684 customOptionPrices: [], 14685 activeCustomOptions: [], 14686 qty: 1, 14687 updateCustomOptionActive(data) { 14688 let activeCustomOptions = this.activeCustomOptions; 14689 const customOptionId = data.customOptionId; 14690 14691 if (data.active) { 14692 if (!activeCustomOptions.includes(customOptionId)) { 14693 activeCustomOptions.push(data.customOptionId); 14694 } 14695 } else { 14696 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 14697 let index = activeCustomOptions.indexOf(customOptionId); 14698 activeCustomOptions.splice(index, 1); 14699 } 14700 } 14701 this.calculateFinalPriceWithCustomOptions() 14702 }, 14703 updateCustomOptionPrices(prices, basePrices) { 14704 if (prices) { 14705 this.customOptionPrices = prices; 14706 } 14707 14708 14709 this.calculateFinalPriceWithCustomOptions(); 14710 }, 14711 calculateFinalPrice() { 14712 14713 const getOptionTierPrice = (tierPrice, withTax) => { 14714 return tierPrice[withTax ? 'price' : 'basePrice']; 14715 } 14716 14717 const findApplicableTierPrice = (initialPrice, withTax) => { 14718 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 14719 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 14720 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 14721 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 14722 return tierPriceCandidate; 14723 } 14724 return acc; 14725 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 14726 14727 } else { 14728 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 14729 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 14730 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 14731 return tierPrice[key]; 14732 } 14733 return acc; 14734 }, initialPrice); 14735 14736 } 14737 } 14738 14739 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 14740 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 14741 14742 },
14743 calculatePriceLabelVisibility() { 14744 this.showRegularPriceLabel = 14745 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 14746 this.activeProductsPriceData.isMinimalPrice; 14747 }, 14748 calculateFinalPriceWithCustomOptions() { 14749 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 14750 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 14751 }, 14752 getCustomOptionPrice() { 14753 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 14754 }, 14755 getFormattedFinalPrice() { 14756 return hyva.formatPrice( 14757 this.calculatedFinalPriceWithCustomOptions || 14758 this.calculatedFinalPrice || 14759 this.initialFinalPrice 14760 ) 14761 }, 14762 isPriceHidden() { 14763 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 14764 this.calculatedFinalPrice || 14765 this.initialFinalPrice; 14766 return false && finalPrice === 0; 14767 }, 14768 eventListeners: { 14769 ['@update-prices-1188.window'](event) { 14770 this.activeProductsPriceData = event.detail; 14771 14772 this.calculateFinalPrice(); 14773 this.calculateFinalPriceWithCustomOptions(); 14774 this.calculatePriceLabelVisibility(); 14775 }, 14776 ['@update-qty-1188.window'](event) { 14777 this.qty = event.detail; 14778 this.calculateFinalPrice(); 14779 this.calculateFinalPriceWithCustomOptions(); 14780 }, 14781 ['@update-custom-option-active.window'](event) { 14782 this.updateCustomOptionActive(event.detail); 14783 }, 14784 ['@update-custom-option-prices.window'](event) { 14785 this.updateCustomOptionPrices(event.detail); 14786 }, 14787 } 14788 } 14789 } 14790</script>
14790 14791<div x-data="initPrice1188()" 14792 x-bind="eventListeners" 14793 class="price-box price-final_price" 14794> 14795 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 14796 <div class="price-container"> 14797 14798 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 14799 <span id="product-price-1188" 14800 class="price-wrapper font-bold text-3xl text-secondary-800"> 14801 <span class="price" x-html="getFormattedFinalPrice()"> 14802 <span class="price">â¬Â 15,98</span> </span> 14803 </span> 14804 <meta itemprop="price" content="15.98"> 14805 <meta itemprop="priceCurrency" 14806 content="EUR"> 14807 </div> 14808 </div> 14809 </div> 14810 <template x-if="activeProductsPriceData && 14811 activeProductsPriceData.oldPrice && 14812 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 14813 "> 14814 <div class="old-price flex mr-2"> 14815 <span id="product-price-1188" 14816 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 14817 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 14818 </span> 14819 </div> 14820 </template> 14821 <template x-if="activeProductsPriceData"> 14822 <div class="final-price inline-block"> 14823 <span id="product-price-1188" 14824 class="price-wrapper font-bold text-3xl text-secondary-800"> 14825 <span class="price" x-html="getFormattedFinalPrice()"></span> 14826 </span> 14827 </div> 14828 </template> 14829 </div> 14830 </div> 14831 </div> 14832</div> 14833 14834<div class="flex flex-col items-center"> 14835 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 14836 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 14837 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 14838<title>In Winkelmand</title></svg> 14839 In Winkelmand </button> 14840 14841 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 14842 Nee, vandaag niet </button> 14843</div> 14844 </div> 14845 </div> 14846 </div> 14847 14848 <button @click="show('dialog6ac2fac9b21ac', this.$event || $event)" 14849 class="btn btn-primary lg:w-full" 14850 type="button" 14851 aria-haspopup="dialog" 14852 > 14853 Kies uw voordeel </button> 14854 </div> 14855 </div> 14856 14857 <div class="flex items-center gap-1 lg:hidden"> 14858 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 14859 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 14860 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 14861 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 14862<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
14863 <span> 14864 Tot 22:30 uur besteld = morgen in huis <span 14865 class="absolute group cursor-pointer inline-flex items-center justify-center"> 14866 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 14867 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 14868<title/></svg> 14869 <span class="absolute top-full left-1/2 -translate-x-[80%] 14870 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 14871 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 14872 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 14873 </span> 14874 </span> 14875 </div> 14876 </div> 14877</form> 14878 </li> 14879 <li> 14880
14880<script> 14881 function initQtyFromTier828() { 14882 return { 14883 qty: 1, 14884 updateQty(event) { 14885 this.qty = event.detail; 14886 } 14887 } 14888 } 14889</script>
14889 14890 14891<form method="post" 14892 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/828/" 14893 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 14894 x-data="initQtyFromTier828()" 14895 @update-qty-828="updateQty(event)" 14896 14897 > 14898 <input name="form_key" type="hidden" value="jKR67ytg1wE7dTx6" /> <input type="hidden" name="product" value="828"/> 14899 <input type="hidden" 14900 name="qty" 14901 id="qty[828]" 14902 :value="qty" 14903 x-model.number="qty" 14904 /> 14905 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 14906 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-large-extra-large" 14907 title="TENA Men Premium Fit Large/Extra Large" 14908 class="product photo product-item-photo block w-1/3 lg:w-1/4" 14909 tabindex="-1" 14910 > 14911 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_premium_fit_6.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-828.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_premium_fit_6.jpg" loading="lazy" width="187" height="234" alt="TENA Men Premium Fit Large/Extra Large" title="TENA Men Premium Fit Large/Extra Large" loading="lazy" /></picture> 14912 </a> 14913 14914 <div class="w-2/3 lg:mx-8"> 14915 <strong> 14916 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 14917 href="https://www.123drogisterij.nl/tena-men-premium-fit-large-extra-large" 14918 :id="`slide-desc-828-${$id('slider-id')}`" 14919 > 14920 TENA Men Premium Fit Large/Extra Large </a> 14921 </strong> 14922 14923 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 14924 <span class="block text-gray-500 mb-1"> 14925 Artikelnummer: 798306 </span> 14926 14927 <span class="block text-gray-500 mb-1 lg:text-md"> 14928 Verpakking: 10 stuks </span> 14929 </div> 14930 14931 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 14932 Absorptievermogen: 14933 <div class="flex gap-2"> 14934 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14935 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14936 </svg> 14937 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14938 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14939 </svg> 14940 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14941 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14942 </svg> 14943 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14944 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14945 </svg> 14946 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14947 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
14947697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14948 </svg> 14949 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14950 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14951 </svg> 14952 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14953 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14954 </svg> 14955 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14956 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14957 </svg> 14958 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14959 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14960 </svg> 14961 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14962 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14963 </svg> 14964 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 14965 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 14966 </svg> 14967 </div> 14968 </span> 14969 14970 <div class="lg:hidden"> 14971 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 14972 " 14973 title="Beschikbaarheid" 14974 > 14975 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 14976 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 14977<title>check-circle</title></svg> 14978Op voorraad </p> 14979 </div> 14980 14981 <div class="hidden lg:block" 14982 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 14983 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
14984 content = trimToSentence(originalContent, maxLength); 14985 isVisible = false"; 14986 > 14987 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 14988 TENA Men Premium Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design. </div> 14989 14990 <div class="prose md:prose-base text-md" x-show="isVisible"> 14991 TENA Men Premium Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname i </div> 14992 14993 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 14994 @click="isCollapsed = !isCollapsed" 14995 x-show="originalContent.length > maxLength ? true : false" 14996 type="button" 14997 > 14998 <span x-text="isCollapsed ? 14999 'Lees minder' : 15000 'Lees meer'" 15001 ></span> 15002 </button> 15003 </div> 15004 </div> 15005 </div> 15006 15007 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 15008 <div class="lg:hidden" 15009 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 15010 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
15011 content = trimToSentence(originalContent, maxLength); 15012 isVisible = false"; 15013 > 15014 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 15015 TENA Men Premium Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design. </div> 15016 15017 <div class="prose md:prose-base" x-show="isVisible"> 15018 TENA Men Premium Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 </div> 15019 15020 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 15021 @click="isCollapsed = !isCollapsed" 15022 x-show="originalContent.length > maxLength ? true : false" 15023 type="button" 15024 > 15025 <span x-text="isCollapsed ? 15026 'Lees minder' : 15027 'Lees meer'" 15028 ></span> 15029 </button> 15030 </div> 15031 15032 15033 <div class="hidden lg:block lg:text-md"> 15034 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 15035 " 15036 title="Beschikbaarheid" 15037 > 15038 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 15039 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 15040<title>check-circle</title></svg> 15041Op voorraad </p> 15042 </div> 15043 15044 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 15045 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 15046 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 15047 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 15048 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 15049<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 15050 <span> 15051 Tot 22:30 uur besteld = morgen in huis <span 15052 class="absolute group cursor-pointer inline-flex"> 15053 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 15054 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 15055<title/></svg> 15056 <span class="absolute top-full left-1/2 -translate-x-[80%] 15057 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 15058 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 15059 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 15060 </span> 15061 </span> 15062 </div> 15063 15064 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 15065 <div class="pt-1 text-gray-900" 15066 x-data="initPriceBox()" 15067 x-defer="intersect" 15068 @update-prices-828.window="updatePrice($event.detail);" 15069 > 15070 <div class="price-box price-final_price" data-role="priceBox" data-product-id="828" data-price-box="product-id-828"> 15071 15072 <span
15073 x-data x-id="['product\u002Dprice\u002D828']" class="price-container price-final_price tax weee" 15074 > 15075 <span :id="$id('product\u002Dprice\u002D828')" data-price-amount="17.81" 15076 data-price-type="finalPrice" 15077 class="price-wrapper " 15078 ><span class="price">â¬Â 17,81</span></span> 15079 </span> 15080 15081 <span class="minimal-price-link"> 15082 <span 15083 x-data x-id="['828']" class="price-container price-final_price tax weee" 15084 > 15085 <span class="price-label">Vanaf</span> 15086 <span :id="$id('828')" data-price-amount="15.02" 15087 data-price-type="" 15088 class="price-wrapper " 15089 >â¬Â 15,02</span> 15090 </span> 15091 </span> 15092</div> </div> 15093 15094 <div x-data="hyva.modal()" class="lg:w-full"> 15095 <div x-cloak data-dialog-ref-name="dialog6ac2fb312e06e" 15096 x-bind="overlay" 15097 class="fixed inset-0 bg-black/50 z-50"> 15098 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 15099 <div x-ref="dialog6ac2fb312e06e" role="dialog" aria-modal="true" 15100 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 15101 15102<button @click="hide" type="button"> 15103 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 15104 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 15105<title>Sluiten</title></svg> 15106</button> 15107 15108<h2 class="text-primary-500 text-center mb-4"> 15109 Extra besparen?</h2> 15110 15111<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 15112 <div class="flex gap-2 mb-4"> 15113 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-large-extra-large" 15114 title="TENA Men Premium Fit Large/Extra Large" 15115 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 15116 tabindex="-1" 15117 > 15118 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_premium_fit_6.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-828.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_premium_fit_6.jpg" loading="lazy" width="261" height="261" alt="TENA Men Premium Fit Large/Extra Large" title="TENA Men Premium Fit Large/Extra Large" loading="lazy" /></picture> 15119 </a> 15120 15121 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 15122 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-large-extra-large"> 15123 <strong class="text-xl"> 15124 TENA Men Premium Fit Large/Extra Large </strong> 15125 </a> 15126 15127
15127<script> 15128 function initPrice828() { 15129 15130 const regularPriceInclTaxKey = 'oldPrice', 15131 regularPriceExclTaxKey = 'baseOldPrice', 15132 finalPriceInclTaxKey = 'finalPrice', 15133 finalPriceExclTaxKey = 'basePrice'; 15134 15135 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 15136 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 15137 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 15138 if (customOptionPrice) { 15139 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 15140 } 15141 return priceAccumulator; 15142 }, 0); 15143 } 15144 15145 return { 15146 regularPriceKey: regularPriceInclTaxKey, 15147 finalPriceKey: finalPriceInclTaxKey, 15148 activeProductsPriceData: false, 15149 initialFinalPrice: 17.81, 15150 calculatedFinalPrice: false, 15151 calculatedFinalPriceWithCustomOptions: false, 15152 initialTierPrices: [{"price_id":"1545","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"828","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606},{"price_id":"1626","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"828","website_price":15.02,"price_incl_tax":15.02,"price_excl_tax":13.779815513761}], 15153 showRegularPriceLabel: false, 15154 customOptionPrices: [], 15155 activeCustomOptions: [], 15156 qty: 1, 15157 updateCustomOptionActive(data) { 15158 let activeCustomOptions = this.activeCustomOptions; 15159 const customOptionId = data.customOptionId; 15160 15161 if (data.active) { 15162 if (!activeCustomOptions.includes(customOptionId)) { 15163 activeCustomOptions.push(data.customOptionId); 15164 } 15165 } else { 15166 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 15167 let index = activeCustomOptions.indexOf(customOptionId); 15168 activeCustomOptions.splice(index, 1); 15169 } 15170 } 15171 this.calculateFinalPriceWithCustomOptions() 15172 }, 15173 updateCustomOptionPrices(prices, basePrices) { 15174 if (prices) { 15175 this.customOptionPrices = prices; 15176 } 15177 15178 15179 this.calculateFinalPriceWithCustomOptions(); 15180 }, 15181 calculateFinalPrice() { 15182 15183 const getOptionTierPrice = (tierPrice, withTax) => { 15184 return tierPrice[withTax ? 'price' : 'basePrice']; 15185 } 15186 15187 const findApplicableTierPrice = (initialPrice, withTax) => { 15188 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 15189 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 15190 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 15191 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 15192 return tierPriceCandidate; 15193 } 15194 return acc; 15195 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 15196 15197 } else { 15198 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 15199 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 15200 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 15201 return tierPrice[key]; 15202 } 15203 return acc; 15204 }, initialPrice); 15205 15206 } 15207 } 15208 15209 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 15210 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 15211 15212 },
15213 calculatePriceLabelVisibility() { 15214 this.showRegularPriceLabel = 15215 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 15216 this.activeProductsPriceData.isMinimalPrice; 15217 }, 15218 calculateFinalPriceWithCustomOptions() { 15219 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 15220 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 15221 }, 15222 getCustomOptionPrice() { 15223 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 15224 }, 15225 getFormattedFinalPrice() { 15226 return hyva.formatPrice( 15227 this.calculatedFinalPriceWithCustomOptions || 15228 this.calculatedFinalPrice || 15229 this.initialFinalPrice 15230 ) 15231 }, 15232 isPriceHidden() { 15233 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 15234 this.calculatedFinalPrice || 15235 this.initialFinalPrice; 15236 return false && finalPrice === 0; 15237 }, 15238 eventListeners: { 15239 ['@update-prices-828.window'](event) { 15240 this.activeProductsPriceData = event.detail; 15241 15242 this.calculateFinalPrice(); 15243 this.calculateFinalPriceWithCustomOptions(); 15244 this.calculatePriceLabelVisibility(); 15245 }, 15246 ['@update-qty-828.window'](event) { 15247 this.qty = event.detail; 15248 this.calculateFinalPrice(); 15249 this.calculateFinalPriceWithCustomOptions(); 15250 }, 15251 ['@update-custom-option-active.window'](event) { 15252 this.updateCustomOptionActive(event.detail); 15253 }, 15254 ['@update-custom-option-prices.window'](event) { 15255 this.updateCustomOptionPrices(event.detail); 15256 }, 15257 } 15258 } 15259 } 15260</script>
15260 15261<div x-data="initPrice828()" 15262 x-bind="eventListeners" 15263 class="price-box price-final_price" 15264> 15265 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 15266 <div class="price-container"> 15267 15268 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 15269 <span id="product-price-828" 15270 class="price-wrapper font-bold text-3xl text-secondary-800"> 15271 <span class="price" x-html="getFormattedFinalPrice()"> 15272 <span class="price">â¬Â 17,81</span> </span> 15273 </span> 15274 <meta itemprop="price" content="17.81"> 15275 <meta itemprop="priceCurrency" 15276 content="EUR"> 15277 </div> 15278 </div> 15279 </div> 15280 <template x-if="activeProductsPriceData && 15281 activeProductsPriceData.oldPrice && 15282 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 15283 "> 15284 <div class="old-price flex mr-2"> 15285 <span id="product-price-828" 15286 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 15287 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 15288 </span> 15289 </div> 15290 </template> 15291 <template x-if="activeProductsPriceData"> 15292 <div class="final-price inline-block"> 15293 <span id="product-price-828" 15294 class="price-wrapper font-bold text-3xl text-secondary-800"> 15295 <span class="price" x-html="getFormattedFinalPrice()"></span> 15296 </span> 15297 </div> 15298 </template> 15299 </div> 15300 </div> 15301 </div> 15302 15303 <div class="tier-price-popup lg:w-1/2"> 15304 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-premium-fit-large-extra-large"> 15305 <strong class="text-2xl"> 15306 TENA Men Premium Fit Large/Extra Large </strong> 15307 </a> 15308 15309
15309<script> 15310 function initTierPrice828() { 15311 return { 15312 qty: 1, 15313 minSalesQty: 1, 15314 isStandardSelected() { 15315 return this.qty < 5; 15316 }, 15317 eventListeners: { 15318 ['@update-qty-828.window'](event) { 15319 if (this.qty !== event.detail) { 15320 this.qty = event.detail; 15321 } 15322 } 15323 } 15324 } 15325 } 15326 </script>
15326 15327 <div class="prices-tier items mb-4" 15328 x-data="initTierPrice828()" 15329 x-bind="eventListeners" 15330 > 15331 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 15332 :class="{'active-tier-price828 border-green-600 shadow-hard': 15333 qty >= 5 && qty < 10}" 15334 @click="$dispatch('update-qty-828', 5);" 15335 data-qty="5" 15336 > 15337 15338 <div class="flex flex-row items-center"> 15339 <div class="flex flex-col flex-grow"> 15340 <div class="flex flex-row items-center justify-between"> 15341 <div class="flex items-center space-x-2"> 15342 <div class="price-container font-bold text-lg"> 15343 <span 15344 class="price-container price-tier_price tax weee" 15345 > 15346 <span data-price-amount="16.54" 15347 data-price-type="" 15348 class="price-wrapper " 15349 ><span class="price">â¬Â 16,54</span></span> 15350 </span> 15351 </div> 15352 <span class="ml-2 text-base"> 15353 per stuk </span> 15354 </div> 15355 <span> 15356 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 7</span>%</strong> </span> 15357 </div> 15358 15359 <div class="mt-1"> 15360 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 15361 <span>5 verpakkingen</span> </span> 15362 </div> 15363 </div> 15364 </div> 15365 </div> 15366 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 15367 :class="{'active-tier-price828 border-green-600 shadow-hard': 15368 qty >= 10 && qty < 10000}" 15369 @click="$dispatch('update-qty-828', 10);" 15370 data-qty="10" 15371 > 15372 15373 <div class="flex flex-row items-center"> 15374 <div class="flex flex-col flex-grow"> 15375 <div class="flex flex-row items-center justify-between"> 15376 <div class="flex items-center space-x-2"> 15377 <div class="price-container font-bold text-lg"> 15378 <span 15379 x-data x-id="['1']" class="price-container price-tier_price tax weee" 15380 > 15381 <span :id="$id('1')" data-price-amount="15.02" 15382 data-price-type="" 15383 class="price-wrapper " 15384 ><span class="price">â¬Â 15,02</span></span> 15385 </span> 15386 </div> 15387 <span class="ml-2 text-base"> 15388 per stuk </span> 15389 </div> 15390 <span 15391 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 15392 <strong>Voordeligste keuze</strong> 15393 </span> 15394 <span> 15395 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 16</span>%</strong> </span> 15396 </div> 15397 15398 <div class="mt-1">
15399 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 15400 <span>10 verpakkingen</span> </span> 15401 </div> 15402 </div> 15403 </div> 15404 <div class="choice-mobile mt-4 xl:hidden"> 15405 <hr class="p-2"> 15406 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 15407 <strong>Voordeligste keuze</strong> 15408 </span> 15409 </div> 15410 </div> 15411 15412 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 15413 :class="{'active-tier-price828 border-green-600 shadow-hard': isStandardSelected() }" 15414 @click="$dispatch('update-qty-828', minSalesQty);" 15415 > 15416 <div class="flex flex-row items-center"> 15417 <div class="flex flex-col flex-grow"> 15418 <div class="flex flex-row items-center"> 15419 <div class="flex items-center space-x-2"> 15420 <div class="price-container font-bold text-lg"> 15421 <span class="price">â¬Â 17,81</span> </div> 15422 <span class="ml-2 text-base"> 15423 per stuk </span> 15424 </div> 15425 <strong class="ml-auto text-gray-500"> 15426 Standaard </strong> 15427 </div> 15428 15429 <div class="mt-1"> 15430 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 15431 <span>1 verpakking</span> </span> 15432 </div> 15433 </div> 15434 </div> 15435 </div> 15436 15437 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 15438 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 15439 x-show="isStandardSelected() && true" 15440 x-cloak> 15441 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 15442 <div class="ml-6 text-sm opacity-90"> 15443 <strong>Let op:</strong> 15444 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 15445 <div class="ml-6 text-sm leading-snug opacity-60"> 15446 Kies een andere optie voor extra voordeel! </div> 15447 </div> 15448 </div> 15449 15450 <div class="hidden lg:block"> 15451
15451<script> 15452 function initPrice828() { 15453 15454 const regularPriceInclTaxKey = 'oldPrice', 15455 regularPriceExclTaxKey = 'baseOldPrice', 15456 finalPriceInclTaxKey = 'finalPrice', 15457 finalPriceExclTaxKey = 'basePrice'; 15458 15459 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 15460 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 15461 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 15462 if (customOptionPrice) { 15463 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 15464 } 15465 return priceAccumulator; 15466 }, 0); 15467 } 15468 15469 return { 15470 regularPriceKey: regularPriceInclTaxKey, 15471 finalPriceKey: finalPriceInclTaxKey, 15472 activeProductsPriceData: false, 15473 initialFinalPrice: 17.81, 15474 calculatedFinalPrice: false, 15475 calculatedFinalPriceWithCustomOptions: false, 15476 initialTierPrices: [{"price_id":"1545","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"828","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606},{"price_id":"1626","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"828","website_price":15.02,"price_incl_tax":15.02,"price_excl_tax":13.779815513761}], 15477 showRegularPriceLabel: false, 15478 customOptionPrices: [], 15479 activeCustomOptions: [], 15480 qty: 1, 15481 updateCustomOptionActive(data) { 15482 let activeCustomOptions = this.activeCustomOptions; 15483 const customOptionId = data.customOptionId; 15484 15485 if (data.active) { 15486 if (!activeCustomOptions.includes(customOptionId)) { 15487 activeCustomOptions.push(data.customOptionId); 15488 } 15489 } else { 15490 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 15491 let index = activeCustomOptions.indexOf(customOptionId); 15492 activeCustomOptions.splice(index, 1); 15493 } 15494 } 15495 this.calculateFinalPriceWithCustomOptions() 15496 }, 15497 updateCustomOptionPrices(prices, basePrices) { 15498 if (prices) { 15499 this.customOptionPrices = prices; 15500 } 15501 15502 15503 this.calculateFinalPriceWithCustomOptions(); 15504 }, 15505 calculateFinalPrice() { 15506 15507 const getOptionTierPrice = (tierPrice, withTax) => { 15508 return tierPrice[withTax ? 'price' : 'basePrice']; 15509 } 15510 15511 const findApplicableTierPrice = (initialPrice, withTax) => { 15512 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 15513 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 15514 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 15515 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 15516 return tierPriceCandidate; 15517 } 15518 return acc; 15519 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 15520 15521 } else { 15522 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 15523 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 15524 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 15525 return tierPrice[key]; 15526 } 15527 return acc; 15528 }, initialPrice); 15529 15530 } 15531 } 15532 15533 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 15534 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 15535 15536 },
15537 calculatePriceLabelVisibility() { 15538 this.showRegularPriceLabel = 15539 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 15540 this.activeProductsPriceData.isMinimalPrice; 15541 }, 15542 calculateFinalPriceWithCustomOptions() { 15543 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 15544 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 15545 }, 15546 getCustomOptionPrice() { 15547 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 15548 }, 15549 getFormattedFinalPrice() { 15550 return hyva.formatPrice( 15551 this.calculatedFinalPriceWithCustomOptions || 15552 this.calculatedFinalPrice || 15553 this.initialFinalPrice 15554 ) 15555 }, 15556 isPriceHidden() { 15557 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 15558 this.calculatedFinalPrice || 15559 this.initialFinalPrice; 15560 return false && finalPrice === 0; 15561 }, 15562 eventListeners: { 15563 ['@update-prices-828.window'](event) { 15564 this.activeProductsPriceData = event.detail; 15565 15566 this.calculateFinalPrice(); 15567 this.calculateFinalPriceWithCustomOptions(); 15568 this.calculatePriceLabelVisibility(); 15569 }, 15570 ['@update-qty-828.window'](event) { 15571 this.qty = event.detail; 15572 this.calculateFinalPrice(); 15573 this.calculateFinalPriceWithCustomOptions(); 15574 }, 15575 ['@update-custom-option-active.window'](event) { 15576 this.updateCustomOptionActive(event.detail); 15577 }, 15578 ['@update-custom-option-prices.window'](event) { 15579 this.updateCustomOptionPrices(event.detail); 15580 }, 15581 } 15582 } 15583 } 15584</script>
15584 15585<div x-data="initPrice828()" 15586 x-bind="eventListeners" 15587 class="price-box price-final_price" 15588> 15589 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 15590 <div class="price-container"> 15591 15592 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 15593 <span id="product-price-828" 15594 class="price-wrapper font-bold text-3xl text-secondary-800"> 15595 <span class="price" x-html="getFormattedFinalPrice()"> 15596 <span class="price">â¬Â 17,81</span> </span> 15597 </span> 15598 <meta itemprop="price" content="17.81"> 15599 <meta itemprop="priceCurrency" 15600 content="EUR"> 15601 </div> 15602 </div> 15603 </div> 15604 <template x-if="activeProductsPriceData && 15605 activeProductsPriceData.oldPrice && 15606 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 15607 "> 15608 <div class="old-price flex mr-2"> 15609 <span id="product-price-828" 15610 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 15611 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 15612 </span> 15613 </div> 15614 </template> 15615 <template x-if="activeProductsPriceData"> 15616 <div class="final-price inline-block"> 15617 <span id="product-price-828" 15618 class="price-wrapper font-bold text-3xl text-secondary-800"> 15619 <span class="price" x-html="getFormattedFinalPrice()"></span> 15620 </span> 15621 </div> 15622 </template> 15623 </div> 15624 </div> 15625 </div> 15626</div> 15627 15628<div class="flex flex-col items-center"> 15629 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 15630 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 15631 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 15632<title>In Winkelmand</title></svg> 15633 In Winkelmand </button> 15634 15635 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 15636 Nee, vandaag niet </button> 15637</div> 15638 </div> 15639 </div> 15640 </div> 15641 15642 <button @click="show('dialog6ac2fb312e06e', this.$event || $event)" 15643 class="btn btn-primary lg:w-full" 15644 type="button" 15645 aria-haspopup="dialog" 15646 > 15647 Kies uw voordeel </button> 15648 </div> 15649 </div> 15650 15651 <div class="flex items-center gap-1 lg:hidden"> 15652 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 15653 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 15654 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 15655 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 15656<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
15657 <span> 15658 Tot 22:30 uur besteld = morgen in huis <span 15659 class="absolute group cursor-pointer inline-flex items-center justify-center"> 15660 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 15661 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 15662<title/></svg> 15663 <span class="absolute top-full left-1/2 -translate-x-[80%] 15664 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 15665 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 15666 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 15667 </span> 15668 </span> 15669 </div> 15670 </div> 15671</form> 15672 </li> 15673 <li> 15674
15674<script> 15675 function initQtyFromTier827() { 15676 return { 15677 qty: 1, 15678 updateQty(event) { 15679 this.qty = event.detail; 15680 } 15681 } 15682 } 15683</script>
15683 15684 15685<form method="post" 15686 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/827/" 15687 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 15688 x-data="initQtyFromTier827()" 15689 @update-qty-827="updateQty(event)" 15690 15691 > 15692 <input name="form_key" type="hidden" value="hbdWN5hkMrk0Mr9H" /> <input type="hidden" name="product" value="827"/> 15693 <input type="hidden" 15694 name="qty" 15695 id="qty[827]" 15696 :value="qty" 15697 x-model.number="qty" 15698 /> 15699 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 15700 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-small-medium" 15701 title="TENA Men Premium Fit Small/Medium" 15702 class="product photo product-item-photo block w-1/3 lg:w-1/4" 15703 tabindex="-1" 15704 > 15705 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_premium_fit_7.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-827.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_men_premium_fit_7.jpg" loading="lazy" width="187" height="234" alt="TENA Men Premium Fit Small/Medium" title="TENA Men Premium Fit Small/Medium" loading="lazy" /></picture> 15706 </a> 15707 15708 <div class="w-2/3 lg:mx-8"> 15709 <strong> 15710 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 15711 href="https://www.123drogisterij.nl/tena-men-premium-fit-small-medium" 15712 :id="`slide-desc-827-${$id('slider-id')}`" 15713 > 15714 TENA Men Premium Fit Small/Medium </a> 15715 </strong> 15716 15717 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 15718 <span class="block text-gray-500 mb-1"> 15719 Artikelnummer: 798308 </span> 15720 15721 <span class="block text-gray-500 mb-1 lg:text-md"> 15722 Verpakking: 12 stuks </span> 15723 </div> 15724 15725 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 15726 Absorptievermogen: 15727 <div class="flex gap-2"> 15728 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15729 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15730 </svg> 15731 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15732 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15733 </svg> 15734 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15735 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15736 </svg> 15737 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15738 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15739 </svg> 15740 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15741 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
15741697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15742 </svg> 15743 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15744 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15745 </svg> 15746 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15747 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15748 </svg> 15749 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15750 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15751 </svg> 15752 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15753 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15754 </svg> 15755 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15756 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15757 </svg> 15758 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 15759 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 15760 </svg> 15761 </div> 15762 </span> 15763 15764 <div class="lg:hidden"> 15765 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 15766 " 15767 title="Beschikbaarheid" 15768 > 15769 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 15770 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 15771<title>check-circle</title></svg> 15772Op voorraad </p> 15773 </div> 15774 15775 <div class="hidden lg:block" 15776 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 15777 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
15778 content = trimToSentence(originalContent, maxLength); 15779 isVisible = false"; 15780 > 15781 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 15782 TENA Men Premium Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design. </div> 15783 15784 <div class="prose md:prose-base text-md" x-show="isVisible"> 15785 TENA Men Premium Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname </div> 15786 15787 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 15788 @click="isCollapsed = !isCollapsed" 15789 x-show="originalContent.length > maxLength ? true : false" 15790 type="button" 15791 > 15792 <span x-text="isCollapsed ? 15793 'Lees minder' : 15794 'Lees meer'" 15795 ></span> 15796 </button> 15797 </div> 15798 </div> 15799 </div> 15800 15801 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 15802 <div class="lg:hidden" 15803 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 15804 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
15805 content = trimToSentence(originalContent, maxLength); 15806 isVisible = false"; 15807 > 15808 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 15809 TENA Men Premium Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design. </div> 15810 15811 <div class="prose md:prose-base" x-show="isVisible"> 15812 TENA Men Premium Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 </div> 15813 15814 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 15815 @click="isCollapsed = !isCollapsed" 15816 x-show="originalContent.length > maxLength ? true : false" 15817 type="button" 15818 > 15819 <span x-text="isCollapsed ? 15820 'Lees minder' : 15821 'Lees meer'" 15822 ></span> 15823 </button> 15824 </div> 15825 15826 15827 <div class="hidden lg:block lg:text-md"> 15828 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 15829 " 15830 title="Beschikbaarheid" 15831 > 15832 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 15833 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 15834<title>check-circle</title></svg> 15835Op voorraad </p> 15836 </div> 15837 15838 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 15839 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 15840 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 15841 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 15842 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 15843<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 15844 <span> 15845 Tot 22:30 uur besteld = morgen in huis <span 15846 class="absolute group cursor-pointer inline-flex"> 15847 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 15848 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 15849<title/></svg> 15850 <span class="absolute top-full left-1/2 -translate-x-[80%] 15851 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 15852 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 15853 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 15854 </span> 15855 </span> 15856 </div> 15857 15858 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 15859 <div class="pt-1 text-gray-900" 15860 x-data="initPriceBox()" 15861 x-defer="intersect" 15862 @update-prices-827.window="updatePrice($event.detail);" 15863 > 15864 <div class="price-box price-final_price" data-role="priceBox" data-product-id="827" data-price-box="product-id-827"> 15865 15866 <span
15867 x-data x-id="['product\u002Dprice\u002D827']" class="price-container price-final_price tax weee" 15868 > 15869 <span :id="$id('product\u002Dprice\u002D827')" data-price-amount="17.81" 15870 data-price-type="finalPrice" 15871 class="price-wrapper " 15872 ><span class="price">â¬Â 17,81</span></span> 15873 </span> 15874 15875 <span class="minimal-price-link"> 15876 <span 15877 x-data x-id="['827']" class="price-container price-final_price tax weee" 15878 > 15879 <span class="price-label">Vanaf</span> 15880 <span :id="$id('827')" data-price-amount="15.02" 15881 data-price-type="" 15882 class="price-wrapper " 15883 >â¬Â 15,02</span> 15884 </span> 15885 </span> 15886</div> </div> 15887 15888 <div x-data="hyva.modal()" class="lg:w-full"> 15889 <div x-cloak data-dialog-ref-name="dialog" 15890 x-bind="overlay" 15891 class="fixed inset-0 bg-black/50 z-50"> 15892 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 15893 <div x-ref="dialog" role="dialog" aria-modal="true" 15894 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 15895 15896<button @click="hide" type="button"> 15897 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 15898 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 15899<title>Sluiten</title></svg> 15900</button> 15901 15902<h2 class="text-primary-500 text-center mb-4"> 15903 Extra besparen?</h2> 15904 15905<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 15906 <div class="flex gap-2 mb-4"> 15907 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-small-medium" 15908 title="TENA Men Premium Fit Small/Medium" 15909 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 15910 tabindex="-1" 15911 > 15912 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_premium_fit_7.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-827.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_men_premium_fit_7.jpg" loading="lazy" width="261" height="261" alt="TENA Men Premium Fit Small/Medium" title="TENA Men Premium Fit Small/Medium" loading="lazy" /></picture> 15913 </a> 15914 15915 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 15916 <a href="https://www.123drogisterij.nl/tena-men-premium-fit-small-medium"> 15917 <strong class="text-xl"> 15918 TENA Men Premium Fit Small/Medium </strong> 15919 </a> 15920 15921
15921<script> 15922 function initPrice827() { 15923 15924 const regularPriceInclTaxKey = 'oldPrice', 15925 regularPriceExclTaxKey = 'baseOldPrice', 15926 finalPriceInclTaxKey = 'finalPrice', 15927 finalPriceExclTaxKey = 'basePrice'; 15928 15929 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 15930 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 15931 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 15932 if (customOptionPrice) { 15933 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 15934 } 15935 return priceAccumulator; 15936 }, 0); 15937 } 15938 15939 return { 15940 regularPriceKey: regularPriceInclTaxKey, 15941 finalPriceKey: finalPriceInclTaxKey, 15942 activeProductsPriceData: false, 15943 initialFinalPrice: 17.81, 15944 calculatedFinalPrice: false, 15945 calculatedFinalPriceWithCustomOptions: false, 15946 initialTierPrices: [{"price_id":"1544","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"827","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606},{"price_id":"1625","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"827","website_price":15.02,"price_incl_tax":15.02,"price_excl_tax":13.779815513761}], 15947 showRegularPriceLabel: false, 15948 customOptionPrices: [], 15949 activeCustomOptions: [], 15950 qty: 1, 15951 updateCustomOptionActive(data) { 15952 let activeCustomOptions = this.activeCustomOptions; 15953 const customOptionId = data.customOptionId; 15954 15955 if (data.active) { 15956 if (!activeCustomOptions.includes(customOptionId)) { 15957 activeCustomOptions.push(data.customOptionId); 15958 } 15959 } else { 15960 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 15961 let index = activeCustomOptions.indexOf(customOptionId); 15962 activeCustomOptions.splice(index, 1); 15963 } 15964 } 15965 this.calculateFinalPriceWithCustomOptions() 15966 }, 15967 updateCustomOptionPrices(prices, basePrices) { 15968 if (prices) { 15969 this.customOptionPrices = prices; 15970 } 15971 15972 15973 this.calculateFinalPriceWithCustomOptions(); 15974 }, 15975 calculateFinalPrice() { 15976 15977 const getOptionTierPrice = (tierPrice, withTax) => { 15978 return tierPrice[withTax ? 'price' : 'basePrice']; 15979 } 15980 15981 const findApplicableTierPrice = (initialPrice, withTax) => { 15982 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 15983 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 15984 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 15985 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 15986 return tierPriceCandidate; 15987 } 15988 return acc; 15989 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 15990 15991 } else { 15992 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 15993 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 15994 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 15995 return tierPrice[key]; 15996 } 15997 return acc; 15998 }, initialPrice); 15999 16000 } 16001 } 16002 16003 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 16004 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 16005 16006 },
16007 calculatePriceLabelVisibility() { 16008 this.showRegularPriceLabel = 16009 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 16010 this.activeProductsPriceData.isMinimalPrice; 16011 }, 16012 calculateFinalPriceWithCustomOptions() { 16013 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 16014 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 16015 }, 16016 getCustomOptionPrice() { 16017 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 16018 }, 16019 getFormattedFinalPrice() { 16020 return hyva.formatPrice( 16021 this.calculatedFinalPriceWithCustomOptions || 16022 this.calculatedFinalPrice || 16023 this.initialFinalPrice 16024 ) 16025 }, 16026 isPriceHidden() { 16027 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 16028 this.calculatedFinalPrice || 16029 this.initialFinalPrice; 16030 return false && finalPrice === 0; 16031 }, 16032 eventListeners: { 16033 ['@update-prices-827.window'](event) { 16034 this.activeProductsPriceData = event.detail; 16035 16036 this.calculateFinalPrice(); 16037 this.calculateFinalPriceWithCustomOptions(); 16038 this.calculatePriceLabelVisibility(); 16039 }, 16040 ['@update-qty-827.window'](event) { 16041 this.qty = event.detail; 16042 this.calculateFinalPrice(); 16043 this.calculateFinalPriceWithCustomOptions(); 16044 }, 16045 ['@update-custom-option-active.window'](event) { 16046 this.updateCustomOptionActive(event.detail); 16047 }, 16048 ['@update-custom-option-prices.window'](event) { 16049 this.updateCustomOptionPrices(event.detail); 16050 }, 16051 } 16052 } 16053 } 16054</script>
16054 16055<div x-data="initPrice827()" 16056 x-bind="eventListeners" 16057 class="price-box price-final_price" 16058> 16059 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 16060 <div class="price-container"> 16061 16062 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 16063 <span id="product-price-827" 16064 class="price-wrapper font-bold text-3xl text-secondary-800"> 16065 <span class="price" x-html="getFormattedFinalPrice()"> 16066 <span class="price">â¬Â 17,81</span> </span> 16067 </span> 16068 <meta itemprop="price" content="17.81"> 16069 <meta itemprop="priceCurrency" 16070 content="EUR"> 16071 </div> 16072 </div> 16073 </div> 16074 <template x-if="activeProductsPriceData && 16075 activeProductsPriceData.oldPrice && 16076 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 16077 "> 16078 <div class="old-price flex mr-2"> 16079 <span id="product-price-827" 16080 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 16081 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 16082 </span> 16083 </div> 16084 </template> 16085 <template x-if="activeProductsPriceData"> 16086 <div class="final-price inline-block"> 16087 <span id="product-price-827" 16088 class="price-wrapper font-bold text-3xl text-secondary-800"> 16089 <span class="price" x-html="getFormattedFinalPrice()"></span> 16090 </span> 16091 </div> 16092 </template> 16093 </div> 16094 </div> 16095 </div> 16096 16097 <div class="tier-price-popup lg:w-1/2"> 16098 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-premium-fit-small-medium"> 16099 <strong class="text-2xl"> 16100 TENA Men Premium Fit Small/Medium </strong> 16101 </a> 16102 16103
16103<script> 16104 function initTierPrice827() { 16105 return { 16106 qty: 1, 16107 minSalesQty: 1, 16108 isStandardSelected() { 16109 return this.qty < 5; 16110 }, 16111 eventListeners: { 16112 ['@update-qty-827.window'](event) { 16113 if (this.qty !== event.detail) { 16114 this.qty = event.detail; 16115 } 16116 } 16117 } 16118 } 16119 } 16120 </script>
16120 16121 <div class="prices-tier items mb-4" 16122 x-data="initTierPrice827()" 16123 x-bind="eventListeners" 16124 > 16125 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 16126 :class="{'active-tier-price827 border-green-600 shadow-hard': 16127 qty >= 5 && qty < 10}" 16128 @click="$dispatch('update-qty-827', 5);" 16129 data-qty="5" 16130 > 16131 16132 <div class="flex flex-row items-center"> 16133 <div class="flex flex-col flex-grow"> 16134 <div class="flex flex-row items-center justify-between"> 16135 <div class="flex items-center space-x-2"> 16136 <div class="price-container font-bold text-lg"> 16137 <span 16138 class="price-container price-tier_price tax weee" 16139 > 16140 <span data-price-amount="16.54" 16141 data-price-type="" 16142 class="price-wrapper " 16143 ><span class="price">â¬Â 16,54</span></span> 16144 </span> 16145 </div> 16146 <span class="ml-2 text-base"> 16147 per stuk </span> 16148 </div> 16149 <span> 16150 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 7</span>%</strong> </span> 16151 </div> 16152 16153 <div class="mt-1"> 16154 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 16155 <span>5 verpakkingen</span> </span> 16156 </div> 16157 </div> 16158 </div> 16159 </div> 16160 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 16161 :class="{'active-tier-price827 border-green-600 shadow-hard': 16162 qty >= 10 && qty < 10000}" 16163 @click="$dispatch('update-qty-827', 10);" 16164 data-qty="10" 16165 > 16166 16167 <div class="flex flex-row items-center"> 16168 <div class="flex flex-col flex-grow"> 16169 <div class="flex flex-row items-center justify-between"> 16170 <div class="flex items-center space-x-2"> 16171 <div class="price-container font-bold text-lg"> 16172 <span 16173 x-data x-id="['1']" class="price-container price-tier_price tax weee" 16174 > 16175 <span :id="$id('1')" data-price-amount="15.02" 16176 data-price-type="" 16177 class="price-wrapper " 16178 ><span class="price">â¬Â 15,02</span></span> 16179 </span> 16180 </div> 16181 <span class="ml-2 text-base"> 16182 per stuk </span> 16183 </div> 16184 <span 16185 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 16186 <strong>Voordeligste keuze</strong> 16187 </span> 16188 <span> 16189 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 16</span>%</strong> </span> 16190 </div> 16191 16192 <div class="mt-1">
16193 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 16194 <span>10 verpakkingen</span> </span> 16195 </div> 16196 </div> 16197 </div> 16198 <div class="choice-mobile mt-4 xl:hidden"> 16199 <hr class="p-2"> 16200 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 16201 <strong>Voordeligste keuze</strong> 16202 </span> 16203 </div> 16204 </div> 16205 16206 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 16207 :class="{'active-tier-price827 border-green-600 shadow-hard': isStandardSelected() }" 16208 @click="$dispatch('update-qty-827', minSalesQty);" 16209 > 16210 <div class="flex flex-row items-center"> 16211 <div class="flex flex-col flex-grow"> 16212 <div class="flex flex-row items-center"> 16213 <div class="flex items-center space-x-2"> 16214 <div class="price-container font-bold text-lg"> 16215 <span class="price">â¬Â 17,81</span> </div> 16216 <span class="ml-2 text-base"> 16217 per stuk </span> 16218 </div> 16219 <strong class="ml-auto text-gray-500"> 16220 Standaard </strong> 16221 </div> 16222 16223 <div class="mt-1"> 16224 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 16225 <span>1 verpakking</span> </span> 16226 </div> 16227 </div> 16228 </div> 16229 </div> 16230 16231 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 16232 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 16233 x-show="isStandardSelected() && true" 16234 x-cloak> 16235 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 16236 <div class="ml-6 text-sm opacity-90"> 16237 <strong>Let op:</strong> 16238 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 16239 <div class="ml-6 text-sm leading-snug opacity-60"> 16240 Kies een andere optie voor extra voordeel! </div> 16241 </div> 16242 </div> 16243 16244 <div class="hidden lg:block"> 16245
16245<script> 16246 function initPrice827() { 16247 16248 const regularPriceInclTaxKey = 'oldPrice', 16249 regularPriceExclTaxKey = 'baseOldPrice', 16250 finalPriceInclTaxKey = 'finalPrice', 16251 finalPriceExclTaxKey = 'basePrice'; 16252 16253 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 16254 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 16255 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 16256 if (customOptionPrice) { 16257 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 16258 } 16259 return priceAccumulator; 16260 }, 0); 16261 } 16262 16263 return { 16264 regularPriceKey: regularPriceInclTaxKey, 16265 finalPriceKey: finalPriceInclTaxKey, 16266 activeProductsPriceData: false, 16267 initialFinalPrice: 17.81, 16268 calculatedFinalPrice: false, 16269 calculatedFinalPriceWithCustomOptions: false, 16270 initialTierPrices: [{"price_id":"1544","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"827","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606},{"price_id":"1625","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"827","website_price":15.02,"price_incl_tax":15.02,"price_excl_tax":13.779815513761}], 16271 showRegularPriceLabel: false, 16272 customOptionPrices: [], 16273 activeCustomOptions: [], 16274 qty: 1, 16275 updateCustomOptionActive(data) { 16276 let activeCustomOptions = this.activeCustomOptions; 16277 const customOptionId = data.customOptionId; 16278 16279 if (data.active) { 16280 if (!activeCustomOptions.includes(customOptionId)) { 16281 activeCustomOptions.push(data.customOptionId); 16282 } 16283 } else { 16284 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 16285 let index = activeCustomOptions.indexOf(customOptionId); 16286 activeCustomOptions.splice(index, 1); 16287 } 16288 } 16289 this.calculateFinalPriceWithCustomOptions() 16290 }, 16291 updateCustomOptionPrices(prices, basePrices) { 16292 if (prices) { 16293 this.customOptionPrices = prices; 16294 } 16295 16296 16297 this.calculateFinalPriceWithCustomOptions(); 16298 }, 16299 calculateFinalPrice() { 16300 16301 const getOptionTierPrice = (tierPrice, withTax) => { 16302 return tierPrice[withTax ? 'price' : 'basePrice']; 16303 } 16304 16305 const findApplicableTierPrice = (initialPrice, withTax) => { 16306 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 16307 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 16308 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 16309 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 16310 return tierPriceCandidate; 16311 } 16312 return acc; 16313 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 16314 16315 } else { 16316 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 16317 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 16318 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 16319 return tierPrice[key]; 16320 } 16321 return acc; 16322 }, initialPrice); 16323 16324 } 16325 } 16326 16327 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 16328 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 16329 16330 },
16331 calculatePriceLabelVisibility() { 16332 this.showRegularPriceLabel = 16333 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 16334 this.activeProductsPriceData.isMinimalPrice; 16335 }, 16336 calculateFinalPriceWithCustomOptions() { 16337 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 16338 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 16339 }, 16340 getCustomOptionPrice() { 16341 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 16342 }, 16343 getFormattedFinalPrice() { 16344 return hyva.formatPrice( 16345 this.calculatedFinalPriceWithCustomOptions || 16346 this.calculatedFinalPrice || 16347 this.initialFinalPrice 16348 ) 16349 }, 16350 isPriceHidden() { 16351 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 16352 this.calculatedFinalPrice || 16353 this.initialFinalPrice; 16354 return false && finalPrice === 0; 16355 }, 16356 eventListeners: { 16357 ['@update-prices-827.window'](event) { 16358 this.activeProductsPriceData = event.detail; 16359 16360 this.calculateFinalPrice(); 16361 this.calculateFinalPriceWithCustomOptions(); 16362 this.calculatePriceLabelVisibility(); 16363 }, 16364 ['@update-qty-827.window'](event) { 16365 this.qty = event.detail; 16366 this.calculateFinalPrice(); 16367 this.calculateFinalPriceWithCustomOptions(); 16368 }, 16369 ['@update-custom-option-active.window'](event) { 16370 this.updateCustomOptionActive(event.detail); 16371 }, 16372 ['@update-custom-option-prices.window'](event) { 16373 this.updateCustomOptionPrices(event.detail); 16374 }, 16375 } 16376 } 16377 } 16378</script>
16378 16379<div x-data="initPrice827()" 16380 x-bind="eventListeners" 16381 class="price-box price-final_price" 16382> 16383 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 16384 <div class="price-container"> 16385 16386 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 16387 <span id="product-price-827" 16388 class="price-wrapper font-bold text-3xl text-secondary-800"> 16389 <span class="price" x-html="getFormattedFinalPrice()"> 16390 <span class="price">â¬Â 17,81</span> </span> 16391 </span> 16392 <meta itemprop="price" content="17.81"> 16393 <meta itemprop="priceCurrency" 16394 content="EUR"> 16395 </div> 16396 </div> 16397 </div> 16398 <template x-if="activeProductsPriceData && 16399 activeProductsPriceData.oldPrice && 16400 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 16401 "> 16402 <div class="old-price flex mr-2"> 16403 <span id="product-price-827" 16404 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 16405 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 16406 </span> 16407 </div> 16408 </template> 16409 <template x-if="activeProductsPriceData"> 16410 <div class="final-price inline-block"> 16411 <span id="product-price-827" 16412 class="price-wrapper font-bold text-3xl text-secondary-800"> 16413 <span class="price" x-html="getFormattedFinalPrice()"></span> 16414 </span> 16415 </div> 16416 </template> 16417 </div> 16418 </div> 16419 </div> 16420</div> 16421 16422<div class="flex flex-col items-center"> 16423 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 16424 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 16425 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 16426<title>In Winkelmand</title></svg> 16427 In Winkelmand </button> 16428 16429 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 16430 Nee, vandaag niet </button> 16431</div> 16432 </div> 16433 </div> 16434 </div> 16435 16436 <button @click="show('dialog', this.$event || $event)" 16437 class="btn btn-primary lg:w-full" 16438 type="button" 16439 aria-haspopup="dialog" 16440 > 16441 Kies uw voordeel </button> 16442 </div> 16443 </div> 16444 16445 <div class="flex items-center gap-1 lg:hidden"> 16446 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 16447 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 16448 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 16449 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 16450<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
16451 <span> 16452 Tot 22:30 uur besteld = morgen in huis <span 16453 class="absolute group cursor-pointer inline-flex items-center justify-center"> 16454 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 16455 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 16456<title/></svg> 16457 <span class="absolute top-full left-1/2 -translate-x-[80%] 16458 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 16459 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 16460 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 16461 </span> 16462 </span> 16463 </div> 16464 </div> 16465</form> 16466 </li> 16467 <li> 16468
16468<script> 16469 function initQtyFromTier1896() { 16470 return { 16471 qty: 1, 16472 updateQty(event) { 16473 this.qty = event.detail; 16474 } 16475 } 16476 } 16477</script>
16477 16478 16479<form method="post" 16480 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1896/" 16481 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 16482 x-data="initQtyFromTier1896()" 16483 @update-qty-1896="updateQty(event)" 16484 16485 > 16486 <input name="form_key" type="hidden" value="E3O5ylTA3crTlMpi" /> <input type="hidden" name="product" value="1896"/> 16487 <input type="hidden" 16488 name="qty" 16489 id="qty[1896]" 16490 :value="qty" 16491 x-model.number="qty" 16492 /> 16493 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 16494 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-l-xl" 16495 title="TENA Men Active Fit Pants Normal L/XL" 16496 class="product photo product-item-photo block w-1/3 lg:w-1/4" 16497 tabindex="-1" 16498 > 16499 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1_.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1896.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1_.png" loading="lazy" width="187" height="234" alt="TENA Men Active Fit Pants Normal" title="TENA Men Active Fit Pants Normal" loading="lazy" /></picture> 16500 </a> 16501 16502 <div class="w-2/3 lg:mx-8"> 16503 <strong> 16504 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 16505 href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-l-xl" 16506 :id="`slide-desc-1896-${$id('slider-id')}`" 16507 > 16508 TENA Men Active Fit Pants Normal L/XL </a> 16509 </strong> 16510 16511 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 16512 <span class="block text-gray-500 mb-1"> 16513 Artikelnummer: 772802 </span> 16514 16515 <span class="block text-gray-500 mb-1 lg:text-md"> 16516 Verpakking: 10 stuks </span> 16517 </div> 16518 16519 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 16520 Absorptievermogen: 16521 <div class="flex gap-2"> 16522 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16523 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16524 </svg> 16525 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16526 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16527 </svg> 16528 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16529 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16530 </svg> 16531 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16532 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16533 </svg> 16534 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16535 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
16535697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16536 </svg> 16537 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16538 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16539 </svg> 16540 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16541 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16542 </svg> 16543 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16544 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16545 </svg> 16546 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16547 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16548 </svg> 16549 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16550 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16551 </svg> 16552 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 16553 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 16554 </svg> 16555 </div> 16556 </span> 16557 16558 <div class="lg:hidden"> 16559 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 16560 " 16561 title="Beschikbaarheid" 16562 > 16563 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 16564 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 16565<title>check-circle</title></svg> 16566Op voorraad </p> 16567 </div> 16568 16569 <div class="hidden lg:block" 16570 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 16571 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
16572 content = trimToSentence(originalContent, maxLength); 16573 isVisible = false"; 16574 > 16575 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 16576 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design. </div> 16577 16578 <div class="prose md:prose-base text-md" x-show="isVisible"> 16579 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlie </div> 16580 16581 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 16582 @click="isCollapsed = !isCollapsed" 16583 x-show="originalContent.length > maxLength ? true : false" 16584 type="button" 16585 > 16586 <span x-text="isCollapsed ? 16587 'Lees minder' : 16588 'Lees meer'" 16589 ></span> 16590 </button> 16591 </div> 16592 </div> 16593 </div> 16594 16595 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 16596 <div class="lg:hidden" 16597 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 16598 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
16599 content = trimToSentence(originalContent, maxLength); 16600 isVisible = false"; 16601 > 16602 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 16603 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design. </div> 16604 16605 <div class="prose md:prose-base" x-show="isVisible"> 16606 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De voch </div> 16607 16608 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 16609 @click="isCollapsed = !isCollapsed" 16610 x-show="originalContent.length > maxLength ? true : false" 16611 type="button" 16612 > 16613 <span x-text="isCollapsed ? 16614 'Lees minder' : 16615 'Lees meer'" 16616 ></span> 16617 </button> 16618 </div> 16619 16620 16621 <div class="hidden lg:block lg:text-md"> 16622 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 16623 " 16624 title="Beschikbaarheid" 16625 > 16626 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 16627 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 16628<title>check-circle</title></svg> 16629Op voorraad </p> 16630 </div> 16631 16632 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 16633 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 16634 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 16635 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 16636 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 16637<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 16638 <span> 16639 Tot 22:30 uur besteld = morgen in huis <span 16640 class="absolute group cursor-pointer inline-flex"> 16641 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 16642 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 16643<title/></svg> 16644 <span class="absolute top-full left-1/2 -translate-x-[80%] 16645 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 16646 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 16647 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 16648 </span> 16649 </span> 16650 </div> 16651 16652 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 16653 <div class="pt-1 text-gray-900" 16654 x-data="initPriceBox()" 16655 x-defer="intersect" 16656 @update-prices-1896.window="updatePrice($event.detail);" 16657 > 16658 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1896" data-price-box="product-id-1896"> 16659 16660 <span
16661 x-data x-id="['product\u002Dprice\u002D1896']" class="price-container price-final_price tax weee" 16662 > 16663 <span :id="$id('product\u002Dprice\u002D1896')" data-price-amount="14.83" 16664 data-price-type="finalPrice" 16665 class="price-wrapper " 16666 ><span class="price">â¬Â 14,83</span></span> 16667 </span> 16668 16669 <span class="minimal-price-link"> 16670 <span 16671 x-data x-id="['1896']" class="price-container price-final_price tax weee" 16672 > 16673 <span class="price-label">Vanaf</span> 16674 <span :id="$id('1896')" data-price-amount="13.04" 16675 data-price-type="" 16676 class="price-wrapper " 16677 >â¬Â 13,04</span> 16678 </span> 16679 </span> 16680</div> </div> 16681 16682 <div x-data="hyva.modal()" class="lg:w-full"> 16683 <div x-cloak data-dialog-ref-name="dialog" 16684 x-bind="overlay" 16685 class="fixed inset-0 bg-black/50 z-50"> 16686 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 16687 <div x-ref="dialog" role="dialog" aria-modal="true" 16688 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 16689 16690<button @click="hide" type="button"> 16691 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 16692 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 16693<title>Sluiten</title></svg> 16694</button> 16695 16696<h2 class="text-primary-500 text-center mb-4"> 16697 Extra besparen?</h2> 16698 16699<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 16700 <div class="flex gap-2 mb-4"> 16701 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-l-xl" 16702 title="TENA Men Active Fit Pants Normal L/XL" 16703 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 16704 tabindex="-1" 16705 > 16706 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1_.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1896.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1_.png" loading="lazy" width="261" height="261" alt="TENA Men Active Fit Pants Normal" title="TENA Men Active Fit Pants Normal" loading="lazy" /></picture> 16707 </a> 16708 16709 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 16710 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-l-xl"> 16711 <strong class="text-xl"> 16712 TENA Men Active Fit Pants Normal L/XL </strong> 16713 </a> 16714 16715
16715<script> 16716 function initPrice1896() { 16717 16718 const regularPriceInclTaxKey = 'oldPrice', 16719 regularPriceExclTaxKey = 'baseOldPrice', 16720 finalPriceInclTaxKey = 'finalPrice', 16721 finalPriceExclTaxKey = 'basePrice'; 16722 16723 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 16724 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 16725 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 16726 if (customOptionPrice) { 16727 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 16728 } 16729 return priceAccumulator; 16730 }, 0); 16731 } 16732 16733 return { 16734 regularPriceKey: regularPriceInclTaxKey, 16735 finalPriceKey: finalPriceInclTaxKey, 16736 activeProductsPriceData: false, 16737 initialFinalPrice: 14.83, 16738 calculatedFinalPrice: false, 16739 calculatedFinalPriceWithCustomOptions: false, 16740 initialTierPrices: [{"price_id":"2115","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1896","website_price":14.2,"price_incl_tax":14.2,"price_excl_tax":13.02752193578},{"price_id":"2116","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1896","website_price":13.04,"price_incl_tax":13.04,"price_excl_tax":11.963301752294}], 16741 showRegularPriceLabel: false, 16742 customOptionPrices: [], 16743 activeCustomOptions: [], 16744 qty: 1, 16745 updateCustomOptionActive(data) { 16746 let activeCustomOptions = this.activeCustomOptions; 16747 const customOptionId = data.customOptionId; 16748 16749 if (data.active) { 16750 if (!activeCustomOptions.includes(customOptionId)) { 16751 activeCustomOptions.push(data.customOptionId); 16752 } 16753 } else { 16754 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 16755 let index = activeCustomOptions.indexOf(customOptionId); 16756 activeCustomOptions.splice(index, 1); 16757 } 16758 } 16759 this.calculateFinalPriceWithCustomOptions() 16760 }, 16761 updateCustomOptionPrices(prices, basePrices) { 16762 if (prices) { 16763 this.customOptionPrices = prices; 16764 } 16765 16766 16767 this.calculateFinalPriceWithCustomOptions(); 16768 }, 16769 calculateFinalPrice() { 16770 16771 const getOptionTierPrice = (tierPrice, withTax) => { 16772 return tierPrice[withTax ? 'price' : 'basePrice']; 16773 } 16774 16775 const findApplicableTierPrice = (initialPrice, withTax) => { 16776 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 16777 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 16778 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 16779 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 16780 return tierPriceCandidate; 16781 } 16782 return acc; 16783 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 16784 16785 } else { 16786 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 16787 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 16788 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 16789 return tierPrice[key]; 16790 } 16791 return acc; 16792 }, initialPrice); 16793 16794 } 16795 } 16796 16797 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 16798 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 16799 16800 },
16801 calculatePriceLabelVisibility() { 16802 this.showRegularPriceLabel = 16803 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 16804 this.activeProductsPriceData.isMinimalPrice; 16805 }, 16806 calculateFinalPriceWithCustomOptions() { 16807 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 16808 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 16809 }, 16810 getCustomOptionPrice() { 16811 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 16812 }, 16813 getFormattedFinalPrice() { 16814 return hyva.formatPrice( 16815 this.calculatedFinalPriceWithCustomOptions || 16816 this.calculatedFinalPrice || 16817 this.initialFinalPrice 16818 ) 16819 }, 16820 isPriceHidden() { 16821 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 16822 this.calculatedFinalPrice || 16823 this.initialFinalPrice; 16824 return false && finalPrice === 0; 16825 }, 16826 eventListeners: { 16827 ['@update-prices-1896.window'](event) { 16828 this.activeProductsPriceData = event.detail; 16829 16830 this.calculateFinalPrice(); 16831 this.calculateFinalPriceWithCustomOptions(); 16832 this.calculatePriceLabelVisibility(); 16833 }, 16834 ['@update-qty-1896.window'](event) { 16835 this.qty = event.detail; 16836 this.calculateFinalPrice(); 16837 this.calculateFinalPriceWithCustomOptions(); 16838 }, 16839 ['@update-custom-option-active.window'](event) { 16840 this.updateCustomOptionActive(event.detail); 16841 }, 16842 ['@update-custom-option-prices.window'](event) { 16843 this.updateCustomOptionPrices(event.detail); 16844 }, 16845 } 16846 } 16847 } 16848</script>
16848 16849<div x-data="initPrice1896()" 16850 x-bind="eventListeners" 16851 class="price-box price-final_price" 16852> 16853 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 16854 <div class="price-container"> 16855 16856 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 16857 <span id="product-price-1896" 16858 class="price-wrapper font-bold text-3xl text-secondary-800"> 16859 <span class="price" x-html="getFormattedFinalPrice()"> 16860 <span class="price">â¬Â 14,83</span> </span> 16861 </span> 16862 <meta itemprop="price" content="14.83"> 16863 <meta itemprop="priceCurrency" 16864 content="EUR"> 16865 </div> 16866 </div> 16867 </div> 16868 <template x-if="activeProductsPriceData && 16869 activeProductsPriceData.oldPrice && 16870 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 16871 "> 16872 <div class="old-price flex mr-2"> 16873 <span id="product-price-1896" 16874 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 16875 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 16876 </span> 16877 </div> 16878 </template> 16879 <template x-if="activeProductsPriceData"> 16880 <div class="final-price inline-block"> 16881 <span id="product-price-1896" 16882 class="price-wrapper font-bold text-3xl text-secondary-800"> 16883 <span class="price" x-html="getFormattedFinalPrice()"></span> 16884 </span> 16885 </div> 16886 </template> 16887 </div> 16888 </div> 16889 </div> 16890 16891 <div class="tier-price-popup lg:w-1/2"> 16892 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-l-xl"> 16893 <strong class="text-2xl"> 16894 TENA Men Active Fit Pants Normal L/XL </strong> 16895 </a> 16896 16897
16897<script> 16898 function initTierPrice1896() { 16899 return { 16900 qty: 1, 16901 minSalesQty: 1, 16902 isStandardSelected() { 16903 return this.qty < 5; 16904 }, 16905 eventListeners: { 16906 ['@update-qty-1896.window'](event) { 16907 if (this.qty !== event.detail) { 16908 this.qty = event.detail; 16909 } 16910 } 16911 } 16912 } 16913 } 16914 </script>
16914 16915 <div class="prices-tier items mb-4" 16916 x-data="initTierPrice1896()" 16917 x-bind="eventListeners" 16918 > 16919 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 16920 :class="{'active-tier-price1896 border-green-600 shadow-hard': 16921 qty >= 5 && qty < 10}" 16922 @click="$dispatch('update-qty-1896', 5);" 16923 data-qty="5" 16924 > 16925 16926 <div class="flex flex-row items-center"> 16927 <div class="flex flex-col flex-grow"> 16928 <div class="flex flex-row items-center justify-between"> 16929 <div class="flex items-center space-x-2"> 16930 <div class="price-container font-bold text-lg"> 16931 <span 16932 class="price-container price-tier_price tax weee" 16933 > 16934 <span data-price-amount="14.2" 16935 data-price-type="" 16936 class="price-wrapper " 16937 ><span class="price">â¬Â 14,20</span></span> 16938 </span> 16939 </div> 16940 <span class="ml-2 text-base"> 16941 per stuk </span> 16942 </div> 16943 <span> 16944 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 4</span>%</strong> </span> 16945 </div> 16946 16947 <div class="mt-1"> 16948 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 16949 <span>5 verpakkingen</span> </span> 16950 </div> 16951 </div> 16952 </div> 16953 </div> 16954 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 16955 :class="{'active-tier-price1896 border-green-600 shadow-hard': 16956 qty >= 10 && qty < 10000}" 16957 @click="$dispatch('update-qty-1896', 10);" 16958 data-qty="10" 16959 > 16960 16961 <div class="flex flex-row items-center"> 16962 <div class="flex flex-col flex-grow"> 16963 <div class="flex flex-row items-center justify-between"> 16964 <div class="flex items-center space-x-2"> 16965 <div class="price-container font-bold text-lg"> 16966 <span 16967 x-data x-id="['1']" class="price-container price-tier_price tax weee" 16968 > 16969 <span :id="$id('1')" data-price-amount="13.04" 16970 data-price-type="" 16971 class="price-wrapper " 16972 ><span class="price">â¬Â 13,04</span></span> 16973 </span> 16974 </div> 16975 <span class="ml-2 text-base"> 16976 per stuk </span> 16977 </div> 16978 <span 16979 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 16980 <strong>Voordeligste keuze</strong> 16981 </span> 16982 <span> 16983 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 12</span>%</strong> </span> 16984 </div> 16985 16986 <div class="mt-1">
16987 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 16988 <span>10 verpakkingen</span> </span> 16989 </div> 16990 </div> 16991 </div> 16992 <div class="choice-mobile mt-4 xl:hidden"> 16993 <hr class="p-2"> 16994 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 16995 <strong>Voordeligste keuze</strong> 16996 </span> 16997 </div> 16998 </div> 16999 17000 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 17001 :class="{'active-tier-price1896 border-green-600 shadow-hard': isStandardSelected() }" 17002 @click="$dispatch('update-qty-1896', minSalesQty);" 17003 > 17004 <div class="flex flex-row items-center"> 17005 <div class="flex flex-col flex-grow"> 17006 <div class="flex flex-row items-center"> 17007 <div class="flex items-center space-x-2"> 17008 <div class="price-container font-bold text-lg"> 17009 <span class="price">â¬Â 14,83</span> </div> 17010 <span class="ml-2 text-base"> 17011 per stuk </span> 17012 </div> 17013 <strong class="ml-auto text-gray-500"> 17014 Standaard </strong> 17015 </div> 17016 17017 <div class="mt-1"> 17018 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 17019 <span>1 verpakking</span> </span> 17020 </div> 17021 </div> 17022 </div> 17023 </div> 17024 17025 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 17026 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 17027 x-show="isStandardSelected() && true" 17028 x-cloak> 17029 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 17030 <div class="ml-6 text-sm opacity-90"> 17031 <strong>Let op:</strong> 17032 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 17033 <div class="ml-6 text-sm leading-snug opacity-60"> 17034 Kies een andere optie voor extra voordeel! </div> 17035 </div> 17036 </div> 17037 17038 <div class="hidden lg:block"> 17039
17039<script> 17040 function initPrice1896() { 17041 17042 const regularPriceInclTaxKey = 'oldPrice', 17043 regularPriceExclTaxKey = 'baseOldPrice', 17044 finalPriceInclTaxKey = 'finalPrice', 17045 finalPriceExclTaxKey = 'basePrice'; 17046 17047 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 17048 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 17049 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 17050 if (customOptionPrice) { 17051 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 17052 } 17053 return priceAccumulator; 17054 }, 0); 17055 } 17056 17057 return { 17058 regularPriceKey: regularPriceInclTaxKey, 17059 finalPriceKey: finalPriceInclTaxKey, 17060 activeProductsPriceData: false, 17061 initialFinalPrice: 14.83, 17062 calculatedFinalPrice: false, 17063 calculatedFinalPriceWithCustomOptions: false, 17064 initialTierPrices: [{"price_id":"2115","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1896","website_price":14.2,"price_incl_tax":14.2,"price_excl_tax":13.02752193578},{"price_id":"2116","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1896","website_price":13.04,"price_incl_tax":13.04,"price_excl_tax":11.963301752294}], 17065 showRegularPriceLabel: false, 17066 customOptionPrices: [], 17067 activeCustomOptions: [], 17068 qty: 1, 17069 updateCustomOptionActive(data) { 17070 let activeCustomOptions = this.activeCustomOptions; 17071 const customOptionId = data.customOptionId; 17072 17073 if (data.active) { 17074 if (!activeCustomOptions.includes(customOptionId)) { 17075 activeCustomOptions.push(data.customOptionId); 17076 } 17077 } else { 17078 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 17079 let index = activeCustomOptions.indexOf(customOptionId); 17080 activeCustomOptions.splice(index, 1); 17081 } 17082 } 17083 this.calculateFinalPriceWithCustomOptions() 17084 }, 17085 updateCustomOptionPrices(prices, basePrices) { 17086 if (prices) { 17087 this.customOptionPrices = prices; 17088 } 17089 17090 17091 this.calculateFinalPriceWithCustomOptions(); 17092 }, 17093 calculateFinalPrice() { 17094 17095 const getOptionTierPrice = (tierPrice, withTax) => { 17096 return tierPrice[withTax ? 'price' : 'basePrice']; 17097 } 17098 17099 const findApplicableTierPrice = (initialPrice, withTax) => { 17100 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 17101 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 17102 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 17103 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 17104 return tierPriceCandidate; 17105 } 17106 return acc; 17107 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 17108 17109 } else { 17110 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 17111 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 17112 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 17113 return tierPrice[key]; 17114 } 17115 return acc; 17116 }, initialPrice); 17117 17118 } 17119 } 17120 17121 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 17122 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 17123 17124 },
17125 calculatePriceLabelVisibility() { 17126 this.showRegularPriceLabel = 17127 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 17128 this.activeProductsPriceData.isMinimalPrice; 17129 }, 17130 calculateFinalPriceWithCustomOptions() { 17131 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 17132 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 17133 }, 17134 getCustomOptionPrice() { 17135 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 17136 }, 17137 getFormattedFinalPrice() { 17138 return hyva.formatPrice( 17139 this.calculatedFinalPriceWithCustomOptions || 17140 this.calculatedFinalPrice || 17141 this.initialFinalPrice 17142 ) 17143 }, 17144 isPriceHidden() { 17145 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 17146 this.calculatedFinalPrice || 17147 this.initialFinalPrice; 17148 return false && finalPrice === 0; 17149 }, 17150 eventListeners: { 17151 ['@update-prices-1896.window'](event) { 17152 this.activeProductsPriceData = event.detail; 17153 17154 this.calculateFinalPrice(); 17155 this.calculateFinalPriceWithCustomOptions(); 17156 this.calculatePriceLabelVisibility(); 17157 }, 17158 ['@update-qty-1896.window'](event) { 17159 this.qty = event.detail; 17160 this.calculateFinalPrice(); 17161 this.calculateFinalPriceWithCustomOptions(); 17162 }, 17163 ['@update-custom-option-active.window'](event) { 17164 this.updateCustomOptionActive(event.detail); 17165 }, 17166 ['@update-custom-option-prices.window'](event) { 17167 this.updateCustomOptionPrices(event.detail); 17168 }, 17169 } 17170 } 17171 } 17172</script>
17172 17173<div x-data="initPrice1896()" 17174 x-bind="eventListeners" 17175 class="price-box price-final_price" 17176> 17177 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 17178 <div class="price-container"> 17179 17180 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 17181 <span id="product-price-1896" 17182 class="price-wrapper font-bold text-3xl text-secondary-800"> 17183 <span class="price" x-html="getFormattedFinalPrice()"> 17184 <span class="price">â¬Â 14,83</span> </span> 17185 </span> 17186 <meta itemprop="price" content="14.83"> 17187 <meta itemprop="priceCurrency" 17188 content="EUR"> 17189 </div> 17190 </div> 17191 </div> 17192 <template x-if="activeProductsPriceData && 17193 activeProductsPriceData.oldPrice && 17194 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 17195 "> 17196 <div class="old-price flex mr-2"> 17197 <span id="product-price-1896" 17198 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 17199 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 17200 </span> 17201 </div> 17202 </template> 17203 <template x-if="activeProductsPriceData"> 17204 <div class="final-price inline-block"> 17205 <span id="product-price-1896" 17206 class="price-wrapper font-bold text-3xl text-secondary-800"> 17207 <span class="price" x-html="getFormattedFinalPrice()"></span> 17208 </span> 17209 </div> 17210 </template> 17211 </div> 17212 </div> 17213 </div> 17214</div> 17215 17216<div class="flex flex-col items-center"> 17217 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 17218 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 17219 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 17220<title>In Winkelmand</title></svg> 17221 In Winkelmand </button> 17222 17223 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 17224 Nee, vandaag niet </button> 17225</div> 17226 </div> 17227 </div> 17228 </div> 17229 17230 <button @click="show('dialog', this.$event || $event)" 17231 class="btn btn-primary lg:w-full" 17232 type="button" 17233 aria-haspopup="dialog" 17234 > 17235 Kies uw voordeel </button> 17236 </div> 17237 </div> 17238 17239 <div class="flex items-center gap-1 lg:hidden"> 17240 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 17241 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 17242 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 17243 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 17244<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
17245 <span> 17246 Tot 22:30 uur besteld = morgen in huis <span 17247 class="absolute group cursor-pointer inline-flex items-center justify-center"> 17248 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 17249 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 17250<title/></svg> 17251 <span class="absolute top-full left-1/2 -translate-x-[80%] 17252 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 17253 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 17254 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 17255 </span> 17256 </span> 17257 </div> 17258 </div> 17259</form> 17260 </li> 17261 <li> 17262
17262<script> 17263 function initQtyFromTier1895() { 17264 return { 17265 qty: 1, 17266 updateQty(event) { 17267 this.qty = event.detail; 17268 } 17269 } 17270 } 17271</script>
17271 17272 17273<form method="post" 17274 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1895/" 17275 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 17276 x-data="initQtyFromTier1895()" 17277 @update-qty-1895="updateQty(event)" 17278 17279 > 17280 <input name="form_key" type="hidden" value="qoyRHmVlz7lTgkGp" /> <input type="hidden" name="product" value="1895"/> 17281 <input type="hidden" 17282 name="qty" 17283 id="qty[1895]" 17284 :value="qty" 17285 x-model.number="qty" 17286 /> 17287 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 17288 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-s-m" 17289 title="TENA Men Active Fit Pants Normal S/M" 17290 class="product photo product-item-photo block w-1/3 lg:w-1/4" 17291 tabindex="-1" 17292 > 17293 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1__1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1895.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1__1.png" loading="lazy" width="187" height="234" alt="TENA Men Active Fit Pants Normal" title="TENA Men Active Fit Pants Normal" loading="lazy" /></picture> 17294 </a> 17295 17296 <div class="w-2/3 lg:mx-8"> 17297 <strong> 17298 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 17299 href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-s-m" 17300 :id="`slide-desc-1895-${$id('slider-id')}`" 17301 > 17302 TENA Men Active Fit Pants Normal S/M </a> 17303 </strong> 17304 17305 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 17306 <span class="block text-gray-500 mb-1"> 17307 Artikelnummer: 772702 </span> 17308 17309 <span class="block text-gray-500 mb-1 lg:text-md"> 17310 Verpakking: 12 stuks </span> 17311 </div> 17312 17313 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 17314 Absorptievermogen: 17315 <div class="flex gap-2"> 17316 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17317 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17318 </svg> 17319 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17320 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17321 </svg> 17322 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17323 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17324 </svg> 17325 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17326 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17327 </svg> 17328 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17329 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
17329697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17330 </svg> 17331 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17332 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17333 </svg> 17334 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17335 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17336 </svg> 17337 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17338 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17339 </svg> 17340 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17341 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17342 </svg> 17343 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17344 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17345 </svg> 17346 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 17347 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 17348 </svg> 17349 </div> 17350 </span> 17351 17352 <div class="lg:hidden"> 17353 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 17354 " 17355 title="Beschikbaarheid" 17356 > 17357 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 17358 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 17359<title>check-circle</title></svg> 17360Op voorraad </p> 17361 </div> 17362 17363 <div class="hidden lg:block" 17364 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 17365 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
17366 content = trimToSentence(originalContent, maxLength); 17367 isVisible = false"; 17368 > 17369 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 17370 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design. </div> 17371 17372 <div class="prose md:prose-base text-md" x-show="isVisible"> 17373 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlie </div> 17374 17375 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 17376 @click="isCollapsed = !isCollapsed" 17377 x-show="originalContent.length > maxLength ? true : false" 17378 type="button" 17379 > 17380 <span x-text="isCollapsed ? 17381 'Lees minder' : 17382 'Lees meer'" 17383 ></span> 17384 </button> 17385 </div> 17386 </div> 17387 </div> 17388 17389 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 17390 <div class="lg:hidden" 17391 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 17392 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
17393 content = trimToSentence(originalContent, maxLength); 17394 isVisible = false"; 17395 > 17396 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 17397 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design. </div> 17398 17399 <div class="prose md:prose-base" x-show="isVisible"> 17400 TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De voch </div> 17401 17402 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 17403 @click="isCollapsed = !isCollapsed" 17404 x-show="originalContent.length > maxLength ? true : false" 17405 type="button" 17406 > 17407 <span x-text="isCollapsed ? 17408 'Lees minder' : 17409 'Lees meer'" 17410 ></span> 17411 </button> 17412 </div> 17413 17414 17415 <div class="hidden lg:block lg:text-md"> 17416 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 17417 " 17418 title="Beschikbaarheid" 17419 > 17420 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 17421 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 17422<title>check-circle</title></svg> 17423Op voorraad </p> 17424 </div> 17425 17426 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 17427 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 17428 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 17429 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 17430 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 17431<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 17432 <span> 17433 Tot 22:30 uur besteld = morgen in huis <span 17434 class="absolute group cursor-pointer inline-flex"> 17435 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 17436 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 17437<title/></svg> 17438 <span class="absolute top-full left-1/2 -translate-x-[80%] 17439 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 17440 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 17441 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 17442 </span> 17443 </span> 17444 </div> 17445 17446 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 17447 <div class="pt-1 text-gray-900" 17448 x-data="initPriceBox()" 17449 x-defer="intersect" 17450 @update-prices-1895.window="updatePrice($event.detail);" 17451 > 17452 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1895" data-price-box="product-id-1895"> 17453 17454 <span
17455 x-data x-id="['product\u002Dprice\u002D1895']" class="price-container price-final_price tax weee" 17456 > 17457 <span :id="$id('product\u002Dprice\u002D1895')" data-price-amount="14.83" 17458 data-price-type="finalPrice" 17459 class="price-wrapper " 17460 ><span class="price">â¬Â 14,83</span></span> 17461 </span> 17462 17463 <span class="minimal-price-link"> 17464 <span 17465 x-data x-id="['1895']" class="price-container price-final_price tax weee" 17466 > 17467 <span class="price-label">Vanaf</span> 17468 <span :id="$id('1895')" data-price-amount="13.04" 17469 data-price-type="" 17470 class="price-wrapper " 17471 >â¬Â 13,04</span> 17472 </span> 17473 </span> 17474</div> </div> 17475 17476 <div x-data="hyva.modal()" class="lg:w-full"> 17477 <div x-cloak data-dialog-ref-name="dialog6ac2fc2071bdb" 17478 x-bind="overlay" 17479 class="fixed inset-0 bg-black/50 z-50"> 17480 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 17481 <div x-ref="dialog6ac2fc2071bdb" role="dialog" aria-modal="true" 17482 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 17483 17484<button @click="hide" type="button"> 17485 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 17486 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 17487<title>Sluiten</title></svg> 17488</button> 17489 17490<h2 class="text-primary-500 text-center mb-4"> 17491 Extra besparen?</h2> 17492 17493<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 17494 <div class="flex gap-2 mb-4"> 17495 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-s-m" 17496 title="TENA Men Active Fit Pants Normal S/M" 17497 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 17498 tabindex="-1" 17499 > 17500 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1__1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1895.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-men-active-fit-pants-grey-beauty-xmen_1__1.png" loading="lazy" width="261" height="261" alt="TENA Men Active Fit Pants Normal" title="TENA Men Active Fit Pants Normal" loading="lazy" /></picture> 17501 </a> 17502 17503 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 17504 <a href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-s-m"> 17505 <strong class="text-xl"> 17506 TENA Men Active Fit Pants Normal S/M </strong> 17507 </a> 17508 17509
17509<script> 17510 function initPrice1895() { 17511 17512 const regularPriceInclTaxKey = 'oldPrice', 17513 regularPriceExclTaxKey = 'baseOldPrice', 17514 finalPriceInclTaxKey = 'finalPrice', 17515 finalPriceExclTaxKey = 'basePrice'; 17516 17517 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 17518 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 17519 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 17520 if (customOptionPrice) { 17521 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 17522 } 17523 return priceAccumulator; 17524 }, 0); 17525 } 17526 17527 return { 17528 regularPriceKey: regularPriceInclTaxKey, 17529 finalPriceKey: finalPriceInclTaxKey, 17530 activeProductsPriceData: false, 17531 initialFinalPrice: 14.83, 17532 calculatedFinalPrice: false, 17533 calculatedFinalPriceWithCustomOptions: false, 17534 initialTierPrices: [{"price_id":"2113","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1895","website_price":14.2,"price_incl_tax":14.2,"price_excl_tax":13.02752193578},{"price_id":"2114","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1895","website_price":13.04,"price_incl_tax":13.04,"price_excl_tax":11.963301752294}], 17535 showRegularPriceLabel: false, 17536 customOptionPrices: [], 17537 activeCustomOptions: [], 17538 qty: 1, 17539 updateCustomOptionActive(data) { 17540 let activeCustomOptions = this.activeCustomOptions; 17541 const customOptionId = data.customOptionId; 17542 17543 if (data.active) { 17544 if (!activeCustomOptions.includes(customOptionId)) { 17545 activeCustomOptions.push(data.customOptionId); 17546 } 17547 } else { 17548 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 17549 let index = activeCustomOptions.indexOf(customOptionId); 17550 activeCustomOptions.splice(index, 1); 17551 } 17552 } 17553 this.calculateFinalPriceWithCustomOptions() 17554 }, 17555 updateCustomOptionPrices(prices, basePrices) { 17556 if (prices) { 17557 this.customOptionPrices = prices; 17558 } 17559 17560 17561 this.calculateFinalPriceWithCustomOptions(); 17562 }, 17563 calculateFinalPrice() { 17564 17565 const getOptionTierPrice = (tierPrice, withTax) => { 17566 return tierPrice[withTax ? 'price' : 'basePrice']; 17567 } 17568 17569 const findApplicableTierPrice = (initialPrice, withTax) => { 17570 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 17571 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 17572 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 17573 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 17574 return tierPriceCandidate; 17575 } 17576 return acc; 17577 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 17578 17579 } else { 17580 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 17581 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 17582 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 17583 return tierPrice[key]; 17584 } 17585 return acc; 17586 }, initialPrice); 17587 17588 } 17589 } 17590 17591 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 17592 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 17593 17594 },
17595 calculatePriceLabelVisibility() { 17596 this.showRegularPriceLabel = 17597 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 17598 this.activeProductsPriceData.isMinimalPrice; 17599 }, 17600 calculateFinalPriceWithCustomOptions() { 17601 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 17602 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 17603 }, 17604 getCustomOptionPrice() { 17605 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 17606 }, 17607 getFormattedFinalPrice() { 17608 return hyva.formatPrice( 17609 this.calculatedFinalPriceWithCustomOptions || 17610 this.calculatedFinalPrice || 17611 this.initialFinalPrice 17612 ) 17613 }, 17614 isPriceHidden() { 17615 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 17616 this.calculatedFinalPrice || 17617 this.initialFinalPrice; 17618 return false && finalPrice === 0; 17619 }, 17620 eventListeners: { 17621 ['@update-prices-1895.window'](event) { 17622 this.activeProductsPriceData = event.detail; 17623 17624 this.calculateFinalPrice(); 17625 this.calculateFinalPriceWithCustomOptions(); 17626 this.calculatePriceLabelVisibility(); 17627 }, 17628 ['@update-qty-1895.window'](event) { 17629 this.qty = event.detail; 17630 this.calculateFinalPrice(); 17631 this.calculateFinalPriceWithCustomOptions(); 17632 }, 17633 ['@update-custom-option-active.window'](event) { 17634 this.updateCustomOptionActive(event.detail); 17635 }, 17636 ['@update-custom-option-prices.window'](event) { 17637 this.updateCustomOptionPrices(event.detail); 17638 }, 17639 } 17640 } 17641 } 17642</script>
17642 17643<div x-data="initPrice1895()" 17644 x-bind="eventListeners" 17645 class="price-box price-final_price" 17646> 17647 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 17648 <div class="price-container"> 17649 17650 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 17651 <span id="product-price-1895" 17652 class="price-wrapper font-bold text-3xl text-secondary-800"> 17653 <span class="price" x-html="getFormattedFinalPrice()"> 17654 <span class="price">â¬Â 14,83</span> </span> 17655 </span> 17656 <meta itemprop="price" content="14.83"> 17657 <meta itemprop="priceCurrency" 17658 content="EUR"> 17659 </div> 17660 </div> 17661 </div> 17662 <template x-if="activeProductsPriceData && 17663 activeProductsPriceData.oldPrice && 17664 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 17665 "> 17666 <div class="old-price flex mr-2"> 17667 <span id="product-price-1895" 17668 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 17669 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 17670 </span> 17671 </div> 17672 </template> 17673 <template x-if="activeProductsPriceData"> 17674 <div class="final-price inline-block"> 17675 <span id="product-price-1895" 17676 class="price-wrapper font-bold text-3xl text-secondary-800"> 17677 <span class="price" x-html="getFormattedFinalPrice()"></span> 17678 </span> 17679 </div> 17680 </template> 17681 </div> 17682 </div> 17683 </div> 17684 17685 <div class="tier-price-popup lg:w-1/2"> 17686 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-men-active-fit-pants-normal-s-m"> 17687 <strong class="text-2xl"> 17688 TENA Men Active Fit Pants Normal S/M </strong> 17689 </a> 17690 17691
17691<script> 17692 function initTierPrice1895() { 17693 return { 17694 qty: 1, 17695 minSalesQty: 1, 17696 isStandardSelected() { 17697 return this.qty < 5; 17698 }, 17699 eventListeners: { 17700 ['@update-qty-1895.window'](event) { 17701 if (this.qty !== event.detail) { 17702 this.qty = event.detail; 17703 } 17704 } 17705 } 17706 } 17707 } 17708 </script>
17708 17709 <div class="prices-tier items mb-4" 17710 x-data="initTierPrice1895()" 17711 x-bind="eventListeners" 17712 > 17713 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 17714 :class="{'active-tier-price1895 border-green-600 shadow-hard': 17715 qty >= 5 && qty < 10}" 17716 @click="$dispatch('update-qty-1895', 5);" 17717 data-qty="5" 17718 > 17719 17720 <div class="flex flex-row items-center"> 17721 <div class="flex flex-col flex-grow"> 17722 <div class="flex flex-row items-center justify-between"> 17723 <div class="flex items-center space-x-2"> 17724 <div class="price-container font-bold text-lg"> 17725 <span 17726 class="price-container price-tier_price tax weee" 17727 > 17728 <span data-price-amount="14.2" 17729 data-price-type="" 17730 class="price-wrapper " 17731 ><span class="price">â¬Â 14,20</span></span> 17732 </span> 17733 </div> 17734 <span class="ml-2 text-base"> 17735 per stuk </span> 17736 </div> 17737 <span> 17738 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 4</span>%</strong> </span> 17739 </div> 17740 17741 <div class="mt-1"> 17742 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 17743 <span>5 verpakkingen</span> </span> 17744 </div> 17745 </div> 17746 </div> 17747 </div> 17748 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 17749 :class="{'active-tier-price1895 border-green-600 shadow-hard': 17750 qty >= 10 && qty < 10000}" 17751 @click="$dispatch('update-qty-1895', 10);" 17752 data-qty="10" 17753 > 17754 17755 <div class="flex flex-row items-center"> 17756 <div class="flex flex-col flex-grow"> 17757 <div class="flex flex-row items-center justify-between"> 17758 <div class="flex items-center space-x-2"> 17759 <div class="price-container font-bold text-lg"> 17760 <span 17761 x-data x-id="['1']" class="price-container price-tier_price tax weee" 17762 > 17763 <span :id="$id('1')" data-price-amount="13.04" 17764 data-price-type="" 17765 class="price-wrapper " 17766 ><span class="price">â¬Â 13,04</span></span> 17767 </span> 17768 </div> 17769 <span class="ml-2 text-base"> 17770 per stuk </span> 17771 </div> 17772 <span 17773 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 17774 <strong>Voordeligste keuze</strong> 17775 </span> 17776 <span> 17777 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 12</span>%</strong> </span> 17778 </div> 17779 17780 <div class="mt-1">
17781 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 17782 <span>10 verpakkingen</span> </span> 17783 </div> 17784 </div> 17785 </div> 17786 <div class="choice-mobile mt-4 xl:hidden"> 17787 <hr class="p-2"> 17788 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 17789 <strong>Voordeligste keuze</strong> 17790 </span> 17791 </div> 17792 </div> 17793 17794 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 17795 :class="{'active-tier-price1895 border-green-600 shadow-hard': isStandardSelected() }" 17796 @click="$dispatch('update-qty-1895', minSalesQty);" 17797 > 17798 <div class="flex flex-row items-center"> 17799 <div class="flex flex-col flex-grow"> 17800 <div class="flex flex-row items-center"> 17801 <div class="flex items-center space-x-2"> 17802 <div class="price-container font-bold text-lg"> 17803 <span class="price">â¬Â 14,83</span> </div> 17804 <span class="ml-2 text-base"> 17805 per stuk </span> 17806 </div> 17807 <strong class="ml-auto text-gray-500"> 17808 Standaard </strong> 17809 </div> 17810 17811 <div class="mt-1"> 17812 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 17813 <span>1 verpakking</span> </span> 17814 </div> 17815 </div> 17816 </div> 17817 </div> 17818 17819 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 17820 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 17821 x-show="isStandardSelected() && true" 17822 x-cloak> 17823 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 17824 <div class="ml-6 text-sm opacity-90"> 17825 <strong>Let op:</strong> 17826 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 17827 <div class="ml-6 text-sm leading-snug opacity-60"> 17828 Kies een andere optie voor extra voordeel! </div> 17829 </div> 17830 </div> 17831 17832 <div class="hidden lg:block"> 17833
17833<script> 17834 function initPrice1895() { 17835 17836 const regularPriceInclTaxKey = 'oldPrice', 17837 regularPriceExclTaxKey = 'baseOldPrice', 17838 finalPriceInclTaxKey = 'finalPrice', 17839 finalPriceExclTaxKey = 'basePrice'; 17840 17841 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 17842 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 17843 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 17844 if (customOptionPrice) { 17845 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 17846 } 17847 return priceAccumulator; 17848 }, 0); 17849 } 17850 17851 return { 17852 regularPriceKey: regularPriceInclTaxKey, 17853 finalPriceKey: finalPriceInclTaxKey, 17854 activeProductsPriceData: false, 17855 initialFinalPrice: 14.83, 17856 calculatedFinalPrice: false, 17857 calculatedFinalPriceWithCustomOptions: false, 17858 initialTierPrices: [{"price_id":"2113","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"1895","website_price":14.2,"price_incl_tax":14.2,"price_excl_tax":13.02752193578},{"price_id":"2114","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1895","website_price":13.04,"price_incl_tax":13.04,"price_excl_tax":11.963301752294}], 17859 showRegularPriceLabel: false, 17860 customOptionPrices: [], 17861 activeCustomOptions: [], 17862 qty: 1, 17863 updateCustomOptionActive(data) { 17864 let activeCustomOptions = this.activeCustomOptions; 17865 const customOptionId = data.customOptionId; 17866 17867 if (data.active) { 17868 if (!activeCustomOptions.includes(customOptionId)) { 17869 activeCustomOptions.push(data.customOptionId); 17870 } 17871 } else { 17872 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 17873 let index = activeCustomOptions.indexOf(customOptionId); 17874 activeCustomOptions.splice(index, 1); 17875 } 17876 } 17877 this.calculateFinalPriceWithCustomOptions() 17878 }, 17879 updateCustomOptionPrices(prices, basePrices) { 17880 if (prices) { 17881 this.customOptionPrices = prices; 17882 } 17883 17884 17885 this.calculateFinalPriceWithCustomOptions(); 17886 }, 17887 calculateFinalPrice() { 17888 17889 const getOptionTierPrice = (tierPrice, withTax) => { 17890 return tierPrice[withTax ? 'price' : 'basePrice']; 17891 } 17892 17893 const findApplicableTierPrice = (initialPrice, withTax) => { 17894 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 17895 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 17896 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 17897 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 17898 return tierPriceCandidate; 17899 } 17900 return acc; 17901 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 17902 17903 } else { 17904 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 17905 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 17906 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 17907 return tierPrice[key]; 17908 } 17909 return acc; 17910 }, initialPrice); 17911 17912 } 17913 } 17914 17915 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 17916 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 17917 17918 },
17919 calculatePriceLabelVisibility() { 17920 this.showRegularPriceLabel = 17921 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 17922 this.activeProductsPriceData.isMinimalPrice; 17923 }, 17924 calculateFinalPriceWithCustomOptions() { 17925 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 17926 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 17927 }, 17928 getCustomOptionPrice() { 17929 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 17930 }, 17931 getFormattedFinalPrice() { 17932 return hyva.formatPrice( 17933 this.calculatedFinalPriceWithCustomOptions || 17934 this.calculatedFinalPrice || 17935 this.initialFinalPrice 17936 ) 17937 }, 17938 isPriceHidden() { 17939 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 17940 this.calculatedFinalPrice || 17941 this.initialFinalPrice; 17942 return false && finalPrice === 0; 17943 }, 17944 eventListeners: { 17945 ['@update-prices-1895.window'](event) { 17946 this.activeProductsPriceData = event.detail; 17947 17948 this.calculateFinalPrice(); 17949 this.calculateFinalPriceWithCustomOptions(); 17950 this.calculatePriceLabelVisibility(); 17951 }, 17952 ['@update-qty-1895.window'](event) { 17953 this.qty = event.detail; 17954 this.calculateFinalPrice(); 17955 this.calculateFinalPriceWithCustomOptions(); 17956 }, 17957 ['@update-custom-option-active.window'](event) { 17958 this.updateCustomOptionActive(event.detail); 17959 }, 17960 ['@update-custom-option-prices.window'](event) { 17961 this.updateCustomOptionPrices(event.detail); 17962 }, 17963 } 17964 } 17965 } 17966</script>
17966 17967<div x-data="initPrice1895()" 17968 x-bind="eventListeners" 17969 class="price-box price-final_price" 17970> 17971 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 17972 <div class="price-container"> 17973 17974 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 17975 <span id="product-price-1895" 17976 class="price-wrapper font-bold text-3xl text-secondary-800"> 17977 <span class="price" x-html="getFormattedFinalPrice()"> 17978 <span class="price">â¬Â 14,83</span> </span> 17979 </span> 17980 <meta itemprop="price" content="14.83"> 17981 <meta itemprop="priceCurrency" 17982 content="EUR"> 17983 </div> 17984 </div> 17985 </div> 17986 <template x-if="activeProductsPriceData && 17987 activeProductsPriceData.oldPrice && 17988 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 17989 "> 17990 <div class="old-price flex mr-2"> 17991 <span id="product-price-1895" 17992 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 17993 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 17994 </span> 17995 </div> 17996 </template> 17997 <template x-if="activeProductsPriceData"> 17998 <div class="final-price inline-block"> 17999 <span id="product-price-1895" 18000 class="price-wrapper font-bold text-3xl text-secondary-800"> 18001 <span class="price" x-html="getFormattedFinalPrice()"></span> 18002 </span> 18003 </div> 18004 </template> 18005 </div> 18006 </div> 18007 </div> 18008</div> 18009 18010<div class="flex flex-col items-center"> 18011 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 18012 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 18013 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 18014<title>In Winkelmand</title></svg> 18015 In Winkelmand </button> 18016 18017 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 18018 Nee, vandaag niet </button> 18019</div> 18020 </div> 18021 </div> 18022 </div> 18023 18024 <button @click="show('dialog6ac2fc2071bdb', this.$event || $event)" 18025 class="btn btn-primary lg:w-full" 18026 type="button" 18027 aria-haspopup="dialog" 18028 > 18029 Kies uw voordeel </button> 18030 </div> 18031 </div> 18032 18033 <div class="flex items-center gap-1 lg:hidden"> 18034 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 18035 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 18036 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 18037 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 18038<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
18039 <span> 18040 Tot 22:30 uur besteld = morgen in huis <span 18041 class="absolute group cursor-pointer inline-flex items-center justify-center"> 18042 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 18043 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 18044<title/></svg> 18045 <span class="absolute top-full left-1/2 -translate-x-[80%] 18046 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 18047 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 18048 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 18049 </span> 18050 </span> 18051 </div> 18052 </div> 18053</form> 18054 </li> 18055 <li> 18056
18056<script> 18057 function initQtyFromTier129() { 18058 return { 18059 qty: 1, 18060 updateQty(event) { 18061 this.qty = event.detail; 18062 } 18063 } 18064 } 18065</script>
18065 18066 18067<form method="post" 18068 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/129/" 18069 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 18070 x-data="initQtyFromTier129()" 18071 @update-qty-129="updateQty(event)" 18072 18073 > 18074 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="129"/> 18075 <input type="hidden" 18076 name="qty" 18077 id="qty[129]" 18078 :value="qty" 18079 x-model.number="qty" 18080 /> 18081 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 18082 <a href="https://www.123drogisterij.nl/tena-discreet-maxi-night" 18083 title="TENA Discreet Maxi Night" 18084 class="product photo product-item-photo block w-1/3 lg:w-1/4" 18085 tabindex="-1" 18086 > 18087 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_maxi_night_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-129.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_maxi_night_1.jpg" loading="lazy" width="187" height="234" alt="* Tena Discreet Maxi Night" title="* Tena Discreet Maxi Night" loading="lazy" /></picture> 18088 </a> 18089 18090 <div class="w-2/3 lg:mx-8"> 18091 <strong> 18092 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 18093 href="https://www.123drogisterij.nl/tena-discreet-maxi-night" 18094 :id="`slide-desc-129-${$id('slider-id')}`" 18095 > 18096 TENA Discreet Maxi Night </a> 18097 </strong> 18098 18099 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 18100 <span class="block text-gray-500 mb-1"> 18101 Artikelnummer: 760982 </span> 18102 18103 <span class="block text-gray-500 mb-1 lg:text-md"> 18104 Verpakking: 12 stuks </span> 18105 </div> 18106 18107 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 18108 Absorptievermogen: 18109 <div class="flex gap-2"> 18110 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18111 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18112 </svg> 18113 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18114 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18115 </svg> 18116 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18117 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18118 </svg> 18119 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18120 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18121 </svg> 18122 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18123 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
18123697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18124 </svg> 18125 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18126 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18127 </svg> 18128 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18129 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18130 </svg> 18131 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18132 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18133 </svg> 18134 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18135 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18136 </svg> 18137 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18138 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18139 </svg> 18140 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18141 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18142 </svg> 18143 </div> 18144 </span> 18145 18146 <div class="lg:hidden"> 18147 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 18148 " 18149 title="Beschikbaarheid" 18150 > 18151 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 18152 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 18153<title>check-circle</title></svg> 18154Op voorraad </p> 18155 </div> 18156 18157 <div class="hidden lg:block" 18158 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 18159 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
18160 content = trimToSentence(originalContent, maxLength); 18161 isVisible = false"; 18162 > 18163 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 18164 TENA Discreet Maxi Night is speciaal ontwikkeld voor vrouwen die grote scheuten urine verliezen gedurende de nacht. Ook voor het licht verlies van ontlasting. Het is een comfortabel verband dat extra absorbeert voor een langdurige bescherming. Dit product heeft onze unieke Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. Ook TENA Discreet Maxi Night heeft een volledig ademende buitenlaag voor extra comfort, terwijl de dubbele pulplaag nog beter absorbeert, zodat u zich de hele nacht zelfverzekerd en fris voelt. Zo kunt u genieten van een onbezorgde nachtrust. Het product heeft een afmeting van 14 x 38.5 cm en een opname van ruim 1 liter. </div> 18165 18166 <div class="prose md:prose-base text-md" x-show="isVisible"> 18167 TENA Discreet Maxi Night is speciaal ontwikkeld voor vrouwen die grote scheuten urine verliezen gedurende de nacht. Ook voor het licht verlies van ontlasting. Het is een comfortabe </div> 18168 18169 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 18170 @click="isCollapsed = !isCollapsed" 18171 x-show="originalContent.length > maxLength ? true : false" 18172 type="button" 18173 > 18174 <span x-text="isCollapsed ? 18175 'Lees minder' : 18176 'Lees meer'" 18177 ></span> 18178 </button> 18179 </div> 18180 </div> 18181 </div> 18182 18183 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 18184 <div class="lg:hidden" 18185 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 18186 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
18187 content = trimToSentence(originalContent, maxLength); 18188 isVisible = false"; 18189 > 18190 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 18191 TENA Discreet Maxi Night is speciaal ontwikkeld voor vrouwen die grote scheuten urine verliezen gedurende de nacht. Ook voor het licht verlies van ontlasting. Het is een comfortabel verband dat extra absorbeert voor een langdurige bescherming. Dit product heeft onze unieke Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. Ook TENA Discreet Maxi Night heeft een volledig ademende buitenlaag voor extra comfort, terwijl de dubbele pulplaag nog beter absorbeert, zodat u zich de hele nacht zelfverzekerd en fris voelt. Zo kunt u genieten van een onbezorgde nachtrust. Het product heeft een afmeting van 14 x 38.5 cm en een opname van ruim 1 liter. </div> 18192 18193 <div class="prose md:prose-base" x-show="isVisible"> 18194 TENA Discreet Maxi Night is speciaal ontwikkeld voor vrouwen die grote scheuten urine verliezen gedurende de nacht. Ook voor het licht verlies van ontlasting. Het is een comfortabel verband </div> 18195 18196 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 18197 @click="isCollapsed = !isCollapsed" 18198 x-show="originalContent.length > maxLength ? true : false" 18199 type="button" 18200 > 18201 <span x-text="isCollapsed ? 18202 'Lees minder' : 18203 'Lees meer'" 18204 ></span> 18205 </button> 18206 </div> 18207 18208 18209 <div class="hidden lg:block lg:text-md"> 18210 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 18211 " 18212 title="Beschikbaarheid" 18213 > 18214 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 18215 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 18216<title>check-circle</title></svg> 18217Op voorraad </p> 18218 </div> 18219 18220 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 18221 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 18222 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 18223 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 18224 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 18225<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 18226 <span> 18227 Tot 22:30 uur besteld = morgen in huis <span 18228 class="absolute group cursor-pointer inline-flex"> 18229 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 18230 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 18231<title/></svg> 18232 <span class="absolute top-full left-1/2 -translate-x-[80%] 18233 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 18234 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 18235 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 18236 </span> 18237 </span> 18238 </div> 18239 18240 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 18241 <div class="pt-1 text-gray-900" 18242 x-data="initPriceBox()" 18243 x-defer="intersect" 18244 @update-prices-129.window="updatePrice($event.detail);" 18245 > 18246 <div class="price-box price-final_price" data-role="priceBox" data-product-id="129" data-price-box="product-id-129"> 18247 18248 <span
18249 x-data x-id="['product\u002Dprice\u002D129']" class="price-container price-final_price tax weee" 18250 > 18251 <span :id="$id('product\u002Dprice\u002D129')" data-price-amount="7.59" 18252 data-price-type="finalPrice" 18253 class="price-wrapper " 18254 ><span class="price">â¬Â 7,59</span></span> 18255 </span> 18256 18257 <span class="minimal-price-link"> 18258 <span 18259 x-data x-id="['129']" class="price-container price-final_price tax weee" 18260 > 18261 <span class="price-label">Vanaf</span> 18262 <span :id="$id('129')" data-price-amount="5.99" 18263 data-price-type="" 18264 class="price-wrapper " 18265 >â¬Â 5,99</span> 18266 </span> 18267 </span> 18268</div> </div> 18269 18270 <div x-data="hyva.modal()" class="lg:w-full"> 18271 <div x-cloak data-dialog-ref-name="dialog6ac3024e758cc" 18272 x-bind="overlay" 18273 class="fixed inset-0 bg-black/50 z-50"> 18274 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 18275 <div x-ref="dialog6ac3024e758cc" role="dialog" aria-modal="true" 18276 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 18277 18278<button @click="hide" type="button"> 18279 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 18280 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 18281<title>Sluiten</title></svg> 18282</button> 18283 18284<h2 class="text-primary-500 text-center mb-4"> 18285 Extra besparen?</h2> 18286 18287<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 18288 <div class="flex gap-2 mb-4"> 18289 <a href="https://www.123drogisterij.nl/tena-discreet-maxi-night" 18290 title="TENA Discreet Maxi Night" 18291 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 18292 tabindex="-1" 18293 > 18294 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_maxi_night_1.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-129.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_maxi_night_1.jpg" loading="lazy" width="261" height="261" alt="* Tena Discreet Maxi Night" title="* Tena Discreet Maxi Night" loading="lazy" /></picture> 18295 </a> 18296 18297 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 18298 <a href="https://www.123drogisterij.nl/tena-discreet-maxi-night"> 18299 <strong class="text-xl"> 18300 TENA Discreet Maxi Night </strong> 18301 </a> 18302 18303
18303<script> 18304 function initPrice129() { 18305 18306 const regularPriceInclTaxKey = 'oldPrice', 18307 regularPriceExclTaxKey = 'baseOldPrice', 18308 finalPriceInclTaxKey = 'finalPrice', 18309 finalPriceExclTaxKey = 'basePrice'; 18310 18311 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 18312 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 18313 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 18314 if (customOptionPrice) { 18315 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 18316 } 18317 return priceAccumulator; 18318 }, 0); 18319 } 18320 18321 return { 18322 regularPriceKey: regularPriceInclTaxKey, 18323 finalPriceKey: finalPriceInclTaxKey, 18324 activeProductsPriceData: false, 18325 initialFinalPrice: 7.59, 18326 calculatedFinalPrice: false, 18327 calculatedFinalPriceWithCustomOptions: false, 18328 initialTierPrices: [{"price_id":"1553","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"129","website_price":6.89,"price_incl_tax":6.89,"price_excl_tax":6.3210999174312},{"price_id":"1633","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"129","website_price":5.99,"price_incl_tax":5.99,"price_excl_tax":5.4954118440367}], 18329 showRegularPriceLabel: false, 18330 customOptionPrices: [], 18331 activeCustomOptions: [], 18332 qty: 1, 18333 updateCustomOptionActive(data) { 18334 let activeCustomOptions = this.activeCustomOptions; 18335 const customOptionId = data.customOptionId; 18336 18337 if (data.active) { 18338 if (!activeCustomOptions.includes(customOptionId)) { 18339 activeCustomOptions.push(data.customOptionId); 18340 } 18341 } else { 18342 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 18343 let index = activeCustomOptions.indexOf(customOptionId); 18344 activeCustomOptions.splice(index, 1); 18345 } 18346 } 18347 this.calculateFinalPriceWithCustomOptions() 18348 }, 18349 updateCustomOptionPrices(prices, basePrices) { 18350 if (prices) { 18351 this.customOptionPrices = prices; 18352 } 18353 18354 18355 this.calculateFinalPriceWithCustomOptions(); 18356 }, 18357 calculateFinalPrice() { 18358 18359 const getOptionTierPrice = (tierPrice, withTax) => { 18360 return tierPrice[withTax ? 'price' : 'basePrice']; 18361 } 18362 18363 const findApplicableTierPrice = (initialPrice, withTax) => { 18364 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 18365 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 18366 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 18367 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 18368 return tierPriceCandidate; 18369 } 18370 return acc; 18371 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 18372 18373 } else { 18374 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 18375 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 18376 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 18377 return tierPrice[key]; 18378 } 18379 return acc; 18380 }, initialPrice); 18381 18382 } 18383 } 18384 18385 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 18386 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 18387 18388 },
18389 calculatePriceLabelVisibility() { 18390 this.showRegularPriceLabel = 18391 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 18392 this.activeProductsPriceData.isMinimalPrice; 18393 }, 18394 calculateFinalPriceWithCustomOptions() { 18395 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 18396 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 18397 }, 18398 getCustomOptionPrice() { 18399 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 18400 }, 18401 getFormattedFinalPrice() { 18402 return hyva.formatPrice( 18403 this.calculatedFinalPriceWithCustomOptions || 18404 this.calculatedFinalPrice || 18405 this.initialFinalPrice 18406 ) 18407 }, 18408 isPriceHidden() { 18409 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 18410 this.calculatedFinalPrice || 18411 this.initialFinalPrice; 18412 return false && finalPrice === 0; 18413 }, 18414 eventListeners: { 18415 ['@update-prices-129.window'](event) { 18416 this.activeProductsPriceData = event.detail; 18417 18418 this.calculateFinalPrice(); 18419 this.calculateFinalPriceWithCustomOptions(); 18420 this.calculatePriceLabelVisibility(); 18421 }, 18422 ['@update-qty-129.window'](event) { 18423 this.qty = event.detail; 18424 this.calculateFinalPrice(); 18425 this.calculateFinalPriceWithCustomOptions(); 18426 }, 18427 ['@update-custom-option-active.window'](event) { 18428 this.updateCustomOptionActive(event.detail); 18429 }, 18430 ['@update-custom-option-prices.window'](event) { 18431 this.updateCustomOptionPrices(event.detail); 18432 }, 18433 } 18434 } 18435 } 18436</script>
18436 18437<div x-data="initPrice129()" 18438 x-bind="eventListeners" 18439 class="price-box price-final_price" 18440> 18441 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 18442 <div class="price-container"> 18443 18444 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 18445 <span id="product-price-129" 18446 class="price-wrapper font-bold text-3xl text-secondary-800"> 18447 <span class="price" x-html="getFormattedFinalPrice()"> 18448 <span class="price">â¬Â 7,59</span> </span> 18449 </span> 18450 <meta itemprop="price" content="7.59"> 18451 <meta itemprop="priceCurrency" 18452 content="EUR"> 18453 </div> 18454 </div> 18455 </div> 18456 <template x-if="activeProductsPriceData && 18457 activeProductsPriceData.oldPrice && 18458 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 18459 "> 18460 <div class="old-price flex mr-2"> 18461 <span id="product-price-129" 18462 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 18463 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 18464 </span> 18465 </div> 18466 </template> 18467 <template x-if="activeProductsPriceData"> 18468 <div class="final-price inline-block"> 18469 <span id="product-price-129" 18470 class="price-wrapper font-bold text-3xl text-secondary-800"> 18471 <span class="price" x-html="getFormattedFinalPrice()"></span> 18472 </span> 18473 </div> 18474 </template> 18475 </div> 18476 </div> 18477 </div> 18478 18479 <div class="tier-price-popup lg:w-1/2"> 18480 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-maxi-night"> 18481 <strong class="text-2xl"> 18482 TENA Discreet Maxi Night </strong> 18483 </a> 18484 18485
18485<script> 18486 function initTierPrice129() { 18487 return { 18488 qty: 1, 18489 minSalesQty: 1, 18490 isStandardSelected() { 18491 return this.qty < 10; 18492 }, 18493 eventListeners: { 18494 ['@update-qty-129.window'](event) { 18495 if (this.qty !== event.detail) { 18496 this.qty = event.detail; 18497 } 18498 } 18499 } 18500 } 18501 } 18502 </script>
18502 18503 <div class="prices-tier items mb-4" 18504 x-data="initTierPrice129()" 18505 x-bind="eventListeners" 18506 > 18507 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 18508 :class="{'active-tier-price129 border-green-600 shadow-hard': 18509 qty >= 10 && qty < 20}" 18510 @click="$dispatch('update-qty-129', 10);" 18511 data-qty="10" 18512 > 18513 18514 <div class="flex flex-row items-center"> 18515 <div class="flex flex-col flex-grow"> 18516 <div class="flex flex-row items-center justify-between"> 18517 <div class="flex items-center space-x-2"> 18518 <div class="price-container font-bold text-lg"> 18519 <span 18520 class="price-container price-tier_price tax weee" 18521 > 18522 <span data-price-amount="6.89" 18523 data-price-type="" 18524 class="price-wrapper " 18525 ><span class="price">â¬Â 6,89</span></span> 18526 </span> 18527 </div> 18528 <span class="ml-2 text-base"> 18529 per stuk </span> 18530 </div> 18531 <span> 18532 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 9</span>%</strong> </span> 18533 </div> 18534 18535 <div class="mt-1"> 18536 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 18537 <span>10 verpakkingen</span> </span> 18538 </div> 18539 </div> 18540 </div> 18541 </div> 18542 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 18543 :class="{'active-tier-price129 border-green-600 shadow-hard': 18544 qty >= 20 && qty < 10000}" 18545 @click="$dispatch('update-qty-129', 20);" 18546 data-qty="20" 18547 > 18548 18549 <div class="flex flex-row items-center"> 18550 <div class="flex flex-col flex-grow"> 18551 <div class="flex flex-row items-center justify-between"> 18552 <div class="flex items-center space-x-2"> 18553 <div class="price-container font-bold text-lg"> 18554 <span 18555 x-data x-id="['1']" class="price-container price-tier_price tax weee" 18556 > 18557 <span :id="$id('1')" data-price-amount="5.99" 18558 data-price-type="" 18559 class="price-wrapper " 18560 ><span class="price">â¬Â 5,99</span></span> 18561 </span> 18562 </div> 18563 <span class="ml-2 text-base"> 18564 per stuk </span> 18565 </div> 18566 <span 18567 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 18568 <strong>Voordeligste keuze</strong> 18569 </span> 18570 <span> 18571 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 21</span>%</strong> </span> 18572 </div> 18573 18574 <div class="mt-1">
18575 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 18576 <span>20 verpakkingen</span> </span> 18577 </div> 18578 </div> 18579 </div> 18580 <div class="choice-mobile mt-4 xl:hidden"> 18581 <hr class="p-2"> 18582 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 18583 <strong>Voordeligste keuze</strong> 18584 </span> 18585 </div> 18586 </div> 18587 18588 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 18589 :class="{'active-tier-price129 border-green-600 shadow-hard': isStandardSelected() }" 18590 @click="$dispatch('update-qty-129', minSalesQty);" 18591 > 18592 <div class="flex flex-row items-center"> 18593 <div class="flex flex-col flex-grow"> 18594 <div class="flex flex-row items-center"> 18595 <div class="flex items-center space-x-2"> 18596 <div class="price-container font-bold text-lg"> 18597 <span class="price">â¬Â 7,59</span> </div> 18598 <span class="ml-2 text-base"> 18599 per stuk </span> 18600 </div> 18601 <strong class="ml-auto text-gray-500"> 18602 Standaard </strong> 18603 </div> 18604 18605 <div class="mt-1"> 18606 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 18607 <span>1 verpakking</span> </span> 18608 </div> 18609 </div> 18610 </div> 18611 </div> 18612 18613 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 18614 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 18615 x-show="isStandardSelected() && true" 18616 x-cloak> 18617 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 18618 <div class="ml-6 text-sm opacity-90"> 18619 <strong>Let op:</strong> 18620 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 18621 <div class="ml-6 text-sm leading-snug opacity-60"> 18622 Kies een andere optie voor extra voordeel! </div> 18623 </div> 18624 </div> 18625 18626 <div class="hidden lg:block"> 18627
18627<script> 18628 function initPrice129() { 18629 18630 const regularPriceInclTaxKey = 'oldPrice', 18631 regularPriceExclTaxKey = 'baseOldPrice', 18632 finalPriceInclTaxKey = 'finalPrice', 18633 finalPriceExclTaxKey = 'basePrice'; 18634 18635 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 18636 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 18637 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 18638 if (customOptionPrice) { 18639 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 18640 } 18641 return priceAccumulator; 18642 }, 0); 18643 } 18644 18645 return { 18646 regularPriceKey: regularPriceInclTaxKey, 18647 finalPriceKey: finalPriceInclTaxKey, 18648 activeProductsPriceData: false, 18649 initialFinalPrice: 7.59, 18650 calculatedFinalPrice: false, 18651 calculatedFinalPriceWithCustomOptions: false, 18652 initialTierPrices: [{"price_id":"1553","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"129","website_price":6.89,"price_incl_tax":6.89,"price_excl_tax":6.3210999174312},{"price_id":"1633","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"129","website_price":5.99,"price_incl_tax":5.99,"price_excl_tax":5.4954118440367}], 18653 showRegularPriceLabel: false, 18654 customOptionPrices: [], 18655 activeCustomOptions: [], 18656 qty: 1, 18657 updateCustomOptionActive(data) { 18658 let activeCustomOptions = this.activeCustomOptions; 18659 const customOptionId = data.customOptionId; 18660 18661 if (data.active) { 18662 if (!activeCustomOptions.includes(customOptionId)) { 18663 activeCustomOptions.push(data.customOptionId); 18664 } 18665 } else { 18666 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 18667 let index = activeCustomOptions.indexOf(customOptionId); 18668 activeCustomOptions.splice(index, 1); 18669 } 18670 } 18671 this.calculateFinalPriceWithCustomOptions() 18672 }, 18673 updateCustomOptionPrices(prices, basePrices) { 18674 if (prices) { 18675 this.customOptionPrices = prices; 18676 } 18677 18678 18679 this.calculateFinalPriceWithCustomOptions(); 18680 }, 18681 calculateFinalPrice() { 18682 18683 const getOptionTierPrice = (tierPrice, withTax) => { 18684 return tierPrice[withTax ? 'price' : 'basePrice']; 18685 } 18686 18687 const findApplicableTierPrice = (initialPrice, withTax) => { 18688 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 18689 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 18690 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 18691 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 18692 return tierPriceCandidate; 18693 } 18694 return acc; 18695 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 18696 18697 } else { 18698 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 18699 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 18700 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 18701 return tierPrice[key]; 18702 } 18703 return acc; 18704 }, initialPrice); 18705 18706 } 18707 } 18708 18709 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 18710 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 18711 18712 },
18713 calculatePriceLabelVisibility() { 18714 this.showRegularPriceLabel = 18715 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 18716 this.activeProductsPriceData.isMinimalPrice; 18717 }, 18718 calculateFinalPriceWithCustomOptions() { 18719 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 18720 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 18721 }, 18722 getCustomOptionPrice() { 18723 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 18724 }, 18725 getFormattedFinalPrice() { 18726 return hyva.formatPrice( 18727 this.calculatedFinalPriceWithCustomOptions || 18728 this.calculatedFinalPrice || 18729 this.initialFinalPrice 18730 ) 18731 }, 18732 isPriceHidden() { 18733 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 18734 this.calculatedFinalPrice || 18735 this.initialFinalPrice; 18736 return false && finalPrice === 0; 18737 }, 18738 eventListeners: { 18739 ['@update-prices-129.window'](event) { 18740 this.activeProductsPriceData = event.detail; 18741 18742 this.calculateFinalPrice(); 18743 this.calculateFinalPriceWithCustomOptions(); 18744 this.calculatePriceLabelVisibility(); 18745 }, 18746 ['@update-qty-129.window'](event) { 18747 this.qty = event.detail; 18748 this.calculateFinalPrice(); 18749 this.calculateFinalPriceWithCustomOptions(); 18750 }, 18751 ['@update-custom-option-active.window'](event) { 18752 this.updateCustomOptionActive(event.detail); 18753 }, 18754 ['@update-custom-option-prices.window'](event) { 18755 this.updateCustomOptionPrices(event.detail); 18756 }, 18757 } 18758 } 18759 } 18760</script>
18760 18761<div x-data="initPrice129()" 18762 x-bind="eventListeners" 18763 class="price-box price-final_price" 18764> 18765 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 18766 <div class="price-container"> 18767 18768 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 18769 <span id="product-price-129" 18770 class="price-wrapper font-bold text-3xl text-secondary-800"> 18771 <span class="price" x-html="getFormattedFinalPrice()"> 18772 <span class="price">â¬Â 7,59</span> </span> 18773 </span> 18774 <meta itemprop="price" content="7.59"> 18775 <meta itemprop="priceCurrency" 18776 content="EUR"> 18777 </div> 18778 </div> 18779 </div> 18780 <template x-if="activeProductsPriceData && 18781 activeProductsPriceData.oldPrice && 18782 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 18783 "> 18784 <div class="old-price flex mr-2"> 18785 <span id="product-price-129" 18786 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 18787 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 18788 </span> 18789 </div> 18790 </template> 18791 <template x-if="activeProductsPriceData"> 18792 <div class="final-price inline-block"> 18793 <span id="product-price-129" 18794 class="price-wrapper font-bold text-3xl text-secondary-800"> 18795 <span class="price" x-html="getFormattedFinalPrice()"></span> 18796 </span> 18797 </div> 18798 </template> 18799 </div> 18800 </div> 18801 </div> 18802</div> 18803 18804<div class="flex flex-col items-center"> 18805 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 18806 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 18807 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 18808<title>In Winkelmand</title></svg> 18809 In Winkelmand </button> 18810 18811 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 18812 Nee, vandaag niet </button> 18813</div> 18814 </div> 18815 </div> 18816 </div> 18817 18818 <button @click="show('dialog6ac3024e758cc', this.$event || $event)" 18819 class="btn btn-primary lg:w-full" 18820 type="button" 18821 aria-haspopup="dialog" 18822 > 18823 Kies uw voordeel </button> 18824 </div> 18825 </div> 18826 18827 <div class="flex items-center gap-1 lg:hidden"> 18828 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 18829 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 18830 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 18831 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 18832<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
18833 <span> 18834 Tot 22:30 uur besteld = morgen in huis <span 18835 class="absolute group cursor-pointer inline-flex items-center justify-center"> 18836 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 18837 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 18838<title/></svg> 18839 <span class="absolute top-full left-1/2 -translate-x-[80%] 18840 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 18841 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 18842 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 18843 </span> 18844 </span> 18845 </div> 18846 </div> 18847</form> 18848 </li> 18849 <li> 18850
18850<script> 18851 function initQtyFromTier26() { 18852 return { 18853 qty: 1, 18854 updateQty(event) { 18855 this.qty = event.detail; 18856 } 18857 } 18858 } 18859</script>
18859 18860 18861<form method="post" 18862 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/26/" 18863 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 18864 x-data="initQtyFromTier26()" 18865 @update-qty-26="updateQty(event)" 18866 18867 > 18868 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="26"/> 18869 <input type="hidden" 18870 name="qty" 18871 id="qty[26]" 18872 :value="qty" 18873 x-model.number="qty" 18874 /> 18875 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 18876 <a href="https://www.123drogisterij.nl/tena-discreet-maxi" 18877 title="TENA Discreet Maxi" 18878 class="product photo product-item-photo block w-1/3 lg:w-1/4" 18879 tabindex="-1" 18880 > 18881 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-discreet-protect-plus-maxi-beauty-pack.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-26.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena-discreet-protect-plus-maxi-beauty-pack.jpg" loading="lazy" width="187" height="234" alt="nieuw TENA Discreet Maxi" title="nieuw TENA Discreet Maxi" loading="lazy" /></picture> 18882 </a> 18883 18884 <div class="w-2/3 lg:mx-8"> 18885 <strong> 18886 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 18887 href="https://www.123drogisterij.nl/tena-discreet-maxi" 18888 :id="`slide-desc-26-${$id('slider-id')}`" 18889 > 18890 TENA Discreet Maxi </a> 18891 </strong> 18892 18893 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 18894 <span class="block text-gray-500 mb-1"> 18895 Artikelnummer: 760977 </span> 18896 18897 <span class="block text-gray-500 mb-1 lg:text-md"> 18898 Verpakking: 12 stuks </span> 18899 </div> 18900 18901 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 18902 Absorptievermogen: 18903 <div class="flex gap-2"> 18904 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18905 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18906 </svg> 18907 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18908 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18909 </svg> 18910 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18911 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18912 </svg> 18913 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18914 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18915 </svg> 18916 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18917 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
18917697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18918 </svg> 18919 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18920 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18921 </svg> 18922 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18923 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18924 </svg> 18925 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18926 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18927 </svg> 18928 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18929 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18930 </svg> 18931 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18932 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18933 </svg> 18934 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 18935 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 18936 </svg> 18937 </div> 18938 </span> 18939 18940 <div class="lg:hidden"> 18941 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 18942 " 18943 title="Beschikbaarheid" 18944 > 18945 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 18946 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 18947<title>check-circle</title></svg> 18948Op voorraad </p> 18949 </div> 18950 18951 <div class="hidden lg:block" 18952 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 18953 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
18954 content = trimToSentence(originalContent, maxLength); 18955 isVisible = false"; 18956 > 18957 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 18958 TENA Discreet Maxi is het zwaarste inlegverband binnen het TENA Discreet inlegger assortiment, ideaal voor vrouwen die regelmatig grote scheuten urine verliezen en nog meer zekerheid nodig hebben. Dit product heeft net als TENA Discreet Normal, Extra en Extra Plus de vernieuwde absorptiezone voor een snelle opname van urine en een blijvend droge toplaag. TENA Discreet Maxi geeft een fris gevoel dankzij TENA Fresh Odour Control en zorgt voor een goede luchtcirculatie door de volledig ademende buitenlaag. Het meet 14 x 38.5 cm en kan ruim een liter urine opnemen. </div> 18959 18960 <div class="prose md:prose-base text-md" x-show="isVisible"> 18961 TENA Discreet Maxi is het zwaarste inlegverband binnen het TENA Discreet inlegger assortiment, ideaal voor vrouwen die regelmatig grote scheuten urine verliezen en nog meer zekerhe </div> 18962 18963 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 18964 @click="isCollapsed = !isCollapsed" 18965 x-show="originalContent.length > maxLength ? true : false" 18966 type="button" 18967 > 18968 <span x-text="isCollapsed ? 18969 'Lees minder' : 18970 'Lees meer'" 18971 ></span> 18972 </button> 18973 </div> 18974 </div> 18975 </div> 18976 18977 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 18978 <div class="lg:hidden" 18979 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 18980 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
18981 content = trimToSentence(originalContent, maxLength); 18982 isVisible = false"; 18983 > 18984 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 18985 TENA Discreet Maxi is het zwaarste inlegverband binnen het TENA Discreet inlegger assortiment, ideaal voor vrouwen die regelmatig grote scheuten urine verliezen en nog meer zekerheid nodig hebben. Dit product heeft net als TENA Discreet Normal, Extra en Extra Plus de vernieuwde absorptiezone voor een snelle opname van urine en een blijvend droge toplaag. TENA Discreet Maxi geeft een fris gevoel dankzij TENA Fresh Odour Control en zorgt voor een goede luchtcirculatie door de volledig ademende buitenlaag. Het meet 14 x 38.5 cm en kan ruim een liter urine opnemen. </div> 18986 18987 <div class="prose md:prose-base" x-show="isVisible"> 18988 TENA Discreet Maxi is het zwaarste inlegverband binnen het TENA Discreet inlegger assortiment, ideaal voor vrouwen die regelmatig grote scheuten urine verliezen en nog meer zekerheid nodig h </div> 18989 18990 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 18991 @click="isCollapsed = !isCollapsed" 18992 x-show="originalContent.length > maxLength ? true : false" 18993 type="button" 18994 > 18995 <span x-text="isCollapsed ? 18996 'Lees minder' : 18997 'Lees meer'" 18998 ></span> 18999 </button> 19000 </div> 19001 19002 19003 <div class="hidden lg:block lg:text-md"> 19004 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 19005 " 19006 title="Beschikbaarheid" 19007 > 19008 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 19009 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 19010<title>check-circle</title></svg> 19011Op voorraad </p> 19012 </div> 19013 19014 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 19015 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 19016 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 19017 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 19018 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 19019<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 19020 <span> 19021 Tot 22:30 uur besteld = morgen in huis <span 19022 class="absolute group cursor-pointer inline-flex"> 19023 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 19024 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 19025<title/></svg> 19026 <span class="absolute top-full left-1/2 -translate-x-[80%] 19027 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 19028 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 19029 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 19030 </span> 19031 </span> 19032 </div> 19033 19034 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 19035 <div class="pt-1 text-gray-900" 19036 x-data="initPriceBox()" 19037 x-defer="intersect" 19038 @update-prices-26.window="updatePrice($event.detail);" 19039 > 19040 <div class="price-box price-final_price" data-role="priceBox" data-product-id="26" data-price-box="product-id-26"> 19041 19042 <span
19043 x-data x-id="['product\u002Dprice\u002D26']" class="price-container price-final_price tax weee" 19044 > 19045 <span :id="$id('product\u002Dprice\u002D26')" data-price-amount="7.59" 19046 data-price-type="finalPrice" 19047 class="price-wrapper " 19048 ><span class="price">â¬Â 7,59</span></span> 19049 </span> 19050 19051 <span class="minimal-price-link"> 19052 <span 19053 x-data x-id="['26']" class="price-container price-final_price tax weee" 19054 > 19055 <span class="price-label">Vanaf</span> 19056 <span :id="$id('26')" data-price-amount="5.99" 19057 data-price-type="" 19058 class="price-wrapper " 19059 >â¬Â 5,99</span> 19060 </span> 19061 </span> 19062</div> </div> 19063 19064 <div x-data="hyva.modal()" class="lg:w-full"> 19065 <div x-cloak data-dialog-ref-name="dialog6ac3024e7b698" 19066 x-bind="overlay" 19067 class="fixed inset-0 bg-black/50 z-50"> 19068 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 19069 <div x-ref="dialog6ac3024e7b698" role="dialog" aria-modal="true" 19070 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 19071 19072<button @click="hide" type="button"> 19073 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 19074 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 19075<title>Sluiten</title></svg> 19076</button> 19077 19078<h2 class="text-primary-500 text-center mb-4"> 19079 Extra besparen?</h2> 19080 19081<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 19082 <div class="flex gap-2 mb-4"> 19083 <a href="https://www.123drogisterij.nl/tena-discreet-maxi" 19084 title="TENA Discreet Maxi" 19085 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 19086 tabindex="-1" 19087 > 19088 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-discreet-protect-plus-maxi-beauty-pack.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-26.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena-discreet-protect-plus-maxi-beauty-pack.jpg" loading="lazy" width="261" height="261" alt="nieuw TENA Discreet Maxi" title="nieuw TENA Discreet Maxi" loading="lazy" /></picture> 19089 </a> 19090 19091 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 19092 <a href="https://www.123drogisterij.nl/tena-discreet-maxi"> 19093 <strong class="text-xl"> 19094 TENA Discreet Maxi </strong> 19095 </a> 19096 19097
19097<script> 19098 function initPrice26() { 19099 19100 const regularPriceInclTaxKey = 'oldPrice', 19101 regularPriceExclTaxKey = 'baseOldPrice', 19102 finalPriceInclTaxKey = 'finalPrice', 19103 finalPriceExclTaxKey = 'basePrice'; 19104 19105 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 19106 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 19107 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 19108 if (customOptionPrice) { 19109 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 19110 } 19111 return priceAccumulator; 19112 }, 0); 19113 } 19114 19115 return { 19116 regularPriceKey: regularPriceInclTaxKey, 19117 finalPriceKey: finalPriceInclTaxKey, 19118 activeProductsPriceData: false, 19119 initialFinalPrice: 7.59, 19120 calculatedFinalPrice: false, 19121 calculatedFinalPriceWithCustomOptions: false, 19122 initialTierPrices: [{"price_id":"1552","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"26","website_price":6.89,"price_incl_tax":6.89,"price_excl_tax":6.3210999174312},{"price_id":"1632","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"26","website_price":5.99,"price_incl_tax":5.99,"price_excl_tax":5.4954118440367}], 19123 showRegularPriceLabel: false, 19124 customOptionPrices: [], 19125 activeCustomOptions: [], 19126 qty: 1, 19127 updateCustomOptionActive(data) { 19128 let activeCustomOptions = this.activeCustomOptions; 19129 const customOptionId = data.customOptionId; 19130 19131 if (data.active) { 19132 if (!activeCustomOptions.includes(customOptionId)) { 19133 activeCustomOptions.push(data.customOptionId); 19134 } 19135 } else { 19136 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 19137 let index = activeCustomOptions.indexOf(customOptionId); 19138 activeCustomOptions.splice(index, 1); 19139 } 19140 } 19141 this.calculateFinalPriceWithCustomOptions() 19142 }, 19143 updateCustomOptionPrices(prices, basePrices) { 19144 if (prices) { 19145 this.customOptionPrices = prices; 19146 } 19147 19148 19149 this.calculateFinalPriceWithCustomOptions(); 19150 }, 19151 calculateFinalPrice() { 19152 19153 const getOptionTierPrice = (tierPrice, withTax) => { 19154 return tierPrice[withTax ? 'price' : 'basePrice']; 19155 } 19156 19157 const findApplicableTierPrice = (initialPrice, withTax) => { 19158 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 19159 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 19160 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 19161 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 19162 return tierPriceCandidate; 19163 } 19164 return acc; 19165 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 19166 19167 } else { 19168 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 19169 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 19170 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 19171 return tierPrice[key]; 19172 } 19173 return acc; 19174 }, initialPrice); 19175 19176 } 19177 } 19178 19179 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 19180 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 19181 19182 },
19183 calculatePriceLabelVisibility() { 19184 this.showRegularPriceLabel = 19185 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 19186 this.activeProductsPriceData.isMinimalPrice; 19187 }, 19188 calculateFinalPriceWithCustomOptions() { 19189 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 19190 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 19191 }, 19192 getCustomOptionPrice() { 19193 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 19194 }, 19195 getFormattedFinalPrice() { 19196 return hyva.formatPrice( 19197 this.calculatedFinalPriceWithCustomOptions || 19198 this.calculatedFinalPrice || 19199 this.initialFinalPrice 19200 ) 19201 }, 19202 isPriceHidden() { 19203 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 19204 this.calculatedFinalPrice || 19205 this.initialFinalPrice; 19206 return false && finalPrice === 0; 19207 }, 19208 eventListeners: { 19209 ['@update-prices-26.window'](event) { 19210 this.activeProductsPriceData = event.detail; 19211 19212 this.calculateFinalPrice(); 19213 this.calculateFinalPriceWithCustomOptions(); 19214 this.calculatePriceLabelVisibility(); 19215 }, 19216 ['@update-qty-26.window'](event) { 19217 this.qty = event.detail; 19218 this.calculateFinalPrice(); 19219 this.calculateFinalPriceWithCustomOptions(); 19220 }, 19221 ['@update-custom-option-active.window'](event) { 19222 this.updateCustomOptionActive(event.detail); 19223 }, 19224 ['@update-custom-option-prices.window'](event) { 19225 this.updateCustomOptionPrices(event.detail); 19226 }, 19227 } 19228 } 19229 } 19230</script>
19230 19231<div x-data="initPrice26()" 19232 x-bind="eventListeners" 19233 class="price-box price-final_price" 19234> 19235 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 19236 <div class="price-container"> 19237 19238 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 19239 <span id="product-price-26" 19240 class="price-wrapper font-bold text-3xl text-secondary-800"> 19241 <span class="price" x-html="getFormattedFinalPrice()"> 19242 <span class="price">â¬Â 7,59</span> </span> 19243 </span> 19244 <meta itemprop="price" content="7.59"> 19245 <meta itemprop="priceCurrency" 19246 content="EUR"> 19247 </div> 19248 </div> 19249 </div> 19250 <template x-if="activeProductsPriceData && 19251 activeProductsPriceData.oldPrice && 19252 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 19253 "> 19254 <div class="old-price flex mr-2"> 19255 <span id="product-price-26" 19256 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 19257 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 19258 </span> 19259 </div> 19260 </template> 19261 <template x-if="activeProductsPriceData"> 19262 <div class="final-price inline-block"> 19263 <span id="product-price-26" 19264 class="price-wrapper font-bold text-3xl text-secondary-800"> 19265 <span class="price" x-html="getFormattedFinalPrice()"></span> 19266 </span> 19267 </div> 19268 </template> 19269 </div> 19270 </div> 19271 </div> 19272 19273 <div class="tier-price-popup lg:w-1/2"> 19274 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-maxi"> 19275 <strong class="text-2xl"> 19276 TENA Discreet Maxi </strong> 19277 </a> 19278 19279
19279<script> 19280 function initTierPrice26() { 19281 return { 19282 qty: 1, 19283 minSalesQty: 1, 19284 isStandardSelected() { 19285 return this.qty < 10; 19286 }, 19287 eventListeners: { 19288 ['@update-qty-26.window'](event) { 19289 if (this.qty !== event.detail) { 19290 this.qty = event.detail; 19291 } 19292 } 19293 } 19294 } 19295 } 19296 </script>
19296 19297 <div class="prices-tier items mb-4" 19298 x-data="initTierPrice26()" 19299 x-bind="eventListeners" 19300 > 19301 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 19302 :class="{'active-tier-price26 border-green-600 shadow-hard': 19303 qty >= 10 && qty < 20}" 19304 @click="$dispatch('update-qty-26', 10);" 19305 data-qty="10" 19306 > 19307 19308 <div class="flex flex-row items-center"> 19309 <div class="flex flex-col flex-grow"> 19310 <div class="flex flex-row items-center justify-between"> 19311 <div class="flex items-center space-x-2"> 19312 <div class="price-container font-bold text-lg"> 19313 <span 19314 class="price-container price-tier_price tax weee" 19315 > 19316 <span data-price-amount="6.89" 19317 data-price-type="" 19318 class="price-wrapper " 19319 ><span class="price">â¬Â 6,89</span></span> 19320 </span> 19321 </div> 19322 <span class="ml-2 text-base"> 19323 per stuk </span> 19324 </div> 19325 <span> 19326 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 9</span>%</strong> </span> 19327 </div> 19328 19329 <div class="mt-1"> 19330 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 19331 <span>10 verpakkingen</span> </span> 19332 </div> 19333 </div> 19334 </div> 19335 </div> 19336 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 19337 :class="{'active-tier-price26 border-green-600 shadow-hard': 19338 qty >= 20 && qty < 10000}" 19339 @click="$dispatch('update-qty-26', 20);" 19340 data-qty="20" 19341 > 19342 19343 <div class="flex flex-row items-center"> 19344 <div class="flex flex-col flex-grow"> 19345 <div class="flex flex-row items-center justify-between"> 19346 <div class="flex items-center space-x-2"> 19347 <div class="price-container font-bold text-lg"> 19348 <span 19349 x-data x-id="['1']" class="price-container price-tier_price tax weee" 19350 > 19351 <span :id="$id('1')" data-price-amount="5.99" 19352 data-price-type="" 19353 class="price-wrapper " 19354 ><span class="price">â¬Â 5,99</span></span> 19355 </span> 19356 </div> 19357 <span class="ml-2 text-base"> 19358 per stuk </span> 19359 </div> 19360 <span 19361 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 19362 <strong>Voordeligste keuze</strong> 19363 </span> 19364 <span> 19365 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 21</span>%</strong> </span> 19366 </div> 19367 19368 <div class="mt-1">
19369 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 19370 <span>20 verpakkingen</span> </span> 19371 </div> 19372 </div> 19373 </div> 19374 <div class="choice-mobile mt-4 xl:hidden"> 19375 <hr class="p-2"> 19376 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 19377 <strong>Voordeligste keuze</strong> 19378 </span> 19379 </div> 19380 </div> 19381 19382 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 19383 :class="{'active-tier-price26 border-green-600 shadow-hard': isStandardSelected() }" 19384 @click="$dispatch('update-qty-26', minSalesQty);" 19385 > 19386 <div class="flex flex-row items-center"> 19387 <div class="flex flex-col flex-grow"> 19388 <div class="flex flex-row items-center"> 19389 <div class="flex items-center space-x-2"> 19390 <div class="price-container font-bold text-lg"> 19391 <span class="price">â¬Â 7,59</span> </div> 19392 <span class="ml-2 text-base"> 19393 per stuk </span> 19394 </div> 19395 <strong class="ml-auto text-gray-500"> 19396 Standaard </strong> 19397 </div> 19398 19399 <div class="mt-1"> 19400 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 19401 <span>1 verpakking</span> </span> 19402 </div> 19403 </div> 19404 </div> 19405 </div> 19406 19407 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 19408 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 19409 x-show="isStandardSelected() && true" 19410 x-cloak> 19411 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 19412 <div class="ml-6 text-sm opacity-90"> 19413 <strong>Let op:</strong> 19414 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 19415 <div class="ml-6 text-sm leading-snug opacity-60"> 19416 Kies een andere optie voor extra voordeel! </div> 19417 </div> 19418 </div> 19419 19420 <div class="hidden lg:block"> 19421
19421<script> 19422 function initPrice26() { 19423 19424 const regularPriceInclTaxKey = 'oldPrice', 19425 regularPriceExclTaxKey = 'baseOldPrice', 19426 finalPriceInclTaxKey = 'finalPrice', 19427 finalPriceExclTaxKey = 'basePrice'; 19428 19429 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 19430 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 19431 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 19432 if (customOptionPrice) { 19433 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 19434 } 19435 return priceAccumulator; 19436 }, 0); 19437 } 19438 19439 return { 19440 regularPriceKey: regularPriceInclTaxKey, 19441 finalPriceKey: finalPriceInclTaxKey, 19442 activeProductsPriceData: false, 19443 initialFinalPrice: 7.59, 19444 calculatedFinalPrice: false, 19445 calculatedFinalPriceWithCustomOptions: false, 19446 initialTierPrices: [{"price_id":"1552","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"26","website_price":6.89,"price_incl_tax":6.89,"price_excl_tax":6.3210999174312},{"price_id":"1632","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"26","website_price":5.99,"price_incl_tax":5.99,"price_excl_tax":5.4954118440367}], 19447 showRegularPriceLabel: false, 19448 customOptionPrices: [], 19449 activeCustomOptions: [], 19450 qty: 1, 19451 updateCustomOptionActive(data) { 19452 let activeCustomOptions = this.activeCustomOptions; 19453 const customOptionId = data.customOptionId; 19454 19455 if (data.active) { 19456 if (!activeCustomOptions.includes(customOptionId)) { 19457 activeCustomOptions.push(data.customOptionId); 19458 } 19459 } else { 19460 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 19461 let index = activeCustomOptions.indexOf(customOptionId); 19462 activeCustomOptions.splice(index, 1); 19463 } 19464 } 19465 this.calculateFinalPriceWithCustomOptions() 19466 }, 19467 updateCustomOptionPrices(prices, basePrices) { 19468 if (prices) { 19469 this.customOptionPrices = prices; 19470 } 19471 19472 19473 this.calculateFinalPriceWithCustomOptions(); 19474 }, 19475 calculateFinalPrice() { 19476 19477 const getOptionTierPrice = (tierPrice, withTax) => { 19478 return tierPrice[withTax ? 'price' : 'basePrice']; 19479 } 19480 19481 const findApplicableTierPrice = (initialPrice, withTax) => { 19482 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 19483 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 19484 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 19485 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 19486 return tierPriceCandidate; 19487 } 19488 return acc; 19489 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 19490 19491 } else { 19492 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 19493 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 19494 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 19495 return tierPrice[key]; 19496 } 19497 return acc; 19498 }, initialPrice); 19499 19500 } 19501 } 19502 19503 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 19504 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 19505 19506 },
19507 calculatePriceLabelVisibility() { 19508 this.showRegularPriceLabel = 19509 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 19510 this.activeProductsPriceData.isMinimalPrice; 19511 }, 19512 calculateFinalPriceWithCustomOptions() { 19513 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 19514 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 19515 }, 19516 getCustomOptionPrice() { 19517 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 19518 }, 19519 getFormattedFinalPrice() { 19520 return hyva.formatPrice( 19521 this.calculatedFinalPriceWithCustomOptions || 19522 this.calculatedFinalPrice || 19523 this.initialFinalPrice 19524 ) 19525 }, 19526 isPriceHidden() { 19527 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 19528 this.calculatedFinalPrice || 19529 this.initialFinalPrice; 19530 return false && finalPrice === 0; 19531 }, 19532 eventListeners: { 19533 ['@update-prices-26.window'](event) { 19534 this.activeProductsPriceData = event.detail; 19535 19536 this.calculateFinalPrice(); 19537 this.calculateFinalPriceWithCustomOptions(); 19538 this.calculatePriceLabelVisibility(); 19539 }, 19540 ['@update-qty-26.window'](event) { 19541 this.qty = event.detail; 19542 this.calculateFinalPrice(); 19543 this.calculateFinalPriceWithCustomOptions(); 19544 }, 19545 ['@update-custom-option-active.window'](event) { 19546 this.updateCustomOptionActive(event.detail); 19547 }, 19548 ['@update-custom-option-prices.window'](event) { 19549 this.updateCustomOptionPrices(event.detail); 19550 }, 19551 } 19552 } 19553 } 19554</script>
19554 19555<div x-data="initPrice26()" 19556 x-bind="eventListeners" 19557 class="price-box price-final_price" 19558> 19559 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 19560 <div class="price-container"> 19561 19562 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 19563 <span id="product-price-26" 19564 class="price-wrapper font-bold text-3xl text-secondary-800"> 19565 <span class="price" x-html="getFormattedFinalPrice()"> 19566 <span class="price">â¬Â 7,59</span> </span> 19567 </span> 19568 <meta itemprop="price" content="7.59"> 19569 <meta itemprop="priceCurrency" 19570 content="EUR"> 19571 </div> 19572 </div> 19573 </div> 19574 <template x-if="activeProductsPriceData && 19575 activeProductsPriceData.oldPrice && 19576 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 19577 "> 19578 <div class="old-price flex mr-2"> 19579 <span id="product-price-26" 19580 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 19581 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 19582 </span> 19583 </div> 19584 </template> 19585 <template x-if="activeProductsPriceData"> 19586 <div class="final-price inline-block"> 19587 <span id="product-price-26" 19588 class="price-wrapper font-bold text-3xl text-secondary-800"> 19589 <span class="price" x-html="getFormattedFinalPrice()"></span> 19590 </span> 19591 </div> 19592 </template> 19593 </div> 19594 </div> 19595 </div> 19596</div> 19597 19598<div class="flex flex-col items-center"> 19599 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 19600 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 19601 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 19602<title>In Winkelmand</title></svg> 19603 In Winkelmand </button> 19604 19605 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 19606 Nee, vandaag niet </button> 19607</div> 19608 </div> 19609 </div> 19610 </div> 19611 19612 <button @click="show('dialog6ac3024e7b698', this.$event || $event)" 19613 class="btn btn-primary lg:w-full" 19614 type="button" 19615 aria-haspopup="dialog" 19616 > 19617 Kies uw voordeel </button> 19618 </div> 19619 </div> 19620 19621 <div class="flex items-center gap-1 lg:hidden"> 19622 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 19623 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 19624 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 19625 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 19626<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
19627 <span> 19628 Tot 22:30 uur besteld = morgen in huis <span 19629 class="absolute group cursor-pointer inline-flex items-center justify-center"> 19630 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 19631 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 19632<title/></svg> 19633 <span class="absolute top-full left-1/2 -translate-x-[80%] 19634 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 19635 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 19636 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 19637 </span> 19638 </span> 19639 </div> 19640 </div> 19641</form> 19642 </li> 19643 <li> 19644
19644<script> 19645 function initQtyFromTier25() { 19646 return { 19647 qty: 1, 19648 updateQty(event) { 19649 this.qty = event.detail; 19650 } 19651 } 19652 } 19653</script>
19653 19654 19655<form method="post" 19656 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/25/" 19657 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 19658 x-data="initQtyFromTier25()" 19659 @update-qty-25="updateQty(event)" 19660 19661 > 19662 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="25"/> 19663 <input type="hidden" 19664 name="qty" 19665 id="qty[25]" 19666 :value="qty" 19667 x-model.number="qty" 19668 /> 19669 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 19670 <a href="https://www.123drogisterij.nl/tena-discreet-extra-plus" 19671 title="TENA Discreet Extra Plus" 19672 class="product photo product-item-photo block w-1/3 lg:w-1/4" 19673 tabindex="-1" 19674 > 19675 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_extra_plus_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-25.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_extra_plus_3.jpg" loading="lazy" width="187" height="234" alt="* TENA Discreet Extra Plus" title="* TENA Discreet Extra Plus" loading="lazy" /></picture> 19676 </a> 19677 19678 <div class="w-2/3 lg:mx-8"> 19679 <strong> 19680 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 19681 href="https://www.123drogisterij.nl/tena-discreet-extra-plus" 19682 :id="`slide-desc-25-${$id('slider-id')}`" 19683 > 19684 TENA Discreet Extra Plus </a> 19685 </strong> 19686 19687 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 19688 <span class="block text-gray-500 mb-1"> 19689 Artikelnummer: 761660 </span> 19690 19691 <span class="block text-gray-500 mb-1 lg:text-md"> 19692 Verpakking: 16 stuks </span> 19693 </div> 19694 19695 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 19696 Absorptievermogen: 19697 <div class="flex gap-2"> 19698 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19699 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19700 </svg> 19701 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19702 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19703 </svg> 19704 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19705 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19706 </svg> 19707 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19708 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19709 </svg> 19710 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19711 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
19711697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19712 </svg> 19713 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19714 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19715 </svg> 19716 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19717 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19718 </svg> 19719 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19720 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19721 </svg> 19722 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19723 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19724 </svg> 19725 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19726 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19727 </svg> 19728 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 19729 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 19730 </svg> 19731 </div> 19732 </span> 19733 19734 <div class="lg:hidden"> 19735 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 19736 " 19737 title="Beschikbaarheid" 19738 > 19739 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 19740 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 19741<title>check-circle</title></svg> 19742Op voorraad </p> 19743 </div> 19744 19745 <div class="hidden lg:block" 19746 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 19747 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
19748 content = trimToSentence(originalContent, maxLength); 19749 isVisible = false"; 19750 > 19751 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 19752 TENA Discreet Extra Plus biedt nog meer zekerheid dan Extra en is daardoor zeer geschikt bij verlies van flinke scheuten urine. De inlegger is iets langer dan de Extra, waardoor het zeer geschikt is voor iets grotere vrouwen. Dankzij de vernieuwde absorptiezone wordt de urine nu nog sneller opgenomen en blijft de toplaag droog. Ook TENA Discreet Extra Plus is anatomisch gevormd en voorzien van Fresh Odour Control, die de ontwikkeling van geurtjes tegengaat. De volledig ademende buitenlaag zorgt voor een goede luchtcirculatie. Dit product is 13 x 39 centimeter en neemt 788 milliliter op. </div> 19753 19754 <div class="prose md:prose-base text-md" x-show="isVisible"> 19755 TENA Discreet Extra Plus biedt nog meer zekerheid dan Extra en is daardoor zeer geschikt bij verlies van flinke scheuten urine. De inlegger is iets langer dan de Extra, waardoor he </div> 19756 19757 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 19758 @click="isCollapsed = !isCollapsed" 19759 x-show="originalContent.length > maxLength ? true : false" 19760 type="button" 19761 > 19762 <span x-text="isCollapsed ? 19763 'Lees minder' : 19764 'Lees meer'" 19765 ></span> 19766 </button> 19767 </div> 19768 </div> 19769 </div> 19770 19771 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 19772 <div class="lg:hidden" 19773 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 19774 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
19775 content = trimToSentence(originalContent, maxLength); 19776 isVisible = false"; 19777 > 19778 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 19779 TENA Discreet Extra Plus biedt nog meer zekerheid dan Extra en is daardoor zeer geschikt bij verlies van flinke scheuten urine. De inlegger is iets langer dan de Extra, waardoor het zeer geschikt is voor iets grotere vrouwen. Dankzij de vernieuwde absorptiezone wordt de urine nu nog sneller opgenomen en blijft de toplaag droog. Ook TENA Discreet Extra Plus is anatomisch gevormd en voorzien van Fresh Odour Control, die de ontwikkeling van geurtjes tegengaat. De volledig ademende buitenlaag zorgt voor een goede luchtcirculatie. Dit product is 13 x 39 centimeter en neemt 788 milliliter op. </div> 19780 19781 <div class="prose md:prose-base" x-show="isVisible"> 19782 TENA Discreet Extra Plus biedt nog meer zekerheid dan Extra en is daardoor zeer geschikt bij verlies van flinke scheuten urine. De inlegger is iets langer dan de Extra, waardoor het zeer ges </div> 19783 19784 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 19785 @click="isCollapsed = !isCollapsed" 19786 x-show="originalContent.length > maxLength ? true : false" 19787 type="button" 19788 > 19789 <span x-text="isCollapsed ? 19790 'Lees minder' : 19791 'Lees meer'" 19792 ></span> 19793 </button> 19794 </div> 19795 19796 19797 <div class="hidden lg:block lg:text-md"> 19798 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 19799 " 19800 title="Beschikbaarheid" 19801 > 19802 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 19803 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 19804<title>check-circle</title></svg> 19805Op voorraad </p> 19806 </div> 19807 19808 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 19809 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 19810 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 19811 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 19812 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 19813<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 19814 <span> 19815 Tot 22:30 uur besteld = morgen in huis <span 19816 class="absolute group cursor-pointer inline-flex"> 19817 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 19818 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 19819<title/></svg> 19820 <span class="absolute top-full left-1/2 -translate-x-[80%] 19821 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 19822 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 19823 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 19824 </span> 19825 </span> 19826 </div> 19827 19828 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 19829 <div class="pt-1 text-gray-900" 19830 x-data="initPriceBox()" 19831 x-defer="intersect" 19832 @update-prices-25.window="updatePrice($event.detail);" 19833 > 19834 <div class="price-box price-final_price" data-role="priceBox" data-product-id="25" data-price-box="product-id-25"> 19835 19836 <span
19837 x-data x-id="['product\u002Dprice\u002D25']" class="price-container price-final_price tax weee" 19838 > 19839 <span :id="$id('product\u002Dprice\u002D25')" data-price-amount="8.93" 19840 data-price-type="finalPrice" 19841 class="price-wrapper " 19842 ><span class="price">â¬Â 8,93</span></span> 19843 </span> 19844 19845 <span class="minimal-price-link"> 19846 <span 19847 x-data x-id="['25']" class="price-container price-final_price tax weee" 19848 > 19849 <span class="price-label">Vanaf</span> 19850 <span :id="$id('25')" data-price-amount="7.37" 19851 data-price-type="" 19852 class="price-wrapper " 19853 >â¬Â 7,37</span> 19854 </span> 19855 </span> 19856</div> </div> 19857 19858 <div x-data="hyva.modal()" class="lg:w-full"> 19859 <div x-cloak data-dialog-ref-name="dialog6ac3024e81342" 19860 x-bind="overlay" 19861 class="fixed inset-0 bg-black/50 z-50"> 19862 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 19863 <div x-ref="dialog6ac3024e81342" role="dialog" aria-modal="true" 19864 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 19865 19866<button @click="hide" type="button"> 19867 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 19868 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 19869<title>Sluiten</title></svg> 19870</button> 19871 19872<h2 class="text-primary-500 text-center mb-4"> 19873 Extra besparen?</h2> 19874 19875<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 19876 <div class="flex gap-2 mb-4"> 19877 <a href="https://www.123drogisterij.nl/tena-discreet-extra-plus" 19878 title="TENA Discreet Extra Plus" 19879 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 19880 tabindex="-1" 19881 > 19882 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_extra_plus_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-25.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_extra_plus_3.jpg" loading="lazy" width="261" height="261" alt="* TENA Discreet Extra Plus" title="* TENA Discreet Extra Plus" loading="lazy" /></picture> 19883 </a> 19884 19885 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 19886 <a href="https://www.123drogisterij.nl/tena-discreet-extra-plus"> 19887 <strong class="text-xl"> 19888 TENA Discreet Extra Plus </strong> 19889 </a> 19890 19891
19891<script> 19892 function initPrice25() { 19893 19894 const regularPriceInclTaxKey = 'oldPrice', 19895 regularPriceExclTaxKey = 'baseOldPrice', 19896 finalPriceInclTaxKey = 'finalPrice', 19897 finalPriceExclTaxKey = 'basePrice'; 19898 19899 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 19900 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 19901 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 19902 if (customOptionPrice) { 19903 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 19904 } 19905 return priceAccumulator; 19906 }, 0); 19907 } 19908 19909 return { 19910 regularPriceKey: regularPriceInclTaxKey, 19911 finalPriceKey: finalPriceInclTaxKey, 19912 activeProductsPriceData: false, 19913 initialFinalPrice: 8.93, 19914 calculatedFinalPrice: false, 19915 calculatedFinalPriceWithCustomOptions: false, 19916 initialTierPrices: [{"price_id":"1550","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"25","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1631","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"25","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 19917 showRegularPriceLabel: false, 19918 customOptionPrices: [], 19919 activeCustomOptions: [], 19920 qty: 1, 19921 updateCustomOptionActive(data) { 19922 let activeCustomOptions = this.activeCustomOptions; 19923 const customOptionId = data.customOptionId; 19924 19925 if (data.active) { 19926 if (!activeCustomOptions.includes(customOptionId)) { 19927 activeCustomOptions.push(data.customOptionId); 19928 } 19929 } else { 19930 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 19931 let index = activeCustomOptions.indexOf(customOptionId); 19932 activeCustomOptions.splice(index, 1); 19933 } 19934 } 19935 this.calculateFinalPriceWithCustomOptions() 19936 }, 19937 updateCustomOptionPrices(prices, basePrices) { 19938 if (prices) { 19939 this.customOptionPrices = prices; 19940 } 19941 19942 19943 this.calculateFinalPriceWithCustomOptions(); 19944 }, 19945 calculateFinalPrice() { 19946 19947 const getOptionTierPrice = (tierPrice, withTax) => { 19948 return tierPrice[withTax ? 'price' : 'basePrice']; 19949 } 19950 19951 const findApplicableTierPrice = (initialPrice, withTax) => { 19952 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 19953 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 19954 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 19955 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 19956 return tierPriceCandidate; 19957 } 19958 return acc; 19959 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 19960 19961 } else { 19962 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 19963 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 19964 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 19965 return tierPrice[key]; 19966 } 19967 return acc; 19968 }, initialPrice); 19969 19970 } 19971 } 19972 19973 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 19974 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 19975 19976 },
19977 calculatePriceLabelVisibility() { 19978 this.showRegularPriceLabel = 19979 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 19980 this.activeProductsPriceData.isMinimalPrice; 19981 }, 19982 calculateFinalPriceWithCustomOptions() { 19983 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 19984 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 19985 }, 19986 getCustomOptionPrice() { 19987 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 19988 }, 19989 getFormattedFinalPrice() { 19990 return hyva.formatPrice( 19991 this.calculatedFinalPriceWithCustomOptions || 19992 this.calculatedFinalPrice || 19993 this.initialFinalPrice 19994 ) 19995 }, 19996 isPriceHidden() { 19997 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 19998 this.calculatedFinalPrice || 19999 this.initialFinalPrice; 20000 return false && finalPrice === 0; 20001 }, 20002 eventListeners: { 20003 ['@update-prices-25.window'](event) { 20004 this.activeProductsPriceData = event.detail; 20005 20006 this.calculateFinalPrice(); 20007 this.calculateFinalPriceWithCustomOptions(); 20008 this.calculatePriceLabelVisibility(); 20009 }, 20010 ['@update-qty-25.window'](event) { 20011 this.qty = event.detail; 20012 this.calculateFinalPrice(); 20013 this.calculateFinalPriceWithCustomOptions(); 20014 }, 20015 ['@update-custom-option-active.window'](event) { 20016 this.updateCustomOptionActive(event.detail); 20017 }, 20018 ['@update-custom-option-prices.window'](event) { 20019 this.updateCustomOptionPrices(event.detail); 20020 }, 20021 } 20022 } 20023 } 20024</script>
20024 20025<div x-data="initPrice25()" 20026 x-bind="eventListeners" 20027 class="price-box price-final_price" 20028> 20029 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 20030 <div class="price-container"> 20031 20032 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 20033 <span id="product-price-25" 20034 class="price-wrapper font-bold text-3xl text-secondary-800"> 20035 <span class="price" x-html="getFormattedFinalPrice()"> 20036 <span class="price">â¬Â 8,93</span> </span> 20037 </span> 20038 <meta itemprop="price" content="8.93"> 20039 <meta itemprop="priceCurrency" 20040 content="EUR"> 20041 </div> 20042 </div> 20043 </div> 20044 <template x-if="activeProductsPriceData && 20045 activeProductsPriceData.oldPrice && 20046 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 20047 "> 20048 <div class="old-price flex mr-2"> 20049 <span id="product-price-25" 20050 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 20051 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 20052 </span> 20053 </div> 20054 </template> 20055 <template x-if="activeProductsPriceData"> 20056 <div class="final-price inline-block"> 20057 <span id="product-price-25" 20058 class="price-wrapper font-bold text-3xl text-secondary-800"> 20059 <span class="price" x-html="getFormattedFinalPrice()"></span> 20060 </span> 20061 </div> 20062 </template> 20063 </div> 20064 </div> 20065 </div> 20066 20067 <div class="tier-price-popup lg:w-1/2"> 20068 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-extra-plus"> 20069 <strong class="text-2xl"> 20070 TENA Discreet Extra Plus </strong> 20071 </a> 20072 20073
20073<script> 20074 function initTierPrice25() { 20075 return { 20076 qty: 1, 20077 minSalesQty: 1, 20078 isStandardSelected() { 20079 return this.qty < 10; 20080 }, 20081 eventListeners: { 20082 ['@update-qty-25.window'](event) { 20083 if (this.qty !== event.detail) { 20084 this.qty = event.detail; 20085 } 20086 } 20087 } 20088 } 20089 } 20090 </script>
20090 20091 <div class="prices-tier items mb-4" 20092 x-data="initTierPrice25()" 20093 x-bind="eventListeners" 20094 > 20095 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 20096 :class="{'active-tier-price25 border-green-600 shadow-hard': 20097 qty >= 10 && qty < 20}" 20098 @click="$dispatch('update-qty-25', 10);" 20099 data-qty="10" 20100 > 20101 20102 <div class="flex flex-row items-center"> 20103 <div class="flex flex-col flex-grow"> 20104 <div class="flex flex-row items-center justify-between"> 20105 <div class="flex items-center space-x-2"> 20106 <div class="price-container font-bold text-lg"> 20107 <span 20108 class="price-container price-tier_price tax weee" 20109 > 20110 <span data-price-amount="7.63" 20111 data-price-type="" 20112 class="price-wrapper " 20113 ><span class="price">â¬Â 7,63</span></span> 20114 </span> 20115 </div> 20116 <span class="ml-2 text-base"> 20117 per stuk </span> 20118 </div> 20119 <span> 20120 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 15</span>%</strong> </span> 20121 </div> 20122 20123 <div class="mt-1"> 20124 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 20125 <span>10 verpakkingen</span> </span> 20126 </div> 20127 </div> 20128 </div> 20129 </div> 20130 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 20131 :class="{'active-tier-price25 border-green-600 shadow-hard': 20132 qty >= 20 && qty < 10000}" 20133 @click="$dispatch('update-qty-25', 20);" 20134 data-qty="20" 20135 > 20136 20137 <div class="flex flex-row items-center"> 20138 <div class="flex flex-col flex-grow"> 20139 <div class="flex flex-row items-center justify-between"> 20140 <div class="flex items-center space-x-2"> 20141 <div class="price-container font-bold text-lg"> 20142 <span 20143 x-data x-id="['1']" class="price-container price-tier_price tax weee" 20144 > 20145 <span :id="$id('1')" data-price-amount="7.37" 20146 data-price-type="" 20147 class="price-wrapper " 20148 ><span class="price">â¬Â 7,37</span></span> 20149 </span> 20150 </div> 20151 <span class="ml-2 text-base"> 20152 per stuk </span> 20153 </div> 20154 <span 20155 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 20156 <strong>Voordeligste keuze</strong> 20157 </span> 20158 <span> 20159 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 17</span>%</strong> </span> 20160 </div> 20161 20162 <div class="mt-1">
20163 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 20164 <span>20 verpakkingen</span> </span> 20165 </div> 20166 </div> 20167 </div> 20168 <div class="choice-mobile mt-4 xl:hidden"> 20169 <hr class="p-2"> 20170 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 20171 <strong>Voordeligste keuze</strong> 20172 </span> 20173 </div> 20174 </div> 20175 20176 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 20177 :class="{'active-tier-price25 border-green-600 shadow-hard': isStandardSelected() }" 20178 @click="$dispatch('update-qty-25', minSalesQty);" 20179 > 20180 <div class="flex flex-row items-center"> 20181 <div class="flex flex-col flex-grow"> 20182 <div class="flex flex-row items-center"> 20183 <div class="flex items-center space-x-2"> 20184 <div class="price-container font-bold text-lg"> 20185 <span class="price">â¬Â 8,93</span> </div> 20186 <span class="ml-2 text-base"> 20187 per stuk </span> 20188 </div> 20189 <strong class="ml-auto text-gray-500"> 20190 Standaard </strong> 20191 </div> 20192 20193 <div class="mt-1"> 20194 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 20195 <span>1 verpakking</span> </span> 20196 </div> 20197 </div> 20198 </div> 20199 </div> 20200 20201 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 20202 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 20203 x-show="isStandardSelected() && true" 20204 x-cloak> 20205 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 20206 <div class="ml-6 text-sm opacity-90"> 20207 <strong>Let op:</strong> 20208 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 20209 <div class="ml-6 text-sm leading-snug opacity-60"> 20210 Kies een andere optie voor extra voordeel! </div> 20211 </div> 20212 </div> 20213 20214 <div class="hidden lg:block"> 20215
20215<script> 20216 function initPrice25() { 20217 20218 const regularPriceInclTaxKey = 'oldPrice', 20219 regularPriceExclTaxKey = 'baseOldPrice', 20220 finalPriceInclTaxKey = 'finalPrice', 20221 finalPriceExclTaxKey = 'basePrice'; 20222 20223 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 20224 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 20225 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 20226 if (customOptionPrice) { 20227 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 20228 } 20229 return priceAccumulator; 20230 }, 0); 20231 } 20232 20233 return { 20234 regularPriceKey: regularPriceInclTaxKey, 20235 finalPriceKey: finalPriceInclTaxKey, 20236 activeProductsPriceData: false, 20237 initialFinalPrice: 8.93, 20238 calculatedFinalPrice: false, 20239 calculatedFinalPriceWithCustomOptions: false, 20240 initialTierPrices: [{"price_id":"1550","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"25","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1631","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"25","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 20241 showRegularPriceLabel: false, 20242 customOptionPrices: [], 20243 activeCustomOptions: [], 20244 qty: 1, 20245 updateCustomOptionActive(data) { 20246 let activeCustomOptions = this.activeCustomOptions; 20247 const customOptionId = data.customOptionId; 20248 20249 if (data.active) { 20250 if (!activeCustomOptions.includes(customOptionId)) { 20251 activeCustomOptions.push(data.customOptionId); 20252 } 20253 } else { 20254 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 20255 let index = activeCustomOptions.indexOf(customOptionId); 20256 activeCustomOptions.splice(index, 1); 20257 } 20258 } 20259 this.calculateFinalPriceWithCustomOptions() 20260 }, 20261 updateCustomOptionPrices(prices, basePrices) { 20262 if (prices) { 20263 this.customOptionPrices = prices; 20264 } 20265 20266 20267 this.calculateFinalPriceWithCustomOptions(); 20268 }, 20269 calculateFinalPrice() { 20270 20271 const getOptionTierPrice = (tierPrice, withTax) => { 20272 return tierPrice[withTax ? 'price' : 'basePrice']; 20273 } 20274 20275 const findApplicableTierPrice = (initialPrice, withTax) => { 20276 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 20277 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 20278 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 20279 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 20280 return tierPriceCandidate; 20281 } 20282 return acc; 20283 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 20284 20285 } else { 20286 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 20287 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 20288 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 20289 return tierPrice[key]; 20290 } 20291 return acc; 20292 }, initialPrice); 20293 20294 } 20295 } 20296 20297 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 20298 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 20299 20300 },
20301 calculatePriceLabelVisibility() { 20302 this.showRegularPriceLabel = 20303 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 20304 this.activeProductsPriceData.isMinimalPrice; 20305 }, 20306 calculateFinalPriceWithCustomOptions() { 20307 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 20308 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 20309 }, 20310 getCustomOptionPrice() { 20311 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 20312 }, 20313 getFormattedFinalPrice() { 20314 return hyva.formatPrice( 20315 this.calculatedFinalPriceWithCustomOptions || 20316 this.calculatedFinalPrice || 20317 this.initialFinalPrice 20318 ) 20319 }, 20320 isPriceHidden() { 20321 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 20322 this.calculatedFinalPrice || 20323 this.initialFinalPrice; 20324 return false && finalPrice === 0; 20325 }, 20326 eventListeners: { 20327 ['@update-prices-25.window'](event) { 20328 this.activeProductsPriceData = event.detail; 20329 20330 this.calculateFinalPrice(); 20331 this.calculateFinalPriceWithCustomOptions(); 20332 this.calculatePriceLabelVisibility(); 20333 }, 20334 ['@update-qty-25.window'](event) { 20335 this.qty = event.detail; 20336 this.calculateFinalPrice(); 20337 this.calculateFinalPriceWithCustomOptions(); 20338 }, 20339 ['@update-custom-option-active.window'](event) { 20340 this.updateCustomOptionActive(event.detail); 20341 }, 20342 ['@update-custom-option-prices.window'](event) { 20343 this.updateCustomOptionPrices(event.detail); 20344 }, 20345 } 20346 } 20347 } 20348</script>
20348 20349<div x-data="initPrice25()" 20350 x-bind="eventListeners" 20351 class="price-box price-final_price" 20352> 20353 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 20354 <div class="price-container"> 20355 20356 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 20357 <span id="product-price-25" 20358 class="price-wrapper font-bold text-3xl text-secondary-800"> 20359 <span class="price" x-html="getFormattedFinalPrice()"> 20360 <span class="price">â¬Â 8,93</span> </span> 20361 </span> 20362 <meta itemprop="price" content="8.93"> 20363 <meta itemprop="priceCurrency" 20364 content="EUR"> 20365 </div> 20366 </div> 20367 </div> 20368 <template x-if="activeProductsPriceData && 20369 activeProductsPriceData.oldPrice && 20370 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 20371 "> 20372 <div class="old-price flex mr-2"> 20373 <span id="product-price-25" 20374 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 20375 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 20376 </span> 20377 </div> 20378 </template> 20379 <template x-if="activeProductsPriceData"> 20380 <div class="final-price inline-block"> 20381 <span id="product-price-25" 20382 class="price-wrapper font-bold text-3xl text-secondary-800"> 20383 <span class="price" x-html="getFormattedFinalPrice()"></span> 20384 </span> 20385 </div> 20386 </template> 20387 </div> 20388 </div> 20389 </div> 20390</div> 20391 20392<div class="flex flex-col items-center"> 20393 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 20394 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 20395 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 20396<title>In Winkelmand</title></svg> 20397 In Winkelmand </button> 20398 20399 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 20400 Nee, vandaag niet </button> 20401</div> 20402 </div> 20403 </div> 20404 </div> 20405 20406 <button @click="show('dialog6ac3024e81342', this.$event || $event)" 20407 class="btn btn-primary lg:w-full" 20408 type="button" 20409 aria-haspopup="dialog" 20410 > 20411 Kies uw voordeel </button> 20412 </div> 20413 </div> 20414 20415 <div class="flex items-center gap-1 lg:hidden"> 20416 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 20417 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 20418 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 20419 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 20420<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
20421 <span> 20422 Tot 22:30 uur besteld = morgen in huis <span 20423 class="absolute group cursor-pointer inline-flex items-center justify-center"> 20424 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 20425 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 20426<title/></svg> 20427 <span class="absolute top-full left-1/2 -translate-x-[80%] 20428 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 20429 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 20430 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 20431 </span> 20432 </span> 20433 </div> 20434 </div> 20435</form> 20436 </li> 20437 <li> 20438
20438<script> 20439 function initQtyFromTier24() { 20440 return { 20441 qty: 1, 20442 updateQty(event) { 20443 this.qty = event.detail; 20444 } 20445 } 20446 } 20447</script>
20447 20448 20449<form method="post" 20450 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/24/" 20451 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 20452 x-data="initQtyFromTier24()" 20453 @update-qty-24="updateQty(event)" 20454 20455 > 20456 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="24"/> 20457 <input type="hidden" 20458 name="qty" 20459 id="qty[24]" 20460 :value="qty" 20461 x-model.number="qty" 20462 /> 20463 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 20464 <a href="https://www.123drogisterij.nl/tena-discreet-extra" 20465 title="TENA Discreet Extra" 20466 class="product photo product-item-photo block w-1/3 lg:w-1/4" 20467 tabindex="-1" 20468 > 20469 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_extra.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-24.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_extra.jpg" loading="lazy" width="187" height="234" alt="* TENA Discreet Extra" title="* TENA Discreet Extra" loading="lazy" /></picture> 20470 </a> 20471 20472 <div class="w-2/3 lg:mx-8"> 20473 <strong> 20474 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 20475 href="https://www.123drogisterij.nl/tena-discreet-extra" 20476 :id="`slide-desc-24-${$id('slider-id')}`" 20477 > 20478 TENA Discreet Extra </a> 20479 </strong> 20480 20481 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 20482 <span class="block text-gray-500 mb-1"> 20483 Artikelnummer: 760692 </span> 20484 20485 <span class="block text-gray-500 mb-1 lg:text-md"> 20486 Verpakking: 20 stuks </span> 20487 </div> 20488 20489 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 20490 Absorptievermogen: 20491 <div class="flex gap-2"> 20492 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20493 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20494 </svg> 20495 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20496 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20497 </svg> 20498 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20499 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20500 </svg> 20501 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20502 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20503 </svg> 20504 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20505 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
20505697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20506 </svg> 20507 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20508 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20509 </svg> 20510 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20511 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20512 </svg> 20513 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20514 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20515 </svg> 20516 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20517 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20518 </svg> 20519 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20520 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20521 </svg> 20522 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 20523 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 20524 </svg> 20525 </div> 20526 </span> 20527 20528 <div class="lg:hidden"> 20529 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 20530 " 20531 title="Beschikbaarheid" 20532 > 20533 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 20534 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 20535<title>check-circle</title></svg> 20536Op voorraad </p> 20537 </div> 20538 20539 <div class="hidden lg:block" 20540 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 20541 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
20542 content = trimToSentence(originalContent, maxLength); 20543 isVisible = false"; 20544 > 20545 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 20546 TENA Discreet Extra is zeer geschikt bij regelmatig verlies van scheutjes urine. Het zit tussen de Super en de Maxi in. Het product garandeert een uitstekende pasvorm doordat het de natuurlijke lijnen van het lichaam volgt. De nieuwe absorptiezone zorgt voor een nog snellere opname van urine en de volledig ademende buitenlaag voor extra comfort. Ook TENA Discreet Extra is voorzien van Fresh Odour Control die de vorming van geurtjes tegengaat. De Extra is 12 x 34 centimeter en heeft een opname van 586 milliliter. </div> 20547 20548 <div class="prose md:prose-base text-md" x-show="isVisible"> 20549 TENA Discreet Extra is zeer geschikt bij regelmatig verlies van scheutjes urine. Het zit tussen de Super en de Maxi in. Het product garandeert een uitstekende pasvorm doordat het d </div> 20550 20551 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 20552 @click="isCollapsed = !isCollapsed" 20553 x-show="originalContent.length > maxLength ? true : false" 20554 type="button" 20555 > 20556 <span x-text="isCollapsed ? 20557 'Lees minder' : 20558 'Lees meer'" 20559 ></span> 20560 </button> 20561 </div> 20562 </div> 20563 </div> 20564 20565 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 20566 <div class="lg:hidden" 20567 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 20568 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
20569 content = trimToSentence(originalContent, maxLength); 20570 isVisible = false"; 20571 > 20572 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 20573 TENA Discreet Extra is zeer geschikt bij regelmatig verlies van scheutjes urine. Het zit tussen de Super en de Maxi in. Het product garandeert een uitstekende pasvorm doordat het de natuurlijke lijnen van het lichaam volgt. De nieuwe absorptiezone zorgt voor een nog snellere opname van urine en de volledig ademende buitenlaag voor extra comfort. Ook TENA Discreet Extra is voorzien van Fresh Odour Control die de vorming van geurtjes tegengaat. De Extra is 12 x 34 centimeter en heeft een opname van 586 milliliter. </div> 20574 20575 <div class="prose md:prose-base" x-show="isVisible"> 20576 TENA Discreet Extra is zeer geschikt bij regelmatig verlies van scheutjes urine. Het zit tussen de Super en de Maxi in. Het product garandeert een uitstekende pasvorm doordat het de natuurli </div> 20577 20578 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 20579 @click="isCollapsed = !isCollapsed" 20580 x-show="originalContent.length > maxLength ? true : false" 20581 type="button" 20582 > 20583 <span x-text="isCollapsed ? 20584 'Lees minder' : 20585 'Lees meer'" 20586 ></span> 20587 </button> 20588 </div> 20589 20590 20591 <div class="hidden lg:block lg:text-md"> 20592 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 20593 " 20594 title="Beschikbaarheid" 20595 > 20596 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 20597 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 20598<title>check-circle</title></svg> 20599Op voorraad </p> 20600 </div> 20601 20602 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 20603 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 20604 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 20605 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 20606 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 20607<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 20608 <span> 20609 Tot 22:30 uur besteld = morgen in huis <span 20610 class="absolute group cursor-pointer inline-flex"> 20611 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 20612 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 20613<title/></svg> 20614 <span class="absolute top-full left-1/2 -translate-x-[80%] 20615 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 20616 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 20617 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 20618 </span> 20619 </span> 20620 </div> 20621 20622 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 20623 <div class="pt-1 text-gray-900" 20624 x-data="initPriceBox()" 20625 x-defer="intersect" 20626 @update-prices-24.window="updatePrice($event.detail);" 20627 > 20628 <div class="price-box price-final_price" data-role="priceBox" data-product-id="24" data-price-box="product-id-24"> 20629 20630 <span
20631 x-data x-id="['product\u002Dprice\u002D24']" class="price-container price-final_price tax weee" 20632 > 20633 <span :id="$id('product\u002Dprice\u002D24')" data-price-amount="8.93" 20634 data-price-type="finalPrice" 20635 class="price-wrapper " 20636 ><span class="price">â¬Â 8,93</span></span> 20637 </span> 20638 20639 <span class="minimal-price-link"> 20640 <span 20641 x-data x-id="['24']" class="price-container price-final_price tax weee" 20642 > 20643 <span class="price-label">Vanaf</span> 20644 <span :id="$id('24')" data-price-amount="7.37" 20645 data-price-type="" 20646 class="price-wrapper " 20647 >â¬Â 7,37</span> 20648 </span> 20649 </span> 20650</div> </div> 20651 20652 <div x-data="hyva.modal()" class="lg:w-full"> 20653 <div x-cloak data-dialog-ref-name="dialog6ac3024e86f2d" 20654 x-bind="overlay" 20655 class="fixed inset-0 bg-black/50 z-50"> 20656 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 20657 <div x-ref="dialog6ac3024e86f2d" role="dialog" aria-modal="true" 20658 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 20659 20660<button @click="hide" type="button"> 20661 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 20662 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 20663<title>Sluiten</title></svg> 20664</button> 20665 20666<h2 class="text-primary-500 text-center mb-4"> 20667 Extra besparen?</h2> 20668 20669<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 20670 <div class="flex gap-2 mb-4"> 20671 <a href="https://www.123drogisterij.nl/tena-discreet-extra" 20672 title="TENA Discreet Extra" 20673 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 20674 tabindex="-1" 20675 > 20676 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_extra.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-24.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_extra.jpg" loading="lazy" width="261" height="261" alt="* TENA Discreet Extra" title="* TENA Discreet Extra" loading="lazy" /></picture> 20677 </a> 20678 20679 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 20680 <a href="https://www.123drogisterij.nl/tena-discreet-extra"> 20681 <strong class="text-xl"> 20682 TENA Discreet Extra </strong> 20683 </a> 20684 20685
20685<script> 20686 function initPrice24() { 20687 20688 const regularPriceInclTaxKey = 'oldPrice', 20689 regularPriceExclTaxKey = 'baseOldPrice', 20690 finalPriceInclTaxKey = 'finalPrice', 20691 finalPriceExclTaxKey = 'basePrice'; 20692 20693 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 20694 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 20695 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 20696 if (customOptionPrice) { 20697 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 20698 } 20699 return priceAccumulator; 20700 }, 0); 20701 } 20702 20703 return { 20704 regularPriceKey: regularPriceInclTaxKey, 20705 finalPriceKey: finalPriceInclTaxKey, 20706 activeProductsPriceData: false, 20707 initialFinalPrice: 8.93, 20708 calculatedFinalPrice: false, 20709 calculatedFinalPriceWithCustomOptions: false, 20710 initialTierPrices: [{"price_id":"1549","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"24","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1630","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"24","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 20711 showRegularPriceLabel: false, 20712 customOptionPrices: [], 20713 activeCustomOptions: [], 20714 qty: 1, 20715 updateCustomOptionActive(data) { 20716 let activeCustomOptions = this.activeCustomOptions; 20717 const customOptionId = data.customOptionId; 20718 20719 if (data.active) { 20720 if (!activeCustomOptions.includes(customOptionId)) { 20721 activeCustomOptions.push(data.customOptionId); 20722 } 20723 } else { 20724 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 20725 let index = activeCustomOptions.indexOf(customOptionId); 20726 activeCustomOptions.splice(index, 1); 20727 } 20728 } 20729 this.calculateFinalPriceWithCustomOptions() 20730 }, 20731 updateCustomOptionPrices(prices, basePrices) { 20732 if (prices) { 20733 this.customOptionPrices = prices; 20734 } 20735 20736 20737 this.calculateFinalPriceWithCustomOptions(); 20738 }, 20739 calculateFinalPrice() { 20740 20741 const getOptionTierPrice = (tierPrice, withTax) => { 20742 return tierPrice[withTax ? 'price' : 'basePrice']; 20743 } 20744 20745 const findApplicableTierPrice = (initialPrice, withTax) => { 20746 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 20747 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 20748 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 20749 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 20750 return tierPriceCandidate; 20751 } 20752 return acc; 20753 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 20754 20755 } else { 20756 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 20757 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 20758 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 20759 return tierPrice[key]; 20760 } 20761 return acc; 20762 }, initialPrice); 20763 20764 } 20765 } 20766 20767 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 20768 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 20769 20770 },
20771 calculatePriceLabelVisibility() { 20772 this.showRegularPriceLabel = 20773 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 20774 this.activeProductsPriceData.isMinimalPrice; 20775 }, 20776 calculateFinalPriceWithCustomOptions() { 20777 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 20778 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 20779 }, 20780 getCustomOptionPrice() { 20781 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 20782 }, 20783 getFormattedFinalPrice() { 20784 return hyva.formatPrice( 20785 this.calculatedFinalPriceWithCustomOptions || 20786 this.calculatedFinalPrice || 20787 this.initialFinalPrice 20788 ) 20789 }, 20790 isPriceHidden() { 20791 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 20792 this.calculatedFinalPrice || 20793 this.initialFinalPrice; 20794 return false && finalPrice === 0; 20795 }, 20796 eventListeners: { 20797 ['@update-prices-24.window'](event) { 20798 this.activeProductsPriceData = event.detail; 20799 20800 this.calculateFinalPrice(); 20801 this.calculateFinalPriceWithCustomOptions(); 20802 this.calculatePriceLabelVisibility(); 20803 }, 20804 ['@update-qty-24.window'](event) { 20805 this.qty = event.detail; 20806 this.calculateFinalPrice(); 20807 this.calculateFinalPriceWithCustomOptions(); 20808 }, 20809 ['@update-custom-option-active.window'](event) { 20810 this.updateCustomOptionActive(event.detail); 20811 }, 20812 ['@update-custom-option-prices.window'](event) { 20813 this.updateCustomOptionPrices(event.detail); 20814 }, 20815 } 20816 } 20817 } 20818</script>
20818 20819<div x-data="initPrice24()" 20820 x-bind="eventListeners" 20821 class="price-box price-final_price" 20822> 20823 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 20824 <div class="price-container"> 20825 20826 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 20827 <span id="product-price-24" 20828 class="price-wrapper font-bold text-3xl text-secondary-800"> 20829 <span class="price" x-html="getFormattedFinalPrice()"> 20830 <span class="price">â¬Â 8,93</span> </span> 20831 </span> 20832 <meta itemprop="price" content="8.93"> 20833 <meta itemprop="priceCurrency" 20834 content="EUR"> 20835 </div> 20836 </div> 20837 </div> 20838 <template x-if="activeProductsPriceData && 20839 activeProductsPriceData.oldPrice && 20840 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 20841 "> 20842 <div class="old-price flex mr-2"> 20843 <span id="product-price-24" 20844 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 20845 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 20846 </span> 20847 </div> 20848 </template> 20849 <template x-if="activeProductsPriceData"> 20850 <div class="final-price inline-block"> 20851 <span id="product-price-24" 20852 class="price-wrapper font-bold text-3xl text-secondary-800"> 20853 <span class="price" x-html="getFormattedFinalPrice()"></span> 20854 </span> 20855 </div> 20856 </template> 20857 </div> 20858 </div> 20859 </div> 20860 20861 <div class="tier-price-popup lg:w-1/2"> 20862 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-extra"> 20863 <strong class="text-2xl"> 20864 TENA Discreet Extra </strong> 20865 </a> 20866 20867
20867<script> 20868 function initTierPrice24() { 20869 return { 20870 qty: 1, 20871 minSalesQty: 1, 20872 isStandardSelected() { 20873 return this.qty < 10; 20874 }, 20875 eventListeners: { 20876 ['@update-qty-24.window'](event) { 20877 if (this.qty !== event.detail) { 20878 this.qty = event.detail; 20879 } 20880 } 20881 } 20882 } 20883 } 20884 </script>
20884 20885 <div class="prices-tier items mb-4" 20886 x-data="initTierPrice24()" 20887 x-bind="eventListeners" 20888 > 20889 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 20890 :class="{'active-tier-price24 border-green-600 shadow-hard': 20891 qty >= 10 && qty < 20}" 20892 @click="$dispatch('update-qty-24', 10);" 20893 data-qty="10" 20894 > 20895 20896 <div class="flex flex-row items-center"> 20897 <div class="flex flex-col flex-grow"> 20898 <div class="flex flex-row items-center justify-between"> 20899 <div class="flex items-center space-x-2"> 20900 <div class="price-container font-bold text-lg"> 20901 <span 20902 class="price-container price-tier_price tax weee" 20903 > 20904 <span data-price-amount="7.63" 20905 data-price-type="" 20906 class="price-wrapper " 20907 ><span class="price">â¬Â 7,63</span></span> 20908 </span> 20909 </div> 20910 <span class="ml-2 text-base"> 20911 per stuk </span> 20912 </div> 20913 <span> 20914 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 15</span>%</strong> </span> 20915 </div> 20916 20917 <div class="mt-1"> 20918 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 20919 <span>10 verpakkingen</span> </span> 20920 </div> 20921 </div> 20922 </div> 20923 </div> 20924 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 20925 :class="{'active-tier-price24 border-green-600 shadow-hard': 20926 qty >= 20 && qty < 10000}" 20927 @click="$dispatch('update-qty-24', 20);" 20928 data-qty="20" 20929 > 20930 20931 <div class="flex flex-row items-center"> 20932 <div class="flex flex-col flex-grow"> 20933 <div class="flex flex-row items-center justify-between"> 20934 <div class="flex items-center space-x-2"> 20935 <div class="price-container font-bold text-lg"> 20936 <span 20937 x-data x-id="['1']" class="price-container price-tier_price tax weee" 20938 > 20939 <span :id="$id('1')" data-price-amount="7.37" 20940 data-price-type="" 20941 class="price-wrapper " 20942 ><span class="price">â¬Â 7,37</span></span> 20943 </span> 20944 </div> 20945 <span class="ml-2 text-base"> 20946 per stuk </span> 20947 </div> 20948 <span 20949 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 20950 <strong>Voordeligste keuze</strong> 20951 </span> 20952 <span> 20953 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 17</span>%</strong> </span> 20954 </div> 20955 20956 <div class="mt-1">
20957 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 20958 <span>20 verpakkingen</span> </span> 20959 </div> 20960 </div> 20961 </div> 20962 <div class="choice-mobile mt-4 xl:hidden"> 20963 <hr class="p-2"> 20964 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 20965 <strong>Voordeligste keuze</strong> 20966 </span> 20967 </div> 20968 </div> 20969 20970 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 20971 :class="{'active-tier-price24 border-green-600 shadow-hard': isStandardSelected() }" 20972 @click="$dispatch('update-qty-24', minSalesQty);" 20973 > 20974 <div class="flex flex-row items-center"> 20975 <div class="flex flex-col flex-grow"> 20976 <div class="flex flex-row items-center"> 20977 <div class="flex items-center space-x-2"> 20978 <div class="price-container font-bold text-lg"> 20979 <span class="price">â¬Â 8,93</span> </div> 20980 <span class="ml-2 text-base"> 20981 per stuk </span> 20982 </div> 20983 <strong class="ml-auto text-gray-500"> 20984 Standaard </strong> 20985 </div> 20986 20987 <div class="mt-1"> 20988 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 20989 <span>1 verpakking</span> </span> 20990 </div> 20991 </div> 20992 </div> 20993 </div> 20994 20995 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 20996 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 20997 x-show="isStandardSelected() && true" 20998 x-cloak> 20999 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 21000 <div class="ml-6 text-sm opacity-90"> 21001 <strong>Let op:</strong> 21002 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 21003 <div class="ml-6 text-sm leading-snug opacity-60"> 21004 Kies een andere optie voor extra voordeel! </div> 21005 </div> 21006 </div> 21007 21008 <div class="hidden lg:block"> 21009
21009<script> 21010 function initPrice24() { 21011 21012 const regularPriceInclTaxKey = 'oldPrice', 21013 regularPriceExclTaxKey = 'baseOldPrice', 21014 finalPriceInclTaxKey = 'finalPrice', 21015 finalPriceExclTaxKey = 'basePrice'; 21016 21017 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 21018 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 21019 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 21020 if (customOptionPrice) { 21021 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 21022 } 21023 return priceAccumulator; 21024 }, 0); 21025 } 21026 21027 return { 21028 regularPriceKey: regularPriceInclTaxKey, 21029 finalPriceKey: finalPriceInclTaxKey, 21030 activeProductsPriceData: false, 21031 initialFinalPrice: 8.93, 21032 calculatedFinalPrice: false, 21033 calculatedFinalPriceWithCustomOptions: false, 21034 initialTierPrices: [{"price_id":"1549","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"24","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1630","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"24","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 21035 showRegularPriceLabel: false, 21036 customOptionPrices: [], 21037 activeCustomOptions: [], 21038 qty: 1, 21039 updateCustomOptionActive(data) { 21040 let activeCustomOptions = this.activeCustomOptions; 21041 const customOptionId = data.customOptionId; 21042 21043 if (data.active) { 21044 if (!activeCustomOptions.includes(customOptionId)) { 21045 activeCustomOptions.push(data.customOptionId); 21046 } 21047 } else { 21048 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 21049 let index = activeCustomOptions.indexOf(customOptionId); 21050 activeCustomOptions.splice(index, 1); 21051 } 21052 } 21053 this.calculateFinalPriceWithCustomOptions() 21054 }, 21055 updateCustomOptionPrices(prices, basePrices) { 21056 if (prices) { 21057 this.customOptionPrices = prices; 21058 } 21059 21060 21061 this.calculateFinalPriceWithCustomOptions(); 21062 }, 21063 calculateFinalPrice() { 21064 21065 const getOptionTierPrice = (tierPrice, withTax) => { 21066 return tierPrice[withTax ? 'price' : 'basePrice']; 21067 } 21068 21069 const findApplicableTierPrice = (initialPrice, withTax) => { 21070 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 21071 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 21072 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 21073 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 21074 return tierPriceCandidate; 21075 } 21076 return acc; 21077 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 21078 21079 } else { 21080 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 21081 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 21082 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 21083 return tierPrice[key]; 21084 } 21085 return acc; 21086 }, initialPrice); 21087 21088 } 21089 } 21090 21091 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 21092 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 21093 21094 },
21095 calculatePriceLabelVisibility() { 21096 this.showRegularPriceLabel = 21097 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 21098 this.activeProductsPriceData.isMinimalPrice; 21099 }, 21100 calculateFinalPriceWithCustomOptions() { 21101 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 21102 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 21103 }, 21104 getCustomOptionPrice() { 21105 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 21106 }, 21107 getFormattedFinalPrice() { 21108 return hyva.formatPrice( 21109 this.calculatedFinalPriceWithCustomOptions || 21110 this.calculatedFinalPrice || 21111 this.initialFinalPrice 21112 ) 21113 }, 21114 isPriceHidden() { 21115 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 21116 this.calculatedFinalPrice || 21117 this.initialFinalPrice; 21118 return false && finalPrice === 0; 21119 }, 21120 eventListeners: { 21121 ['@update-prices-24.window'](event) { 21122 this.activeProductsPriceData = event.detail; 21123 21124 this.calculateFinalPrice(); 21125 this.calculateFinalPriceWithCustomOptions(); 21126 this.calculatePriceLabelVisibility(); 21127 }, 21128 ['@update-qty-24.window'](event) { 21129 this.qty = event.detail; 21130 this.calculateFinalPrice(); 21131 this.calculateFinalPriceWithCustomOptions(); 21132 }, 21133 ['@update-custom-option-active.window'](event) { 21134 this.updateCustomOptionActive(event.detail); 21135 }, 21136 ['@update-custom-option-prices.window'](event) { 21137 this.updateCustomOptionPrices(event.detail); 21138 }, 21139 } 21140 } 21141 } 21142</script>
21142 21143<div x-data="initPrice24()" 21144 x-bind="eventListeners" 21145 class="price-box price-final_price" 21146> 21147 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 21148 <div class="price-container"> 21149 21150 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 21151 <span id="product-price-24" 21152 class="price-wrapper font-bold text-3xl text-secondary-800"> 21153 <span class="price" x-html="getFormattedFinalPrice()"> 21154 <span class="price">â¬Â 8,93</span> </span> 21155 </span> 21156 <meta itemprop="price" content="8.93"> 21157 <meta itemprop="priceCurrency" 21158 content="EUR"> 21159 </div> 21160 </div> 21161 </div> 21162 <template x-if="activeProductsPriceData && 21163 activeProductsPriceData.oldPrice && 21164 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 21165 "> 21166 <div class="old-price flex mr-2"> 21167 <span id="product-price-24" 21168 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 21169 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 21170 </span> 21171 </div> 21172 </template> 21173 <template x-if="activeProductsPriceData"> 21174 <div class="final-price inline-block"> 21175 <span id="product-price-24" 21176 class="price-wrapper font-bold text-3xl text-secondary-800"> 21177 <span class="price" x-html="getFormattedFinalPrice()"></span> 21178 </span> 21179 </div> 21180 </template> 21181 </div> 21182 </div> 21183 </div> 21184</div> 21185 21186<div class="flex flex-col items-center"> 21187 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 21188 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 21189 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 21190<title>In Winkelmand</title></svg> 21191 In Winkelmand </button> 21192 21193 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 21194 Nee, vandaag niet </button> 21195</div> 21196 </div> 21197 </div> 21198 </div> 21199 21200 <button @click="show('dialog6ac3024e86f2d', this.$event || $event)" 21201 class="btn btn-primary lg:w-full" 21202 type="button" 21203 aria-haspopup="dialog" 21204 > 21205 Kies uw voordeel </button> 21206 </div> 21207 </div> 21208 21209 <div class="flex items-center gap-1 lg:hidden"> 21210 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 21211 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 21212 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 21213 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 21214<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
21215 <span> 21216 Tot 22:30 uur besteld = morgen in huis <span 21217 class="absolute group cursor-pointer inline-flex items-center justify-center"> 21218 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 21219 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 21220<title/></svg> 21221 <span class="absolute top-full left-1/2 -translate-x-[80%] 21222 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 21223 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 21224 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 21225 </span> 21226 </span> 21227 </div> 21228 </div> 21229</form> 21230 </li> 21231 <li> 21232
21232<script> 21233 function initQtyFromTier320() { 21234 return { 21235 qty: 1, 21236 updateQty(event) { 21237 this.qty = event.detail; 21238 } 21239 } 21240 } 21241</script>
21241 21242 21243<form method="post" 21244 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/320/" 21245 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 21246 x-data="initQtyFromTier320()" 21247 @update-qty-320="updateQty(event)" 21248 21249 > 21250 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="320"/> 21251 <input type="hidden" 21252 name="qty" 21253 id="qty[320]" 21254 :value="qty" 21255 x-model.number="qty" 21256 /> 21257 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 21258 <a href="https://www.123drogisterij.nl/tena-lady-super" 21259 title="TENA Lady Super" 21260 class="product photo product-item-photo block w-1/3 lg:w-1/4" 21261 tabindex="-1" 21262 > 21263 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_lady_super_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-320.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_lady_super_3.png" loading="lazy" width="187" height="234" alt="Tena Lady Super" title="Tena Lady Super" loading="lazy" /></picture> 21264 </a> 21265 21266 <div class="w-2/3 lg:mx-8"> 21267 <strong> 21268 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 21269 href="https://www.123drogisterij.nl/tena-lady-super" 21270 :id="`slide-desc-320-${$id('slider-id')}`" 21271 > 21272 TENA Lady Super </a> 21273 </strong> 21274 21275 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 21276 <span class="block text-gray-500 mb-1"> 21277 Artikelnummer: 761730 </span> 21278 21279 <span class="block text-gray-500 mb-1 lg:text-md"> 21280 Verpakking: 30 stuks </span> 21281 </div> 21282 21283 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 21284 Absorptievermogen: 21285 <div class="flex gap-2"> 21286 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21287 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21288 </svg> 21289 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21290 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21291 </svg> 21292 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21293 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21294 </svg> 21295 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21296 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21297 </svg> 21298 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21299 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
21299697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21300 </svg> 21301 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21302 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21303 </svg> 21304 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21305 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21306 </svg> 21307 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21308 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21309 </svg> 21310 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21311 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21312 </svg> 21313 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21314 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21315 </svg> 21316 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 21317 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 21318 </svg> 21319 </div> 21320 </span> 21321 21322 <div class="lg:hidden"> 21323 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 21324 " 21325 title="Beschikbaarheid" 21326 > 21327 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 21328 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 21329<title>check-circle</title></svg> 21330Op voorraad </p> 21331 </div> 21332 21333 <div class="hidden lg:block" 21334 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 21335 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
21336 content = trimToSentence(originalContent, maxLength); 21337 isVisible = false"; 21338 > 21339 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 21340 TENA Lady Super is geschikt bij verlies van flinke scheuten urine. Ook voor het licht verlies van ontlasting. Dit product heeft een Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. De lengte-elastieken zorgen ervoor dat het goed op het lichaam aansluit. Het heeft een afmeting van 20 x 43 centimeter en neemt 900 milliliter op. </div> 21341 21342 <div class="prose md:prose-base text-md" x-show="isVisible"> 21343 TENA Lady Super is geschikt bij verlies van flinke scheuten urine. Ook voor het licht verlies van ontlasting. Dit product heeft een Dry Fast Core en geeft een fris gevoel dankzij T </div> 21344 21345 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 21346 @click="isCollapsed = !isCollapsed" 21347 x-show="originalContent.length > maxLength ? true : false" 21348 type="button" 21349 > 21350 <span x-text="isCollapsed ? 21351 'Lees minder' : 21352 'Lees meer'" 21353 ></span> 21354 </button> 21355 </div> 21356 </div> 21357 </div> 21358 21359 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 21360 <div class="lg:hidden" 21361 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 21362 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
21363 content = trimToSentence(originalContent, maxLength); 21364 isVisible = false"; 21365 > 21366 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 21367 TENA Lady Super is geschikt bij verlies van flinke scheuten urine. Ook voor het licht verlies van ontlasting. Dit product heeft een Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. De lengte-elastieken zorgen ervoor dat het goed op het lichaam aansluit. Het heeft een afmeting van 20 x 43 centimeter en neemt 900 milliliter op. </div> 21368 21369 <div class="prose md:prose-base" x-show="isVisible"> 21370 TENA Lady Super is geschikt bij verlies van flinke scheuten urine. Ook voor het licht verlies van ontlasting. Dit product heeft een Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh </div> 21371 21372 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 21373 @click="isCollapsed = !isCollapsed" 21374 x-show="originalContent.length > maxLength ? true : false" 21375 type="button" 21376 > 21377 <span x-text="isCollapsed ? 21378 'Lees minder' : 21379 'Lees meer'" 21380 ></span> 21381 </button> 21382 </div> 21383 21384 21385 <div class="hidden lg:block lg:text-md"> 21386 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 21387 " 21388 title="Beschikbaarheid" 21389 > 21390 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 21391 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 21392<title>check-circle</title></svg> 21393Op voorraad </p> 21394 </div> 21395 21396 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 21397 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 21398 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 21399 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 21400 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 21401<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 21402 <span> 21403 Tot 22:30 uur besteld = morgen in huis <span 21404 class="absolute group cursor-pointer inline-flex"> 21405 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 21406 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 21407<title/></svg> 21408 <span class="absolute top-full left-1/2 -translate-x-[80%] 21409 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 21410 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 21411 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 21412 </span> 21413 </span> 21414 </div> 21415 21416 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 21417 <div class="pt-1 text-gray-900" 21418 x-data="initPriceBox()" 21419 x-defer="intersect" 21420 @update-prices-320.window="updatePrice($event.detail);" 21421 > 21422 <div class="price-box price-final_price" data-role="priceBox" data-product-id="320" data-price-box="product-id-320"> 21423 21424 <span
21425 x-data x-id="['product\u002Dprice\u002D320']" class="price-container price-final_price tax weee" 21426 > 21427 <span :id="$id('product\u002Dprice\u002D320')" data-price-amount="19.12" 21428 data-price-type="finalPrice" 21429 class="price-wrapper " 21430 ><span class="price">â¬Â 19,12</span></span> 21431 </span> 21432 21433 <span class="minimal-price-link"> 21434 <span 21435 x-data x-id="['320']" class="price-container price-final_price tax weee" 21436 > 21437 <span class="price-label">Vanaf</span> 21438 <span :id="$id('320')" data-price-amount="16.54" 21439 data-price-type="" 21440 class="price-wrapper " 21441 >â¬Â 16,54</span> 21442 </span> 21443 </span> 21444</div> </div> 21445 21446 <div x-data="hyva.modal()" class="lg:w-full"> 21447 <div x-cloak data-dialog-ref-name="dialog6ac3024e8ca36" 21448 x-bind="overlay" 21449 class="fixed inset-0 bg-black/50 z-50"> 21450 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 21451 <div x-ref="dialog6ac3024e8ca36" role="dialog" aria-modal="true" 21452 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 21453 21454<button @click="hide" type="button"> 21455 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 21456 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 21457<title>Sluiten</title></svg> 21458</button> 21459 21460<h2 class="text-primary-500 text-center mb-4"> 21461 Extra besparen?</h2> 21462 21463<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 21464 <div class="flex gap-2 mb-4"> 21465 <a href="https://www.123drogisterij.nl/tena-lady-super" 21466 title="TENA Lady Super" 21467 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 21468 tabindex="-1" 21469 > 21470 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_lady_super_3.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-320.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_lady_super_3.png" loading="lazy" width="261" height="261" alt="Tena Lady Super" title="Tena Lady Super" loading="lazy" /></picture> 21471 </a> 21472 21473 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 21474 <a href="https://www.123drogisterij.nl/tena-lady-super"> 21475 <strong class="text-xl"> 21476 TENA Lady Super </strong> 21477 </a> 21478 21479
21479<script> 21480 function initPrice320() { 21481 21482 const regularPriceInclTaxKey = 'oldPrice', 21483 regularPriceExclTaxKey = 'baseOldPrice', 21484 finalPriceInclTaxKey = 'finalPrice', 21485 finalPriceExclTaxKey = 'basePrice'; 21486 21487 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 21488 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 21489 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 21490 if (customOptionPrice) { 21491 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 21492 } 21493 return priceAccumulator; 21494 }, 0); 21495 } 21496 21497 return { 21498 regularPriceKey: regularPriceInclTaxKey, 21499 finalPriceKey: finalPriceInclTaxKey, 21500 activeProductsPriceData: false, 21501 initialFinalPrice: 19.12, 21502 calculatedFinalPrice: false, 21503 calculatedFinalPriceWithCustomOptions: false, 21504 initialTierPrices: [{"price_id":"1551","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"320","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606}], 21505 showRegularPriceLabel: false, 21506 customOptionPrices: [], 21507 activeCustomOptions: [], 21508 qty: 1, 21509 updateCustomOptionActive(data) { 21510 let activeCustomOptions = this.activeCustomOptions; 21511 const customOptionId = data.customOptionId; 21512 21513 if (data.active) { 21514 if (!activeCustomOptions.includes(customOptionId)) { 21515 activeCustomOptions.push(data.customOptionId); 21516 } 21517 } else { 21518 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 21519 let index = activeCustomOptions.indexOf(customOptionId); 21520 activeCustomOptions.splice(index, 1); 21521 } 21522 } 21523 this.calculateFinalPriceWithCustomOptions() 21524 }, 21525 updateCustomOptionPrices(prices, basePrices) { 21526 if (prices) { 21527 this.customOptionPrices = prices; 21528 } 21529 21530 21531 this.calculateFinalPriceWithCustomOptions(); 21532 }, 21533 calculateFinalPrice() { 21534 21535 const getOptionTierPrice = (tierPrice, withTax) => { 21536 return tierPrice[withTax ? 'price' : 'basePrice']; 21537 } 21538 21539 const findApplicableTierPrice = (initialPrice, withTax) => { 21540 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 21541 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 21542 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 21543 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 21544 return tierPriceCandidate; 21545 } 21546 return acc; 21547 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 21548 21549 } else { 21550 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 21551 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 21552 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 21553 return tierPrice[key]; 21554 } 21555 return acc; 21556 }, initialPrice); 21557 21558 } 21559 } 21560 21561 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 21562 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 21563 21564 },
21565 calculatePriceLabelVisibility() { 21566 this.showRegularPriceLabel = 21567 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 21568 this.activeProductsPriceData.isMinimalPrice; 21569 }, 21570 calculateFinalPriceWithCustomOptions() { 21571 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 21572 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 21573 }, 21574 getCustomOptionPrice() { 21575 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 21576 }, 21577 getFormattedFinalPrice() { 21578 return hyva.formatPrice( 21579 this.calculatedFinalPriceWithCustomOptions || 21580 this.calculatedFinalPrice || 21581 this.initialFinalPrice 21582 ) 21583 }, 21584 isPriceHidden() { 21585 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 21586 this.calculatedFinalPrice || 21587 this.initialFinalPrice; 21588 return false && finalPrice === 0; 21589 }, 21590 eventListeners: { 21591 ['@update-prices-320.window'](event) { 21592 this.activeProductsPriceData = event.detail; 21593 21594 this.calculateFinalPrice(); 21595 this.calculateFinalPriceWithCustomOptions(); 21596 this.calculatePriceLabelVisibility(); 21597 }, 21598 ['@update-qty-320.window'](event) { 21599 this.qty = event.detail; 21600 this.calculateFinalPrice(); 21601 this.calculateFinalPriceWithCustomOptions(); 21602 }, 21603 ['@update-custom-option-active.window'](event) { 21604 this.updateCustomOptionActive(event.detail); 21605 }, 21606 ['@update-custom-option-prices.window'](event) { 21607 this.updateCustomOptionPrices(event.detail); 21608 }, 21609 } 21610 } 21611 } 21612</script>
21612 21613<div x-data="initPrice320()" 21614 x-bind="eventListeners" 21615 class="price-box price-final_price" 21616> 21617 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 21618 <div class="price-container"> 21619 21620 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 21621 <span id="product-price-320" 21622 class="price-wrapper font-bold text-3xl text-secondary-800"> 21623 <span class="price" x-html="getFormattedFinalPrice()"> 21624 <span class="price">â¬Â 19,12</span> </span> 21625 </span> 21626 <meta itemprop="price" content="19.12"> 21627 <meta itemprop="priceCurrency" 21628 content="EUR"> 21629 </div> 21630 </div> 21631 </div> 21632 <template x-if="activeProductsPriceData && 21633 activeProductsPriceData.oldPrice && 21634 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 21635 "> 21636 <div class="old-price flex mr-2"> 21637 <span id="product-price-320" 21638 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 21639 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 21640 </span> 21641 </div> 21642 </template> 21643 <template x-if="activeProductsPriceData"> 21644 <div class="final-price inline-block"> 21645 <span id="product-price-320" 21646 class="price-wrapper font-bold text-3xl text-secondary-800"> 21647 <span class="price" x-html="getFormattedFinalPrice()"></span> 21648 </span> 21649 </div> 21650 </template> 21651 </div> 21652 </div> 21653 </div> 21654 21655 <div class="tier-price-popup lg:w-1/2"> 21656 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-lady-super"> 21657 <strong class="text-2xl"> 21658 TENA Lady Super </strong> 21659 </a> 21660 21661
21661<script> 21662 function initTierPrice320() { 21663 return { 21664 qty: 1, 21665 minSalesQty: 1, 21666 isStandardSelected() { 21667 return this.qty < 5; 21668 }, 21669 eventListeners: { 21670 ['@update-qty-320.window'](event) { 21671 if (this.qty !== event.detail) { 21672 this.qty = event.detail; 21673 } 21674 } 21675 } 21676 } 21677 } 21678 </script>
21678 21679 <div class="prices-tier items mb-4" 21680 x-data="initTierPrice320()" 21681 x-bind="eventListeners" 21682 > 21683 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 21684 :class="{'active-tier-price320 border-green-600 shadow-hard': 21685 qty >= 5 && qty < 10000}" 21686 @click="$dispatch('update-qty-320', 5);" 21687 data-qty="5" 21688 > 21689 21690 <div class="flex flex-row items-center"> 21691 <div class="flex flex-col flex-grow"> 21692 <div class="flex flex-row items-center justify-between"> 21693 <div class="flex items-center space-x-2"> 21694 <div class="price-container font-bold text-lg"> 21695 <span 21696 class="price-container price-tier_price tax weee" 21697 > 21698 <span data-price-amount="16.54" 21699 data-price-type="" 21700 class="price-wrapper " 21701 ><span class="price">â¬Â 16,54</span></span> 21702 </span> 21703 </div> 21704 <span class="ml-2 text-base"> 21705 per stuk </span> 21706 </div> 21707 <span 21708 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 21709 <strong>Voordeligste keuze</strong> 21710 </span> 21711 <span> 21712 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 13</span>%</strong> </span> 21713 </div> 21714 21715 <div class="mt-1"> 21716 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 21717 <span>5 verpakkingen</span> </span> 21718 </div> 21719 </div> 21720 </div> 21721 <div class="choice-mobile mt-4 xl:hidden"> 21722 <hr class="p-2"> 21723 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 21724 <strong>Voordeligste keuze</strong> 21725 </span> 21726 </div> 21727 </div> 21728 21729 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 21730 :class="{'active-tier-price320 border-green-600 shadow-hard': isStandardSelected() }" 21731 @click="$dispatch('update-qty-320', minSalesQty);" 21732 > 21733 <div class="flex flex-row items-center"> 21734 <div class="flex flex-col flex-grow"> 21735 <div class="flex flex-row items-center"> 21736 <div class="flex items-center space-x-2"> 21737 <div class="price-container font-bold text-lg"> 21738 <span class="price">â¬Â 19,12</span> </div> 21739 <span class="ml-2 text-base"> 21740 per stuk </span> 21741 </div> 21742 <strong class="ml-auto text-gray-500"> 21743 Standaard </strong> 21744 </div> 21745 21746 <div class="mt-1"> 21747 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 21748 <span>1 verpakking</span> </span> 21749 </div> 21750 </div> 21751 </div> 21752 </div> 21753 21754 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-trans
21754parent before:border-b-primary-500 21755 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 21756 x-show="isStandardSelected() && true" 21757 x-cloak> 21758 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 21759 <div class="ml-6 text-sm opacity-90"> 21760 <strong>Let op:</strong> 21761 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 21762 <div class="ml-6 text-sm leading-snug opacity-60"> 21763 Kies een andere optie voor extra voordeel! </div> 21764 </div> 21765 </div> 21766 21767 <div class="hidden lg:block"> 21768
21768<script> 21769 function initPrice320() { 21770 21771 const regularPriceInclTaxKey = 'oldPrice', 21772 regularPriceExclTaxKey = 'baseOldPrice', 21773 finalPriceInclTaxKey = 'finalPrice', 21774 finalPriceExclTaxKey = 'basePrice'; 21775 21776 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 21777 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 21778 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 21779 if (customOptionPrice) { 21780 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 21781 } 21782 return priceAccumulator; 21783 }, 0); 21784 } 21785 21786 return { 21787 regularPriceKey: regularPriceInclTaxKey, 21788 finalPriceKey: finalPriceInclTaxKey, 21789 activeProductsPriceData: false, 21790 initialFinalPrice: 19.12, 21791 calculatedFinalPrice: false, 21792 calculatedFinalPriceWithCustomOptions: false, 21793 initialTierPrices: [{"price_id":"1551","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":5,"percentage_value":null,"product_id":"320","website_price":16.54,"price_incl_tax":16.54,"price_excl_tax":15.174310926606}], 21794 showRegularPriceLabel: false, 21795 customOptionPrices: [], 21796 activeCustomOptions: [], 21797 qty: 1, 21798 updateCustomOptionActive(data) { 21799 let activeCustomOptions = this.activeCustomOptions; 21800 const customOptionId = data.customOptionId; 21801 21802 if (data.active) { 21803 if (!activeCustomOptions.includes(customOptionId)) { 21804 activeCustomOptions.push(data.customOptionId); 21805 } 21806 } else { 21807 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 21808 let index = activeCustomOptions.indexOf(customOptionId); 21809 activeCustomOptions.splice(index, 1); 21810 } 21811 } 21812 this.calculateFinalPriceWithCustomOptions() 21813 }, 21814 updateCustomOptionPrices(prices, basePrices) { 21815 if (prices) { 21816 this.customOptionPrices = prices; 21817 } 21818 21819 21820 this.calculateFinalPriceWithCustomOptions(); 21821 }, 21822 calculateFinalPrice() { 21823 21824 const getOptionTierPrice = (tierPrice, withTax) => { 21825 return tierPrice[withTax ? 'price' : 'basePrice']; 21826 } 21827 21828 const findApplicableTierPrice = (initialPrice, withTax) => { 21829 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 21830 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 21831 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 21832 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 21833 return tierPriceCandidate; 21834 } 21835 return acc; 21836 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 21837 21838 } else { 21839 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 21840 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 21841 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 21842 return tierPrice[key]; 21843 } 21844 return acc; 21845 }, initialPrice); 21846 21847 } 21848 } 21849 21850 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 21851 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 21852 21853 },
21854 calculatePriceLabelVisibility() { 21855 this.showRegularPriceLabel = 21856 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 21857 this.activeProductsPriceData.isMinimalPrice; 21858 }, 21859 calculateFinalPriceWithCustomOptions() { 21860 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 21861 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 21862 }, 21863 getCustomOptionPrice() { 21864 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 21865 }, 21866 getFormattedFinalPrice() { 21867 return hyva.formatPrice( 21868 this.calculatedFinalPriceWithCustomOptions || 21869 this.calculatedFinalPrice || 21870 this.initialFinalPrice 21871 ) 21872 }, 21873 isPriceHidden() { 21874 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 21875 this.calculatedFinalPrice || 21876 this.initialFinalPrice; 21877 return false && finalPrice === 0; 21878 }, 21879 eventListeners: { 21880 ['@update-prices-320.window'](event) { 21881 this.activeProductsPriceData = event.detail; 21882 21883 this.calculateFinalPrice(); 21884 this.calculateFinalPriceWithCustomOptions(); 21885 this.calculatePriceLabelVisibility(); 21886 }, 21887 ['@update-qty-320.window'](event) { 21888 this.qty = event.detail; 21889 this.calculateFinalPrice(); 21890 this.calculateFinalPriceWithCustomOptions(); 21891 }, 21892 ['@update-custom-option-active.window'](event) { 21893 this.updateCustomOptionActive(event.detail); 21894 }, 21895 ['@update-custom-option-prices.window'](event) { 21896 this.updateCustomOptionPrices(event.detail); 21897 }, 21898 } 21899 } 21900 } 21901</script>
21901 21902<div x-data="initPrice320()" 21903 x-bind="eventListeners" 21904 class="price-box price-final_price" 21905> 21906 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 21907 <div class="price-container"> 21908 21909 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 21910 <span id="product-price-320" 21911 class="price-wrapper font-bold text-3xl text-secondary-800"> 21912 <span class="price" x-html="getFormattedFinalPrice()"> 21913 <span class="price">â¬Â 19,12</span> </span> 21914 </span> 21915 <meta itemprop="price" content="19.12"> 21916 <meta itemprop="priceCurrency" 21917 content="EUR"> 21918 </div> 21919 </div> 21920 </div> 21921 <template x-if="activeProductsPriceData && 21922 activeProductsPriceData.oldPrice && 21923 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 21924 "> 21925 <div class="old-price flex mr-2"> 21926 <span id="product-price-320" 21927 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 21928 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 21929 </span> 21930 </div> 21931 </template> 21932 <template x-if="activeProductsPriceData"> 21933 <div class="final-price inline-block"> 21934 <span id="product-price-320" 21935 class="price-wrapper font-bold text-3xl text-secondary-800"> 21936 <span class="price" x-html="getFormattedFinalPrice()"></span> 21937 </span> 21938 </div> 21939 </template> 21940 </div> 21941 </div> 21942 </div> 21943</div> 21944 21945<div class="flex flex-col items-center"> 21946 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 21947 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 21948 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 21949<title>In Winkelmand</title></svg> 21950 In Winkelmand </button> 21951 21952 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 21953 Nee, vandaag niet </button> 21954</div> 21955 </div> 21956 </div> 21957 </div> 21958 21959 <button @click="show('dialog6ac3024e8ca36', this.$event || $event)" 21960 class="btn btn-primary lg:w-full" 21961 type="button" 21962 aria-haspopup="dialog" 21963 > 21964 Kies uw voordeel </button> 21965 </div> 21966 </div> 21967 21968 <div class="flex items-center gap-1 lg:hidden"> 21969 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 21970 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 21971 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 21972 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 21973<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
21974 <span> 21975 Tot 22:30 uur besteld = morgen in huis <span 21976 class="absolute group cursor-pointer inline-flex items-center justify-center"> 21977 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 21978 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 21979<title/></svg> 21980 <span class="absolute top-full left-1/2 -translate-x-[80%] 21981 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 21982 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 21983 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 21984 </span> 21985 </span> 21986 </div> 21987 </div> 21988</form> 21989 </li> 21990 <li> 21991
21991<script> 21992 function initQtyFromTier1644() { 21993 return { 21994 qty: 1, 21995 updateQty(event) { 21996 this.qty = event.detail; 21997 } 21998 } 21999 } 22000</script>
22000 22001 22002<form method="post" 22003 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1644/" 22004 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 22005 x-data="initQtyFromTier1644()" 22006 @update-qty-1644="updateQty(event)" 22007 22008 > 22009 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="1644"/> 22010 <input type="hidden" 22011 name="qty" 22012 id="qty[1644]" 22013 :value="qty" 22014 x-model.number="qty" 22015 /> 22016 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 22017 <a href="https://www.123drogisterij.nl/tena-discreet-normaal" 22018 title="TENA Discreet Normaal" 22019 class="product photo product-item-photo block w-1/3 lg:w-1/4" 22020 tabindex="-1" 22021 > 22022 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_normal_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1644.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_normal_2.jpg" loading="lazy" width="187" height="234" alt="^** TENA Discreet Normal" title="^** TENA Discreet Normal" loading="lazy" /></picture> 22023 </a> 22024 22025 <div class="w-2/3 lg:mx-8"> 22026 <strong> 22027 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 22028 href="https://www.123drogisterij.nl/tena-discreet-normaal" 22029 :id="`slide-desc-1644-${$id('slider-id')}`" 22030 > 22031 TENA Discreet Normaal </a> 22032 </strong> 22033 22034 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 22035 <span class="block text-gray-500 mb-1"> 22036 Artikelnummer: 760806 </span> 22037 22038 <span class="block text-gray-500 mb-1 lg:text-md"> 22039 Verpakking: 24 stuks </span> 22040 </div> 22041 22042 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 22043 Absorptievermogen: 22044 <div class="flex gap-2"> 22045 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22046 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22047 </svg> 22048 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22049 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22050 </svg> 22051 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22052 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22053 </svg> 22054 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22055 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22056 </svg> 22057 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22058 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
22058697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22059 </svg> 22060 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22061 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22062 </svg> 22063 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22064 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22065 </svg> 22066 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22067 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22068 </svg> 22069 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22070 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22071 </svg> 22072 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22073 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22074 </svg> 22075 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22076 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22077 </svg> 22078 </div> 22079 </span> 22080 22081 <div class="lg:hidden"> 22082 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 22083 " 22084 title="Beschikbaarheid" 22085 > 22086 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 22087 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 22088<title>check-circle</title></svg> 22089Op voorraad </p> 22090 </div> 22091 22092 <div class="hidden lg:block" 22093 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 22094 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
22095 content = trimToSentence(originalContent, maxLength); 22096 isVisible = false"; 22097 > 22098 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 22099 TENA Discreet Normal is een inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt lekken. Het product heeft een opname van 300 milliliter. De afmeting is 10 bij 27.5 centimeter. </div> 22100 22101 <div class="prose md:prose-base text-md" x-show="isVisible"> 22102 TENA Discreet Normal is een inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus voo </div> 22103 22104 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 22105 @click="isCollapsed = !isCollapsed" 22106 x-show="originalContent.length > maxLength ? true : false" 22107 type="button" 22108 > 22109 <span x-text="isCollapsed ? 22110 'Lees minder' : 22111 'Lees meer'" 22112 ></span> 22113 </button> 22114 </div> 22115 </div> 22116 </div> 22117 22118 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 22119 <div class="lg:hidden" 22120 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 22121 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
22122 content = trimToSentence(originalContent, maxLength); 22123 isVisible = false"; 22124 > 22125 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 22126 TENA Discreet Normal is een inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt lekken. Het product heeft een opname van 300 milliliter. De afmeting is 10 bij 27.5 centimeter. </div> 22127 22128 <div class="prose md:prose-base" x-show="isVisible"> 22129 TENA Discreet Normal is een inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebrui </div> 22130 22131 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 22132 @click="isCollapsed = !isCollapsed" 22133 x-show="originalContent.length > maxLength ? true : false" 22134 type="button" 22135 > 22136 <span x-text="isCollapsed ? 22137 'Lees minder' : 22138 'Lees meer'" 22139 ></span> 22140 </button> 22141 </div> 22142 22143 22144 <div class="hidden lg:block lg:text-md"> 22145 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 22146 " 22147 title="Beschikbaarheid" 22148 > 22149 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 22150 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 22151<title>check-circle</title></svg> 22152Op voorraad </p> 22153 </div> 22154 22155 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 22156 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 22157 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 22158 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 22159 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 22160<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 22161 <span> 22162 Tot 22:30 uur besteld = morgen in huis <span 22163 class="absolute group cursor-pointer inline-flex"> 22164 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 22165 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 22166<title/></svg> 22167 <span class="absolute top-full left-1/2 -translate-x-[80%] 22168 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 22169 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 22170 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 22171 </span> 22172 </span> 22173 </div> 22174 22175 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 22176 <div class="pt-1 text-gray-900" 22177 x-data="initPriceBox()" 22178 x-defer="intersect" 22179 @update-prices-1644.window="updatePrice($event.detail);" 22180 > 22181 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1644" data-price-box="product-id-1644"> 22182 22183 <span
22184 x-data x-id="['product\u002Dprice\u002D1644']" class="price-container price-final_price tax weee" 22185 > 22186 <span :id="$id('product\u002Dprice\u002D1644')" data-price-amount="8.91" 22187 data-price-type="finalPrice" 22188 class="price-wrapper " 22189 ><span class="price">â¬Â 8,91</span></span> 22190 </span> 22191 22192 <span class="minimal-price-link"> 22193 <span 22194 x-data x-id="['1644']" class="price-container price-final_price tax weee" 22195 > 22196 <span class="price-label">Vanaf</span> 22197 <span :id="$id('1644')" data-price-amount="7.37" 22198 data-price-type="" 22199 class="price-wrapper " 22200 >â¬Â 7,37</span> 22201 </span> 22202 </span> 22203</div> </div> 22204 22205 <div x-data="hyva.modal()" class="lg:w-full"> 22206 <div x-cloak data-dialog-ref-name="dialog6ac3024e9289f" 22207 x-bind="overlay" 22208 class="fixed inset-0 bg-black/50 z-50"> 22209 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 22210 <div x-ref="dialog6ac3024e9289f" role="dialog" aria-modal="true" 22211 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 22212 22213<button @click="hide" type="button"> 22214 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 22215 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 22216<title>Sluiten</title></svg> 22217</button> 22218 22219<h2 class="text-primary-500 text-center mb-4"> 22220 Extra besparen?</h2> 22221 22222<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 22223 <div class="flex gap-2 mb-4"> 22224 <a href="https://www.123drogisterij.nl/tena-discreet-normaal" 22225 title="TENA Discreet Normaal" 22226 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 22227 tabindex="-1" 22228 > 22229 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_normal_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1644.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_normal_2.jpg" loading="lazy" width="261" height="261" alt="^** TENA Discreet Normal" title="^** TENA Discreet Normal" loading="lazy" /></picture> 22230 </a> 22231 22232 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 22233 <a href="https://www.123drogisterij.nl/tena-discreet-normaal"> 22234 <strong class="text-xl"> 22235 TENA Discreet Normaal </strong> 22236 </a> 22237 22238
22238<script> 22239 function initPrice1644() { 22240 22241 const regularPriceInclTaxKey = 'oldPrice', 22242 regularPriceExclTaxKey = 'baseOldPrice', 22243 finalPriceInclTaxKey = 'finalPrice', 22244 finalPriceExclTaxKey = 'basePrice'; 22245 22246 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 22247 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 22248 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 22249 if (customOptionPrice) { 22250 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 22251 } 22252 return priceAccumulator; 22253 }, 0); 22254 } 22255 22256 return { 22257 regularPriceKey: regularPriceInclTaxKey, 22258 finalPriceKey: finalPriceInclTaxKey, 22259 activeProductsPriceData: false, 22260 initialFinalPrice: 8.91, 22261 calculatedFinalPrice: false, 22262 calculatedFinalPriceWithCustomOptions: false, 22263 initialTierPrices: [{"price_id":"1548","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1644","website_price":7.64,"price_incl_tax":7.64,"price_excl_tax":7.0091733119266},{"price_id":"1629","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"1644","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 22264 showRegularPriceLabel: false, 22265 customOptionPrices: [], 22266 activeCustomOptions: [], 22267 qty: 1, 22268 updateCustomOptionActive(data) { 22269 let activeCustomOptions = this.activeCustomOptions; 22270 const customOptionId = data.customOptionId; 22271 22272 if (data.active) { 22273 if (!activeCustomOptions.includes(customOptionId)) { 22274 activeCustomOptions.push(data.customOptionId); 22275 } 22276 } else { 22277 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 22278 let index = activeCustomOptions.indexOf(customOptionId); 22279 activeCustomOptions.splice(index, 1); 22280 } 22281 } 22282 this.calculateFinalPriceWithCustomOptions() 22283 }, 22284 updateCustomOptionPrices(prices, basePrices) { 22285 if (prices) { 22286 this.customOptionPrices = prices; 22287 } 22288 22289 22290 this.calculateFinalPriceWithCustomOptions(); 22291 }, 22292 calculateFinalPrice() { 22293 22294 const getOptionTierPrice = (tierPrice, withTax) => { 22295 return tierPrice[withTax ? 'price' : 'basePrice']; 22296 } 22297 22298 const findApplicableTierPrice = (initialPrice, withTax) => { 22299 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 22300 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 22301 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 22302 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 22303 return tierPriceCandidate; 22304 } 22305 return acc; 22306 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 22307 22308 } else { 22309 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 22310 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 22311 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 22312 return tierPrice[key]; 22313 } 22314 return acc; 22315 }, initialPrice); 22316 22317 } 22318 } 22319 22320 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 22321 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 22322 22323 },
22324 calculatePriceLabelVisibility() { 22325 this.showRegularPriceLabel = 22326 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 22327 this.activeProductsPriceData.isMinimalPrice; 22328 }, 22329 calculateFinalPriceWithCustomOptions() { 22330 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 22331 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 22332 }, 22333 getCustomOptionPrice() { 22334 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 22335 }, 22336 getFormattedFinalPrice() { 22337 return hyva.formatPrice( 22338 this.calculatedFinalPriceWithCustomOptions || 22339 this.calculatedFinalPrice || 22340 this.initialFinalPrice 22341 ) 22342 }, 22343 isPriceHidden() { 22344 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 22345 this.calculatedFinalPrice || 22346 this.initialFinalPrice; 22347 return false && finalPrice === 0; 22348 }, 22349 eventListeners: { 22350 ['@update-prices-1644.window'](event) { 22351 this.activeProductsPriceData = event.detail; 22352 22353 this.calculateFinalPrice(); 22354 this.calculateFinalPriceWithCustomOptions(); 22355 this.calculatePriceLabelVisibility(); 22356 }, 22357 ['@update-qty-1644.window'](event) { 22358 this.qty = event.detail; 22359 this.calculateFinalPrice(); 22360 this.calculateFinalPriceWithCustomOptions(); 22361 }, 22362 ['@update-custom-option-active.window'](event) { 22363 this.updateCustomOptionActive(event.detail); 22364 }, 22365 ['@update-custom-option-prices.window'](event) { 22366 this.updateCustomOptionPrices(event.detail); 22367 }, 22368 } 22369 } 22370 } 22371</script>
22371 22372<div x-data="initPrice1644()" 22373 x-bind="eventListeners" 22374 class="price-box price-final_price" 22375> 22376 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 22377 <div class="price-container"> 22378 22379 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 22380 <span id="product-price-1644" 22381 class="price-wrapper font-bold text-3xl text-secondary-800"> 22382 <span class="price" x-html="getFormattedFinalPrice()"> 22383 <span class="price">â¬Â 8,91</span> </span> 22384 </span> 22385 <meta itemprop="price" content="8.91"> 22386 <meta itemprop="priceCurrency" 22387 content="EUR"> 22388 </div> 22389 </div> 22390 </div> 22391 <template x-if="activeProductsPriceData && 22392 activeProductsPriceData.oldPrice && 22393 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 22394 "> 22395 <div class="old-price flex mr-2"> 22396 <span id="product-price-1644" 22397 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 22398 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 22399 </span> 22400 </div> 22401 </template> 22402 <template x-if="activeProductsPriceData"> 22403 <div class="final-price inline-block"> 22404 <span id="product-price-1644" 22405 class="price-wrapper font-bold text-3xl text-secondary-800"> 22406 <span class="price" x-html="getFormattedFinalPrice()"></span> 22407 </span> 22408 </div> 22409 </template> 22410 </div> 22411 </div> 22412 </div> 22413 22414 <div class="tier-price-popup lg:w-1/2"> 22415 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-normaal"> 22416 <strong class="text-2xl"> 22417 TENA Discreet Normaal </strong> 22418 </a> 22419 22420
22420<script> 22421 function initTierPrice1644() { 22422 return { 22423 qty: 1, 22424 minSalesQty: 1, 22425 isStandardSelected() { 22426 return this.qty < 10; 22427 }, 22428 eventListeners: { 22429 ['@update-qty-1644.window'](event) { 22430 if (this.qty !== event.detail) { 22431 this.qty = event.detail; 22432 } 22433 } 22434 } 22435 } 22436 } 22437 </script>
22437 22438 <div class="prices-tier items mb-4" 22439 x-data="initTierPrice1644()" 22440 x-bind="eventListeners" 22441 > 22442 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 22443 :class="{'active-tier-price1644 border-green-600 shadow-hard': 22444 qty >= 10 && qty < 20}" 22445 @click="$dispatch('update-qty-1644', 10);" 22446 data-qty="10" 22447 > 22448 22449 <div class="flex flex-row items-center"> 22450 <div class="flex flex-col flex-grow"> 22451 <div class="flex flex-row items-center justify-between"> 22452 <div class="flex items-center space-x-2"> 22453 <div class="price-container font-bold text-lg"> 22454 <span 22455 class="price-container price-tier_price tax weee" 22456 > 22457 <span data-price-amount="7.64" 22458 data-price-type="" 22459 class="price-wrapper " 22460 ><span class="price">â¬Â 7,64</span></span> 22461 </span> 22462 </div> 22463 <span class="ml-2 text-base"> 22464 per stuk </span> 22465 </div> 22466 <span> 22467 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 14</span>%</strong> </span> 22468 </div> 22469 22470 <div class="mt-1"> 22471 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 22472 <span>10 verpakkingen</span> </span> 22473 </div> 22474 </div> 22475 </div> 22476 </div> 22477 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 22478 :class="{'active-tier-price1644 border-green-600 shadow-hard': 22479 qty >= 20 && qty < 10000}" 22480 @click="$dispatch('update-qty-1644', 20);" 22481 data-qty="20" 22482 > 22483 22484 <div class="flex flex-row items-center"> 22485 <div class="flex flex-col flex-grow"> 22486 <div class="flex flex-row items-center justify-between"> 22487 <div class="flex items-center space-x-2"> 22488 <div class="price-container font-bold text-lg"> 22489 <span 22490 x-data x-id="['1']" class="price-container price-tier_price tax weee" 22491 > 22492 <span :id="$id('1')" data-price-amount="7.37" 22493 data-price-type="" 22494 class="price-wrapper " 22495 ><span class="price">â¬Â 7,37</span></span> 22496 </span> 22497 </div> 22498 <span class="ml-2 text-base"> 22499 per stuk </span> 22500 </div> 22501 <span 22502 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 22503 <strong>Voordeligste keuze</strong> 22504 </span> 22505 <span> 22506 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 17</span>%</strong> </span> 22507 </div> 22508 22509 <div class="mt-1">
22510 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 22511 <span>20 verpakkingen</span> </span> 22512 </div> 22513 </div> 22514 </div> 22515 <div class="choice-mobile mt-4 xl:hidden"> 22516 <hr class="p-2"> 22517 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 22518 <strong>Voordeligste keuze</strong> 22519 </span> 22520 </div> 22521 </div> 22522 22523 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 22524 :class="{'active-tier-price1644 border-green-600 shadow-hard': isStandardSelected() }" 22525 @click="$dispatch('update-qty-1644', minSalesQty);" 22526 > 22527 <div class="flex flex-row items-center"> 22528 <div class="flex flex-col flex-grow"> 22529 <div class="flex flex-row items-center"> 22530 <div class="flex items-center space-x-2"> 22531 <div class="price-container font-bold text-lg"> 22532 <span class="price">â¬Â 8,91</span> </div> 22533 <span class="ml-2 text-base"> 22534 per stuk </span> 22535 </div> 22536 <strong class="ml-auto text-gray-500"> 22537 Standaard </strong> 22538 </div> 22539 22540 <div class="mt-1"> 22541 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 22542 <span>1 verpakking</span> </span> 22543 </div> 22544 </div> 22545 </div> 22546 </div> 22547 22548 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 22549 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 22550 x-show="isStandardSelected() && true" 22551 x-cloak> 22552 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 22553 <div class="ml-6 text-sm opacity-90"> 22554 <strong>Let op:</strong> 22555 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 22556 <div class="ml-6 text-sm leading-snug opacity-60"> 22557 Kies een andere optie voor extra voordeel! </div> 22558 </div> 22559 </div> 22560 22561 <div class="hidden lg:block"> 22562
22562<script> 22563 function initPrice1644() { 22564 22565 const regularPriceInclTaxKey = 'oldPrice', 22566 regularPriceExclTaxKey = 'baseOldPrice', 22567 finalPriceInclTaxKey = 'finalPrice', 22568 finalPriceExclTaxKey = 'basePrice'; 22569 22570 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 22571 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 22572 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 22573 if (customOptionPrice) { 22574 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 22575 } 22576 return priceAccumulator; 22577 }, 0); 22578 } 22579 22580 return { 22581 regularPriceKey: regularPriceInclTaxKey, 22582 finalPriceKey: finalPriceInclTaxKey, 22583 activeProductsPriceData: false, 22584 initialFinalPrice: 8.91, 22585 calculatedFinalPrice: false, 22586 calculatedFinalPriceWithCustomOptions: false, 22587 initialTierPrices: [{"price_id":"1548","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1644","website_price":7.64,"price_incl_tax":7.64,"price_excl_tax":7.0091733119266},{"price_id":"1629","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"1644","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 22588 showRegularPriceLabel: false, 22589 customOptionPrices: [], 22590 activeCustomOptions: [], 22591 qty: 1, 22592 updateCustomOptionActive(data) { 22593 let activeCustomOptions = this.activeCustomOptions; 22594 const customOptionId = data.customOptionId; 22595 22596 if (data.active) { 22597 if (!activeCustomOptions.includes(customOptionId)) { 22598 activeCustomOptions.push(data.customOptionId); 22599 } 22600 } else { 22601 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 22602 let index = activeCustomOptions.indexOf(customOptionId); 22603 activeCustomOptions.splice(index, 1); 22604 } 22605 } 22606 this.calculateFinalPriceWithCustomOptions() 22607 }, 22608 updateCustomOptionPrices(prices, basePrices) { 22609 if (prices) { 22610 this.customOptionPrices = prices; 22611 } 22612 22613 22614 this.calculateFinalPriceWithCustomOptions(); 22615 }, 22616 calculateFinalPrice() { 22617 22618 const getOptionTierPrice = (tierPrice, withTax) => { 22619 return tierPrice[withTax ? 'price' : 'basePrice']; 22620 } 22621 22622 const findApplicableTierPrice = (initialPrice, withTax) => { 22623 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 22624 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 22625 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 22626 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 22627 return tierPriceCandidate; 22628 } 22629 return acc; 22630 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 22631 22632 } else { 22633 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 22634 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 22635 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 22636 return tierPrice[key]; 22637 } 22638 return acc; 22639 }, initialPrice); 22640 22641 } 22642 } 22643 22644 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 22645 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 22646 22647 },
22648 calculatePriceLabelVisibility() { 22649 this.showRegularPriceLabel = 22650 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 22651 this.activeProductsPriceData.isMinimalPrice; 22652 }, 22653 calculateFinalPriceWithCustomOptions() { 22654 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 22655 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 22656 }, 22657 getCustomOptionPrice() { 22658 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 22659 }, 22660 getFormattedFinalPrice() { 22661 return hyva.formatPrice( 22662 this.calculatedFinalPriceWithCustomOptions || 22663 this.calculatedFinalPrice || 22664 this.initialFinalPrice 22665 ) 22666 }, 22667 isPriceHidden() { 22668 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 22669 this.calculatedFinalPrice || 22670 this.initialFinalPrice; 22671 return false && finalPrice === 0; 22672 }, 22673 eventListeners: { 22674 ['@update-prices-1644.window'](event) { 22675 this.activeProductsPriceData = event.detail; 22676 22677 this.calculateFinalPrice(); 22678 this.calculateFinalPriceWithCustomOptions(); 22679 this.calculatePriceLabelVisibility(); 22680 }, 22681 ['@update-qty-1644.window'](event) { 22682 this.qty = event.detail; 22683 this.calculateFinalPrice(); 22684 this.calculateFinalPriceWithCustomOptions(); 22685 }, 22686 ['@update-custom-option-active.window'](event) { 22687 this.updateCustomOptionActive(event.detail); 22688 }, 22689 ['@update-custom-option-prices.window'](event) { 22690 this.updateCustomOptionPrices(event.detail); 22691 }, 22692 } 22693 } 22694 } 22695</script>
22695 22696<div x-data="initPrice1644()" 22697 x-bind="eventListeners" 22698 class="price-box price-final_price" 22699> 22700 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 22701 <div class="price-container"> 22702 22703 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 22704 <span id="product-price-1644" 22705 class="price-wrapper font-bold text-3xl text-secondary-800"> 22706 <span class="price" x-html="getFormattedFinalPrice()"> 22707 <span class="price">â¬Â 8,91</span> </span> 22708 </span> 22709 <meta itemprop="price" content="8.91"> 22710 <meta itemprop="priceCurrency" 22711 content="EUR"> 22712 </div> 22713 </div> 22714 </div> 22715 <template x-if="activeProductsPriceData && 22716 activeProductsPriceData.oldPrice && 22717 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 22718 "> 22719 <div class="old-price flex mr-2"> 22720 <span id="product-price-1644" 22721 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 22722 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 22723 </span> 22724 </div> 22725 </template> 22726 <template x-if="activeProductsPriceData"> 22727 <div class="final-price inline-block"> 22728 <span id="product-price-1644" 22729 class="price-wrapper font-bold text-3xl text-secondary-800"> 22730 <span class="price" x-html="getFormattedFinalPrice()"></span> 22731 </span> 22732 </div> 22733 </template> 22734 </div> 22735 </div> 22736 </div> 22737</div> 22738 22739<div class="flex flex-col items-center"> 22740 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 22741 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 22742 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 22743<title>In Winkelmand</title></svg> 22744 In Winkelmand </button> 22745 22746 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 22747 Nee, vandaag niet </button> 22748</div> 22749 </div> 22750 </div> 22751 </div> 22752 22753 <button @click="show('dialog6ac3024e9289f', this.$event || $event)" 22754 class="btn btn-primary lg:w-full" 22755 type="button" 22756 aria-haspopup="dialog" 22757 > 22758 Kies uw voordeel </button> 22759 </div> 22760 </div> 22761 22762 <div class="flex items-center gap-1 lg:hidden"> 22763 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 22764 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 22765 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 22766 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 22767<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
22768 <span> 22769 Tot 22:30 uur besteld = morgen in huis <span 22770 class="absolute group cursor-pointer inline-flex items-center justify-center"> 22771 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 22772 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 22773<title/></svg> 22774 <span class="absolute top-full left-1/2 -translate-x-[80%] 22775 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 22776 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 22777 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 22778 </span> 22779 </span> 22780 </div> 22781 </div> 22782</form> 22783 </li> 22784 <li> 22785
22785<script> 22786 function initQtyFromTier1645() { 22787 return { 22788 qty: 1, 22789 updateQty(event) { 22790 this.qty = event.detail; 22791 } 22792 } 22793 } 22794</script>
22794 22795 22796<form method="post" 22797 action="https://www.123drogisterij.nl/checkout/cart/add/uenc/%25uenc%25/product/1645/" 22798 class="product_addtocart_form item product product-item border-b pb-5 mb-5 lg:flex" 22799 x-data="initQtyFromTier1645()" 22800 @update-qty-1645="updateQty(event)" 22801 22802 > 22803 <input name="form_key" type="hidden" value="f0jqOmkURacY2mRh" /> <input type="hidden" name="product" value="1645"/> 22804 <input type="hidden" 22805 name="qty" 22806 id="qty[1645]" 22807 :value="qty" 22808 x-model.number="qty" 22809 /> 22810 <div class="flex justify-between flex-row gap-4 lg:w-2/3 lg:gap-0"> 22811 <a href="https://www.123drogisterij.nl/tena-discreet-mini" 22812 title="TENA Discreet Mini" 22813 class="product photo product-item-photo block w-1/3 lg:w-1/4" 22814 tabindex="-1" 22815 > 22816 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_mini_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1645.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/23ee1ff89d4cc01c75750d63d7c242f8/t/e/tena_discreet_mini_2.jpg" loading="lazy" width="187" height="234" alt="** TENA Discreet Mini" title="** TENA Discreet Mini" loading="lazy" /></picture> 22817 </a> 22818 22819 <div class="w-2/3 lg:mx-8"> 22820 <strong> 22821 <a class="product-item-link mb-2 text-base lg:text-2xl lg:mb-2" 22822 href="https://www.123drogisterij.nl/tena-discreet-mini" 22823 :id="`slide-desc-1645-${$id('slider-id')}`" 22824 > 22825 TENA Discreet Mini </a> 22826 </strong> 22827 22828 <div class="flex flex-col lg:gap-4 lg:flex-row lg:text-md"> 22829 <span class="block text-gray-500 mb-1"> 22830 Artikelnummer: 760364 </span> 22831 22832 <span class="block text-gray-500 mb-1 lg:text-md"> 22833 Verpakking: 30 stuks </span> 22834 </div> 22835 22836 <span class="block text-gray-500 my-2 lg:mt-1 lg:mb-4 lg:text-md lg:flex lg:items-center lg:gap-2"> 22837 Absorptievermogen: 22838 <div class="flex gap-2"> 22839 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22840 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22841 </svg> 22842 <svg class="h-4 w-2.5 fill-green-600" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22843 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22844 </svg> 22845 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22846 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22847 </svg> 22848 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22849 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22850 </svg> 22851 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22852 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39
22852697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22853 </svg> 22854 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22855 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22856 </svg> 22857 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22858 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22859 </svg> 22860 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22861 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22862 </svg> 22863 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22864 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22865 </svg> 22866 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22867 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22868 </svg> 22869 <svg class="h-4 w-2.5 fill-gray-200" width="10" height="15" viewBox="0 0 10 15" fill="none" xmlns="http://www.w3.org/2000/svg"> 22870 <path d="M10 10.102C10 12.8071 7.76142 15 5 15C2.23858 15 0 12.8071 0 10.102C0 7.39697 5 0 5 0C5 0 10 7.39697 10 10.102Z"/> 22871 </svg> 22872 </div> 22873 </span> 22874 22875 <div class="lg:hidden"> 22876 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 22877 " 22878 title="Beschikbaarheid" 22879 > 22880 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 22881 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 22882<title>check-circle</title></svg> 22883Op voorraad </p> 22884 </div> 22885 22886 <div class="hidden lg:block" 22887 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 22888 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
22889 content = trimToSentence(originalContent, maxLength); 22890 isVisible = false"; 22891 > 22892 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 22893 TENA Discreet Mini is een heel kleine inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt lekken. Het product heeft een opname van 200 milliliter. De afmeting is 10 bij 22 centimeter. </div> 22894 22895 <div class="prose md:prose-base text-md" x-show="isVisible"> 22896 TENA Discreet Mini is een heel kleine inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wor </div> 22897 22898 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900 lg:text-md" 22899 @click="isCollapsed = !isCollapsed" 22900 x-show="originalContent.length > maxLength ? true : false" 22901 type="button" 22902 > 22903 <span x-text="isCollapsed ? 22904 'Lees minder' : 22905 'Lees meer'" 22906 ></span> 22907 </button> 22908 </div> 22909 </div> 22910 </div> 22911 22912 <div class="flex flex-col mt-2 gap-3 lg:w-1/3 lg:gap-2 lg:mt-0"> 22913 <div class="lg:hidden" 22914 x-data="{isCollapsed: false, maxLength: 200, originalContent: '', content: '', isVisible: true }" 22915 x-init="originalContent = $el.firstElementChild.innerHTML.trim();
22916 content = trimToSentence(originalContent, maxLength); 22917 isVisible = false"; 22918 > 22919 <div x-cloak class="prose md:prose-base" x-html="isCollapsed ? originalContent : content"> 22920 TENA Discreet Mini is een heel kleine inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt lekken. Het product heeft een opname van 200 milliliter. De afmeting is 10 bij 22 centimeter. </div> 22921 22922 <div class="prose md:prose-base" x-show="isVisible"> 22923 TENA Discreet Mini is een heel kleine inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus voo </div> 22924 22925 <button class="mt-2 text-secondary-800 font-bold underline hover:text-secondary-900" 22926 @click="isCollapsed = !isCollapsed" 22927 x-show="originalContent.length > maxLength ? true : false" 22928 type="button" 22929 > 22930 <span x-text="isCollapsed ? 22931 'Lees minder' : 22932 'Lees meer'" 22933 ></span> 22934 </button> 22935 </div> 22936 22937 22938 <div class="hidden lg:block lg:text-md"> 22939 <p class="flex items-center align-middle gap-x-1 stock whitespace-nowrap 22940 " 22941 title="Beschikbaarheid" 22942 > 22943 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-4 w-4 lg:w-5 lg:h-5 text-green-600" width="24" height="24" role="img"> 22944 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd"/> 22945<title>check-circle</title></svg> 22946Op voorraad </p> 22947 </div> 22948 22949 <div class="hidden lg:flex items-center gap-1 mb-auto lg:text-md xl:relative"> 22950 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 text-green-600" width="24" height="24" role="img"> 22951 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 22952 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 22953 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 22954<title>Tot 22:30 uur besteld = morgen in huis</title></svg> 22955 <span> 22956 Tot 22:30 uur besteld = morgen in huis <span 22957 class="absolute group cursor-pointer inline-flex"> 22958 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 22959 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 22960<title/></svg> 22961 <span class="absolute top-full left-1/2 -translate-x-[80%] 22962 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 22963 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 22964 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 22965 </span> 22966 </span> 22967 </div> 22968 22969 <div class="flex justify-between items-center lg:flex-col lg:items-start lg:gap-4"> 22970 <div class="pt-1 text-gray-900" 22971 x-data="initPriceBox()" 22972 x-defer="intersect" 22973 @update-prices-1645.window="updatePrice($event.detail);" 22974 > 22975 <div class="price-box price-final_price" data-role="priceBox" data-product-id="1645" data-price-box="product-id-1645"> 22976 22977 <span
22978 x-data x-id="['product\u002Dprice\u002D1645']" class="price-container price-final_price tax weee" 22979 > 22980 <span :id="$id('product\u002Dprice\u002D1645')" data-price-amount="8.93" 22981 data-price-type="finalPrice" 22982 class="price-wrapper " 22983 ><span class="price">â¬Â 8,93</span></span> 22984 </span> 22985 22986 <span class="minimal-price-link"> 22987 <span 22988 x-data x-id="['1645']" class="price-container price-final_price tax weee" 22989 > 22990 <span class="price-label">Vanaf</span> 22991 <span :id="$id('1645')" data-price-amount="7.37" 22992 data-price-type="" 22993 class="price-wrapper " 22994 >â¬Â 7,37</span> 22995 </span> 22996 </span> 22997</div> </div> 22998 22999 <div x-data="hyva.modal()" class="lg:w-full"> 23000 <div x-cloak data-dialog-ref-name="dialog6ac3024e985f0" 23001 x-bind="overlay" 23002 class="fixed inset-0 bg-black/50 z-50"> 23003 <div class="fixed flex justify-center items-center text-left z-40 inset-0"> 23004 <div x-ref="dialog6ac3024e985f0" role="dialog" aria-modal="true" 23005 class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain popup relative m-4 py-6 px-4 !rounded-3xl max-w-3xl shadow-hard md:w-full"> 23006 23007<button @click="hide" type="button"> 23008 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="absolute top-4 right-4 h-6 w-6" width="24" height="24" role="img"> 23009 <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z" clip-rule="evenodd"/> 23010<title>Sluiten</title></svg> 23011</button> 23012 23013<h2 class="text-primary-500 text-center mb-4"> 23014 Extra besparen?</h2> 23015 23016<div class="lg:flex lg:gap-8 lg:mt-10 lg:mb-4 items-center"> 23017 <div class="flex gap-2 mb-4"> 23018 <a href="https://www.123drogisterij.nl/tena-discreet-mini" 23019 title="TENA Discreet Mini" 23020 class="product photo product-item-photo block w-1/2 min-w-1/2 lg:w-full lg:min-w-full" 23021 tabindex="-1" 23022 > 23023 <picture class="object-contain product-image-photo"><source type="image/webp" srcset="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_mini_2.webp"><img class="object-contain product-image-photo" x-data="" @update-gallery-1645.window="$root.src = $event.detail" src="https://www.123drogisterij.nl/media/catalog/product/cache/7a0532db2f6986ba03865a3b0d99abf6/t/e/tena_discreet_mini_2.jpg" loading="lazy" width="261" height="261" alt="** TENA Discreet Mini" title="** TENA Discreet Mini" loading="lazy" /></picture> 23024 </a> 23025 23026 <div class="flex flex-col w-1/2 gap-16 lg:hidden"> 23027 <a href="https://www.123drogisterij.nl/tena-discreet-mini"> 23028 <strong class="text-xl"> 23029 TENA Discreet Mini </strong> 23030 </a> 23031 23032
23032<script> 23033 function initPrice1645() { 23034 23035 const regularPriceInclTaxKey = 'oldPrice', 23036 regularPriceExclTaxKey = 'baseOldPrice', 23037 finalPriceInclTaxKey = 'finalPrice', 23038 finalPriceExclTaxKey = 'basePrice'; 23039 23040 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 23041 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 23042 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 23043 if (customOptionPrice) { 23044 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 23045 } 23046 return priceAccumulator; 23047 }, 0); 23048 } 23049 23050 return { 23051 regularPriceKey: regularPriceInclTaxKey, 23052 finalPriceKey: finalPriceInclTaxKey, 23053 activeProductsPriceData: false, 23054 initialFinalPrice: 8.93, 23055 calculatedFinalPrice: false, 23056 calculatedFinalPriceWithCustomOptions: false, 23057 initialTierPrices: [{"price_id":"1850","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1645","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1851","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"1645","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 23058 showRegularPriceLabel: false, 23059 customOptionPrices: [], 23060 activeCustomOptions: [], 23061 qty: 1, 23062 updateCustomOptionActive(data) { 23063 let activeCustomOptions = this.activeCustomOptions; 23064 const customOptionId = data.customOptionId; 23065 23066 if (data.active) { 23067 if (!activeCustomOptions.includes(customOptionId)) { 23068 activeCustomOptions.push(data.customOptionId); 23069 } 23070 } else { 23071 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 23072 let index = activeCustomOptions.indexOf(customOptionId); 23073 activeCustomOptions.splice(index, 1); 23074 } 23075 } 23076 this.calculateFinalPriceWithCustomOptions() 23077 }, 23078 updateCustomOptionPrices(prices, basePrices) { 23079 if (prices) { 23080 this.customOptionPrices = prices; 23081 } 23082 23083 23084 this.calculateFinalPriceWithCustomOptions(); 23085 }, 23086 calculateFinalPrice() { 23087 23088 const getOptionTierPrice = (tierPrice, withTax) => { 23089 return tierPrice[withTax ? 'price' : 'basePrice']; 23090 } 23091 23092 const findApplicableTierPrice = (initialPrice, withTax) => { 23093 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 23094 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 23095 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 23096 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 23097 return tierPriceCandidate; 23098 } 23099 return acc; 23100 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 23101 23102 } else { 23103 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 23104 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 23105 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 23106 return tierPrice[key]; 23107 } 23108 return acc; 23109 }, initialPrice); 23110 23111 } 23112 } 23113 23114 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 23115 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 23116 23117 },
23118 calculatePriceLabelVisibility() { 23119 this.showRegularPriceLabel = 23120 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 23121 this.activeProductsPriceData.isMinimalPrice; 23122 }, 23123 calculateFinalPriceWithCustomOptions() { 23124 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 23125 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 23126 }, 23127 getCustomOptionPrice() { 23128 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 23129 }, 23130 getFormattedFinalPrice() { 23131 return hyva.formatPrice( 23132 this.calculatedFinalPriceWithCustomOptions || 23133 this.calculatedFinalPrice || 23134 this.initialFinalPrice 23135 ) 23136 }, 23137 isPriceHidden() { 23138 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 23139 this.calculatedFinalPrice || 23140 this.initialFinalPrice; 23141 return false && finalPrice === 0; 23142 }, 23143 eventListeners: { 23144 ['@update-prices-1645.window'](event) { 23145 this.activeProductsPriceData = event.detail; 23146 23147 this.calculateFinalPrice(); 23148 this.calculateFinalPriceWithCustomOptions(); 23149 this.calculatePriceLabelVisibility(); 23150 }, 23151 ['@update-qty-1645.window'](event) { 23152 this.qty = event.detail; 23153 this.calculateFinalPrice(); 23154 this.calculateFinalPriceWithCustomOptions(); 23155 }, 23156 ['@update-custom-option-active.window'](event) { 23157 this.updateCustomOptionActive(event.detail); 23158 }, 23159 ['@update-custom-option-prices.window'](event) { 23160 this.updateCustomOptionPrices(event.detail); 23161 }, 23162 } 23163 } 23164 } 23165</script>
23165 23166<div x-data="initPrice1645()" 23167 x-bind="eventListeners" 23168 class="price-box price-final_price" 23169> 23170 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 23171 <div class="price-container"> 23172 23173 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 23174 <span id="product-price-1645" 23175 class="price-wrapper font-bold text-3xl text-secondary-800"> 23176 <span class="price" x-html="getFormattedFinalPrice()"> 23177 <span class="price">â¬Â 8,93</span> </span> 23178 </span> 23179 <meta itemprop="price" content="8.93"> 23180 <meta itemprop="priceCurrency" 23181 content="EUR"> 23182 </div> 23183 </div> 23184 </div> 23185 <template x-if="activeProductsPriceData && 23186 activeProductsPriceData.oldPrice && 23187 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 23188 "> 23189 <div class="old-price flex mr-2"> 23190 <span id="product-price-1645" 23191 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 23192 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 23193 </span> 23194 </div> 23195 </template> 23196 <template x-if="activeProductsPriceData"> 23197 <div class="final-price inline-block"> 23198 <span id="product-price-1645" 23199 class="price-wrapper font-bold text-3xl text-secondary-800"> 23200 <span class="price" x-html="getFormattedFinalPrice()"></span> 23201 </span> 23202 </div> 23203 </template> 23204 </div> 23205 </div> 23206 </div> 23207 23208 <div class="tier-price-popup lg:w-1/2"> 23209 <a class="hidden lg:block mb-4" href="https://www.123drogisterij.nl/tena-discreet-mini"> 23210 <strong class="text-2xl"> 23211 TENA Discreet Mini </strong> 23212 </a> 23213 23214
23214<script> 23215 function initTierPrice1645() { 23216 return { 23217 qty: 1, 23218 minSalesQty: 1, 23219 isStandardSelected() { 23220 return this.qty < 10; 23221 }, 23222 eventListeners: { 23223 ['@update-qty-1645.window'](event) { 23224 if (this.qty !== event.detail) { 23225 this.qty = event.detail; 23226 } 23227 } 23228 } 23229 } 23230 } 23231 </script>
23231 23232 <div class="prices-tier items mb-4" 23233 x-data="initTierPrice1645()" 23234 x-bind="eventListeners" 23235 > 23236 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 " 23237 :class="{'active-tier-price1645 border-green-600 shadow-hard': 23238 qty >= 10 && qty < 20}" 23239 @click="$dispatch('update-qty-1645', 10);" 23240 data-qty="10" 23241 > 23242 23243 <div class="flex flex-row items-center"> 23244 <div class="flex flex-col flex-grow"> 23245 <div class="flex flex-row items-center justify-between"> 23246 <div class="flex items-center space-x-2"> 23247 <div class="price-container font-bold text-lg"> 23248 <span 23249 class="price-container price-tier_price tax weee" 23250 > 23251 <span data-price-amount="7.63" 23252 data-price-type="" 23253 class="price-wrapper " 23254 ><span class="price">â¬Â 7,63</span></span> 23255 </span> 23256 </div> 23257 <span class="ml-2 text-base"> 23258 per stuk </span> 23259 </div> 23260 <span> 23261 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-0"> 15</span>%</strong> </span> 23262 </div> 23263 23264 <div class="mt-1"> 23265 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 23266 <span>10 verpakkingen</span> </span> 23267 </div> 23268 </div> 23269 </div> 23270 </div> 23271 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4 pt-3 lg:py-4" 23272 :class="{'active-tier-price1645 border-green-600 shadow-hard': 23273 qty >= 20 && qty < 10000}" 23274 @click="$dispatch('update-qty-1645', 20);" 23275 data-qty="20" 23276 > 23277 23278 <div class="flex flex-row items-center"> 23279 <div class="flex flex-col flex-grow"> 23280 <div class="flex flex-row items-center justify-between"> 23281 <div class="flex items-center space-x-2"> 23282 <div class="price-container font-bold text-lg"> 23283 <span 23284 x-data x-id="['1']" class="price-container price-tier_price tax weee" 23285 > 23286 <span :id="$id('1')" data-price-amount="7.37" 23287 data-price-type="" 23288 class="price-wrapper " 23289 ><span class="price">â¬Â 7,37</span></span> 23290 </span> 23291 </div> 23292 <span class="ml-2 text-base"> 23293 per stuk </span> 23294 </div> 23295 <span 23296 class="choice-desktop hidden bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500 xl:block"> 23297 <strong>Voordeligste keuze</strong> 23298 </span> 23299 <span> 23300 <strong class="benefit text-secondary-800">Bespaar<span class="percent tier-1"> 17</span>%</strong> </span> 23301 </div> 23302 23303 <div class="mt-1">
23304 <span class="inline-block text-base leading-[1.2] font-bold text-secondary-800 bg-gray-100 px-2 py-1 rounded-xl"> 23305 <span>20 verpakkingen</span> </span> 23306 </div> 23307 </div> 23308 </div> 23309 <div class="choice-mobile mt-4 xl:hidden"> 23310 <hr class="p-2"> 23311 <span class="inline-block bg-primary-100 text-primary-500 py-1 px-3 rounded-xl border-2 border-dashed border-primary-500"> 23312 <strong>Voordeligste keuze</strong> 23313 </span> 23314 </div> 23315 </div> 23316 23317 <div class="relative flex flex-col item py-2 px-4 mb-4 rounded-xl border-2 border-gray-200 cursor-pointer lg:py-4" 23318 :class="{'active-tier-price1645 border-green-600 shadow-hard': isStandardSelected() }" 23319 @click="$dispatch('update-qty-1645', minSalesQty);" 23320 > 23321 <div class="flex flex-row items-center"> 23322 <div class="flex flex-col flex-grow"> 23323 <div class="flex flex-row items-center"> 23324 <div class="flex items-center space-x-2"> 23325 <div class="price-container font-bold text-lg"> 23326 <span class="price">â¬Â 8,93</span> </div> 23327 <span class="ml-2 text-base"> 23328 per stuk </span> 23329 </div> 23330 <strong class="ml-auto text-gray-500"> 23331 Standaard </strong> 23332 </div> 23333 23334 <div class="mt-1"> 23335 <span class="inline-block text-base leading-[1.2] font-bold bg-gray-100 px-2 py-[5px] rounded-xl"> 23336 <span>1 verpakking</span> </span> 23337 </div> 23338 </div> 23339 </div> 23340 </div> 23341 23342 <div class="relative mt-2 block border border-primary-300 p-4 w-full before:absolute before:-top-[7px] before:left-4 before:h-0 before:w-0 before:border-x-[6px] before:border-b-[6px] before:border-x-transparent before:border-b-primary-500 23343 after:absolute after:-top-[6px] after:left-4 after:h-0 after:w-0 after:border-x-[6px] after:border-b-[6px] after:border-x-transparent after:border-b-white" 23344 x-show="isStandardSelected() && true" 23345 x-cloak> 23346 <div class="absolute left-5 text-xl font-bold leading-none text-primary-300 opacity-60">!</div> 23347 <div class="ml-6 text-sm opacity-90"> 23348 <strong>Let op:</strong> 23349 U betaalt <strong>7.95</strong> verzendkosten onder de 20 euro </div> 23350 <div class="ml-6 text-sm leading-snug opacity-60"> 23351 Kies een andere optie voor extra voordeel! </div> 23352 </div> 23353 </div> 23354 23355 <div class="hidden lg:block"> 23356
23356<script> 23357 function initPrice1645() { 23358 23359 const regularPriceInclTaxKey = 'oldPrice', 23360 regularPriceExclTaxKey = 'baseOldPrice', 23361 finalPriceInclTaxKey = 'finalPrice', 23362 finalPriceExclTaxKey = 'basePrice'; 23363 23364 function calculateCustomOptionPrices(activeCustomOptions, customOptionPrices) { 23365 return activeCustomOptions.reduce((priceAccumulator, activeCustomOptionId) => { 23366 const customOptionPrice = customOptionPrices[activeCustomOptionId]; 23367 if (customOptionPrice) { 23368 return Number.parseFloat(priceAccumulator) + Number.parseFloat(customOptionPrice); 23369 } 23370 return priceAccumulator; 23371 }, 0); 23372 } 23373 23374 return { 23375 regularPriceKey: regularPriceInclTaxKey, 23376 finalPriceKey: finalPriceInclTaxKey, 23377 activeProductsPriceData: false, 23378 initialFinalPrice: 8.93, 23379 calculatedFinalPrice: false, 23380 calculatedFinalPriceWithCustomOptions: false, 23381 initialTierPrices: [{"price_id":"1850","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":10,"percentage_value":null,"product_id":"1645","website_price":7.63,"price_incl_tax":7.63,"price_excl_tax":6.999999},{"price_id":"1851","website_id":"2","all_groups":"1","cust_group":32000,"price":{},"price_qty":20,"percentage_value":null,"product_id":"1645","website_price":7.37,"price_incl_tax":7.37,"price_excl_tax":6.7614668899083}], 23382 showRegularPriceLabel: false, 23383 customOptionPrices: [], 23384 activeCustomOptions: [], 23385 qty: 1, 23386 updateCustomOptionActive(data) { 23387 let activeCustomOptions = this.activeCustomOptions; 23388 const customOptionId = data.customOptionId; 23389 23390 if (data.active) { 23391 if (!activeCustomOptions.includes(customOptionId)) { 23392 activeCustomOptions.push(data.customOptionId); 23393 } 23394 } else { 23395 if (customOptionId && activeCustomOptions.includes(customOptionId)) { 23396 let index = activeCustomOptions.indexOf(customOptionId); 23397 activeCustomOptions.splice(index, 1); 23398 } 23399 } 23400 this.calculateFinalPriceWithCustomOptions() 23401 }, 23402 updateCustomOptionPrices(prices, basePrices) { 23403 if (prices) { 23404 this.customOptionPrices = prices; 23405 } 23406 23407 23408 this.calculateFinalPriceWithCustomOptions(); 23409 }, 23410 calculateFinalPrice() { 23411 23412 const getOptionTierPrice = (tierPrice, withTax) => { 23413 return tierPrice[withTax ? 'price' : 'basePrice']; 23414 } 23415 23416 const findApplicableTierPrice = (initialPrice, withTax) => { 23417 if (this.activeProductsPriceData && this.activeProductsPriceData.tierPrices) { 23418 return this.activeProductsPriceData.tierPrices.reduce((acc, tierPrice) => { 23419 const tierPriceCandidate = getOptionTierPrice(tierPrice, withTax); 23420 if (this.qty >= tierPrice.qty && tierPriceCandidate < acc) { 23421 return tierPriceCandidate; 23422 } 23423 return acc; 23424 }, this.activeProductsPriceData[withTax ? finalPriceInclTaxKey : finalPriceExclTaxKey].amount); 23425 23426 } else { 23427 const key = withTax ? 'price_incl_tax' : 'price_excl_tax'; 23428 return Object.values(this.initialTierPrices).reduce((acc, tierPrice) => { 23429 if (this.qty >= tierPrice.price_qty && tierPrice[key] < acc) { 23430 return tierPrice[key]; 23431 } 23432 return acc; 23433 }, initialPrice); 23434 23435 } 23436 } 23437 23438 this.calculatedFinalPrice = findApplicableTierPrice(this.initialFinalPrice, true); 23439 window.dispatchEvent(new CustomEvent("update-product-final-price", {detail: this.calculatedFinalPrice})); 23440 23441 },
23442 calculatePriceLabelVisibility() { 23443 this.showRegularPriceLabel = 23444 (this.calculatedFinalPrice === this.activeProductsPriceData[this.regularPriceKey].amount) && 23445 this.activeProductsPriceData.isMinimalPrice; 23446 }, 23447 calculateFinalPriceWithCustomOptions() { 23448 const finalPrice = this.calculatedFinalPrice || this.initialFinalPrice; 23449 this.calculatedFinalPriceWithCustomOptions = finalPrice + this.getCustomOptionPrice(); 23450 }, 23451 getCustomOptionPrice() { 23452 return calculateCustomOptionPrices(this.activeCustomOptions, this.customOptionPrices); 23453 }, 23454 getFormattedFinalPrice() { 23455 return hyva.formatPrice( 23456 this.calculatedFinalPriceWithCustomOptions || 23457 this.calculatedFinalPrice || 23458 this.initialFinalPrice 23459 ) 23460 }, 23461 isPriceHidden() { 23462 const finalPrice = this.calculatedFinalPriceWithCustomOptions || 23463 this.calculatedFinalPrice || 23464 this.initialFinalPrice; 23465 return false && finalPrice === 0; 23466 }, 23467 eventListeners: { 23468 ['@update-prices-1645.window'](event) { 23469 this.activeProductsPriceData = event.detail; 23470 23471 this.calculateFinalPrice(); 23472 this.calculateFinalPriceWithCustomOptions(); 23473 this.calculatePriceLabelVisibility(); 23474 }, 23475 ['@update-qty-1645.window'](event) { 23476 this.qty = event.detail; 23477 this.calculateFinalPrice(); 23478 this.calculateFinalPriceWithCustomOptions(); 23479 }, 23480 ['@update-custom-option-active.window'](event) { 23481 this.updateCustomOptionActive(event.detail); 23482 }, 23483 ['@update-custom-option-prices.window'](event) { 23484 this.updateCustomOptionPrices(event.detail); 23485 }, 23486 } 23487 } 23488 } 23489</script>
23489 23490<div x-data="initPrice1645()" 23491 x-bind="eventListeners" 23492 class="price-box price-final_price" 23493> 23494 <div x-show="!activeProductsPriceData && !isPriceHidden()"> 23495 <div class="price-container"> 23496 23497 <div class="final-price inline-block" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"> 23498 <span id="product-price-1645" 23499 class="price-wrapper font-bold text-3xl text-secondary-800"> 23500 <span class="price" x-html="getFormattedFinalPrice()"> 23501 <span class="price">â¬Â 8,93</span> </span> 23502 </span> 23503 <meta itemprop="price" content="8.93"> 23504 <meta itemprop="priceCurrency" 23505 content="EUR"> 23506 </div> 23507 </div> 23508 </div> 23509 <template x-if="activeProductsPriceData && 23510 activeProductsPriceData.oldPrice && 23511 activeProductsPriceData[finalPriceKey].amount < activeProductsPriceData[regularPriceKey].amount 23512 "> 23513 <div class="old-price flex mr-2"> 23514 <span id="product-price-1645" 23515 class="price-wrapper title-font font-regular text-xl line-through text-gray-900"> 23516 <span class="price" x-html="hyva.formatPrice(activeProductsPriceData[regularPriceKey].amount + getCustomOptionPrice())"></span> 23517 </span> 23518 </div> 23519 </template> 23520 <template x-if="activeProductsPriceData"> 23521 <div class="final-price inline-block"> 23522 <span id="product-price-1645" 23523 class="price-wrapper font-bold text-3xl text-secondary-800"> 23524 <span class="price" x-html="getFormattedFinalPrice()"></span> 23525 </span> 23526 </div> 23527 </template> 23528 </div> 23529 </div> 23530 </div> 23531</div> 23532 23533<div class="flex flex-col items-center"> 23534 <button class="btn btn-primary gap-2 w-full my-4 py-3 lg:w-1/2" type="sumbit"> 23535 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-5 h-5" width="24" height="24" role="img"> 23536 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/> 23537<title>In Winkelmand</title></svg> 23538 In Winkelmand </button> 23539 23540 <button @click="hide" class="btn btn-link w-full text-center text-gray-500 underline lg:w-1/2" type="button"> 23541 Nee, vandaag niet </button> 23542</div> 23543 </div> 23544 </div> 23545 </div> 23546 23547 <button @click="show('dialog6ac3024e985f0', this.$event || $event)" 23548 class="btn btn-primary lg:w-full" 23549 type="button" 23550 aria-haspopup="dialog" 23551 > 23552 Kies uw voordeel </button> 23553 </div> 23554 </div> 23555 23556 <div class="flex items-center gap-1 lg:hidden"> 23557 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="h-5 w-5 lg:h-6 lg:w-6 text-green-600" width="24" height="24" role="img"> 23558 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z"/> 23559 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z"/> 23560 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z"/> 23561<title>Tot 22:30 uur besteld = morgen in huis</title></svg>
23562 <span> 23563 Tot 22:30 uur besteld = morgen in huis <span 23564 class="absolute group cursor-pointer inline-flex items-center justify-center"> 23565 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-1 h-5 w-5" width="24" height="24" role="img"> 23566 <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 23567<title/></svg> 23568 <span class="absolute top-full left-1/2 -translate-x-[80%] 23569 p-2 bg-white text-black text-sm rounded shadow-lg opacity-0 23570 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none z-50 break-words w-[70vw] max-w-[240px]"> 23571 Pakketten op werkdagen besteld worden in 95% van de gevallen de volgende werkdag bezorgd </span> 23572 </span> 23573 </span> 23574 </div> 23575 </div> 23576</form> 23577 </li> 23578 </ul> 23579 </div> 23580 23581
23581<script> 23582 function initToolbar_6ac3024e9a8f4() { 23583 return { 23584 options: {"productListToolbarForm":{"mode":"product_list_mode","direction":"product_list_dir","order":"product_list_order","limit":"product_list_limit","modeDefault":"list","directionDefault":"asc","orderDefault":"position","limitDefault":20,"url":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal","formKey":"f0jqOmkURacY2mRh","post":false,"page":"p"}}.productListToolbarForm || {}, 23585 getUrlParams: function () { 23586 let decode = window.decodeURIComponent, 23587 urlPaths = this.options.url.split('?'), 23588 urlParams = urlPaths[1] ? urlPaths[1].split('&') : [], 23589 params = {}, 23590 parameters, i; 23591 23592 for (i = 0; i < urlParams.length; i++) { 23593 parameters = urlParams[i].split('='); 23594 params[decode(parameters[0])] = parameters[1] !== undefined ? 23595 decode(parameters[1].replace(/\+/g, '%20')) : 23596 ''; 23597 } 23598 23599 return params; 23600 }, 23601 getCurrentLimit: function () { 23602 return this.getUrlParams()[this.options.limit] || this.options.limitDefault; 23603 }, 23604 getCurrentPage: function () { 23605 return this.getUrlParams()[this.options.page] || 1; 23606 }, 23607 changeUrl(paramName, paramValue, defaultValue) { 23608 let urlPaths = this.options.url.split('?'), 23609 baseUrl = urlPaths[0], 23610 paramData = this.getUrlParams(), 23611 currentPage = this.getCurrentPage(), 23612 newPage; 23613 23614 /** 23615 * calculates the page on which the first item of the current page will 23616 * be with the new limit and sets that number as the new page 23617 */ 23618 if (currentPage > 1 && paramName === this.options.limit) { 23619 newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1; 23620 23621 if (newPage > 1) { 23622 paramData[this.options.page] = newPage; 23623 } else { 23624 delete paramData[this.options.page]; 23625 } 23626 } 23627 23628 paramData[paramName] = paramValue; 23629 23630 if (this.options.post) { 23631 hyva.postForm({action: baseUrl, data: paramData, skipUenc: true}); 23632 } else { 23633 if (paramValue === defaultValue.toString()) { 23634 delete paramData[paramName]; 23635 } 23636 paramData = Object.keys(paramData).length === 0 23637 ? '' 23638 : '?' + (new URLSearchParams(paramData)); 23639 location.href = baseUrl + paramData 23640 } 23641 } 23642 } 23643 } 23644</script>
23644 23645 <div x-data="initToolbar_6ac3024e9a8f4()" 23646 class="toolbar toolbar-products grid mb-10 grid-flow-row gap-2 items-center"> 23647 <div class="pagination flex items-center justify-center"> 23648 23649 <div class="flex items-center justify-center col-span-2 pages"> 23650 <strong class="sr-only label pages-label">Pagina</strong> 23651 <ul class="relative z-0 inline-flex items pages-items gap-0.5" 23652 aria-label="Pagina" 23653 > 23654 <li class="relative z-10 inline-flex items-center justify-center item h-10 w-10 -ml-px bg-transparent 23655 text-black text-base font-normal border border-black rounded-md transition 23656 duration-150 ease-in-out focus:outline-none"> 23657 <div class="px-4 py-2 cursor-default page"> 23658 <span class="sr-only label"> 23659 U lees momenteel pagina </span> 23660 <span>1</span> 23661 </div> 23662 </li> 23663 <li class="relative inline-flex items-center justify-center item w-10 h-10 -ml-px bg-transparent 23664 text-gray-500 text-base font-normal transition hover:bg-gray-100 hover:text-black rounded-md 23665 focus:z-10 23666 active:bg-gray-100 active:text-gray-500"> 23667 <a href="https://www.123drogisterij.nl/incontinentiemateriaal?p=2" class="px-4 py-2 page"> 23668 <span class="sr-only label">Pagina</span> 23669 <span>2</span> 23670 </a> 23671 </li> 23672 <li class="relative inline-flex items-center justify-center item w-10 h-10 -ml-px bg-transparent 23673 text-gray-500 text-base font-normal transition hover:bg-gray-100 hover:text-black rounded-md 23674 focus:z-10 23675 active:bg-gray-100 active:text-gray-500"> 23676 <a href="https://www.123drogisterij.nl/incontinentiemateriaal?p=3" class="px-4 py-2 page"> 23677 <span class="sr-only label">Pagina</span> 23678 <span>3</span> 23679 </a> 23680 </li> 23681 <li class="relative inline-flex items-center justify-center item w-10 h-10 -ml-px bg-transparent 23682 text-gray-500 text-base font-normal transition hover:bg-gray-100 hover:text-black rounded-md 23683 focus:z-10 23684 active:bg-gray-100 active:text-gray-500"> 23685 <a href="https://www.123drogisterij.nl/incontinentiemateriaal?p=4" class="px-4 py-2 page"> 23686 <span class="sr-only label">Pagina</span> 23687 <span>4</span> 23688 </a> 23689 </li> 23690 <li class="relative inline-flex items-center justify-center item w-10 h-10 -ml-px bg-transparent 23691 text-gray-500 text-base font-normal transition hover:bg-gray-100 hover:text-black rounded-md 23692 focus:z-10 23693 active:bg-gray-100 active:text-gray-500"> 23694 <a href="https://www.123drogisterij.nl/incontinentiemateriaal?p=5" class="px-4 py-2 page"> 23695 <span class="sr-only label">Pagina</span> 23696 <span>5</span> 23697 </a> 23698 </li> 23699 <li class="relative inline-flex items-center item -ml-px text-black text-base 23700 pages-item-next transition hover:bg-gray-100 hover:text-black rounded-md focus:z-10" 23701 > 23702 <a class="action next" 23703 href="https://www.123drogisterij.nl/incontinentiemateriaal?p=2" 23704 title="volgende">
23705 <span class="sr-only label">Pagina</span> 23706 <div class="inline-flex items-center gap-2 px-3 py-2"> 23707 <span> 23708 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="w-4 h-4" width="16" height="16" role="img"> 23709 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"/> 23710<title>volgende</title></svg> 23711 </span> 23712 </div> 23713 </a> 23714 </li> 23715 </ul> 23716 </div> 23717 </div> 23718 </div> 23719 </section> 23720
23720<script style="display:none"> 23721 document.addEventListener("DOMContentLoaded", function () { 23722 var element = document.querySelector(".mfgtm-list-product-812a54a0dd1e26c0be6063458afc223a44f74ed0c99d56cdbdf56f7f44deaf73318787083 "); 23723 var checkVisibility = function () { 23724 var rect = element.getBoundingClientRect(); 23725 if (rect && rect.top <= window.innerHeight && rect.bottom >= 0) { 23726 23727 window.dataLayer = window.dataLayer || []; 23728 window.dataLayer.push({"event":"view_item_list","ecommerce":{"item_list_id":"category_incontinentiemateriaal","item_list_name":"Category Incontinentiemateriaal","items":[{"item_id":"ZL-81800","item_name":"Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen","item_url":"https:\/\/www.123drogisterij.nl\/swimmm-zwemluiers-voor-volwassenen","item_brand":"","price":29.99,"google_business_vertical":"retail"},{"item_id":"WO-68187","item_name":"Wasbare matrasbeschermer met instopstroken - 85 x 90 cm.","item_url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm","item_brand":"","price":11.49,"google_business_vertical":"retail"},{"item_id":"WO-68189","item_name":"Wasbare matrasbeschermer - 85 x 90 cm.","item_url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-85-x-90-cm","item_brand":"","price":10.49,"google_business_vertical":"retail"},{"item_id":"750403","item_name":"TENA Men Protective Shield - Level 0","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-protective-shield-level-0","item_brand":"","price":5.72,"google_business_vertical":"retail"},{"item_id":"750651","item_name":"TENA For Men Level 1","item_url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-1","item_brand":"","price":10.49,"google_business_vertical":"retail"},{"item_id":"750776","item_name":"TENA For Men Level 2","item_url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-2","item_brand":"","price":10.49,"google_business_vertical":"retail"},{"item_id":"750830","item_name":"TENA For Men Level 3","item_url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-3","item_brand":"","price":10.49,"google_business_vertical":"retail"},{"item_id":"772610","item_name":"TENA Men Active Fit Large\/Extra Large","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-large-extra-large","item_brand":"","price":15.98,"google_business_vertical":"retail"},{"item_id":"772512","item_name":"TENA Men Active Fit Small\/Medium","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-small-medium","item_brand":"","price":15.98,"google_business_vertical":"retail"},{"item_id":"798306","item_name":"TENA Men Premium Fit Large\/Extra Large","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-large-extra-large","item_brand":"","price":17.81,"google_business_vertical":"retail"},{"item_id":"798308","item_name":"TENA Men Premium Fit Small\/Medium","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-small-medium","item_brand":"","price":17.81,"google_business_vertical":"retail"},{"item_id":"772802","item_name":"TENA Men Active Fit Pants Normal L\/XL","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-l-xl","item_brand":"","price":14.83,"google_business_vertical":"retail"},{"item_id":"772702","item_name":"TENA Men Active Fit Pants Normal S\/M","item_url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-s-m","item_brand":"","price":14.83,"google_business_vertical":"retail"},{"item_id":"760982","item_name":"TENA Discreet Maxi Night","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi-night","item_brand":"","price":7.59,"google_business_vertical":"retail"},{"item_id":"760977","item_name":"TENA Discreet Maxi","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi","item_brand":"","price":7.59,"google_business_vertical":"retail"},{"item_id":"761660","item_name":"TENA Discreet Extra Plus","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra-plus","item_brand":"","price":8.93,"google_business_vertical":"retail"},{"item_id":"760692","item_name":"TENA Discreet Extra","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra","item_brand":"","price":8.93,"google_business_vertical":"retail"},{"item_id":"761730","item_name":"TENA Lady Super","item_url":"https:\/\/www.123drogisterij.nl\/tena-lady-super","item_brand":"","price":19.12,"google_business_vertical":"retail"},{"item_id":"760806","item_name":"TENA Discreet Normaal","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-normaal","item_brand":"","price":8.91,"google_business_vertical":"retail"},{"item_id":"760364","item_name":"TENA Discreet Mini","item_url":"https:\/\/www.123drogisterij.nl\/tena-discreet-mini","item_brand":"","price":8.93,"google_business_vertical":"retail"}]},"magefanUniqueEventId":"view_item_list_8315d55634ca4d1f18cbd5894d6574975e46e009d11d8d2d602f07c8e4200f90","ecomm_pagetype":"category","_clear":"true","google_tag_params":{"ecomm_pagetype":"category","ecomm_pcat":"","ecomm_prodid":"ZL-81800,WO-68187,WO-68189,750403,750651,750776,750830,772610,772512,798306,798308,772802,772702,760982,760977,761660,760692,761730,760806,760364","ecomm_pname":"Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen,Wasbare matrasbeschermer met instopstroken - 85 x 90 cm.,Wasbare matrasbeschermer - 85 x 90 cm.,TENA Men Protective Shield - Level 0,TENA For Men Level 1,TENA For Men Level 2,TENA For Men Level 3,TENA Men Active Fit Large\/Extra Large,TENA Men Active Fit Small\/Medium,TENA Men Premium Fit Large\/Extra Large,TENA Men Premium Fit Small\/Medium,TENA Men Active Fit Pants Normal L\/XL,TENA Men Active Fit Pants Normal S\/M,TENA Discreet Maxi Night,TENA Discreet Maxi,TENA Discreet Extra Plus,TENA Discreet Extra,TENA Lady Super,TENA Discreet Normaal,TENA Discreet Mini"},"customer_firstname":getMfGtmCustomerData().customer_firstname,"customer_lastname":getMfGtmCustomerData().customer_lastname,"customer_email":getMfGtmCustomerData().customer_email,"customer_dob":getMfGtmCustomerData().customer_dob,"customer_gender":getMfGtmCustomerData().customer_gender,"customer_telep
23728hone":getMfGtmCustomerData().customer_telephone,"customer_postcode":getMfGtmCustomerData().customer_postcode,"customer_city":getMfGtmCustomerData().customer_city,"customer_region":getMfGtmCustomerData().customer_region,"customer_country_id":getMfGtmCustomerData().customer_country_id,"customer_identifier":getMfGtmCustomerData().customer_identifier,"customerGroup":getMfGtmCustomerData().customerGroup}); 23729 23730 window.removeEventListener("scroll", checkVisibility); 23731 } 23732 }; 23733 23734 window.addEventListener("scroll", checkVisibility); 23735 checkVisibility(); 23736 }); 23737 </script>
23737
23737<script nonce="azE4bWg3dmRjeDM1ZnlvYmUyNGQwN3Rzbjd3eDI3ZDM="> 23738 function hasWebP() { 23739 var elem = document.createElement('canvas'); 23740 23741 if (!!(elem.getContext && elem.getContext('2d'))) { 23742 return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0; 23743 } 23744 return false; 23745 } 23746 23747 if (hasWebP()) { 23748 document.body.classList.add("webp"); 23749 } else { 23750 document.body.classList.add("no-webp"); 23751 }</script>
23751<script></script>
23751<div id="category-view-container" class="category-view"> <div class="category-description prose md:prose-base"> 23752 <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><h2>Incontinentiemateriaal<picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/TENA_forMen_assortiment.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/TENA_forMen_assortiment.jpg" alt="incontinentiemateriaal" width="350" loading="lazy"></picture></h2> 23753<h3><strong><br>Inhoudsopgave</strong></h3> 23754<p> </p> 23755<ul> 23756<li><a href="#Incontinentiemateriaal-van-alle-tijden">Incontinentiemateriaal: van alle tijden</a></li> 23757<li><a href="#Welke-producten-zijn-er">Welke incontinentiematerialen zijn er?</a></li> 23758<li><a href="#inco's-incomateriaal">De termen inco's en inco materiaal</a></li> 23759<li><a href="#Kiezen-van-het-juiste-incontinentiemateriaal">Kiezen van het juiste incontinentiemateriaal</a></li> 23760<li><a href="#Incontinentiemateriaal-bij-ongewenst-verlies-van-ontlasting">Welk incontinentiemateriaal bij ongewenst verlies van ontlasting?</a></li> 23761<li><a href="#Incontinentiemateriaal-ouderen">Incontinentiemateriaal ouderen: zijn er speciale producten?</a></li> 23762<li><a href="#Incontinentieproducten-voor-mannen">Waarom hebben mannen eigen incontinentiematerialen?</a></li> 23763<li><a href="#Wel-of-geen-pants-gebruiken">Wel of geen pants gebruiken?</a></li> 23764<li><a href="#Hoe-vaak-moet-je-incontinentiemateriaal-verwisselen">Hoe vaak moet je bij incontinentie materiaal verwisselen?</a></li> 23765<li><a href="#Welk-incontinentiemateriaal-voor-de-nacht">Welk incontinentiemateriaal voor de nacht?</a></li> 23766<li><a href="#Gebruik-van-incontinentiemateriaal">Hoe gebruik je incontinentiemateriaal: vouwen en lucht inbrengen</a></li> 23767<li><a href="#Plastic-slips">Plastic slips, wat is het verschil met een ademend incomateriaal?</a></li> 23768<li><a href="#Plastic-broekje">Plastic broekje, wel of niet gebruiken?</a></li> 23769<li><a href="#Huidverzorging-bij-incontinentie">Huidverzorging bij gebruik inco materiaal</a></li> 23770<li><a href="#Online-incontinentiemateriaal-kopen-waar-op-letten">Online incontinentiemateriaal bestellen: waar moet je op letten?</a></li> 23771</ul> 23772<p> </p> 23773<h2 id="Incontinentiemateriaal-van-alle-tijden" style="padding-top: 50px;"><strong>Incontinentiemateriaal: van alle tijden</strong></h2> 23774<p> </p> 23775<p>Incontinentie is van alle tijden. Dat geldt dus ook voor het gebruik van incontinentiemateriaal om urine en ontlasting op te vangen, al waren die vroeger erg primitief. Bladeren van planten en dierenvellen vormden in de oudheid de grondstoffen voor luiers.</p> 23776<p> </p> 23777<p>Later werden dat katoenen en linnen doeken. Na gebruik werden ze uitgespoeld en gedroogd in de zon, bij het vuur of bij de kachel. Toen er steeds meer kennis kwam over bacteriën, gingen moeders de katoenen luiers in ketels koken. Dat was een tijd- en energieverslindende bezigheid.</p> 23778<p> </p> 23779<p>De voorloper van de luier zoals we die nu kennen, werd in de jaren vijftig bedacht door de Amerikaanse moeder Marion Donovan. Ze maakte de eerste van een douchegordijn en later van parachutestof. Al snel kwamen de eerste wegwerpluiers. Die hadden maar een klein absorptievermogen en waren daardoor duur in het gebruik.</p> 23780<p> </p> 23781<p>Schone papierpulp -cellulose- bleek geschikt als vulling voor incontinentiematerialen, maar de wegwerpluiers waren nog wel dik en zwaar. Dat verandert wanneer er aan de cellulose <em>een super absorberend polymeer</em> (SAP) wordt toegevoegd. Deze SAP-korrels zijn dé revolutie die ervoor zorgen dat luiers tegenwoordig extreem grote hoeveelheden urine kunnen opnemen. Ze zuigen het op, zetten het om in een gel en kapselen vervelende geurtjes in. De korrels kunnen wel 1000 x het eigen gewicht aan vocht opnemen!</p> 23782<p> </p> 23783<p>Het gewicht van een wegwerpluier is daarom nu nog maar de helft van wat het vijftien jaar geleden was. En de industrie blijft werken aan het verbeteren van deze producten. Ze worden steeds dunner, kunnen meer opnemen, zijn beter in het binnenhouden van ongewenste geurtjes en sluiten beter af rond benen en middel, zodat de kans op lekken steeds kleiner wordt.</p> 23784<p> </p> 23785<p>= = = = = = = = = = = = = = =</p> 23786<h2 id="Welke-producten-zijn-er" style="padding-top: 50px;"><strong>Welke incontinentiematerialen zijn er?</strong></h2> 23787<p> </p> 23788<p>Wanneer je last hebt van incontinentie zijn er talloze incontinentiematerialen die de gevolgen van het probleem ondervangen. Van luiers tot inleggers, van matrasbeschermers tot huidverzorgingsproducten. Het is echter vaak wel even zoeken voor je het juiste product hebt gevonden.</p> 23789<p> </p> 23790<h3 style="text-align: center;"><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/HeaderMix2.webp"><img style="float: right;
23790" src="https://www.123drogisterij.nl/media/wysiwyg/HeaderMix2.jpg" alt="Soorten incontinentiemateriaal" width="350" height="157" loading="lazy"></picture></h3> 23791<h3> </h3> 23792<h3><strong>Welke soorten incontinentiemateriaal zijn er?</strong></h3> 23793<p><strong> </strong></p> 23794<p>De eerste term die bij ons opkomt als het gaat over ongewenst urineverlies is: de luier. Dit zegt Wikipedia erover: âEen luier is een absorberend kledingstuk dat in de regel wordt gebruikt door mensen en soms dieren. Hierbij gaat het om baby's en jonge kinderen (of dieren, zoals apen) die onzindelijk zijn, of om mensen die incontinent zijn, zoals dat (deels) het geval kan zijn bij bejaarden en lichamelijk of mentaal gehandicapten.â</p> 23795<p> </p> 23796<p>âLuierâ is dus een containerbegrip. Voor volwassenen spreken we liever over de verschillende typen incontinentiematerialen:</p> 23797<p> </p> 23798<ul> 23799<li>Pants, ook wel luierbroek of incontinentiebroekje genoemd.</li> 23800<li>Slip, de âluier voor volwassenenâ, in België wordt het plakpamper genoemd.</li> 23801<li>Inlegger, ook bekend onder de naam inlegluier.</li> 23802<li>Flex, een heupbandsysteem dat veel in zorginstellingen wordt gebruikt.</li> 23803</ul> 23804<p> </p> 23805<h2><strong>Incontinentiemateriaal: Pants</strong><strong><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/incontinentiebroekje.webp"><img style="float: left;" src="https://www.123drogisterij.nl/media/wysiwyg/incontinentiebroekje.jpg" alt="Incontinentiebroekje" width="350" height="350" loading="lazy"></picture></strong></h2> 23806<p> </p> 23807<p><a title="Tena pants" href="https://www.123drogisterij.nl/incontinentie-pants/tena-pants/">Pants</a> zijn dus broekjes waar je simpelweg in- en uitstapt. Het heeft veel weg van normaal ondergoed, het is alleen een stukje dikker door de watten die erin zijn verwerkt. De broekjes zijn wat duurder dan bijvoorbeeld slips en inleggers, maar ze hebben ook grote voordelen.</p> 23808<p> </p> 23809<ul> 23810<li>Ze vangen de urine en/of ontlasting uitstekend op.</li> 23811<li>U bent goed bedekt door het product.</li> 23812<li>U kunt ze na gebruik in zijn geheel weggooien.</li> 23813<li>U ziet ze onder uw kleding nauwelijks zitten.</li> 23814</ul> 23815<p> </p> 23816<p><strong> </strong></p> 23817<h2><strong>Incontinentiemateriaal: </strong><strong>Slips</strong></h2> 23818<h2><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/tena_slip.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/tena_slip.jpg" alt="Tena Slip" width="350" height="270" loading="lazy"></picture></h2> 23819<p> </p> 23820<p><a title="Tena Slips" href="https://www.123drogisterij.nl/incontinentie-slips/tena-slips/">Slips</a> lijken het meest op de luier die we van babyâs kennen. Ze worden met plakstrips op de heup vastgezet. Na gebruik gaan ze de vuilnisbak in. Een voordeel van een slip is dat je ze zo strak kan doen als nodig, waardoor de kans op doorlekken minimaal is.</p> 23821<p> </p> 23822<p> </p> 23823<p>Slips zijn goedkoper dan pants. Dit heeft te maken met het elastiek dat in een pants wordt gebruikt. Het is zeer duur om de 30 meter elastiek in het broekje te verwerken en tegelijk de wattenpulp en vocht opnemende SAP-korrels erin te plaatsen. Het produceren van slips is gemakkelijker en goedkoper.</p> 23824<p> </p> 23825<h3><strong>Waarom mensen kiezen voor slips?</strong></h3> 23826<p> </p> 23827<ul> 23828<li>Slips hebben een superieure absorptie. Ze gaan tot de hoogste opvang van alle producten, samen met inleggers.</li> 23829<li>Waar pants gaan afzakken wanneer ze te veel urine opnemen, speelt dit bij slips veel minder. U kunt ze ook opnieuw vastzetten, zodat ze weer goed gefixeerd zijn.</li> 23830<li>Ook voor mindervalide mensen is de slip gemakkelijk te gebruiken.</li> 23831</ul> 23832<p> </p> 23833<p><strong> </strong></p> 23834<h2><strong>Incontinentiemateriaal:</strong> <strong>Inleggers</strong></h2> 23835<p> </p> 23836<p><a title="Tena Inleggers" href="https://www.123drogisterij.nl/incontinentie-inleggers/tena-inleggers/">Inleggers</a> zijn stroken vocht opnemend materiaal. Ze kunnen los in een goed aansluitende onderbroek of in een speciale fixatiebroek worden gebruikt. Inleggers kunnen flinke hoeveelheden urine opnemen, de grootste wel tot 4 liter.</p> 23837<p> </p> 23838<h3 style="text-align: center;"><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/new/tena_comfort.webp"><img style="float: left;" src="https://www.123drogisterij.nl/media/wysiwyg/new/tena_comfort.jpg" alt="Tena Comfort" width="350" height="332" loading="lazy"></picture></h3> 23839<p>Er zijn veel verschillende inleggers op de markt. Ze verschillen in het materiaal waarvan ze zijn vervaardigd, de hoeveelheid vocht die ze kunnen opnemen en het model.</p> 23840<p> </p> 23841<p>Verwar inleggers overigens niet met een inlegkruisje. Dat is een zeer dun maandverband, vooral bedoeld om lichte menstruatie en vochtafscheiding op te vangen. In maandverband zit alleen wattenpulp dat nauwelijks in staat is vocht op te vangen en vast te houden.</p> 23842<p> </p> 23843<p>Het zijn juist de vocht opnemende SAP-korrels in incomaterialen die ervoor zorgen dat urine wordt geabsorbeerd en omgezet in een gel die geen vocht meer loslaat. In maandverband zitten deze korrels niet.</p> 23844<h3 style="text-align: left;"><br><br><strong>Inlegger in pants</strong></h3> 23845<h3 style="text-align: left;"><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/depend_inlay_classic.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/depend_inlay_classic.jpg" alt="incontinentiematerialen van Depend" width="250" height="139" loading="lazy"></picture></h3> 23846<p> </p> 23847<p>Mensen gaan vaak zelf aan de slag met hun incontinentiemateriaal. Wanneer ze zich onzeker voelen, gebruiken ze bijvoorbeeld een inlegger in een pants. Ze redeneren: als mijn inlegger vol zit, dan stroomt het over in de pants. Maar zo werkt het niet.</p> 23848<p>Als een inlegger al vol zit, dan loopt de urine erlangs, vaak langs de benen. Sterker nog: een inlegger in een pants of slip geeft alleen maar meer kans op lekkage. Het is dus heel belangrijk om het juiste materiaal te kiezen.</p> 23849<p> </p> 23850<p>Er bestaan overigens wel speciale inleggers voor in pants of slips om de opname van urine iets te verhogen. Dit zijn bijvoorbeeld:</p> 23851<p> </p> 23852<ul> 23853<li><a title="Attends Slipinleg Deoplus" href="https://www.123drogisterij.nl/merken-incontinentie/attends-slipinleg-deoplus/">Attends Slipinleg Deoplus</a></li> 23854<li><a title="Depend Slip Inlay" href="https://www.123drogisterij.nl/depend-slip-inlay/">Depend Slip Inlay</a></li> 23855<li><a title="Absorin Classic Inlay Midi en Maxi" href="https://www.123drogisterij.nl/merken-incontinentie/absorin-incontinentie/absorin-inlay/">Absorin Classic Inlay Midi en Maxi</a></li> 23856</ul> 23857<p> </p> 23858<p> </p> 23859<h2><strong>Incontinentiemateriaal: </strong><strong>Flex</strong></h2> 23860<h2 style="text-align: right;"><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/tena_flex.webp"><img style="float: left;" src="https://www.123drogisterij.nl/media/wysiwyg/tena_flex.jpg" alt="Tena Flex" width="350" height="350" loading="lazy"></picture></h2> 23861<p> </p> 23862<p>Bijna elke fabrikant van incontinentiemateriaal heeft een flex in het assortiment.</p> 23863<p> </p> 23864<p><a title="Tena Flex" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-flex/">De flex</a> is door TENA ontwikkeld als antwoord op vragen van professionals in verpleging en verzorging. Vroeger werden mensen, bijvoorbeeld in verpleeghuizen, door twee verzorgenden naar het toilet gebracht. Er was voldoende personeel met voldoende tijd om samen, bijvoorbeeld, een slip bij een bewoner te verwisselen. Dat was handig, want in je eentje, staand, een slip goed aanleggen, is lastig.</p> 23865<p>Tegenwoordig brengt één verzorgende de bewoners naar het toilet en het bed. Dat levert problemen op bij het aantrekken van incontinentiematerialen. Want je komt handen te kort en het is zwaar. Zeker bij grotere mensen waar je moeilijk met de armen omheen kan.</p> 23866<p> </p> 23867<p>Bij het aanleggen van een slip moet een verzorgende bukken en tegelijk draaien, dat is ergonomisch een slechte beweging. Met de flex kunnen ze rechtop blijven, wat veel onnodige belasting van het lichaam voorkomt. De flex wordt eerst met een band rond het middel vastgezet, waarna het absorberende deel er aan de voor- of achterkant tegenaan wordt âgekleefdâ.</p> 23868<p> </p> 23869<p>Zo kan de flex door één verzorgende of een gebruiker zelf, gemakkelijk
23869worden aangedaan. Voor veel mantelzorgers is de flex een mogelijke oplossing die ze nog niet kennen.<br><br></p> 23870<h2><strong>Incontinentiemateriaal: </strong><strong>Fixatiebroekjes</strong></h2> 23871<p> </p> 23872<p>Inleggers kunnen worden gebruikt samen met een fixatiebroekje. Deze relatief strakke onderbroekjes houden de inlegger op zijn plaats, waardoor het op de juiste plek ligt om maximaal vocht op te nemen.</p> 23873<p> </p> 23874<p>Er zijn <a title="Netbroekjes: Absorin Fixatie Broekjes" href="https://www.123drogisterij.nl/fixatie-broekjes-incontinentie/absorin-fixatie-broekjes/">netbroekjes</a> voor eenmalig gebruik, zoals de broekjes die in het kraambed worden gebruikt. Ook zijn er broekjes die lijken op boxershorts. Ze kunnen talloze keren worden gebruikt en zijn uitwasbaar op 60 graden.</p> 23875<p><br>Wanneer de juiste inlegger en fixatiebroek worden gebruikt, is de kans op doorlekken minimaal.</p> 23876<p> </p> 23877<p>Het is een uitstekende, veilige, hygiënische en betaalbare oplossing bij verschillende vormen van incontinentie.<strong><br><br></strong></p> 23878<p> </p> 23879<h2 style="text-align: left;"><strong>Incontinentiemateriaal: </strong><strong>Bedonderlegger / matrasbeschermer</strong><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/Tena_Bed_Plus_Wings_1.webp"><img style="float: left;" src="https://www.123drogisterij.nl/media/wysiwyg/Tena_Bed_Plus_Wings_1.jpg" alt="Matrasbeschermer / Wegwerponderleggers" width="350" height="263" loading="lazy"></picture></h2> 23880<p> </p> 23881<p>Een bijkomend probleem van incontinentie is dat het bed nat kan worden. Bijvoorbeeld wanneer het incontinentiemateriaal tijdens de slaap zo verzadigd raakt dat het gaat lekken. Of omdat het verschuift door woelen tijdens de slaap. Ook zijn er mensen die âs nachts aan hun materiaal plukken.</p> 23882<p> </p> 23883<p>In al deze gevallen bestaat het gevaar dat urine en/of ontlasting het matras in lekt. Het gevolg is dat het matras lang nat blijft en er ongewenste geurtjes in blijven zitten. (Overigens gebruiken mensen die overmatig transpireren vaak ook matrasbeschermers.)</p> 23884<p> </p> 23885<p>Een matrasbeschermer is voor al deze problemen een uitstekende oplossing. Maar wat voor matrasbeschermers zijn er? En welke moet u kiezen?<br><br></p> 23886<h2><strong>Wegwerponderleggers</strong></h2> 23887<p> </p> 23888<p><a title="Tena Bed Onderleggers" href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/tena-bed-onderleggers/">Wegwerponderleggers</a> zijn dunne matjes met een vulling van watten. Ze worden ook wel bedmatjes, steeklakens of incontinentiematjes genoemd.</p> 23889<p> </p> 23890<p>De bovenste laag voelt aan als een soort katoen. Het bevat heel veel gaatjes waardoor het vocht er snel in kan trekken. Daar wordt het opgeslagen in de âfluffâ, een soort wattenpulp. Dit materiaal is prima in staat om relatief veel urine vast te houden. Van sommige onderleggers beweren de fabrikanten dat ze wel 2 liter urine kunnen opnemen.</p> 23891<p> </p> 23892<p>Daar moet worden bij aangetekend dat de wegwerponderlegger bij die hoeveelheden helemaal verzadigd is. Dat betekent: als je hem zou oppakken en naar beneden zou laten hangen, dan loopt het vocht er gewoon uit. Zoveel urine wilt u dus niet in een onderlegger hebben. U zou dan op een zeer natte onderlegger liggen.</p> 23893<p> </p> 23894<p>De onderlaag van de wegwerponderlegger bestaat eigenlijk altijd uit een flexibele kunststof waarvan de belangrijkste eigenschap is dat het geen vocht doorlaat. Dat is natuurlijk ook wat de gebruiker verwacht van deze matrasbeschermer: dat gelekte urine er nooit doorheen kan druppelen.</p> 23895<p> </p> 23896<p>Wegwerponderleggers kunnen natuurlijk ook in de stoel, rolstoel en in de auto worden gebruikt. Maar er zijn nog veel meer toepassingen: op de operatietafel, bij het verzorgen van wonden, het afnemen van bloed, bij de tandarts, maar ook in de hondenmand, bij incontinente dieren, et cetera.</p> 23897<h3> </h3> 23898<h3><strong>Wegwerponderleggers zijn er in verschillende maten:</strong></h3> 23899<p> </p> 23900<ul> 23901<li>40 x 60 centimeter</li> 23902<li>60 x 60 centimeter</li> 23903<li>90 x 60 centimeter</li> 23904<li>80 x 170 centimeter</li> 23905</ul> 23906<p> </p> 23907<p>Deze laatste matrasbeschermer van 80 x 170 cm heeft instopstroken. Die hebben als doel om de onderleggers op hun plaats te houden. Wanneer mensen slapen, draaien ze meerdere keren per nacht om. Soms liggen mensen een tijd te woelen waardoor lakens en dekens opgerold raken. Een onderlegger die onder het laken ligt, zal dan ook draaien of zelfs verfrommelen. Op dat moment is het bed niet meer of nog slechts gedeeltelijk beschermd.</p> 23908<p>Instopstroken worden onder het matras gestoken waardoor de onderlegger strakker over het bed kan worden gespannen. De kans op schuiven en verfrommelen wordt veel kleiner en het bed is beter beschermd. Daarom is bovenstaand product erg populair, en niet alleen bij onrustige slapers.</p> 23909<p> </p> 23910<p> </p> 23911<h2><strong>De wasbare onderlegger</strong></h2> 23912<p> </p> 23913<p>Veel mensen kiezen liever voor <a title="Wasbare onderleggers" href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/wasbare-onderleggers/">een wasbare onderlegger</a> dan een wegwerponderlegger. Zij hebben hier verschillende redenen voor:</p> 23914<p> </p> 23915<ul> 23916<li>Wasbare producten zijn erg duurzaam: je kunt ze wel 300 keer wassen. Dat geeft ze een zeer lange levensduur en het scheelt veel afval in de vuilnisbak.</li> 23917</ul> 23918<p> </p> 23919<ul> 23920<li>Ze zijn zacht en comfortabel. Dat maakt ze prettig om op te slapen. Ze zijn ook nog geruisloos, in tegenstelling tot veel wegwerponderleggers die nog weleens kraken wanneer je er op gaat liggen.</li> 23921</ul> 23922<p> </p> 23923<ul> 23924<li>Ze bieden een uitstekende bescherming tegen vocht. Door de waterdichte onderkant is het onmogelijk dat er urine doorheen lekt. Ook hebben ze een grote absorptie, sommige tot wel twee liter.</li> 23925</ul> 23926<p> </p> 23927<p style="text-align: center;"><picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/abso_matrasbeschermer_4_laags_-_3.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/abso_matrasbeschermer_4_laags_-_3.jpg" alt="Abso Matrasbeschermer" width="350" height="234" loading="lazy"></picture></p> 23928<p><br>Ook hierbij geldt weer dat je niet op een wasbare onderlegger wilt liggen die volledig verzadigd is. Deze producten bevatten geen SAP-korrels die het vocht omzetten in een gel.</p> 23929<p> </p> 23930<p>De urine blijft weliswaar opgesloten in de onderlegger, maar het moet er ook weer uit. Dat gebeurt tijdens het wassen. De kunststoffen die het vocht vasthouden, laten het dan weer los, zodat de urine en nare luchtjes volledig verdwijnen.</p> 23931<p> </p> 23932<h2><strong>Wegwerpsteeklaken</strong></h2> 23933<p>zijn heel dunne plastic lakens die over het matras worden gelegd of gespannen om deze te beschermen. Ze bestaan uit een flinterdun laagje plastic dat tegen een papieren laag zit aangeplakt. <a title="Tena Steeklakens" href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/tena-steeklakens/">Steeklakens</a> nemen zelf geen urine op. Ze houden het alleen tegen. Steeklakens worden op het matras gelegd en onder het matras gestoken om ze op hun plaats te houden.</p> 23934<p> </p> 23935<p>Ze zijn er in verschillende afmetingen.</p> 23936<h2 id="inco's-incomateriaal" style="padding-top: 50px;"><strong>De termen inco's en incomateriaal</strong></h2> 23937<p>Soms hoor je mensen spreken over inco's of incomateriaal, ook wel geschreven als "inco materiaal". Je hoort dit vaak in de zorg, waar mensen professioneel omgaan met deze producten.</p> 23938<p>Het is simpelweg een afkorting - zorgjargon. Inco is een afkorting van incontinentie. Inco's staat dus voor alle soorten incontinentiemateriaal die in de zorg worden gebruikt.</p> 23939<p>"Pak jij de inco's even?", kun je op afdelingen regelmatig horen.</p> 23940<p>Het woord incomateriaal is dus ook een afkorting. "Incontinentiemateriaal" is ook wel een lang woord als je het tiantallen keren per dag moet zeggen. Wij weten daar alles van af.</p> 23941<p> </p> 23942<p>= = = = = = = = = = = = = = =</p> 23943<p> </p> 23944<h2 id="Kiezen-van-het-juiste-incontinentiemateriaal" style="padding-top: 50px;"><strong>Kiezen van het juiste incontinentiemateriaal</strong></h2> 23945<p> </p> 23946<p>Over incontinentiemateriaal wordt niet altijd openlijk gesproken. Daarom informeren mensen zich op internet zo goed en zo kwaad als het gaat over de producten. De uitkomst is vaak dat niet de juiste informatie wordt gevonden en dat men verkeerde producten kiest. Of mensen gebruiken ze verkeerd, waardoor de kans op lekken toeneemt of huidirritaties ontstaan.</p> 23947<p> </p> 23948<h3><strong>Huidirritaties</strong></h3> 23949<p> </p> 23950<p>Dit gebeurt bijvoorbeeld wanneer mensen hun toevlucht zoeken in maandverbanden of inlegkruisjes. Deze zijn lekker dun en nauwelijks zichtbaar onder de kleding. Maar ze zijn gemaakt om slechts enkele dagen per maand te dragen. Er zitten geparfumeerde stoffen in om geurtjes tegen te houden. Bij dagelijks gebruik is de kans groot dat de huid geïrriteerd raakt.</p> 23951<p> </p> 23952<p><br>Inlegkruisjes bestaan vooral uit katoen en bevatten nauwelijks absorberende korrels, waardoor ze niet in staat zijn vocht op te slaan. Wanneer je deze inlegkruisjes of maandverbanden langdurig draagt, wordt het op de hu
23952id vochtig. Met schrale of rode plekken tot gevolg.</p> 23953<p> </p> 23954<h2><strong>Welk incontinentiemateriaal heeft u nodig?</strong></h2> 23955<p> </p> 23956<p>U begrijpt dat wij niet in een paar zinnen kunnen zeggen welk incontinentiemateriaal u nodig heeft. We geven u wel een aantal zaken mee die belangrijk zijn bij het maken van een goede keuze.</p> 23957<p><br>Zoals eerder gezegd kunt u kiezen uit een aantal verschillende producten.</p> 23958<p> </p> 23959<ul> 23960<li>Pants</li> 23961<li>Slips</li> 23962<li>Inleggers</li> 23963<li>Flex</li> 23964</ul> 23965<p> </p> 23966<p>Of u nu kiest voor een slip, pants, inlegger of flex hangt voor een groot deel af van uw persoonlijke voorkeur. Maar er is wel een aantal verschillen tussen de producten die bepalend zijn voor uw keuze.</p> 23967<p> </p> 23968<h3><strong>Hoeveel urine verlies ik?</strong></h3> 23969<p> </p> 23970<p>Allereerst over de opname die u nodig heeft.</p> 23971<p> </p> 23972<p>Wanneer iemand voor het eerst last krijgt van urineverlies zal hij of zij een paar druppels al ervaren als een groot probleem. Als je aan deze mensen vraagt: Hoeveel urine verliest u? Dan is het antwoord waarschijnlijk: heel veel, terwijl het in werkelijkheid een paar druppels zijn die met de lichtste incontinentiematerialen zijn op te vangen. Wanneer iemand 100cc (een klein kopje koffie) verliest wordt dat ervaren als heel veel.</p> 23973<p> </p> 23974<p>Er is een aantal manieren om het urineverlies te classificeren. In onderstaand plaatje is de verdeling een schaal van 5: van het verlies van enkele druppels tot het verlies van de gehele blaasinhoud</p> 23975<p> </p> 23976<p> </p> 23977<h2><strong>Lichte / matige / zware incontinentie</strong></h2> 23978<p> </p> 23979<p>Vaak wordt de mate urineverlies verdeeld in een schaal van 3.</p> 23980<p> </p> 23981<ul> 23982<li>Verliest u druppels of scheutjes? Dan kunt u spreken van <strong>licht urineverlies</strong>.</li> 23983<li>Verliest u scheuten, maar kunt u nog wel plassen als u naar het toilet gaat? Dan spreken we van <strong>matig urineverlies</strong>.</li> 23984<li>Leegt u uw hele blaas dan is er sprake van <strong>zware incontinentie</strong>.</li> 23985</ul> 23986<p> </p> 23987<h3><strong><em>Lichte incontinentie<br><br></em></strong></h3> 23988<p>Bij het verlies van druppels en een beetje meer, ligt het voor de hand om te kiezen voor een inlegger of voor wasbaar incontinentie ondergoed.</p> 23989<p> </p> 23990<p>U kunt dan denken aan inleggers als <a title="TENA For Men" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-for-men/">TENA For Men level 0, 1 en 2</a>. Maar ook de mannen-producten van <a title="Attends voor mannen" href="https://www.123drogisterij.nl/merken-incontinentie/attends-incontinentie/attends-for-men/">Attends</a>, <a title="Seni man" href="https://www.123drogisterij.nl/merken-incontinentie/seni/seni-man/">Seni</a>, <a title="Depend voor mannen" href="https://www.123drogisterij.nl/merken-incontinentie/depend/depend-for-men/"> Depend</a> en zijn zeer geschikt.</p> 23991<p>Voor dames zijn er de lijnen van TENA Lady, <a title="Depend inleggers" href="https://www.123drogisterij.nl/merken-incontinentie/depend/depend-inleggers/">Depend Verband</a>, <a title="Attends Soft" href="https://www.123drogisterij.nl/merken-incontinentie/attends-incontinentie/attends-soft/">Attends Soft</a> en <a title="Abena Abri-Light" href="https://www.123drogisterij.nl/merken-incontinentie/abena/abri-light/">Abena Abri-Light</a>. Ze bestaan uit verschillende producten die oplopen in afmeting en opnamecapaciteit.</p> 23992<p> </p> 23993<h3><br><strong><em>Matige incontinentie</em></strong></h3> 23994<p> </p> 23995<p>Voor matige incontinentie zijn er voor heren inleggers als Seni Man Super, <a title="Absorin Mincy Normal" href="https://www.123drogisterij.nl/absorin-mincy-normal/">Absorin Mincy Normal</a> of bijvoorbeeld de <a title="Attends for Men 4" href="https://www.123drogisterij.nl/attends-for-men-4/">Attends For Men 4</a>.</p> 23996<p> </p> 23997<p>Vrouwen kijken simpelweg in de vrouwenlijnen naar de zwaardere producten, zoals de TENA Lady Super en Maxi, de <a title="Abena Abri-Light super" href="https://www.123drogisterij.nl/merken-incontinentie/abena/abri-light/">Abena Abri-Light Super</a> of de <a title="Absorin Comfort Finette Maxi Night" href="https://www.123drogisterij.nl/absorin-comfort-finette-maxi-night/">Absorin Comfort Finette Maxi Night</a>.</p> 23998<p> </p> 23999<p>Mannen en vrouwen met matige incontinentie kunnen kiezen voor slips, zoals de <a title="Abena Abri-Form" href="https://www.123drogisterij.nl/merken-incontinentie/abena/abri-form/">Abena Abri-Form</a> met het cijfer 1 aan het einde. Ook de <a title="Tena Slips" href="https://www.123drogisterij.nl/incontinentie-slips/tena-slips/">TENA Slip Plus</a> is geschikt. De slips kunt u overigens de hele dag aanhouden, want ze hebben al een flinke absorptie voor mensen met matige incontinentie.</p> 24000<p> </p> 24001<p>Natuurlijk kunt u bij matige incontinentie kiezen voor een broekje. Mooie en discrete producten zijn de <a title="Tena Lady Pants" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-lady-pants-discreet/">TENA Lady Pants</a>, de <a title="TENA For Men" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-for-men/">TENA Men Premium Fit</a>, de <a title="Depend voor Mannen" href="https://www.123drogisterij.nl/merken-incontinentie/depend
24001/depend-for-men/">Depend Pants For Men</a> of de <a title="Seni Active Pants" href="https://www.123drogisterij.nl/merken-incontinentie/seni/seni-pants/">Seni Active Pants</a>.</p> 24002<p> </p> 24003<h3><br><strong><em>Zware incontinentie</em></strong></h3> 24004<p> </p> 24005<p>Bij zware incontinentie zijn er inleggers zoals <a title="TENA Comfort inleggers" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-comfort-confioair/">TENA Comfort</a>, <a title="Abena Abri-San" href="https://www.123drogisterij.nl/merken-incontinentie/abena/abri-san/">Abena Abri-San</a>, <a title="Depend Anatomic" href="https://www.123drogisterij.nl/merken-incontinentie/depend/depend-anatomic/"> Depend Anatomic</a> en <a title="Attends Contours" href="https://www.123drogisterij.nl/merken-incontinentie/attends-incontinentie/attends-contours/"> Attends Contours</a>. Al deze producten hebben een lijn die oploopt in grootte en opname.</p> 24006<p> </p> 24007<p>De lichtere producten heten meestal Normal, Plus of Extra, de zwaardere Super, Maxi of Ultima. Bij andere merken lopen de cijfers op, waarbij de 5 altijd minder opneemt dan de 10.</p> 24008<p> </p> 24009<p>Hetzelfde geldt voor alle <strong>slips, pants en flex-producten</strong>. Allemaal lopen ze op in absorptie. Ook hier termen als Light, Normal, Plus, of cijfers als 5 of 6 voor lichtere producten. De zwaardere heten Super, Maxi en Ultima.</p> 24010<p> </p> 24011<p><strong><em>Belangrijk om te weten!</em></strong></p> 24012<p> </p> 24013<ol> 24014<li>De grootste opname hebben een slip en inlegger. De pants neemt minder urine op. Dus als u zelf niet meer naar de wc gaat, dan zal een pants waarschijnlijk te weinig opnemen met lekken tot gevolg.</li> 24015</ol> 24016<p> </p> 24017<ol start="2"> 24018<li>Een slip zet u zelf met plakstrips vast. U kunt hem dus zo strak als nodig op het lichaam fixeren. Dat maakt de slip tot een heel veilige oplossing voor zowel overdag als âs nachts.</li> 24019</ol> 24020<p> </p> 24021<ol start="3"> 24022<li>Een inlegger kunt u gemakkelijk vervangen. U haalt hem simpelweg uit het ondergoed of de fixatiebroek en doet er een nieuwe in. Dat maakt ze zeer geschikt voor onderweg en voor minder mobiele mensen.</li> 24023</ol> 24024<p> </p> 24025<ol start="4"> 24026<li>Heeft u moeite om zelf een onderbroek aan te doen? Dan is een pants niet de oplossing voor u, want deze doet u aan zoals uw eigen ondergoed.</li> 24027</ol> 24028<p> </p> 24029<p>= = = = = = = = = = = = = = =</p> 24030<p> </p> 24031<h2 id="Incontinentiemateriaal-bij-ongewenst-verlies-van-ontlasting" style="padding-top: 50px;"><strong>Welk incontinentiemateriaal bij ongewenst verlies van ontlasting?</strong></h2> 24032<p> </p> 24033<p>Er is een groot verschil tussen het opvangen van urine en ontlasting. Urine vindt snel zijn weg in het incomateriaal en wordt daar door super absorberende korrels omgezet in een gel. Een stevigere ontlasting blijft op het materiaal liggen en trekt er niet in.</p> 24034<p> </p> 24035<p>Incontinentiemateriaal heeft dan vooral de functie om op te vangen en af te sluiten zodat er geen lekkage ontstaat en ongewenste geurtjes zoveel mogelijk binnenboord blijven.<br><br></p> 24036<p>Bij ontlastingsincontinentie zijn er in principe <strong>3 oplossingen</strong> (de flex laten we hier even buiten beschouwing):</p> 24037<p> </p> 24038<ol> 24039<li>Een inlegger</li> 24040<li>Een slip (de luier die u zelf op de heup vastplakt)</li> 24041<li>Een pants, ook wel luierbroekje genoemd.</li> 24042</ol> 24043<p> </p> 24044<p>Ook zijn er speciale inleggers voor het verlies van ontlasting, zoals de <a title="Attends Faecaal inlegger F6" href="https://www.123drogisterij.nl/attends-faecaal-inlegger-f6/">Attends F6</a> en de <a title="Abena San Premium Special - faeces" href="https://www.123drogisterij.nl/abena-san-special-premium-faeces/">Abena Abri-San Premium Special - faeces</a>.</p> 24045<p> </p> 24046<h3><strong>Welke oplossing u kiest, hangt van verschillende zaken af:</strong></h3> 24047<p> </p> 24048<ol> 24049<li>Hoeveel ontlasting u verliest.</li> 24050<li>Of u ook urine verliest.</li> 24051<li>Wanneer u verliest.</li> 24052<li>Of de ontlasting dik of dun is.</li> 24053<li>Bij welk materiaal u zich het prettigst voelt.</li> 24054</ol> 24055<p> </p> 24056<p> </p> 24057<h3><strong>Voordelen van de inlegger:</strong></h3> 24058<p> </p> 24059<ul> 24060<li>U kunt ze makkelijk onderweg verwisselen wanneer u heeft verloren.</li> 24061<li>Ze zijn relatief goedkoop in gebruik.</li> 24062<li>Ze zijn er in tal van soorten en maten. Blijkt een inlegger te klein, dan kunt u een grotere kiezen.</li> 24063</ul> 24064<p> </p> 24065<p> </p> 24066<h3><strong>Voordelen van de slip:</strong></h3> 24067<p> </p> 24068<ul> 24069<li>U zet ze zelf vast waardoor ze goed gefixeerd rond het lichaam zitten. Het is hierdoor vrijwel uit te sluiten dat er lekkage optreedt.</li> 24070<li>Ze hebben een zeer grote opname, wat belangrijk is wanneer u ook volledig urine-incontinent bent.</li> 24071<li>Ze zijn er in allerlei soorten maten, zodat u altijd een product kunt vinden dat bij uw wensen past.</li> 24072</ul> 24073<p> </p> 24074<p> </p> 24075<h3><strong>Voordelen van de pants:</strong></h3> 24076<p> </p> 24077<ul> 24078<li>Sluiten dankzij veel elastiek goed aan, waardoor de kans op lekken zeer klein is.</li> 24079<li>Voelt en zit als een onderbroek, wat voor veel mensen prettig is, omdat ze er minder aan herinnerd worden dat ze last hebben van incontinentie.</li> 24080</ul> 24081<p> </p> 24082<h3>Tips voor het kiezen van het juiste materiaal bij fecale incontinentie:</h3> 24083<p> </p> 24084<ol> 24085<li>Wanneer de ontlasting dik is en u verliest geen urine, kies dan voor een product met een lage absorptie. Stevige ontlasting trekt niet in een incontinentiemateriaal, dus u heeft geen grote opname nodig. U bent goedkoper uit met materialen die minder opnemen.</li> 24086</ol> 24087<p> </p> 24088<ol start="2"> 24089<li>Wanneer u voor een inlegger kiest, wilt u natuurlijk een zo klein mogelijke. Het voordeel daarvan is duidelijk: geen dikke laag in uw ondergoed en dus een kleinere kans dat anderen het zien of horen. Het nadeel: ontlasting kan eronder vandaan komen. Het is dus altijd zoeken naar de juiste grootte. Verliest u steeds een beetje en bent u in de gelegenheid om te verschonen, dan kunt u met een kleiner verband af. Verliest u veel en kunt u niet altijd verwisselen, dan zult u <a title="TENA Comfort normal" href="https://www.123drogisterij.nl/tena-comfort-normal/">een groter materiaal</a> nodig hebben.</li> 24090</ol> 24091<p> </p> 24092<ol start="3"> 24093<li>Een nadeel van een broekje kunt u bij het verwisselen tegenkomen. Een pants scheurt u zelf los bij het verschonen. Dan bestaat de kans dat de ontlasting tegen uw benen komt. Dit vraagt dus enige handigheid. Ook wanneer het voor u lastig is om een onderbroek aan te doen, dan zal een pants voor u niet de oplossing zijn. U moet soms onderweg in een toilet verwisselen, waarbij het broekje moet worden aangetrokken als een onderbroek. Vraag u af of u dit
24093kunt.</li> 24094</ol> 24095<p> </p> 24096<p>= = = = = = = = = = = = = = =</p> 24097<p> </p> 24098<h2 id="Incontinentieproducten-voor-mannen" style="padding-top: 50px;"><strong>Waarom hebben mannen eigen incontinentiematerialen?</strong></h2> 24099<p> </p> 24100<p>Inleggers, slips en pants: in principe kunnen ze allemaal worden gebruikt door zowel mannen als vrouwen. Toch hebben mannen hun eigen incontinentiemateriaal, die meestal â<a title="Incontinentiemateriaal voor mannen" href="https://www.123drogisterij.nl/incontinentiemateriaal-voor-mannen/">For Men</a>â heten.</p> 24101<p style="text-align: center;"> <picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/TENA_Men_Absorbent_Protector_Level_1.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/TENA_Men_Absorbent_Protector_Level_1.png" alt="Tena Men incomateriaal" width="350" height="350" loading="lazy"></picture></p> 24102<p>Waarom?</p> 24103<p> </p> 24104<p>Een paar decennia geleden moest iedereen een slecht passende, uniseks
24104incontinentieluier dragen. Gelukkig is er inmiddels veel veranderd. De makers van incontinentiemateriaal weten dat mannen en vrouwen verschillende behoeftes hebben op het gebied van incontinentieproducten.</p> 24105<p> </p> 24106<p>De belangrijkste reden hiervoor is het verschil in anatomie tussen mannen en vrouwen. Bij incontinentiemateriaal voor vrouwen ligt de absorptiezone voornamelijk onder, terwijl mannen meer bescherming aan de voorkant nodig hebben. Incontinentiemateriaal voor mannen kunnen niet door vrouwen worden gebruikt. En in de meeste gevallen zijn de specifieke vrouwenproducten minder geschikt voor mannen.</p> 24107<p> </p> 24108<p> </p> 24109<h3><strong>De maat</strong></h3> 24110<p> </p> 24111<p>Ook is er een verschil in maten tussen mannen en vrouwen. Daarom zijn er fabrikanten, zoals <a title="Depend voor mannen" href="https://www.123drogisterij.nl/incontinentie-pants/depend-pants/mannen/">Depend</a> en <a title="TENA For Men" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-for-men/">TENA</a>, die ervoor kiezen om pants te maken speciaal voor mannen of vrouwen. Ze maken broekjes die beter aansluiten op de behoefte en op het lichaam van mannen en vrouwen.</p> 24112<p> </p> 24113<p>Dit komt het draagcomfort ten goede en beschermt de gebruiker beter. Want een slecht passend broekje leidt tot wrijving en schuren, waardoor ongelukjes kunnen gebeuren.</p> 24114<p> </p> 24115<p>Daarbij is er natuurlijk de marketing van de producten. Mannen kopen liever een product waarvan de fabrikant zegt dat het speciaal voor hem is gemaakt. Dat wordt met donkere kleuren en stoere printjes benadrukt. Voor vrouwen worden elegante incontinentiebroekjes en inleggers met bloemetjesprints gemaakt.</p> 24116<p> </p> 24117<p>= = = = = = = = = = = = = = =</p> 24118<p> </p> 24119<h2 id="Incontinentiemateriaal-ouderen" style="padding-top: 50px;"><strong>Incontinentiemateriaal ouderen: zijn er speciale producten?</strong></h2> 24120<p> </p> 24121<p>Wanneer het gaat over incontinentie wordt er al gauw gesproken over incontinentiemateriaal voor ouderen.</p> 24122<p><br>Dat is deels terecht. Incontinentie is bij mannen vaak een gevolg van problemen aan de prostaat. Hier krijgen heel veel heren bij het ouder worden mee te maken. Bij vrouwen is het bekkenbodem cruciaal in het ontstaan van ongewild urineverlies. Een zwangerschap kan hier een belangrijke rol in spelen, maar ook het klimmen der jaren maakt het bekkenbodem zwakker.</p> 24123<p><br>Je ziet dat bij <strong>incontinentiemateriaal ouderen</strong> vaak de doelgroep zijn. In reclames en voorlichting zie je meestal senioren.</p> 24124<p><br>Maar ook jonge mensen krijgen te maken met incontintinentie, zoals vrouwen na een zwangerschap of mensen die door neurologische aandoeningen de controle verliezen over spieren of de blaas.</p> 24125<p><br>Voor alle problemen zijn verschillende oplossingen in de vorm van verbanden, maar er wordt niet speciaal incontinentiemateriaal voor ouderen gemaakt. Alle producten kunnen door iedereen worden gebruikt.</p> 24126<p> </p> 24127<p>= = = = = = = = = = = = = = =</p> 24128<p> </p> 24129<h2 id="Wel-of-geen-pants-gebruiken" style="padding-top: 50px;"><strong>Wel of geen pants gebruiken?</strong></h2> 24130<p> </p> 24131<p>Wanneer mensen incontinent worden, zijn ze vaak geneigd om gebruik te gaan maken van een incontinentiebroekje: een pants. Deze broekjes zijn de laatste jaren erg populair geworden.</p> 24132<p style="text-align: center;"> <picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/Silhouette_Plus_Noir_High_waist.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/Silhouette_Plus_Noir_High_waist.jpg" alt="TENA incobroekje" width="350" height="350" loading="lazy"></picture></p> 24133<p><strong>Daar is een aantal goede redenen voor:</strong></p> 24134<p> </p> 24135<ul> 24136<li>Ze vangen de urine en/of ontlasting uitstekend op.</li> 24137<li>Het voelt en draagt als gewoon ondergoed.</li> 24138<li>Ze zijn na gebruik gemakkelijk open te scheuren en weg te gooien.</li> 24139<li>Ze zijn nauwelijks zichtbaar onder de kleding.</li> 24140<li>Het kraakt niet bij het dragen.</li> 24141</ul> 24142<p> </p> 24143<p>Toch zijn er ook nadelen. De broekjes bestaan in verschillende maten, maar het gaat altijd om twee afmetingen: die van de heup en die van de benen. Het kan dus gebeuren dat het broekje op de buik mooi aansluit, maar bij de benen past het net niet goed. Bij dunne benen is er te veel ruimte, bij dikkere benen gaan de elastieken in de beenopeningen knellen.</p> 24144<p> </p> 24145<p>
24145Bij een slip of een inlegger met fixatiebroekje is de kans groter dat het product rond zowel taille als benen goed aansluit.</p> 24146<p style="text-align: center;"><strong> <picture><source type="image/webp" srcset="https://www.123drogisterij.nl/media/wysiwyg/Tena_Silhouette_Normal_Low_Waist_Blanc_Large.webp"><img style="float: right;" src="https://www.123drogisterij.nl/media/wysiwyg/Tena_Silhouette_Normal_Low_Waist_Blanc_Large.png" alt="TENA incobroekje dames" width="350" height="350" loading="lazy"></picture></strong></p> 24147<h3><strong>Uittrekken</strong></h3> 24148<p> </p> 24149<p>Een ander nadeel van de pants is dat je bij elke verschoning alle kleding uit moet doen om een nieuw broekje aan te trekken. Dit probleem is er niet bij inleggers, waarbij alleen de onderbroek naar beneden hoeft om het product te verwisselen.</p> 24150<p> </p> 24151<p>Een veelgemaakt fout bij pants is dat er in het broekje ook nog een inlegger wordt gedaan. Men denkt dan langer met de pants te kunnen doen. Daar zijn ze echter niet voor gemaakt. Wanneer de inlegger verzadigd is, loopt de urine er niet doorheen. Het gaat er juist via de zijkanten uit en loopt dan langs de benen naar beneden.</p> 24152<p> </p> 24153<h3><strong>Kosten</strong></h3> 24154<p> </p> 24155<p>Ook speelt voor veel mensen mee dat pants een stuk duurder zijn dan inleggers en slips. De reden is dat er veel elastiek nodig is om een broekje te maken. Het is een ingewikkeld productieproces dat zorgt voor beduidend hogere kosten voor de consument.</p> 24156<p> </p> 24157<p>Dan is er nog het argument van milieu. De productie, het materiaalgebruik en het verwerken van de pants zijn meer belastend dan andere producten.</p> 24158<p> </p> 24159<h3><strong>Maak uw eigen afweging</strong></h3> 24160<p> </p> 24161<p>Ondanks de nadelen en dankzij de vele voordelen, kiezen veel mensen die incontinent zijn voor het gemak en het veilige gevoel van een pants.</p> 24162<p> </p> 24163<p>= = = = = = = = = = = = = = =</p> 24164<p> </p> 24165<h2 id="Hoe-vaak-moet-je-incontinentiemateriaal-verwisselen" style="padding-top: 50px;"><strong>Hoe vaak moet je bij incontinentie materiaal verwisselen?</strong></h2> 24166<p> </p> 24167<p>Er is een aantal redenen om bij incontinentie materiaal te vervangen:</p> 24168<p> </p> 24169<ul> 24170<li>Het is verzadigd.</li> 24171<li>Het begint door te lekken.</li> 24172<li>De huid raakt geïrriteerd.</li> 24173<li>De plakstrips laten los.</li> 24174<li>U ruikt nare geurtjes.</li> 24175</ul> 24176<p> </p> 24177<p>U bepaalt natuurlijk zelf wanneer en hoe vaak u uw incontinentiemateriaal vervangt. Voelt u zich prettiger wanneer u vaker verschoont? Dat is natuurlijk geen probleem. Hiermee voorkomt u nare luchtjes en het blijft droog, wat het risico op huidirritaties verkleint.</p> 24178<p> </p> 24179<p>Maar wat raden incontinentieverpleegkundigen aan voor het vervangen van materialen?</p> 24180<p style="text-align: center;"><br> </p> 24181<h3><strong>Niet na ieder urineverlies incontinentiemateriaal verwisselen</strong></h3> 24182<p> </p> 24183<p>Het is heel normaal dat iemand die last heeft van incontinentie materiaal wil verwisselen wanneer er urine is verloren. Maar materialen als slips, pants en inleggers hoeven niet na ieder urineverlies te worden vervangen. De absorptie van de producten is over het algemeen zo groot, dat er meerdere plasjes in kunnen worden opgevangen.</p> 24184<p> </p> 24185<p>In principe kunt u ervan uitgaan dat incontinentiematerialen na 4 tot 6 uur wordt vervangen. Gedurende de nacht zult u het incontinentiemateriaal wat langer gebruiken, maar houd een maximum van 10 uren aan.</p> 24186<p> </p> 24187<p>Veel incontinentiemateriaal heeft een urine-indicator aan de buitenzijde die vertelt of een materiaal moet worden vervangen.</p> 24188<p> </p> 24189<p>De gele streep wordt blauwig wanneer de slip verzadigd raakt.</p> 24190<p> </p> 24191<p> </p> 24192<h3><strong>Materiaal aanpassen op situatie</strong></h3> 24193<p> </p> 24194<p>Hoe vaak u incontinentiemateriaal vervangt, hangt natuurlijk ook af van het materiaal dat u gebruikt. Materialen met een hoge absorptiecapaciteit kunnen veel meer urine opnemen, en kunnen dus langer worden gebruikt.</p> 24195<p> </p> 24196<p>Wanneer u regelmatig vervangt, nog ver voordat een product is verzadigd, gebruik dan een materiaal voor lichte incontinentie. Want de zwaardere materialen kunnen veel meer opvangen en zijn veel duurder. Bij veelvuldig verwisselen kunt u dus af met goedkoper incontinentiemateriaal.</p> 24197<p> </p> 24198<p>= = = = = = = = = = = = = =</p> 24199<p> </p> 24200<h2 id="Welk-incontinentiemateriaal-voor-de-nacht" style="padding-top: 50px;"><strong>Welk incontinentiemateriaal voor de nacht?</strong></h2> 24201<p> </p> 24202<p>Veel mensen vragen zich af of ze voor de nacht ander incontinentiemateriaal nodig hebben dan overdag. Een antwoord is niet één, twee, drie te geven. Het verschilt sterk per persoon. Maar gelukkig weet u zelf het best hoe u slaapt en hoe u plast.</p> 24203<h3 style="text-align: center;"> </h3> 24204<h3><strong>Zwaar verband voor de nacht</strong></h3> 24205<p> </p> 24206<p>Het grootste verschil tussen de dag en de nacht is dat mensen overdag in staat zijn vaker van incontinentiemateriaal te wisselen. Wanneer ze het idee hebben dat het materiaal verzadigd is, nemen ze een nieuwe.</p> 24207<p> </p> 24208<p>In de nacht, tijdens het slapen, weet je niet hoeveel urine in de luier is gelopen. Daarom is het verstandig om gedurende de nacht een materiaal met veel super absorberende korrels te gebruiken.</p> 24209<p> </p> 24210<h3><strong>Plassen in je slaap</strong></h3> 24211<p> </p> 24212<p>Ook zijn er mensen die van zichzelf weten dat ze tijdens de nacht niet veel urine verliezen. Zij kunnen het product van overdag ook gewo
24212on âs nachts gebruiken.</p> 24213<p> </p> 24214<p>Het is ook mogelijk dat u tijdens de nacht juist meer verliest. Dan kunt u, als u overdag bijvoorbeeld een Pants Normal gebruikt, voor de nacht voor een Pants Super nemen. Voor de veiligheid, zodat u zeker weet dat er niks mis kan gaan.</p> 24215<p> </p> 24216<h3><strong>Houding in bed</strong></h3> 24217<p> </p> 24218<p>Wat ook meespeelt, is de houding die we in de nacht aannemen. De benen gaan op elkaar zodat het product wordt fijn gedrukt. Bij een rugligging loopt urine vaak meer naar achteren, waardoor niet de kern maar het achterste deel van de luier benut wordt. Terwijl in de kern juist de meeste absorberende korrels zitten.</p> 24219<p> </p> 24220<h2><strong>Incontinentiemateriaal voor de nacht uitproberen</strong></h2> 24221<p> </p> 24222<p>Voor iedereen is de situatie âs nachts anders, wat het onmogelijk maakt een algemeen advies te geven. U kunt voor uzelf bedenken of u in de nacht meer of minder urine verliest.</p> 24223<p> </p> 24224<p>Wat betreft de incontinentiematerialen is het dan een kwestie van uitproberen. We kunnen in elk geval zeggen dat met een slip alle risicoâs worden vermeden. Een slip is in principe perfect voor de nacht. Het sluit goed aan en het absorberend niveau is zeer hoog.</p> 24225<p> </p> 24226<p>Toch zijn er mensen die liever geen slip dragen, omdat het ze te veel aan een luier doet denken. Zij kiezen voor een inlegger of een broekje.</p> 24227<p> </p> 24228<p>= = = = = = = = = = = = = = =</p> 24229<h2 id="Gebruik-van-incontinentiemateriaal" style="padding-top: 50px;"><strong>Gebruik van incontinentiemateriaal: vouwen en lucht inbrengen</strong></h2> 24230<p> </p> 24231<p>Wanneer u vanwege incontinentie materiaal gaat gebruiken, moet het product eerst worden gevouwen om het terug in model te krijgen en er lucht in te brengen.</p> 24232<p> </p> 24233<p>Van een inlegger, slip of broekje maakt u het deel dat het vocht moet opnemen met de vingers een beetje los en vouwt het als een bootje. De zijkanten van de luier (die tegen de benen zitten) staan dan iets omhoog zodat ze goed aansluiten.</p> 24234<p> </p> 24235<p style="text-align: center;"> </p> 24236<p>Met deze behandeling krijgt u het oorspronkelijke model terug en vormt het materiaal zich naar het lichaam. Het incontinentieproduct zal beter vocht opnemen en het geeft minder kans op lekken, dankzij de opstaande lekrandjes.</p> 24237<p><strong> </strong></p> 24238<h3><strong>Goedkoper transport</strong></h3> 24239<p> </p> 24240<p>Incontinentiemateriaal zit altijd strak opgevouwen in de verpakking, waardoor de watten aan elkaar plakken. Luiers komen dan ook erg stug en in elkaar gedrukt uit de verpakking.</p> 24241<p> </p> 24242<p>Alle incontinentiematerialen worden in de fabriek strak opgevouwen zodat de lucht eruit gaat. Het doel is ze zo klein mogelijk te maken. Want hoe minder lucht in de luier, hoe meer er in een doos kunnen en hoe meer luiers uiteindelijk in een vrachtwagen passen.</p> 24243<p> </p> 24244<p>Een strak opgevouwen luier is dus goed om te vervoeren, maar niet om te gebruiken!</p> 24245<p> </p> 24246<h3><strong>Hogere opnamecapaciteit </strong></h3> 24247<p> </p> 24248<p>Door het product even te âmasserenâ en te vouwen, komen de watten en de super absorberende korrels los. De luier vindt zijn oorspronkelijke vorm. Hierdoor wordt de opnamecapaciteit vergroot en neemt de kans op doorlekken sterk af, omdat het beter afsluit. Daarbij zit het een stuk prettiger.</p> 24249<p> </p> 24250<h3><strong>Waarom vooraf vouwen?</strong></h3> 24251<p> </p> 24252<ul> 24253<li>Het zit comfortabeler</li> 24254<li>Het neemt meer vocht op</li> 24255<li>Kleinere kans op doorlekken</li> 24256</ul> 24257<p> </p> 24258<p>Het vooraf vouwen is belangrijk en de gebruiker heeft er veel baat bij. Daarom is het vreemd dat dit nergens op de verpakking van incontinentiemateriaal staat. Hopelijk kunnen fabrikanten in de toekomst een hoekje van de verpakking vrij maken voor een vouwinstructie.</p> 24259<p> </p> 24260<p><br>= = = = = = = = = = = = = = =</p> 24261<h2 id="Plastic-slips" style="padding-top: 50px;"><strong>
24261Plastic slips, wat is het verschil met ademend incomateriaal?</strong></h2> 24262<p> </p> 24263<p>Elke slip, elke pants en elke onderlegger heeft een plastic buitenkant. Het plastic wordt door een machine âopgeruwdâ. Hierdoor komen vezels los en voelt het zacht aan. Dit zachte plastic voelt prettig op de huid.</p> 24264<p> </p> 24265<p>Fabrikanten geven het de naam <em>cottonfeel</em> of <em>katoenzacht</em> mee. Maar met katoen heeft het niks te maken. Het is en blijft een kunststof.</p> 24266<p> </p> 24267<p>Een belangrijke eigenschap van <em>cottonfeel</em> is dat het ademt. Het binnenklimaat verbetert hierdoor: vocht wordt afgevoerd en frisse lucht toegevoegd.</p> 24268<p> </p> 24269<p>Eigenlijk zijn alle fabrikanten het erover eens: mensen zouden allemaal cottonfeel moeten gebruiken. Want bij een product met een gesloten plastic buitenzijde is de kans op huidproblemen veel groter, zeker in de zomer.</p> 24270<p style="text-align: center;"> </p> 24271<p>Maar waarom willen dan zoveel klanten de slips met een plastic buitenkant, zoals deze producten:</p> 24272<p> </p> 24273<ul> 24274<li><a title="Tena slip Active fit" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-slip-active-fit/">TENA Slip Active Fit</a></li> 24275<li><a title="Tena Slip Original" href="https://www.123drogisterij.nl/merken-incontinentie/tena-incontinentie/tena-slip-original-plastic-buitenkant/">TENA Slip Original</a></li> 24276<li><a title="Attends Slip Active" href="https://www.123drogisterij.nl/merken-incontinentie/attends-incontinentie/attends-slip/">Attends Slip Active</a></li> 24277<li><a title="Attends Slip Regular Plus" href="https://www.123drogisterij.nl/merken-incontinentie/attends-incontinentie/attends-slip/">Attends Slip Regular Plus</a></li> 24278</ul> 24279<p> </p> 24280<p> </p> 24281<h3><strong>Zij hebben hier een aantal redenen voor:</strong></h3> 24282<p> </p> 24283<ul> 24284<li>Een plastic slip glijdt veel beter in bed. Een <em>cottonfeel</em> is wat stroever, waardoor het product wat meer rond het lichaam gaat draaien. Hierdoor neemt de kans op lekken toe.</li> 24285</ul> 24286<p> </p> 24287<ul> 24288<li>Plastic geeft mensen het veilig gevoel.</li> 24289</ul> 24290<p> </p> 24291<ul> 24292<li>Een plastic slip laat zeker geen urine door. Fabrikanten beweren dat dit bij <em>cottonfeel</em> ook niet het geval is. Jawel zeggen gebruikers: onder druk kun je er vocht doorheen persen. Nee, zeggen fabrikanten: door de warmte van de urine kan er condensatie van vocht plaatsvinden aan de buitenkant van het product. Zoals dat ook bij een plastic buitenzijde gebeurt.</li> 24293</ul> 24294<p> </p> 24295<p> </p> 24296<p>Wij mengen ons niet in de discussie tussen gebruikers en fabrikanten. Iedereen moet gebruiken wat hij of zij wil, vinden wij.</p> 24297<p> </p> 24298<p>Bij incontinentiemateriaal speelt het gevoel van veiligheid een belangrijke rol. Daarom zijn er zoveel tevreden gebruikers van slips met een plastic buitenzijde.</p> 24299<p> </p> 24300<p>= = = = = = = = = = = = = = =</p> 24301<h2 id="Plastic-broekje" style="padding-top: 50px;"><strong>Plastic broekje, wel of niet gebruiken?</strong></h2> 24302<p> </p> 24303<p>Dit is eigenlijk eenzelfde discussie als die bij de slips met plastic buitenzijde. Deze broekjes zijn 100% zeker urinedicht en geven de gebruiker zo een zeker gevoel, bijvoorbeeld wanneer deze een uitje maakt of een boodschap doet.</p> 24304<p> </p> 24305<p>Eerst over de broekjes. <a title="Plastic broek Suprima" href="https://www.123drogisterij.nl/merken-incontinentie/plastic-broek-slips-suprima/">Plastic broekjes</a> nemen zelf niks op, ze worden over een slip, pants of inlegger gedragen. Ze zijn er als extra slot op de deur, voor wanneer u een ongelukje heeft.</p> 24306<p style="text-align: center;"> </p> 24307<p>Een klant van ons vertelde waarom hij plastic broekjes gebruikt:</p> 24308<p> </p> 24309<p><em>âIn verband met incontinentie draag ik al vele jaren broekluiers van het zwaarste soort. Ik heb alle soorten wel gedragen en kan geen andere conclusie trekken dan dat extra bescherming met een plastic broek wél noodzakelijk is. Verschonen is namelijk niet altijd meteen mogelijk als de slip ineens verzadigd raakt. Dan
24309is een extra beschermingslaag gewoon noodzakelijk om de kleding droog te houden.</em></p> 24310<p><em> </em></p> 24311<p><em>Nog een reden is dat geen enkele natte luier in staat is om bij hoge druk op het zitvlak het vocht vast te houden. Bijvoorbeeld fietsen is voor elke natte luier een moment om te gaan lekken. Buiten de deur kom ik niet meer zonder gebruik van plastic broek.</em></p> 24312<p><em> </em></p> 24313<p><em>Nog een voordeel van een plastic broekje is het voorkomen van schuurplekken tussen de benen. Natte luiers worden dik en dan neemt het oppervlak aan de zijkant van de luier dat tegen de huid van de benen wrijft toe. Zeker bij de ruwe cottonfeel luiers ontstaan er dan razendsnel pijnlijke schuurplekken. Om dat tegen te gaan helpen plastic broeken ook heel goed. Door de gladheid van het plastic neemt de wrijving af en blijft de huid langer intact.â</em></p> 24314<p> </p> 24315<p>= = = = = = = = = = = = = = =</p> 24316<h2 id="Huidverzorging-bij-incontinentie" style="padding-top: 50px;"><strong>Huidverzorging bij gebruik inco materiaal</strong></h2> 24317<p> </p> 24318<p>Bij incontinentie kunt u niet zonder een goede verzorging van de huid. Langdurige blootstelling van urine aan de huid kan tot pijn, irritatie en zelfs serieuzere huidproblemen leiden. Het gebruik van incontinentiemateriaal kan deze klachten verergeren.</p> 24319<p> </p> 24320<h3><strong>Warmte en vocht</strong></h3> 24321<p> </p> 24322<p>De combinatie van warmte en vocht is desastreus voor de huid. Urine valt op het lichaam en blijft daar enige tijd liggen. Het vocht bevat stoffen die de huid aantasten. Het broeierige klimaat onder de kleding verergert de irritatie. Deze blootstelling aan vocht en urine kan de huid rood, gevoelig, schraal en pijnlijk maken.</p> 24323<p style="text-align: center;"> </p> 24324<h3><strong>Beste keuze voor de huid</strong></h3> 24325<p> </p> 24326<p>Ook kan het gebeuren dat een materiaal tegen de huid drukt en schuurt. Dit kan rode en branderige plekken geven. Uiteraard spelen de kwaliteit en pasvorm van de producten hierbij een belangrijke rol. Ook gebeurt het dat mensen kiezen voor te kleine hulpmiddelen omdat deze minder zichtbaar zijn onder kleding, maar dat is niet altijd de beste keuze voor de huid.</p> 24327<p> </p> 24328<h3><strong>Huidverzorging incontinentie</strong></h3> 24329<p> </p> 24330<p>Bij een geïrriteerde huid en om grotere problemen te voorkomen, is het belangrijk het lichaam rond het materiaal goed te verzorgen. Het is zaak de huid te vitaliseren, zodat het beter in staat is de inwerking van urine op te vangen. Dit begint natuurlijk bij de huid wassen, goed drooghouden en blootstellen aan frisse lucht.</p> 24331<p> </p> 24332<h3><strong>Extra bescherming met huidverzorging bij incontinentie</strong></h3> 24333<p> </p> 24334<p>De huid moet haar natuurlijke beschermlaag zoveel mogelijk behouden. Dit is tenslotte de beste protectie. Daarnaast zijn er producten die extra bescherming geven tegen de negatieve invloeden van urine, warmte en vocht.</p> 24335<p> </p> 24336<p>Huidverzorging bij incontinentie begint met <a title="Huid verzorgingsproducten cremes en wasgels" href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgingsproducten-cremes-wasgels/">het wassen</a>. Dat kan met alleen water of met een speciale reinigingszeep. Bekijk goed welke zeep voor u het meest geschikt is.</p> 24337<p> </p> 24338<p>Bij het wassen moeten de plooien in huid extra aandacht krijgen. De huidplooien hebben het grootste risico op smetten. Na het wassen goed afdrogen, want een blijvend vochtige huid is één van de belangrijkste oorzaken van huidproblemen. Wanneer de huid goed droog is, kunt u <a title="Huid verzorgingsproducten cremes en wasgels" href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/verzorgingsproducten-cremes-wasgels/">een crème</a> gebruiken om hem te voeden en te helen. Er zijn tal van producten die u hierbij helpen.</p> 24339<p> </p> 24340<h3><strong>Tijdig vervangen</strong></h3> 24341<p> </p> 24342<p>Om een droog onder de kleding te behouden, helpt het om luierbroekjes en inleggers tijdig te vervangen en daarbij de huid telkens goed schoon wassen en droog te houden. Dit kan bijvoorbeeld met <a title="Verzorgingsproducten bij incontinentie" href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie/wegwerp-washandjes-nat-en-droog/">Verzorgend Wassen</a>-producten.</p> 24343<p> </p> 24344<p>= = = = = = = = = = = = = = =</p> 24345<h2 id="Online-incontinentiemateriaal-kopen-waar-op-letten" style="padding-top: 50px;"><strong>Online incontinentiemateriaal kopen: waar moet u op letten? </strong></h2> 24346<p> </p> 24347<p>Een gebruikelijke weg om bij incontinentie materiaal te kopen, begint met een bezoek aan de huisarts. Die brengt het probleem in kaart en verwijst door naar een apotheek of zorgwinkel. Daar krijgt u een materiaal voorgeschreven dat door de zorgverzekeraar wordt vergoed.</p> 24348<p> </p> 24349<p>Maar als u er nu voor kiest om incontinentiemateriaal online te bestellen, waar moet u dan op letten?</p> 24350<p> </p> 24351<h2><strong>Online incontinentiemateriaal bestellen</strong></h2> 24352<p> </p> 24353<p>Er zijn veel goede redenen om online incontinentiemateriaal te kopen.</p> 24354<ul> 24355<li>U krijgt van de apotheek niet het materiaal dat u wilt hebben.</li> 24356<li>
24356U moet te ver rijden voor een leverancier of u bent slecht ter been.</li> 24357<li>Of u hebt geen zin om uw verhaal in een volle apotheek te doen.</li> 24358<li>Online kopen is vaak goedkoper dan bij de apotheek, zelfs wanneer de verzekeraar een deel van de materialen vergoedt.</li> 24359</ul> 24360<p> </p> 24361<p>In dat geval zijn er op internet tal van winkels, zoals 123Drogisterij, die kunnen helpen.</p> 24362<p> </p> 24363<p> </p> 24364<h2><strong>Waar moet u op letten als u online incontinentiemateriaal gaat kopen?</strong></h2> 24365<p> </p> 24366<ol> 24367<li> 24368<h3><strong> Is het een betrouwbare winkel?</strong></h3> 24369</li> 24370</ol> 24371<p>Kijk of op de pagina â<a title="Over ons" href="https://www.123drogisterij.nl/over-ons/">over ons</a>â te achterhalen is waar het bedrijf is gevestigd. Staat er een adres, een nummer van de Kamer van Koophandel en een vast telefoonnummer? Kunt u ze bellen? Durft de winkelier met een foto op zijn website en kunt u namen vinden die ook in Google bestaan?</p> 24372<p> </p> 24373<p>Het zijn allemaal geen garanties dat de winkel betrouwbaar is, maar hoe beter een bedrijf traceerbaar is, hoe kleiner de kans op oplichting.</p> 24374<p> </p> 24375<ol start="2"> 24376<li> 24377<h3><strong> Welk product hebt u nodig?</strong></h3> 24378</li> 24379</ol> 24380<p>Misschien bent u tevreden over het product dat u gebruikt en wilt u op internet incontinentiemateriaal bestellen. Dan komt u er wel uit.</p> 24381<p> </p> 24382<p>Maar weet u niet wat u moet hebben? Dan is het lastig om goed advies te krijgen. Informatie is wel te vinden, maar het staat vaak versnippert over verschillende websites.</p> 24383<p> </p> 24384<p>Het beste is om met een specialist in incontinentiemateriaal te spreken. Zij kunnen vragen stellen over uw specifieke situatie en u van advies voorzien. Helaas zijn er weinig winkels met kennis van zaken. Weet dat bijvoorbeeld de grote apotheken die via internet verkopen, natuurlijk geen kennis van alle producten in het assortiment hebben.</p> 24385<p> </p> 24386<ol start="3"> 24387<li> 24388<h3><strong> Let op de (extra) kosten en leveringsvoorwaarden</strong></h3> 24389</li> 24390</ol> 24391<p>Niets zo vervelend als u pas bij het afrekenen ontdekt dat de prijs hoger is dan bij het product vermeld staat. Bijvoorbeeld omdat er nog bezorgkosten of btw bijkomen.</p> 24392<p>Kijk dus goed of het bedrag bij het product hetzelfde is als bij de kassa.</p> 24393<p><strong> </strong></p> 24394<h3><strong>Retourzending: Wie betaalt?</strong></h3> 24395<p>Waar u ook op moet letten, is wat er gebeurt wanneer er iets misgaat bij de verzending of wanneer u een verkeerde keus heeft gemaakt. Wie draait op voor de kosten van een retourzending? En wat doet een bedrijf wanneer een pakket niet is aangekomen?</p> 24396<p> </p> 24397<p>Wij betalen altijd de retourzending. Wanneer een pakket door de post niet is bezorgd, sturen we direct een nieuw pakket. Wij trekken het verhaal van onze klanten nooit in twijfel.</p> 24398<p> </p> 24399<p>Het enige dat voor ons telt, is dat u zo snel mogelijk de juiste producten in huis heeft!</p> 24400<p> </p> 24401<div> 24402<h2>Incontinentiemateriaal voor ouderen: de juiste keuze voor comfort en bescherming</h2> 24403<p>Voor veel ouderen biedt incontinentiemateriaal een oplossing die hen in staat stelt om met vertrouwen en comfort hun dagelijkse activiteiten voort te zetten. Incontinentiemateriaal voor ouderen is speciaal ontworpen om discreet, absorberend en comfortabel te zijn, zodat het de gebruiker helpt om zich veilig te voelen. Er zijn diverse soorten beschikbaar, van dunne inleggers tot absorberende slips en broekjes, elk geschikt voor verschillende niveaus van urineverlies. Het kiezen van het juiste incontinentiemateriaal is belangrijk om optimaal comfort en bescherming te garanderen.</p> 24404<p>Bij het selecteren van incontinentiemateriaal voor ouderen is het belangrijk om rekening te houden met de absorptiecapaciteit. Voor lichte incontinentie kan een inlegger voldoende zijn, terwijl voor matige tot zware incontinentie een absorberende slip of een speciaal ontworpen broekje meer zekerheid biedt. Veel van deze producten zijn gemaakt van zachte, ademende materialen die huidirritatie helpen voorkomen en de hele dag comfortabel aanvoelen. Daarnaast zijn veel producten voorzien van geurbescherming, waardoor gebruikers zich zelfverzekerd en fris voelen.</p> 24405<p>Ons assortiment biedt een brede keuze aan incontinentiemateriaal voor ouderen, zodat er altijd een geschikte oplossing is voor elke behoefte. Of het nu gaat om een oplossing voor incidenteel gebruik of een product voor dagelijks comfort, u vindt bij ons incontinentiemateriaal van hoge kwaliteit, betrouwbaar en discreet. Ontdek ons aanbod en kies het incontinentiemateriaal dat het beste bij uw situatie past, zodat u of uw naasten zich veilig en zorgeloos kunnen blijven bewegen.</p> 24406<p> </p> 24407</div> 24408<p><div class="widget block block-static-block"> 24409 <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"> 24410 24411 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24412 <h3 itemprop="name">Welk type incontinentiemateriaal is het meest geschikt voor mijn vorm van incontinentie?</h3>
24413 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24414 <div itemprop="text"> 24415 Incontinentie gaat van het verlies van druppels tot de gehele blaasinhoud. Ook kan het probleem ongewenst verlies van ontlasting zijn. Een verband is in alle gevallen de oplossing. De grootte, dikte, vorm en opname bepalen of het geschikt is voor uw vorm van incontinentie. De vuistregel is: hoe meer absorberende korrels een verband bevat, hoe meer het opneemt. Of u dit verband los in het ondergoed draagt, het gebruikt in de vorm van een kleefluier of een broekje, dat hangt ook af van uw voorkeur. Al kunnen broekjes minder opnemen dan de meest absorberende verbanden en slips. Ontlasting kan niet worden geabsorbeerd. Dit wordt alleen opgevangen. 24416 </div> 24417 </div> 24418 </div> 24419 <br> 24420 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24421 <h3 itemprop="name">Hoe bepaal ik de juiste maat en pasvorm van incontinentiemateriaal?</h3> 24422 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24423 <div itemprop="text"> 24424 Om de maat vast te stellen is het slim om u op internet in gespecialiseerde winkels te oriënteren. Bij de producten ziet u de maatvoering. Die wordt uitgedrukt, bijvoorbeeld in de heupomvang in centimeters. Bij inleggers staat de lengte en de breedte van de producten. Bij broekjes ziet u in veel gevallen de confectiemaat voor heren en dames. De pasvorm is moeilijker vast te stellen. Bij uniseks producten is er niet veel te kiezen. Bij broekjes speciaal voor mannen of vrouwen ziet u op de plaatjes wel verschillen. Zo zijn er damesbroekjes die hoger of juist lager op de heup worden gedragen. 24425 </div> 24426 </div> 24427 </div> 24428 <br> 24429 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24430 <h3 itemprop="name">Welke absorptiecapaciteit heb ik nodig voor mijn incontinentieklachten?</h3> 24431 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24432 <div itemprop="text"> 24433 Wanneer u ongewenst urine verliest, is het belangrijk om vast te stellen hoeveel u verlies. Zijn dit druppels, scheutjes of de gehele blaasinhoud? In gespecialiseerde winkels kunt u bij de verschillende producten lezen hoeveel ze opnemen. Dit staat er bijvoorbeeld aangegeven met het aantal druppels. Dit zegt overigens niet zo veel: het is een relatieve schaal per producttype. Ook ziet u de opname in milliliters. Dit zegt al meer, maar het is een verraderlijk getal. Ziet u een product met een opname van een liter, weet dan dat dit product bij 700 milliliter al erg vol is. Bij een liter zou het volledig doordrenkt zijn. Het zal dan direct gaan lekken. 24434 </div> 24435 </div> 24436 </div> 24437 <br> 24438 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24439 <h3 itemprop="name">Welke verschillende soorten incontinentiemateriaal zijn er (luiers, inlegkruisjes, broekjes, etc.)?</h3> 24440 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24441 <div itemprop="text"> 24442 De meest gebruikte producten zijn: een inlegger (inlegverband), een pants en een slip. Inleggers zijn er van heel klein voor de opvang van een paar druppels, tot aan heel grote verbanden die wel 80 centimeter lang kunnen zijn. Pants zijn incontinentiebroekjes. U draagt ze als uw eigen ondergoed. Ze zijn voor eenmalig gebruik. Slips zijn kleefluiers. U zet ze zelf vast met plakstrips. Deze producten gaan tot heel hoge opnames. Inlegkruisjes zijn er voor menstruatie, ze zijn niet geschikt voor de opname van urine. 24443 </div> 24444 </div> 24445 </div> 24446 <br> 24447 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24448 <h3 itemprop="name">Welke merken van incontinentiemateriaal zijn het best?</h3> 24449 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24450 <div itemprop="text"> 24451 In Nederland en België zijn een stuk of 10 merken redelijk goed verkrijgbaar. De bekendste is TENA. Daarnaast zijn er merken als Depend, Abena, Attends, Absorin, Seni, Lille en Molicare. Zijn er slechte merken die onbetrouwbare producten leveren? Nee, die zijn er niet. Slechte bedrijven overleven niet lang in deze concurrerende markt. In onze webshop leveren we tien merken en die hebben allemaal tevreden gebruikers. De verschillen tussen de merken zitten in vaak in de details. Ze gebruiken een iets ander materiaal voor de buitenzijde, de maatvoering verschilt wat en de een heeft een wat hogere opname dan de ander. Alle bovenstaande merken maken producten die wij met een gerust hart durven aanraden. 24452 </div> 24453 </div> 24454 </div> 24455 <br> 24456 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24457 <h3 itemprop="name">Zijn er incontinentiematerialen speciaal ontworpen voor mannen of vrouwen?</h3>
24458 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24459 <div itemprop="text"> 24460 Ja, er zijn zowel broekjes als inleggers speciaal voor mannen of vrouwen. Voor inleggers geldt dat de man een product aan de voorzijde nodig heeft en een vrouw tussen de benen. Deze producten hebben dus een andere vorm en worden op een andere plek in het ondergoed geplaatst. Dit geldt deels ook voor broekjes. Ook hier hebben mannen de opvang vooral aan de voorzijde nodig. Maar de verschillen gelden ook voor de kleur en het dessin. Voor mannen zijn er broekjes in grijs, blauw en zwart, de meest verkochte kleuren voor herenondergoed. Dames hebben broekjes met vrolijke dessins en zachte kleuren. Ook zijn er zwarte broekjes voor dames. 24461 </div> 24462 </div> 24463 </div> 24464 <br> 24465 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24466 <h3 itemprop="name">Kan ik online incontinentiemateriaal bestellen en discreet laten bezorgen?</h3> 24467 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24468 <div itemprop="text"> 24469 Gelukkig kunt u online incontinentiemateriaal bestellen. Er zijn verschillende webshops die een discrete levering garanderen. Discreet betekent in dit geval: een neutrale doos en geen bedrijfsnaam waarin het woord âincontinentieâ wordt genoemd. De levering wordt gedaan door een bezorger van bijvoorbeeld PostNL of DHL. 24470 </div> 24471 </div> 24472 </div> 24473 <br> 24474 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24475 <h3 itemprop="name">Hoe vaak moet ik incontinentiemateriaal verwisselen om lekkage te voorkomen?</h3> 24476 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24477 <div itemprop="text"> 24478 Dat is afhankelijk van de opname van het product en de mate van verlies. U moet goed in de gaten houden wanneer een product vol raakt. Dan kan bijvoorbeeld door een product te kiezen dat met een urinestrip aangeeft hoe vol een product zit. Deze stript verkleurt naarmate het product voller raakt. Laat een product niet volledig verzadigd raken, dan komt het moment van doorlekken steeds dichterbij. Ook kunt door in het product te drukken of te knijpen voelen hoe vol het is. Algemeen wordt, uit oogpunt van hygiëne, aangeraden een product sowieso niet langer dan een halve dag te gebruiken. 24479 </div> 24480 </div> 24481 </div> 24482 <br> 24483 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24484 <h3 itemprop="name">
24484Zijn er incontinentiematerialen specifiek geschikt voor 's nachts?</h3> 24485 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24486 <div itemprop="text"> 24487 In principe is alle incontinentiemateriaal geschikt voor zowel overdag als âs nachts. Voor de nacht is het belangrijk dat u kunt doorslapen zonder zorgen over doorlekken. Mensen kiezen daarom voor de nacht vaak een product dat wat meer kan opnemen. Ook is de houding âs nachts anders. Vooral bij inleggers kan de horizontale houding lastig zijn. U kunt dan kiezen voor een grotere inlegger of een broekje of slip. Als mensen spreken over ânachtluiersâ, bedoelen ze vaak een luier met een heel hoge opname. Deze zijn niet anders dan de luiers voor overdag. Je ziet wel dat mensen voor de nacht slips kiezen met een plastic buitenzijde, omdat deze goed over het laken glijden. Het product blijft dan mooi op zijn plaats, wat de kans op lekken verkleint. 24488 </div> 24489 </div> 24490 </div> 24491 <br> 24492 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24493 <h3 itemprop="name">Welk incontinentiemateriaal is het meest geschikt voor actieve mensen of sporters?</h3> 24494 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24495 <div itemprop="text"> 24496 Fabrikanten van incontinentiemateriaal adverteren graag met de belofte van producten geschikt voor actieve mensen. Ze gebruiken het zelfs in de productnaam, zoals TENA Men Active Fit. Het model van het broekje zou dan sportief zijn. Dit is marketing. Waar het om gaat is dat een product comfortabel zit, niet afzakt of verschuift tijdens het sporten en dat het voldoende opneemt. Het goed fixeren van een producten is een kwestie van de juiste maat en het juiste ondergoed om het in te dragen. Bij een slip of pants kun je ervoor kiezen een fixatiebroekje of nauwsluitend ondergoed te gebruiken. Een inlegger kan ook op deze manier worden vastgezet. 24497 </div> 24498 </div> 24499 </div> 24500 <br> 24501 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24502 <h3 itemprop="name">Kan ik incontinentiemateriaal discreet dragen zonder dat het zichtbaar is onder kleding?</h3> 24503 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24504 <div itemprop="text"> 24505 Bij kleine inleggers is dit geen probleem. Maar bij grote inleggers, bij pants en bij slips kan dit lastig zijn. Deze producten hebben nu eenmaal volume en als ze voller raken, zetten ze nog wat meer uit. In een strakke broek zal zoân product zichtbaar zijn. Mensen die groter incontinentiemateriaal gebruiken, kiezen er dan ook vaak voor om de heel strakke kleding niet meer te dragen. 24506 </div> 24507 </div> 24508 </div> 24509 <br> 24510 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24511 <h3 itemprop="name">Wat zijn de mogelijke bijwerkingen of allergische reacties op incontinentiemateriaal?</h3> 24512 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24513 <div itemprop="text"> 24514 De huid is een complex orgaan dat geïrriteerd kan raken of een allergische reactie kan geven, bijvoorbeeld op latex. Daarom wordt dit materiaal in de meeste producten niet meer gebruikt. Een belangrijke oorzaak van irritatie is urine. Deze bevat bijtende stoffen die de huid aantasten. Ook kan een product door het lopen gaan schuren. Vaak is dat in de liezen. 24515 </div> 24516 </div> 24517 </div> 24518 <br> 24519 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24520 <h3 itemprop="name">Welke materialen worden gebruikt in incontinentiemateriaal en welke zijn het meest comfortabel?</h3> 24521 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24522 <div itemprop="text"> 24523 Incontinentiemateriaal bestaat aan de buitenzijde uit kunststoffen en aan de binnenkant zit wattenpulp met daarin superabsorberende korrels. Eigenlijk alle fabrikanten gebruiken dit. De buitenzijde bestaat dus uit een kunststof. Dit kan een glad plastic zijn, maar steeds vaker wordt een âademendeâ laag aangelegd. Deze bestaat uit een oppervlak met heel kleine gaatjes die lucht kunnen doorlaten. Ze zijn echter te klein om vocht te lekken. Het oppervlak is opgeruwd zodat het zacht aanvoelt. Dit is er van stug tot fluweelzacht. Hierin maken fabrikanten hun eigen keuze. Veel mensen vinden de zachtere varianten het meest comfortabel. 24524 </div> 24525 </div> 24526 </div> 24527 <br> 24528 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24529 <h3 itemprop="name">Hoe kan ik huidirritatie en andere huidproblemen voorkomen bij het gebruik van incontinentiemateriaal?<
24529/h3> 24530 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24531 <div itemprop="text"> 24532 Modern incontinentiemateriaal is zo gemaakt dat het urine supersnel absorbeert. Het contact met de huid is kort en de kans op irritaties is daardoor minimaal. Bij een gevoelige huid kan er echter toch irritatie ontstaan. Het is dan belangrijk om een product niet te lang te gebruiken. Verwissel wat eerder en reinig de huid goed tijdens het verschonen. Droog de huid goed af en gebruik eventueel een verzachtende crème. Wanneer de schade al wat groter is, kan een barrièrecrème uitkomst bieden. Die legt een beschermend laagje op de huid, zodat deze de tijd krijgt om te herstellen. 24533 </div> 24534 </div> 24535 </div> 24536 <br> 24537 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24538 <h3 itemprop="name">Is er bij incontinentie materiaal beschikbaar dat milieuvriendelijk is?</h3> 24539 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24540 <div itemprop="text"> 24541 Incontinentiemateriaal is van zichzelf niet milieuvriendelijk. Het bestaat voornamelijk uit kunststoffen die niet in de natuur kunnen worden afgebroken. Ook de verwerking van de luier na gebruik is een intensieve klus die belastend is voor het milieu. Fabrikanten die adverteren met een groen product, vertellen dan ook niet de hele waarheid. Duurzaamheid kan worden behaald door het productieproces schoner te maken en te optimaliseren. Het kan door voor de productie van de wattenpulp gebruik te maken van duurzame bosbouw. En het kan door het transport van de producten zo groen mogelijk te doen. Er is voorlopig echter geen zicht op luiers die afbreekbaar zijn. 24542 </div> 24543 </div> 24544 </div> 24545 <br> 24546 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24547 <h3 itemprop="name">Kan ik incontinentiemateriaal hergebruiken of moet het na gebruik worden weggegooid?</h3> 24548 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24549 <div itemprop="text"> 24550 Er bestaat bij incontinentie materiaal dat kan worden hergebruikt en er is wegwerpmateriaal. De eerste is er vooral voor licht verlies, bij zwaarder verlies is het lastig om een comfortabel product te ontwikkelen. Het wordt al snel erg groot. Wegwerpluiers kun je na gebruik niet opnieuw dragen. Ze zijn volgezogen met urine en deze is ingepakt in de absorberende korrels. Het vocht is hier op de verwarming uit te dampen, maar de geur die hierbij vrijkomt is buitengewoon onaangenaam. Wij zullen nooit aanraden dit te doen. 24551 </div> 24552 </div> 24553 </div> 24554 <br> 24555 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24556 <h3 itemprop="name">Hoe kan ik incontinentiemateriaal op de juiste manier weggooien?</h3> 24557 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24558 <div itemprop="text"> 24559 In veel gevallen gaan luiers met het normale huisvuil mee. Maar steeds meer gemeenten halen het gescheiden op om het in een aparte stroom van het afval te verwerken. U kunt in uw gemeente even navragen hoe dat bij u gaat. Voor het weggooien in huis zijn er verschillende mogelijkheden om dit hygiënisch te doen. Zo zijn er luieremmers die heel goed afsluiten waardoor u enige dagen luiers kunt verzamelen zonder nare geurtjes in huis. Er zijn ook mensen die elke gebruikte luier in een plastic zakje doen om de ongewenste geurtjes tegen te houden. 24560 </div> 24561 </div> 24562 </div> 24563 <br> 24564 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24565 <h3 itemprop="name">Wat zijn de kosten van incontinentiemateriaal en wordt het vergoed door verzekeringen?</h3> 24566 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24567 <div itemprop="text"> 24568 De kosten voor incontinentiemateriaal zijn afhankelijk van het type product en de opname. In algemene zin geldt: hoe hoger de opname, hoe duurder het product. Wat betreft type incontinentiemateriaal is de pants (het incontinentiebroekjes) het duurst. Daarna volgen de flex, de slip en dan de inlegger. In principe vergoedt de zorgverzekeraar incontinentiemateriaal. Er zijn overigens uitzonderingen, zoals tijdelijke incontinentie bijvoorbeeld na een bevalling. Ook zijn de vergoedingen niet onbeperkt. Eerst wordt de mate in incontinentie vastgesteld. Daarop wordt een maximale vergoeding per dag vastgesteld. Voor veel mensen is deze voldoende. Voor anderen niet; incontinentiemateriaal kopen zij zelf bij. 24569 </div> 24570 </div> 24571 </div> 24572 <br> 24573 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24574 <h3 itemprop="name">Hoe kan ik ongewenste geurtjes voorkomen bij het gebruik van incontinentiemateriaal?<
24574/h3> 24575 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24576 <div itemprop="text"> 24577 Als het goed is, doet incontinentiemateriaal dit zelf. De urine wordt snel in het product opgenomen en wordt daar in de kern, in de superabsorberende korrels, opgenomen. Dit voorkomt dat het product gaat ruiken. Hoe meer een product verzadigd raakt en hoe langer het wordt gedragen, hoe groter de kans dat het toch gaat ruiken. Daarom wordt aangeraden een luier niet langer dan een halve dag te dragen. Liefst nog iets vaker verschonen. Dan is het mogelijk om bij incontinentie te voorkomen dat er urine te ruiken is. Bij verlies van ontlasting is dit anders. Fecaliën worden niet in het incontinentiemateriaal opgeslagen. Daarom is het zaak na een verlies tijdig te vervangen. 24578 </div> 24579 </div> 24580 </div> 24581 <br> 24582 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24583 <h3 itemprop="name">Welk inco's zijn het meest geschikt voor mensen met een gevoelige huid?</h3> 24584 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24585 <div itemprop="text"> 24586 Voor mensen met een gevoelige huid geldt dat ze inco's nodig hebben dat de urine goed opneemt en in de kern opslaat. Zo voorkomt u dat de urine tegen de huid zit en daar schade kan aanrichten. Eigenlijk al het incontinentiemateriaal dat te koop is, doet dit. Het is wel zaak om tijdig te verwisselen en dan de huid te behandelen. Dat kan door het te bewassen, bijvoorbeeld met een product als TENA Wet Wash Gloves. Daarna kunt u de huid behandelen met een balsem. Als de huid al een beschadiging heeft, kunt u er een barrièrecrème opsmeren om verdere aantasting te voorkomen. 24587 </div> 24588 </div> 24589 </div> 24590 <br> 24591 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24592 <h3 itemprop="name">Kan ik met incontinentie materiaal dragen tijdens het uitoefenen van fysieke activiteiten, zoals sporten?</h3> 24593 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24594 <div itemprop="text"> 24595 Natuurlijk kunt u met incontinentie materiaal dragen tijdens het sporten. Het dan wel zaak om het extra goed te bevestigen en fixeren. Zo voorkomt u schuiven en uiteindelijk doorlekken. Het goed bevestigen en fixeren kan bijvoorbeeld door extra stevig ondergoed te gebruiken. Een boxershorts is hierbij ideaal. Kies een elastische variant met pijpjes. Die geven nog meer stevigheid. Ook bestaan er zogenaamde fixatiebroekjes. Dit zijn heel mooie elastische broekjes speciaal voor het fixeren van incontinentiemateriaal. Let voor u gaat sporten ook goed op of het product goed tegen het lichaam zit en of de randjes mooi in de liezen vallen. 24596 </div> 24597 </div> 24598 </div> 24599 <br> 24600 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24601 <h3 itemprop="name">Hoe kan ik voorkomen dat incontinentiemateriaal verschuift of lekt?</h3> 24602 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24603 <div itemprop="text"> 24604 Het is belangrijk om producten goed tegen het lichaam te dragen. Dit kan bijvoorbeeld met een elastische boxershorts met pijpjes. Hier blijft incontinentiemateriaal goed op zijn plaats, waardoor de kans op doorlekken erg klein is. Al is het natuurlijk altijd belangrijk om een product tijdig te verwisselen. Een verzadigde luier zal zeker gaan lekken. 24605 </div> 24606 </div> 24607 </div> 24608 <br> 24609 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24610 <h3 itemprop="name">Kan ik met incontinentiemateriaal comfortabel slapen zonder zorgen over lekkage?</h3> 24611 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24612 <div itemprop="text"> 24613 Wanneer je ligt, is de kans op lekken groter dan overdag. Daarom is de nacht de periode die voor mensen met incontinentie de meeste problemen geeft. Wanneer je een volle blaas liggend leegt, is de kans groter dat de urine eruit loopt. Daarom is het belangrijk om het product goed vast tegen het lichaam te kunnen zetten. Dit kan met een slip die je zelf goed strak tegen het lichaam kunt fixeren. Maar het kan ook met een pants waar nog een boxer overheen wordt gedragen of een inlegger die in nauwsluitend ondergoed wordt gedragen. Zorg voor het slapen dat alle naden goed in de liezen vallen en dat de band op de buik goed afsluit. Zorg voor de nacht ook dat u incontinentiemateriaal gebruikt met voldoende absorptie. Vaak gebruiken mensen âs nachts een product met een hogere opname dan overdag. 24614 </div> 24615 </div> 24616 </div> 24617 <br> 24618 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24619 <h3 itemprop="name">Hoe lang kan ik incontinentiemateriaal dragen voordat het moet worden verwisseld?</h3>
24620 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24621 <div itemprop="text"> 24622 Algemeen wordt aangeraden om het niet langer dan een uur of 4 tot 8 uur te dragen. Een product dat te lang wordt gedragen kan broeierig worden en het kan nare geurtjes gaan verspreiden. Wanneer het verzadigd raakt, kan er urine tegen het lichaam komen. De kans bestaat dat dit de huid aantast, wat het begin kan zijn van pijnlijke plekken die moeilijk weer genezen. Draag een product daarom niet te lang en vervang, zeker wanneer het vol raakt. 24623 </div> 24624 </div> 24625 </div> 24626 <br> 24627 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24628 <h3 itemprop="name">Wat zijn de tekenen dat het incontinentiemateriaal moet worden vervangen?</h3> 24629 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24630 <div itemprop="text"> 24631 Als incontinentiemateriaal vol raakt, dan kunt u dat voelen. De luier wordt zwaarder en als u er in knijpt, voelt u dat het dikker wordt. Ook zijn er producten met een urine-indicator, een lijn die verkleurt naarmate het product voller raakt. Als u voelt dat het product zo zwaar wordt dat het afzakt, of als u merkt dat het niet meer kan opnemen, is het zaak direct te verwisselen. Als u te vaak moet verschonen, kunt u op zoek gaan naar een product met een hogere opname. Bijna altijd zijn er producten met een hogere absorptie waardoor u zorgelozer uw leven kunt leiden, zonder dat u uw incontinentiemateriaal in de gaten hoef te houden. 24632 </div> 24633 </div> 24634 </div> 24635 <br> 24636 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24637 <h3 itemprop="name">Kan incontinentiemateriaal leiden tot urineweginfecties of huidinfecties?</h3> 24638 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24639 <div itemprop="text"> 24640 Wanneer u producten te lang draagt en ze vol met urine zitten kan dit leiden tot huidinfecties. Urine bevat stoffen die de huid aantasten. Als dit te lang duurt en het krijgt niet de kans te genezen, dan kan dit tot grotere problemen aan de huid leiden. Het is daarom zaak tijdig te verschonen en de huid daarbij te verzorgen door het te bewassen en eventueel de geïrriteerde plekken te behandelen met een balsem of een barrièrecrème die de huid kan afschermen. Urineweginfecties ontstaan meestal wanneer een bacterie uit de darmen in de urinebuis terecht komen. Mensen die last hebben van ongewenst verlies van ontlasting hebben een vergrote kans dit te krijgen. Daarom is het zaak na een verlies snel te verwisselen en daarbij grondig te bewassen. 24641 </div> 24642 </div> 24643 </div> 24644 <br> 24645 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24646 <h3 itemprop="name">Kan incontinentiemateriaal helpen bij de behandeling van bedplassen bij kinderen?</h3> 24647 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24648 <div itemprop="text"> 24649 Incontinentiemateriaal kan helpen om het bed schoon te houden. Kinderen die de peuterleeftijd voorbij zijn en nog in bed plassen, vinden dit meestal erg vervelend. Een behandeling met een plaswekker of bij een droogbedcentrum heeft een grotere kans van slagen wanneer het kind zich prettig voelt en niet te veel stress ervaart. Een nat bed kan stress geven. Het gebruik van een goed incontinentiemateriaal kan het vertrouwen geven dat een ongelukje niet tot grote problemen tijdens de nacht leidt. 24650 </div> 24651 </div> 24652 </div> 24653 <br> 24654 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24655 <h3 itemprop="name">Hoe kan ik incontinentiemateriaal comfortabel en veilig dragen tijdens lange reizen?</h3> 24656 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24657 <div itemprop="text"> 24658 Het kan spannend zijn om op reis te gaan en niet te weten waar en wanneer je het incontinentiemateriaal kunt verwisselen. Ga tijdens een reis niet experimenten met een product dat u nog niet eerder heeft gebruikt. Neem wat u altijd heeft en kies er bijvoorbeeld voor een variant met een hogere opname te gebruiken. Hetzelfde product dus, maar met een langere bescherming. Ook kan het verstandig zijn goed afsluitbare plastic zakjes mee te nemen, zodat u een gebruikt incontinentiemateriaal discreet en luchtdicht kunt afvoeren. Zorg natuurlijk ook voor voldoende luiers in uw handbagage. 24659 </div> 24660 </div> 24661 </div> 24662 <br> 24663 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24664 <h3 itemprop="name">Welk incontinentiemateriaal is het meest geschikt voor ouderen met incontinentie?</h3>
24665 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24666 <div itemprop="text"> 24667 Er zijn geen verschillen in incontinentiemateriaal voor jonge of oudere mensen. Pants, Slip of Inlegger, allemaal zijn geschikt voor iedereen. Het wordt anders wanneer u niet goed in staat bent om zelf een onderbroek aan te doen. Dan is een pants geen goede keuze, omdat u deze dan niet zelfstandig kunt verwisselen. Wanneer u moeite hebt om met twee handen iets te doen, zal een slip niet de oplossing zijn, omdat deze niet of heel moeilijk met één hand is te bevestigen. 24668 </div> 24669 </div> 24670 </div> 24671 <br> 24672 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24673 <h3 itemprop="name">Welke rol speelt de dikte van incontinentiemateriaal bij het comfort en de absorptie?</h3> 24674 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24675 <div itemprop="text"> 24676 De dikte van incontinentiemateriaal zegt niet direct iets over de opname of het comfort. Vroeger bestond incontinentiemateriaal alleen uit watten, die zorgden voor de opname. Nu doen dat de super absorberende korrels (SAP). Dit zijn kleine witte korrels die in staat zijn zeer grote hoeveelheden urine op te nemen. De watten zijn er nu alleen nog om een product vorm en stevigheid te geven. Hoe meer korrels je gebruikt, hoe hoger de opname. En die kan wel gaan tot 4 liter. Om zoân gewicht in model te houden, zijn meer watten nodig dan bij een kleine inlegger. Dus bevatten producten die meer opnemen nog altijd meer watten. Dit geeft stevigheid, houdt het product beter in model en zorgt dus voor meer comfort. Over het algemeen geldt wel: hoe dunner een product, hoe minder last je er van hebt tijdens het dragen. 24677 </div> 24678 </div> 24679 </div> 24680 <br> 24681 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24682 <h3 itemprop="name">Hoe kan ik voorkomen dat incomateriaal zichtbaar is onder strakke kleding?</h3> 24683 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24684 <div itemprop="text"> 24685 Dat is moeilijk. Incomateriaal is tegenwoordig relatief dun en kan veel opnemen. Als u bijvoorbeeld een slip met een hoge opname gebruikt, zal het minder zichtbaar zijn wanneer u het aanlegt. Maar na verloop van tijd zal het door de urine toch wat opbollen. Om te voorkomen dat incontinentiemateriaal zichtbaar is onder kleding neigen sommige mensen ernaar om de kleinst mogelijke producten te gebruiken. Het risico is natuurlijk doorlekken. Het is daarom belangrijk om voor uzelf een optimum te vinden tussen dikte, opname en het aantal keren dat u een product vervangt. 24686 </div> 24687 </div> 24688 </div> 24689 <br> 24690 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24691 <h3 itemprop="name">Wat zijn de voordelen van wegwerp incontinentiemateriaal ten opzichte van herbruikbaar?</h3> 24692 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24693 <div itemprop="text"> 24694 We zien de laatste jaren steeds meer herbruikbaar incontinentiemateriaal op de markt komen. Dit wordt meestal âwasbaar incontinentie ondergoedâ genoemd. Want dat is het: ondergoed met een opname. Het voordeel van deze producten is dat je niet steeds een nieuw product hoeft te nemen en dit na gebruik weg te gooien. Ook ziet het er uit als ondergoed. Het nadeel van het wasbare ondergoed is, is dat de opname relatief laag is. Met 100 milliliter ben je er wel. Dat maakt ze alleen geschikt voor heel lichte incontinentie. De grotere wasbare producten kunnen wel meer opnemen, maar het probleem is dat dit product geen absorberende korrels bevat. Deze korrels slaan de urine op en zetten hem om in een gel die droog aanvoelt. Wasbare producten moeten de urine tijdens het uitwassen weer loslaten. Zij slaan urine dus tijdelijk op en dit gebeurt niet zo goed als in de absorberende korrels. Het grote voordeel van wegwerp incontinentiemateriaal is dus de hoge opname en het feit dat deze opname definitief is. 24695 </div> 24696 </div> 24697 </div> 24698 <br> 24699 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24700 <h3 itemprop="name">Hoe kan ik voorkomen dat incontinentiemateriaal geluid maakt als ik beweeg, bijvoorbeeld als ik loop?</h3>
24701 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24702 <div itemprop="text"> 24703 Fabrikanten willen niet dat hun producten geluid maken tijdens gebruik. Daarom maken ze hun incontinentiemateriaal van zachte kunststof die niet kraakt of ruist. Mocht u toch nog iets horen, dan kunt u ervoor kiezen een boxer of fixatiebroekje over uw product te dragen. Daarmee blijft het nog beter op zijn plaats en maakt het geen contact meer met zichzelf of de kleding. Mocht het probleem hier niet mee zijn opgelost, dan raden we u aan op zoek te gaan naar een ander product. Elke fabrikant heeft ongeveer dezelfde lijn producten, er is altijd een alternatief voor uw product te vinden. 24704 </div> 24705 </div> 24706 </div> 24707 <br> 24708 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24709 <h3 itemprop="name">Is er incontinentiemateriaal specifiek geschikt voor mensen met een allergie?</h3> 24710 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24711 <div itemprop="text"> 24712 Het is afhankelijk van het type allergie dat u heeft welke producten voor problemen zorgen. We zien in de praktijk dat het heel moeilijk is te voorspellen welk merk voor huidproblemen zorgt. De beste manier om hierachter komen, is om van verschillende fabrikanten een pakje te proberen. Zo kunt u een product een paar dagen gebruiken om te zien of het bij u een reactie geeft. Vaak zie je dat een product van een andere fabrikant dan beter bevalt. Overigens horen wij vrijwel nooit meer van klanten dat ze een allergische reactie op incontinentiemateriaal hebben. Blijkbaar halen fabrikanten steeds meer stoffen, die potentieel een allergische reactie kunnen geven, uit de producten. 24713 </div> 24714 </div> 24715 </div> 24716 <br> 24717 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24718 <h3 itemprop="name">Kan ik inco's discreet opbergen en meenemen als ik onderweg ben?</h3> 24719 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24720 <div itemprop="text"> 24721 U kunt inco's in elk geval zo klein mogelijk maken door de lucht eruit te persen en het strak op te vouwen. Uiteraard kunt u een discreet etuitje of tasje kopen om het in te doen. Incontinentiemateriaal dat is gebruikt, kunt u in een plastic zakje stoppen om het af te voeren. In onze webwinkel verkopen we blauwe zakjes waar je niet doorheen kan kijken. Dit helpt om het discreet op te bergen. 24722 </div> 24723 </div> 24724 </div> 24725 <br> 24726 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24727 <h3 itemprop="name">Welke incontinentiematerialen zijn het beste voor mensen met een overactieve blaas?</h3> 24728 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24729 <div itemprop="text"> 24730 Alles hangt af van hoeveel u verliest. De mate van verlies bepaalt mede het type product dat u nodig hebt en de opname die u minimaal moet hebben. Bij een overactieve blaas heeft iemand heel vaak de behoefte om naar de wc te gaan, maar de plasjes zijn niet groot, soms zelfs heel klein. Met training is er meestal veel te doen aan een overactieve blaas. U kunt er ook voor kiezen om de urine met een incontinentiemateriaal op te vangen tot het probleem is verholpen. Het is dan de vraag of u slechts druppels moet opvangen of alle urine over een langere periode. Voor kleine hoeveelheden kunt u kiezen voor kleine inleggers. Bij grotere hoeveelheden kunnen grotere inleggers of een broekje helpen. Voor heel grote hoeveelheden zijn een slip of zware inlegger de oplossing. 24731 </div> 24732 </div> 24733 </div> 24734 <br> 24735 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24736 <h3 itemprop="name">Incontinentiemateriaal ouderen: is dat er?</h3> 24737 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24738 <div itemprop="text"> 24739 Er worden geen producten gemaakt speciaal voor ouderen. Al het incontinentiemateriaal kan, mits u de juiste hebt, gebruikt worden door alle leeftijden. Al is de belangrijkste doelgroep voor deze producten natuurlijk wel de ouderen doelgroep. Zijn hebben het meeste last van klachten rondom incontinentie. U zult dus zien dat de meeste reclames op hen zijn gericht. Maar incontinentiemateriaal voor ouderen is er niet. 24740 </div> 24741 </div> 24742 </div> 24743 <br> 24744 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24745 <h3 itemprop="name">Hoe kan ik het best omgaan met huidirritatie of luieruitslag veroorzaakt door incontinentiemateriaal?<
24745/h3> 24746 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24747 <div itemprop="text"> 24748 Wanneer u last krijgt van huidirritatie of luieruitslag bij het gebruik van incontinentiemateriaal is het belangrijk om dit niet verwaarlozen. Een geïrriteerde huid kan verslechteren waardoor rode plekken wondjes worden, of erger. Het is belangrijk om niet te lang rond te blijven lopen met een luier met urine. Ga na hoe vaak u verschoont en probeer dit wat vaker te doen. Als u verwisselt, reinig de huid dan met water en zachte zeep of gebruik bijvoorbeeld TENA Wet Wash Gloves. Deze washandjes kun je opwarmen in de magnetron, zodat je heel prettig de huid kunt bewassen. Behandel hem daarna met een lotion en laat hem even drogen voordat u een nieuw incontinentiemateriaal aanlegt. Wanneer de huid al flink is beschadigd, kunt u er een crème opsmeren die een laagje over de huid aanlegt. Deze sluit hem af en voorkomt verdere irritatie. Wanneer de irritatie blijft, kun je een ander merk proberen. 24749 </div> 24750 </div> 24751 </div> 24752 <br> 24753 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24754 <h3 itemprop="name">Is er speciaal incontinentiemateriaal voor mensen met een stoma?</h3> 24755 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24756 <div itemprop="text"> 24757 Voor mensen met een stoma is het soms lastig om incontinentiemateriaal te gebruiken aangezien de stoma vaak precies op de plek zit van de rand van een pants of slip. Er zijn geen producten speciaal voor een stoma. U kunt wel kijken of u, bijvoorbeeld met een inlegger die u iets verder naar achteren kunt trekken, met het incontinentiemateriaal iets onder de stoma kunt blijven. Ook zijn er incontinentiepants die wat lager op de heup zitten. 24758 </div> 24759 </div> 24760 </div> 24761 <br> 24762 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24763 <h3 itemprop="name">Hoe kan ik incontinentiemateriaal comfortabel dragen als het warm is?</h3> 24764 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24765 <div itemprop="text"> 24766 Als het erg warm is, bestaat de kans dat het onder het incontinentiemateriaal gaat broeien. Er zijn helaas geen oplossingen voor de heel warme dagen. Wel
24766kunt u kijken of u tijdens die dagen een inlegger kan gebruiken in plaats van een broekje. Inleggers zitten niet over de heupen zoals pants en slips. 24767 </div> 24768 </div> 24769 </div> 24770 <br> 24771 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24772 <h3 itemprop="name">Is er incontinentiemateriaal dat geschikt is voor mensen met zware incontinentie?</h3> 24773 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24774 <div itemprop="text"> 24775 Er is een ruim aanbod van incontinentiemateriaal voor mensen die de gehele blaasinhoud verliezen. Hiervoor zijn de grotere inlegger, de slips en de flex het meest geschikt. Deze producten gaan tot een opname van wel 4 liter. Deze hoeveelheid haalt u niet in de praktijk, maar 2,5 liter kan er zeker in. Deze producten herkent u aan termen als Maxi en Ultima op de verpakking. Een gemiddelde lozing van urine is maximaal 400 milliliter. U kunt in deze producten dus meerdere blazen legen. 24776 </div> 24777 </div> 24778 </div> 24779 <br> 24780 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24781 <h3 itemprop="name">Hoe kan ik discreet incontinentiemateriaal kopen zonder me ongemakkelijk te voelen?</h3> 24782 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24783 <div itemprop="text"> 24784 Dankzij het internet kunt u discreet uw incontinentiemateriaal kopen. De producten worden in een neutrale doos ingepakt en verzonden. Zelfs de bezorger die de volgende dag bij u op de stoep staat, weet niet wat hij bij u aflevert. Wij zetten ook onze bedrijfsnaam niet op de verpakking, zodat het onmogelijk is dat iemand weet wat er bij u wordt bezorgd. Toch willen we ook zeggen dat dagelijks honderdduizenden mensen in Nederland een pakket met incontinentiemateriaal wordt bezorgd. U bent dus zeker niet de enige en we hopen dat steeds minder last zult hebben van schaamte en ongemak. 24785 </div> 24786 </div> 24787 </div> 24788 <br> 24789 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24790 <h3 itemprop="name">Kan ik incontinentiemateriaal gebruiken tijdens het uitvoeren van dagelijkse activiteiten zoals werken of boodschappen doen?</h3> 24791 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24792 <div itemprop="text"> 24793 Jazeker, daar is incontinentiemateriaal voor gemaakt. Deze producten zitten, als het goed is, stevig gefixeerd rond uw lichaam, zodat u er geen last van hebt en uiteindelijk vergeet dat u het draagt. Al zult u natuurlijk wel in de gaten moeten houden of het niet gaat doorlekken. Belangrijk is altijd dat producten goed tegen het lichaam zitten. Dat kan met nauwsluitend ondergoed zoals een boxershorts. Ook zijn broekjes speciaal voor dit doel. Deze fixatiebroekjes bestaan volledig uit zeer rekbaar elastiek om incontinentiemateriaal mooi strak tegen het lichaam te houden. Als u dit goed voor elkaar hebt, zult u merken dat u weer veel kan en dat de kans op doorlekken minimaal, mits u tijdig verschoond. 24794 </div> 24795 </div> 24796 </div> 24797 <br> 24798 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24799 <h3 itemprop="name">Wat is het verschil tussen incontinentiemateriaal voor urineverlies en fecale incontinentie?</h3> 24800 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24801 <div itemprop="text"> 24802 De belangrijkste functie van incontinentiemateriaal bij ongewenst urineverlies is het opnemen van de urine in het materiaal. Daar wordt het opgezogen door super absorberende korrels. Die veranderen in een gel, waar de urine niet meer uit kan. Het oppervlak van het incontinentiemateriaal voelt droog aan en ruikt niet of nauwelijks. Bij fecale incontinentie verliest iemand ontlasting, in de vorm van harde drollen tot aan darmvocht, en alles daartussen. Alles wat harder is dan water kan niet worden opgenomen in incontinentiemateriaal en zal dus op het oppervlak blijven liggen. Daarom hebben product voor ontlasting veel minder absorptie. Het is wel belangrijk dat ze groot genoeg zijn om op de billen te zorgen dat er niks kan weglekken. 24803 </div> 24804 </div> 24805 </div> 24806 <br> 24807 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24808 <h3 itemprop="name">Is er incontinentiemateriaal dat geschikt is voor kinderen?</h3>
24809 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24810 <div itemprop="text"> 24811 Voor kinderen die uit luiermaat 6 zijn gegroeid is er zeker incontinentiemateriaal. Er zijn luiers zoals ze die altijd hebben gebruikt. Vaak is de opname wel wat hoger. Ook zijn er incontinentiebroekjes die de kinderen overdag of âs nachts kunnen gebruiken. 24812 </div> 24813 </div> 24814 </div> 24815 <br> 24816 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24817 <h3 itemprop="name">Hoe kan ik het beste omgaan met gevoelens van schaamte of ongemak bij het dragen van incontinentiemateriaal?</h3> 24818 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24819 <div itemprop="text"> 24820 Omgaan met schaamte is heel lastig. Voor iedereen is het pijnlijk om met incontinentie om te gaan. Niemand heeft geleerd hoe dit direct te aanvaarden. Het kost tijd om het te accepteren â gun jezelf die tijd. Leer van anderen die met dit bijltje hebben gehakt. Op internet is veel informatie te vinden van mensen die hun ervaringen delen. Er zijn alleen al in Nederland een miljoen mensen die in meer of mindere mate hiermee worstelen. En een aantal van hen is een stuk verder in het proces van acceptatie. Zij kunnen u helpen. 24821 </div> 24822 </div> 24823 </div> 24824 <br> 24825 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24826 <h3 itemprop="name">Wat zijn de alternatieven voor incontinentiemateriaal voor mensen die liever geen luiers dragen?</h3> 24827 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24828 <div itemprop="text"> 24829 Er is een oplossing voor mensen die echt geen luier willen dragen en dat is een katheter. Katheters zijn er allerlei soorten en maten, maar de essentie is altijd een slangetje dat in de plasbuis of blaas zit en de urine afvoert naar een opvangzak. Als u echt geen incontinentiemateriaal wil gebruiken dan kunt zich hierin verdiepen. Het is echter wel de vraag of u met een katheter de meest comfortabele oplossing heeft. 24830 </div> 24831 </div> 24832 </div> 24833 <br> 24834 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24835 <h3 itemprop="name">Is er incontinentiemateriaal dat geschikt is voor mensen met een gevoelige blaas?</h3> 24836 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24837 <div itemprop="text"> 24838 Bij een gevoelige blaas is incontinentiemateriaal zeker een oplossing. Mensen met een gevoelige blaas hebben veel aandrang en/of hebben moeite hun plas op te houden. Een deel van hen verliest ongewenst urine. In dat geval helpt een luier. De urine wordt opgevangen en opgenomen, zodat u in elk geval droog blijft. Overigens is het bij een gevoelige of overactieve blaas belangrijk om een bezoek te brengen aan de huisarts. Die kan u doorverwijzen naar een specialist zodat u een goede diagnose krijgt en mogelijk met therapie het probleem kan aanpakken. Voor die tijd moet u zeker gebruik maken van incontinentiemateriaal om uzelf te beschermen tegen ongelukjes. 24839 </div> 24840 </div> 24841 </div> 24842 <br> 24843 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24844 <h3 itemprop="name">Hoe kan ik incontinentiemateriaal discreet meenemen op vakantie of op het werk?</h3> 24845 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24846 <div itemprop="text"> 24847 Dat is op de eerste plaats afhankelijk van de grootte van de producten die u gebruikt en hoeveel u wilt meenemen. Bij kleine inleggers steekt u gemakkelijk een pakje bij u. vervolgens kunt u op vakantie meestal in de supermarkt een extra pakje kopen. Gelukkig is in de meeste vakantielanden ook het zwaardere materiaal vrij gemakkelijk bij de supermarkt of apotheek te krijgen. Het gaat dan om landen als België, Duitsland, Frankrijk, Spanje, Italië, Engeland en Griekenland. Bij twijfel kunt u misschien het hotel of de reisorganisator bellen om na te vragen welke producten in de supermarkt of apotheek verkrijgbaar zijn. Voor het discreet afvoeren van incontinentiemateriaal kunt u gebruik maken van niet doorzichtige plastic zakjes met een schuifsluiting. Je ziet van de buitenkant niet wat erin zit en de geur kan er niet doorheen. 24848 </div> 24849 </div> 24850 </div> 24851 <br> 24852 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24853 <h3 itemprop="name">Hoe kan ik incontinentiemateriaal discreet en hygiënisch weggooien?</h3>
24854 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24855 <div itemprop="text"> 24856 Het probleem van gebruikt incontinentiemateriaal is dat het na enige tijd gaat stinken, vooral als de temperaturen wat hoger zijn. Daarom wilt u het niet al te lang in de vuilnisbak bewaren. Overigens zijn er in veel gemeenten speciale afvalstromen van luiers die apart worden opgehaald en verwerkt. Met een telefoontje naar uw gemeente, weet u hoe dit bij u is geregeld. Wanneer u de luiers gewoon bij het afval moet doen, kunt u ze luchtdicht verpakken in een plastic zakje. Er zijn mooie blauwe zakjes van Abena te koop, die u met een schuifje luchtdicht kunt verpakken. Bij kleinere inleggers zou een boterhamzakje ook volstaan. Een heel mooie oplossing is een luieremmer. Vooral de emmer van Janibell is zeer geschikt om luiers discreet en geurvrij op te bergen. Als de emmer vol is, vervangt u de zak door deze van de rol te knippen. Dit werkt heel prettig en hygiënisch. 24857 </div> 24858 </div> 24859 </div> 24860 <br> 24861 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24862 <h3 itemprop="name">Kan ik incontinentiemateriaal gebruiken tijdens het reizen en welke incontinentiematerialen zijn het meest geschikt voor onderweg?</h3> 24863 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24864 <div itemprop="text"> 24865 Wanneer u onderweg bent, wilt u het liefst de producten gebruiken die u altijd gebruikt. U weet dat deze goed afsluiten en u weet wat ze kunnen opnemen. Experimenteer daar niet te veel mee. U kunt natuurlijk wel kiezen voor eenzelfde product met een hogere opname. U kunt het dan langer gebruiken, zonder te verwisselen. Dat kan prettig zijn wanneer u langer in een vliegtuig of de auto zit. 24866 </div> 24867 </div> 24868 </div> 24869 <br> 24870 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24871 <h3 itemprop="name">Kan ik incontinentiemateriaal gebruiken tijdens het zwemmen en wat zijn de beste producten?</h3> 24872 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24873 <div itemprop="text"> 24874 Wanneer u ongewenst urine verliest, is er bij het zwemmen geen oplossing. Zwembaden weten dat er urine in het water terecht komt en behandelen het water hiervoor, bijvoorbeeld met chloor. Bij het verlies van ontlasting zijn er wel speciale zwemluiers die voorkomen dat de ontlasting in het zwemwater terecht komt. Deze luiers sluiten goed af rond de benen en het onderlichaam. Er zijn zowel wasbare als wegwerp zwemluiers. Het voordeel van de wegwerpproducten is dat ze na een verlies direct bij het vuilnis kunnen. Wasbare zwemluiers moet u mee naar huis nemen, om ze daar te wassen. Daarom maken zoveel mensen gebruik van de wegwerp zwemluiers. 24875 </div> 24876 </div> 24877 </div> 24878 <br> 24879 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24880 <h3 itemprop="name">Kan ik incontinentiemateriaal discreet kopen in de winkel en online en welke optie is het meest geschikt voor mij?</h3> 24881 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24882 <div itemprop="text"> 24883 Het is lastig om in een winkel in de buurt discreet een pak incontinentiemateriaal aan te schaffen. Daarom kiezen zoveel mensen voor online. U bestelt het lekker vanachter de pc of in de luie stoel, Kort daarna worden de producten bij u bezorgd. Als het goed is in een neutrale doos en zonder de bedrijfsnaam. Voorafgaand aan de bezorging krijgt u een e-mail met code om de bestelling te volgen. Zo kunt u klaar staan om het pakket op de afgesproken tijd aan te nemen. Ook kunt u ervoor kiezen de producten te laten bezorgen bij een afhaallocatie, bijvoorbeeld van PostNL. U weet dan zeker dat niet een huisgenoot of de buren uw pakket aannemen en ontdekken wat erin zit. Er zijn dus volop mogelijkheden om gecontroleerd incontinentiemateriaal te kopen, zonder dat iemand dit weet of ziet. 24884 </div> 24885 </div> 24886 </div> 24887 <br> 24888 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24889 <h3 itemprop="name">Hoe kan ik mijn huid het beste verzorgen bij het dragen van incontinentiemateriaal?<
24889/h3> 24890 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24891 <div itemprop="text"> 24892 Huidverzorging is cruciaal wanneer je incontinentiemateriaal gebruikt. De kans dat je vroeg of laat te maken krijgt met irritaties aan de huid, is groot. Het klimaat binnen in een luier is niet gunstig voor de huid. Het kan er warm worden, het is er relatief vochtig en urine en ontlasting kunnen de huid aantasten. Dan is er nog kans op schuurplekjes of zelfs een allergische reactie op een stof in het incontinentiemateriaal. Daarom is het zaak de huid goed te verzorgen, te beginnen bij het goed bewassen van de huid. U kunt de huid verzachten met een lotion. Als er eenmaal schade aan de huid is, kunt u hem beschermen met een barrièrecrème. Bij schuurplekken zit een product meestal te los tegen de huid. Dit kan worden opgelost met een iets strakkere onderbroek of een fixatiebroekje. 24893 </div> 24894 </div> 24895 </div> 24896 <br> 24897 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24898 <h3 itemprop="name">Kan ik incontinentiemateriaal dragen tijdens het reizen per vliegtuig en zijn daar speciale regels of richtlijnen voor?</h3> 24899 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24900 <div itemprop="text"> 24901 Aan boord van een vliegtuig mag u gewoon uw incontinentiemateriaal gebruiken. Er zijn geen speciale regels of richtlijnen. Het is wel belangrijk om in elk geval voldoende producten mee te nemen zodat u kan verschonen als dat nodig is. Ook is het handig om afsluitbare plastic zakjes mee te nemen om gebruikte luiers in te bewaren, wanneer u niet in de gelegenheid bent ze direct weg te gooien. 24902 </div> 24903 </div> 24904 </div> 24905 <br> 24906 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24907 <h3 itemprop="name">Hoe kan ik het beste omgaan met lekkages bij het dragen van incontinentiemateriaal?</h3> 24908 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24909 <div itemprop="text"> 24910 Bij het gebruik van incontinentiemateriaal is voor veel mensen lekken de grootste angst. Zij vrezen in een openbare ruimte, op straat of bij iemand anders thuis met een natte broek te staan. Om lekken te voorkomen, is het op de eerste plaats belangrijk om producten goed aan te leggen. Ga op internet op zoek naar filmpjes waarin u ziet hoe u de producten moet gebruiken. Daarmee minimaliseert u de kans op doorlekken. Daarbij is het belangrijk om producten met voldoende absorptie te gebruiken en om tijdig te vervangen. Als een product goed aansluit, goed is gefixeerd met nauwsluitend ondergoed, voldoende absorptie heeft en tijdig wordt vervangen, dan kunt u doorlekken voorkomen. 24911 </div> 24912 </div> 24913 </div> 24914 <br> 24915 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24916 <h3 itemprop="name">Kan ik incontinentiemateriaal dragen tijdens het zwemmen in de zee of in een zwembad?</h3> 24917 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24918 <div itemprop="text"> 24919 Incontinentiemateriaal dat wordt gebruikt bij ongewenst verlies van urine is niet geschikt om in het water te gebruiken. Het product zal zich direct volzuigen en opbollen. Het is vanaf dat moment onbruikbaar. Wanneer u in de zee of een zwembad zwemt, is er niks wat de urine kan tegenhouden. Of u zou een plastic broekje moeten gebruiken dat goed afsluit op de benen en rond het middel. Voor in de zee is dit natuurlijk overbodig, maar ook in zwembaden houdt men rekening met urine die in het water komt. Hiervoor wordt ondermeer chloor aan het water toegevoegd. Bij verlies van ontlasting moet u in een zwembad gebruik maken van een zwemluier. Deze houdt de ontlasting tegen. 24920 </div> 24921 </div> 24922 </div> 24923 <br> 24924 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24925 <h3 itemprop="name">Kan ik incontinentiemateriaal gebruiken tijdens het dragen van strakke sportkleding?</h3> 24926 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24927 <div itemprop="text"> 24928 Ja, dat kan. Maar hoe strakker de kleding, hoe groter de kans dat andere mensen zien dat u incontinentiemateriaal gebruikt. Om te voorkomen dat u daar zorgen over heeft, is het beter om iets wijdere kleding te dragen. Al moet u natuurlijk wel zorgen dat het incontinentiemateriaal tijdens het sporten strak tegen het lichaam is gefixeerd. Het mag tijdens intensief bewegen niet gaan schuiven of opstropen, wat dat vergoot de kans op lekken. 24929 </div> 24930 </div> 24931 </div> 24932 <br> 24933 <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> 24934 <h3 itemprop="name">Is er incontinentiemateriaal voor mensen met een beperking of handicap die bedlegerig zijn?</h3>
24935 <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> 24936 <div itemprop="text"> 24937 Er is geen incontinentiemateriaal speciaal voor mensen die bedlegerig zijn. Maar bijna alle producten kunnen gewoon op bed worden gebruikt. Wij weten dat voor bedlegerige mensen de hoogte van de opname erg belangrijk is. Zij zijn vaak niet in staat om zelfstandig naar de wc te gaan of het lukt ze niet er op tijd te zijn. Deze mensen hebben een product nodig dat in staat is gemakkelijk een hele blaasinhoud op te nemen. Daarom wordt bij bedlegerige mensen vaak gekozen voor een grote inlegger of een slip. Beide kunnen heel veel opnemen en zijn op bed relatief gemakkelijk te verschonen. Al is hier vaak hulp bij nodig. Slips en inleggers zijn aan te leggen wanneer iemand ligt of naast het bed staat. Het vraagt enige handigheid en u moet weten hoe de producten precies moeten worden vastgezet. Zoek daarom naar aanleginstructies wanneer u een slip of inlegger voor het eerst gaat gebruiken. Youtube of de websites van de verschillende fabrikanten helpen u hierbij. 24938 </div> 24939 </div> 24940 </div> 24941 <br> 24942 24943</div></div> 24944</p></div> </div> 24945</div></div></div></main>
24945<script> 24946 function trimToSentence(text, maxLength) { 24947 if (text.length <= maxLength) { 24948 return text; 24949 } 24950 24951 // Find the last occurrence of a period within the first maxLength characters 24952 const lastPeriodIndex = text.lastIndexOf('.', maxLength); 24953 24954 // If a period is found, trim the text up to that position 24955 return lastPeriodIndex !== -1 ? text.slice(0, lastPeriodIndex + 1).trim() + '...' : text.slice(0, maxLength).trim(); 24956 } 24957</script>
24957 24958<footer class="page-footer"><div class="footer content">
24958<script> 24959 addEventListener('DOMContentLoaded', () => { 24960 for (const [selector, label] of Object.entries({"aside.sidebar-main":"Sidebar Main"})) { 24961 const target = document.querySelector(selector); 24962 target && target.setAttribute('aria-label', label); 24963 } 24964 }, {once: true}) 24965</script>
24965 24966 24967<div class="border-t border-secondary-800 py-4 lg:py-6"> 24968 <div class="container lg:flex lg:gap-12"> 24969 <div class="flex justify-between gap-4 lg:flex-col"> 24970 <div class=""> 24971 <a id="logo" class="flex items-center justify-start text-xl no-underline hover:no-underline font-title" 24972 href="https://www.123drogisterij.nl/" 24973 aria-label="Go to Home page" 24974 > 24975 <picture> 24976 <img src="https://www.123drogisterij.nl/media/logo/stores/2/123drogisterij.jpeg" 24977 alt="Store logo" 24978 width="333" height="100" /> 24979 </picture> 24980 </a> 24981</div> 24982 24983 <a href="https://www.kiyoh.com/reviews/1044623/123drogisterij_nl" target="_blank" class="flex flex-row gap-2 p-2 text-sm md:text-lg hover:underline"> 24984 <div class="relative"> 24985 <img height="56" width="56" class="w-10 h-10 min-w-10 sm:h-14 sm:w-14" alt="Kiyoh review badge" src="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/Magento_Theme/images/kiyoh.svg"/> 24986 <span class="absolute top-3 left-2.5 sm:top-4 sm:left-4 font-medium">9.5</span> 24987 </div> 24988 24989 <div class="kiyoh-schema" itemscope="itemscope" itemtype="https://schema.org/Organization"> 24990 <meta itemprop="name" content="123Drogisterij.nl"/> 24991 <div class="flex flex-col h-full justify-between" itemprop="aggregateRating" itemscope="itemscope" itemtype="https://schema.org/AggregateRating"> 24992 <meta itemprop="bestRating" content="10"> 24993 <meta itemprop="ratingValue" content="9.5"> 24994 <meta itemprop="reviewCount" content="5231"> 24995 <meta itemprop="ratingCount" content="5231"> 24996 <div class="flex justify-center relative lg:justify-start lg:-ml-1"> 24997 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4 sm:w-6 sm:h-6 mt-px" viewBox="0 0 20 20" 24998 style="color: #ffba49" 24999 fill="currentColor"> 25000 <path 25001 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 25002 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 25003 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 25004 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> 25005 </svg> 25006 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4 sm:w-6 sm:h-6 mt-px" viewBox="0 0 20 20" 25007 style="color: #ffba49" 25008 fill="currentColor"> 25009 <path 25010 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 25011 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 25012 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 25013 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> 25014 </svg> 25015 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4 sm:w-6 sm:h-6 mt-px" viewBox="0 0 20 20" 25016 style="color: #ffba49" 25017 fill="currentColor"> 25018 <path 25019 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 25020 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 25021 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 25022 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
25022 25023 </svg> 25024 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4 sm:w-6 sm:h-6 mt-px" viewBox="0 0 20 20" 25025 style="color: #ffba49" 25026 fill="currentColor"> 25027 <path 25028 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 25029 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 25030 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 25031 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> 25032 </svg> 25033 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4 sm:w-6 sm:h-6 mt-px"> 25034 <defs> 25035 <linearGradient id="partialFill"> 25036 <stop offset="0%" stop-color="#ffba49"/> 25037 <stop offset="75%" stop-color="#ffba49"/> 25038 <stop offset="75%" stop-color="#cbd5e0"/> 25039 <stop offset="100%" stop-color="#cbd5e0"/> 25040 </linearGradient> 25041 </defs> 25042 <g fill="url(#partialFill)"> 25043 <path 25044 d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 25045 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 25046 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 25047 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/> 25048 </g> 25049 </svg> 25050 </div> 25051 <p class="text-center lg:text-left"> 25052 <span class="text-lg">5231</span> 25053 beoordelingen </p> 25054 </div> 25055 </div> 25056 </a> 25057 </div> 25058 25059 <div class="mt-4 lg:mt-0 lg:w-3/4"> 25060 <strong class="block mb-2 text-xl lg:text-2xl">Vraag ons om advies</strong> 25061 <p class="prose md:prose-base"> 25062 123Drogisterij is dus dé specialist in incontinentiemateriaal. Komt u er niet uit? Geen zorgen, <a href="/over-ons">onze gespecialiseerde medewerkers</a> staan altijd klaar voor al uw vragen of advies. </p> 25063 25064 <div class="flex flex-col gap-4 mt-4 lg:flex-row lg:gap-8 lg:mt-8 lg:gap-32"> 25065 <a class="flex gap-2 items-center group" href="tel:0492-747100" title="0492-747100"> 25066 <div class="bg-green-600 p-2 rounded-md"> 25067 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 text-white" width="24" height="24" role="img"> 25068 <path stroke-linecap="round" stroke-linejoin="round" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"/> 25069<title>phone</title></svg> 25070 </div> 25071 <div>
25072 <span class="text-base font-medium group-hover:underline lg:text-lg"> 25073 Bel ons: 0492-747100 </span> 25074 <span class="block text-md text-gray-500">Ma - vrij van 9.00 â 13.00 uur</span> 25075 </div> 25076 </a> 25077 <a class="flex gap-2 items-start hover:underline" href="mailto:[email protected]" title="[email protected]"> 25078 <div class="bg-green-600 p-2 rounded-md"> 25079 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 text-white" width="24" height="24" role="img"> 25080 <path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/> 25081<title>mail</title></svg> 25082 </div> 25083 <div> 25084 <span class="block text-base font-medium lg:text-lg">Mail ons: [email protected]</span> 25085 <span class="text-md text-gray-500">We antwoorden zo spoedig mogelijk op uw vraag.</span> 25086 </div> 25087 </a> 25088 </div> 25089 </div> 25090 </div> 25091</div> 25092 25093<div class="bg-gray-100"> 25094 <div class="container pt-6 pb-4 flex flex-col lg:justify-between lg:flex-row lg:py-8"> 25095 <div class="flex flex-col text-md mb-2 lg:w-1/4"> 25096 <ul> 25097 <li><strong class="block text-base mb-2">Adres</strong></li> 25098 <li class="block w-3/4 lg:w-full">123Drogisterij</li> 25099 <li class="block w-3/4 lg:w-full">Broederwal 161</li> 25100 <li class="block w-3/4 lg:w-full">5708ZT Helmond</li> 25101 <li class="block mb-1 w-3/4 lg:w-full">Nederland</li> 25102 25103 <li class="block mb-1 w-3/4 lg:w-full">Careland BV</li> 25104 25105 <li class="block mb-1 w-3/4 lg:w-full">BTW: NL851499338B01</li> 25106 <li class="block mb-1 w-3/4 lg:w-full">KvK: 54937485</li> 25107 </ul> 25108 </div> 25109 25110
25110<script> 25111 'use strict'; 25112 25113 const initMenuFooter_6ac1ddf69b386 = () => { 25114 return { 25115 isDesktop: true, 25116 checkIsDesktopResolution() { 25117 this.isDesktop = window.matchMedia('(min-width: 1024px)').matches; 25118 }, 25119 toggleSubmenu(event, index) { 25120 const focusableElements = 'button:not([disabled]), a[href]:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])' 25121 25122 event.stopPropagation() 25123 this[index] = !this[index] 25124 25125 if (this[index]) { 25126 this.$nextTick(() => { 25127 this.$refs['submenu-' + index]?.querySelector(focusableElements)?.focus() 25128 }) 25129 } else { 25130 this.$nextTick(() => { 25131 this.$refs['submenu-toggle-' + index]?.focus() 25132 }) 25133 } 25134 }, 25135 } 25136 }; 25137 </script>
25137 25138 25139 <div class=" w-full flex flex-wrap" 25140 x-data="initMenuFooter_6ac1ddf69b386()" 25141 x-defer="intersect" 25142 > 25143 <ul class="w-full flex flex-col flex-wrap divide-y divide-black divide-container lg:flex-row lg:justify-between lg:divide-y-0" 25144 x-init="checkIsDesktopResolution()" 25145 @resize.window.debounce="checkIsDesktopResolution()" 25146 @visibilitychange.window.debounce="checkIsDesktopResolution()" 25147 > 25148 <li x-data="{'node1': false }" 25149 class="flex-1 " 25150 > 25151 <div @keydown.escape="(event) => !isDesktop && toggleSubmenu(event, 'node1')"> 25152 <strong x-show="isDesktop" 25153 x-cloak="tablet" 25154 class="block mb-2 lg:text-base" 25155 > 25156 Klantenservice </strong> 25157 <button x-show="!isDesktop" 25158 x-cloak="desktop" 25159 x-ref="submenu-toggle-node1" 25160 class="outline-none w-full py-4 font-bold " 25161 @click="(event) => toggleSubmenu(event, 'node1')" 25162 :aria-expanded="node1 === true" 25163 type="button" 25164 > 25165 <div class="flex items-center justify-between"> 25166 <strong class="text-base"> 25167 Klantenservice </strong> 25168 <div class="transition-transform duration-150 ease-in-out transform" :class="{'rotate-180' : node1 === true}"> 25169 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="text-black" width="24" height="24"> 25170 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 25171</svg> 25172 </div> 25173 </div> 25174 </button> 25175 25176 <div x-show="isDesktop || !!node1" 25177 x-cloak="tablet" 25178 x-ref="submenu-node1" 25179 x-collapse 25180 class="pb-8" 25181 :aria-hidden="!isDesktop && node1 === false ? 'true' : 'false'" 25182 > 25183 25184 <ul> 25185 <li class="py-1 group text-md "> 25186 25187<a class="hover:underline outline-none" 25188 href="https://www.123drogisterij.nl/klantenservice" 25189 data-menu="menu-2" 25190 > 25191 Klantenservice</a> 25192 </li> 25193 <li class="py-1 group text-md "> 25194 25195<a class="hover:underline outline-none" 25196 href="https://www.123drogisterij.nl/bestellen" 25197 data-menu="menu-3" 25198 > 25199 Bestellen</a> 25200 </li> 25201 <li class="py-1 group text-md "> 25202 25203<a class="hover:underline outline-none" 25204 href="https://www.123drogisterij.nl/betalen" 25205 data-menu="menu-4" 25206 > 25207 Betalen</a> 25208 </li> 25209 <li class="py-1 group text-md "> 25210 25211<a class="hover:underline outline-none" 25212 href="https://www.123drogisterij.nl/verzending" 25213 data-menu="menu-5" 25214 > 25215 Verzending</a> 25216 </li> 25217 <li class="py-1 group text-md "> 25218 25219<a class="hover:underline outline-none" 25220 href="https://www.123drogisterij.nl/garantie" 25221 data-menu="menu-6" 25222 > 25223 Garantie</a> 25224 </li> 25225 <li class="py-1 group text-md "> 25226 25227<a class="hover:underline outline-none" 25228 href="https://www.123drogisterij.nl/retouren" 25229 data-menu="menu-7" 25230 > 25231 Retouren</a> 25232 </li> 25233 <li class="py-1 group text-md "> 25234 25235<a class="hover:underline outline-none" 25236 href="https://www.123drogisterij.nl/bestelling-annuleren" 25237 data-menu="menu-893" 25238 > 25239 Bestelling annuleren</a> 25240 </li> 25241 </ul> 25242 </div> 25243 </div> 25244 </li> 25245 <li x-data="{'node8': false }" 25246 class="flex-1 " 25247 > 25248 <div @keydown.escape="(event) =>
25248 !isDesktop && toggleSubmenu(event, 'node8')"> 25249 <strong x-show="isDesktop" 25250 x-cloak="tablet" 25251 class="block mb-2 lg:text-base" 25252 > 25253 Categorieën </strong> 25254 <button x-show="!isDesktop" 25255 x-cloak="desktop" 25256 x-ref="submenu-toggle-node8" 25257 class="outline-none w-full py-4 font-bold " 25258 @click="(event) => toggleSubmenu(event, 'node8')" 25259 :aria-expanded="node8 === true" 25260 type="button" 25261 > 25262 <div class="flex items-center justify-between"> 25263 <strong class="text-base"> 25264 Categorieën </strong> 25265 <div class="transition-transform duration-150 ease-in-out transform" :class="{'rotate-180' : node8 === true}"> 25266 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="text-black" width="24" height="24"> 25267 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 25268</svg> 25269 </div> 25270 </div> 25271 </button> 25272 25273 <div x-show="isDesktop || !!node8" 25274 x-cloak="tablet" 25275 x-ref="submenu-node8" 25276 x-collapse 25277 class="pb-8" 25278 :aria-hidden="!isDesktop && node8 === false ? 'true' : 'false'" 25279 > 25280 25281 <ul> 25282 <li class="py-1 group text-md "> 25283 25284<a href="https://www.123drogisterij.nl/incontinentiemateriaal" 25285 class="hover:underline outline-none" 25286 data-menu="menu-9" 25287 > 25288 Incontinentiemateriaal</a> 25289 </li> 25290 <li class="py-1 group text-md "> 25291 25292<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-for-men" 25293 class="hover:underline outline-none" 25294 data-menu="menu-10" 25295 > 25296 TENA Men</a> 25297 </li> 25298 <li class="py-1 group text-md "> 25299 25300<a href="https://www.123drogisterij.nl/incontinentiemateriaal/tena-incontinentie/tena-discreet" 25301 class="hover:underline outline-none" 25302 data-menu="menu-11" 25303 > 25304 TENA Discreet</a> 25305 </li> 25306 <li class="py-1 group text-md "> 25307 25308<a href="https://www.123drogisterij.nl/incontinentie-luiers" 25309 class="hover:underline outline-none" 25310 data-menu="menu-12" 25311 > 25312 Luiers</a> 25313 </li> 25314 <li class="py-1 group text-md "> 25315 25316<a href="https://www.123drogisterij.nl/incontinentiemateriaal-voor-mannen" 25317 class="hover:underline outline-none" 25318 data-menu="menu-13" 25319 > 25320 Mannen</a> 25321 </li> 25322 <li class="py-1 group text-md "> 25323 25324<a href="https://www.123drogisterij.nl/incontinentie-slips" 25325 class="hover:underline outline-none" 25326 data-menu="menu-14" 25327 > 25328 Slips</a> 25329 </li> 25330 <li class="py-1 group text-md "> 25331 25332<a href="https://www.123drogisterij.nl/incontinentie-inleggers/mannenverband" 25333 class="hover:underline outline-none" 25334 data-menu="menu-15" 25335 > 25336 Mannenverband</a> 25337 </li> 25338 </ul> 25339 </div> 25340 </div> 25341 </li> 25342 <li x-data="{'node16': false }" 25343 class="flex-1 " 25344 > 25345 <div @keydown.escape="(event) =>
25345 !isDesktop && toggleSubmenu(event, 'node16')"> 25346 <strong x-show="isDesktop" 25347 x-cloak="tablet" 25348 class="block mb-2 lg:text-base" 25349 > 25350 Categorieën </strong> 25351 <button x-show="!isDesktop" 25352 x-cloak="desktop" 25353 x-ref="submenu-toggle-node16" 25354 class="outline-none w-full py-4 font-bold " 25355 @click="(event) => toggleSubmenu(event, 'node16')" 25356 :aria-expanded="node16 === true" 25357 type="button" 25358 > 25359 <div class="flex items-center justify-between"> 25360 <strong class="text-base"> 25361 Categorieën </strong> 25362 <div class="transition-transform duration-150 ease-in-out transform" :class="{'rotate-180' : node16 === true}"> 25363 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="text-black" width="24" height="24"> 25364 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 25365</svg> 25366 </div> 25367 </div> 25368 </button> 25369 25370 <div x-show="isDesktop || !!node16" 25371 x-cloak="tablet" 25372 x-ref="submenu-node16" 25373 x-collapse 25374 class="pb-8" 25375 :aria-hidden="!isDesktop && node16 === false ? 'true' : 'false'" 25376 > 25377 25378 <ul> 25379 <li class="py-1 group text-md "> 25380 25381<a href="https://www.123drogisterij.nl/incontinentie-pants" 25382 class="hover:underline outline-none" 25383 data-menu="menu-17" 25384 > 25385 Pants</a> 25386 </li> 25387 <li class="py-1 group text-md "> 25388 25389<a href="https://www.123drogisterij.nl/incontinentie-inleggers" 25390 class="hover:underline outline-none" 25391 data-menu="menu-18" 25392 > 25393 Inleggers</a> 25394 </li> 25395 <li class="py-1 group text-md "> 25396 25397<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers" 25398 class="hover:underline outline-none" 25399 data-menu="menu-19" 25400 > 25401 Bed onderleggers</a> 25402 </li> 25403 <li class="py-1 group text-md "> 25404 25405<a href="https://www.123drogisterij.nl/verzorgingsproducten-bij-incontinentie" 25406 class="hover:underline outline-none" 25407 data-menu="menu-20" 25408 > 25409 Verzorging</a> 25410 </li> 25411 <li class="py-1 group text-md "> 25412 25413<a href="https://www.123drogisterij.nl/incontinentie-bed-onderleggers/matrasbeschermers" 25414 class="hover:underline outline-none" 25415 data-menu="menu-21" 25416 > 25417 Matrasbeschermers</a> 25418 </li> 25419 <li class="py-1 group text-md "> 25420 25421<a href="https://www.123drogisterij.nl/incontinentie-luiers/wasbare-luiers-volwassenen" 25422 class="hover:underline outline-none" 25423 data-menu="menu-22" 25424 > 25425 Wasbare luiers volwassen</a> 25426 </li> 25427 </ul> 25428 </div> 25429 </div> 25430 </li> 25431 <li x-data="{'node23': false }" 25432 class="flex-1 " 25433 > 25434 <div @keydown.escape="(event) =>
25434 !isDesktop && toggleSubmenu(event, 'node23')"> 25435 <strong x-show="isDesktop" 25436 x-cloak="tablet" 25437 class="block mb-2 lg:text-base" 25438 > 25439 Handige links </strong> 25440 <button x-show="!isDesktop" 25441 x-cloak="desktop" 25442 x-ref="submenu-toggle-node23" 25443 class="outline-none w-full py-4 font-bold " 25444 @click="(event) => toggleSubmenu(event, 'node23')" 25445 :aria-expanded="node23 === true" 25446 type="button" 25447 > 25448 <div class="flex items-center justify-between"> 25449 <strong class="text-base"> 25450 Handige links </strong> 25451 <div class="transition-transform duration-150 ease-in-out transform" :class="{'rotate-180' : node23 === true}"> 25452 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="text-black" width="24" height="24"> 25453 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> 25454</svg> 25455 </div> 25456 </div> 25457 </button> 25458 25459 <div x-show="isDesktop || !!node23" 25460 x-cloak="tablet" 25461 x-ref="submenu-node23" 25462 x-collapse 25463 class="pb-8" 25464 :aria-hidden="!isDesktop && node23 === false ? 'true' : 'false'" 25465 > 25466 25467 <ul> 25468 <li class="py-1 group text-md "> 25469 25470<a class="hover:underline outline-none" 25471 href="https://www.123drogisterij.nl/contacts" 25472 data-menu="menu-365" 25473 > 25474 Contact</a> 25475 </li> 25476 <li class="py-1 group text-md "> 25477 25478<a class="hover:underline outline-none" 25479 href="https://www.123drogisterij.nl/over-ons" 25480 data-menu="menu-24" 25481 > 25482 Over ons</a> 25483 </li> 25484 <li class="py-1 group text-md "> 25485 25486<a class="hover:underline outline-none" 25487 href="https://www.123drogisterij.nl/keuzehulp" 25488 data-menu="menu-25" 25489 > 25490 Keuzehulp</a> 25491 </li> 25492 <li class="py-1 group text-md "> 25493 25494<a class="hover:underline outline-none" 25495 href="https://www.123drogisterij.nl/veelgestelde-vragen" 25496 data-menu="menu-26" 25497 > 25498 Veelgestelde vragen</a> 25499 </li> 25500 </ul> 25501 </div> 25502 </div> 25503 </li> 25504 </ul> 25505 </div> 25506 </div> 25507</div> 25508 25509<div class="flex flex-col py-4 bg-white text-black lg:justify-between lg:items-center lg:py-0"> 25510 <div class="container flex items-center flex-col text-center text-md lg:flex-row lg:justify-between"> 25511 <div class="flex flex-wrap justify-center gap-4 w-full flex-col xl:flex-row lg:justify-between lg:order-3 lg:items-center lg:gap-8 lg:py-6"> 25512 <div class="lg:order-2"> 25513 <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_7)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#fff" d="M25.275 28H12.977A1.98 1.98 0 0 1 11 26.023V5.977A1.98 1.98 0 0 1 12.977 4h12.298c11.663 0 13.404 7.501 13.404 11.973C38.68 23.729 33.92 28 25.275 28"></path><path fill="#000" fill-rule="evenodd" d="M12.978 26.8h12.297c4.14 0 7.164-1.023 9.142-2.798 1.958-1.757 3.063-4.403 3.063-8.029 0-2.113-.418-4.794-2.076-6.927C33.789 6.971 30.829 5.2 25.274 5.2H12.979a.78.78 0 0 0-.778.778v20.044a.78.78 0 0 0 .778.778m-.001 1.2h12.298c8.644 0 13.404-4.271 13.404-12.027C38.68
2551311.501 36.939 4 25.275 4H12.977A1.98 1.98 0 0 0 11 5.977v20.046A1.98 1.98 0 0 0 12.977 28" clip-rule="evenodd"></path><path fill="#C06" d="M18.539 7.92v17.479h7.61c6.912 0 9.91-3.906 9.91-9.417 0-5.278-2.998-9.381-9.91-9.381h-6.292a1.32 1.32 0 0 0-1.318 1.318"></path><path fill="#fff" d="M21.154 17.026q.198 0 .386-.064a.85.85 0 0 0 .333-.214 1.1 1.1 0 0 0 .234-.389 1.7 1.7 0 0 0 .088-.585q0-.315-.062-.57a1.1 1.1 0 0 0-.202-.436.9.9 0 0 0-.37-.277 1.5 1.5 0 0 0-.571-.097h-.655v2.632zm.064-3.404q.404 0 .751.13c.227.082.433.213.603.385q.255.257.398.643.143.387.143.907 0 .456-.117.842t-.354.666c-.161.19-.363.341-.59.442q-.355.162-.834.161h-1.802v-4.176zm5.627 0v.772H24.64v.895h2.023v.714H24.64v1.023h2.252v.772h-3.17v-4.176zm3.197 2.562-.527-1.533h-.012l-.543 1.533zm-.053-2.562 1.561 4.176h-.953l-.316-.93H28.72l-.328.93h-.924l1.58-4.176zm3.057 0v3.404h2.035v.772h-2.953v-4.176z"></path><path fill="#000" d="M17.026 15.71a1.926 1.926 0 1 1-3.853 0 1.926 1.926 0 0 1 3.853 0m-.466 9.69a2.92 2.92 0 0 1-2.919-2.919v-2.276a1.46 1.46 0 1 1 2.919 0z"></path></g><defs><clippath id="a_7"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met iDeal</title></svg> 25514 25515<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_8)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#000" d="M43 10.5v9.523h-2.167V10.5zm-2.965 3.214v6.327H38.11v-.546a2.6 2.6 0 0 1-.83.546q-.465.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.5 3.5 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q-.001-.708.238-1.313.252-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.466.19.83.545v-.545h1.925zm-3.414 4.604q.592.001.97-.407.39-.404.39-1.035c0-.42-.13-.769-.39-1.036a1.27 1.27 0 0 0-.97-.406c-.391 0-.722.134-.983.406q-.377.405-.377 1.036c0 .42.127.769.377 1.035q.391.406.983.407M29.996 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.157.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24h-1.044v3.238h-2.205V10.5zm-.316 4.34c.296 0 .519-.03.681-.09q.254-.103.415-.253.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.239-.101-.681-.102h-.731v2.378zm-11.055-1.126h2.393l1.624 3.034h.027l1.447-3.034h2.216l-4.748 9.538h-2.205l2.167-4.363zm-.427 0v6.327h-1.926v-.546a2.6 2.6 0 0 1-.83.546q-.466.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.6 3.6 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q0-.708.238-1.313.251-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.467.19.83.545v-.545h1.925zm-3.414 4.604q.591.001.972-.407.392-.404.392-1.035c0-.42-.13-.769-.392-1.036a1.27 1.27 0 0 0-.972-.406q-.591-.001-.983.406-.378.405-.377 1.036c0 .42.128.769.377 1.035q.392.406.983.407M8.25 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.156.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24H7.205v3.238H5V10.5zm-.313 4.34c.295 0 .519-.03.681-.09a1.3 1.3 0 0 0 .415-.253q.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.24-.101-.681-.102h-.731v2.378z"></path></g><defs><clippath id="a_8"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met PayPal</title></svg> 25516 25517<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_9)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#000" d="M39.478 18.825c-.884 0-1.572-.724-1.572-1.603 0-.88.688-1.603 1.572-1.603s1.573.724 1.573 1.603c0 .88-.69 1.603-1.573 1.603m-.442 1.694c.754 0 1.716-.284 2.249-1.396l.052.025c-.234.608-.234.97-.234 1.06v.143H43v-6.258h-1.897v.142c0 .09 0 .453.233 1.06l-.051.026c-.533-1.112-1.495-1.396-2.249-1.396-1.806 0-3.08 1.422-3.08 3.297s1.274 3.297 3.08 3.297m-6.38-6.594c-.858 0-1.534.297-2.08 1.396l-.052-.026c.234-.607.234-.97.234-1.06v-.142H28.86v6.258h1.95v-3.297c0-.866.507-1.41 1.325-1.41.82 0 1.222.466 1.222 1.397v3.31h1.95v-3.982c0-1.423-1.118-2.444-2.652-2.444M26.04 15.32l-.052-.026c.234-.607.234-.97.234-1.
2551706v-.142h-1.897v6.258h1.95l.012-3.013c0-.879.468-1.41 1.235-1.41.208 0 .377.027.572.078v-1.913c-.858-.181-1.625.142-2.054 1.228m-6.199 3.504c-.883 0-1.572-.724-1.572-1.603 0-.88.689-1.603 1.572-1.603s1.573.724 1.573 1.603c0 .88-.689 1.603-1.573 1.603M19.4 20.52c.754 0 1.716-.284 2.249-1.396l.052.025c-.234.608-.234.97-.234 1.06v.143h1.897v-6.258h-1.897v.142c0 .09 0 .453.234 1.06l-.052.026c-.533-1.112-1.495-1.396-2.248-1.396-1.807 0-3.08 1.422-3.08 3.297s1.273 3.297 3.08 3.297m-5.796-.168h1.95V11.3h-1.95zm-1.43-9.051h-1.988c0 1.616-1 3.064-2.52 4.099l-.599.414V11.3H5v9.05h2.066v-4.486l3.418 4.487h2.521l-3.288-4.293c1.495-1.073 2.47-2.74 2.457-4.758"></path></g><defs><clippath id="a_9"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Klarna</title></svg> 25518 25519<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_10)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#FF5F00" d="M28.376 8.139h-8.75v15.725h8.75z"></path><path fill="#EB001B" d="M20.181 16a9.98 9.98 0 0 1 3.82-7.861A9.96 9.96 0 0 0 17.82 6c-5.522 0-10 4.478-10 10s4.478 10 10 10A9.96 9.96 0 0 0 24 23.861 9.98 9.98 0 0 1 20.182 16"></path><path fill="#F79E1B" d="M40.178 16c0 5.522-4.477 10-10 10-2.333 0-4.477-.8-6.18-2.139A9.98 9.98 0 0 0 27.818 16a9.98 9.98 0 0 0-3.82-7.861A9.96 9.96 0 0 1 30.178 6c5.522 0 10 4.478 10 10"></path></g><defs><clippath id="a_10"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Mastercard</title></svg> 25520 25521<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_11)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#1434CB" d="M19.108 10.212 14.243 21.82H11.07l-2.393-9.263c-.146-.57-.272-.78-.714-1.02-.722-.391-1.913-.759-2.962-.987l.071-.337h5.109c.651 0 1.237.434 1.385 1.184l1.264 6.715 3.124-7.9zm12.435 7.817c.013-3.063-4.236-3.232-4.206-4.6.009-.417.405-.86 1.273-.973.43-.056 1.616-.099 2.96.52l.527-2.461A8.1 8.1 0 0 0 29.29 10c-2.968 0-5.056 1.578-5.074 3.837-.019 1.67 1.491 2.603 2.629 3.158 1.17.569 1.563.934 1.558 1.443-.008.778-.933 1.122-1.798 1.135-1.509.024-2.385-.408-3.083-.733l-.544 2.543c.702.322 1.997.603 3.339.617 3.154 0 5.218-1.558 5.227-3.97m7.837 3.79h2.777l-2.424-11.607H37.17c-.577 0-1.063.336-1.278.852L31.387 21.82h3.152l.626-1.734h3.852zm-3.35-4.113 1.58-4.358.91 4.358zm-12.632-7.494L20.915 21.82h-3.002l2.483-11.607z"></path></g><defs><clippath id="a_11"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met VISA</title></svg> 25522 25523<svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewbox="0 0 48 32" class="inline-block" role="img"><g clip-path="url(#a_12)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"></path><path fill="#1E3764" d="M7.9 25.92v-4.652h1.436c1.043 0 1.714.392 1.714 1.203 0 .458-.213.777-.512.963.432.2.685.585.685 1.11 0 .937-.685 1.376-1.748 1.376zm.924-2.719h.684c.419 0 .599-.206.599-.584 0-.406-.326-.539-.765-.539h-.518zm0 1.908h.571c.559 0 .884-.14.884-.578 0-.432-.279-.612-.804-.612h-.651zm4.19.89c-.91 0-1.369-.445-1.369-1.043 0-.658.539-1.043 1.336-1.05q.297.006.592.053v-.16c0-.405-.233-.598-.678-.598-.3-.003-.598.05-.877.16l-.167-.718c.286-.12.745-.2 1.15-.2.977 0 1.462.52 1.462 1.416v1.848c-.272.14-.784.293-1.449.293m.559-.75v-.712a2.2 2.2 0 0 0-.472-.053c-.306 0-.545.12-.545.432 0 .28.2.426.552.426.16.005.319-.027.465-.093m1.536.67v-3.183a4.1 4.1 0 0 1 1.502-.292c.97 0 1.529.478 1.529 1.362v2.114h-.918v-2.047c0-.459-.212-.672-.618-.672-.201-.002-.4.038-.584.12v2.599zm6.236-3.276-.173.725a2 2 0 0 0-.751-.166c-.538 0-.83.378-.83 1.003 0 .685.305 1.037.876 1.037.255-.007.506-.066.738-.173l.146.738c-.3.134-.627.2-.957.193-1.103 0-1.741-.685-1.741-1.768 0-1.077.631-1.788 1.688-1.788.345-.002.686.066 1.004.2M23.325 26c-1.023 0-1.66-.712-1.66-1.782 0-1.063.637-1.774 1.66-1.774 1.031 0 1.656.711 1.656 1.774 0 1.07-.625 1.782-1.655 1.782m0-.758c.473 0 .719-.392.719-1.024 0-.624-.246-1.017-.718-1.017-.465 0-.724.393-.724 1.017 0 .632.259 1.024.724 1.024m2.187.678v-3.184a4.1 4.1 0 0 1 1.502-.292c.97 0 1.528.478 1.528 1.362v2.114h-.917v-2.047c0-.459-.213-.672-.618-.672a1.4 1.4 0 0 0-.585.12v2.599zm5.098.08c-.79 0-1.196-.433-1.196-1.31v-1.435h-.452v-.731h.452v-.738l.917-.047v.785h.738v.73h-.738v1.423c0 .385.16.565.459.565q.178 0 .352-.04l.047.738q-.286.063-.579.06m2.315 0c-.91 0-1.369-.446-1.369-1.044 0-.658.539-1.043 1.336-1.05q.297.006.592.053v-.16c0-.405-.233-.598-.678-.598-.3-.003-.598.05-.877.16l-.167-.718c.286-.12.745-.2 1.15-.2.977 0 1.462.52 1.462 1.416v1.848c-.272.14-.784.293-1.449.293m.559-.751v-.712a2.2 2.2 0 0 0-.472-.053c-.306 0-.545.12-.545.432 0 .28.2.426.551.426.16.005.32-.027.466-.093m4.028-2.606-.173.725a2 2 0 0 0-.75-.166c-.539 0-.831.378-.831 1.003 0 .685.305 1.037.877 1.037.255-.007.506-.066.738-.173l.146.738c-.301.134-.628.2-.957.193-1.103 0-1.741-.685-1.741-1.768 0-1.077.63-1.788 1.688-1.788.344-.002.685.066 1.003.2M39.53 26c-.791 0-1.197-.433-1.197-1.31v
25523-1.435h-.452v-.731h.452v-.738l.917-.047v.785h.738v.73h-.738v1.423c0 .385.16.565.459.565q.179 0 .352-.04l.047.738q-.286.063-.578.06"></path><path fill="url(#b_2)" d="M14.297 18.942c4.853 0 7.28-3.236 9.706-6.471H7.9v6.47z"></path><path fill="url(#c_2)" d="M33.71 6c-4.854 0-7.28 3.235-9.707 6.47h16.104V6z"></path></g><defs><lineargradient id="b_2" x1="11.157" x2="22.938" y1="16.005" y2="11.629" gradientunits="userSpaceOnUse"><stop stop-color="#005AB9"></stop><stop offset="1" stop-color="#1E3764"></stop></lineargradient><lineargradient id="c_2" x1="24.978" x2="37.487" y1="13.032" y2="8.764" gradientunits="userSpaceOnUse"><stop stop-color="#FBA900"></stop><stop offset="1" stop-color="#FFD800"></stop></lineargradient><clippath id="a_12"><path fill="#fff" d="M0 0h48v32H0z"></path></clippath></defs><title>Betaal met Bancontact</title></svg> 25524 25525</div> </div> 25526 25527 <div class="flex justify-center flex-wrap gap-4 lg:order-3"> 25528 <a class="hover:underline" href="/algemene-voorwaarden"> 25529 Algemene voorwaarden </a> 25530 <a class="hover:underline" href="/copyright"> 25531 Copyright </a> 25532 <a class="hover:underline" href="/privacy"> 25533 Privacybeleid </a> 25534 </div> 25535 25536 <span class="text-center lg:text-left lg:order-1"> 25537 Copyright © 2026. Alle rechten voorbehouden. <br/> 25538 </span> 25539 </div> 25540 </div> 25541</div> 25542</div></footer>
25542<script> 25543 window.MagefanJs = window.MagefanJs || {}; 25544 window.MagefanJs.ajax = function(options) { 25545 var xmlhttp = new XMLHttpRequest(); 25546 xmlhttp.onreadystatechange = function () { 25547 if (xmlhttp.readyState == XMLHttpRequest.DONE && xmlhttp.status == 200) { 25548 var data = xmlhttp.responseText; 25549 if (options.success) options.success(data); 25550 } 25551 }; 25552 25553 xmlhttp.open(options.type, options.url, true); 25554 25555 var requestHeader = Object.assign({}, { 25556 'X-Requested-With': 'XMLHttpRequest', 25557 'Content-type': 'application/x-www-form-urlencoded' 25558 }, options.requestHeader ? options.requestHeader : {}); 25559 25560 for (var header in requestHeader) { 25561 xmlhttp.setRequestHeader(header, requestHeader[header]); 25562 } 25563 xmlhttp.send(options.data); 25564 }; 25565</script>
25565<div id="mf-coupon-code-link-popup" > 25566 <div class="mf-coupon-code-link-popup-wrap"> 25567 <header class="modal-header"> 25568 <button class="action-close" id="close-popup" data-role="closeBtn" type="button"> 25569 <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"> 25570 <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/> 25571 </svg> 25572 </button> 25573 </header> 25574 <div class="modal-content"> 25575 <div class="popup_image"> 25576 </div> 25577 <div class="message"></div> 25578 </div> 25579 </div> 25580</div> 25581<div class="custom-modals-overlay" style="z-index: 901;"></div> 25582<style> 25583 #mf-coupon-code-link-popup {position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 902;min-width: 0;visibility: hidden;opacity: 0;-webkit-transition: visibility 0s .3s,opacity .3s ease;transition: visibility 0s .3s,opacity .3s ease;pointer-events: none;overflow-y: auto;display: none;} 25584 .mf-coupon-code-link-popup-wrap {min-width: 350px; margin: 5rem auto;width: 75%;display: -webkit-flex;display: -ms-flexbox;display: flex;-webkit-flex-direction: column;-ms-flex-direction: column;flex-direction: column;box-sizing: border-box;height: auto;left: 0;position: absolute;right: 0;-webkit-transform: translateY(-200%);transform: translateY(-200%);-webkit-transition: -webkit-transform .2s ease;transition: transform .2s ease;background: 0 0;box-shadow: none;opacity: 1;pointer-events: auto;background: #fff;} 25585 #mf-coupon-code-link-popup._show {visibility: visible;opacity: 1;-webkit-transition: opacity .3s ease;transition: opacity .3s ease;display: block;} 25586 #mf-coupon-code-link-popup._show .mf-coupon-code-link-popup-wrap {-webkit-transform: translateY(0);transform: translateY(0); max-width: 400px;} 25587 #mf-coupon-code-link-popup .modal-header {padding: 1.2rem 0 1.2rem;} 25588 #mf-coupon-code-link-popup .modal-header .modal-title {color: #fff;font-weight: 600;padding: 0 3rem;} 25589 #mf-coupon-code-link-popup .modal-header .action-close {display: block;position: absolute;top: 10px;right: 10px;padding: 15px;background: none;background: 0 0;-moz-box-sizing: content-box;border: 0;box-shadow: none;margin: 0;text-decoration: none;} 25590 #mf-coupon-code-link-popup .modal-content {padding: 0;margin: 0;border: none;} 25591 #mf-coupon-code-link-popup .modal-content .message{margin: 20px;} 25592 body._show-modal {height: 100%;overflow: hidden;width: 100%;} 25593 body .custom-modals-overlay {opacity: 0;background: none;position: static;} 25594 body._show-modal .custom-modals-overlay {background-color: rgba(51,51,51,.55);bottom: 0;left: 0;position: fixed;right: 0;top: 0;opacity: 1;} 25595</style>
25596<script> 25597 function MagefanAjaxCouponCodeLink(urlStr) { 25598 document.body.dispatchEvent(new CustomEvent('processStart')); 25599 var modalElement = document.getElementById('mf-coupon-code-link-popup'); 25600 if (modalElement) { 25601 25602 MagefanJs.ajax({ 25603 'url': urlStr, 25604 'type': 'POST', 25605 'dataType': 'json', 25606 success: function(response) { 25607 response = JSON.parse(response); 25608 25609 var popupImageContainer = document.querySelector('#mf-coupon-code-link-popup .popup_image'); 25610 if (popupImageContainer && response.img) { 25611 popupImageContainer.innerHTML = '<img src="' + response.img + '" alt="coupon code applied">'; 25612 }; 25613 25614 var messageContainer = document.querySelector('#mf-coupon-code-link-popup .message'); 25615 if (messageContainer && response.message) { 25616 messageContainer.textContent = response.message; 25617 }; 25618 25619 var modalElement = document.querySelector('#mf-coupon-code-link-popup'); 25620 25621 document.querySelector('.custom-modals-overlay').addEventListener('click', function(event) { 25622 // popup = document.querySelector('.custom-modal-popup'); 25623 closePopup(modalElement); 25624 }); 25625 25626 document.getElementById('close-popup').addEventListener('click', function(event) { 25627 popup = event.target.closest('#mf-coupon-code-link-popup'); 25628 closePopup(popup); 25629 }); 25630 25631 function closePopup(modalElement){ 25632 document.body.classList.remove('_show-modal'); 25633 modalElement.classList.remove('_show'); 25634 25635 if (window.location.href == response.redirectUrl) { 25636 return false; 25637 }; 25638 25639 if (response.status && response.redirectUrl && response.redirectUrl.length) { 25640 window.location.href = response.redirectUrl; 25641 }; 25642 }; 25643 25644 document.body.classList.add('_show-modal'); 25645 modalElement.classList.add('_show'); 25646 25647 document.body.dispatchEvent(new CustomEvent('processStop')); 25648 } 25649 }); 25650 25651 } else { 25652 console.error('Magento require is not available.'); 25653 }; 25654 }; 25655 25656 window.addEventListener('DOMContentLoaded', function () { 25657 document.querySelectorAll('a[href*="/mfapplycc/apply/"]').forEach(function (link) { 25658 link.addEventListener('click', function (event) { 25659 event.preventDefault(); 25660 event.stopPropagation(); 25661 MagefanAjaxCouponCodeLink(this.getAttribute('href')); 25662 }); 25663 }); 25664 }); 25665</script>
25665<script>try { 25666smileTracker.addPageVar('type.identifier', 'catalog_category_view'); 25667smileTracker.addPageVar('type.label', 'Catalog Category'); 25668smileTracker.addPageVar('locale', 'nl_NL'); 25669} catch (err) { ; }</script>
25669<script>try { 25670smileTracker.addPageVar('category.id', '10'); 25671smileTracker.addPageVar('category.label', 'Incontinentiemateriaal'); 25672smileTracker.addPageVar('category.path', '1/3/10'); 25673smileTracker.addPageVar('category.breadcrumb', ''); 25674smileTracker.addPageVar('product_list.page_count', '20'); 25675smileTracker.addPageVar('product_list.product_count', '399'); 25676smileTracker.addPageVar('product_list.current_page', '1'); 25677smileTracker.addPageVar('product_list.sort_order', 'position'); 25678smileTracker.addPageVar('product_list.sort_direction', 'asc'); 25679smileTracker.addPageVar('product_list.display_mode', 'list'); 25680} catch (err) { ; }</script>
vendor: 1 bytes, line 25680
25680
25681<script> 25682 let SnapSlider = class { 25683 constructor(el, { 25684 labelSepparator = 'van', 25685 autoPager, 25686 groupPager 25687 } = {}) { 25688 this.el = el; 25689 this.track = this.el.querySelector("[data-track]"); 25690 if (!this.track) { 25691 console.warn( 25692 "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track", 25693 this.el 25694 ); 25695 return; 25696 } 25697 this.initialLoad = true; 25698 this.slides = []; 25699 this.inViewObserver; 25700 this.mutationObserver; 25701 this.resizeObserver; 25702 this.pager = this.el.querySelector("[data-pager]"); 25703 this.navBtns = Array.from( 25704 this.el.querySelectorAll("[data-next], [data-prev]") 25705 ); 25706 this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator; 25707 this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false; 25708 this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false; 25709 this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, ""); 25710 this.sliderId = this.el.id || this.sliderLabel || "slider"; 25711 this.markerIdName = "data-target-id"; 25712 this.pagerClasses = this.el.dataset.pagerClass || "snap-pager"; 25713 this.markerClasses = this.el.dataset.markerClass || "snap-marker"; 25714 this.init(); 25715 } 25716 init() { 25717 this.setupSlides(); 25718 this.setupNav(); 25719 if (this.useAutoPager) { 25720 this.createPager(); 25721 } else { 25722 this.setupPager(); 25723 } 25724 this.setupObservers(); 25725 this.setupMutationObserver(); 25726 this.setupResizeObserver(); 25727 this.el.addEventListener("click", this.eventHandler.bind(this)); 25728 this.el.addEventListener("keydown", this.eventHandler.bind(this)); 25729 } 25730 destroy() { 25731 this.inViewObserver?.disconnect(); 25732 this.mutationObserver?.disconnect(); 25733 this.resizeObserver?.disconnect(); 25734 this.el.removeEventListener("click", this.eventHandler.bind(this)); 25735 this.el.removeEventListener("keydown", this.eventHandler.bind(this)); 25736 } 25737 roundUpIfGreaterThan(number, min = 8) { 25738 const decimalPart = number - Math.floor(number); 25739 return decimalPart >= min ? Math.ceil(number) : Math.floor(number); 25740 } 25741 getInViewItems() { 25742 const inViewSlides = this.track.querySelectorAll("[data-in-view]"); 25743 const firstInViewSlide = inViewSlides[0] || null; 25744 const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null; 25745 const isAtStart = firstInViewSlide === this.slides[0]; 25746 const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1]; 25747 return { 25748 inViewSlides, 25749 totalInViewSlides: inViewSlides.length, 25750 firstInViewSlide, 25751 lastInViewSlide, 25752 isAtStart, 25753 isAtEnd, 25754 hasNoOverflow: isAtStart && isAtEnd 25755 }; 25756 } 25757 groupPagerMarkers() { 25758 if (!this.pager || !this.useGroupPager) return; 25759 const totalVisibleSlides = this.roundUpIfGreaterThan( 25760 this.track.offsetWidth / this.slides[0].offsetWidth 25761 ); 25762 const markers = Array.from(this.pager.querySelectorAll("a, button")); 25763 markers.forEach((marker, index) => { 25764 marker.style.display = index % totalVisibleSlides === 0 ? null : "none"; 25765 }); 25766 } 25767 handleInView(entries) { 25768 entries.forEach((entry) => { 25769 const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector( 25770 `[${this.markerIdName}="${entry.target.id}"]` 25771 )); 25772 entry.target.toggleAttribute("data-in-view", entry.isIntersecting); 25773 entry.target.toggleAttribute("inert", !entry.isIntersecting); 25774 marker?.setAttribute("aria-current", entry.isIntersecting); 25775 marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1"); 25776 }); 25777 const { 25778 isAtStart, 25779 isAtEnd, 25780 hasNoOverflow 25781 } = this.getInViewItems(); 25782 this.navBtns.forEach((btn) => { 25783 if (btn.hasAttribute("data-next")) { 25784 btn.style.visibility = hasNoOverflow ? "hidden" : null; 25785 isAtEnd ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 25786 } 25787 if (btn.hasAttribute("data-prev")) { 25788 btn.style.visibility = hasNoOverflow ? "hidden" : null; 25789 isAtStart ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 25790 } 25791 }); 25792 if (this.pager) { 25793 this.pager.style.visibility = hasNoOverflow ? "hidden" : null; 25794 } 25795 if (!this.initialLoad) { 25796 this.el.dispatchEvent( 25797 new CustomEvent("slideChange", { 25798 detail: this.getInViewItems() 25799 }) 25800 ); 25801 } else { 25802 this.initialLoad = false;
25803 } 25804 if (document.activeElement.parentElement.hasAttribute("data-pager")) { 25805 const activeItems = this.pager.querySelectorAll('[tabindex="0"]'); 25806 if (activeItems.length) { 25807 activeItems[0].focus(); 25808 } 25809 } 25810 } 25811 getSlides() { 25812 if (!this.track) return []; 25813 return Array.from(this.track.children).filter( 25814 (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "script" 25815 ); 25816 } 25817 refreshSlides() { 25818 this.initialLoad = true; 25819 this.slides = this.getSlides(); 25820 this.setupSlides(); 25821 if (this.useAutoPager) { 25822 this.createPager(); 25823 } else { 25824 this.setupPager(); 25825 } 25826 this.groupPagerMarkers(); 25827 this.setupObservers(); 25828 } 25829 setupSlides() { 25830 this.slides = this.getSlides(); 25831 this.slides.forEach((slide, index) => { 25832 const totalSlides = this.slides.length; 25833 const currentSlide = index + 1; 25834 const existingLabel = slide.getAttribute("aria-label") || ""; 25835 const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture"; 25836 const slideLabelTag = isImage ? "alt" : "aria-label"; 25837 const hasAutoLabel = existingLabel.startsWith( 25838 `${currentSlide} ${this.slideLabelSepparator} ` 25839 ); 25840 if (!slide.hasAttribute("id")) { 25841 slide.setAttribute( 25842 "id", 25843 `${this.sliderId}-item-${currentSlide}` 25844 ); 25845 } 25846 if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) { 25847 slide.setAttribute( 25848 slideLabelTag, 25849 `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}` 25850 ); 25851 } 25852 if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) { 25853 slide.setAttribute("role", "group"); 25854 } 25855 if (this.pager && !isImage) { 25856 slide.setAttribute("role", "tabpanel"); 25857 } 25858 if (slide.getAttribute("role") === "group") { 25859 slide.setAttribute("aria-roledescription", "item"); 25860 } 25861 }); 25862 if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") { 25863 this.el.setAttribute("role", "region"); 25864 } 25865 if (!this.el.hasAttribute("aria-roledescription")) { 25866 this.el.setAttribute("aria-roledescription", "carousel"); 25867 } 25868 this.track.setAttribute("tabindex", 0); 25869 this.track.setAttribute("aria-live", "polite"); 25870 } 25871 setupNav() { 25872 this.navBtns.forEach((btn) => { 25873 btn.setAttribute("disabled", ""); 25874 btn.removeAttribute("hidden"); 25875 btn.classList.remove("invisible"); 25876 btn.style.visibility = null; 25877 }); 25878 } 25879 createPager() { 25880 const newPager = document.createElement("nav"); 25881 newPager.setAttribute("data-pager", ""); 25882 newPager.setAttribute("role", "tablist"); 25883 newPager.classList.add(...this.pagerClasses.split(" ")); 25884 this.slides.forEach((slide, index) => { 25885 const marker = document.createElement("button"); 25886 const slideId = slide.id || `${this.sliderId}-item-${index + 1}`; 25887 marker.setAttribute(this.markerIdName, slideId); 25888 marker.classList.add(...this.markerClasses.split(" ")); 25889 this.setupPagerMarker(marker, index); 25890 newPager.appendChild(marker); 25891 if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") { 25892 slide.removeAttribute("aria-roledescription"); 25893 slide.setAttribute("role", "tabpanel"); 25894 } 25895 }); 25896 if (this.pager) { 25897 this.pager.setAttribute("role", "tablist"); 25898 this.pager.replaceChildren(...newPager.children); 25899 } else { 25900 this.track.after(newPager); 25901 this.pager = this.el.querySelector("[data-pager]"); 25902 } 25903 } 25904 setupPager() { 25905 if (!this.pager) return; 25906 this.pager.setAttribute("role", "tablist"); 25907 const items = Array.from(this.pager.querySelectorAll("a, button"));
25908 items.forEach((marker, index) => this.setupPagerMarker(marker, index)); 25909 } 25910 setupPagerMarker(marker, index) { 25911 const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 25912 const slideId = markerId || `${this.sliderId}-item-${index + 1}`; 25913 if (!markerId) { 25914 marker.setAttribute(this.markerIdName, slideId); 25915 } 25916 marker.setAttribute("role", "tab"); 25917 marker.setAttribute("aria-controls", slideId); 25918 marker.setAttribute("aria-posinset", index + 1); 25919 marker.setAttribute("aria-setsize", this.slides.length); 25920 marker.setAttribute("tabindex", "-1"); 25921 if (!marker.hasAttribute("aria-label")) { 25922 marker.setAttribute("aria-label", `Slide ${index + 1}`); 25923 } 25924 } 25925 setupObservers() { 25926 if (this.inViewObserver) { 25927 this.inViewObserver.disconnect(); 25928 } 25929 this.inViewObserver = new IntersectionObserver( 25930 this.handleInView.bind(this), { 25931 root: this.track, 25932 threshold: 0.8 25933 } 25934 ); 25935 this.slides.forEach((slide) => this.inViewObserver.observe(slide)); 25936 } 25937 setupMutationObserver() { 25938 this.mutationObserver = new MutationObserver( 25939 this.refreshSlides.bind(this) 25940 ); 25941 this.mutationObserver.observe(this.track, { 25942 childList: true, 25943 subtree: false 25944 }); 25945 } 25946 setupResizeObserver() { 25947 this.resizeObserver = new ResizeObserver( 25948 this.groupPagerMarkers.bind(this) 25949 ); 25950 this.resizeObserver.observe(this.el); 25951 } 25952 goToSlideDir(dir = "next") { 25953 const { 25954 firstInViewSlide, 25955 lastInViewSlide 25956 } = this.getInViewItems(); 25957 const isPrev = dir === "prev"; 25958 let targetSlide = isPrev ? firstInViewSlide?.previousElementSibling : lastInViewSlide?.nextElementSibling; 25959 if (!targetSlide) return; 25960 if (targetSlide.tagName.toLowerCase() === "template") { 25961 targetSlide = isPrev ? targetSlide?.previousElementSibling : targetSlide?.nextElementSibling; 25962 } 25963 targetSlide.scrollIntoView({ block: "nearest", inline: isPrev ? "end" : "start" }); 25964 } 25965 pagerToSlide(event) { 25966 if (!event.target.closest("[data-pager]")) return; 25967 const marker = event.target.closest("a, button"); 25968 if (!marker) return; 25969 event.preventDefault(); 25970 const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 25971 const targetSlide = this.track.querySelector(`#${slideId}`); 25972 targetSlide?.scrollIntoView({ block: "nearest", inline: "start" }); 25973 } 25974 eventHandler(event) { 25975 const target = event.target.closest( 25976 "[data-next], [data-prev], [data-pager]" 25977 ); 25978 if (!target) return; 25979 if (event.type === "click") { 25980 if (target.hasAttribute("data-next")) { 25981 this.goToSlideDir("next"); 25982 } else if (target.hasAttribute("data-prev")) { 25983 this.goToSlideDir("prev"); 25984 } else if (target.closest("[data-pager]")) { 25985 this.pagerToSlide(event); 25986 } 25987 } 25988 if (event.type === "keydown" && target.closest("[data-pager]")) { 25989 if (event.key === "ArrowRight") { 25990 this.goToSlideDir("next"); 25991 } else if (event.key === "ArrowLeft") { 25992 this.goToSlideDir("prev"); 25993 } 25994 } 25995 } 25996 }; 25997 25998 (() => { 25999 function alpineSnapSlider(Alpine) { 26000 Alpine.directive("snap-slider", (el, { 26001 modifiers 26002 }, { 26003 cleanup 26004 }) => { 26005 const autoPager = modifiers.includes("auto-pager");
26006 const groupPager = modifiers.includes("group-pager"); 26007 const slider = new SnapSlider(el, { 26008 autoPager, 26009 groupPager 26010 }); 26011 cleanup(() => { 26012 slider.destroy(); 26013 }); 26014 }); 26015 } 26016 26017 document.addEventListener("alpine:init", () => { 26018 window.Alpine.plugin(alpineSnapSlider); 26019 }); 26020 })(); 26021</script>
vendor: 1 bytes, line 26021
26021
26022<script> 26023 (() => { 26024 // src/dialog.js 26025 function dialog_default(Alpine) { 26026 Alpine.directive("htmldialog", fylgjaAlpineDialog); 26027 function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) { 26028 const evaluate = expression.length ? evaluateLater(expression) : () => {}; 26029 const canEvaluate = expression.length > 0; 26030 const lockPageScroll = modifiers.includes("noscroll"); 26031 const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest"); 26032 el.style.display = null; 26033 el.style.length === 0 && el.removeAttribute("style"); 26034 if (el._x_isShown) { 26035 open(); 26036 } 26037 const closeBySupported = (() => { 26038 return "closedBy" in HTMLDialogElement.prototype; 26039 })(); 26040 function scrollLock(use = true) { 26041 document.body.style.overflow = use ? "hidden" : ""; 26042 } 26043 function dialogSubmit(event) { 26044 if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") { 26045 event.preventDefault(); 26046 evaluate(); 26047 } 26048 } 26049 function escapeDialog(event) { 26050 if (event.key !== "Escape") return; 26051 event.preventDefault(); 26052 if (closeBy === "none") return; 26053 evaluate(); 26054 } 26055 function handleCloseByEvent(event) { 26056 if (event.target !== el) return; 26057 const rect = el.getBoundingClientRect(); 26058 const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width; 26059 if (!isInDialog) { 26060 if (closeBy === "any") { 26061 if (closeBySupported) { 26062 event.preventDefault(); 26063 } 26064 evaluate(); 26065 } 26066 } 26067 } 26068 function handleCloseEvent() { 26069 evaluate(); 26070 } 26071 function open() { 26072 if (el.hasAttribute("open")) return; 26073 el.showModal(); 26074 scrollLock(lockPageScroll); 26075 } 26076 function close() { 26077 if (!el.hasAttribute("open")) return; 26078 el.close(); 26079 scrollLock(false); 26080 } 26081 el._x_doShow = () => open(); 26082 el._x_doHide = () => close(); 26083 el.addEventListener("keydown", escapeDialog); 26084 el.addEventListener("submit", dialogSubmit); 26085 el.addEventListener("click", handleCloseByEvent); 26086 el.addEventListener("cancel", handleCloseEvent); 26087 cleanup(() => { 26088 el.removeEventListener("keydown", escapeDialog); 26089 el.removeEventListener("submit", dialogSubmit); 26090 el.removeEventListener("click", handleCloseByEvent); 26091 el.removeEventListener("cancel", handleCloseEvent); 26092 scrollLock(false); 26093 }); 26094 } 26095 } 26096 function modifierValue(modifiers, key, fallback) { 26097 if (modifiers.indexOf(key) === -1) return fallback; 26098 const rawValue = modifiers[modifiers.indexOf(key) + 1]; 26099 if (!rawValue) return fallback; 26100 if (key === "closeby") { 26101 const allowedValues = ["auto", "none", "closerequest", "any"]; 26102 const options = allowedValues.join(", "); 26103 if (!allowedValues.includes(rawValue)) { 26104 console.warn( 26105 `"${rawValue}" is not one of the allowed values for closeby: ${options}` 26106 ); 26107 return fallback; 26108 } 26109 } 26110 return rawValue; 26111 } 26112 26113 // src/cdn.js 26114 document.addEventListener("alpine:init", () => { 26115 window.Alpine.plugin(dialog_default); 26116 }); 26117 })(); 26118</script>
vendor: 1 bytes, line 26118
26118
26119<script> 26120 (() => { 26121 function src_default(Alpine) { 26122 Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { 26123 let evaluate = evaluateLater(expression); 26124 let options = { 26125 rootMargin: getRootMargin(modifiers), 26126 threshold: getThreshold(modifiers) 26127 }; 26128 let observer = new IntersectionObserver((entries) => { 26129 entries.forEach((entry) => { 26130 if (entry.isIntersecting === (value === "leave")) 26131 return; 26132 evaluate(); 26133 modifiers.includes("once") && observer.disconnect(); 26134 }); 26135 }, options); 26136 observer.observe(el); 26137 cleanup(() => { 26138 observer.disconnect(); 26139 }); 26140 })); 26141 } 26142 function getThreshold(modifiers) { 26143 if (modifiers.includes("full")) 26144 return 0.99; 26145 if (modifiers.includes("half")) 26146 return 0.5; 26147 if (!modifiers.includes("threshold")) 26148 return 0; 26149 let threshold = modifiers[modifiers.indexOf("threshold") + 1]; 26150 if (threshold === "100") 26151 return 1; 26152 if (threshold === "0") 26153 return 0; 26154 return Number(`.${threshold}`); 26155 } 26156 function getLengthValue(rawValue) { 26157 let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); 26158 return match ? match[1] + (match[2] || "px") : void 0; 26159 } 26160 function getRootMargin(modifiers) { 26161 const key = "margin"; 26162 const fallback = "0px 0px 0px 0px"; 26163 const index = modifiers.indexOf(key); 26164 if (index === -1) 26165 return fallback; 26166 let values = []; 26167 for (let i = 1; i < 5; i++) { 26168 values.push(getLengthValue(modifiers[index + i] || "")); 26169 } 26170 values = values.filter((v) => v !== void 0); 26171 return values.length ? values.join(" ").trim() : fallback; 26172 } 26173 26174 document.addEventListener("alpine:init", () => { 26175 window.Alpine.plugin(src_default); 26176 }); 26177 })(); 26178</script>
vendor: 1 bytes, line 26178
26178
26179<script> 26180 for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]":"intersect","#notice-cookie-block":"idle"})) { 26181 document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`)); 26182 } 26183</script>
vendor: 1 bytes, line 26183
26183
26184<script> 26185 (function () { 26186 "use strict"; 26187 26188 const hasAlpine = new Promise(resolve => { 26189 window.addEventListener('alpine:initialized', resolve, {once: true, passive: true}); 26190 }); 26191 26192 const hasInteract = new Promise(resolve => { 26193 (events => { 26194 const onInteract = () => { 26195 resolve(); 26196 events.forEach(type => window.removeEventListener(type, onInteract)); 26197 } 26198 events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true})) 26199 })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) 26200 }); 26201 26202 const onIntersect = (el) => { 26203 return new Promise(resolve => { 26204 const observer = new IntersectionObserver(entries => { 26205 for (const entry of entries) { 26206 if (entry.isIntersecting) { 26207 observer.disconnect() 26208 resolve(); 26209 } 26210 } 26211 }, {}); 26212 observer.observe(el); 26213 }); 26214 } 26215 26216 function runComponent(el) { 26217 hasAlpine.then(() => { 26218 el.removeAttribute('x-ignore'); 26219 queueMicrotask(() => Alpine.initTree(el)); 26220 }); 26221 } 26222 26223 function initDeferredComponents() { 26224 document.querySelectorAll('[x-data][x-defer]').forEach(el => { 26225 el.setAttribute('x-ignore', ''); 26226 const deferUntil = (el.getAttribute('x-defer') || '').trim(); 26227 switch (deferUntil) { 26228 case 'interact': 26229 hasInteract.then(() => runComponent(el)); 26230 break; 26231 case 'intersect': 26232 onIntersect(el).then(() => runComponent(el)) 26233 break; 26234 case 'idle': 26235 window.requestIdleCallback 26236 ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000}) 26237 : setTimeout(() => runComponent(el), 4000); 26238 break; 26239 case 'eager': 26240 runComponent(el); 26241 break; 26242 default: 26243 if (deferUntil.startsWith('event:') && deferUntil.length > 6) { 26244 window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true}); 26245 } 26246 } 26247 }); 26248 } 26249 26250 window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true}); 26251 })() 26252</script>
vendor: 1 bytes, line 26252
26252
vendor: 1,455 bytes, lines 26253-26255
26253<script> 26254(()=>{function g(n){n.directive("collapse",e),e.inline=(t,{modifiers:i})=>{i.includes("min")&&(t._x_doShow=()=>{},t._x_doHide=()=>{})};function e(t,{modifiers:i}){let r=l(i,"duration",250)/1e3,u=l(i,"min",0),h=!i.includes("min");t._x_isShown||(t.style.height=`${u}px`),!t._x_isShown&&h&&(t.hidden=!0),t._x_isShown||(t.style.overflow="hidden");let c=(d,s)=>{let o=n.setStyles(d,s);return s.height?()=>{}:o},f={transitionProperty:"height",transitionDuration:`${r}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};t._x_transition={in(d=()=>{},s=()=>{}){h&&(t.hidden=!1),h&&(t.style.display=null);let o=t.getBoundingClientRect().height;t.style.height="auto";let a=t.getBoundingClientRect().height;o===a&&(o=u),n.transition(t,n.setStyles,{during:f,start:{height:o+"px"},end:{height:a+"px"}},()=>t._x_isShown=!0,()=>{t.getBoundingClientRect().height==a&&(t.style.overflow=null)})},out(d=()=>{},s=()=>{}){let o=t.getBoundingClientRect().height;n.transition(t,c,{during:f,start:{height:o+"px"},end:{height:u+"px"}},()=>t.style.overflow="hidden",()=>{t._x_isShown=!1,t.style.height==`${u}px`&&h&&(t.style.display="none",t.hidden=!0)})}}}}function l(n,e,t){if(n.indexOf(e)===-1)return t;let i=n[n.indexOf(e)+1];if(!i)return t;if(e==="duration"){let r=i.match(/([0-9]+)ms/);if(r)return r[1]}if(e==="min"){let r=i.match(/([0-9]+)px/);if(r)return r[1]}return i}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(g)});})(); 26255</script>
26255 26256
26257<script type="module" 26258 src="https://www.123drogisterij.nl/static/version1790863840/frontend/Careland/123d/nl_NL/Hyva_Theme/js/alpine3.min.js" 26259 defer 26260 crossorigin 26261></script>
vendor: 1 bytes, line 26261
26261
26262<script> 26263 function dispatchMessages(messages, hideAfter) { 26264 const messagesEvent = new CustomEvent("messages-loaded", { 26265 detail: { 26266 messages: messages, 26267 hideAfter: hideAfter 26268 } 26269 }); 26270 window.dispatchEvent(messagesEvent); 26271 } 26272 26273 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 26274 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 26275 } 26276 26277 (function( hyva, undefined ) { 26278 26279 hyva.initFormKey = () => { 26280 const inputSelector = 'input[name="form_key"]', 26281 formKey = hyva.getFormKey(); 26282 26283 Array.from(document.querySelectorAll(inputSelector)).map(function (input) { 26284 input.value = formKey 26285 }); 26286 } 26287 26288 hyva.initMessages = () => { 26289 try { 26290 const messages = hyva.getCookie('mage-messages'); 26291 window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 26292 26293 dispatchMessages(window.mageMessages); 26294 26295 // empty `mage-messages` cookie 26296 const skipSetDomain = true; 26297 hyva.setCookie('mage-messages','', -1, skipSetDomain); 26298 26299 } catch (error) { 26300 console.warn('Error parsing Cookie Messages:', error); 26301 } 26302 } 26303 26304 window.addEventListener('DOMContentLoaded', hyva.initFormKey); 26305 hyva.alpineInitialized(hyva.initMessages) 26306 26307 }( window.hyva = window.hyva || {} )); 26308</script>
vendor: 1 bytes, line 26308
26308
26309<script> 26310 { 26311 const private_content_key = 'mage-cache-storage'; 26312 const private_content_expire_key = 'mage-cache-timeout'; 26313 const private_content_version_key = 'private_content_version'; 26314 const section_data_ids_key = 'section_data_ids'; 26315 const mage_cache_session_id_key = 'mage-cache-sessid'; 26316 const last_visited_store_key = 'last_visited_store'; 26317 26318 const ttl = 3600; 26319 26320 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 26321 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 26322 } 26323 26324 function loadSectionData () { 26325 const browserStorage = hyva.getBrowserStorage(); 26326 if (!browserStorage) { 26327 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 26328 [{ 26329 type: "warning", 26330 text: "Activeer LocalStorage in je browser." 26331 }] 26332 ); 26333 return; 26334 } 26335 try { 26336 let isInvalid = false; 26337 26338 if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { 26339 isInvalid = true; 26340 } 26341 hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); 26342 26343 if (!hyva.getCookie(mage_cache_session_id_key)) { 26344 isInvalid = true; 26345 browserStorage.removeItem(private_content_key); 26346 const skipSetDomain = true; 26347 const days = false; 26348 hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) 26349 } 26350 26351 const cookieVersion = hyva.getCookie(private_content_version_key); 26352 const storageVersion = browserStorage.getItem(private_content_version_key); 26353 26354 if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { 26355 isInvalid = true; 26356 } 26357 26358 const privateContentExpires = browserStorage.getItem(private_content_expire_key); 26359 if (privateContentExpires && new Date(privateContentExpires) < new Date()) { 26360 browserStorage.removeItem(private_content_key); 26361 } 26362 26363 if (isInvalid && cookieVersion) { 26364 fetchPrivateContent([]); 26365 } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { 26366 const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); 26367 if ( 26368 privateContent && 26369 privateContentExpires && 26370 privateContent.cart && 26371 privateContent.customer 26372 ) { 26373 dispatchPrivateContent(privateContent); 26374 } else { 26375 fetchPrivateContent([]); 26376 } 26377 } else { 26378 if (document.getElementById('default-section-data')) { 26379 const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim()); 26380 dispatchPrivateContent(privateContent); 26381 } else { 26382 dispatchPrivateContent({}); 26383 } 26384 } 26385 26386 } catch (error) { 26387 console.warn('Error retrieving Private Content:', error); 26388 } 26389 } 26390 26391 hyva.alpineInitialized(loadSectionData) 26392 window.addEventListener('reload-customer-section-data', loadSectionData); 26393 26394 window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data); 26395 26396 function dispatchPrivateContent(data) { 26397 26398 const privateContentEvent = new CustomEvent("private-content-loaded", { 26399 detail: { 26400 data: window.processSectionDataBeforeDispatch(data) 26401 } 26402 }); 26403 window.dispatchEvent(privateContentEvent); 26404 } 26405 26406 function fetchPrivateContent(sections) { 26407 fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { 26408 method: 'GET', 26409 headers: { 26410 'Content-Type': 'application/json', 26411 'X-Requested-With': 'XMLHttpRequest' 26412 } 26413 }) 26414 .then(response => response.ok && response.json()) 26415 .then( 26416 data => { 26417 if (data) { 26418 try { 26419 const browserStorage = hyva.getBrowserStorage(); 26420 26421 // merge new data preserving non-invalidated sections 26422 const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; 26423 26424 if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { 26425 delete oldSectionData['checkout-data']; 26426 } 26427 const newSectionData = Object.assign(oldSectionData, data); 26428 26429 dispatchPrivateContent(newSectionData); 26430 26431 // don't persist messages, they've been dispatched already 26432 if (newSectionData.messages && newSectionData.messages.messages ) { 26433 newSectionData.messages.messages = []; 26434 } 26435 26436 browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); 26437 26438 const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); 26439 browserStorage.setItem(private_content_expire_key, expiresAt); 26440 26441 const newCookieVersion = hyva.getCookie(private_content_version_key); 26442 browserStorage.setItem(private_content_version_key, newCookieVersion); 26443 26444 // We don't need the section_data_ids in Hyvä, but we store them for compatibility 26445 // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout 26446 hyva.setCookie( 26447 section_data_ids_key, 26448 JSON.stringify( 26449 Object.keys(data).reduce((sectionDataIds, sectionKey) => { 26450 sectionDataIds[sectionKey] = data[sectionKey]['data_id']; 26451 return sectionDataIds; 26452 }, {}) 26453 ), 26454 false, 26455 true 26456 ); 26457 } catch (error) { 26458 console.warn("Couldn't store privateContent", error); 26459 } 26460 } 26461 } 26462 ); 26463 } 26464 } 26465</script>
vendor: 1 bytes, line 26465
26465
26466<script> 26467 (() => { 26468 document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); 26469 })() 26470</script>
vendor: 1 bytes, line 26470
26470
26471<script> 26472 (events => { 26473 const dispatchUserInteractionEvent = () => { 26474 events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) 26475 window.dispatchEvent(new Event('init-external-scripts')) 26476 }; 26477 events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) 26478 })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown']) 26479</script>
vendor: 1 bytes, line 26479
26479
26480<script> 26481 function initPriceBox() 26482 { 26483 return { 26484 updatePrice(priceData) { 26485 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 26486 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 26487 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 26488 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 26489 regularPriceLabel && regularPriceLabel.classList.add('hidden'); 26490 } else { 26491 regularPriceLabel && regularPriceLabel.classList.remove('hidden'); 26492 } 26493 regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount)); 26494 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 26495 } 26496 } 26497 } 26498</script>
vendor: 1 bytes, line 26498
26498
26499<script> 26500 'use strict'; 26501 26502 const grecaptchaV2LoadCallbacks = []; 26503 26504 function executeRecaptchaLoadCallbacks () { 26505 while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { 26506 const callback = grecaptchaV2LoadCallbacks.pop(); 26507 typeof callback === 'string' ? window[callback]() : callback(); 26508 } 26509 } 26510 26511 (function() { 26512 const loadRecaptchaScript = (event) => { 26513 26514 if (window.grecaptcha || !event.target.form) { 26515 return; 26516 } 26517 26518 const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; 26519 const siteKey = '6LdEduIrAAAAADLY9aaFf8Q0ZRbb6LN6NnyhO\u002D5V'; 26520 const script = document.createElement('script'); 26521 script.type = 'text/javascript'; 26522 script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; 26523 script.async = true; 26524 document.head.appendChild(script); 26525 26526 script.addEventListener('load', () => { 26527 Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); 26528 }); 26529 } 26530 26531 window.forceLoadRecaptchaScript = (form) => { 26532 loadRecaptchaScript({target: {form: form || 'dummy'}}); 26533 executeRecaptchaLoadCallbacks(); 26534 }; 26535 26536 document.body.addEventListener('input', loadRecaptchaScript, { once: true }); 26537 document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); 26538 26539 }()); 26540 26541</script>
vendor: 1 bytes, line 26541
26541
26542<script> 26543 (function () { 26544 const modals = []; 26545 const excludedFromFocusTrapping = new Set(); 26546 26547 function trapFocusInNextModalWithOverlay() { 26548 for (let idx = modals.length -1; idx >= 0; idx--) { 26549 const nextOnStack = modals[idx]; 26550 const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name]; 26551 if (! isOverlayDisabled(nextDialogElement)) { 26552 hyva.trapFocus(nextDialogElement); 26553 break; 26554 } 26555 } 26556 } 26557 26558 function focusables(dialogElement) { 26559 const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])'; 26560 return Array.from(dialogElement.querySelectorAll(selector)) 26561 .filter(el => !el.hasAttribute('disabled')); 26562 } 26563 26564 function firstVisible(elements) { 26565 const a = Array.from(elements); 26566 for (let i = 0; i < a.length; i++) { 26567 if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i]; 26568 } 26569 return null; 26570 } 26571 26572 function isInViewport(element) { 26573 const rect = element && element.getBoundingClientRect(); 26574 return rect && 26575 rect.top >= 0 && 26576 rect.left >= 0 && 26577 rect.right <= window.innerWidth && 26578 rect.bottom <= window.innerHeight; 26579 } 26580 26581 function setFocusAfterTransition(dialogElement, duration) { 26582 const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]')); 26583 const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]')); 26584 next: for (let candidate of candidates) { 26585 for (let child of nested) { 26586 if (child.contains(candidate)) continue next; 26587 } 26588 setTimeout(() => candidate.focus(), 50); 26589 break; 26590 } 26591 window.setTimeout(() => { 26592 const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) || 26593 focusables(dialogElement)[0] || 26594 null; 26595 focusElement && isInViewport(focusElement) && focusElement.focus(); 26596 }, Math.max(1, duration)); 26597 } 26598 26599 function determineTrigger($refs, dialog, trigger) { 26600 if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) { 26601 return dialog.target; 26602 } 26603 if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) { 26604 return trigger.target; 26605 } 26606 if (typeof trigger === 'string') { 26607 try { 26608 return $refs[trigger] || document.querySelector(trigger) 26609 } catch (e) {} 26610 } 26611 if (trigger instanceof Element) { 26612 return trigger; 26613 } 26614 26615 return null; 26616 } 26617 26618 function isOverlayDisabled(dialog) { 26619 return dialog && dialog.hasAttribute('x-no-overlay') 26620 } 26621 26622 function areRemainingModalsWithoutOverlay(modals) 26623 { 26624 const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled); 26625 26626 return overflowDisabled.length === modals.length; 26627 } 26628 26629 window.hyva.modal = function(options = {}) { 26630 if (this.$el && this.$el.dataset && this.$el.dataset.options) { 26631 try { 26632 options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}')); 26633 } catch (e) { 26634 throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON'); 26635 } 26636 } 26637 26638 const config = Object.assign({ 26639 dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', 26640 transitionEnterStart: 'opacity-0', 26641 transitionEnterEnd: 'opacity-100', 26642 transitionLeave: 'transition ease-in duration-300', 26643 transitionLeaveStart: 'opacity-100', 26644 transitionLeaveEnd: 'opacity-0', 26645 }, options); 26646 let lastHide = 0; 26647 26648 return { 26649 opened: {}, 26650 show(dialog, trigger) { 26651 const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger); 26652 const name = typeof dialog === 'string' ? dialog : config.dialog; 26653 const dialogElement = this.$refs[name]; 26654 if (! dialogElement) { 26655 return; 26656 } 26657 const useOverlay = ! dialogElement.hasAttribute('x-no-overlay'); 26658 26659 dialogElement.scrollTop = 0; 26660 26661 if (this.opened[name]) { 26662 return; 26663 } 26664 26665 if (focusTargetAfterHide) { 26666 focusTargetAfterHide.setAttribute('aria-expanded', 'true'); 26667 } 26668 26669 this.opened[name] = true; 26670 useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement)); 26671 setFocusAfterTransition(dialogElement, config.duration); 26672 26673 const frame = {name, instance: this, focusTarget: focu
26673sTargetAfterHide, time: Date.now()}; 26674 26675 modals.push(frame); 26676 if (useOverlay) { 26677 document.body.classList.add('overflow-hidden'); 26678 } 26679 return new Promise(resolve => frame.resolve = resolve); 26680 }, 26681 cancel() { 26682 this.hide(false); 26683 }, 26684 ok() { 26685 this.hide(true); 26686 }, 26687 hide(value) { 26688 if (Date.now() - lastHide < config.duration) { 26689 return; 26690 } 26691 lastHide = Date.now(); 26692 26693 const modal = modals.pop() || {}; 26694 if (! modal.instance) { 26695 return; 26696 } 26697 26698 const name = modal.name; 26699 this.opened[name] = false; 26700 hyva.releaseFocus(modal.instance.$refs[modal.name]) 26701 trapFocusInNextModalWithOverlay(); 26702 26703 const nextFocusAfterHide = modal.focusTarget; 26704 nextFocusAfterHide && setTimeout(() => { 26705 nextFocusAfterHide.setAttribute('aria-expanded', 'false'); 26706 nextFocusAfterHide.focus() 26707 }, config.duration); 26708 26709 if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) { 26710 document.body.classList.remove('overflow-hidden'); 26711 } 26712 26713 modal.resolve(value); 26714 }, 26715 overlay(dialog) { 26716 dialog = this.$el.dataset.dialogRefName || dialog; 26717 const name = typeof dialog === 'string' ? dialog : config.dialog; 26718 return { 26719 ['x-show']() { 26720 return this.opened[name] 26721 }, 26722 ['x-transition:enter']: config.transitionEnter, 26723 ['x-transition:enter-start']: config.transitionEnterStart, 26724 ['x-transition:enter-end']: config.transitionEnterEnd, 26725 ['x-transition:leave']: config.transitionLeave, 26726 ['x-transition:leave-start']: config.transitionLeaveStart, 26727 ['x-transition:leave-end']: config.transitionLeaveEnd, 26728 ['@hyva-modal-show.window'](event) { 26729 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) 26730 } 26731 }; 26732 }, 26733 showDialogOnInit() { 26734 const parent = this.$el.closest('[data-dialog-ref-name]'); 26735 if (parent && parent.dataset.dialogRefName) { 26736 this.$dispatch('hyva-modal-show', {dialog: parent.dataset.dialogRefName}) 26737 } 26738 } 26739 }; 26740 } 26741 26742 window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1] 26743 26744 window.hyva.modal.pop = function () { 26745 if (modals.length > 0) { 26746 const modal = modals[modals.length -1]; 26747 modal.instance.hide(); 26748 } 26749 } 26750 26751 window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) { 26752 typeof selectors === 'string' || selectors instanceof String 26753 ? excludedFromFocusTrapping.add(selectors) 26754 : selectors.map(selector => excludedFromFocusTrapping.add(selector)); 26755 } 26756 26757 window.hyva.modal.eventListeners = { 26758 keydown: event => { 26759 if (event.key === 'Escape') { 26760 window.hyva.modal.pop(); 26761 } 26762 }, 26763 click: event => { 26764 if (modals.length > 0) { 26765 const modal = modals[modals.length -1]; 26766 const dialog = modal.instance.$refs[modal.name]; 26767 if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago 26768 ! isOverlayDisabled(dialog) && // if dialog has overlay 26769 ! dialog.contains(event.target)) { // if click is outside of dialog 26770 modal.instance.hide(); 26771 } 26772 } 26773 } 26774 }; 26775 26776 document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown); 26777 26778 document.addEventListener('click', window.hyva.modal.eventListeners.click); 26779 })(); 26780 window.addEventListener('alpine:init', () => { 26781 Alpine.data('hyvaModal', window.hyva.modal); 26782 }, {once: true}); 26783</script>
vendor: 1 bytes, line 26783
26783
26784<script defer> 26785 'use strict'; 26786 26787 (() => { 26788 const equalizeButtonWidths = (buttons) => { 26789 const buttonList = buttons.querySelectorAll('[data-element="link"], [data-element="empty_link"]'); 26790 let buttonMinWidth = 0; 26791 26792 buttonList.forEach(button => { 26793 const buttonWidth = button.offsetWidth; 26794 26795 if (buttonWidth > buttonMinWidth) { 26796 buttonMinWidth = buttonWidth; 26797 } 26798 }); 26799 26800 buttonList.forEach(button => { 26801 button.style.minWidth = `${buttonMinWidth}px`; 26802 }); 26803 }; 26804 26805 window.addEventListener('DOMContentLoaded', () => { 26806 document.querySelectorAll('[data-content-type="buttons"][data-same-width="true"]').forEach(buttons => { 26807 equalizeButtonWidths(buttons); 26808 }); 26809 }); 26810 })(); 26811</script>
26811 26812
26813<script defer> 26814 'use strict'; 26815 26816 (() => { 26817 const initCarousels = (elements) => { 26818 if (!Glider) { 26819 return; 26820 } 26821 26822 const initProductCarousel = (carousel) => { 26823 const gliderElement = carousel.querySelector('[data-role="glider-content"]'); 26824 26825 if (!gliderElement) { 26826 return; 26827 } 26828 26829 const gliderDots = carousel.querySelector('.glider-dots'); 26830 const gliderPrev = carousel.querySelector('.glider-prev'); 26831 const gliderNext = carousel.querySelector('.glider-next'); 26832 26833 const glider = new Glider(gliderElement, { 26834 slidesToShow: 1.15, 26835 slidesToScroll: 1, 26836 scrollLock: true, 26837 draggable: true, 26838 dragVelocity: 1.5, 26839 dots: gliderDots, 26840 rewind: true, 26841 arrows: { 26842 prev: gliderPrev, 26843 next: gliderNext, 26844 }, 26845 responsive: [ 26846 { 26847 breakpoint: 440, 26848 settings: { 26849 slidesToShow: 1.3, 26850 } 26851 }, 26852 { 26853 breakpoint: 768, 26854 settings: { 26855 slidesToShow: 2.2, 26856 slidesToScroll: 2, 26857 } 26858 }, 26859 { 26860 breakpoint: 1024, 26861 settings: { 26862 slidesToShow: 3.2, 26863 slidesToScroll: 2, 26864 } 26865 }, 26866 { 26867 breakpoint: 1280, 26868 settings: { 26869 slidesToShow: 4, 26870 slidesToScroll: 4, 26871 } 26872 }, 26873 ], 26874 }); 26875 26876 carousel.classList.add('glider-initialized'); 26877 carousel.classList.remove('overflow-x-scroll'); 26878 }; 26879 26880 const initFeaturedCategoryCarousel = (slider) => { 26881 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 26882 slider.classList.add('glider-contain'); 26883 26884 slider.insertAdjacentHTML( 26885 'beforeend', 26886 '\u000A\u003Cdiv\u0020class\u003D\u0022flex\u0020w\u002Dfull\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dprev\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26886003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M7.72\u002012.53a.75.75\u00200\u0020010\u002D1.06l7.5\u002D7.5a.75.75\u00200\u0020111.06\u00201.06L9.31\u002012l6.97\u00206.97a.75.75\u00200\u002011\u002D1.06\u00201.06l\u002D7.5\u002D7.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003EVorige\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D4\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dnext\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022volgende\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26886003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M16.28\u002011.47a.75.75\u00200\u0020010\u00201.06l\u002D7.5\u00207.5a.75.75\u00200\u002001\u002D1.06\u002D1.06L14.69\u002012\u00207.72\u00205.03a.75.75\u00200\u0020011.06\u002D1.06l7.5\u00207.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003Evolgende\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 26887 ); 26888 26889 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 26890 const gliderDots = slider.querySelector('.glider-dots'); 26891 const gliderPrev = slider.querySelector('.glider-prev'); 26892 const gliderNext = slider.querySelector('.glider-next'); 26893 26894 const glider = new Glider(gliderElement, { 26895 slidesToShow: 1.4, 26896 slidesToScroll: 1, 26897 scrollLock: false, 26898 scrollLockDelay: 250, 26899 draggable: true, 26900 dragVelocity: 1.5, 26901 dots: gliderDots, 26902 rewind: true, 26903 arrows: { 26904 prev: gliderPrev, 26905 next: gliderNext, 26906 }, 26907 responsive: [ 26908 { 26909 breakpoint: 400, 26910 settings: { 26911 slidesToShow: 1.7, 26912 slidesToScroll: 2, 26913 } 26914 }, 26915 { 26916 breakpoint: 650, 26917 settings: { 26918 slidesToShow: 3.7, 26919 slidesToScroll: 3, 26920 } 26921 }, 26922 { 26923 breakpoint: 850, 26924 settings: { 26925 slidesToShow: 4.7, 26926 slidesToScroll: 4, 26927 } 26928 }, 26929 ], 26930 }); 26931 26932 slider.classList.add('glider-initialized'); 26933 }; 26934 26935 const initSliderCarousel = (slider) => { 26936 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 26937 slider.classList.add('glider-contain'); 26938 26939 slider.insertAdjacentHTML( 26940 'beforeend', 26941 '\u000A\u003Cdiv\u0020class\u003D\u0022flex\u0020w\u002Dfull\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dprev\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26941003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M7.72\u002012.53a.75.75\u00200\u0020010\u002D1.06l7.5\u002D7.5a.75.75\u00200\u0020111.06\u00201.06L9.31\u002012l6.97\u00206.97a.75.75\u00200\u002011\u002D1.06\u00201.06l\u002D7.5\u002D7.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003EVorige\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D4\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dnext\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022volgende\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26941003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M16.28\u002011.47a.75.75\u00200\u0020010\u00201.06l\u002D7.5\u00207.5a.75.75\u00200\u002001\u002D1.06\u002D1.06L14.69\u002012\u00207.72\u00205.03a.75.75\u00200\u0020011.06\u002D1.06l7.5\u00207.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003Evolgende\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 26942 ); 26943 26944 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 26945 const gliderDots = slider.querySelector('.glider-dots'); 26946 const gliderPrev = slider.querySelector('.glider-prev'); 26947 const gliderNext = slider.querySelector('.glider-next'); 26948 26949 const glider = new Glider(gliderElement, { 26950 slidesToShow: 1, 26951 slidesToScroll: 1, 26952 scrollLock: true, 26953 scrollLockDelay: 250, 26954 draggable: true, 26955 dragVelocity: 1.5, 26956 dots: gliderDots, 26957 arrows: { 26958 prev: gliderPrev, 26959 next: gliderNext, 26960 }, 26961 }); 26962 26963 slider.classList.add('glider-initialized'); 26964 if (slider.dataset.showArrows === 'true') { 26965 gliderPrev.classList.remove('hidden'); 26966 gliderNext.classList.remove('hidden'); 26967 } 26968 26969 if (slider.dataset.autoplay !== 'false') { 26970 gliderAutoplay( 26971 glider, 26972 slider.dataset.autoplaySpeed, 26973 slider.dataset.infiniteLoop 26974 ); 26975 } 26976 }; 26977 26978 const initHorizontalFilterSlider = (slider) => { 26979 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 26980 slider.classList.add('glider-contain'); 26981 26982 slider.insertAdjacentHTML( 26983 'beforeend', 26984 '\u000A\u003Cdiv\u0020class\u003D\u0022flex\u0020w\u002Dfull\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dprev\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26984003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M7.72\u002012.53a.75.75\u00200\u0020010\u002D1.06l7.5\u002D7.5a.75.75\u00200\u0020111.06\u00201.06L9.31\u002012l6.97\u00206.97a.75.75\u00200\u002011\u002D1.06\u00201.06l\u002D7.5\u002D7.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003EVorige\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D4\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dnext\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022volgende\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
26984003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M16.28\u002011.47a.75.75\u00200\u0020010\u00201.06l\u002D7.5\u00207.5a.75.75\u00200\u002001\u002D1.06\u002D1.06L14.69\u002012\u00207.72\u00205.03a.75.75\u00200\u0020011.06\u002D1.06l7.5\u00207.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003Evolgende\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 26985 ); 26986 26987 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 26988 const gliderDots = slider.querySelector('.glider-dots'); 26989 const gliderPrev = slider.querySelector('.glider-prev'); 26990 const gliderNext = slider.querySelector('.glider-next'); 26991 26992 const glider = new Glider(gliderElement, { 26993 slidesToShow: 2.8, 26994 slidesToScroll: 2, 26995 scrollLock: false, 26996 draggable: true, 26997 dragVelocity: 1.5, 26998 dots: gliderDots, 26999 arrows: { 27000 prev: gliderPrev, 27001 next: gliderNext, 27002 }, 27003 responsive: [ 27004 { 27005 breakpoint: 450, 27006 settings: { 27007 slidesToShow: 3.5, 27008 slidesToScroll: 3, 27009 } 27010 }, 27011 { 27012 breakpoint: 550, 27013 settings: { 27014 slidesToShow: 4.5, 27015 slidesToScroll: 4, 27016 } 27017 }, 27018 { 27019 breakpoint: 768, 27020 settings: { 27021 slidesToShow: 5.5, 27022 slidesToScroll: 5, 27023 } 27024 }, 27025 { 27026 breakpoint: 1014, 27027 settings: { 27028 slidesToShow: 6.5, 27029 slidesToScroll: 6, 27030 } 27031 }, 27032 ], 27033 }); 27034 27035 glider.removeItem(0); // remove template tag from slider 27036 27037 slider.classList.add('glider-initialized'); 27038 27039 if (slider.dataset.showArrows === 'true') { 27040 gliderPrev.classList.remove('hidden'); 27041 gliderNext.classList.remove('hidden'); 27042 } 27043 }; 27044 27045 const initReviewSlider = (slider) => { 27046 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 27047 slider.classList.add('glider-contain'); 27048 27049 slider.insertAdjacentHTML( 27050 'beforeend', 27051 '\u000A\u003Cdiv\u0020class\u003D\u0022flex\u0020w\u002Dfull\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dprev\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
27051003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M7.72\u002012.53a.75.75\u00200\u0020010\u002D1.06l7.5\u002D7.5a.75.75\u00200\u0020111.06\u00201.06L9.31\u002012l6.97\u00206.97a.75.75\u00200\u002011\u002D1.06\u00201.06l\u002D7.5\u002D7.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003EVorige\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D4\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dnext\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022volgende\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
27051003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M16.28\u002011.47a.75.75\u00200\u0020010\u00201.06l\u002D7.5\u00207.5a.75.75\u00200\u002001\u002D1.06\u002D1.06L14.69\u002012\u00207.72\u00205.03a.75.75\u00200\u0020011.06\u002D1.06l7.5\u00207.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003Evolgende\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 27052 ); 27053 27054 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 27055 const gliderDots = slider.querySelector('.glider-dots'); 27056 const gliderPrev = slider.querySelector('.glider-prev'); 27057 const gliderNext = slider.querySelector('.glider-next'); 27058 27059 const glider = new Glider(gliderElement, { 27060 slidesToShow: 1.2, 27061 slidesToScroll: 1, 27062 scrollLock: true, 27063 draggable: true, 27064 dragVelocity: 1.5, 27065 dots: gliderDots, 27066 arrows: { 27067 prev: gliderPrev, 27068 next: gliderNext, 27069 }, 27070 rewind: true, 27071 responsive: [ 27072 { 27073 breakpoint: 450, 27074 settings: { 27075 slidesToShow: 2.2, 27076 slidesToScroll: 2, 27077 } 27078 }, 27079 27080 ], 27081 }); 27082 27083 slider.classList.add('glider-initialized'); 27084 27085 if (slider.dataset.showArrows === 'true') { 27086 gliderPrev.classList.remove('hidden'); 27087 gliderNext.classList.remove('hidden'); 27088 } 27089 }; 27090 27091 const initUspSlider = (slider) => { 27092 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 27093 slider.classList.add('glider-contain'); 27094 27095 slider.dataset.autoplay = 'false'; 27096 slider.dataset.infiniteLoop = 'true'; 27097 27098 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 27099 27100 const glider = new Glider(gliderElement, { 27101 slidesToShow: 1, 27102 slidesToScroll: 1, 27103 scrollLock: false, 27104 scrollLockDelay: 250, 27105 draggable: false, 27106 dragVelocity: 1.5, 27107 duration: 1, 27108 responsive: [ 27109 { 27110 breakpoint: 768, 27111 settings: { 27112 slidesToShow: 3, 27113 }, 27114 }, 27115 { 27116 breakpoint: 1024, 27117 settings: { 27118 slidesToShow: 4, 27119 }, 27120 }, 27121 ], 27122 }); 27123 27124 slider.classList.add('glider-initialized'); 27125 27126 if (slider.dataset.showArrows === 'true') { 27127 gliderPrev.classList.remove('hidden'); 27128 gliderNext.classList.remove('hidden'); 27129 } 27130 27131 if (slider.dataset.autoplay !== 'false') { 27132 gliderAutoplay( 27133 glider, 27134 slider.dataset.autoplaySpeed, 27135 slider.dataset.infiniteLoop 27136 ); 27137 } 27138 27139 function sliderAuto(slider, miliseconds) { 27140 const slidesCount = glider.track.childElementCount; 27141 let slideTimeout = null; 27142 let nextIndex = 1; 27143 27144 function slide() { 27145 slideTimeout = setTimeout( 27146 function () { 27147 if (nextIndex >= slidesCount) { 27148 nextIndex = 0; 27149 } 27150 glider.scrollItem(nextIndex++); 27151 }, 27152 miliseconds 27153 ); 27154 } 27155 27156 glider.ele.addEventListener('glider-animated', function () { 27157 window.clearInterval(slideTimeout); 27158 slide(); 27159 }); 27160 27161 slide(); 27162 } 27163 27164 sliderAuto(slider, 3000) 27165 }; 27166 27167 const initHeaderUspSlider = (slider) => { 27168 function checkScreensize(sliderMaxSize) { 27169 // If media query matches 27170 if (sliderMaxSize.matches) { 27171 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 27172 slider.classList.add('glider-contain'); 27173 27174 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 27175 27176 const glider = new Glider(gliderElement, { 27177 slidesToShow: 1, 27178 slidesToScroll: 1, 27179 scrollLock: false, 27180 draggable: true, 27181 dragVelocity: 1.5, 27182 duration: 10, 27183 rewind: true, 27184 responsive: [ 27185 { 27186 breakpoint: 550, 27187 settings: { 27188 slidesToShow: 2, 27189 }, 27190 }, 27191 { 27192 breakpoint: 768, 27193 settings: { 27194 slidesToShow: 3, 27195 }, 27196 }, 27197 ], 27198 }); 27199 27200 slider.classList.add('glider-initialized'); 27201 27202 if (slider.dataset.showArrows === 'true') { 27203 gliderPrev.classList.remove('hidden'); 27204 gliderNext.classList.remove('hidden'); 27205 } 27206 27207 if (slider.dataset.autoplay !== 'false') { 27208 gliderAutoplay( 27209 glider, 27210 5000, 27211 true 27212 ); 27213 } 27214 27215 function sliderAuto(slider, miliseconds) { 27216 const slidesCount = glider.track.childElementCount; 27217 let slideTimeout = null; 27218 let nextIndex = 1; 27219 27220 function slide () { 27221 slideTimeout = setTimeout( 27222 function () { 27223 if (nextIndex >= slidesCount ) { 27224 nextIndex = 0; 27225 } 27226 glider.scrollItem(0); 27227 }, 27228 miliseconds 27229 ); 27230 } 27231 27232 glider.ele.addEventListener('glider-animated', function() { 27233 window.clearInterval(slideTimeout); 27234 slide(); 27235 }); 27236 27237 slide(); 27238 } 27239 27240 sliderAuto(slider, 10000) 27241 } else { 27242 let headerUsps = document.querySelector('[data-content-type="header-usps"]'); 27243 27244 if (headerUsps !== null) { 27245 // Remove glider classes to bring back grid 27246 headerUsps.classList.remove('glider-initialized', 'glider-contain'); 27247 27248 const draggable = headerUsps.getElementsByClassName('glider-track')[0]; 27249 if (draggable !== undefined) { 27250 draggable.replaceWith(...draggable.childNodes); 27251 } 27252 27253 const track = headerUsps.getElementsByClassName('glider')[0]; 27254 if (track !== undefined){ 27255 track.replaceWith(...track.childNodes); 27256 } 27257 27258 let elems = headerUsps.querySelectorAll('.glider-slide'); 27259 27260 [].forEach.call(elems, function (el) { 27261 el.classList = "flex justify-center items-center gap-1.5"; 27262 el.removeAttribute('style'); 27263 }); 27264 } 27265 } 27266 } 27267 27268 let sliderMaxSize = window.matchMedia("(max-width: 1536px)") 27269 checkScreensize(sliderMaxSize) // Call listener function at run time 27270 sliderMaxSize.addListener(checkScreensize) // Attach listener function on state changes 27271 }; 27272 27273 const initBannerSmallCarousel = (slider) => { 27274 function checkScreensize(sliderMaxSize) { 27275 // If media query matches 27276 if (sliderMaxSize.matches) { 27277 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 27278 slider.classList.add('glider-contain'); 27279 27280 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 27281 27282 const glider = new Glider(gliderElement, { 27283 slidesToShow: 1.2, 27284 slidesToScroll: 1, 27285 scrollLock: true, 27286 draggable: true, 27287 dragVelocity: 1.5, 27288 rewind: true, 27289 responsive: [ 27290 { 27291 breakpoint: 768, 27292 settings: { 27293 slidesToShow: 2.2, 27294 slidesToScroll: 2, 27295 } 27296 }, 27297 { 27298 breakpoint: 1024, 27299 settings: { 27300 slidesToShow: 2.6, 27301 slidesToScroll: 2, 27302 } 27303 }, 27304 ], 27305 }); 27306 27307 slider.classList.add('glider-initialized'); 27308 27309 } else { 27310 let bannerSmall = document.querySelector('.pagebuilder-banner-small.glider-initialized'); 27311 27312 if (bannerSmall !== null) { 27313 // Remove glider classes to bring back grid 27314 bannerSmall.classList.remove('glider-initialized','glider-contain'); 27315 27316 const draggable = bannerSmall.getElementsByClassName('draggable')[0]; 27317 draggable.replaceWith(...draggable.childNodes); 27318 27319 const track = bannerSmall.getElementsByClassName('glider-track')[0]; 27320 track.replaceWith(...track.childNodes); 27321 27322 var elems = bannerSmall.querySelectorAll('.glider-slide'); 27323 27324 [].forEach.call(elems, function(el) { 27325 el.classList = ""; 27326 el.removeAttribute('style'); 27327 }); 27328 } 27329 } 27330 } 27331 27332 let sliderMaxSize = window.matchMedia("(max-width: 1280px)") 27333 checkScreensize(sliderMaxSize) // Call listener function at run time 27334 sliderMaxSize.addListener(checkScreensize) // Attach listener function on state changes 27335 }; 27336 27337 const initFeaturedItemsCarousel = (slider) => { 27338 slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`; 27339 slider.classList.add('glider-contain'); 27340 27341 slider.insertAdjacentHTML( 27342 'beforeend', 27343 '\u000A\u003Cdiv\u0020class\u003D\u0022flex\u0020w\u002Dfull\u0020justify\u002Dcenter\u0020items\u002Dcenter\u0020carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dprev\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
27343003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M7.72\u002012.53a.75.75\u00200\u0020010\u002D1.06l7.5\u002D7.5a.75.75\u00200\u0020111.06\u00201.06L9.31\u002012l6.97\u00206.97a.75.75\u00200\u002011\u002D1.06\u00201.06l\u002D7.5\u002D7.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003EVorige\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D4\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u0020class\u003D\u0022glider\u002Dnext\u0020rounded\u002Dmd\u0020p\u002D2\u0020bg\u002Dtertiary\u002D300\u0020outline\u002Dnone\u0022\u0020aria\u002Dlabel\u003D\u0022volgende\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020fill\u003D\u0022currentColor\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
27343003D\u0022img\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cpath\u0020fill\u002Drule\u003D\u0022evenodd\u0022\u0020d\u003D\u0022M16.28\u002011.47a.75.75\u00200\u0020010\u00201.06l\u002D7.5\u00207.5a.75.75\u00200\u002001\u002D1.06\u002D1.06L14.69\u002012\u00207.72\u00205.03a.75.75\u00200\u0020011.06\u002D1.06l7.5\u00207.5z\u0022\u0020clip\u002Drule\u003D\u0022evenodd\u0022\u002F\u003E\u000A\u003Ctitle\u003Evolgende\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' 27344 ); 27345 27346 const gliderElement = slider.querySelector('[data-role="glider-content"]'); 27347 const gliderPrev = slider.querySelector('.glider-prev'); 27348 const gliderNext = slider.querySelector('.glider-next'); 27349 27350 const glider = new Glider(gliderElement, { 27351 slidesToShow: 1.2, 27352 slidesToScroll: 1, 27353 scrollLock: true, 27354 scrollLockDelay: 250, 27355 draggable: true, 27356 dragVelocity: 1.5, 27357 rewind: true, 27358 arrows: { 27359 prev: gliderPrev, 27360 next: gliderNext, 27361 }, 27362 responsive: [ 27363 { 27364 breakpoint: 768, 27365 settings: { 27366 slidesToShow: 2.2, 27367 slidesToScroll: 2, 27368 } 27369 }, 27370 { 27371 breakpoint: 1024, 27372 settings: { 27373 slidesToShow: 3.2, 27374 slidesToScroll: 3, 27375 } 27376 }, 27377 ], 27378 }); 27379 27380 slider.classList.add('glider-initialized'); 27381 27382 if (slider.dataset.showArrows === 'true') { 27383 gliderPrev.classList.remove('hidden'); 27384 gliderNext.classList.remove('hidden'); 27385 } 27386 }; 27387 27388 const gliderAutoplay = (glider, milliseconds, loop) => { 27389 const pagesCount = glider.track.childElementCount; 27390 let slideTimeout = null; 27391 let nextIndex = 1; 27392 let paused = false; 27393 27394 const slide = () => { 27395 slideTimeout = setTimeout( 27396 () => { 27397 if (loop && nextIndex >= pagesCount) { 27398 nextIndex = 0; 27399 } 27400 glider.scrollItem(nextIndex); 27401 }, 27402 parseInt(milliseconds) 27403 ); 27404 }; 27405 27406 glider.ele.addEventListener('glider-animated', () => { 27407 nextIndex = glider.slide + glider.opt.slidesToScroll; 27408 window.clearInterval(slideTimeout); 27409 if (!paused && (loop || nextIndex < pagesCount)) { 27410 slide(); 27411 } 27412 }); 27413 27414 const pause = () => { 27415 if (!paused) { 27416 clearInterval(slideTimeout); 27417 paused = true; 27418 } 27419 }; 27420 27421 const unpause = () => { 27422 if (paused) { 27423 slide(); 27424 paused = false; 27425 } 27426 }; 27427 27428 glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true}); 27429 glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true}); 27430 glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true}); 27431 glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true}); 27432 27433 slide(); 27434 }; 27435 27436 elements.forEach(element => { 27437 if (element.dataset.contentType === 'banner-small') { 27438 initBannerSmallCarousel(element); 27439 } 27440 if (element.dataset.contentType === 'featured-products') { 27441 initProductCarousel(element); 27442 } 27443 if (element.dataset.contentType === 'featured-categories') { 27444 initFeaturedCategoryCarousel(element); 27445 } 27446 if (element.dataset.contentType === 'slider') { 27447 initSliderCarousel(element); 27448 } 27449 if (element.dataset.contentType === 'usps') { 27450 initUspSlider(element); 27451 } 27452 if (element.dataset.contentType === 'header-usps') { 27453 initHeaderUspSlider(element); 27454 } 27455 if (element.dataset.element === 'horizontal-filter') { 27456 initHorizontalFilterSlider(element); 27457 } 27458 if (element.dataset.element === 'review-slider') { 27459 initReviewSlider(element); 27460 } 27461 if (element.dataset.contentType === 'featured-items') { 27462 initFeaturedItemsCarousel(element); 27463 } 27464 }); 27465 }; 27466 27467 window.addEventListener('DOMContentLoaded', () => { 27468 const carouselElements = document.querySelectorAll( 27469 `[data-content-type="banner-small"], 27470 [data-content-type="featured-products"], 27471 [data-content-type="featured-categories"], 27472 [data-content-type="featured-items"], 27473 [data-appearance="carousel"], 27474 [data-content-type="slider"], 27475 [data-content-type="usps"], 27476 [data-content-type="header-usps"], 27477 [data-element="subcategories"], 27478 [data-element="horizontal-filter"], 27479 [data-element="review-slider"]` 27480 ); 27481 27482 if (carouselElements.length > 0) { 27483 const script = document.createElement('script'); 27484 script.type = 'text/javascript'; 27485 27486 script.addEventListener('load', () => { 27487 initCarousels(carouselElements); 27488 }); 27489 27490 script.src = 'https\u003A\u002F\u002Fwww.123drogisterij.nl\u002Fstatic\u002Fversion1790863840\u002Ffrontend\u002FCareland\u002F123d\u002Fnl_NL\u002FHyva_PageBuilder\u002Fjs\u002Fglider.min.js'; 27491 document.head.appendChild(script); 27492 } 27493 }); 27494 })(); 27495</script>
vendor: 1 bytes, line 27495
27495
27496<script defer> 27497 'use strict'; 27498 27499 (() => { 27500 const initMaps = (elements) => { 27501 const renderMap = (element) => { 27502 const dataLocations = element.dataset.locations; 27503 27504 // Hide map if no locations set 27505 if (!dataLocations || dataLocations === '[]') { 27506 element.classList.add('hidden'); 27507 return; 27508 } 27509 27510 const map = new google.maps.Map( 27511 element, 27512 getMapOptions( 27513 element.dataset.showControls !== 'true', 27514 element.dataset.showControls === 'true' 27515 ) 27516 ); 27517 const locations = JSON.parse(dataLocations); 27518 const latitudeLongitudeBounds = new google.maps.LatLngBounds(); 27519 const bounds = []; 27520 27521 locations.forEach(location => { 27522 const position = { 27523 lat: parseFloat(location.position.latitude), 27524 lng: parseFloat(location.position.longitude), 27525 }; 27526 bounds.push(position); 27527 27528 const infowindow = new google.maps.InfoWindow({ 27529 content: getInfoWindowContent(location), 27530 }); 27531 const marker = new google.maps.Marker({ 27532 position: position, 27533 map, 27534 title: location.location_name, 27535 }); 27536 27537 marker.addListener('click', () => { 27538 infowindow.open(map, marker); 27539 }); 27540 }); 27541 27542 // Set bounds if multiple locations 27543 if (bounds.length > 1) { 27544 bounds.forEach(function (bound) { 27545 latitudeLongitudeBounds.extend(bound); 27546 }); 27547 map.fitBounds(latitudeLongitudeBounds); 27548 } 27549 27550 // Center if single location 27551 if (bounds.length === 1) { 27552 map.setCenter(bounds[0]); 27553 } 27554 }; 27555 27556 const getMapOptions = (disableDefaultUI, mapTypeControl) => { 27557 const style = ''; 27558 return { 27559 zoom: 8, 27560 scrollwheel: false, 27561 disableDoubleClickZoom: false, 27562 mapTypeControlOptions: { 27563 style: google.maps.MapTypeControlStyle.DEFAULT, 27564 }, 27565 styles: style ? JSON.parse(style) : [], 27566 disableDefaultUI: disableDefaultUI, 27567 mapTypeControl: mapTypeControl, 27568 }; 27569 }; 27570 27571 const getInfoWindowContent = (location) => { 27572 const title = location.location_name ? 27573 `<h3 class="text-2xl font-medium text-gray-900 title-font">${location.location_name}</h3>` : ''; 27574 const comment = location.comment ? `<p class="px-1 pt-3 text-primary">${location.comment}</p>` : ''; 27575 const phone = location.phone ? `<p class="px-1 pt-3 text-primary">Phone: ${location.phone}</p>` : ''; 27576 const street = location.address ? `${location.address}<br/>` : ''; 27577 const city = location.city ? `${location.city}<br/>` : ''; 27578 const state = location.state ? `${location.state}<br/>` : ''; 27579 const zipCode = location.zipcode ? `${location.zipcode}<br/>` : ''; 27580 const country = location.country ? location.country : ''; 27581 27582 return `<div> 27583 ${title} 27584 ${comment} 27585 ${phone} 27586 <p class="px-1 pt-3 text-primary"> 27587 ${street} 27588 ${city} 27589 ${state} 27590 ${zipCode} 27591 ${country} 27592 </p> 27593 </div>`; 27594 }; 27595 27596 const hideAllMaps = () => { 27597 document.querySelectorAll('[data-content-type="map"]').forEach(element => { 27598 element.classList.add('hidden'); 27599 }); 27600 }; 27601 27602 window.gm_authFailure = () => { 27603 hideAllMaps(); 27604 }; 27605 27606 if (typeof google.maps === 'undefined') { 27607 hideAllMaps(); 27608 return; 27609 } 27610
27611 elements.forEach(element => { 27612 if (element.dataset.contentType === 'map') { 27613 renderMap(element); 27614 } 27615 }); 27616 }; 27617 27618 window.addEventListener('DOMContentLoaded', () => { 27619 const mapElements = document.querySelectorAll('[data-content-type="map"]'); 27620 27621 if (mapElements.length > 0) { 27622 const script = document.createElement('script'); 27623 script.type = 'text/javascript'; 27624 27625 script.addEventListener('load', () => { 27626 initMaps(mapElements); 27627 }); 27628 27629 script.src = 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3.56\u0026key\u003D'; 27630 document.head.appendChild(script); 27631 } 27632 }); 27633 })(); 27634</script>
vendor: 1 bytes, line 27634
27634
27635<script defer> 27636 'use strict'; 27637 27638 (() => { 27639 const initParallaxImage = (element) => { 27640 if (!window.jarallax) { 27641 return; 27642 } 27643 27644 element.classList.add('jarallax'); 27645 element.dataset.jarallax = ''; 27646 const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5; 27647 const elementStyle = window.getComputedStyle(element); 27648 27649 window.jarallax(element, { 27650 imgPosition: elementStyle.backgroundPosition || '50% 50%', 27651 imgRepeat: elementStyle.backgroundRepeat || 'no-repeat', 27652 imgSize: elementStyle.backgroundSize || 'cover', 27653 speed: parallaxSpeed, 27654 }); 27655 }; 27656 27657 const initVideoBackground = (element) => { 27658 if (!window.jarallax) { 27659 return; 27660 } 27661 27662 let slider = null; 27663 27664 if (element.classList.contains('pagebuilder-slide-wrapper')) { 27665 const viewportElement = document.createElement('div'); 27666 slider = element.closest('[data-content-type=slider]'); 27667 viewportElement.classList.add('jarallax-viewport-element'); 27668 element.dataset.elementInViewport = '.jarallax-viewport-element'; 27669 element.appendChild(viewportElement); 27670 } 27671 27672 element.classList.add('jarallax'); 27673 element.dataset.jarallax = ''; 27674 const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5; 27675 27676 window.jarallax(element, { 27677 imgSrc: element.dataset.videoFallbackSrc, 27678 speed: parallaxSpeed, 27679 videoLoop: element.dataset.videoLoop, 27680 videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible, 27681 videoLazyLoading: element.dataset.videoLazyLoad, 27682 disableVideo: false, 27683 elementInViewport: element.dataset.elementInViewport && 27684 element.querySelector(element.dataset.elementInViewport), 27685 }); 27686 27687 if (slider) { 27688 if (slider.dataset.afterChangeIsSet) { 27689 return; 27690 } 27691 27692 slider.addEventListener('glider-loaded', () => { 27693 slider.querySelectorAll('.jarallax').forEach(videoSlide => { 27694 videoSlide.jarallax && videoSlide.jarallax.onScroll(); 27695 }); 27696 }); 27697 27698 slider.addEventListener('glider-animated', () => { 27699 slider.querySelectorAll('.jarallax').forEach(videoSlide => { 27700 videoSlide.jarallax && videoSlide.jarallax.onScroll(); 27701 }); 27702 }); 27703 27704 slider.dataset.afterChangeIsSet = true; 27705 } 27706 }; 27707 27708 window.addEventListener('DOMContentLoaded', () => { 27709 const parallaxImageElements = document.querySelectorAll( 27710 `[data-content-type="row"][data-background-type="image"][data-enable-parallax="1"], 27711 [data-content-type="row"] > [data-background-type="image"][data-enable-parallax="1"]` 27712 ); 27713 27714 const videoBackgroundsElements = document.querySelectorAll( 27715 `[data-content-type="row"][data-background-type="video"][data-enable-parallax="1"], 27716 [data-content-type="row"] > [data-background-type="video"][data-enable-parallax="1"], 27717 [data-content-type="banner"] [data-background-type="video"], 27718 [data-content-type="slide"] [data-background-type="video"]` 27719 ); 27720 27721 if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) { 27722 const jarallaxScript = document.createElement('script'); 27723 jarallaxScript.type = 'text/javascript'; 27724 27725 jarallaxScript.addEventListener('load', () => { 27726 parallaxImageElements.forEach(row => { 27727 initParallaxImage(row); 27728 }); 27729 27730 const jarallaxVideoScript = document.createElement('script'); 27731 jarallaxVideoScript.type = 'text/javascript'; 27732 27733 jarallaxVideoScript.addEventListener('load', () => {
27734 videoBackgroundsElements.forEach(element => { 27735 initVideoBackground(element); 27736 }); 27737 }); 27738 27739 jarallaxVideoScript.src = 'https\u003A\u002F\u002Fwww.123drogisterij.nl\u002Fstatic\u002Fversion1790863840\u002Ffrontend\u002FCareland\u002F123d\u002Fnl_NL\u002FHyva_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js'; 27740 document.head.appendChild(jarallaxVideoScript); 27741 }); 27742 27743 jarallaxScript.src = 'https\u003A\u002F\u002Fwww.123drogisterij.nl\u002Fstatic\u002Fversion1790863840\u002Ffrontend\u002FCareland\u002F123d\u002Fnl_NL\u002FHyva_PageBuilder\u002Fjs\u002Fjarallax.min.js'; 27744 document.head.appendChild(jarallaxScript); 27745 } 27746 }); 27747 })(); 27748</script>
vendor: 1 bytes, line 27748
27748
27749<script defer> 27750 'use strict'; 27751 27752 (() => { 27753 const applyShowOnHover = (element) => { 27754 const showOverlayOnHover = (element) => { 27755 const overlay = element.querySelector('.pagebuilder-overlay'); 27756 const color = overlay.dataset.overlayColor; 27757 27758 element.addEventListener('mouseover', () => { 27759 overlay.style.backgroundColor = color; 27760 }); 27761 element.addEventListener('mouseout', () => { 27762 overlay.style.backgroundColor = 'transparent'; 27763 }); 27764 }; 27765 27766 const showButtonOnHover = (element) => { 27767 const button = element.querySelector('.pagebuilder-banner-button'); 27768 27769 element.addEventListener('mouseover', () => { 27770 button.style.opacity = '1'; 27771 button.style.visibility = 'visible'; 27772 }); 27773 element.addEventListener('mouseout', () => { 27774 button.style.opacity = '0'; 27775 button.style.visibility = 'hidden'; 27776 }); 27777 }; 27778 27779 if (element.dataset.showOverlay === 'hover') { 27780 showOverlayOnHover(element); 27781 } 27782 if (element.dataset.showButton === 'hover') { 27783 showButtonOnHover(element); 27784 } 27785 }; 27786 27787 window.addEventListener('DOMContentLoaded', () => { 27788 document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => { 27789 applyShowOnHover(element); 27790 }); 27791 }); 27792 })(); 27793</script>
vendor: 1 bytes, line 27793
27793
27794<script defer> 27795 'use strict'; 27796 27797 (() => { 27798 document.querySelectorAll('[data-content-type="tab-item"]').forEach(tabItem => { 27799 tabItem.setAttribute('x-show', `tab === '${tabItem.id}'`); 27800 }); 27801 27802 document.querySelectorAll('[data-content-type="tabs"]').forEach(tab => { 27803 const defaultActiveTab = parseInt(tab.dataset.activeTab) || 0; 27804 27805 tab.querySelectorAll('.tab-header').forEach((tabHeader, index) => { 27806 const tabLink = tabHeader.querySelector('a'); 27807 const tabId = tabLink.getAttribute('href').replace('#', ''); 27808 27809 tabHeader.setAttribute(':class', `{ 'active': tab === '${tabId}' }`); 27810 tabLink.setAttribute('x-on:click.prevent', `tab = '${tabId}'`); 27811 27812 if (index === defaultActiveTab) { 27813 tab.setAttribute('x-data', `{ tab: '${tabId}' }`); 27814 } 27815 }); 27816 }); 27817 })(); 27818</script>
vendor: 1 bytes, line 27818
27818
27819<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.123drogisterij.nl\/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.123drogisterij.nl\/incontinentiemateriaal","name":"Incontinentiemateriaal"}}]}</script>
27819<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.123drogisterij.nl\/","name":"123Drogisterij"}</script>
27819<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/www.123drogisterij.nl\/","name":"123Drogisterij","logo":"https:\/\/www.123drogisterij.nl\/media\/logo\/stores\/2\/logo.jpg","description":"Op zoek naar incontinentiemateriaal en bestelt u het liever online? U kunt gemakkelijk op 123drogisterij.nl uw producten bestellen. 123 drogisterij is de specialist in incontinentiemateriaal en verstuurt uw bestelling snel en discreet. Incontinentie kan een lastig probleem zijn en kan veel hinder geven. Met ons assortiment aan betrouwbare producten van hoge kwaliteit kunt u altijd rekenen op het meeste comfort.","address":{"addressCountry":"NL","@type":"PostalAddress"}}</script>
27819<script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"Product","name":"Swimmm Wegwerp Zwemluiers voor Volwassenen en Kinderen","description":"Swimmm is een hoogwaardige wegwerp zwemluier voor volwassenen en jongeren. Beschermt bij ontlastingsverlies, niet bij verlies van urine.\r\nVeilig, hygi\u00ebnisch en comfortabel zwemmen dankzij zacht materiaal en volledige afsluiting rond taille en benen. Geen kans op lekkage.\r\n\u2705 Zacht en huidvriendelijk materiaal\u2705 Stevig elastiek rond taille en benen\u2705 Geen lekkage \u2013 volledig afsluitend\u2705 Geschikt voor volwassenen en jongeren\r\n\r\n\r\n\r\n\r\nMaat\r\nGewicht\r\nHeupomvang\r\nAantal per pak\r\n\r\n\r\n\r\n\r\n7\r\n18\u201330 kg\r\n\u2013\r\n36 stuks\r\n\r\n\r\n8\r\n28\u201342 kg\r\n\u2013\r\n30 stuks\r\n\r\n\r\nSmall\r\n36\u201357 kg\r\n56\u201391 cm\r\n22 stuks\r\n\r\n\r\nMedium\r\n54\u201379 kg\r\n86\u2013122 cm\r\n20 stuks\r\n\r\n\r\nLarge\r\n71\u201395 kg\r\n95\u2013135 cm\r\n18 stuks\r\n\r\n\r\n\r\n","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":29.99,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/swimmm-zwemluiers-voor-volwassenen"}],"url":"https:\/\/www.123drogisterij.nl\/swimmm-zwemluiers-voor-volwassenen","sku":"ZL-81800","mpn":"ZL-81800"},{"@context":"https:\/\/schema.org","@type":"Product","name":"Wasbare matrasbeschermer met instopstroken - 85 x 90 cm.","description":"Deze matrasbeschermer met instopstroken blijft perfect op z\u2019n plek. Ideaal voor onrustige slapers, kinderen of zorggebruik. Topcomfort en maximale matrasbescherming in \u00e9\u00e9n slimme oplossing.\r\n\r\n\r\nInstopstroken van 40 cm houden de beschermer stevig vast.\r\n\r\n\r\nVangt tot 2 liter vocht op \u2013 optimale bescherming tegen doorlekken.\r\n\r\n\r\nAdemend en zacht materiaal voor een natuurlijke, comfortabele nachtrust.\r\n\r\n\r\nWasbaar, herbruikbaar en kostenbesparend.\r\n\r\n\r\n\r\nVoor de variant zonder instopstrook, klikt u hier.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":11.49,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm"}],"url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-met-instopstroken-85-x-90-cm","brand":{"@type":"Brand","name":"Careland"},"manufacturer":{"@type":"Organization","name":"Careland"},"sku":"WO-68187","mpn":"WO-68187"},{"@context":"https:\/\/schema.org","@type":"Product","name":"Wasbare matrasbeschermer - 85 x 90 cm.","description":"Nooit meer een nat matras! Deze wasbare matrasbeschermer (85 x 90 cm) is d\u00e9 oplossing voor nachtelijke ongelukjes, zweet of incontinentie. Comfortabel, superabsorberend en herbruikbaar \u2013 bescherm je matras \u00e9n slaap met een gerust hart.\r\n\r\n\r\nAbsorbeert tot 2 liter vocht \u2013 jouw matras blijft gegarandeerd droog.\r\n\r\n\r\nVier lagen inclusief waterdichte PU-onderlaag \u2013 geen doorlekken meer.\r\n\r\n\r\nHeerlijk zacht en ademend \u2013 voelt niet zweterig of stug aan.\r\n\r\n\r\nWasbaar tot 95\u00b0C en herbruikbaar \u2013 hygi\u00ebnisch \u00e9n duurzaam.\r\n\r\n\r\n\u00a0\r\nVoor de variant met instopstrook,\u00a0klikt u hier.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":10.49,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-85-x-90-cm"}],"url":"https:\/\/www.123drogisterij.nl\/wasbare-matrasbeschermer-85-x-90-cm","brand":{"@type":"Brand","name":"Careland"},"manufacturer":{"@type":"Organization","name":"Careland"},"sku":"WO-68189","mpn":"WO-68189"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Protective Shield - Level 0","description":"TENA Men Protective Shield - Level 0 is speciaal ontworpen voor mannen en volgt de lijnen van het lichaam. Het biedt de hele dag comfort en zekerheid. Door de handige plakstrip blijft het op de juiste plek in het ondergoed zitten, zodat u zonder zorgen door kunt gaan met uw bezigheden. TENA for Men is zo discreet dat niemand ziet dat u het draagt. De unieke Lock Away Core bevat microabsorbens die de vloeistof absorberen en weghouden van het lichaam. Bovendien is het voorzien van Odour Control dat geurtjes tegengaat.\r\nTENA Men Protective Shield - Extra Light is geschikt voor mannen die enkele druppels urine verliezen. Het heeft een opname van 100 ml en een lengte van 18 cm en is 3 millimeter dik.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":5.72,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-protective-shield-level-0"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-protective-shield-level-0","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"750403","mpn":"750403"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA For Men Level 1","description":"TENA Men Level 1 is een inlegger speciaal voor mannen die drup
27819pels verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 20 centimeter 'hoog' en 19 centimeter breed. De opname is maximaal 250 milliliter.\r\nTENA For Men Level 1 is geschikt voor mannen met lichte incontinentie. Bijvoorbeeld heren die nadruppelen na het plassen of kleine scheutjes verliezen. Ook mannen die een prostaatoperatie hebben ondergaan raken soms incontinent en hebben dan baat bij dit mannenverband. Dit inlegverband is zo discreet dat niemand ziet dat u het draagt.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":10.49,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-1"}],"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-1","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"750651","mpn":"750651"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA For Men Level 2","description":"TENA Men Level 2 is een inlegger speciaal voor mannen die druppels of iets meer verliezen. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 450 milliliter.\r\nTENA For Men Level 2 is geschikt voor mannen met lichte incontinentie. Bijvoorbeeld heren die nadruppelen na het plassen of kleine scheutjes verliezen. Ook mannen die een prostaatoperatie hebben ondergaan raken soms incontinent en hebben dan baat bij dit mannenverband. Dit inlegverband is zo discreet dat niemand ziet dat u het draagt.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":10.49,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-2"}],"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-2","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"750776","mpn":"750776"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA For Men Level 3","description":"TENA Men Level 3 is een inlegger speciaal voor mannen die wat meer opname nodig hebben. Het heeft een driehoekig model en kan in het ondergoed worden geplakt met een plakstrip. De inlegger is ongeveer 24 centimeter 'hoog' en 23 centimeter breed. De opname is maximaal 710 milliliter.\r\nTENA For Men Level 3 is geschikt voor mannen nadruppelen na het plassen of die scheutjes verliezen. Ook mannen die een prostaatoperatie hebben ondergaan raken soms incontinent en hebben dan baat bij dit mannenverband. Dit inlegverband is zo discreet dat niemand ziet dat u het draagt.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":10.49,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-3"}],"url":"https:\/\/www.123drogisterij.nl\/tena-for-men-level-3","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"750830","mpn":"750830"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Active Fit Large\/Extra Large","description":"TENA Men Active Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Large heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":15.98,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-large-extra-large"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-large-extra-large","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"772610","mpn":"772610"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Active Fit Small\/Medium","description":"TENA Men Active Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is 1010 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Medium heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":15.98,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-small-medium"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-small-medium","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"772512","mpn":"772512"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Premium Fit Large\/Extra Large","description":"TENA Men Premium Fit Large is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":17.81,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-large-extra-large"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-large-extra-large","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"798306","mpn":"798306"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Premium Fit Small\/Medium","description":"TENA Men Premium Fit Medium is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt de bescherming van een zware pants. De vochtopname is wel 1,5 liter. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. Tena Protective Underwear heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":17.81,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-small-medium"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-premium-fit-small-medium","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"798308","mpn":"798308"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Active Fit Pants Normal L\/XL","description":"TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":14.83,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-l-xl"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-l-xl","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"772802","mpn":"772802"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Men Active Fit Pants Normal S\/M","de
27819scription":"TENA Men Active Fit Pants Normal is een comfortabel broekje speciaal voor mannen. Het ziet eruit als een gewone onderbroek maar biedt u bescherming bij licht tot matig urine verlies. De vochtopname is 880 ml. De sterk absorberende kern zorgt voor zekerheid door een snelle opname van de urine. Het materiaal van het broekje voelt zacht aan als katoen. De nauwsluitende pasvorm maakt het zeer comfortabel bij het dragen. TENA Men Active Fit Pants Normal heeft een discreet en mannelijk design.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":14.83,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-s-m"}],"url":"https:\/\/www.123drogisterij.nl\/tena-men-active-fit-pants-normal-s-m","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"772702","mpn":"772702"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Maxi Night","description":"TENA Discreet Maxi Night is speciaal ontwikkeld voor vrouwen die grote scheuten urine verliezen gedurende de nacht. Ook voor het licht verlies van ontlasting. Het is een comfortabel verband dat extra absorbeert voor een langdurige bescherming. Dit product heeft onze unieke Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. Ook TENA Discreet Maxi Night\u00a0heeft een volledig ademende buitenlaag voor extra comfort, terwijl de dubbele pulplaag nog beter absorbeert, zodat u zich de hele nacht zelfverzekerd en fris voelt. Zo kunt u genieten van een onbezorgde nachtrust. Het product heeft een afmeting van 14 x 38.5 cm en een opname van ruim 1 liter.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":7.59,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi-night"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi-night","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"760982","mpn":"760982"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Maxi","description":"TENA Discreet Maxi is het zwaarste inlegverband binnen het TENA Discreet inlegger assortiment, ideaal voor vrouwen die regelmatig grote scheuten urine verliezen en nog meer zekerheid nodig hebben. Dit product heeft net als TENA Discreet Normal, Extra en Extra Plus de vernieuwde absorptiezone voor een snelle opname van urine en een blijvend droge toplaag. TENA Discreet Maxi geeft een fris gevoel dankzij TENA Fresh Odour Control en zorgt voor een goede luchtcirculatie door de volledig ademende buitenlaag. Het meet 14 x 38.5 cm en kan ruim een liter urine opnemen.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":7.59,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-maxi","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"760977","mpn":"760977"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Extra Plus","description":"TENA Discreet Extra Plus biedt nog meer zekerheid dan Extra en is daardoor zeer geschikt bij verlies van flinke scheuten urine. De inlegger is iets langer dan de Extra, waardoor het zeer geschikt is voor iets grotere vrouwen. Dankzij de vernieuwde absorptiezone wordt de urine nu nog sneller opgenomen en blijft de toplaag droog. Ook TENA Discreet Extra Plus is anatomisch gevormd en voorzien van Fresh Odour Control, die de ontwikkeling van geurtjes tegengaat. De volledig ademende buitenlaag zorgt voor een goede luchtcirculatie. Dit product is 13 x 39 centimeter en neemt 788 milliliter op.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":8.93,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra-plus"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra-plus","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"761660","mpn":"761660"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Extra","description":"TENA Discreet Extra is zeer geschikt bij regelmatig verlies van scheutjes urine. Het zit tussen de Super en de Maxi in. Het product garandeert een uitstekende pasvorm doordat het de natuurlijke lijnen van het lichaam volgt. De nieuwe absorptiezone zorgt voor een nog snellere opname van urine en de volledig ademende buitenlaag voor extra comfort. Ook TENA Discreet Extra is voorzien van Fresh Odour Control die de vorming van geurtjes tegengaat. De Extra is 12 x 34 centimeter en heeft een opname van 586 milliliter.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":8.93,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-extra","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"760692","mpn":"760692"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Lady Super","description":"TENA Lady Super is geschikt bij verlies van flinke scheuten urine. Ook voor het licht verlies van ontlasting. Dit product heeft een Dry Fast Core en geeft een fris gevoel dankzij TENA Fresh Odour Control. De lengte-elastieken zorgen ervoor dat het goed op het lichaam aansluit. Het heeft een afmeting van 20 x 43 centimeter en neemt 900 milliliter op.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":19.12,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-lady-super"}],"url":"https:\/\/www.123drogisterij.nl\/tena-lady-super","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"761730","mpn":"761730"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Normaal","description":"TENA Discreet Normal is een inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt le
27819kken. Het product heeft een opname van 300 milliliter. De afmeting is 10 bij 27.5 centimeter.","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":8.91,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-normaal"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-normaal","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"760806","mpn":"760806"},{"@context":"https:\/\/schema.org","@type":"Product","name":"TENA Discreet Mini","description":"TENA Discreet Mini is een heel kleine inlegger voor lichte incontinentie. Bijvoorbeeld wanneer u tijdens het tennissen enkele druppels tot een heel klein scheutje verliest. Het wordt dus vooral gebruikt bij stressincontinentie. Dit inlegverbandje wordt met een plakstrip vastgezet in de onderbroek. Wij adviseren nauwsluitend ondergoed te dragen zodat het inleggertje goed op zijn plaats blijft zitten. Dit voorkomt lekken. Het product heeft een opname van 200 milliliter. De afmeting is 10 bij 22 centimeter. ","image":"https:\/\/www.123drogisterij.nl\/static\/version1790863840\/frontend\/Careland\/123d\/nl_NL\/Magento_Catalog\/images\/product\/placeholder\/image.jpg","offers":[{"@type":"Offer","priceCurrency":"EUR","price":8.93,"availability":"https:\/\/schema.org\/InStock","itemCondition":"https:\/\/schema.org\/NewCondition","seller":{"@type":"Organization","name":"123Drogisterij"},"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-mini"}],"url":"https:\/\/www.123drogisterij.nl\/tena-discreet-mini","brand":{"@type":"Brand","name":"TENA"},"manufacturer":{"@type":"Organization","name":"TENA"},"sku":"760364","mpn":"760364"}]</script>
27819<script type="text/json" id="default-section-data"> 27820 {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"BE":{"name":"Belgi\u00eb","regions":{"609":{"code":"VAN","name":"Antwerpen"},"610":{"code":"WBR","name":"Brabant wallon"},"611":{"code":"BRU","name":"Brussels-Capital Region"},"612":{"code":"WHT","name":"Hainaut"},"614":{"code":"WLG","name":"Li\u00e8ge"},"613":{"code":"VLI","name":"Limburg"},"615":{"code":"WLX","name":"Luxembourg"},"616":{"code":"WNA","name":"Namur"},"617":{"code":"VOV","name":"Oost-Vlaanderen"},"618":{"code":"VBR","name":"Vlaams-Brabant"},"619":{"code":"VWV","name":"West-Vlaanderen"}}},"DE":{"name":"Duitsland","regions":{"80":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"81":{"code":"BAY","name":"Bayern"},"82":{"code":"BER","name":"Berlin"},"83":{"code":"BRG","name":"Brandenburg"},"84":{"code":"BRE","name":"Bremen"},"85":{"code":"HAM","name":"Hamburg"},"86":{"code":"HES","name":"Hessen"},"87":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"79":{"code":"NDS","name":"Niedersachsen"},"88":{"code":"NRW","name":"Nordrhein-Westfalen"},"89":{"code":"RHE","name":"Rheinland-Pfalz"},"90":{"code":"SAR","name":"Saarland"},"91":{"code":"SAS","name":"Sachsen"},"92":{"code":"SAC","name":"Sachsen-Anhalt"},"93":{"code":"SCN","name":"Schleswig-Holstein"},"94":{"code":"THE","name":"Th\u00fcringen"}}},"FR":{"name":"Frankrijk","regions":{"182":{"code":"1","name":"Ain"},"183":{"code":"2","name":"Aisne"},"184":{"code":"3","name":"Allier"},"185":{"code":"4","name":"Alpes-de-Haute-Provence"},"187":{"code":"6","name":"Alpes-Maritimes"},"188":{"code":"7","name":"Ard\u00e8che"},"189":{"code":"8","name":"Ardennes"},"190":{"code":"9","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"5","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"}
27820,"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"NL":{"name":"Nederland"},"data_id":1791165006},"instant-purchase":[],"persistent":[],"review":[],"captcha":[],"wishlist":{"items":[]},"multisafepay-payment-request":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[]}</script>
27820 27821</div></body> 27822</html>
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.