LIBRISTO
LIBROAMANTO
verplicht
Word lid van een gemeenschap van boekenliefhebbers van over de hele wereld en krijg een heleboel voordelen. Gratis account aanmaken
0
Gratis bezorging met Zásilkovna boven 59.99 €
DPD koerier 5.49 DHL koeriersdienst 5.49 GLS koerier 4.99 DPD-punt 3.99

Gratis verzending vanaf 59,99 euro.
Taal DuitsDuits
Boek Gebonden (paperback)
Boek Der Ring. Friedrich Ludwig Schröder
Libristo-code: 11972083
Uitgeverij Nabu Press, december 2011
This is a reproduction of a book published before 1923. This book may have occasional imperfections... Volledige beschrijving
? points 41 b
17.11
In extern magazijn Wordt binnen 9-15 dagen verzonden

Retourneren binnen 30 dagen


Klanten kochten ook


Forgotten Women Zing Tsjeng / E-book Adobe ePub DRM
common.buy 4.35
Materials Issues for Generation IV Systems Véronique Ghetta / Boek Gebonden (harde band)
common.buy 354.38
Come and See What God Has Done!: Before, Then and Beyond -- Rev Thomas B Cundiff / Boek Gebonden (paperback)
common.buy 8.60
Frack You Christina McMullen / Boek Gebonden (paperback)
common.buy 10.32
The Botanical Atlas Daniel McAlpine / Boek Gebonden (paperback)
common.buy 11.74
Londres avec toi Erin Lawless / Boek Gebonden (paperback)
common.buy 17.92
Non-State Actors and Foreign Policy Agency Daniela Irrera / Boek Gebonden (paperback)
common.buy 133.99

This is a reproduction of a book published before 1923. This book may have occasional imperfections such as missing or blurred pages, poor pictures, errant marks, etc. that were either part of the original artifact, or were introduced by the scanning process. We believe this work is culturally important, and despite the imperfections, have elected to bring it back into print as part of our continuing commitment to the preservation of printed works worldwide. We appreciate your understanding of the imperfections in the preservation process, and hope you enjoy this valuable book. br/br/ ++++br/ The below data was compiled from various identification fields in the bibliographic record of this title. This data is provided as an additional tool in helping to ensure edition identification: br/++++ br/br/ Der Ring. Lustspiel In 5 Aufzbr/br/<author> Friedrich Ludwig Schröderbr/br/<publisher> Hartmann, 1786br/br/</p></div> <div :class="open ? '' : 'bg-gradient-to-t'" class="flex justify-end items-end absolute bottom-0 left-0 right-0 h-24 from-white via-white lg:hidden"> <button @click="open = !open" class="flex items-center font-montserrat text-lgreen2 font-bold"> Volledige beschrijving <svg :class="open ? 'rotate-180' : ''" class="ml-2 transform transition-all" height="10" viewBox="0 0 17 10" width="17" xmlns="http://www.w3.org/2000/svg"><path d="m15.7 2-6.9 6.8-6.9-6.8" fill="none" stroke="#00bf9c" stroke-linecap="round" stroke-linejoin="round"/></svg> </button> </div> </div> </div> </div> </div> </div> </section> <!-- end:l-content --> <script type="application/ld+json"> { "@context": "https://schema.org/", "@type": ["Product", "Book"], "name": "Der Ring.", "id": "11972083", "sku": "11972083", "gtin": "9781273632266", "isbn": "9781273632266", "numberOfPages": 150, "author": { "@type": "Person", "name": "Friedrich Ludwig Schröder" }, "bookFormat": "https://schema.org/Paperback", "description": "This is a reproduction of a book published before 1923. This book may have occasional imperfections such as missing or blurred pages, poor pictures, errant marks, etc. that were either part of the original artifact, or were introduced by the scanning process. We believe this work is culturally important, and despite the imperfections, have elected to bring it back into print as part of our continuing commitment to the preservation of printed works worldwide. We appreciate your understanding of the imperfections in the preservation process, and hope you enjoy this valuable book. br/br/ ++++br/ The below data was compiled from various identification fields in the bibliographic record of this title. This data is provided as an additional tool in helping to ensure edition identification: br/++++ br/br/ Der Ring. Lustspiel In 5 Aufzbr/br/ Friedrich Ludwig Schröderbr/br/ Hartmann, 1786br/br/", "image": "https://libris.to/media/jacket/11972083_der-ring.jpg", "url": "https://www.libristo.nl/nl/boek/der-ring_11972083", "itemCondition": "https://schema.org/NewCondition", "brand": "Nabu Press", "offers": { "@type": "Offer", "availability": "http://schema.org/InStock", "price": 17.11, "priceCurrency": "EUR" } } </script> <section class="bg-primary-700" x-data="{ videoModalOpen: false, closeVideoModal() { this.videoModalOpen = false; // Clear the iframe src to stop the video this.$nextTick(() => { if (this.$refs.videoIframe) { this.$refs.videoIframe.src = ''; } }); } }"> <div class="c-container"> <div class="flex flex-col lg:flex-row w-full"> <div class="flex items-center flex-1 gap-6 lg:gap-0 lg:mb-0 px-4 lg:px-0 lg:h-[289px] pt-12 pb-48 lg:pt-0 lg:pb-0 relative flex-col lg:flex-row"> <div class="relative z-10 flex flex-col gap-4 text-center lg:text-left"> <div class="flex items-center gap-2 text-white font-heading text-[23px] justify-center lg:justify-start"> <span class="font-bold">Actrice</span> & <span class="font-bold">Polyglot</span> </div> <span class="text-yell font-[900] text-7xl">EWA KASP</span> <span class="flex items-end justify-end gap-2 text-right text-white font-heading"> <span class="">voor</span> <svg class="text-white w-24 h-8 grow-0 shrink-0" width="248" height="80" viewBox="0 0 248 80" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M0.904297 78.9921H25.403L26.226 74.4975L6.9182 76.5865V34.3626H0.904297V78.9921ZM33.3161 78.9921H39.33V34.3626H33.3161V78.9921ZM50.2183 78.9921H60.7901C70.0325 78.9921 75.3501 73.8011 75.3501 66.711C75.3501 59.6843 69.0196 55.6328 62.8791 55.6328V55.5062C69.716 54.8098 73.8941 50.1886 73.8941 44.7445C73.8941 39.237 69.8426 34.3626 61.4864 34.3626H50.2183V78.9921ZM56.2322 76.0168V56.709H59.8405C66.1077 57.0888 69.2096 61.71 69.2096 67.3441C69.2096 73.2947 65.5379 76.5865 60.347 76.5865C59.0176 76.5865 57.5616 76.3966 56.2322 76.0168ZM56.2322 54.6199V36.6415L58.9543 36.7048C65.0948 36.958 68.0068 40.9462 68.0068 45.7573C68.0068 50.6951 64.9049 54.43 59.2075 54.6199H56.2322ZM83.7062 78.9921H89.7201V57.5319L106.053 78.9921H113.839L95.7973 57.1521C96.6836 57.2787 97.7598 57.2787 99.2791 57.0888C104.66 56.3291 109.471 51.9611 109.471 46.0105C109.471 39.0471 103.964 34.3626 96.0506 34.3626H83.7062V78.9921ZM89.7201 54.1135V36.8314L92.822 36.8947C99.8488 37.2746 103.394 42.0857 103.394 47.7831C103.394 53.4804 99.7855 55.886 95.924 55.886C93.4551 55.886 91.2394 55.1264 89.7201 54.1135ZM119.916 78.9921H125.93V34.3626H119.916V78.9921ZM147.074 80.0049C153.974 80.0049 160.304 74.7507 160.304 67.5973C160.304 60.8237 155.683 57.2787 150.745 54.2401L145.491 51.1382C142.326 49.1758 139.73 46.9601 139.73 43.0986C139.73 38.7939 142.959 36.3883 146.821 36.3883C150.619 36.3883 153.341 38.4773 154.417 42.5288L159.291 40.7563C157.646 36.7681 153.847 33.3497 147.454 33.3497C140.997 33.3497 134.919 37.9076 134.919 44.6812C134.919 50.8217 138.718 54.3034 143.972 57.4686L149.036 60.5705C152.581 62.7229 155.303 65.1917 155.303 69.4331C155.303 74.0543 151.822 76.9663 147.517 76.9663C143.276 76.9663 139.224 74.1176 138.718 68.7368L133.653 69.4964C134.54 75.6369 140.11 80.0049 147.074 80.0049ZM197.084 34.3626H164.039L163.596 38.9205L177.523 36.8314V78.9921H183.537V36.8314L197.527 38.9205L197.084 34.3626ZM223.988 80.0049C237.346 80.0049 247.094 68.5469 247.094 56.0126C247.094 43.1619 237.409 33.3497 224.178 33.3497C210.758 33.3497 201.072 44.8078 201.072 57.2787C201.072 70.1295 210.695 80.0049 223.988 80.0049ZM207.149 53.6704C207.149 44.8078 212.72 36.6415 222.153 36.6415C232.851 36.6415 241.017 47.2766 241.017 59.6843C241.017 68.5469 235.446 76.7131 225.951 76.7131C215.252 76.7131 207.149 66.078 207.149 53.6704Z" fill="currentColor"/> <path d="M123.499 19.4591L112.018 9.87149V12.5473L123.499 23.7192L134.981 12.6429V10.0694L123.499 19.4591Z" fill="currentColor"/> <path d="M123.499 9.59257L112.018 0.00494385V2.68073L123.499 13.8527L134.981 2.77635V0.202905L123.499 9.59257Z" fill="currentColor"/> </svg> </span> </div> <div @click="videoModalOpen = true" class="lg:absolute lg:bottom-0 lg:top-0 lg:right-18 h-full z-10 flex flex-col items-center justify-center gap-1 cursor-pointer"> <button class="flex items-center justify-center mt-11 hover:scale-105 transition-transform cursor-pointer"> <svg class="text-primary w-[71px] h-[71px]" xmlns="http://www.w3.org/2000/svg" width="26.455" height="26.455" viewBox="0 0 26.455 26.455"> <g id="Group_1509" data-name="Group 1509" transform="translate(-1062.25 -398.931)" opacity="0.5"> <g id="g835" transform="translate(1063 399.681)"> <path id="path837" d="M-617.711-308.855a12.477,12.477,0,0,1-12.477,12.477,12.477,12.477,0,0,1-12.477-12.477,12.477,12.477,0,0,1,12.477-12.477A12.477,12.477,0,0,1-617.711-308.855Z" transform="translate(642.665 321.333)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/> </g> <g id="g839" transform="translate(1071.853 405.428)"> <path id="path841" d="M0,0V13.461L9.319,6.73Z" fill="currentColor"/> </g> </g> </svg> </button> <span class="text-primary text-base/10 font-bold">Video afspelen</span> </div> <img src="https://www.libristo.nl/img/ewakasp2x.png" alt="Ewa Kasp" class="absolute bottom-0 top-0 right-0 h-full z-0 hidden lg:block"> <img src="https://www.libristo.nl/img/ewakasp_mobile.png" alt="Ewa Kasp" class="absolute bottom-0 top-0 right-0 w-full h-full z-0 object-cover block lg:hidden"> </div> <div class="w-full lg:w-[360px] shrink-0 py-12 lg:py-0 px-4 lg:px-8 flex justify-center items-center gap-4 text-center bg-white/10"> <svg class="text-primary-200 w-18 h-18 opacity-30" width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.1138 9.1765L8.49805 0.177002H10.623L19.498 9.1765L10.7005 18.177H8.65606L16.1138 9.1765Z" fill="currentColor"/> <path d="M8.11384 9.1765L0.498047 0.177002H2.62299L11.498 9.1765L2.70047 18.177H0.656061L8.11384 9.1765Z" fill="currentColor"/> </svg> <span class="text-primary-200 font-heading text-lg/10 italic">Libristo heeft de grootste selectie boeken in vreemde talen. Daarom koop ik mijn boeken hier.</span> <svg class="text-primary-200 w-18 h-18 rotate-180 opacity-30" width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16.1138 9.1765L8.49805 0.177002H10.623L19.498 9.1765L10.7005 18.177H8.65606L16.1138 9.1765Z" fill="currentColor"/> <path d="M8.11384 9.1765L0.498047 0.177002H2.62299L11.498 9.1765L2.70047 18.177H0.656061L8.11384 9.1765Z" fill="currentColor"/> </svg> </div> </div> </div> <!-- Video Modal --> <div x-show="videoModalOpen" x-transition:enter="transition ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/75" x-cloak @click.self="closeVideoModal()" @keydown.escape.window="closeVideoModal()"> <div class="relative w-full max-w-5xl bg-white rounded-lg shadow-xl"> <!-- Close button --> <button @click="closeVideoModal()" class="absolute -top-12 right-4 z-10 p-2 text-white transition-colors"> <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> <!-- YouTube embed container --> <div class="relative w-full" style="padding-bottom: 56.25%;"> <iframe x-show="videoModalOpen" x-ref="videoIframe" class="absolute top-0 left-0 w-full h-full rounded-lg" :src="videoModalOpen ? 'https://www.youtube.com/embed/JIpAdfSm4jQ?autoplay=1&rel=0' : ''" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe> </div> </div> </div> </section> <section class="bg-cream"> <div class="c-container"> <div class="flex flex-col lg:flex-row w-full"> <div class="flex-1 mb-16 lg:mb-0 lg:mr-8 px-4 lg:px-0 py-12"> <h2 class="font-heading font-bold text-2xl lg:text-4xl text-primary-700 mb-12">Informatie over het boek</h2> <div class="grid gap-6 grid-cols-2 lg:grid-cols-3 font-merriweatherlight text-gray-600"> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Volledige naam</span> <strong class="text-black">Der Ring.</strong> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Auteur</span> <span class="text-black"> <a rel="nofollow" class="no-underline font-bold text-primary text-base" href="https://www.libristo.nl/nl/auteur/Friedrich%20Ludwig%20Schr%C3%B6der">Friedrich Ludwig Schröder</a> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Taal</span> <span class="text-black"> <span class="flex items-center"> <img class="w-4 h-4 mr-2 transition-all duration-100" src="https://www.libristo.nl/img/flag/lang/de.svg" alt=""><strong class="text-black">Duits</strong> </span> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Bindwijze</span> <span class="text-black"> <span class="flex items-center"> <span class="flex items-center"><svg class="w-4 h-4" height="37" viewBox="0 0 38 37" width="38" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m1.6 5.3 17.6 4.8 17.6-4.8v25.6l-17.6 4.8-17.6-4.8z"/><path d="m19.2 10.1v25.6"/><path d="m35.2 1.1-16 4.8-16-4.8"/></g></svg></span><span class="font-bold text-black ml-2"> Boek - Gebonden (paperback) </span> </span> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Datum van uitgifte</span> <span class="text-black"> <strong class="text-black">2012</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Aantal pagina's</span> <span class="text-black"> <strong class="text-black">150</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">EAN</span> <span class="text-black"> <strong class="text-black">9781273632266</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">ISBN</span> <span class="text-black"> <strong class="text-black">1273632265</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Libristo-code</span> <span class="text-black"> <strong class="text-black">11972083</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Uitgeverij</span> <span class="text-black"> <a rel="nofollow" class="no-underline font-bold text-primary text-base" href="https://www.libristo.nl/nl/uitgever/Nabu%20Press">Nabu Press</a> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Gewicht</span> <span class="text-black"> <strong class="text-black">281</strong> </span> </div> <div class="flex flex-col gap-1.5"> <span class="text-gray text-sm">Afmetingen</span> <span class="text-black"> <strong class="text-black">189 x 246 x 9</strong> </span> </div> </div> <div class="w-full mt-12 pt-8 border-0 border-solid border-t border-gray-200"> <div class="w-full"> <div class="flex flex-col gap-1"> <h4 class="text-sm text-gray font-normal mb-0">Categorieën</h4> <div class="mb-2"> <div class="mb-2"> <a rel="nofollow" class="font-bold no-underline leading-none text-primary text-base" href="https://www.libristo.nl/nl/boeken-in-het-duits/geschiedenis-en-archeologie">Geschiedenis en archeologie</a> <span class="px-1 text-gray-300">></span> <a rel="nofollow" class="font-bold no-underline leading-none text-primary text-base" href="https://www.libristo.nl/nl/boeken-in-het-duits/geschiedenis">Geschiedenis</a> </div> </div> </div> </div> </div> </div> <div class="w-full lg:w-[360px] shrink-0 px-4 py-12 lg:px-8 flex flex-col justify-start text-center bg-pink"> <div><img class="mb-6 w-32" src="https://www.libristo.nl/img/svg/gifts/gifte-white.svg" alt=""></div> <h5 class="text-2xl mb-9 font-heading text-white">Geef dit boek vandaag nog cadeau</h5> <div class="text-left font-merriweatherlight flex flex-col gap-6"> <h6 class="text-lg pb-4 font-heading text-primary-700 lg:text-2xl font-bold border-0 border-b border-solid border-gray-200">Dat gaat heel eenvoudig</h6> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">1</span> Voeg het boek toe aan je winkelwagentje en selecteer Als cadeau bezorgen </span> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">2</span> Je krijgt van ons per omgaand een voucher </span> <span class="grid grid-cols-[auto_1fr] text-primary-700"> <span class="flex justify-center items-center bg-primary-700 text-white font-heading font-bold text-sm rounded-full w-7.5 h-7.5 mr-4">3</span> Het boek wordt bezorgd op het adres van de ontvanger </span> </div> </div> </div> </div> </section> <!-- end:l-content:params --> <section class="l-content has-margin"> <div class="c-container"> <div class="w-full mt-12 px-4 lg:px-0"> <div class="flex items-center gap-3 w-full justify-center mb-4 "> <hr class="border-b-gray-200 grow min-w-[2rem]" /> <h3 class="c-section-title "> Dit vind je misschien ook interessant </h3> <hr class="border-b-gray-200 grow min-w-[2rem]" /> </div> <div x-data="{swiper: null}" x-init="swiper = new Swiper($refs.container, { loop: true, speed: 500, slidesPerView: 2, slidesPerGroup: 2, spaceBetween: 0, breakpoints: { 640: { slidesPerView: 2, slidesPerGroup: 2, spaceBetween: 0, }, 1024: { slidesPerView: 6, slidesPerGroup: 6, spaceBetween: 0, }, }, })" class="relative w-full flex" > <div class="absolute inset-y-0 left-0 z-10 flex items-center"> <button @click="swiper.slidePrev()" class="bg-lgreen2 text-white -ml-2 lg:-ml-8 flex justify-center items-center w-10 h-10 rounded-full shadow focus:outline-none"> <svg viewBox="0 0 20 20" fill="currentColor" class="chevron-left w-6 h-6"><path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd"></path></svg> </button> </div> <div class="swiper-container min-w-full" x-ref="container"> <div class="swiper-wrapper"> <div class="swiper-slide flex justify-center"> <div class="w-[170px] flex shrink-0 flex-col"> <a href="https://www.libristo.nl/nl/boek/die-freihandelszone-zwischen-der-europaischen-union-und-den-usa-chancen-und-risiken_19064161" class="relative h-[275px] flex items-end justify-center"> <div class="relative"> <img class="max-w-[150px] max-h-[275px] shrink-0 grow-0 shadow-upsell" loading="lazy" src="https://libris.to/media/jacket/19064161t.jpg"> </div> </a> <span class="h-[3px] w-full bg-black mb-5 z-10"></span> <a class="px-2.5 max-h-[3.7rem] overflow-y-hidden mb-3 inline-block leading-tight whitespace-normal no-underline font-bold text-base text-primary font-heading" href="https://www.libristo.nl/nl/boek/die-freihandelszone-zwischen-der-europaischen-union-und-den-usa-chancen-und-risiken_19064161"> Die Freihandelszone zwischen der Europäischen Union und den USA. Chancen und Risiken </a> <span class="px-2.5 mb-1.5 font-merriweatherlight text-xs"><i>Matthias Webel</i></span> <span class="flex items-center px-2.5 mb-5"> <img class="w-4 h-4 mr-2 transition-all duration-100" src="https://www.libristo.nl/img/flag/lang/de.svg" alt=""> <span class="text-gray-300">/</span> <span class="ml-2 flex items-center"> <img class="w-4 h-4" src="https://www.libristo.nl/img/bindings/B.svg" alt="Boek"> </span><strong class="ml-2 font-light text-xs">Gebonden (paperback)</strong> </span> <div class="flex items-center px-2.5"> <a href="https://www.libristo.nl/nl/boek/die-freihandelszone-zwischen-der-europaischen-union-und-den-usa-chancen-und-risiken_19064161" class="w-8 h-8 flex justify-center items-center rounded-md bg-lgreen2"> <img src="https://www.libristo.nl/img/svg/buy.svg" alt="common.buy"> </a> <span class="ml-4 text-sm font-bold text-black "> 16.20 <span class="text-gray font-normal">€</span> </span> </div> </div> </div> <div class="swiper-slide flex justify-center"> <div class="w-[170px] flex shrink-0 flex-col"> <a href="https://www.libristo.nl/nl/boek/der-kleine-vampir-in-der-hoehle-des-loewen_46151820" class="relative h-[275px] flex items-end justify-center"> <div class="relative"> <img class="max-w-[150px] max-h-[275px] shrink-0 grow-0 shadow-upsell" loading="lazy" src="https://libris.to/media/jacket/46151820t.jpg"> </div> </a> <span class="h-[3px] w-full bg-black mb-5 z-10"></span> <a class="px-2.5 max-h-[3.7rem] overflow-y-hidden mb-3 inline-block leading-tight whitespace-normal no-underline font-bold text-base text-primary font-heading" href="https://www.libristo.nl/nl/boek/der-kleine-vampir-in-der-hoehle-des-loewen_46151820"> Der kleine Vampir in der Höhle des Löwen </a> <span class="px-2.5 mb-1.5 font-merriweatherlight text-xs"><i>Angela Sommer-Bodenburg</i></span> <span class="flex items-center px-2.5 mb-5"> <img class="w-4 h-4 mr-2 transition-all duration-100" src="https://www.libristo.nl/img/flag/lang/de.svg" alt=""> <span class="text-gray-300">/</span> <span class="ml-2 flex items-center"> <img class="w-4 h-4" src="https://www.libristo.nl/img/bindings/B.svg" alt="Boek"> </span><strong class="ml-2 font-light text-xs">Gebonden (paperback)</strong> </span> <div class="flex items-center px-2.5"> <a href="https://www.libristo.nl/nl/boek/der-kleine-vampir-in-der-hoehle-des-loewen_46151820" class="w-8 h-8 flex justify-center items-center rounded-md bg-lgreen2"> <img src="https://www.libristo.nl/img/svg/buy.svg" alt="common.buy"> </a> <span class="ml-4 text-sm font-bold text-black "> 8.30 <span class="text-gray font-normal">€</span> </span> </div> </div> </div> </div> </div> <div class="absolute inset-y-0 right-0 z-10 flex items-center"> <button @click="swiper.slideNext()" class="bg-lgreen2 text-white -mr-2 lg:-mr-8 flex justify-center items-center w-10 h-10 rounded-full shadow focus:outline-none"> <svg viewBox="0 0 20 20" fill="currentColor" class="chevron-right w-6 h-6"><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg> </button> </div> </div> </div> </div> </section> <script> dataLayer.push({ 'event': 'page_view', 'dynx_itemid': '11972083', 'dynx_pagetype': 'product', 'dynx_totalvalue': '17.11' }); </script> </div> <footer class="border-t-primary w-full bg-primary-200 text-black"> <section class="flex lg:max-w-6xl w-full py-8 lg:py-16 mx-auto px-7"> <div class="grid sm:grid-cols-2 lg:grid-cols-4 w-full gap-y-8 text-sm"> <div class="grid grid-cols-[auto_1fr] items-center gap-4.5 leading-tight"> <img class="w-9" src="https://www.libristo.nl/img/ico/heart.svg" alt=""> <span> <strong class="font-bold">24 miljoen titels</strong> <br> in 150+ talen </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.nl/img/ico/prices.svg" alt=""> <span> <strong class="font-bold">Tegen geweldige prijzen</strong> <br> voordelig en actueel </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.nl/img/ico/libroamanto.svg" alt=""> <span> <strong class="font-bold">LIBROAMANTO club</strong> <br> boordevol voordelen en cadeaus </span> </div> <div class="grid grid-cols-[auto_1fr] items-center gap-4 leading-tight"> <img class="w-9" src="https://www.libristo.nl/img/ico/customers.svg" alt=""> <span> <strong class="font-bold">2 miljoen klanten</strong> <br> bediend per jaar </span> </div> </div> </section> <div class="relative w-full pb-10 lg:py-20 bg-primary-700"> <section class="max-w-6xl w-full mx-auto flex justify-around pb-12 hidden text-center lg:block"> <span class="text-5xl text-lgreen2"></span> </section> <div class="relative"> <div class="lg:hidden absolute right-0 top-0 bottom-0 w-32 bg-gradient-to-l from-primary-700 pointer-events-none"> <img class="absolute right-4 bottom-4 w-7 z-5 animate-[scroll_4s_ease-in_infinite]" src="https://www.libristo.nl/img/svg/tap_scroll.svg" alt="scroll"> </div> <section class="max-w-full w-full snap-mandatory snap-x mx-auto flex flex-nowrap gap-12 pb-8 pt-8 lg:mb-8 overflow-x-auto lg:overflow-x-visible lg:grid lg:grid-cols-4 lg:max-w-6xl"> <div class="snap-center shrink-0 pl-8 lg:pl-0"> <h5 class="font-heading text-primary-200 font-bold">Winkelen bij ons</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.nl/nl/veelgestelde-vragen">Alles over winkelen bij ons</a> <a class="no-underline" href="https://www.libristo.nl/nl/bezorging-betaling">Bezorging en betaling</a> <a class="no-underline" href="https://www.libristo.nl/nl/algemene-voorwaarden">Algemene voorwaarden</a> </nav> </div> <div class="snap-center shrink-0"> <h5 class="font-heading text-primary-200 font-bold">Over de webshop</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.nl/nl/over-ons">Wie we zijn</a> <a class="no-underline" href="https://www.libristo.nl/nl/contact">Contacten</a> <a class="no-underline" href="https://www.libristo.nl/nl/duurzaamheid-van-boeken">Duurzaamheid van boeken</a> </nav> </div> <div class="snap-center shrink-0 pr-24 lg:pr-0"> <h5 class="font-heading text-primary-200 font-bold">Voor klanten</h5> <nav class="flex flex-col gap-1 mt-4 text-primary"> <a class="no-underline" href="https://www.libristo.nl/nl/loyaliteitsprogramma">Loyaliteitsprogramma</a> <a class="no-underline" href="https://www.libristo.nl/nl/user/orders">Status van mijn bestelling</a> <span> <a class="no-underline" href="https://www.libristo.nl/nl/artikelen-retourneren">Retourneren</a> <span class="text-gray-300 text-xs px-1">/</span> <a class="no-underline" href="https://www.libristo.nl/nl/klachten">Klacht</a> </span> </nav> </div> <div class="hidden lg:block"> <div class="font-bold font-heading text-lg text-primary-200 -mt-1.5"> Samen verder<span class="align-super leading-none"> <img class="inline h-4 -ml-2" src="https://www.libristo.nl/img/ico/primary_light_heart.svg" alt="heart"> </span></div> <div class="flex items-center justify-between mt-4"> <div class="flex items-center"> <a target="_blank" href="https://www.instagram.com/libristo_official" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_instagram.svg" alt="INSTAGRAM"> </a> <a target="_blank" href="https://www.facebook.com/Libristo.official" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_facebook.svg" alt="FACEBOOK"> </a> <a target="_blank" href="https://www.youtube.com/channel/UCqs5xjQxjJ72zSPHr3WP5Vw/featured" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_youtube.svg" alt="YOUTUBE"> </a> <a target="_blank" href="https://www.tiktok.com/@libristo" class="no-underline mr-1.5 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_tiktok.svg" alt="TIKTOK"> </a> </div> <span class="font-thin text-2xl text-white">#libristo</span> </div> <img src="https://www.libristo.nl/img/logo-new-transparent.svg" alt="LIBRISTO" class="mt-10"> </div> </section> </div> <section class="max-w-6xl w-full mx-auto lg:hidden"> <div class="px-8 text-center"> <span class="font-bold font-heading text-lg text-primary-200">Samen verder<span class="align-super"> <img class="inline h-4 -ml-2" src="https://www.libristo.nl/img/ico/primary_light_heart.svg" alt="heart"> </span></span> <div class="flex items-center justify-center gap-4 mb-10 lg:mb-0 mt-4"> <div class="flex items-center"> <a target="_blank" href="https://www.instagram.com/libristo_official" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_instagram.svg" alt="INSTAGRAM"> </a> <a target="_blank" href="https://www.facebook.com/Libristo.official" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_facebook.svg" alt="FACEBOOK"> </a> <a target="_blank" href="https://www.youtube.com/channel/UCqs5xjQxjJ72zSPHr3WP5Vw/featured" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_youtube.svg" alt="YOUTUBE"> </a> <a target="_blank" href="https://www.tiktok.com/@libristo" class="no-underline mr-2 hover:opacity-75"> <img src="https://www.libristo.nl/img/social/white_tiktok.svg" alt="TIKTOK"> </a> </div> <span class="font-thin text-2xl text-white">#libristo</span> </div> <img src="https://www.libristo.nl/img/logo-new-transparent.svg" alt="LIBRISTO" class="mt-4"> </div> </section> <section class="max-w-6xl px-4 w-full mx-auto flex flex-col gap-8 justify-between py-12 lg:py-0 lg:flex-row"> <div class="text-center lg:text-left font-light text-sm text-gray order-3 lg:order-1"> © 2008-2026 Libristo </div> <div class="text-center flex items-center flex-wrap lg:flex-nowrap gap-4 justify-center order-2 lg:order-2"> <img class="max-h-7" src="https://www.libristo.nl/img/ico/botmenu_VISA.svg" alt="VISA"> <img class="max-h-7" src="https://www.libristo.nl/img/ico/botmenu_MC.svg" alt="MC"> <img class="max-h-7" src="https://www.libristo.nl/img/ico/botmenu_GPAY.svg" alt="GPAY"> <img class="max-h-7" src="https://www.libristo.nl/img/ico/botmenu_APAY.svg" alt="APAY"> <img class="max-h-7" src="https://www.libristo.nl/img/ico/botmenu_PPAL.svg" alt="PPAL"> <div class="max-h-7" style="transform: scale(0.5);transform-origin: left;margin-top: -26px;"> <div class="smdWrapperTag"></div> </div> </div> <nav class="text-center lg:text-right flex items-center justify-center lg:justify-end text-gray-300 order-1 lg:order-3"> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.nl/nl/cookies">Cookies</a> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.nl/nl/toestemming-voor-de-verwerking-van-persoonsgegevens-en-informatie-over-de-verwerking-van-persoonsgegevens">Privacy</a> <a class="text-sm text-gray no-underline ml-4 hover:text-primary-200" href="https://www.libristo.nl/nl/toegankelijkheid">Toegankelijkheid</a> </nav> </section> </div> </footer> <div class="reveal" id="l-login" data-reveal data-animation-in="scale-in-up fast" data-animation-out="scale-out-down fast"> <div class="c-modal-content"> <p class="c-modal-heading c-heading-info is-left-aligned">Inloggen</p> <p>Log in op je account. Heb je nog geen Libristo-account? <a href="https://www.libristo.nl/nl/registration">Maak nu een account aan!</a></p> </div> <section class="l-divider-rotated">   </section> <!-- end:l-divider-rotated --> <div class="c-modal-content narrow"> <form action="https://www.libristo.nl/nl/auth/signin" method="post" class="main-form-wrap"> <input type="hidden" name="_token" value="XyAa1Aq1fAaIk1Z0FECeZrdJmgmCua8MILHSyhn9" autocomplete="off"> <div class="row mail"> <label for="email">Je e-mailadres</label><input type="email" name="email" id="email" class="is-required" placeholder="Voer je e-mailadres in"> <span class="required-info">verplicht</span> </div> <div class="row pass"> <label for="password">Je wachtwoord:</label><input type="password" name="password" class="is-required" id="password" placeholder="Voer je wachtwoord in"> <span class="required-info">verplicht <a href="#" class="show-pass"><i class="ico-eye"></i></a></span> </div> <div class="row forgot"> <a href="https://www.libristo.nl/nl/lost-password" class="c-forgot-password">Wachtwoord vergeten</a> </div> <div class="row send"> <button class="c-btn">Inloggen</button> </div> </form> </div> <div class="c-registration-cta"> <div class="c-modal-content"> <h4>Heb je geen account? Profiteer van de voordelen van een Libristo-account!</h4> <p> Met een Libristo-account heb je alles onder controle. </p> <a href="https://www.libristo.nl/nl/registration" class="c-btn">Een Libristo-account aanmaken</a> </div> </div> <button class="close-button" data-close aria-label="Close modal" type="button"> <span aria-hidden="true"><i class="ico-close"></i></span> </button> </div> <style> [x-cloak] { display: none !important; } .chat-content ul { list-style-type: disc; padding-left: 1.25rem; margin: 0.5rem 0; } .chat-content ol { list-style-type: decimal; padding-left: 1.25rem; margin: 0.5rem 0; } .chat-content li { margin: 0.25rem 0; } .chat-content p { margin: 0.5rem 0; } .chat-content p:first-child { margin-top: 0; } .chat-content p:last-child { margin-bottom: 0; } </style> <div x-data="{ open: false, isWide: true, showDisclaimer: true, messages: [], quickActions: [{"text":"Ik heb hulp nodig bij mijn bestelling","key":"order"},{"text":"Beveel me een boek aan","key":"recommend"},{"text":"Wanneer komt mijn zending aan?","key":"shipment"}], typing: false, sending: false, historyLoaded: false, rateLimited: false, userInput: '', keyboardOpen: false, viewportOffset: 0, maxChatHeight: 600, minMessageHeight: 300, initialViewportHeight: 0, getCsrfToken() { const meta = document.querySelector('meta[name=csrf-token]'); return meta ? meta.getAttribute('content') : ''; }, async apiPost(url, data = {}) { const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-CSRF-TOKEN': this.getCsrfToken(), 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(data) }); const json = await response.json(); return { ok: response.ok, status: response.status, data: json }; }, async loadHistory() { if (this.historyLoaded) return; this.typing = true; try { const response = await this.apiPost('/api/libroamiko/get-messages'); if (response.ok && response.data.success && response.data.messages) { this.messages = response.data.messages; } this.historyLoaded = true; } catch (error) { console.error('Failed to load chat history:', error); // Don't show error for initial load - just start fresh } finally { this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, async sendMessage(quickActionText = null) { const messageText = quickActionText !== null ? quickActionText : this.userInput.trim(); if (messageText === '' || this.sending || this.rateLimited) return; this.userInput = ''; this.sending = true; this.typing = true; // Optimistically add user message this.messages.push({ role: 'user', text: messageText }); this.$nextTick(() => { this.scrollToBottom(); }); try { const response = await this.apiPost('/api/libroamiko/send-message', { message: messageText }); console.log(response.data); if (response.status === 429) { this.rateLimited = true; this.messages.push({ role: 'bot', text: 'Je hebt de chatlimiet bereikt. Probeer het later opnieuw.' }); // Reset rate limit after 60 seconds setTimeout(() => { this.rateLimited = false; }, 60000); } else if (response.ok && response.data.success && response.data.message) { this.messages.push(response.data.message); } else { // Something went wrong but got a response this.messages.push({ role: 'bot', text: response.data.message || 'Sorry, er is iets misgegaan. Probeer het opnieuw.' }); } } catch (error) { console.error('Failed to send message:', error); this.messages.push({ role: 'bot', text: 'Sorry, er is iets misgegaan. Probeer het opnieuw.' }); } finally { this.sending = false; this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, async resetChat() { this.typing = true; try { const response = await this.apiPost('/api/libroamiko/reset-chat'); if (response.ok && response.data.success && response.data.messages) { this.messages = response.data.messages; } else { this.messages = []; } this.rateLimited = false; } catch (error) { console.error('Failed to reset chat:', error); this.messages.push({ role: 'bot', text: 'Resetten van de chat mislukt. Probeer het opnieuw.' }); } finally { this.typing = false; this.$nextTick(() => { this.scrollToBottom(); }); } }, handleViewportResize() { if (window.visualViewport) { // Calculate how much the viewport has shrunk (keyboard height) const layoutHeight = this.initialViewportHeight || window.innerHeight; const visibleHeight = window.visualViewport.height; const offsetTop = window.visualViewport.offsetTop || 0; this.viewportOffset = Math.max(0, layoutHeight - (visibleHeight + offsetTop)); const heightDelta = layoutHeight - visibleHeight; this.keyboardOpen = this.viewportOffset > 100 || heightDelta > 100; // keyboard threshold // Keep chat window within visible viewport on iOS keyboard const maxHeight = Math.min(600, visibleHeight - 16); this.maxChatHeight = Math.max(320, maxHeight); this.minMessageHeight = this.keyboardOpen ? 120 : 300; } }, scrollToBottom() { const container = this.$refs.messageContainer; if (container) { container.scrollTop = container.scrollHeight; } }, init() { // Do not auto-open from UTM on mobile screens. if (this.open && window.matchMedia('(max-width: 767px)').matches) { this.open = false; } if (this.open) { this.isWide = false; // Load history immediately when chat starts open (e.g. utm_source=libroamiko) this.loadHistory(); } this.$watch('open', value => { if (value) { this.isWide = false; // Load history when chat opens for the first time this.loadHistory(); } }); // Auto-collapse wide button after 10 seconds setTimeout(() => { this.isWide = false; }, 10000); // Listen for viewport changes (keyboard open/close on mobile) if (window.visualViewport) { this.initialViewportHeight = window.innerHeight; window.visualViewport.addEventListener('resize', () => this.handleViewportResize()); window.visualViewport.addEventListener('scroll', () => this.handleViewportResize()); this.handleViewportResize(); } } }" class="fixed bottom-6 right-6 z-[100] font-sans flex flex-col items-end" :style="{ bottom: keyboardOpen ? (viewportOffset + 24) + 'px' : '' }"> <!-- Chat Window --> <div x-cloak x-show="open" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-8" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-8" class="absolute bottom-0 right-0 w-[360px] max-w-[calc(100vw-3rem)] bg-white rounded-2xl shadow-xl overflow-hidden flex flex-col border border-gray-200" :style="{ maxHeight: maxChatHeight + 'px' }"> <!-- Header --> <div class="bg-navy text-white px-5 py-4 flex items-center justify-between"> <div class="flex items-center gap-3 cursor-pointer" @click="open = false"> <svg class="w-6 h-6 text-white" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> <span class="font-bold text-sm tracking-tight">Boekadviseur Libroamiko</span> </div> <div class="flex items-center gap-2"> <!-- Reset button --> <button @click="resetChat()" class="text-white hover:text-white/80 transition-colors p-1" title="Nieuw gesprek starten" :disabled="typing || sending"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/> </svg> </button> <!-- Close button --> <button @click="open = false" class="text-white/80 hover:text-white transition-colors"> <svg class="w-6 h-6 rotate-0" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.28223 8.07056L12.1411 15.9294L20 8.07056" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> </div> </div> <!-- Messages area --> <div x-ref="messageContainer" class="flex-1 overflow-y-auto p-4 space-y-4 bg-cream" :style="{ minHeight: minMessageHeight + 'px' }"> <!-- Initial disclaimer inside messages --> <template x-if="showDisclaimer"> <div class="flex justify-start"> <div class="mr-2 mt-1 shrink-0"> <div class="w-8 h-8 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div class="relative bg-white text-gray-800 rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 max-w-[85%] text-sm leading-relaxed"> <button @click="showDisclaimer = false" class="absolute top-2 right-2 text-gray-400 hover:text-gray-600 transition-colors" aria-label="Melding verbergen"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> </button> Door deze chat te gebruiken, communiceer je met generatieve kunstmatige intelligentie. Door het te gebruiken, ga je ook akkoord met de <a href="https://www.libristo.nl/nl/toestemming-voor-de-verwerking-van-persoonsgegevens-en-informatie-over-de-verwerking-van-persoonsgegevens" class="text-primary underline">verwerking van persoonsgegevens</a>. </div> </div> </template> <!-- Empty state --> <template x-if="messages.length === 0 && !typing"> <div class="flex flex-col items-center justify-center text-center text-gray-500 py-8"> <svg class="w-12 h-12 text-navy/30 mb-3" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> <p class="text-sm">Hoi! Ik ben Libroamiko, je boekadviseur.</p> <p class="text-sm">Hoe kan ik je helpen?</p> </div> </template> <template x-for="(msg, index) in messages" :key="index"> <div :class="msg.role === 'bot' ? 'flex justify-start' : 'flex justify-end'"> <!-- Bot Avatar --> <div x-show="msg.role === 'bot'" class="mr-2 shrink-0"> <div class="w-9 h-9 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm rounded-tr-none"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="18.052" height="17.8" viewBox="0 0 18.052 17.8"> <g id="Group_1600" data-name="Group 1600" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1l7.375,2.305a1.031,1.031,0,0,0,2.049,0L26.8,395.1" transform="translate(-10 -381.527)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,361.991l.327-1.445,7.266,2.306,7.266-2.306.327,1.445" transform="translate(-29.438 -348.345)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.565a1.237,1.237,0,0,1,2.39,0" transform="translate(-218.796 -410.854)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="6.3" y1="4.2" transform="translate(2.006 10.3)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="4.074" x2="6.924" transform="translate(8.244 10.426)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(1.591)"> <path id="path57" d="M-153.845-266.612s-6.822-4.111-6.822-8.679a3.192,3.192,0,0,1,3.183-3.2c2.259,0,3.638,2.284,3.638,2.284s1.379-2.284,3.638-2.284a3.192,3.192,0,0,1,3.183,3.2C-147.023-270.723-153.845-266.612-153.845-266.612Z" transform="translate(160.666 278.489)" fill="none" stroke="#033" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(4.296 3.873)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(3.126 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(6.253 0)" fill="none" stroke="#033" stroke-width="1"> <circle cx="0.977" cy="0.977" r="0.977" stroke="none"/> <circle cx="0.977" cy="0.977" r="0.477" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div :class="msg.role === 'bot' ? 'bg-white text-gray-800 rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 max-w-[85%]' : 'bg-primary-200 text-navy rounded-2xl rounded-tr-none px-4 py-3 shadow-sm max-w-[85%]'" class="text-[15px] leading-relaxed"> <div x-html="msg.text" class="chat-content"></div> </div> <!-- User Avatar --> <div x-show="msg.role === 'user'" class="ml-2 shrink-0"> <div class="w-8 h-8 rounded-full bg-primary-200 flex items-center justify-center shadow-sm rounded-tl-none"> <svg xmlns="http://www.w3.org/2000/svg" width="13.327" height="15.548" viewBox="0 0 13.327 15.548" class="text-navy"> <g id="Group_1543" data-name="Group 1543" transform="translate(-890.028 -1014.081)"> <path id="Path_343" data-name="Path 343" d="M1384.31,96.646a6.121,6.121,0,0,0-12.23,0" transform="translate(-481.504 932.435)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <path id="Path_344" data-name="Path 344" d="M1383.068,83.423a3.882,3.882,0,1,1-3.882-3.881A3.882,3.882,0,0,1,1383.068,83.423Z" transform="translate(-482.494 935.039)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> </svg> </div> </div> </div> </template> <!-- Quick actions (shown only when exactly 1 message – initial welcome from API) --> <template x-if="messages.length === 1 && !typing"> <div class="flex flex-col gap-2 w-full max-w-[280px] py-4 pl-10"> <template x-for="action in quickActions" :key="action.key"> <button @click="sendMessage(action.text)" :disabled="sending || rateLimited" class="bg-primary-200 text-navy rounded-xl px-4 py-3 text-left text-sm font-medium cursor-pointer ring-1 ring-transparent hover:bg-primary-300 hover:shadow-md hover:ring-navy/20 hover:-translate-y-px active:translate-y-0 active:shadow-sm transition-all duration-150 ease-out disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:shadow-none disabled:hover:ring-transparent disabled:hover:translate-y-0 disabled:active:translate-y-0"> <span x-text="action.text"></span> </button> </template> </div> </template> <!-- Typing Indicator --> <div x-show="typing" class="flex justify-start items-center"> <div class="mr-2 shrink-0"> <div class="w-8 h-8 rounded-full bg-white border border-gray-100 flex items-center justify-center shadow-sm"> <svg class="w-5 h-5 text-navy" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> </div> </div> <div class="bg-white rounded-2xl rounded-tl-none px-4 py-3 shadow-sm border border-gray-100 flex gap-1"> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 0ms"></span> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 150ms"></span> <span class="w-2 h-2 bg-gray rounded-full animate-pulse" style="animation-delay: 300ms"></span> </div> </div> </div> <!-- Input Area --> <div class="border-t border-gray-100 bg-white"> <div class="flex items-center px-4 py-3"> <input type="text" x-ref="chatInput" x-model="userInput" @keydown.enter="sendMessage()" @focus="handleViewportResize(); $nextTick(() => { scrollToBottom(); })" placeholder="Typ je antwoord .." :disabled="sending || rateLimited" class="w-full bg-transparent !border-none !ring-0 !outline-none !shadow-none text-base placeholder:text-gray-400 self-center mb-0 disabled:opacity-50"> <button @click="sendMessage()" class="shrink-0 p-2.5 bg-navy text-white rounded-full hover:bg-navy/90 transition-all disabled:opacity-30 disabled:cursor-not-allowed flex items-center justify-center" :disabled="!userInput.trim() || sending || rateLimited"> <svg xmlns="http://www.w3.org/2000/svg" width="19.241" height="19.241" viewBox="0 0 19.241 19.241" class=""> <g id="g291"> <g id="g293"> <g id="g295"> <g id="g301" transform="translate(9.017 0.564)"> <path id="path303" d="M0-333.094l9.661-9.661" transform="translate(0 342.755)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="g305" transform="translate(0.564 0.564)"> <path id="path307" d="M-291.457-333.095l-7.584-2.167a1.2,1.2,0,0,1-.869-1.152h0a1.219,1.219,0,0,1,.869-1.168l17.245-5.173-5.173,17.245a1.219,1.219,0,0,1-1.168.869h0a1.2,1.2,0,0,1-1.152-.869Z" transform="translate(299.91 342.755)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> </g> </g> </g> </svg> </button> </div> </div> </div> <!-- Transitioning Floating Button --> <div x-show="!open" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 scale-90" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-90" class="h-12 px-3 bg-navy rounded-xl shadow-xl flex items-center justify-center text-white group overflow-hidden relative cursor-pointer sm:h-16 sm:px-4 sm:rounded-2xl" @click="open = true" @keydown.enter.prevent="open = true" @keydown.space.prevent="open = true" role="button" tabindex="0"> <div class="absolute inset-0 bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none"></div> <div class="flex items-center gap-3 whitespace-nowrap overflow-hidden h-full sm:gap-6"> <!-- Icon always visible - clicking opens chat --> <div class="shrink-0 flex items-center justify-center cursor-pointer" @click="open = true"> <svg class="w-6 h-6 text-primary-200 transition-all duration-300 sm:w-8 sm:h-8" xmlns="http://www.w3.org/2000/svg" width="25.253" height="25" viewBox="0 0 25.253 25"> <g id="Group_1596" data-name="Group 1596" transform="translate(-1104.008 -564.5)"> <g id="Group_1579" data-name="Group 1579" transform="translate(1104.635 565)"> <path id="Path_1090" data-name="Path 1090" d="M10,395.1,20.537,398.4a1.472,1.472,0,0,0,2.927,0L34,395.1" transform="translate(-10 -375.707)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1091" data-name="Path 1091" d="M30.244,362.61l.467-2.064,10.381,3.294,10.381-3.294.467,2.064" transform="translate(-29.092 -343.115)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <path id="Path_1092" data-name="Path 1092" d="M226,426.958a1.767,1.767,0,0,1,3.414,0" transform="translate(-215.708 -404.514)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" fill-rule="evenodd"/> <line id="Line_385" data-name="Line 385" x1="9" y1="6" transform="translate(2.865 14.715)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <line id="Line_386" data-name="Line 386" y1="5.82" x2="9.891" transform="translate(11.778 14.894)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> <g id="g55" transform="translate(2.273)"> <path id="path57" d="M-150.921-261.521s-9.745-5.873-9.745-12.4a4.56,4.56,0,0,1,4.548-4.568c3.227,0,5.2,3.263,5.2,3.263s1.971-3.263,5.2-3.263a4.56,4.56,0,0,1,4.548,4.568C-141.176-267.394-150.921-261.521-150.921-261.521Z" transform="translate(160.666 278.489)" fill="none" stroke="#cbffcb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/> </g> <g id="Group_1553" data-name="Group 1553" transform="translate(6.138 5.534)"> <g id="Ellipse_101" data-name="Ellipse 101" transform="translate(0 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_102" data-name="Ellipse 102" transform="translate(4.466 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> <g id="Ellipse_103" data-name="Ellipse 103" transform="translate(8.933 0)" fill="none" stroke="#cbffcb" stroke-width="1"> <circle cx="1.396" cy="1.396" r="1.396" stroke="none"/> <circle cx="1.396" cy="1.396" r="0.896" fill="none"/> </g> </g> </g> </g> </svg> </div> <div x-show="isWide && !open" class="flex items-center justify-center" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- Text visible only when wide - clicking opens chat --> <span class="font-normal text-xs text-white inline-block cursor-pointer truncate max-w-[w-screen-42px] sm:text-sm sm:max-w-none" @click="open = true"> Hoi, ik ben Libroamiko, kan ik helpen? </span> <!-- Close icon for wide variant - only collapses --> <div class="ml-2 flex items-center justify-center w-7 h-7 hover:bg-white/10 rounded-full transition-colors cursor-pointer sm:w-8 sm:h-8" @click.stop="isWide = false"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 sm:w-8 sm:h-8" stroke="currentColor" stroke-width="1"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> </svg> </div> </div> </div> </div> </div> </div> <script> var appSessionId = 'Wb9htcsV3dLGO1PX3IrnTIAG5qrLfCxS'; var site = { country: 'nl', locale: 'nl', preferred_language: ["en","de","es","fr","it","uk"], cur: 'EUR', convertor: 24.165, tld: 'nl', priceSet: 'nl' }; var trans = { back: 'Terug', allLangs: 'Alle talen', moreLanguages: 'Andere talen' } </script> <!-- Scripts --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script> <script src="https://www.libristo.nl/js/utils.js?v1"></script> <script src="https://www.libristo.nl/js/app.js?v6"></script> <script src="https://www.libristo.nl/js/ga4.js?v5220"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/tippy.js@6.3.7/dist/tippy.umd.min.js"></script> <script> tippy('[data-tippy-content]', { placement: 'bottom', theme: "light", }); tippy('[data-tippy-green]', { content(reference) { return reference.getAttribute('data-tippy-green-content'); }, placement: "right", theme: "darkgreen", trigger: "mouseenter click", }) </script> <script> const data = { product: { id: "11972083", marketing_video: "https://www.youtube.com/watch?v=JIpAdfSm4jQ" } } </script> <script> setTimeout(() => { dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ event: "view_item", ecommerce: { currency: 'EUR', value: 0, items: [{ item_id: "11972083", item_name: "Der Ring.", currency: "EUR", item_variant: "Boek", price: 17.10655907304, item_category: "f:B", item_category2: "c:NH", item_category3: "a:instock_s:high_d:new_l:en_v:kwb_x:200", quantity: 1 }] } }); }, 500); setTimeout(() => { dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object. dataLayer.push({ event: "view_item_list", ecommerce: { items: [ { item_id: "44959072", item_name: "Forgotten Women", currency: "EUR", item_variant: "E-book", price: 4.3451272501552 } , { item_id: "02003473", item_name: "Materials Issues for Generation IV Systems", currency: "EUR", item_variant: "Boek", price: 354.37864680323 } , { item_id: "17508429", item_name: "Come and See What God Has Done!: Before, Then and Beyond --", currency: "EUR", item_variant: "Boek", price: 8.5987999172357 } , { item_id: "17612321", item_name: "Frack You", currency: "EUR", item_variant: "Boek", price: 10.320711773226 } , { item_id: "17859702", item_name: "Easy Guide: Blue Coat Certified Proxy Professional: Questions and Answers", currency: "EUR", item_variant: "Boek", price: 13.055245189323 } , { item_id: "24034441", item_name: "The Botanical Atlas", currency: "EUR", item_variant: "Boek", price: 11.738878543348 } , { item_id: "34147842", item_name: "Londres avec toi", currency: "EUR", item_variant: "Boek", price: 17.916821849783 } , { item_id: "48869571", item_name: "Non-State Actors and Foreign Policy Agency", currency: "EUR", item_variant: "Boek", price: 133.98717152907 } ] } }); }, 750); </script> <script> const infobarBtns = document.querySelectorAll('[data-close-infobar]'); infobarBtns.forEach(infobarBtn => { infobarBtn.addEventListener('click', () => { document.querySelector("[data-infobar]").remove(); // add cookie named infobar to 1 document.cookie = "infobar_1829=1; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"; }); }) </script> </body> </html>