vviinn-widgets 2.20.21 → 2.20.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cjs/highlight-box_22.cjs.entry.js +8 -2
  2. package/dist/cjs/{package-1c24894e.js → package-878998c1.js} +1 -1
  3. package/dist/cjs/vviinn-carousel_3.cjs.entry.js +1 -1
  4. package/dist/cjs/vviinn-vpr-button.cjs.entry.js +1 -1
  5. package/dist/cjs/vviinn-vps-button.cjs.entry.js +1 -1
  6. package/dist/cjs/vviinn-vps-widget.cjs.entry.js +1 -1
  7. package/dist/collection/components/vviinn-modal/vviinn-modal.css +20 -2
  8. package/dist/collection/components/vviinn-modal/vviinn-modal.js +11 -1
  9. package/dist/esm/highlight-box_22.entry.js +8 -2
  10. package/dist/esm/package-39382be9.js +3 -0
  11. package/dist/esm/vviinn-carousel_3.entry.js +1 -1
  12. package/dist/esm/vviinn-vpr-button.entry.js +1 -1
  13. package/dist/esm/vviinn-vps-button.entry.js +1 -1
  14. package/dist/esm/vviinn-vps-widget.entry.js +1 -1
  15. package/dist/types/components/vviinn-modal/vviinn-modal.d.ts +1 -0
  16. package/{www/build/p-1aa66c1a.entry.js → dist/vviinn-widgets/p-43ed48b7.entry.js} +1 -1
  17. package/dist/vviinn-widgets/{p-e5fbf695.entry.js → p-4be72c1f.entry.js} +1 -1
  18. package/dist/vviinn-widgets/p-6c073c50.js +1 -0
  19. package/dist/vviinn-widgets/p-a7dc9a99.entry.js +1 -0
  20. package/{www/build/p-4cb106e3.entry.js → dist/vviinn-widgets/p-bf744768.entry.js} +1 -1
  21. package/dist/vviinn-widgets/{p-ab973311.entry.js → p-fc8609e7.entry.js} +1 -1
  22. package/dist/vviinn-widgets/vviinn-widgets.esm.js +1 -1
  23. package/package.json +2 -2
  24. package/www/build/p-2ff379a7.js +161 -0
  25. package/{dist/vviinn-widgets/p-1aa66c1a.entry.js → www/build/p-43ed48b7.entry.js} +1 -1
  26. package/www/build/{p-e5fbf695.entry.js → p-4be72c1f.entry.js} +1 -1
  27. package/www/build/p-6c073c50.js +1 -0
  28. package/www/build/p-a7dc9a99.entry.js +1 -0
  29. package/{dist/vviinn-widgets/p-4cb106e3.entry.js → www/build/p-bf744768.entry.js} +1 -1
  30. package/www/build/p-e0153ae2.css +6 -0
  31. package/www/build/{p-ab973311.entry.js → p-fc8609e7.entry.js} +1 -1
  32. package/www/build/vviinn-widgets.esm.js +1 -1
  33. package/www/index.html +1 -1
  34. package/dist/esm/package-4909a9ed.js +0 -3
  35. package/dist/vviinn-widgets/p-6a189f8f.js +0 -1
  36. package/dist/vviinn-widgets/p-a1c3ccce.entry.js +0 -1
  37. package/www/build/p-3fe5816c.js +0 -1
  38. package/www/build/p-6a189f8f.js +0 -1
  39. package/www/build/p-a1c3ccce.entry.js +0 -1
  40. package/www/build/p-a67898be.css +0 -1
@@ -1 +1 @@
1
- import{r as t,h as i,H as e,g as s,c as n,F as r}from"./p-fa17e81f.js";import{_ as o,O as a,S as c,a as h,E as d,i as l,s as u,c as p,m as v,f as g,g as m,b as f,A as b,d as y,e as w,h as x,p as k,T as C,j as I}from"./p-90e24b10.js";import{C as P}from"./p-60ea7665.js";import{c as _,f as T,a as R}from"./p-badde98c.js";import{v as S}from"./p-6a189f8f.js";import{h as j,t as V,p as E}from"./p-3b99c62d.js";import{c as $,a as A,v as N,b as O,d as z}from"./p-c8b070c2.js";const L="--vviinn-carousel-image-width",W="items-group",D=class{constructor(i){t(this,i),this.columns=0,this.resizeObserver=new ResizeObserver((()=>this.handleResize())),this.mutationObserver=new MutationObserver((()=>this.cloneSlottedContent())),this.isLastGroup=()=>this.activeContentGroup===this.getContentGroups().length-1&&"grid"===this.mode,this.isFirstGroup=()=>0===this.activeContentGroup&&"grid"===this.mode,this.moveDirection="right",this.contentGroups=[],this.activeContentGroup=0,this.isRTL=!1,this.mode="continuity",this.imageWidth=140,this.showScroll=!0,this.campaignTypeId=void 0,this.widgetElementId=void 0,this.gridArrowsDynamic=void 0,this.recommendations=[],this.widgetVersion=void 0}componentWillLoad(){this.isRTL="rtl"===document.dir}connectedCallback(){this.setItemWidth()}disconnectedCallback(){this.resizeObserver.disconnect()}componentDidLoad(){this.setWidth(),this.processScrollbarWidth(),this.columns=this.getColumnsNumber();const t=this.el.querySelector(".content");this.mutationObserver.observe(t,{subtree:!0,childList:!0}),this.resizeObserver.observe(this.getHostParent())}getItemWidthFromDocument(){return parseInt(getComputedStyle(document.body).getPropertyValue(L))}setItemWidth(){const t=this.getItemWidthFromDocument(),i=isNaN(t)?this.imageWidth:t;this.el.style.setProperty(L,`${i}px`)}getContentClassMap(){return{content:!0,[this.moveDirection]:!0,[this.mode]:!0,"show-scrollbar":this.showScroll}}handleResize(){this.setWidth(),this.processScrollbarWidth(),this.setItemWidth();const t=this.getColumnsNumber();t!==this.columns&&(this.columns=t)}calculateMoveStep(){const t=this.getContent().map((t=>t.getBoundingClientRect().width));return t.reduce(((t,i)=>t+i),0)/t.length}getHostParent(){return this.el.parentNode.host.parentElement}setWidth(){const t=this.getHostParent();if(!t)return;const i=getComputedStyle(t),e=t.getBoundingClientRect().width-(parseInt(i["padding-right"])+parseInt(i["padding-left"]));this.el.style.setProperty("--vviinn-carousel-content-width",`${e}px`)}getParent(){return this.el.parentNode.host.parentElement}cloneSlottedContent(){this.setWidth()}getActiveGroupIndex(){var t,i;if(!(null===(i=null===(t=this.getContentNode())||void 0===t?void 0:t.getBoundingClientRect())||void 0===i?void 0:i.left))return 0;const e=this.getContentGroups().map((t=>t.getBoundingClientRect().left)).map(((t,i)=>[t,i])).filter((t=>t[0]>=0));return e.length>0?this.isRTL?e[e.length-1][1]:e[0][1]:0}getContentNode(){return this.el.querySelector(".content")}getContent(){const t=this.getContentNode().children;return Array.from(t).map((t=>t))}getColumnsNumber(){const t=getComputedStyle(this.el).getPropertyValue("--vviinn-carousel-columns-internal"),i=parseInt(t);return i&&!isNaN(i)?i:4}getContentGroups(){return Array.from(this.el.querySelectorAll(`.${W}`))}showNext(){this.moveDirection="right";const t=this.getContentNode();requestAnimationFrame((()=>{t.scrollTo({top:0,left:t.scrollLeft+this.calculateMoveStep(),behavior:"smooth"})}))}showPrev(){this.moveDirection="left";const t=this.getContentNode();requestAnimationFrame((()=>{t.scrollTo({top:0,left:t.scrollLeft-this.calculateMoveStep(),behavior:"smooth"})}))}scroll(t){const i=this.getContentNode();requestAnimationFrame((()=>{i.scrollTo({top:0,left:this.calculateMoveStep()*t,behavior:"smooth"})}))}processScrollbarWidth(){const t=this.getContentNode();t&&(this.el.style.setProperty("--vviinn-progressbar-width",t.clientWidth*((t.scrollLeft+t.clientWidth)/t.scrollWidth)+"px"),this.activeContentGroup=this.getActiveGroupIndex())}showBullets(){return"grid"===this.mode&&this.showScroll}showScrollbar(){return"continuity"===this.mode&&this.showScroll}getClassMap(){return{[this.mode]:!0,"show-scrollbar":this.showScrollbar()}}renderRecommendation(t,e){return i("vviinn-product-card",{part:"product-part",productId:t.productId,productTitle:t.title,productType:t.productType,deeplink:t.deeplink,image:t.image.thumbnail,brand:t.brand,imageWidth:this.imageWidth,imageRatio:1,price:t.price.actual,salePrice:t.price.sale,responsive:"grid"===this.mode,dimmedBackground:"continuity"===this.mode,campaignTypeId:this.campaignTypeId,index:e,widgetElementId:this.widgetElementId,widgetVersion:this.widgetVersion})}renderRecommendationGroup(t){return i("div",{class:W,part:"items-group"},...t)}renderRecommendationGroups(t){return t.map((t=>this.renderRecommendationGroup(t)))}renderRecommendations(){return"grid"===this.mode?this.renderGrid():this.renderRecommendationsElements()}renderRecommendationsElements(){return this.recommendations.map(((t,i)=>this.renderRecommendation(t,i)))}renderGrid(){const t=this.renderRecommendationsElements(),i=o.chunksOf(this.getColumnsNumber())(t);return this.renderRecommendationGroups(i)}renderBullets(){const t=Math.ceil(this.recommendations.length/this.getColumnsNumber());return Array.from(Array(t).keys()).map((t=>i("div",{class:{bullet:!0,active:this.activeContentGroup===t},onClick:()=>this.scroll(t)})))}render(){return i(e,{class:this.getClassMap()},i("div",{class:Object.assign({body:!0},this.getClassMap())},i("button",{class:"prev",onClick:()=>this.showPrev(),part:"carousel-button",disabled:this.gridArrowsDynamic&&this.isFirstGroup()},i(P,null)),i("div",{class:this.getContentClassMap(),onScroll:()=>this.processScrollbarWidth()},this.renderRecommendations()),i("button",{class:"next",onClick:()=>this.showNext(),part:"carousel-button",disabled:this.gridArrowsDynamic&&this.isLastGroup()},i(P,null))),this.showBullets()&&i("div",{class:"bullets"},this.renderBullets()))}get el(){return s(this)}};D.style=":host{--vviinn-progressbar-width:0;--vviinn-carousel-item-width:150px;--vviinn-carousel-columns-internal:var(--vviinn-carousel-columns, 4);--vviinn-carousel-image-width-system:140px}.body{display:flex;position:relative;width:var(--vviinn-carousel-content-width);flex-direction:column}.content-wrapper *{box-sizing:border-box}.content-wrapper{overflow-y:hidden;overflow-x:auto;flex-grow:1}.bullets{margin-top:16px;display:flex;flex-direction:row;grid-gap:24px;justify-content:center}.bullet{width:10px;height:10px;background:#e0e0e0;border-radius:50%;cursor:pointer}.bullet.active{background:#161616}.content:not(.show-scrollbar),.content.grid{scrollbar-color:#fff0 #fff0}.content:not(.show-scrollbar)::-webkit-scrollbar,.content.grid::-webkit-scrollbar{opacity:0}.content{display:flex;flex-direction:row;grid-gap:8px;overflow-y:hidden;overflow-x:auto;flex-grow:1;padding-bottom:16px}.content.left>*{scroll-snap-align:start}.content.right>*{scroll-snap-align:end}:host(.continuity) button{border-radius:2px}:host(.grid) button{border-radius:50%}button{align-items:center;background-color:white;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);cursor:pointer;display:grid;height:40px;justify-items:center;position:absolute;top:calc(50% - 20px);width:40px;z-index:1;padding:0;margin:0}button{fill:#525252}button:disabled{display:none}button.prev svg{transform:rotate(180deg);margin-left:-5px}.prev{left:0}.next{right:0}.items-group{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--vviinn-carousel-columns-internal), 1fr);min-width:100%}vviinn-product-card::part(price-container){text-align:center}:host(.classic) vviinn-product-card::part(title),:host(.classic) vviinn-product-card::part(brand),:host(.classic) vviinn-product-card::part(type){text-align:center}@media (max-width: 480px){:host(.modern) button{display:none}.items-group{grid-template-columns:repeat(2, 1fr)}}";class M{sendImpression(t){var i,e,s;gtag("event","view_item_list",{items:[{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list_name:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}]})}sendClick(t){var i,e,s;gtag("event","select_content",{content_type:"product",items:[{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list_name:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}]})}}class F{constructor(){ga("require","ec")}convertProduct(t){var i,e,s;return{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}}sendImpression(t){ga("ec:addImpression",this.convertProduct(t))}sendClick(t){var i,e,s;ga("ec:addProduct",{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}),ga("ec:setAction","click",{list:"VI VPR View"})}}const B=a.getMonoid(c.first()).concat(h.pipe(a.fromNullable(window.gtag),a.map((()=>new M))),h.pipe(a.fromNullable(window.ga),a.map((()=>new F))));function U(t,i,e){return function(s){for(var n=Array(e.length+1),r=0;r<e.length;r++)n[r]=e[r];return n[e.length]=s,0===i?t.apply(null,n):U(t,i-1,n)}}var G={1:function(t){return[t]},2:function(t){return function(i){return[t,i]}},3:function(t){return function(i){return function(e){return[t,i,e]}}},4:function(t){return function(i){return function(e){return function(s){return[t,i,e,s]}}}},5:function(t){return function(i){return function(e){return function(s){return function(n){return[t,i,e,s,n]}}}}}};function q(t){return j.call(G,t)||(G[t]=U(V,t-1,[])),G[t]}const H=/fit\/\d+\//,J=(t,i)=>h.pipe((t=>h.pipe(t.match(H),d.fromNullable(t),d.map((()=>t))))(t),d.map((t=>t.replace(H,`fit/${i}/`))),d.getOrElse((()=>t))),K=(t,e)=>t.deeplink?i("a",{class:t.part,part:t.part,href:t.deeplink},e):e,Q=t=>{const e=t.priceType,s=new Intl.NumberFormat(t.locale,{minimumFractionDigits:2}).format(t.price),n=t.prefix?i("span",{part:"price-prefix"},t.prefix+" "):null,r=t.currency?i("span",{part:"currency"}," "+t.currency):null;return i("span",{class:"price-amount",part:"price-amount"+(e?"-"+e:"")},n,s,r)},X=t=>i("span",{class:"price-container",part:"price-container"},t.salePrice?[i("span",{class:"price-sale",part:"price-sale"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.salePrice,locale:t.locale,priceType:"sale"})),i("span",{class:"price-outdated",part:"price-outdated"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.price,locale:t.locale,priceType:"outdated"}))]:i("span",{class:"price-regular",part:"price-regular"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.price,locale:t.locale,priceType:"regular"}))),Y=class{constructor(i){t(this,i),this.vviinnProductLoad=n(this,"vviinnProductLoad",7),this.vviinnProductView=n(this,"vviinnProductView",7),this.vviinnProductClick=n(this,"vviinnProductClick",7),this.productData=null,this.intersectionObserver=new IntersectionObserver(this.intersectionCallback.bind(this),{threshold:1}),this.brand=void 0,this.currency=void 0,this.deeplink=void 0,this.image=void 0,this.imageRatio=1,this.imageWidth=200,this.locale=void 0,this.price=void 0,this.pricePrefix=void 0,this.productId=void 0,this.productTitle=void 0,this.productType=void 0,this.salePrice=void 0,this.responsive=!1,this.dimmedBackground=!1,this.campaignTypeId=void 0,this.widgetElementId=void 0,this.buttonElementId=void 0,this.widgetVersion=void 0,this.index=0,this.imageLoaded=!1}connectedCallback(){this.productData=this.getProductData()}getWidgetType(){return"VPR"===this.campaignTypeId||"VCS"===this.campaignTypeId?"VPR":"VPS"}getProductData(){var t;return{productId:this.productId,productRank:this.index,productName:this.productTitle,productType:this.productType,widgetType:this.getWidgetType(),campaignTypeId:this.campaignTypeId,campaignTypeName:_[this.campaignTypeId],widgetId:null!==(t=this.buttonElementId)&&void 0!==t?t:this.widgetElementId,widgetVersion:this.widgetVersion}}intersectionCallback(t){t.some((t=>t.isIntersecting))&&(h.pipe(B,a.map((t=>t.sendImpression(this.getProduct())))),this.vviinnProductView.emit(this.productData),this.intersectionObserver.disconnect())}componentDidLoad(){this.vviinnProductLoad.emit(this.productData),this.intersectionObserver.observe(this.el),this.el.shadowRoot.querySelectorAll("a").forEach((t=>t.addEventListener("click",(t=>{t.preventDefault(),t.stopImmediatePropagation(),this.vviinnProductClick.emit(this.productData),h.pipe(B,a.match((()=>null),(t=>t.sendClick(this.getProduct()))))}))))}getProduct(){return l.results.find((t=>t.productId===this.productId))}renderImage(){const t={width:this.imageWidth,height:this.imageWidth*this.imageRatio,src:this.image,title:this.productTitle,lazy:!1};return this.responsive?((t,e=(()=>{}))=>i("picture",null,i("img",{loading:t.lazy?"lazy":"eager",part:"image",class:"image responsive",src:J(t.src,t.width),alt:t.title,onLoad:e})))(t):((t,e=(()=>{}))=>i("picture",null,i("img",{loading:t.lazy?"lazy":"eager",part:"image",class:"image",width:t.width,height:t.height,src:J(t.src,t.width),alt:t.title,onLoad:e})))(t)}render(){var t,s,n;return i(e,{part:"product-card",class:{dimmed:this.dimmedBackground},exportparts:"brand, currency, deeplink, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title"},i(K,{deeplink:this.deeplink,part:"image-link"},this.renderImage()),i(K,{deeplink:this.deeplink,part:"deeplink"},i("span",{class:"title",part:"title"},this.productTitle)),i("span",{class:"brand",part:"brand"},this.brand),i("span",{class:"type",part:"type"},this.productType),i(X,{prefix:null!==(t=this.pricePrefix)&&void 0!==t?t:u.pricePrefix,currency:null!==(s=this.currency)&&void 0!==s?s:u.currencySign,price:this.price,salePrice:this.salePrice,locale:null!==(n=this.locale)&&void 0!==n?n:u.locale}))}get el(){return s(this)}};Y.style=':host{align-items:center;display:flex;flex-direction:column;gap:8px;height:100%}.price-container{display:flex;flex-direction:column}.price-sale,.price-regular{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#161616}.price-outdated{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#757575;text-decoration:line-through}.product-type{word-wrap:anywhere}.image{display:grid;align-content:center;-o-object-position:50% 50%;object-position:50% 50%;-o-object-fit:contain;object-fit:contain;text-align:center;box-sizing:border-box}img.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;margin-bottom:8px;overflow:hidden}.deeplink{text-decoration:none}.image-link{display:contents}picture{position:relative;width:100%}:host(.dimmed) picture::before{content:"";width:100%;height:100%;box-sizing:border-box;background:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}';const Z=h.flow((t=>`Bearer ${t}`),(t=>new Headers({Authorization:t})),(t=>({headers:t}))),tt=(it=b,function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];for(var e=t.length,s=q(e),n=it.map(t[0],s),r=1;r<e;r++)n=it.ap(n,t[r]);return n});var it;const et=(t,i={})=>E(tt(m(),f),g,p(v(t,i))),st=t=>i=>e=>s=>n=>{const r=h.pipe(s,y(encodeURIComponent),w((()=>{const s=[];i&&s.push(`color=${i}`),e&&s.push(e);const n=x(s);return`product/${t}/similar-products${n}`}),(s=>{const n=[];s&&n.push(`campaigns=${s}`),i&&n.push(`color=${i}`),e&&n.push(e);const r=x(n);return`product/${t}/similar-products${r}`})));return et(r,n)},nt=t=>i=>e=>s=>n=>{const r=h.pipe(s,y(encodeURIComponent),w((()=>{const s=[];i&&s.push(`color=${i}`),e&&s.push(e);const n=x(s);return`product/${t}/cross-selling-products${n}`}),(s=>{const n=[];s&&n.push(`campaigns=${s}`),i&&n.push(`color=${i}`),e&&n.push(e);const r=x(n);return`product/${t}/cross-selling-products${r}`})));return et(r,n)};function rt(t){return"function"==typeof t}function ot(t){const i=t((t=>{Error.call(t),t.stack=(new Error).stack}));return i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i}const at=ot((t=>function(i){t(this),this.message=i?`${i.length} errors occurred during unsubscription:\n${i.map(((t,i)=>`${i+1}) ${t.toString()}`)).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=i}));function ct(t,i){if(t){const e=t.indexOf(i);0<=e&&t.splice(e,1)}}class ht{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:i}=this;if(i)if(this._parentage=null,Array.isArray(i))for(const t of i)t.remove(this);else i.remove(this);const{initialTeardown:e}=this;if(rt(e))try{e()}catch(i){t=i instanceof at?i.errors:[i]}const{_finalizers:s}=this;if(s){this._finalizers=null;for(const i of s)try{ut(i)}catch(i){t=null!=t?t:[],i instanceof at?t=[...t,...i.errors]:t.push(i)}}if(t)throw new at(t)}}add(t){var i;if(t&&t!==this)if(this.closed)ut(t);else{if(t instanceof ht){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(i=this._finalizers)&&void 0!==i?i:[]).push(t)}}_hasParent(t){const{_parentage:i}=this;return i===t||Array.isArray(i)&&i.includes(t)}_addParent(t){const{_parentage:i}=this;this._parentage=Array.isArray(i)?(i.push(t),i):i?[i,t]:t}_removeParent(t){const{_parentage:i}=this;i===t?this._parentage=null:Array.isArray(i)&&ct(i,t)}remove(t){const{_finalizers:i}=this;i&&ct(i,t),t instanceof ht&&t._removeParent(this)}}ht.EMPTY=(()=>{const t=new ht;return t.closed=!0,t})();const dt=ht.EMPTY;function lt(t){return t instanceof ht||t&&"closed"in t&&rt(t.remove)&&rt(t.add)&&rt(t.unsubscribe)}function ut(t){rt(t)?t():t.unsubscribe()}const pt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},vt={setTimeout(t,i,...e){const{delegate:s}=vt;return(null==s?void 0:s.setTimeout)?s.setTimeout(t,i,...e):setTimeout(t,i,...e)},clearTimeout(t){const{delegate:i}=vt;return((null==i?void 0:i.clearTimeout)||clearTimeout)(t)},delegate:void 0};function gt(){}const mt=ft("C",void 0,void 0);function ft(t,i,e){return{kind:t,value:i,error:e}}function bt(t){t()}class yt extends ht{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,lt(t)&&t.add(this)):this.destination=_t}static create(t,i,e){return new Ct(t,i,e)}next(t){this.isStopped?Pt(function(t){return ft("N",t,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Pt(ft("E",void 0,t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Pt(mt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const wt=Function.prototype.bind;function xt(t,i){return wt.call(t,i)}class kt{constructor(t){this.partialObserver=t}next(t){const{partialObserver:i}=this;if(i.next)try{i.next(t)}catch(t){It(t)}}error(t){const{partialObserver:i}=this;if(i.error)try{i.error(t)}catch(t){It(t)}else It(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(t){It(t)}}}class Ct extends yt{constructor(t,i,e){let s;if(super(),rt(t)||!t)s={next:null!=t?t:void 0,error:null!=i?i:void 0,complete:null!=e?e:void 0};else{let i;this&&pt.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),s={next:t.next&&xt(t.next,i),error:t.error&&xt(t.error,i),complete:t.complete&&xt(t.complete,i)}):s=t}this.destination=new kt(s)}}function It(t){var i;i=t,vt.setTimeout((()=>{const{onUnhandledError:t}=pt;if(!t)throw i;t(i)}))}function Pt(t,i){const{onStoppedNotification:e}=pt;e&&vt.setTimeout((()=>e(t,i)))}const _t={closed:!0,next:gt,error:function(t){throw t},complete:gt},Tt="function"==typeof Symbol&&Symbol.observable||"@@observable";function Rt(t){return t}class St{constructor(t){t&&(this._subscribe=t)}lift(t){const i=new St;return i.source=this,i.operator=t,i}subscribe(t,i,e){const s=(n=t)&&n instanceof yt||function(t){return t&&rt(t.next)&&rt(t.error)&&rt(t.complete)}(n)&&lt(n)?t:new Ct(t,i,e);var n;return bt((()=>{const{operator:t,source:i}=this;s.add(t?t.call(s,i):i?this._subscribe(s):this._trySubscribe(s))})),s}_trySubscribe(t){try{return this._subscribe(t)}catch(i){t.error(i)}}forEach(t,i){return new(i=jt(i))(((i,e)=>{const s=new Ct({next:i=>{try{t(i)}catch(t){e(t),s.unsubscribe()}},error:e,complete:i});this.subscribe(s)}))}_subscribe(t){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(t)}[Tt](){return this}pipe(...t){return(0===(i=t).length?Rt:1===i.length?i[0]:function(t){return i.reduce(((t,i)=>i(t)),t)})(this);var i}toPromise(t){return new(t=jt(t))(((t,i)=>{let e;this.subscribe((t=>e=t),(t=>i(t)),(()=>t(e)))}))}}function jt(t){var i;return null!==(i=null!=t?t:pt.Promise)&&void 0!==i?i:Promise}St.create=t=>new St(t);const Vt=ot((t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}));class Et extends St{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const i=new $t(this,this);return i.operator=t,i}_throwIfClosed(){if(this.closed)throw new Vt}next(t){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(t)}}))}error(t){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:i}=this;for(;i.length;)i.shift().error(t)}}))}complete(){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}}))}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:i,isStopped:e,observers:s}=this;return i||e?dt:(this.currentObservers=null,s.push(t),new ht((()=>{this.currentObservers=null,ct(s,t)})))}_checkFinalizedStatuses(t){const{hasError:i,thrownError:e,isStopped:s}=this;i?t.error(e):s&&t.complete()}asObservable(){const t=new St;return t.source=this,t}}Et.create=(t,i)=>new $t(t,i);class $t extends Et{constructor(t,i){super(),this.destination=t,this.source=i}next(t){var i,e;null===(e=null===(i=this.destination)||void 0===i?void 0:i.next)||void 0===e||e.call(i,t)}error(t){var i,e;null===(e=null===(i=this.destination)||void 0===i?void 0:i.error)||void 0===e||e.call(i,t)}complete(){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===i||i.call(t)}_subscribe(t){var i,e;return null!==(e=null===(i=this.source)||void 0===i?void 0:i.subscribe(t))&&void 0!==e?e:dt}}var At=function(t,i){var e={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(e[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)i.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(e[s[n]]=t[s[n]])}return e};const Nt=class{constructor(i){t(this,i),this.vviinnWidgetLoad=n(this,"vviinnWidgetLoad",7),this.vviinnProductLoad=n(this,"vviinnProductLoad",7),this.vviinnProductClick=n(this,"vviinnProductClick",7),this.vviinnProductView=n(this,"vviinnProductView",7),this.vviinnNoResult=n(this,"vviinnNoResult",7),this.vviinnRecommendationsLoaded=n(this,"vviinnRecommendationsLoaded",7),this.vviinnWidgetOpen=n(this,"vviinnWidgetOpen",7),this.productImageLoadedSubject=new Et,this.setTrackingDeactivated=t=>{"rejected"===t.status&&(this.trackingDeactivated=!0)},this.blockTitle="Recommended products",this.imageRatio=1,this.imageWidth=300,this.productId=void 0,this.token=void 0,this.currencySign="€",this.pricePrefix="",this.mode="continuity",this.campaignType="VPR",this.locale="de-DE",this.campaigns="",this.color="",this.gridArrowsDynamic=!1,this.noResultText="No results! Please, try again later.",this.noResultShow=!0,this.showScroll=!0,this.cssUrl=null,this.excluded="",this.productDetailNewTab=!1,this.apiPath="https://api.vviinn.com",this.useCarousel=!0,this.showingInButton=!1,this.buttonElementId=void 0,this.recommendations=[],this.trackingDeactivated=!1,this.hasErrorOnLoad=!1}getEventData(){return{widgetType:"VPR",campaignTypeId:this.campaignType,campaignTypeName:_[this.campaignType],widgetId:this.id,widgetVersion:S}}handleOpenLink(t){this.productDetailNewTab?window.open(t):window.location.href=t}handleProductIdChange(){this.getRecommendations()}handleCampaignTypeChange(){this.getRecommendations()}handleCampaignsChange(){this.getRecommendations()}handleApiPathChange(t){u.apiPath=t,this.getRecommendations()}handleProductLoading({detail:t}){this.productImageLoadedSubject.next(t.productId)}trackProductView({detail:t}){if(this.trackingDeactivated)return;const{productRank:i,productId:e}=t,s=At(t,["productRank","productId","productName","widgetType","widgetId","campaignTypeId","campaignTypeName"]),n=$(Object.assign({session_id:this.uiSessionId,rank:i,product:e},s));this.trackingApi.trackEvent(n).then(this.setTrackingDeactivated)}async trackProductClick({detail:t}){const{productRank:i,productId:e}=t,s=At(t,["productRank","productId","productName","widgetType","widgetId","campaignTypeId","campaignTypeName"]),n=A(Object.assign({session_id:this.uiSessionId,rank:i,product:e},s)),r=this.recommendations.find((i=>i.productId===t.productId));r&&r.deeplink&&(this.trackingDeactivated?this.handleOpenLink(r.deeplink):await this.trackingApi.trackEvent(n).then(this.setTrackingDeactivated).finally((()=>{this.handleOpenLink(r.deeplink)})))}connectedCallback(){var t;if(u.apiPath=this.apiPath,u.currencySign=this.currencySign,u.locale=this.locale,this.id=null!==(t=this.buttonElementId)&&void 0!==t?t:this.el.id,this.uiSessionId=N(),this.trackingApi=O(this.apiPath,this.token),this.trackingDeactivated)return;const i=z({action:"open",session_id:this.uiSessionId});this.trackingApi.trackEvent(i).then(this.setTrackingDeactivated)}disconnectedCallback(){if(this.trackingDeactivated)return;const t=z({action:"close",session_id:this.uiSessionId});this.trackingApi.trackEvent(t).then(this.setTrackingDeactivated)}async componentWillLoad(){u.pricePrefix=this.pricePrefix,u.currencySign=this.currencySign,this.excluded&&(this.excluded=k(this.excluded)),this.vviinnWidgetLoad.emit(this.getEventData()),this.getRecommendations()}async getRecommendations(){if(void 0===this.productId||void 0===this.token)return;const t=this.campaignType.length>0?this.campaignType:"VPR",i=Z(this.token),e=h.pipe(C.of((t=>h.pipe(T(t),R((()=>st),(()=>nt))))(t)),C.ap(C.of(this.productId)),C.ap(C.of(this.color)),C.ap(C.of(this.excluded)),C.ap(C.of(I(this.campaigns))),C.ap(C.of(i)),C.flatten),s=await e();h.pipe(s,d.fold((t=>{this.handleError(t),this.vviinnNoResult.emit(this.getEventData()),this.vviinnRecommendationsLoaded.emit()}),(t=>this.handleRecommendationsSuccess(t))))}handleError(t){this.hasErrorOnLoad=!0}handleRecommendationsSuccess(t){var i;this.recommendations=null!==(i=null==t?void 0:t.extended)&&void 0!==i?i:t,l.results=this.recommendations,this.productIds=this.recommendations.map((t=>t.productId)),this.productImageLoadedSubject.subscribe((t=>{this.productIds=this.productIds.filter((i=>i!==t)),0===this.productIds.length&&this.vviinnRecommendationsLoaded.emit()}))}isExternalCSS(){return this.cssUrl&&this.cssUrl.length>0}renderExternalCSS(){return this.isExternalCSS()?i("link",{href:this.cssUrl,rel:"stylesheet"}):""}render(){return 0===this.recommendations.length&&!1===this.noResultShow?null:i(e,{class:{loaded:!0,empty:0==this.recommendations.length,[this.mode]:!0},"aria-hidden":"false"},i(r,null,this.renderExternalCSS(),i("style",null,u.fallbackStyles),i("h2",{part:"recommendations-title"},this.blockTitle),this.recommendations.length>0&&(this.useCarousel?this.renderCarousel():this.renderResults()),0===this.recommendations.length&&this.hasErrorOnLoad&&i("p",{class:"no-result-text"},this.noResultText)))}renderRecommendation(t,e){return i("vviinn-product-card",{part:"product-part",productId:t.productId,productTitle:t.title,productType:t.productType,deeplink:t.deeplink,image:t.image.thumbnail,brand:t.brand,imageWidth:this.imageWidth,imageRatio:1,price:t.price.actual,salePrice:t.price.sale,responsive:"grid"===this.mode,dimmedBackground:this.useDimmedBackgroundInCard(),campaignTypeId:this.campaignType,index:e,widgetElementId:this.id,widgetVersion:S})}useDimmedBackgroundInCard(){return"continuity"===this.mode||!this.useCarousel}renderResults(){return i("div",{class:"recommendations-grid",part:"recommendations-grid"},this.recommendations.map(((t,i)=>this.renderRecommendation(t,i))))}renderCarousel(){return this.showingInButton&&this.vviinnWidgetOpen.emit(this.getEventData()),i("vviinn-carousel",{mode:this.mode,campaignTypeId:this.campaignType,imageWidth:this.imageWidth,showScroll:this.showScroll,recommendations:this.recommendations,widgetElementId:this.id,widgetVersion:S,gridArrowsDynamic:this.gridArrowsDynamic})}get el(){return s(this)}static get watchers(){return{productId:["handleProductIdChange"],campaignType:["handleCampaignTypeChange"],campaigns:["handleCampaignsChange"],apiPath:["handleApiPathChange"]}}};Nt.style=":host{display:grid;grid-gap:1rem;width:100%}:host(:not(.loaded)){position:absolute;visibility:hidden}:host(.grid) vviinn-product-card::part(image){border:1px solid #dddddd;width:100%}h2{margin:0}vviinn-product-card::part(price-container){align-self:flex-start;text-align:left;display:flex}.results{display:grid;grid-gap:1rem}.no-result-text{font-size:20px}.visually-hidden{position:absolute;top:0;left:0;z-index:-1;height:0;width:0}h2{margin:0}:host(.grid) h2{justify-content:center}:host(.grid) vviinn-product-card::part(image){min-width:100%}:host(.grid) vviinn-product-card::part(image-link){width:100%}:host(.grid) vviinn-product-card::part(title),:host(.grid) vviinn-product-card::part(brand),:host(.grid) vviinn-product-card::part(type){text-align:center}:host(.grid) vviinn-product-card::part(price-container){align-self:center}:host(.continuity) vviinn-product-card::part(title),:host(.continuity) vviinn-product-card::part(brand),:host(.continuity) vviinn-product-card::part(type),:host(.continuity) vviinn-product-card::part(deeplink){text-align:left;max-width:unset;align-self:start}";export{D as vviinn_carousel,Y as vviinn_product_card,Nt as vviinn_vpr_widget}
1
+ import{r as t,h as i,H as e,g as s,c as n,F as r}from"./p-fa17e81f.js";import{_ as o,O as a,S as c,a as h,E as d,i as l,s as u,c as p,m as v,f as g,g as m,b as f,A as b,d as y,e as w,h as x,p as k,T as C,j as I}from"./p-90e24b10.js";import{C as P}from"./p-60ea7665.js";import{c as _,f as T,a as R}from"./p-badde98c.js";import{v as S}from"./p-6c073c50.js";import{h as j,t as V,p as E}from"./p-3b99c62d.js";import{c as $,a as A,v as N,b as O,d as z}from"./p-c8b070c2.js";const L="--vviinn-carousel-image-width",W="items-group",D=class{constructor(i){t(this,i),this.columns=0,this.resizeObserver=new ResizeObserver((()=>this.handleResize())),this.mutationObserver=new MutationObserver((()=>this.cloneSlottedContent())),this.isLastGroup=()=>this.activeContentGroup===this.getContentGroups().length-1&&"grid"===this.mode,this.isFirstGroup=()=>0===this.activeContentGroup&&"grid"===this.mode,this.moveDirection="right",this.contentGroups=[],this.activeContentGroup=0,this.isRTL=!1,this.mode="continuity",this.imageWidth=140,this.showScroll=!0,this.campaignTypeId=void 0,this.widgetElementId=void 0,this.gridArrowsDynamic=void 0,this.recommendations=[],this.widgetVersion=void 0}componentWillLoad(){this.isRTL="rtl"===document.dir}connectedCallback(){this.setItemWidth()}disconnectedCallback(){this.resizeObserver.disconnect()}componentDidLoad(){this.setWidth(),this.processScrollbarWidth(),this.columns=this.getColumnsNumber();const t=this.el.querySelector(".content");this.mutationObserver.observe(t,{subtree:!0,childList:!0}),this.resizeObserver.observe(this.getHostParent())}getItemWidthFromDocument(){return parseInt(getComputedStyle(document.body).getPropertyValue(L))}setItemWidth(){const t=this.getItemWidthFromDocument(),i=isNaN(t)?this.imageWidth:t;this.el.style.setProperty(L,`${i}px`)}getContentClassMap(){return{content:!0,[this.moveDirection]:!0,[this.mode]:!0,"show-scrollbar":this.showScroll}}handleResize(){this.setWidth(),this.processScrollbarWidth(),this.setItemWidth();const t=this.getColumnsNumber();t!==this.columns&&(this.columns=t)}calculateMoveStep(){const t=this.getContent().map((t=>t.getBoundingClientRect().width));return t.reduce(((t,i)=>t+i),0)/t.length}getHostParent(){return this.el.parentNode.host.parentElement}setWidth(){const t=this.getHostParent();if(!t)return;const i=getComputedStyle(t),e=t.getBoundingClientRect().width-(parseInt(i["padding-right"])+parseInt(i["padding-left"]));this.el.style.setProperty("--vviinn-carousel-content-width",`${e}px`)}getParent(){return this.el.parentNode.host.parentElement}cloneSlottedContent(){this.setWidth()}getActiveGroupIndex(){var t,i;if(!(null===(i=null===(t=this.getContentNode())||void 0===t?void 0:t.getBoundingClientRect())||void 0===i?void 0:i.left))return 0;const e=this.getContentGroups().map((t=>t.getBoundingClientRect().left)).map(((t,i)=>[t,i])).filter((t=>t[0]>=0));return e.length>0?this.isRTL?e[e.length-1][1]:e[0][1]:0}getContentNode(){return this.el.querySelector(".content")}getContent(){const t=this.getContentNode().children;return Array.from(t).map((t=>t))}getColumnsNumber(){const t=getComputedStyle(this.el).getPropertyValue("--vviinn-carousel-columns-internal"),i=parseInt(t);return i&&!isNaN(i)?i:4}getContentGroups(){return Array.from(this.el.querySelectorAll(`.${W}`))}showNext(){this.moveDirection="right";const t=this.getContentNode();requestAnimationFrame((()=>{t.scrollTo({top:0,left:t.scrollLeft+this.calculateMoveStep(),behavior:"smooth"})}))}showPrev(){this.moveDirection="left";const t=this.getContentNode();requestAnimationFrame((()=>{t.scrollTo({top:0,left:t.scrollLeft-this.calculateMoveStep(),behavior:"smooth"})}))}scroll(t){const i=this.getContentNode();requestAnimationFrame((()=>{i.scrollTo({top:0,left:this.calculateMoveStep()*t,behavior:"smooth"})}))}processScrollbarWidth(){const t=this.getContentNode();t&&(this.el.style.setProperty("--vviinn-progressbar-width",t.clientWidth*((t.scrollLeft+t.clientWidth)/t.scrollWidth)+"px"),this.activeContentGroup=this.getActiveGroupIndex())}showBullets(){return"grid"===this.mode&&this.showScroll}showScrollbar(){return"continuity"===this.mode&&this.showScroll}getClassMap(){return{[this.mode]:!0,"show-scrollbar":this.showScrollbar()}}renderRecommendation(t,e){return i("vviinn-product-card",{part:"product-part",productId:t.productId,productTitle:t.title,productType:t.productType,deeplink:t.deeplink,image:t.image.thumbnail,brand:t.brand,imageWidth:this.imageWidth,imageRatio:1,price:t.price.actual,salePrice:t.price.sale,responsive:"grid"===this.mode,dimmedBackground:"continuity"===this.mode,campaignTypeId:this.campaignTypeId,index:e,widgetElementId:this.widgetElementId,widgetVersion:this.widgetVersion})}renderRecommendationGroup(t){return i("div",{class:W,part:"items-group"},...t)}renderRecommendationGroups(t){return t.map((t=>this.renderRecommendationGroup(t)))}renderRecommendations(){return"grid"===this.mode?this.renderGrid():this.renderRecommendationsElements()}renderRecommendationsElements(){return this.recommendations.map(((t,i)=>this.renderRecommendation(t,i)))}renderGrid(){const t=this.renderRecommendationsElements(),i=o.chunksOf(this.getColumnsNumber())(t);return this.renderRecommendationGroups(i)}renderBullets(){const t=Math.ceil(this.recommendations.length/this.getColumnsNumber());return Array.from(Array(t).keys()).map((t=>i("div",{class:{bullet:!0,active:this.activeContentGroup===t},onClick:()=>this.scroll(t)})))}render(){return i(e,{class:this.getClassMap()},i("div",{class:Object.assign({body:!0},this.getClassMap())},i("button",{class:"prev",onClick:()=>this.showPrev(),part:"carousel-button",disabled:this.gridArrowsDynamic&&this.isFirstGroup()},i(P,null)),i("div",{class:this.getContentClassMap(),onScroll:()=>this.processScrollbarWidth()},this.renderRecommendations()),i("button",{class:"next",onClick:()=>this.showNext(),part:"carousel-button",disabled:this.gridArrowsDynamic&&this.isLastGroup()},i(P,null))),this.showBullets()&&i("div",{class:"bullets"},this.renderBullets()))}get el(){return s(this)}};D.style=":host{--vviinn-progressbar-width:0;--vviinn-carousel-item-width:150px;--vviinn-carousel-columns-internal:var(--vviinn-carousel-columns, 4);--vviinn-carousel-image-width-system:140px}.body{display:flex;position:relative;width:var(--vviinn-carousel-content-width);flex-direction:column}.content-wrapper *{box-sizing:border-box}.content-wrapper{overflow-y:hidden;overflow-x:auto;flex-grow:1}.bullets{margin-top:16px;display:flex;flex-direction:row;grid-gap:24px;justify-content:center}.bullet{width:10px;height:10px;background:#e0e0e0;border-radius:50%;cursor:pointer}.bullet.active{background:#161616}.content:not(.show-scrollbar),.content.grid{scrollbar-color:#fff0 #fff0}.content:not(.show-scrollbar)::-webkit-scrollbar,.content.grid::-webkit-scrollbar{opacity:0}.content{display:flex;flex-direction:row;grid-gap:8px;overflow-y:hidden;overflow-x:auto;flex-grow:1;padding-bottom:16px}.content.left>*{scroll-snap-align:start}.content.right>*{scroll-snap-align:end}:host(.continuity) button{border-radius:2px}:host(.grid) button{border-radius:50%}button{align-items:center;background-color:white;border:none;box-shadow:0px 2px 6px rgba(0, 0, 0, 0.15);cursor:pointer;display:grid;height:40px;justify-items:center;position:absolute;top:calc(50% - 20px);width:40px;z-index:1;padding:0;margin:0}button{fill:#525252}button:disabled{display:none}button.prev svg{transform:rotate(180deg);margin-left:-5px}.prev{left:0}.next{right:0}.items-group{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--vviinn-carousel-columns-internal), 1fr);min-width:100%}vviinn-product-card::part(price-container){text-align:center}:host(.classic) vviinn-product-card::part(title),:host(.classic) vviinn-product-card::part(brand),:host(.classic) vviinn-product-card::part(type){text-align:center}@media (max-width: 480px){:host(.modern) button{display:none}.items-group{grid-template-columns:repeat(2, 1fr)}}";class M{sendImpression(t){var i,e,s;gtag("event","view_item_list",{items:[{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list_name:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}]})}sendClick(t){var i,e,s;gtag("event","select_content",{content_type:"product",items:[{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list_name:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}]})}}class F{constructor(){ga("require","ec")}convertProduct(t){var i,e,s;return{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",list:"VI VPR View",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}}sendImpression(t){ga("ec:addImpression",this.convertProduct(t))}sendClick(t){var i,e,s;ga("ec:addProduct",{id:t.productId,name:t.title,brand:null!==(i=t.brand)&&void 0!==i?i:"",category:null!==(e=t.productType)&&void 0!==e?e:"",price:Math.min(t.price.actual,null!==(s=t.price.sale)&&void 0!==s?s:1/0)}),ga("ec:setAction","click",{list:"VI VPR View"})}}const B=a.getMonoid(c.first()).concat(h.pipe(a.fromNullable(window.gtag),a.map((()=>new M))),h.pipe(a.fromNullable(window.ga),a.map((()=>new F))));function U(t,i,e){return function(s){for(var n=Array(e.length+1),r=0;r<e.length;r++)n[r]=e[r];return n[e.length]=s,0===i?t.apply(null,n):U(t,i-1,n)}}var G={1:function(t){return[t]},2:function(t){return function(i){return[t,i]}},3:function(t){return function(i){return function(e){return[t,i,e]}}},4:function(t){return function(i){return function(e){return function(s){return[t,i,e,s]}}}},5:function(t){return function(i){return function(e){return function(s){return function(n){return[t,i,e,s,n]}}}}}};function q(t){return j.call(G,t)||(G[t]=U(V,t-1,[])),G[t]}const H=/fit\/\d+\//,J=(t,i)=>h.pipe((t=>h.pipe(t.match(H),d.fromNullable(t),d.map((()=>t))))(t),d.map((t=>t.replace(H,`fit/${i}/`))),d.getOrElse((()=>t))),K=(t,e)=>t.deeplink?i("a",{class:t.part,part:t.part,href:t.deeplink},e):e,Q=t=>{const e=t.priceType,s=new Intl.NumberFormat(t.locale,{minimumFractionDigits:2}).format(t.price),n=t.prefix?i("span",{part:"price-prefix"},t.prefix+" "):null,r=t.currency?i("span",{part:"currency"}," "+t.currency):null;return i("span",{class:"price-amount",part:"price-amount"+(e?"-"+e:"")},n,s,r)},X=t=>i("span",{class:"price-container",part:"price-container"},t.salePrice?[i("span",{class:"price-sale",part:"price-sale"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.salePrice,locale:t.locale,priceType:"sale"})),i("span",{class:"price-outdated",part:"price-outdated"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.price,locale:t.locale,priceType:"outdated"}))]:i("span",{class:"price-regular",part:"price-regular"},i(Q,{prefix:t.prefix,currency:t.currency,price:t.price,locale:t.locale,priceType:"regular"}))),Y=class{constructor(i){t(this,i),this.vviinnProductLoad=n(this,"vviinnProductLoad",7),this.vviinnProductView=n(this,"vviinnProductView",7),this.vviinnProductClick=n(this,"vviinnProductClick",7),this.productData=null,this.intersectionObserver=new IntersectionObserver(this.intersectionCallback.bind(this),{threshold:1}),this.brand=void 0,this.currency=void 0,this.deeplink=void 0,this.image=void 0,this.imageRatio=1,this.imageWidth=200,this.locale=void 0,this.price=void 0,this.pricePrefix=void 0,this.productId=void 0,this.productTitle=void 0,this.productType=void 0,this.salePrice=void 0,this.responsive=!1,this.dimmedBackground=!1,this.campaignTypeId=void 0,this.widgetElementId=void 0,this.buttonElementId=void 0,this.widgetVersion=void 0,this.index=0,this.imageLoaded=!1}connectedCallback(){this.productData=this.getProductData()}getWidgetType(){return"VPR"===this.campaignTypeId||"VCS"===this.campaignTypeId?"VPR":"VPS"}getProductData(){var t;return{productId:this.productId,productRank:this.index,productName:this.productTitle,productType:this.productType,widgetType:this.getWidgetType(),campaignTypeId:this.campaignTypeId,campaignTypeName:_[this.campaignTypeId],widgetId:null!==(t=this.buttonElementId)&&void 0!==t?t:this.widgetElementId,widgetVersion:this.widgetVersion}}intersectionCallback(t){t.some((t=>t.isIntersecting))&&(h.pipe(B,a.map((t=>t.sendImpression(this.getProduct())))),this.vviinnProductView.emit(this.productData),this.intersectionObserver.disconnect())}componentDidLoad(){this.vviinnProductLoad.emit(this.productData),this.intersectionObserver.observe(this.el),this.el.shadowRoot.querySelectorAll("a").forEach((t=>t.addEventListener("click",(t=>{t.preventDefault(),t.stopImmediatePropagation(),this.vviinnProductClick.emit(this.productData),h.pipe(B,a.match((()=>null),(t=>t.sendClick(this.getProduct()))))}))))}getProduct(){return l.results.find((t=>t.productId===this.productId))}renderImage(){const t={width:this.imageWidth,height:this.imageWidth*this.imageRatio,src:this.image,title:this.productTitle,lazy:!1};return this.responsive?((t,e=(()=>{}))=>i("picture",null,i("img",{loading:t.lazy?"lazy":"eager",part:"image",class:"image responsive",src:J(t.src,t.width),alt:t.title,onLoad:e})))(t):((t,e=(()=>{}))=>i("picture",null,i("img",{loading:t.lazy?"lazy":"eager",part:"image",class:"image",width:t.width,height:t.height,src:J(t.src,t.width),alt:t.title,onLoad:e})))(t)}render(){var t,s,n;return i(e,{part:"product-card",class:{dimmed:this.dimmedBackground},exportparts:"brand, currency, deeplink, image, image-link, price-amount-sale, price-amount-outdated, price-amount-regular, price-container, price-outdated, price-regular, price-sale, price-prefix, title"},i(K,{deeplink:this.deeplink,part:"image-link"},this.renderImage()),i(K,{deeplink:this.deeplink,part:"deeplink"},i("span",{class:"title",part:"title"},this.productTitle)),i("span",{class:"brand",part:"brand"},this.brand),i("span",{class:"type",part:"type"},this.productType),i(X,{prefix:null!==(t=this.pricePrefix)&&void 0!==t?t:u.pricePrefix,currency:null!==(s=this.currency)&&void 0!==s?s:u.currencySign,price:this.price,salePrice:this.salePrice,locale:null!==(n=this.locale)&&void 0!==n?n:u.locale}))}get el(){return s(this)}};Y.style=':host{align-items:center;display:flex;flex-direction:column;gap:8px;height:100%}.price-container{display:flex;flex-direction:column}.price-sale,.price-regular{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#161616}.price-outdated{font-style:normal;font-weight:normal;font-size:16px;line-height:24px;color:#757575;text-decoration:line-through}.product-type{word-wrap:anywhere}.image{display:grid;align-content:center;-o-object-position:50% 50%;object-position:50% 50%;-o-object-fit:contain;object-fit:contain;text-align:center;box-sizing:border-box}img.responsive{width:100%;height:auto;aspect-ratio:1}.brand,.type{display:none}.title{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#161616;display:-webkit-box;font-size:16px;font-style:normal;font-weight:500;line-height:24px;margin-bottom:8px;overflow:hidden}.deeplink{text-decoration:none}.image-link{display:contents}picture{position:relative;width:100%}:host(.dimmed) picture::before{content:"";width:100%;height:100%;box-sizing:border-box;background:#f7f7f7;display:block;top:0;left:0;position:absolute;mix-blend-mode:multiply}';const Z=h.flow((t=>`Bearer ${t}`),(t=>new Headers({Authorization:t})),(t=>({headers:t}))),tt=(it=b,function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];for(var e=t.length,s=q(e),n=it.map(t[0],s),r=1;r<e;r++)n=it.ap(n,t[r]);return n});var it;const et=(t,i={})=>E(tt(m(),f),g,p(v(t,i))),st=t=>i=>e=>s=>n=>{const r=h.pipe(s,y(encodeURIComponent),w((()=>{const s=[];i&&s.push(`color=${i}`),e&&s.push(e);const n=x(s);return`product/${t}/similar-products${n}`}),(s=>{const n=[];s&&n.push(`campaigns=${s}`),i&&n.push(`color=${i}`),e&&n.push(e);const r=x(n);return`product/${t}/similar-products${r}`})));return et(r,n)},nt=t=>i=>e=>s=>n=>{const r=h.pipe(s,y(encodeURIComponent),w((()=>{const s=[];i&&s.push(`color=${i}`),e&&s.push(e);const n=x(s);return`product/${t}/cross-selling-products${n}`}),(s=>{const n=[];s&&n.push(`campaigns=${s}`),i&&n.push(`color=${i}`),e&&n.push(e);const r=x(n);return`product/${t}/cross-selling-products${r}`})));return et(r,n)};function rt(t){return"function"==typeof t}function ot(t){const i=t((t=>{Error.call(t),t.stack=(new Error).stack}));return i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i}const at=ot((t=>function(i){t(this),this.message=i?`${i.length} errors occurred during unsubscription:\n${i.map(((t,i)=>`${i+1}) ${t.toString()}`)).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=i}));function ct(t,i){if(t){const e=t.indexOf(i);0<=e&&t.splice(e,1)}}class ht{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:i}=this;if(i)if(this._parentage=null,Array.isArray(i))for(const t of i)t.remove(this);else i.remove(this);const{initialTeardown:e}=this;if(rt(e))try{e()}catch(i){t=i instanceof at?i.errors:[i]}const{_finalizers:s}=this;if(s){this._finalizers=null;for(const i of s)try{ut(i)}catch(i){t=null!=t?t:[],i instanceof at?t=[...t,...i.errors]:t.push(i)}}if(t)throw new at(t)}}add(t){var i;if(t&&t!==this)if(this.closed)ut(t);else{if(t instanceof ht){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(i=this._finalizers)&&void 0!==i?i:[]).push(t)}}_hasParent(t){const{_parentage:i}=this;return i===t||Array.isArray(i)&&i.includes(t)}_addParent(t){const{_parentage:i}=this;this._parentage=Array.isArray(i)?(i.push(t),i):i?[i,t]:t}_removeParent(t){const{_parentage:i}=this;i===t?this._parentage=null:Array.isArray(i)&&ct(i,t)}remove(t){const{_finalizers:i}=this;i&&ct(i,t),t instanceof ht&&t._removeParent(this)}}ht.EMPTY=(()=>{const t=new ht;return t.closed=!0,t})();const dt=ht.EMPTY;function lt(t){return t instanceof ht||t&&"closed"in t&&rt(t.remove)&&rt(t.add)&&rt(t.unsubscribe)}function ut(t){rt(t)?t():t.unsubscribe()}const pt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},vt={setTimeout(t,i,...e){const{delegate:s}=vt;return(null==s?void 0:s.setTimeout)?s.setTimeout(t,i,...e):setTimeout(t,i,...e)},clearTimeout(t){const{delegate:i}=vt;return((null==i?void 0:i.clearTimeout)||clearTimeout)(t)},delegate:void 0};function gt(){}const mt=ft("C",void 0,void 0);function ft(t,i,e){return{kind:t,value:i,error:e}}function bt(t){t()}class yt extends ht{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,lt(t)&&t.add(this)):this.destination=_t}static create(t,i,e){return new Ct(t,i,e)}next(t){this.isStopped?Pt(function(t){return ft("N",t,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Pt(ft("E",void 0,t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Pt(mt,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const wt=Function.prototype.bind;function xt(t,i){return wt.call(t,i)}class kt{constructor(t){this.partialObserver=t}next(t){const{partialObserver:i}=this;if(i.next)try{i.next(t)}catch(t){It(t)}}error(t){const{partialObserver:i}=this;if(i.error)try{i.error(t)}catch(t){It(t)}else It(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(t){It(t)}}}class Ct extends yt{constructor(t,i,e){let s;if(super(),rt(t)||!t)s={next:null!=t?t:void 0,error:null!=i?i:void 0,complete:null!=e?e:void 0};else{let i;this&&pt.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),s={next:t.next&&xt(t.next,i),error:t.error&&xt(t.error,i),complete:t.complete&&xt(t.complete,i)}):s=t}this.destination=new kt(s)}}function It(t){var i;i=t,vt.setTimeout((()=>{const{onUnhandledError:t}=pt;if(!t)throw i;t(i)}))}function Pt(t,i){const{onStoppedNotification:e}=pt;e&&vt.setTimeout((()=>e(t,i)))}const _t={closed:!0,next:gt,error:function(t){throw t},complete:gt},Tt="function"==typeof Symbol&&Symbol.observable||"@@observable";function Rt(t){return t}class St{constructor(t){t&&(this._subscribe=t)}lift(t){const i=new St;return i.source=this,i.operator=t,i}subscribe(t,i,e){const s=(n=t)&&n instanceof yt||function(t){return t&&rt(t.next)&&rt(t.error)&&rt(t.complete)}(n)&&lt(n)?t:new Ct(t,i,e);var n;return bt((()=>{const{operator:t,source:i}=this;s.add(t?t.call(s,i):i?this._subscribe(s):this._trySubscribe(s))})),s}_trySubscribe(t){try{return this._subscribe(t)}catch(i){t.error(i)}}forEach(t,i){return new(i=jt(i))(((i,e)=>{const s=new Ct({next:i=>{try{t(i)}catch(t){e(t),s.unsubscribe()}},error:e,complete:i});this.subscribe(s)}))}_subscribe(t){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(t)}[Tt](){return this}pipe(...t){return(0===(i=t).length?Rt:1===i.length?i[0]:function(t){return i.reduce(((t,i)=>i(t)),t)})(this);var i}toPromise(t){return new(t=jt(t))(((t,i)=>{let e;this.subscribe((t=>e=t),(t=>i(t)),(()=>t(e)))}))}}function jt(t){var i;return null!==(i=null!=t?t:pt.Promise)&&void 0!==i?i:Promise}St.create=t=>new St(t);const Vt=ot((t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}));class Et extends St{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const i=new $t(this,this);return i.operator=t,i}_throwIfClosed(){if(this.closed)throw new Vt}next(t){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(t)}}))}error(t){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:i}=this;for(;i.length;)i.shift().error(t)}}))}complete(){bt((()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}}))}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:i,isStopped:e,observers:s}=this;return i||e?dt:(this.currentObservers=null,s.push(t),new ht((()=>{this.currentObservers=null,ct(s,t)})))}_checkFinalizedStatuses(t){const{hasError:i,thrownError:e,isStopped:s}=this;i?t.error(e):s&&t.complete()}asObservable(){const t=new St;return t.source=this,t}}Et.create=(t,i)=>new $t(t,i);class $t extends Et{constructor(t,i){super(),this.destination=t,this.source=i}next(t){var i,e;null===(e=null===(i=this.destination)||void 0===i?void 0:i.next)||void 0===e||e.call(i,t)}error(t){var i,e;null===(e=null===(i=this.destination)||void 0===i?void 0:i.error)||void 0===e||e.call(i,t)}complete(){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===i||i.call(t)}_subscribe(t){var i,e;return null!==(e=null===(i=this.source)||void 0===i?void 0:i.subscribe(t))&&void 0!==e?e:dt}}var At=function(t,i){var e={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(e[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)i.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(e[s[n]]=t[s[n]])}return e};const Nt=class{constructor(i){t(this,i),this.vviinnWidgetLoad=n(this,"vviinnWidgetLoad",7),this.vviinnProductLoad=n(this,"vviinnProductLoad",7),this.vviinnProductClick=n(this,"vviinnProductClick",7),this.vviinnProductView=n(this,"vviinnProductView",7),this.vviinnNoResult=n(this,"vviinnNoResult",7),this.vviinnRecommendationsLoaded=n(this,"vviinnRecommendationsLoaded",7),this.vviinnWidgetOpen=n(this,"vviinnWidgetOpen",7),this.productImageLoadedSubject=new Et,this.setTrackingDeactivated=t=>{"rejected"===t.status&&(this.trackingDeactivated=!0)},this.blockTitle="Recommended products",this.imageRatio=1,this.imageWidth=300,this.productId=void 0,this.token=void 0,this.currencySign="€",this.pricePrefix="",this.mode="continuity",this.campaignType="VPR",this.locale="de-DE",this.campaigns="",this.color="",this.gridArrowsDynamic=!1,this.noResultText="No results! Please, try again later.",this.noResultShow=!0,this.showScroll=!0,this.cssUrl=null,this.excluded="",this.productDetailNewTab=!1,this.apiPath="https://api.vviinn.com",this.useCarousel=!0,this.showingInButton=!1,this.buttonElementId=void 0,this.recommendations=[],this.trackingDeactivated=!1,this.hasErrorOnLoad=!1}getEventData(){return{widgetType:"VPR",campaignTypeId:this.campaignType,campaignTypeName:_[this.campaignType],widgetId:this.id,widgetVersion:S}}handleOpenLink(t){this.productDetailNewTab?window.open(t):window.location.href=t}handleProductIdChange(){this.getRecommendations()}handleCampaignTypeChange(){this.getRecommendations()}handleCampaignsChange(){this.getRecommendations()}handleApiPathChange(t){u.apiPath=t,this.getRecommendations()}handleProductLoading({detail:t}){this.productImageLoadedSubject.next(t.productId)}trackProductView({detail:t}){if(this.trackingDeactivated)return;const{productRank:i,productId:e}=t,s=At(t,["productRank","productId","productName","widgetType","widgetId","campaignTypeId","campaignTypeName"]),n=$(Object.assign({session_id:this.uiSessionId,rank:i,product:e},s));this.trackingApi.trackEvent(n).then(this.setTrackingDeactivated)}async trackProductClick({detail:t}){const{productRank:i,productId:e}=t,s=At(t,["productRank","productId","productName","widgetType","widgetId","campaignTypeId","campaignTypeName"]),n=A(Object.assign({session_id:this.uiSessionId,rank:i,product:e},s)),r=this.recommendations.find((i=>i.productId===t.productId));r&&r.deeplink&&(this.trackingDeactivated?this.handleOpenLink(r.deeplink):await this.trackingApi.trackEvent(n).then(this.setTrackingDeactivated).finally((()=>{this.handleOpenLink(r.deeplink)})))}connectedCallback(){var t;if(u.apiPath=this.apiPath,u.currencySign=this.currencySign,u.locale=this.locale,this.id=null!==(t=this.buttonElementId)&&void 0!==t?t:this.el.id,this.uiSessionId=N(),this.trackingApi=O(this.apiPath,this.token),this.trackingDeactivated)return;const i=z({action:"open",session_id:this.uiSessionId});this.trackingApi.trackEvent(i).then(this.setTrackingDeactivated)}disconnectedCallback(){if(this.trackingDeactivated)return;const t=z({action:"close",session_id:this.uiSessionId});this.trackingApi.trackEvent(t).then(this.setTrackingDeactivated)}async componentWillLoad(){u.pricePrefix=this.pricePrefix,u.currencySign=this.currencySign,this.excluded&&(this.excluded=k(this.excluded)),this.vviinnWidgetLoad.emit(this.getEventData()),this.getRecommendations()}async getRecommendations(){if(void 0===this.productId||void 0===this.token)return;const t=this.campaignType.length>0?this.campaignType:"VPR",i=Z(this.token),e=h.pipe(C.of((t=>h.pipe(T(t),R((()=>st),(()=>nt))))(t)),C.ap(C.of(this.productId)),C.ap(C.of(this.color)),C.ap(C.of(this.excluded)),C.ap(C.of(I(this.campaigns))),C.ap(C.of(i)),C.flatten),s=await e();h.pipe(s,d.fold((t=>{this.handleError(t),this.vviinnNoResult.emit(this.getEventData()),this.vviinnRecommendationsLoaded.emit()}),(t=>this.handleRecommendationsSuccess(t))))}handleError(t){this.hasErrorOnLoad=!0}handleRecommendationsSuccess(t){var i;this.recommendations=null!==(i=null==t?void 0:t.extended)&&void 0!==i?i:t,l.results=this.recommendations,this.productIds=this.recommendations.map((t=>t.productId)),this.productImageLoadedSubject.subscribe((t=>{this.productIds=this.productIds.filter((i=>i!==t)),0===this.productIds.length&&this.vviinnRecommendationsLoaded.emit()}))}isExternalCSS(){return this.cssUrl&&this.cssUrl.length>0}renderExternalCSS(){return this.isExternalCSS()?i("link",{href:this.cssUrl,rel:"stylesheet"}):""}render(){return 0===this.recommendations.length&&!1===this.noResultShow?null:i(e,{class:{loaded:!0,empty:0==this.recommendations.length,[this.mode]:!0},"aria-hidden":"false"},i(r,null,this.renderExternalCSS(),i("style",null,u.fallbackStyles),i("h2",{part:"recommendations-title"},this.blockTitle),this.recommendations.length>0&&(this.useCarousel?this.renderCarousel():this.renderResults()),0===this.recommendations.length&&this.hasErrorOnLoad&&i("p",{class:"no-result-text"},this.noResultText)))}renderRecommendation(t,e){return i("vviinn-product-card",{part:"product-part",productId:t.productId,productTitle:t.title,productType:t.productType,deeplink:t.deeplink,image:t.image.thumbnail,brand:t.brand,imageWidth:this.imageWidth,imageRatio:1,price:t.price.actual,salePrice:t.price.sale,responsive:"grid"===this.mode,dimmedBackground:this.useDimmedBackgroundInCard(),campaignTypeId:this.campaignType,index:e,widgetElementId:this.id,widgetVersion:S})}useDimmedBackgroundInCard(){return"continuity"===this.mode||!this.useCarousel}renderResults(){return i("div",{class:"recommendations-grid",part:"recommendations-grid"},this.recommendations.map(((t,i)=>this.renderRecommendation(t,i))))}renderCarousel(){return this.showingInButton&&this.vviinnWidgetOpen.emit(this.getEventData()),i("vviinn-carousel",{mode:this.mode,campaignTypeId:this.campaignType,imageWidth:this.imageWidth,showScroll:this.showScroll,recommendations:this.recommendations,widgetElementId:this.id,widgetVersion:S,gridArrowsDynamic:this.gridArrowsDynamic})}get el(){return s(this)}static get watchers(){return{productId:["handleProductIdChange"],campaignType:["handleCampaignTypeChange"],campaigns:["handleCampaignsChange"],apiPath:["handleApiPathChange"]}}};Nt.style=":host{display:grid;grid-gap:1rem;width:100%}:host(:not(.loaded)){position:absolute;visibility:hidden}:host(.grid) vviinn-product-card::part(image){border:1px solid #dddddd;width:100%}h2{margin:0}vviinn-product-card::part(price-container){align-self:flex-start;text-align:left;display:flex}.results{display:grid;grid-gap:1rem}.no-result-text{font-size:20px}.visually-hidden{position:absolute;top:0;left:0;z-index:-1;height:0;width:0}h2{margin:0}:host(.grid) h2{justify-content:center}:host(.grid) vviinn-product-card::part(image){min-width:100%}:host(.grid) vviinn-product-card::part(image-link){width:100%}:host(.grid) vviinn-product-card::part(title),:host(.grid) vviinn-product-card::part(brand),:host(.grid) vviinn-product-card::part(type){text-align:center}:host(.grid) vviinn-product-card::part(price-container){align-self:center}:host(.continuity) vviinn-product-card::part(title),:host(.continuity) vviinn-product-card::part(brand),:host(.continuity) vviinn-product-card::part(type),:host(.continuity) vviinn-product-card::part(deeplink){text-align:left;max-width:unset;align-self:start}";export{D as vviinn_carousel,Y as vviinn_product_card,Nt as vviinn_vpr_widget}
@@ -1 +1 @@
1
- import{r as i,c as t,h as s,H as h,g as n}from"./p-fa17e81f.js";import{v as o}from"./p-6a189f8f.js";import{V as e}from"./p-60ea7665.js";const v=class{constructor(s){i(this,s),this.vviinnWidgetLoad=t(this,"vviinnWidgetLoad",7),this.vviinnWidgetOpen=t(this,"vviinnWidgetOpen",7),this.vviinnWidgetClose=t(this,"vviinnWidgetClose",7),this.vviinnNoResult=t(this,"vviinnNoResult",7),this.vviinnProductLoad=t(this,"vviinnProductLoad",7),this.vviinnProductClick=t(this,"vviinnProductClick",7),this.vviinnProductView=t(this,"vviinnProductView",7),this.sidebar=null,this.sidebarCloseListener=()=>{document.body.removeChild(this.sidebar)},this.token=void 0,this.productId=void 0,this.position="bottom",this.sourceImage=null,this.sidebarTitle="Visually similar products",this.modalScrollbar=!1,this.campaigns="",this.campaignType="VPR",this.color="",this.addStyle=!0,this.mode="continuity",this.imageWidth=300,this.currencySign="€",this.noResultText="No results! Please, try again later.",this.noResultShow=!0,this.gridArrowsDynamic=!1,this.excluded="",this.productDetailNewTab=!1,this.apiPath="https://api.vviinn.com"}render(){return s(h,{onClick:()=>{this.handleClick()},role:"button",tabindex:"0"},s("vviinn-button",{addStyle:this.addStyle,part:"vviinn-button"},s("slot",null,s(e,null))))}handleClick(){const i=document.createElement("vviinn-recommendations-sidebar");i.sidebarTitle=this.sidebarTitle,i.productId=this.productId,i.token=this.token,i.position=this.position,i.sourceImage=this.sourceImage,i.widgetScrollbar=this.modalScrollbar,i.campaigns=this.campaigns,i.campaignType=this.campaignType,i.color=this.color,i.mode="right"===this.position?"grid":this.mode,i.imageWidth=this.imageWidth,i.currencySign=this.currencySign,i.apiPath=this.apiPath,i.buttonElementId=this.el.id,i.noResultText=this.noResultText,i.noResultShow=this.noResultShow,i.gridArrowsDynamic=this.gridArrowsDynamic,i.productDetailNewTab=this.productDetailNewTab,i.widgetVersion=o,i.showingInButton=!0,i.excluded=this.excluded,this.sidebar=i,i.addEventListener("vviinnWidgetClose",this.sidebarCloseListener),document.body.append(this.sidebar)}disconnectedCallback(){this.sidebar&&(this.sidebar.removeEventListener("vviinnWidgetClose",this.sidebarCloseListener),document.body.removeChild(this.sidebar))}get el(){return n(this)}};v.style=":host{display:block}";export{v as vviinn_vpr_button}
1
+ import{r as i,c as t,h as s,H as h,g as n}from"./p-fa17e81f.js";import{v as o}from"./p-6c073c50.js";import{V as e}from"./p-60ea7665.js";const v=class{constructor(s){i(this,s),this.vviinnWidgetLoad=t(this,"vviinnWidgetLoad",7),this.vviinnWidgetOpen=t(this,"vviinnWidgetOpen",7),this.vviinnWidgetClose=t(this,"vviinnWidgetClose",7),this.vviinnNoResult=t(this,"vviinnNoResult",7),this.vviinnProductLoad=t(this,"vviinnProductLoad",7),this.vviinnProductClick=t(this,"vviinnProductClick",7),this.vviinnProductView=t(this,"vviinnProductView",7),this.sidebar=null,this.sidebarCloseListener=()=>{document.body.removeChild(this.sidebar)},this.token=void 0,this.productId=void 0,this.position="bottom",this.sourceImage=null,this.sidebarTitle="Visually similar products",this.modalScrollbar=!1,this.campaigns="",this.campaignType="VPR",this.color="",this.addStyle=!0,this.mode="continuity",this.imageWidth=300,this.currencySign="€",this.noResultText="No results! Please, try again later.",this.noResultShow=!0,this.gridArrowsDynamic=!1,this.excluded="",this.productDetailNewTab=!1,this.apiPath="https://api.vviinn.com"}render(){return s(h,{onClick:()=>{this.handleClick()},role:"button",tabindex:"0"},s("vviinn-button",{addStyle:this.addStyle,part:"vviinn-button"},s("slot",null,s(e,null))))}handleClick(){const i=document.createElement("vviinn-recommendations-sidebar");i.sidebarTitle=this.sidebarTitle,i.productId=this.productId,i.token=this.token,i.position=this.position,i.sourceImage=this.sourceImage,i.widgetScrollbar=this.modalScrollbar,i.campaigns=this.campaigns,i.campaignType=this.campaignType,i.color=this.color,i.mode="right"===this.position?"grid":this.mode,i.imageWidth=this.imageWidth,i.currencySign=this.currencySign,i.apiPath=this.apiPath,i.buttonElementId=this.el.id,i.noResultText=this.noResultText,i.noResultShow=this.noResultShow,i.gridArrowsDynamic=this.gridArrowsDynamic,i.productDetailNewTab=this.productDetailNewTab,i.widgetVersion=o,i.showingInButton=!0,i.excluded=this.excluded,this.sidebar=i,i.addEventListener("vviinnWidgetClose",this.sidebarCloseListener),document.body.append(this.sidebar)}disconnectedCallback(){this.sidebar&&(this.sidebar.removeEventListener("vviinnWidgetClose",this.sidebarCloseListener),document.body.removeChild(this.sidebar))}get el(){return n(this)}};v.style=":host{display:block}";export{v as vviinn_vpr_button}
@@ -1 +1 @@
1
- import{p as e,b as i}from"./p-fa17e81f.js";export{s as setNonce}from"./p-fa17e81f.js";(()=>{const i=import.meta.url,t={};return""!==i&&(t.resourcesUrl=new URL(".",i).href),e(t)})().then((e=>i([["p-04b5d426",[[1,"vviinn-button",{addStyle:[4,"add-style"]}]]],["p-bae2af67",[[1,"cropper-handler",{handler:[16],disabled:[4]}]]],["p-34b551fb",[[1,"vviinn-error"]]],["p-93f05c97",[[1,"vviinn-preloader"]]],["p-4cb106e3",[[1,"vviinn-vpr-widget",{blockTitle:[1,"block-title"],imageRatio:[2,"image-ratio"],imageWidth:[2,"image-width"],productId:[1,"product-id"],token:[1],currencySign:[1,"currency-sign"],pricePrefix:[1,"price-prefix"],mode:[1],campaignType:[1,"campaign-type"],locale:[1],campaigns:[1],color:[1],gridArrowsDynamic:[4,"grid-arrows-dynamic"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],showScroll:[4,"show-scroll"],cssUrl:[1,"css-url"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],useCarousel:[4,"use-carousel"],showingInButton:[4,"showing-in-button"],buttonElementId:[1,"button-element-id"],recommendations:[32],trackingDeactivated:[32],hasErrorOnLoad:[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{mode:[1],imageWidth:[2,"image-width"],showScroll:[4,"show-scroll"],campaignTypeId:[1,"campaign-type-id"],widgetElementId:[1,"widget-element-id"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],recommendations:[16],widgetVersion:[1,"widget-version"],moveDirection:[32],contentGroups:[32],activeContentGroup:[32],isRTL:[32]}],[1,"vviinn-product-card",{brand:[1],currency:[1],deeplink:[1],image:[1],imageRatio:[2,"image-ratio"],imageWidth:[2,"image-width"],locale:[1],price:[2],pricePrefix:[1,"price-prefix"],productId:[1,"product-id"],productTitle:[1,"product-title"],productType:[1,"product-type"],salePrice:[2,"sale-price"],responsive:[4],dimmedBackground:[4,"dimmed-background"],campaignTypeId:[1,"campaign-type-id"],widgetElementId:[1,"widget-element-id"],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],index:[2],imageLoaded:[32]}]]],["p-1aa66c1a",[[1,"vviinn-image-view",{basicEventData:[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{basicEventData:[16]}],[1,"vviinn-overlayed-modal",{active:[4],resetState:[16],buttonElementId:[1,"button-element-id"],hideBackButton:[4,"hide-back-button"],widgetVersion:[1,"widget-version"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{basicEventData:[16],startUpload:[4,"start-upload"],resetVpsButton:[16]}],[1,"vviinn-server-error",{handler:[16]}],[1,"vviinn-wrong-format",{handler:[16]}],[1,"search-filters",{filter:[16],basicEventData:[16],selectedFilter:[32],hideFilters:[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{disabled:[4],basicEventData:[16],handleMove:[32]}],[1,"vviinn-example-image",{src:[1],width:[2],height:[2],basicEventData:[16],selected:[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{detectedObject:[16],basicEventData:[16],position:[32]}],[1,"vviinn-modal",{active:[1540],resetState:[16],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],hideBackButton:[4,"hide-back-button"],slider:[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{showBullets:[4,"show-bullets"],position:[514],showArrows:[4,"show-arrows"],elementsCount:[32],internalPosition:[32],swipeStartPosition:[32],isRTL:[32]}]]],["p-e5fbf695",[[1,"vviinn-vps-widget",{token:[1],active:[1028],currencySign:[1,"currency-sign"],locale:[1],campaignId:[1,"campaign-id"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],showingInButton:[4,"showing-in-button"],buttonElementId:[1,"button-element-id"],buttonPressed:[4,"button-pressed"],mode:[1],resetVpsButton:[16],slidePosition:[32],width:[32],wrongImageFormat:[32],trackingDeactivated:[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"]]]]],["p-a1c3ccce",[[1,"vviinn-vps-button",{token:[1],currencySign:[1,"currency-sign"],locale:[1],campaignId:[1,"campaign-id"],addStyle:[4,"add-style"],mode:[1],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],buttonPressed:[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["p-637925f0",[[1,"vviinn-recommendations-sidebar",{sidebarTitle:[1,"sidebar-title"],token:[1],productId:[1,"product-id"],position:[1],sourceImage:[1,"source-image"],widgetScrollbar:[4,"widget-scrollbar"],mode:[1],campaigns:[1],campaignType:[1,"campaign-type"],color:[1],imageWidth:[2,"image-width"],currencySign:[1,"currency-sign"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],showingInButton:[4,"showing-in-button"],state:[32]},[[16,"click","bodyClickListener"]]]]],["p-ab973311",[[1,"vviinn-vpr-button",{token:[1],productId:[1,"product-id"],position:[1],sourceImage:[1,"source-image"],sidebarTitle:[1,"sidebar-title"],modalScrollbar:[4,"modal-scrollbar"],campaigns:[1],campaignType:[1,"campaign-type"],color:[1],addStyle:[4,"add-style"],mode:[1],imageWidth:[2,"image-width"],currencySign:[1,"currency-sign"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"]}]]]],e)));
1
+ import{p as e,b as i}from"./p-fa17e81f.js";export{s as setNonce}from"./p-fa17e81f.js";(()=>{const i=import.meta.url,t={};return""!==i&&(t.resourcesUrl=new URL(".",i).href),e(t)})().then((e=>i([["p-04b5d426",[[1,"vviinn-button",{addStyle:[4,"add-style"]}]]],["p-bae2af67",[[1,"cropper-handler",{handler:[16],disabled:[4]}]]],["p-34b551fb",[[1,"vviinn-error"]]],["p-93f05c97",[[1,"vviinn-preloader"]]],["p-bf744768",[[1,"vviinn-vpr-widget",{blockTitle:[1,"block-title"],imageRatio:[2,"image-ratio"],imageWidth:[2,"image-width"],productId:[1,"product-id"],token:[1],currencySign:[1,"currency-sign"],pricePrefix:[1,"price-prefix"],mode:[1],campaignType:[1,"campaign-type"],locale:[1],campaigns:[1],color:[1],gridArrowsDynamic:[4,"grid-arrows-dynamic"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],showScroll:[4,"show-scroll"],cssUrl:[1,"css-url"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],useCarousel:[4,"use-carousel"],showingInButton:[4,"showing-in-button"],buttonElementId:[1,"button-element-id"],recommendations:[32],trackingDeactivated:[32],hasErrorOnLoad:[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]],[0,"vviinn-carousel",{mode:[1],imageWidth:[2,"image-width"],showScroll:[4,"show-scroll"],campaignTypeId:[1,"campaign-type-id"],widgetElementId:[1,"widget-element-id"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],recommendations:[16],widgetVersion:[1,"widget-version"],moveDirection:[32],contentGroups:[32],activeContentGroup:[32],isRTL:[32]}],[1,"vviinn-product-card",{brand:[1],currency:[1],deeplink:[1],image:[1],imageRatio:[2,"image-ratio"],imageWidth:[2,"image-width"],locale:[1],price:[2],pricePrefix:[1,"price-prefix"],productId:[1,"product-id"],productTitle:[1,"product-title"],productType:[1,"product-type"],salePrice:[2,"sale-price"],responsive:[4],dimmedBackground:[4,"dimmed-background"],campaignTypeId:[1,"campaign-type-id"],widgetElementId:[1,"widget-element-id"],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],index:[2],imageLoaded:[32]}]]],["p-43ed48b7",[[1,"vviinn-image-view",{basicEventData:[16]}],[1,"vviinn-onboarding"],[1,"vviinn-example-images",{basicEventData:[16]}],[1,"vviinn-overlayed-modal",{active:[4],resetState:[16],buttonElementId:[1,"button-element-id"],hideBackButton:[4,"hide-back-button"],widgetVersion:[1,"widget-version"]}],[1,"vviinn-empty-results"],[1,"vviinn-image-selector",{basicEventData:[16],startUpload:[4,"start-upload"],resetVpsButton:[16]}],[1,"vviinn-server-error",{handler:[16]}],[1,"vviinn-wrong-format",{handler:[16]}],[1,"search-filters",{filter:[16],basicEventData:[16],selectedFilter:[32],hideFilters:[32]}],[1,"vviinn-privacy-badge"],[1,"vviinn-teaser"],[1,"image-cropper",{disabled:[4],basicEventData:[16],handleMove:[32]}],[1,"vviinn-example-image",{src:[1],width:[2],height:[2],basicEventData:[16],selected:[32]}],[1,"highlight-box"],[1,"vviinn-detected-object",{detectedObject:[16],basicEventData:[16],position:[32]}],[1,"vviinn-modal",{active:[1540],resetState:[16],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],hideBackButton:[4,"hide-back-button"],slider:[32]}],[1,"vviinn-onboarding-card-1"],[1,"vviinn-onboarding-card-2"],[1,"vviinn-onboarding-card-3"],[1,"vviinn-overlay"],[1,"vviinn-slide"],[1,"vviinn-slider",{showBullets:[4,"show-bullets"],position:[514],showArrows:[4,"show-arrows"],elementsCount:[32],internalPosition:[32],swipeStartPosition:[32],isRTL:[32]}]]],["p-4be72c1f",[[1,"vviinn-vps-widget",{token:[1],active:[1028],currencySign:[1,"currency-sign"],locale:[1],campaignId:[1,"campaign-id"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],showingInButton:[4,"showing-in-button"],buttonElementId:[1,"button-element-id"],buttonPressed:[4,"button-pressed"],mode:[1],resetVpsButton:[16],slidePosition:[32],width:[32],wrongImageFormat:[32],trackingDeactivated:[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"]]]]],["p-a7dc9a99",[[1,"vviinn-vps-button",{token:[1],currencySign:[1,"currency-sign"],locale:[1],campaignId:[1,"campaign-id"],addStyle:[4,"add-style"],mode:[1],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],buttonPressed:[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["p-637925f0",[[1,"vviinn-recommendations-sidebar",{sidebarTitle:[1,"sidebar-title"],token:[1],productId:[1,"product-id"],position:[1],sourceImage:[1,"source-image"],widgetScrollbar:[4,"widget-scrollbar"],mode:[1],campaigns:[1],campaignType:[1,"campaign-type"],color:[1],imageWidth:[2,"image-width"],currencySign:[1,"currency-sign"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"],buttonElementId:[1,"button-element-id"],widgetVersion:[1,"widget-version"],showingInButton:[4,"showing-in-button"],state:[32]},[[16,"click","bodyClickListener"]]]]],["p-fc8609e7",[[1,"vviinn-vpr-button",{token:[1],productId:[1,"product-id"],position:[1],sourceImage:[1,"source-image"],sidebarTitle:[1,"sidebar-title"],modalScrollbar:[4,"modal-scrollbar"],campaigns:[1],campaignType:[1,"campaign-type"],color:[1],addStyle:[4,"add-style"],mode:[1],imageWidth:[2,"image-width"],currencySign:[1,"currency-sign"],noResultText:[1,"no-result-text"],noResultShow:[4,"no-result-show"],gridArrowsDynamic:[4,"grid-arrows-dynamic"],excluded:[1],productDetailNewTab:[4,"product-detail-new-tab"],apiPath:[1,"api-path"]}]]]],e)));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vviinn-widgets",
3
- "version": "2.20.21",
3
+ "version": "2.20.25",
4
4
  "description": "vviinn web components",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.js",
@@ -61,7 +61,7 @@
61
61
  "babel-loader": "^9.1.2",
62
62
  "jest": "^27.0.3",
63
63
  "jest-cli": "^27.4.5",
64
- "jest-config": "^29.5.0",
64
+ "jest-config": "^27.0.3",
65
65
  "puppeteer": "^20.7.0",
66
66
  "rollup-plugin-dotenv": "^0.5.0",
67
67
  "storybook-addon-designs": "^6.2.1",
@@ -0,0 +1,161 @@
1
+ import { B as BUILD, c as consoleDevInfo, p as plt, w as win, H, d as doc, N as NAMESPACE, a as promiseResolve, b as bootstrapLazy } from './index-de2e9862.js';
2
+ export { s as setNonce } from './index-de2e9862.js';
3
+ import { g as globalScripts } from './app-globals-76b20e61.js';
4
+
5
+ /*
6
+ Stencil Client Patch Browser v3.3.1 | MIT Licensed | https://stenciljs.com
7
+ */
8
+ /**
9
+ * Helper method for querying a `meta` tag that contains a nonce value
10
+ * out of a DOM's head.
11
+ *
12
+ * @param doc The DOM containing the `head` to query against
13
+ * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag
14
+ * exists or the tag has no content.
15
+ */
16
+ function queryNonceMetaTagContent(doc) {
17
+ var _a, _b, _c;
18
+ return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;
19
+ }
20
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
21
+ const getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\s|-/g, '_')}`;
22
+ const patchBrowser = () => {
23
+ // NOTE!! This fn cannot use async/await!
24
+ if (BUILD.isDev && !BUILD.isTesting) {
25
+ consoleDevInfo('Running in development mode.');
26
+ }
27
+ // TODO(STENCIL-659): Remove code implementing the CSS variable shim
28
+ if (BUILD.cssVarShim) {
29
+ // shim css vars
30
+ // TODO(STENCIL-659): Remove code implementing the CSS variable shim
31
+ plt.$cssShim$ = win.__cssshim;
32
+ }
33
+ if (BUILD.cloneNodeFix) {
34
+ // opted-in to polyfill cloneNode() for slot polyfilled components
35
+ patchCloneNodeFix(H.prototype);
36
+ }
37
+ if (BUILD.profile && !performance.mark) {
38
+ // not all browsers support performance.mark/measure (Safari 10)
39
+ // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,
40
+ // simply stub the implementations out.
41
+ // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)
42
+ // @ts-ignore
43
+ performance.mark = performance.measure = () => {
44
+ /*noop*/
45
+ };
46
+ performance.getEntriesByName = () => [];
47
+ }
48
+ // @ts-ignore
49
+ const scriptElm =
50
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
51
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
52
+ BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim
53
+ ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\/${NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) ||
54
+ s.getAttribute('data-stencil-namespace') === NAMESPACE)
55
+ : null;
56
+ const importMeta = import.meta.url;
57
+ const opts = BUILD.scriptDataOpts ? (scriptElm || {})['data-opts'] || {} : {};
58
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
59
+ if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {
60
+ // Safari < v11 support: This IF is true if it's Safari below v11.
61
+ // This fn cannot use async/await since Safari didn't support it until v11,
62
+ // however, Safari 10 did support modules. Safari 10 also didn't support "nomodule",
63
+ // so both the ESM file and nomodule file would get downloaded. Only Safari
64
+ // has 'onbeforeload' in the script, and "history.scrollRestoration" was added
65
+ // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.
66
+ // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.
67
+ return {
68
+ then() {
69
+ /* promise noop */
70
+ },
71
+ };
72
+ }
73
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
74
+ if (!BUILD.safari10 && importMeta !== '') {
75
+ opts.resourcesUrl = new URL('.', importMeta).href;
76
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
77
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
78
+ }
79
+ else if (BUILD.dynamicImportShim || BUILD.safari10) {
80
+ opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;
81
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
82
+ if (BUILD.dynamicImportShim) {
83
+ patchDynamicImport(opts.resourcesUrl, scriptElm);
84
+ }
85
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
86
+ if (BUILD.dynamicImportShim && !win.customElements) {
87
+ // module support, but no custom elements support (Old Edge)
88
+ // @ts-ignore
89
+ return import(/* webpackChunkName: "polyfills-dom" */ './dom-8aeda3ee.js').then(() => opts);
90
+ }
91
+ }
92
+ return promiseResolve(opts);
93
+ };
94
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
95
+ const patchDynamicImport = (base, orgScriptElm) => {
96
+ const importFunctionName = getDynamicImportFunction(NAMESPACE);
97
+ try {
98
+ // test if this browser supports dynamic imports
99
+ // There is a caching issue in V8, that breaks using import() in Function
100
+ // By generating a random string, we can workaround it
101
+ // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info
102
+ win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);
103
+ }
104
+ catch (e) {
105
+ // this shim is specifically for browsers that do support "esm" imports
106
+ // however, they do NOT support "dynamic" imports
107
+ // basically this code is for old Edge, v18 and below
108
+ const moduleMap = new Map();
109
+ win[importFunctionName] = (src) => {
110
+ var _a;
111
+ const url = new URL(src, base).href;
112
+ let mod = moduleMap.get(url);
113
+ if (!mod) {
114
+ const script = doc.createElement('script');
115
+ script.type = 'module';
116
+ script.crossOrigin = orgScriptElm.crossOrigin;
117
+ script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {
118
+ type: 'application/javascript',
119
+ }));
120
+ // Apply CSP nonce to the script tag if it exists
121
+ const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
122
+ if (nonce != null) {
123
+ script.setAttribute('nonce', nonce);
124
+ }
125
+ mod = new Promise((resolve) => {
126
+ script.onload = () => {
127
+ resolve(win[importFunctionName].m);
128
+ script.remove();
129
+ };
130
+ });
131
+ moduleMap.set(url, mod);
132
+ doc.head.appendChild(script);
133
+ }
134
+ return mod;
135
+ };
136
+ }
137
+ };
138
+ const patchCloneNodeFix = (HTMLElementPrototype) => {
139
+ const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;
140
+ HTMLElementPrototype.cloneNode = function (deep) {
141
+ if (this.nodeName === 'TEMPLATE') {
142
+ return nativeCloneNodeFn.call(this, deep);
143
+ }
144
+ const clonedNode = nativeCloneNodeFn.call(this, false);
145
+ const srcChildNodes = this.childNodes;
146
+ if (deep) {
147
+ for (let i = 0; i < srcChildNodes.length; i++) {
148
+ // Node.ATTRIBUTE_NODE === 2, and checking because IE11
149
+ if (srcChildNodes[i].nodeType !== 2) {
150
+ clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
151
+ }
152
+ }
153
+ }
154
+ return clonedNode;
155
+ };
156
+ };
157
+
158
+ patchBrowser().then(options => {
159
+ globalScripts();
160
+ return bootstrapLazy([["vviinn-vps-widget",[[1,"vviinn-vps-widget",{"token":[1],"active":[1028],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"buttonPressed":[4,"button-pressed"],"mode":[1],"resetVpsButton":[16],"slidePosition":[32],"width":[32],"wrongImageFormat":[32],"trackingDeactivated":[32]},[[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"],[0,"vviinnImageCrop","trachSearchAreaChanges"],[0,"vviinnSelectObject","trackDetectedObject"],[0,"vviinnSelectFilter","trackFilter"]]]]],["vviinn-vps-button",[[1,"vviinn-vps-button",{"token":[1],"currencySign":[1,"currency-sign"],"locale":[1],"campaignId":[1,"campaign-id"],"addStyle":[4,"add-style"],"mode":[1],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonPressed":[32]},[[0,"vviinnWidgetClose","handleModalClosed"]]]]],["vviinn-recommendations-sidebar",[[1,"vviinn-recommendations-sidebar",{"sidebarTitle":[1,"sidebar-title"],"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"widgetScrollbar":[4,"widget-scrollbar"],"mode":[1],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"showingInButton":[4,"showing-in-button"],"state":[32]},[[16,"click","bodyClickListener"]]]]],["vviinn-vpr-button",[[1,"vviinn-vpr-button",{"token":[1],"productId":[1,"product-id"],"position":[1],"sourceImage":[1,"source-image"],"sidebarTitle":[1,"sidebar-title"],"modalScrollbar":[4,"modal-scrollbar"],"campaigns":[1],"campaignType":[1,"campaign-type"],"color":[1],"addStyle":[4,"add-style"],"mode":[1],"imageWidth":[2,"image-width"],"currencySign":[1,"currency-sign"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"]}]]],["vviinn-image-view",[[1,"vviinn-image-view",{"basicEventData":[16]}]]],["vviinn-onboarding",[[1,"vviinn-onboarding"]]],["vviinn-example-images",[[1,"vviinn-example-images",{"basicEventData":[16]}]]],["vviinn-overlayed-modal",[[1,"vviinn-overlayed-modal",{"active":[4],"resetState":[16],"buttonElementId":[1,"button-element-id"],"hideBackButton":[4,"hide-back-button"],"widgetVersion":[1,"widget-version"]}]]],["vviinn-vpr-widget",[[1,"vviinn-vpr-widget",{"blockTitle":[1,"block-title"],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"productId":[1,"product-id"],"token":[1],"currencySign":[1,"currency-sign"],"pricePrefix":[1,"price-prefix"],"mode":[1],"campaignType":[1,"campaign-type"],"locale":[1],"campaigns":[1],"color":[1],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"noResultText":[1,"no-result-text"],"noResultShow":[4,"no-result-show"],"showScroll":[4,"show-scroll"],"cssUrl":[1,"css-url"],"excluded":[1],"productDetailNewTab":[4,"product-detail-new-tab"],"apiPath":[1,"api-path"],"useCarousel":[4,"use-carousel"],"showingInButton":[4,"showing-in-button"],"buttonElementId":[1,"button-element-id"],"recommendations":[32],"trackingDeactivated":[32],"hasErrorOnLoad":[32]},[[0,"vviinnProductLoad","handleProductLoading"],[0,"vviinnProductView","trackProductView"],[0,"vviinnProductClick","trackProductClick"]]]]],["vviinn-empty-results",[[1,"vviinn-empty-results"]]],["vviinn-image-selector",[[1,"vviinn-image-selector",{"basicEventData":[16],"startUpload":[4,"start-upload"],"resetVpsButton":[16]}]]],["vviinn-server-error",[[1,"vviinn-server-error",{"handler":[16]}]]],["vviinn-wrong-format",[[1,"vviinn-wrong-format",{"handler":[16]}]]],["search-filters",[[1,"search-filters",{"filter":[16],"basicEventData":[16],"selectedFilter":[32],"hideFilters":[32]}]]],["vviinn-button",[[1,"vviinn-button",{"addStyle":[4,"add-style"]}]]],["vviinn-privacy-badge",[[1,"vviinn-privacy-badge"]]],["vviinn-teaser",[[1,"vviinn-teaser"]]],["image-cropper",[[1,"image-cropper",{"disabled":[4],"basicEventData":[16],"handleMove":[32]}]]],["vviinn-carousel",[[0,"vviinn-carousel",{"mode":[1],"imageWidth":[2,"image-width"],"showScroll":[4,"show-scroll"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"gridArrowsDynamic":[4,"grid-arrows-dynamic"],"recommendations":[16],"widgetVersion":[1,"widget-version"],"moveDirection":[32],"contentGroups":[32],"activeContentGroup":[32],"isRTL":[32]}]]],["vviinn-example-image",[[1,"vviinn-example-image",{"src":[1],"width":[2],"height":[2],"basicEventData":[16],"selected":[32]}]]],["highlight-box",[[1,"highlight-box"]]],["vviinn-detected-object",[[1,"vviinn-detected-object",{"detectedObject":[16],"basicEventData":[16],"position":[32]}]]],["vviinn-modal",[[1,"vviinn-modal",{"active":[1540],"resetState":[16],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"hideBackButton":[4,"hide-back-button"],"slider":[32]}]]],["vviinn-onboarding-card-1",[[1,"vviinn-onboarding-card-1"]]],["vviinn-onboarding-card-2",[[1,"vviinn-onboarding-card-2"]]],["vviinn-onboarding-card-3",[[1,"vviinn-onboarding-card-3"]]],["vviinn-overlay",[[1,"vviinn-overlay"]]],["vviinn-slide",[[1,"vviinn-slide"]]],["vviinn-slider",[[1,"vviinn-slider",{"showBullets":[4,"show-bullets"],"position":[514],"showArrows":[4,"show-arrows"],"elementsCount":[32],"internalPosition":[32],"swipeStartPosition":[32],"isRTL":[32]}]]],["cropper-handler",[[1,"cropper-handler",{"handler":[16],"disabled":[4]}]]],["vviinn-error",[[1,"vviinn-error"]]],["vviinn-preloader",[[1,"vviinn-preloader"]]],["vviinn-product-card",[[1,"vviinn-product-card",{"brand":[1],"currency":[1],"deeplink":[1],"image":[1],"imageRatio":[2,"image-ratio"],"imageWidth":[2,"image-width"],"locale":[1],"price":[2],"pricePrefix":[1,"price-prefix"],"productId":[1,"product-id"],"productTitle":[1,"product-title"],"productType":[1,"product-type"],"salePrice":[2,"sale-price"],"responsive":[4],"dimmedBackground":[4,"dimmed-background"],"campaignTypeId":[1,"campaign-type-id"],"widgetElementId":[1,"widget-element-id"],"buttonElementId":[1,"button-element-id"],"widgetVersion":[1,"widget-version"],"index":[2],"imageLoaded":[32]}]]]], options);
161
+ });
@@ -1 +1 @@
1
- import{r as t,h as i,H as e,c as s,g as n}from"./p-fa17e81f.js";import{O as r,o,i as a,a as l,t as h,q as c,r as d,u as p,v as u,w as g,x as v,y as m,z as b,B as x,E as f,C as w,D as y,F as k,G as z,N as C}from"./p-90e24b10.js";import{p as L,q as D,u as _}from"./p-3b99c62d.js";import{s as F}from"./p-53eacbe3.js";import{c as j}from"./p-badde98c.js";import{O as S,c as E,d as W,A as M}from"./p-60ea7665.js";const B=class{constructor(i){t(this,i)}getInsetValue(){return L(o(a.searchArea,a.imageBounds),r.map((([t,i])=>{return`inset(${(e=t,s=i,n={top:`${e.y}px`,right:s.width-(e.x+e.width)+"px",bottom:s.height-(e.y+e.height)+"px",left:`${e.x}px`}).top} ${n.right} ${n.bottom} ${n.left})`;var e,s,n})),r.getOrElse((()=>"")))}renderImage(){return L(o(a.imageUrl,a.imageBounds),r.map((([t,e])=>i("img",{src:t,width:e.width,height:e.height,style:{"clip-path":`${this.getInsetValue()}`}}))),r.getOrElse((()=>"")))}render(){return i(e,null,this.renderImage())}};B.style=':host{display:grid;position:absolute;box-sizing:border-box;border:none;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;--size:10px;--x-position:0;--y-position:0}img{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pointer{position:absolute;width:var(--size);height:var(--size);background:black;border-radius:50%;z-index:2;cursor:pointer;transform:translate(var(--x-position), var(--y-position)) scale(0);animation:0.25s linear fadein;animation-fill-mode:forwards}.pointer::after{content:"";cursor:pointer;border:5px solid black;border-radius:50%;width:var(--size);height:var(--size);display:block;transform:translate(calc(-50% + var(--size) * 0.5), calc(-50% + var(--size) * 0.5));padding:calc(var(--size) * 0.5);opacity:.75}@keyframes fadein{from{transform:translate(var(--x-position), var(--y-position)) scale(0)}to{transform:translate(var(--x-position), var(--y-position)) scale(1)}}';const I=class{constructor(i){t(this,i),this.vviinnImageCrop=s(this,"vviinnImageCrop",7),this.mouseStartPoint=void 0,this.bounds=void 0,this.resizeObserver=new ResizeObserver((()=>{this.bounds=this.el.getBoundingClientRect()})),this.disabled=!1,this.basicEventData=void 0,this.handleMove=!1}componentDidLoad(){this.resizeObserver.observe(this.el)}disconnectedCallback(){this.resizeObserver.disconnect()}handleHandlerMove(t){t.preventDefault(),t.stopPropagation();const i=_(t),e={position:D.concat(i,this.mouseStartPoint),direction:this.handlerMoveDirection};l.pipe(a.searchArea,r.map((t=>{const s=h(t,e);this.outOfBounds(s)||(a.searchArea=r.some(s),this.mouseStartPoint=i,a.detectedObject=void 0)})))}outOfBounds(t){return t.width<40||t.height<40||t.x<0||t.y<0||this.bounds.height-(t.y+t.height)<0||this.bounds.width-(t.x+t.width)<0}handleCropperMove(t){t.preventDefault(),t.stopPropagation();const i=_(t),e=D.concat(i,this.mouseStartPoint);l.pipe(a.searchArea,r.map((t=>{const s=c(t,e);s.x<0||s.y<0||this.bounds.height-(s.y+s.height)<0||this.bounds.width-(s.x+s.width)<0||(a.detectedObject=void 0,a.searchArea=r.some(s),this.mouseStartPoint=i)})))}handlePointerDown(t){t.stopPropagation(),this.mouseStartPoint=_(t);const i=t.target;"cropper-handler"===i.localName?(this.handlerMoveDirection=i.handler.direction,this.pointerMoveListener=this.handleHandlerMove.bind(this)):this.pointerMoveListener=this.handleCropperMove.bind(this),this.pointerReleaseListener=this.handleSearchAreaRelease.bind(this),this.el.addEventListener("pointermove",this.pointerMoveListener),window.addEventListener("pointerup",this.pointerReleaseListener,{once:!0})}handleSearchAreaRelease(){this.el.removeEventListener("pointermove",this.pointerMoveListener),document.removeEventListener("pointerup",this.pointerReleaseListener),this.mouseStartPoint=void 0,d(),this.vviinnImageCrop.emit(this.basicEventData)}getStyleMap(){return l.pipe(a.searchArea,r.map((t=>({width:`${t.width}px`,height:`${t.height}px`,transform:`translate3d(${t.x}px, ${t.y}px, 0)`,cursor:this.handleMove?"move":"default"}))),r.getOrElse((()=>({}))))}render(){return i(e,{exportparts:"handle, e-resize, n-resize, ne-resize, nw-resize, s-resize, se-resize, sw-resize, w-resize"},i("div",{class:{"crop-area":!0,active:this.handleMove,disabled:this.disabled},draggable:!1,style:this.getStyleMap(),onContextMenu:()=>!1,onPointerDown:t=>this.handlePointerDown(t)},a.cropperHandlers.map((t=>i("cropper-handler",{disabled:this.disabled,handler:t,onPointerDown:t=>this.handlePointerDown(t)})))))}get el(){return n(this)}};I.style=":host{display:block;height:100%;left:0;position:absolute;top:0;width:100%}:host(.hidden){visibility:hidden}.crop-area{border:1px solid white;box-sizing:border-box;position:absolute;touch-action:none;transition-property:border-color, opacity;transition-duration:.25s;transition-timing-function:ease-in-out;z-index:2;position:relative;will-change:transform}.crop-area.active{border-color:whitesmoke}.crop-area.disabled{opacity:0.25}";const O=(t,i)=>{if(!t)return"";const e={};return t.href.split("?")[1].split("included[]=").join("").split("&").forEach((t=>{const[i,s]=t.split("%3A");e[i]=s})),"categories"===i?e.product_type:e[i]},G=class{constructor(i){t(this,i),this.vviinnSelectFilter=s(this,"vviinnSelectFilter",7),this.filterType=this.filter.name,this.filter=null,this.basicEventData=void 0,this.selectedFilter="",this.hideFilters=!0}handleFilterSelection(t){return this.isFilterSelected(t)?this.clearSelectedFilter(t):this.selectFilter(t)}selectFilter(t){a.activeIonLink=t,this.selectedFilter=O(t,this.filterType),this.vviinnSelectFilter.emit(Object.assign(Object.assign({},this.basicEventData),{action:"select",filterName:t.name}))}clearSelectedFilter(t){a.activeIonLink=t.clear,this.selectedFilter=O(t.clear,this.filterType),this.vviinnSelectFilter.emit(Object.assign(Object.assign({},this.basicEventData),{action:"deselect"}))}toggleFilters(){this.hideFilters=!this.hideFilters}handleEnter(t,i){"Enter"===t.key&&this.handleFilterSelection(i)}isFilterSelected(t){return"categories"===this.filterType?this.selectedFilter===O(t,"categories"):this.selectedFilter===t.name}render(){if(!this.filter)return null;const{name:t,filters:s}=this.filter;return i(e,{exportparts:"filter, show-more-filters"},i("div",{class:{filters:!0,"no-scrollbar-mobile":"categories"===this.filterType,"no-scrollbar":"categories"!==this.filterType}},s.filter(((t,i)=>!this.hideFilters||i<5)).map(((e,s)=>{const n="categories"===t?this.selectedFilter===O(e,"categories"):this.selectedFilter===e.name;return i("div",{role:"button",tabindex:"0",key:s,part:n?"filter active":"filter",class:{filter:!0,active:n},style:{"animation-delay":10*s+"ms"},onPointerUp:t=>{a.loading||(t.stopPropagation(),this.handleFilterSelection(e))},onKeyPress:t=>{a.loading||this.handleEnter(t,e)}},e.name)})),this.hideFilters&&i("div",{class:{"show-more":!0,hidden:s.length<=5,active:!this.hideFilters},role:"button",tabindex:"0","aria-role":"button",onClick:()=>{setTimeout((()=>this.toggleFilters()),300)},onKeyPress:t=>{"Enter"===t.key&&this.toggleFilters()},part:"show-more-filters"})))}get el(){return n(this)}};G.style=".filters{display:flex;flex-direction:row;overflow-x:auto;padding-left:24px;padding-right:12px;margin-bottom:12px}.filter{align-items:center;color:#525252;cursor:pointer;display:flex;margin-right:12px;height:-moz-max-content;height:max-content;min-width:-moz-max-content;min-width:max-content;transition-property:background;transition-duration:0.5s;transition-timing-function:ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:10px 12px}.show-more{display:flex}.show-more.hidden{display:none !important}.show-more::after{position:relative;content:url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 12.2l-6-6L3.2 5 8 9.8 12.8 5 14 6.2l-6 6z' fill='%23525252'/%3E%3C/svg%3E\");display:block;transform:rotate(-90deg);left:2px}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media (max-width: 640px){.no-scrollbar-mobile{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar-mobile::-webkit-scrollbar{display:none}}";const P=class{constructor(i){t(this,i),this.vviinnSelectObject=s(this,"vviinnSelectObject",7),this.detectedObject=void 0,this.basicEventData=void 0,this.position=["0","0"]}getObjectPosition(){return l.pipe(a.imageBounds,r.map((t=>{const i=p(u(this.detectedObject).rectangle),{x:e,y:s}=l.pipe(i,g(t),v);return[`${e}px`,`${s}px`]})),r.getOrElse((()=>["0","0"])))}selectDetectedObject(){l.pipe(a.imageBounds,r.map((t=>{const i=u(this.detectedObject).rectangle,e=p(i),s=g(t)(e);a.detectedObject=this.detectedObject,a.searchArea=r.some(s)}))),d(),this.vviinnSelectObject.emit(Object.assign(Object.assign({},this.basicEventData),{detectedObject:this.detectedObject}))}isActive(){if(!this.detectedObject)return!1;if(!a.detectedObject)return!1;const t=u(this.detectedObject),i=u(a.detectedObject);return m.equals(t,i)}render(){return i(e,{class:{active:this.isActive()},onClick:()=>this.selectDetectedObject(),style:{"--x-position":this.getObjectPosition()[0],"--y-position":this.getObjectPosition()[1]}})}};P.style=':host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{--size:32px;--x-position:0;--y-position:0;background:rgba(22, 22, 22, 0.5);border-radius:50%;border:none;cursor:pointer;display:block;height:var(--size);position:absolute;transition:opacity 0.25s;width:var(--size);z-index:2;transform:translate(calc(var(--x-position) - (var(--size) * 0.5)), calc(var(--y-position) - (var(--size) * 0.5)));transition:background 0.1 ease-in-out}:host(:hover){background:rgba(22, 22, 22, 0.75)}:host(.active){background:var(--color-primary, var(--color-primary-system))!important;border:2px solid white}:host::after{--size:32px;border-radius:50%;content:"";cursor:pointer;display:block;height:calc(var(--size) * 0.25);transform:translate(calc(-50% + var(--size) * 0.5), calc(-50% + var(--size) * 0.5));width:calc(var(--size) * 0.25);background:white}';const T=class{constructor(i){t(this,i)}render(){return i(e,null,i("vviinn-error",null,i("svg",{slot:"icon",class:"icon",width:"32",height:"32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M16 2a14 14 0 1 0 0 28 14 14 0 0 0 0-28Zm0 26a12 12 0 1 1 0-24 12 12 0 0 1 0 24Z",fill:"#525252"}),i("path",{d:"M17 8h-2v11h2V8Zm-1 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z",fill:"#525252"})),i("h4",{slot:"title"},"Leider nichts gefunden"),i("span",{slot:"text"},"Leider konnten wir keine passenden Produkte finden. Bitte versuche es mit einem anderen Bildausschnitt noch einmal.")))}};T.style=":host{display:grid}vviinn-error{justify-items:center}";const $=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.src="",this.width=0,this.height=0,this.basicEventData=void 0,this.selected=!1}async selectImage(){this.selected=!0;const t=await b(this.src),i=await x(t);l.pipe(i,f.match((()=>this.vviinnNoResult.emit(this.basicEventData)),(()=>this.vviinnImageUpload.emit(this.basicEventData)))),this.selected=!1}handleKeyPress({key:t}){"Enter"!==t&&" "!==t||this.selectImage()}showPreloader(){return(a.objectDetectionInProgress||a.loading)&&this.selected}render(){return i(e,{onClick:()=>this.selectImage(),onKeyUp:t=>this.handleKeyPress(t)},this.showPreloader()?i("div",{class:"image-preloader"},i("vviinn-preloader",null)):null,i("img",{src:this.src,width:this.width,height:this.height,tabindex:1}))}};$.style=":host{display:block;margin-bottom:8px;position:relative}:host(:focus){border:2px solid var(--color-primary)}img{width:100%;height:auto;cursor:pointer}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:12px;display:none;padding:4px 6px;position:absolute;right:12px;z-index:4}vviinn-preloader{--preloader-size:12px}@media (max-width: 640px){.image-preloader{display:block}}";const A=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.basicEventData=void 0}componentWillLoad(){F(this,this.el)}delegateFocus(){this.imagesBlock.childNodes[0].childNodes[0].focus()}render(){return i(e,{onFocus:()=>this.delegateFocus()},i("slot",{name:"vviinn-example-images-title"},i("h3",null,"Mit den Beispielbildern die Suche direkt ausprobieren")),i("div",{class:"images",ref:t=>this.imagesBlock=t},i("slot",{name:"vviinn-example-images-1"},i("vviinn-example-image",{width:480,height:640,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-2"},i("vviinn-example-image",{width:280,height:480,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-3"},i("vviinn-example-image",{width:280,height:480,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-4"},i("vviinn-example-image",{width:480,height:640,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=",basicEventData:this.basicEventData}))))}get el(){return n(this)}};A.style="h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}.images{display:block;-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px}";const V=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.basicEventData=void 0,this.startUpload=void 0,this.resetVpsButton=void 0}async handleInputChange(t){const i=t.target,e=await x(i.files[0]);l.pipe(e,w((()=>this.vviinnNoResult.emit(this.basicEventData)),(()=>this.vviinnImageUpload.emit(this.basicEventData)))),i.value=null}isLoading(){return a.loading}startUploadWatcher(t){t&&(this.fileInput.click(),this.resetVpsButton())}render(){return i(e,{exportparts:"button"},this.isLoading()?i("vviinn-preloader",null):null,this.isLoading()?null:i("label",{htmlFor:"fileInput",part:"button"},i("slot",{name:"upload-button-text"},"Upload image")),i("input",{id:"fileInput",class:"visually-hidden",type:"file",accept:"image/*",onChange:t=>this.handleInputChange(t),ref:t=>this.fileInput=t}))}static get watchers(){return{startUpload:["startUploadWatcher"]}}};V.style=":host{display:block}:host(::hover){background:whitesmoke}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}label{cursor:pointer;display:grid;width:100%;height:100%;transition:background 0.1s ease-in-out}";const H=class{constructor(i){t(this,i),this.basicEventData=void 0}handleInitialImageLoad(t){const i=y(t.target),{x:e,y:s}=c(i,{x:12,y:12}),n={x:e,y:s,width:i.width-24,height:i.height-24};a.imageBounds=r.some(i),a.searchArea=r.some(n)}renderDetectedObject(t){return i("vviinn-detected-object",{detectedObject:t,basicEventData:this.basicEventData})}renderImage(){return l.pipe(o(a.imageUrl,a.image),r.map((([t,e])=>{const[s,n]=(t=>{const i=k(t),e=z(288)(i).map((t=>t.size));return[e[0],e[1]]})(e);return i("img",{decoding:"async",width:s,height:n,src:t,onLoad:t=>this.handleInitialImageLoad(t),draggable:!1})})),r.getOrElse((()=>null)))}renderCropper(){return l.pipe(a.imageUrl,r.map((()=>i("image-cropper",{basicEventData:this.basicEventData}))),r.getOrElse((()=>null)))}render(){return i(e,null,a.loading||a.objectDetectionInProgress?i("div",{class:"image-preloader"},i("vviinn-preloader",null)):null,i("highlight-box",null),this.renderImage(),this.renderCropper(),a.detectedObjects.map((t=>this.renderDetectedObject(t))))}};H.style=":host{display:grid;position:relative;justify-self:center;direction:ltr}img{box-sizing:border-box;filter:brightness(60%);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:-1}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:18px;padding:4px 6px;pointer-events:none;position:absolute;right:18px;z-index:4}vviinn-preloader{--preloader-size:12px}";const K=class{constructor(i){t(this,i),this.vviinnWidgetClose=s(this,"vviinnWidgetClose",7),this.active=!1,this.resetState=void 0,this.buttonElementId=void 0,this.widgetVersion=void 0,this.hideBackButton=!1,this.slider=!1}componentWillLoad(){F(this,this.el)}close(){this.active=!1,setTimeout((()=>{this.vviinnWidgetClose.emit({widgetType:"VPS",campaignTypeId:"VPS",campaignTypeName:j.VPS,widgetId:this.buttonElementId,widgetVersion:this.widgetVersion})}),this.slider?500:0)}handleAnimationEnd(t){"fade-in"===t.animationName&&(this.slider=!0)}render(){return i(e,{exportparts:"secondary-action, title, close-button",class:{closed:!this.active},onAnimationEnd:t=>this.handleAnimationEnd(t)},i("div",{class:"head"},!this.hideBackButton&&i("button",{part:"secondary-action",onClick:()=>this.resetState()},i("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M20.25 12H3.75",stroke:"#161616","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}),i("path",{d:"M10.5 5.25L3.75 12L10.5 18.75",stroke:"#161616","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))),i("div",{class:"title",part:"title"},i("slot",{name:"vviinn-image-search-modal-title"},"Bildsuche")),i("button",{onClick:()=>this.close(),class:"close-button",part:"close-button"},i("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M16 1.4L14.6 0L8 6.6L1.4 0L0 1.4L6.6 8L0 14.6L1.4 16L8 9.4L14.6 16L16 14.6L9.4 8L16 1.4Z",fill:"#333333"})))),i("div",{class:"body"},i("slot",null)))}get el(){return n(this)}};K.style=":host{background:white;border-radius:4px;box-sizing:border-box;display:grid;grid-template-rows:min-content auto;max-width:960px;overflow:auto}@media (max-width: 640px){:host{animation-name:fade-in;animation-duration:0.5s;animation-fill-mode:forwards}:host(.closed){animation-name:fade-out;animation-fill-mode:none}.body{overflow-y:auto}}.head{align-items:center;border-bottom:1px solid #f4f4f4;display:flex;padding:16px}.title{font-weight:600;font-size:18px;line-height:24px;margin:0 auto}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:grid;padding:unset}@keyframes fade-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-out{from{transform:translateY(0)}to{transform:translateY(100%)}}";const N=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",{name:"vviinn-onboarding-title"},i("h3",null,"So funktioniert es")),i("vviinn-slider",{showArrows:!0},i("vviinn-slide",null,i("vviinn-onboarding-card-1",null)),i("vviinn-slide",null,i("vviinn-onboarding-card-2",null)),i("vviinn-slide",null,i("vviinn-onboarding-card-3",null))))}get el(){return n(this)}};N.style=":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}::host{display:block}h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}vviinn-slide{background:#f4f4f4;padding:24px}svg{padding:16px 0}.text{display:grid;grid-gap:8px}.text>h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}.text>p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}";const R=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-1-icon"},i(S,null)),i("slot",{name:"onboarding-card-1-text"},i("div",{class:"text"},i("h4",null,"Starte die Bildsuche"),i("p",null,"Lade ein Bild aus Deiner Galerie hoch oder fotografiere ein Produkt mit Deiner Kamera."))))}get el(){return n(this)}};R.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const U=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-2-icon"},i(E,null)),i("slot",{name:"onboarding-card-2-text"},i("div",{class:"text"},i("h4",null,"Verfeiner Deine Suche"),i("p",null,"Du kannst den Bildrahmen selber festlegen und so die Produkte genau auswählen."))))}get el(){return n(this)}};U.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const Y=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-3-icon"},i(W,null)),i("slot",{name:"onboarding-card-3-text"},i("div",{class:"text"},i("h4",null,"Ohne Hintergrund"),i("p",null,"Die besten Ergebnisse erhältst Du, wenn das gesuchte Objekt mit einfarbigem und hellem Hintergrund zu sehen ist."))))}get el(){return n(this)}};Y.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const Z=class{constructor(i){t(this,i)}render(){return i(e,null,i("slot",null))}};Z.style=":host{animation:fade-in 0.5s ease-in-out;background:rgba(0, 0, 0, 0.5);display:block;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100vw;z-index:9999}@keyframes fade-in{from{opacity:0.1}to{opacity:1}}";const q=class{constructor(i){t(this,i),this.vviinnWidgetClose=s(this,"vviinnWidgetClose",7),this.active=!1,this.resetState=void 0,this.buttonElementId=void 0,this.hideBackButton=!1,this.widgetVersion=void 0}render(){return i(e,{class:{active:this.active}},i("vviinn-overlay",null,i("vviinn-modal",{resetState:this.resetState,active:this.active,buttonElementId:this.buttonElementId,hideBackButton:this.hideBackButton,widgetVersion:this.widgetVersion},i("slot",null,"CONTENT"))))}};q.style=":host{display:none}:host(.active){display:block}vviinn-overlay{align-items:center;display:grid;justify-items:center;cursor:default}@media (max-width: 640px){vviinn-modal{border-radius:4px 4px 0 0;height:100vh;margin-top:32px;transform:translateY(100%);width:100vw}vviinn-overlay{align-items:end;display:grid;justify-items:center}}";const X=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",null,i("div",{class:"content"},i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"},i("defs",null),i("path",{fill:"#525252",d:"M8.5 11V7h-2v1h1v3H6v1h4v-1H8.5zM8 4a.75.75 0 100 1.5A.75.75 0 008 4z"}),i("path",{fill:"#525252",d:"M8 15A7 7 0 118 1a7 7 0 010 14zM8 2a6 6 0 100 12A6 6 0 008 2z"})),i("slot",{name:"vviinn-privacy-badge-text"},i("p",null,"Durch das Hochladen eines Bildes willigst Du in die Verarbeitung durch unseren Partner Vviinn ein. Das Bild wird nach einer Stunde Inaktivität gelöscht.")))))}get el(){return n(this)}};X.style=":host{display:block;background:#F4F4F4;padding:17px}.content{display:grid;grid-template-columns:min-content auto;grid-gap:9px}.content p{color:#525252;font-size:12px;line-height:16px;margin:unset}";const Q=class{constructor(i){t(this,i),this.handler=void 0}render(){return i(e,null,i("vviinn-error",null,i("h4",{slot:"title"},"Keine Verbindung"),i("span",{slot:"text"},"Etwas hat leider nicht funktioniert. Bitte prüfen Sie Ihre Internetverbindung und laden Sie das Bild noch einmal hoch."),i("button",{slot:"action",onClick:this.handler},"Erneut versuchen")))}};Q.style=":host{display:block}";const J=class{constructor(i){t(this,i)}render(){return i(e,null,i("slot",null))}};J.style=":host{display:grid;justify-items:center}";const tt=({kind:t,tabindex:e,disabled:s,onClick:n,onKeyDown:r})=>{return i("div",{class:(o={kind:t,disabled:s},{"arrow-wrapper":!0,[o.kind]:!0,disabled:o.disabled}),onClick:n,tabindex:e,onKeyDown:r},i(M,null));var o},it=class{constructor(i){t(this,i),this.elementsCount=0,this.internalPosition=0,this.swipeStartPosition=r.none,this.isRTL=!1,this.showBullets=!0,this.position=0,this.showArrows=!1}positionWatchHandler(t){this.internalPosition=t,this.el.style.setProperty("--position",`${this.calculatePosition(t)}`),this.setActiveCssClassToSlide(t)}componentWillLoad(){this.isRTL="rtl"===document.dir}connectedCallback(){this.handleDomContentChanges()}handleDomContentChanges(){const t=this.el.querySelectorAll("vviinn-slide");this.elementsCount=t.length,this.el.style.setProperty("--num-items",`${this.elementsCount}`),this.setActiveCssClassToSlide(0)}setActiveCssClassToSlide(t){const i=this.el.querySelectorAll("vviinn-slide");i.forEach((t=>t.classList.remove("active"))),i[t].classList.add("active")}goToSlide(t){this.internalPosition=t,this.el.style.setProperty("--position",`${t}`),this.setActiveCssClassToSlide(t)}renderBullets(){return this.showBullets?i("div",{class:"controls"},C.range(0,this.elementsCount-1).map((t=>i("div",{class:{bullet:!0,active:t==Math.abs(this.internalPosition)%this.elementsCount},onClick:()=>this.goToSlide(t)})))):null}nextSlide(){this.internalPosition++,this.renderSlidePosition()}prevSlide(){const t=this.internalPosition-1;this.internalPosition=t>-1?t:this.elementsCount-1,this.renderSlidePosition()}renderSlidePosition(){const t=this.internalPosition%this.elementsCount;requestAnimationFrame((()=>{this.el.style.setProperty("--position",`${this.calculatePosition(t)}`)}))}calculatePosition(t){return this.isRTL?-1*t:t}handleKeyDown(t){if("Space"===t.key||"Enter"===t.key)switch(t.target.className.includes("prev")?"prev":"next"){case"prev":this.prevSlide();break;case"next":this.nextSlide()}}handleTouchStart(t){this.showBullets&&(this.swipeStartPosition=l.pipe(t.touches[0],r.fromNullable,r.map((t=>t.clientX))))}handleTouchEnd(t){if(!this.showBullets)return;const i=l.pipe(t.changedTouches[0],r.fromNullable,r.map((t=>t.clientX)));l.pipe(o(this.swipeStartPosition,i),r.map((([t,i])=>{return(e=t)<(s=i)?-1:e>s?1:0;var e,s})),r.map((t=>{switch(t){case 1:return this.nextSlide();case-1:return this.prevSlide()}})))}render(){return i(e,null,i("div",{class:"items-wrapper"},i("div",{class:"items",onTouchStart:t=>this.handleTouchStart(t),onTouchEnd:t=>this.handleTouchEnd(t)},i("slot",null))),this.showArrows?[i(tt,{kind:"prev",onClick:()=>this.isRTL?this.nextSlide():this.prevSlide(),onKeyDown:t=>this.handleKeyDown(t),tabindex:1,disabled:!1}),i(tt,{kind:"next",onClick:()=>this.isRTL?this.prevSlide():this.nextSlide(),onKeyDown:t=>this.handleKeyDown(t),tabindex:0,disabled:!1})]:null,this.renderBullets())}get el(){return n(this)}static get watchers(){return{position:["positionWatchHandler"]}}};it.style=":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{--num-items:0;--position:0;display:grid;grid-gap:20px;justify-items:center;position:relative}.items-wrapper{overflow:hidden;width:100%}.items{box-sizing:border-box;display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--num-items), 100%);transform:translateX(calc(-100% * var(--position)));transition:transform 0.33s ease-in-out}.controls{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--num-items), min-content)}.bullet{background:#e0e0e0;border-radius:50%;box-sizing:border-box;cursor:pointer;height:8px;width:8px;transition:background 0.1s ease-in-out}.bullet:hover{background:#c6c6c6}.bullet.active{background:var(--color-primary, var(--color-primary-system))}.bullet:active{background:transparent;border:2px solid var(--color-primary, var(--color-primary-system))}.arrow-wrapper{align-items:center;cursor:pointer;background:white;border:2px solid white;bottom:0;box-sizing:border-box;display:grid;height:calc(var(--spacer) * 6);justify-items:center;margin:auto;position:absolute;top:0;transform:translate3d(0, -50%, 0);transition:border 0.25ms ease-in-out;width:calc(var(--spacer) * 4)}.arrow-wrapper:active{border-color:var(--color-primary, var(--color-primary-system));opacity:0.75}.arrow-wrapper:focus{border-color:var(--color-primary, var(--color-primary-system));opacity:0.5;outline:none}.prev{left:0}.next{right:0}.next>svg{transform:rotate3d(0, 1, 0, 180deg)}.arrow-wrapper>svg{transition:fill 0.25ms ease-in-out;fill:#a8a8a8}.arrow-wrapper:hover>svg{fill:#8d8d8d}";const et=class{constructor(i){t(this,i)}componentWillLoad(){F(this,this.el)}render(){return i(e,null,i("slot",null,i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64",fill:"none"},i("defs",null),i("path",{fill:"#C6C6C6",d:"M48 28a11.98 11.98 0 00-9.77 18.942L28 57.172 30.828 60l10.23-10.23A11.994 11.994 0 1048 28zm0 20a8 8 0 118-8 8.009 8.009 0 01-8 8zM34 24a6 6 0 10-6-6 6.006 6.006 0 006 6zm0-8a2 2 0 110 4 2 2 0 010-4z"}),i("path",{fill:"#C6C6C6",d:"M24 48H8V35.993L18 26l11.172 11.172L32 34.336 20.828 23.165a4 4 0 00-5.656 0L8 30.336V8h40v12h4V8a4.004 4.004 0 00-4-4H8a4.004 4.004 0 00-4 4v40a4.005 4.005 0 004 4h16v-4z"})),i("span",{class:"vviinn-teaser-text"},i("slot",{name:"vviinn-teaser-text"},"Finde Produkte auf ",i("br",null)," einem Foto"))))}get el(){return n(this)}};et.style=":host{align-items:center;display:grid;justify-items:center;grid-gap:16px}.vviinn-teaser-text{font-size:28px;font-weight:600;line-height:40px;size:28px;text-align:center}";const st=class{constructor(i){t(this,i),this.handler=void 0}render(){return i(e,null,i("vviinn-error",null,i("h4",{slot:"title"},"Dateityp wird nicht unterstützt"),i("span",{slot:"text"},"Leider unterstützen wir dieses Format nicht. Bitte laden Sie eine .jpg, .png oder .webp Bilddatei hoch."),i("button",{slot:"action",onClick:this.handler},"Neues Bild hochladen")))}};st.style=":host{display:block}";export{B as highlight_box,I as image_cropper,G as search_filters,P as vviinn_detected_object,T as vviinn_empty_results,$ as vviinn_example_image,A as vviinn_example_images,V as vviinn_image_selector,H as vviinn_image_view,K as vviinn_modal,N as vviinn_onboarding,R as vviinn_onboarding_card_1,U as vviinn_onboarding_card_2,Y as vviinn_onboarding_card_3,Z as vviinn_overlay,q as vviinn_overlayed_modal,X as vviinn_privacy_badge,Q as vviinn_server_error,J as vviinn_slide,it as vviinn_slider,et as vviinn_teaser,st as vviinn_wrong_format}
1
+ import{r as t,h as i,H as e,c as s,g as n}from"./p-fa17e81f.js";import{O as r,o,i as a,a as l,t as h,q as c,r as d,u as p,v as u,w as g,x as m,y as v,z as b,B as x,E as f,C as w,D as y,F as k,G as z,N as C}from"./p-90e24b10.js";import{p as L,q as j,u as D}from"./p-3b99c62d.js";import{s as _}from"./p-53eacbe3.js";import{c as F}from"./p-badde98c.js";import{O as S,c as E,d as W,A as M}from"./p-60ea7665.js";const B=class{constructor(i){t(this,i)}getInsetValue(){return L(o(a.searchArea,a.imageBounds),r.map((([t,i])=>{return`inset(${(e=t,s=i,n={top:`${e.y}px`,right:s.width-(e.x+e.width)+"px",bottom:s.height-(e.y+e.height)+"px",left:`${e.x}px`}).top} ${n.right} ${n.bottom} ${n.left})`;var e,s,n})),r.getOrElse((()=>"")))}renderImage(){return L(o(a.imageUrl,a.imageBounds),r.map((([t,e])=>i("img",{src:t,width:e.width,height:e.height,style:{"clip-path":`${this.getInsetValue()}`}}))),r.getOrElse((()=>"")))}render(){return i(e,null,this.renderImage())}};B.style=':host{display:grid;position:absolute;box-sizing:border-box;border:none;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;--size:10px;--x-position:0;--y-position:0}img{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pointer{position:absolute;width:var(--size);height:var(--size);background:black;border-radius:50%;z-index:2;cursor:pointer;transform:translate(var(--x-position), var(--y-position)) scale(0);animation:0.25s linear fadein;animation-fill-mode:forwards}.pointer::after{content:"";cursor:pointer;border:5px solid black;border-radius:50%;width:var(--size);height:var(--size);display:block;transform:translate(calc(-50% + var(--size) * 0.5), calc(-50% + var(--size) * 0.5));padding:calc(var(--size) * 0.5);opacity:.75}@keyframes fadein{from{transform:translate(var(--x-position), var(--y-position)) scale(0)}to{transform:translate(var(--x-position), var(--y-position)) scale(1)}}';const I=class{constructor(i){t(this,i),this.vviinnImageCrop=s(this,"vviinnImageCrop",7),this.mouseStartPoint=void 0,this.bounds=void 0,this.resizeObserver=new ResizeObserver((()=>{this.bounds=this.el.getBoundingClientRect()})),this.disabled=!1,this.basicEventData=void 0,this.handleMove=!1}componentDidLoad(){this.resizeObserver.observe(this.el)}disconnectedCallback(){this.resizeObserver.disconnect()}handleHandlerMove(t){t.preventDefault(),t.stopPropagation();const i=D(t),e={position:j.concat(i,this.mouseStartPoint),direction:this.handlerMoveDirection};l.pipe(a.searchArea,r.map((t=>{const s=h(t,e);this.outOfBounds(s)||(a.searchArea=r.some(s),this.mouseStartPoint=i,a.detectedObject=void 0)})))}outOfBounds(t){return t.width<40||t.height<40||t.x<0||t.y<0||this.bounds.height-(t.y+t.height)<0||this.bounds.width-(t.x+t.width)<0}handleCropperMove(t){t.preventDefault(),t.stopPropagation();const i=D(t),e=j.concat(i,this.mouseStartPoint);l.pipe(a.searchArea,r.map((t=>{const s=c(t,e);s.x<0||s.y<0||this.bounds.height-(s.y+s.height)<0||this.bounds.width-(s.x+s.width)<0||(a.detectedObject=void 0,a.searchArea=r.some(s),this.mouseStartPoint=i)})))}handlePointerDown(t){t.stopPropagation(),this.mouseStartPoint=D(t);const i=t.target;"cropper-handler"===i.localName?(this.handlerMoveDirection=i.handler.direction,this.pointerMoveListener=this.handleHandlerMove.bind(this)):this.pointerMoveListener=this.handleCropperMove.bind(this),this.pointerReleaseListener=this.handleSearchAreaRelease.bind(this),this.el.addEventListener("pointermove",this.pointerMoveListener),window.addEventListener("pointerup",this.pointerReleaseListener,{once:!0})}handleSearchAreaRelease(){this.el.removeEventListener("pointermove",this.pointerMoveListener),document.removeEventListener("pointerup",this.pointerReleaseListener),this.mouseStartPoint=void 0,d(),this.vviinnImageCrop.emit(this.basicEventData)}getStyleMap(){return l.pipe(a.searchArea,r.map((t=>({width:`${t.width}px`,height:`${t.height}px`,transform:`translate3d(${t.x}px, ${t.y}px, 0)`,cursor:this.handleMove?"move":"default"}))),r.getOrElse((()=>({}))))}render(){return i(e,{exportparts:"handle, e-resize, n-resize, ne-resize, nw-resize, s-resize, se-resize, sw-resize, w-resize"},i("div",{class:{"crop-area":!0,active:this.handleMove,disabled:this.disabled},draggable:!1,style:this.getStyleMap(),onContextMenu:()=>!1,onPointerDown:t=>this.handlePointerDown(t)},a.cropperHandlers.map((t=>i("cropper-handler",{disabled:this.disabled,handler:t,onPointerDown:t=>this.handlePointerDown(t)})))))}get el(){return n(this)}};I.style=":host{display:block;height:100%;left:0;position:absolute;top:0;width:100%}:host(.hidden){visibility:hidden}.crop-area{border:1px solid white;box-sizing:border-box;position:absolute;touch-action:none;transition-property:border-color, opacity;transition-duration:.25s;transition-timing-function:ease-in-out;z-index:2;position:relative;will-change:transform}.crop-area.active{border-color:whitesmoke}.crop-area.disabled{opacity:0.25}";const O=(t,i)=>{if(!t)return"";const e={};return t.href.split("?")[1].split("included[]=").join("").split("&").forEach((t=>{const[i,s]=t.split("%3A");e[i]=s})),"categories"===i?e.product_type:e[i]},G=class{constructor(i){t(this,i),this.vviinnSelectFilter=s(this,"vviinnSelectFilter",7),this.filterType=this.filter.name,this.filter=null,this.basicEventData=void 0,this.selectedFilter="",this.hideFilters=!0}handleFilterSelection(t){return this.isFilterSelected(t)?this.clearSelectedFilter(t):this.selectFilter(t)}selectFilter(t){a.activeIonLink=t,this.selectedFilter=O(t,this.filterType),this.vviinnSelectFilter.emit(Object.assign(Object.assign({},this.basicEventData),{action:"select",filterName:t.name}))}clearSelectedFilter(t){a.activeIonLink=t.clear,this.selectedFilter=O(t.clear,this.filterType),this.vviinnSelectFilter.emit(Object.assign(Object.assign({},this.basicEventData),{action:"deselect"}))}toggleFilters(){this.hideFilters=!this.hideFilters}handleEnter(t,i){"Enter"===t.key&&this.handleFilterSelection(i)}isFilterSelected(t){return"categories"===this.filterType?this.selectedFilter===O(t,"categories"):this.selectedFilter===t.name}render(){if(!this.filter)return null;const{name:t,filters:s}=this.filter;return i(e,{exportparts:"filter, show-more-filters"},i("div",{class:{filters:!0,"no-scrollbar-mobile":"categories"===this.filterType,"no-scrollbar":"categories"!==this.filterType}},s.filter(((t,i)=>!this.hideFilters||i<5)).map(((e,s)=>{const n="categories"===t?this.selectedFilter===O(e,"categories"):this.selectedFilter===e.name;return i("div",{role:"button",tabindex:"0",key:s,part:n?"filter active":"filter",class:{filter:!0,active:n},style:{"animation-delay":10*s+"ms"},onPointerUp:t=>{a.loading||(t.stopPropagation(),this.handleFilterSelection(e))},onKeyPress:t=>{a.loading||this.handleEnter(t,e)}},e.name)})),this.hideFilters&&i("div",{class:{"show-more":!0,hidden:s.length<=5,active:!this.hideFilters},role:"button",tabindex:"0","aria-role":"button",onClick:()=>{setTimeout((()=>this.toggleFilters()),300)},onKeyPress:t=>{"Enter"===t.key&&this.toggleFilters()},part:"show-more-filters"})))}get el(){return n(this)}};G.style=".filters{display:flex;flex-direction:row;overflow-x:auto;padding-left:24px;padding-right:12px;margin-bottom:12px}.filter{align-items:center;color:#525252;cursor:pointer;display:flex;margin-right:12px;height:-moz-max-content;height:max-content;min-width:-moz-max-content;min-width:max-content;transition-property:background;transition-duration:0.5s;transition-timing-function:ease-in-out;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:10px 12px}.show-more{display:flex}.show-more.hidden{display:none !important}.show-more::after{position:relative;content:url(\"data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 12.2l-6-6L3.2 5 8 9.8 12.8 5 14 6.2l-6 6z' fill='%23525252'/%3E%3C/svg%3E\");display:block;transform:rotate(-90deg);left:2px}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media (max-width: 640px){.no-scrollbar-mobile{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar-mobile::-webkit-scrollbar{display:none}}";const P=class{constructor(i){t(this,i),this.vviinnSelectObject=s(this,"vviinnSelectObject",7),this.detectedObject=void 0,this.basicEventData=void 0,this.position=["0","0"]}getObjectPosition(){return l.pipe(a.imageBounds,r.map((t=>{const i=p(u(this.detectedObject).rectangle),{x:e,y:s}=l.pipe(i,g(t),m);return[`${e}px`,`${s}px`]})),r.getOrElse((()=>["0","0"])))}selectDetectedObject(){l.pipe(a.imageBounds,r.map((t=>{const i=u(this.detectedObject).rectangle,e=p(i),s=g(t)(e);a.detectedObject=this.detectedObject,a.searchArea=r.some(s)}))),d(),this.vviinnSelectObject.emit(Object.assign(Object.assign({},this.basicEventData),{detectedObject:this.detectedObject}))}isActive(){if(!this.detectedObject)return!1;if(!a.detectedObject)return!1;const t=u(this.detectedObject),i=u(a.detectedObject);return v.equals(t,i)}render(){return i(e,{class:{active:this.isActive()},onClick:()=>this.selectDetectedObject(),style:{"--x-position":this.getObjectPosition()[0],"--y-position":this.getObjectPosition()[1]}})}};P.style=':host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{--size:32px;--x-position:0;--y-position:0;background:rgba(22, 22, 22, 0.5);border-radius:50%;border:none;cursor:pointer;display:block;height:var(--size);position:absolute;transition:opacity 0.25s;width:var(--size);z-index:2;transform:translate(calc(var(--x-position) - (var(--size) * 0.5)), calc(var(--y-position) - (var(--size) * 0.5)));transition:background 0.1 ease-in-out}:host(:hover){background:rgba(22, 22, 22, 0.75)}:host(.active){background:var(--color-primary, var(--color-primary-system))!important;border:2px solid white}:host::after{--size:32px;border-radius:50%;content:"";cursor:pointer;display:block;height:calc(var(--size) * 0.25);transform:translate(calc(-50% + var(--size) * 0.5), calc(-50% + var(--size) * 0.5));width:calc(var(--size) * 0.25);background:white}';const T=class{constructor(i){t(this,i)}render(){return i(e,null,i("vviinn-error",null,i("svg",{slot:"icon",class:"icon",width:"32",height:"32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M16 2a14 14 0 1 0 0 28 14 14 0 0 0 0-28Zm0 26a12 12 0 1 1 0-24 12 12 0 0 1 0 24Z",fill:"#525252"}),i("path",{d:"M17 8h-2v11h2V8Zm-1 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z",fill:"#525252"})),i("h4",{slot:"title"},"Leider nichts gefunden"),i("span",{slot:"text"},"Leider konnten wir keine passenden Produkte finden. Bitte versuche es mit einem anderen Bildausschnitt noch einmal.")))}};T.style=":host{display:grid}vviinn-error{justify-items:center}";const $=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.src="",this.width=0,this.height=0,this.basicEventData=void 0,this.selected=!1}async selectImage(){this.selected=!0;const t=await b(this.src),i=await x(t);l.pipe(i,f.match((()=>this.vviinnNoResult.emit(this.basicEventData)),(()=>this.vviinnImageUpload.emit(this.basicEventData)))),this.selected=!1}handleKeyPress({key:t}){"Enter"!==t&&" "!==t||this.selectImage()}showPreloader(){return(a.objectDetectionInProgress||a.loading)&&this.selected}render(){return i(e,{onClick:()=>this.selectImage(),onKeyUp:t=>this.handleKeyPress(t)},this.showPreloader()?i("div",{class:"image-preloader"},i("vviinn-preloader",null)):null,i("img",{src:this.src,width:this.width,height:this.height,tabindex:1}))}};$.style=":host{display:block;margin-bottom:8px;position:relative}:host(:focus){border:2px solid var(--color-primary)}img{width:100%;height:auto;cursor:pointer}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:12px;display:none;padding:4px 6px;position:absolute;right:12px;z-index:4}vviinn-preloader{--preloader-size:12px}@media (max-width: 640px){.image-preloader{display:block}}";const A=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.basicEventData=void 0}componentWillLoad(){_(this,this.el)}delegateFocus(){this.imagesBlock.childNodes[0].childNodes[0].focus()}render(){return i(e,{onFocus:()=>this.delegateFocus()},i("slot",{name:"vviinn-example-images-title"},i("h3",null,"Mit den Beispielbildern die Suche direkt ausprobieren")),i("div",{class:"images",ref:t=>this.imagesBlock=t},i("slot",{name:"vviinn-example-images-1"},i("vviinn-example-image",{width:480,height:640,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDEtTC5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-2"},i("vviinn-example-image",{width:280,height:480,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDItTS5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-3"},i("vviinn-example-image",{width:280,height:480,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDMtTS5qcGc=",basicEventData:this.basicEventData})),i("slot",{name:"vviinn-example-images-4"},i("vviinn-example-image",{width:480,height:640,src:"https://cdn.vviinn.com/0/fit/480/0/ce/0/Z3M6Ly9haWFhcy1pbWdwcm94eS9leGFtcGxlcy9pbWctaW5zcGlyYXRpb24tMDQtTC5qcGc=",basicEventData:this.basicEventData}))))}get el(){return n(this)}};A.style="h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}.images{display:block;-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px}";const V=class{constructor(i){t(this,i),this.vviinnImageUpload=s(this,"vviinnImageUpload",7),this.vviinnNoResult=s(this,"vviinnNoResult",7),this.basicEventData=void 0,this.startUpload=void 0,this.resetVpsButton=void 0}async handleInputChange(t){const i=t.target,e=await x(i.files[0]);l.pipe(e,w((()=>this.vviinnNoResult.emit(this.basicEventData)),(()=>this.vviinnImageUpload.emit(this.basicEventData)))),i.value=null}isLoading(){return a.loading}startUploadWatcher(t){t&&(this.fileInput.click(),this.resetVpsButton())}render(){return i(e,{exportparts:"button"},this.isLoading()?i("vviinn-preloader",null):null,this.isLoading()?null:i("label",{htmlFor:"fileInput",part:"button"},i("slot",{name:"upload-button-text"},"Upload image")),i("input",{id:"fileInput",class:"visually-hidden",type:"file",accept:"image/*",onChange:t=>this.handleInputChange(t),ref:t=>this.fileInput=t}))}static get watchers(){return{startUpload:["startUploadWatcher"]}}};V.style=":host{display:block}:host(::hover){background:whitesmoke}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}label{cursor:pointer;display:grid;width:100%;height:100%;transition:background 0.1s ease-in-out}";const H=class{constructor(i){t(this,i),this.basicEventData=void 0}handleInitialImageLoad(t){const i=y(t.target),{x:e,y:s}=c(i,{x:12,y:12}),n={x:e,y:s,width:i.width-24,height:i.height-24};a.imageBounds=r.some(i),a.searchArea=r.some(n)}renderDetectedObject(t){return i("vviinn-detected-object",{detectedObject:t,basicEventData:this.basicEventData})}renderImage(){return l.pipe(o(a.imageUrl,a.image),r.map((([t,e])=>{const[s,n]=(t=>{const i=k(t),e=z(288)(i).map((t=>t.size));return[e[0],e[1]]})(e);return i("img",{decoding:"async",width:s,height:n,src:t,onLoad:t=>this.handleInitialImageLoad(t),draggable:!1})})),r.getOrElse((()=>null)))}renderCropper(){return l.pipe(a.imageUrl,r.map((()=>i("image-cropper",{basicEventData:this.basicEventData}))),r.getOrElse((()=>null)))}render(){return i(e,null,a.loading||a.objectDetectionInProgress?i("div",{class:"image-preloader"},i("vviinn-preloader",null)):null,i("highlight-box",null),this.renderImage(),this.renderCropper(),a.detectedObjects.map((t=>this.renderDetectedObject(t))))}};H.style=":host{display:grid;position:relative;justify-self:center;direction:ltr}img{box-sizing:border-box;filter:brightness(60%);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:-1}.image-preloader{background:rgba(0, 0, 0, 0.25);border-radius:4px;bottom:18px;padding:4px 6px;pointer-events:none;position:absolute;right:18px;z-index:4}vviinn-preloader{--preloader-size:12px}";const K=class{constructor(i){t(this,i),this.vviinnWidgetClose=s(this,"vviinnWidgetClose",7),this.active=!1,this.resetState=void 0,this.buttonElementId=void 0,this.widgetVersion=void 0,this.hideBackButton=!1,this.slider=!1}componentWillLoad(){_(this,this.el)}close(){this.active=!1,setTimeout((()=>{this.vviinnWidgetClose.emit({widgetType:"VPS",campaignTypeId:"VPS",campaignTypeName:F.VPS,widgetId:this.buttonElementId,widgetVersion:this.widgetVersion})}),this.slider?500:0)}handleAnimationEnd(t){"fade-in"===t.animationName&&(this.slider=!0)}renderImage(){return l.pipe(o(a.imageUrl,a.image),r.map((([t])=>i("img",{width:"32",height:"32",src:t,class:"title-image"}))),r.getOrElse((()=>null)))}render(){return i(e,{exportparts:"secondary-action, title, close-button",class:{closed:!this.active},onAnimationEnd:t=>this.handleAnimationEnd(t)},i("div",{class:"head"},!this.hideBackButton&&i("button",{part:"secondary-action",onClick:()=>this.resetState()},i("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M20.25 12H3.75",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}),i("path",{d:"M10.5 5.25L3.75 12L10.5 18.75",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))),i("div",{class:"title",part:"title"},this.renderImage(),i("slot",{name:"vviinn-image-search-modal-title"},"Bildsuche")),i("button",{onClick:()=>this.close(),class:"close-button",part:"close-button"},i("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i("path",{d:"M16 1.4L14.6 0L8 6.6L1.4 0L0 1.4L6.6 8L0 14.6L1.4 16L8 9.4L14.6 16L16 14.6L9.4 8L16 1.4Z",fill:"currentColor"})))),i("div",{class:"body"},i("slot",null)))}get el(){return n(this)}};K.style=":host{background:white;border-radius:4px;box-sizing:border-box;display:grid;grid-template-rows:min-content auto;max-width:960px;overflow:auto}@media (max-width: 640px){:host{animation-name:fade-in;animation-duration:0.5s;animation-fill-mode:forwards}:host(.closed){animation-name:fade-out;animation-fill-mode:none}.body{overflow-y:auto}}.head{display:flex;align-items:center;border-bottom:1px solid #f4f4f4;padding:16px}.title{display:flex;align-items:center;transform:translateX(-6px);font-weight:600;font-size:18px;line-height:24px;margin:0 auto}.title-image{border-radius:50%;border:1px solid rgb(244, 244, 244);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;margin-right:8px}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:grid;padding:4px;color:#c6c6c6}button:hover{color:#000}@keyframes fade-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-out{from{transform:translateY(0)}to{transform:translateY(100%)}}";const N=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",{name:"vviinn-onboarding-title"},i("h3",null,"So funktioniert es")),i("vviinn-slider",{showArrows:!0},i("vviinn-slide",null,i("vviinn-onboarding-card-1",null)),i("vviinn-slide",null,i("vviinn-onboarding-card-2",null)),i("vviinn-slide",null,i("vviinn-onboarding-card-3",null))))}get el(){return n(this)}};N.style=":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}::host{display:block}h3{font-size:22px;font-weight:600;line-height:32px;margin:0;margin-bottom:16px;text-align:center}vviinn-slide{background:#f4f4f4;padding:24px}svg{padding:16px 0}.text{display:grid;grid-gap:8px}.text>h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}.text>p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}";const R=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-1-icon"},i(S,null)),i("slot",{name:"onboarding-card-1-text"},i("div",{class:"text"},i("h4",null,"Starte die Bildsuche"),i("p",null,"Lade ein Bild aus Deiner Galerie hoch oder fotografiere ein Produkt mit Deiner Kamera."))))}get el(){return n(this)}};R.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const U=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-2-icon"},i(E,null)),i("slot",{name:"onboarding-card-2-text"},i("div",{class:"text"},i("h4",null,"Verfeiner Deine Suche"),i("p",null,"Du kannst den Bildrahmen selber festlegen und so die Produkte genau auswählen."))))}get el(){return n(this)}};U.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const Y=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",{name:"onboarding-card-3-icon"},i(W,null)),i("slot",{name:"onboarding-card-3-text"},i("div",{class:"text"},i("h4",null,"Ohne Hintergrund"),i("p",null,"Die besten Ergebnisse erhältst Du, wenn das gesuchte Objekt mit einfarbigem und hellem Hintergrund zu sehen ist."))))}get el(){return n(this)}};Y.style=":host{align-items:center;background:#f4f4f4;display:grid;grid-template-rows:repeat(2, 1fr);justify-items:center;padding:24px;width:100%}h4{color:#161616;font-size:18px;font-weight:600;line-height:24px;margin:unset;text-align:center}svg{padding:16px 0}p{color:#525252;font-size:14px;font-style:normal;font-weight:normal;line-height:20px;margin:unset;text-align:center}.colored{fill:var(--color-icons, var(--color-icons-system))}.text{display:grid;grid-gap:8px}";const Z=class{constructor(i){t(this,i)}render(){return i(e,null,i("slot",null))}};Z.style=":host{animation:fade-in 0.5s ease-in-out;background:rgba(0, 0, 0, 0.5);display:block;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100vw;z-index:9999}@keyframes fade-in{from{opacity:0.1}to{opacity:1}}";const q=class{constructor(i){t(this,i),this.vviinnWidgetClose=s(this,"vviinnWidgetClose",7),this.active=!1,this.resetState=void 0,this.buttonElementId=void 0,this.hideBackButton=!1,this.widgetVersion=void 0}render(){return i(e,{class:{active:this.active}},i("vviinn-overlay",null,i("vviinn-modal",{resetState:this.resetState,active:this.active,buttonElementId:this.buttonElementId,hideBackButton:this.hideBackButton,widgetVersion:this.widgetVersion},i("slot",null,"CONTENT"))))}};q.style=":host{display:none}:host(.active){display:block}vviinn-overlay{align-items:center;display:grid;justify-items:center;cursor:default}@media (max-width: 640px){vviinn-modal{border-radius:4px 4px 0 0;height:100vh;margin-top:32px;transform:translateY(100%);width:100vw}vviinn-overlay{align-items:end;display:grid;justify-items:center}}";const X=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",null,i("div",{class:"content"},i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"},i("defs",null),i("path",{fill:"#525252",d:"M8.5 11V7h-2v1h1v3H6v1h4v-1H8.5zM8 4a.75.75 0 100 1.5A.75.75 0 008 4z"}),i("path",{fill:"#525252",d:"M8 15A7 7 0 118 1a7 7 0 010 14zM8 2a6 6 0 100 12A6 6 0 008 2z"})),i("slot",{name:"vviinn-privacy-badge-text"},i("p",null,"Durch das Hochladen eines Bildes willigst Du in die Verarbeitung durch unseren Partner Vviinn ein. Das Bild wird nach einer Stunde Inaktivität gelöscht.")))))}get el(){return n(this)}};X.style=":host{display:block;background:#F4F4F4;padding:17px}.content{display:grid;grid-template-columns:min-content auto;grid-gap:9px}.content p{color:#525252;font-size:12px;line-height:16px;margin:unset}";const Q=class{constructor(i){t(this,i),this.handler=void 0}render(){return i(e,null,i("vviinn-error",null,i("h4",{slot:"title"},"Keine Verbindung"),i("span",{slot:"text"},"Etwas hat leider nicht funktioniert. Bitte prüfen Sie Ihre Internetverbindung und laden Sie das Bild noch einmal hoch."),i("button",{slot:"action",onClick:this.handler},"Erneut versuchen")))}};Q.style=":host{display:block}";const J=class{constructor(i){t(this,i)}render(){return i(e,null,i("slot",null))}};J.style=":host{display:grid;justify-items:center}";const tt=({kind:t,tabindex:e,disabled:s,onClick:n,onKeyDown:r})=>{return i("div",{class:(o={kind:t,disabled:s},{"arrow-wrapper":!0,[o.kind]:!0,disabled:o.disabled}),onClick:n,tabindex:e,onKeyDown:r},i(M,null));var o},it=class{constructor(i){t(this,i),this.elementsCount=0,this.internalPosition=0,this.swipeStartPosition=r.none,this.isRTL=!1,this.showBullets=!0,this.position=0,this.showArrows=!1}positionWatchHandler(t){this.internalPosition=t,this.el.style.setProperty("--position",`${this.calculatePosition(t)}`),this.setActiveCssClassToSlide(t)}componentWillLoad(){this.isRTL="rtl"===document.dir}connectedCallback(){this.handleDomContentChanges()}handleDomContentChanges(){const t=this.el.querySelectorAll("vviinn-slide");this.elementsCount=t.length,this.el.style.setProperty("--num-items",`${this.elementsCount}`),this.setActiveCssClassToSlide(0)}setActiveCssClassToSlide(t){const i=this.el.querySelectorAll("vviinn-slide");i.forEach((t=>t.classList.remove("active"))),i[t].classList.add("active")}goToSlide(t){this.internalPosition=t,this.el.style.setProperty("--position",`${t}`),this.setActiveCssClassToSlide(t)}renderBullets(){return this.showBullets?i("div",{class:"controls"},C.range(0,this.elementsCount-1).map((t=>i("div",{class:{bullet:!0,active:t==Math.abs(this.internalPosition)%this.elementsCount},onClick:()=>this.goToSlide(t)})))):null}nextSlide(){this.internalPosition++,this.renderSlidePosition()}prevSlide(){const t=this.internalPosition-1;this.internalPosition=t>-1?t:this.elementsCount-1,this.renderSlidePosition()}renderSlidePosition(){const t=this.internalPosition%this.elementsCount;requestAnimationFrame((()=>{this.el.style.setProperty("--position",`${this.calculatePosition(t)}`)}))}calculatePosition(t){return this.isRTL?-1*t:t}handleKeyDown(t){if("Space"===t.key||"Enter"===t.key)switch(t.target.className.includes("prev")?"prev":"next"){case"prev":this.prevSlide();break;case"next":this.nextSlide()}}handleTouchStart(t){this.showBullets&&(this.swipeStartPosition=l.pipe(t.touches[0],r.fromNullable,r.map((t=>t.clientX))))}handleTouchEnd(t){if(!this.showBullets)return;const i=l.pipe(t.changedTouches[0],r.fromNullable,r.map((t=>t.clientX)));l.pipe(o(this.swipeStartPosition,i),r.map((([t,i])=>{return(e=t)<(s=i)?-1:e>s?1:0;var e,s})),r.map((t=>{switch(t){case 1:return this.nextSlide();case-1:return this.prevSlide()}})))}render(){return i(e,null,i("div",{class:"items-wrapper"},i("div",{class:"items",onTouchStart:t=>this.handleTouchStart(t),onTouchEnd:t=>this.handleTouchEnd(t)},i("slot",null))),this.showArrows?[i(tt,{kind:"prev",onClick:()=>this.isRTL?this.nextSlide():this.prevSlide(),onKeyDown:t=>this.handleKeyDown(t),tabindex:1,disabled:!1}),i(tt,{kind:"next",onClick:()=>this.isRTL?this.prevSlide():this.nextSlide(),onKeyDown:t=>this.handleKeyDown(t),tabindex:0,disabled:!1})]:null,this.renderBullets())}get el(){return n(this)}static get watchers(){return{position:["positionWatchHandler"]}}};it.style=":host{--color-primary-system:#0F62FE;--color-primary-hover-system:#014CDA;--color-icons-system:#2F8EDF;--spacer:8px}:host{--num-items:0;--position:0;display:grid;grid-gap:20px;justify-items:center;position:relative}.items-wrapper{overflow:hidden;width:100%}.items{box-sizing:border-box;display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--num-items), 100%);transform:translateX(calc(-100% * var(--position)));transition:transform 0.33s ease-in-out}.controls{display:grid;grid-gap:16px;grid-template-columns:repeat(var(--num-items), min-content)}.bullet{background:#e0e0e0;border-radius:50%;box-sizing:border-box;cursor:pointer;height:8px;width:8px;transition:background 0.1s ease-in-out}.bullet:hover{background:#c6c6c6}.bullet.active{background:var(--color-primary, var(--color-primary-system))}.bullet:active{background:transparent;border:2px solid var(--color-primary, var(--color-primary-system))}.arrow-wrapper{align-items:center;cursor:pointer;background:white;border:2px solid white;bottom:0;box-sizing:border-box;display:grid;height:calc(var(--spacer) * 6);justify-items:center;margin:auto;position:absolute;top:0;transform:translate3d(0, -50%, 0);transition:border 0.25ms ease-in-out;width:calc(var(--spacer) * 4)}.arrow-wrapper:active{border-color:var(--color-primary, var(--color-primary-system));opacity:0.75}.arrow-wrapper:focus{border-color:var(--color-primary, var(--color-primary-system));opacity:0.5;outline:none}.prev{left:0}.next{right:0}.next>svg{transform:rotate3d(0, 1, 0, 180deg)}.arrow-wrapper>svg{transition:fill 0.25ms ease-in-out;fill:#a8a8a8}.arrow-wrapper:hover>svg{fill:#8d8d8d}";const et=class{constructor(i){t(this,i)}componentWillLoad(){_(this,this.el)}render(){return i(e,null,i("slot",null,i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64",fill:"none"},i("defs",null),i("path",{fill:"#C6C6C6",d:"M48 28a11.98 11.98 0 00-9.77 18.942L28 57.172 30.828 60l10.23-10.23A11.994 11.994 0 1048 28zm0 20a8 8 0 118-8 8.009 8.009 0 01-8 8zM34 24a6 6 0 10-6-6 6.006 6.006 0 006 6zm0-8a2 2 0 110 4 2 2 0 010-4z"}),i("path",{fill:"#C6C6C6",d:"M24 48H8V35.993L18 26l11.172 11.172L32 34.336 20.828 23.165a4 4 0 00-5.656 0L8 30.336V8h40v12h4V8a4.004 4.004 0 00-4-4H8a4.004 4.004 0 00-4 4v40a4.005 4.005 0 004 4h16v-4z"})),i("span",{class:"vviinn-teaser-text"},i("slot",{name:"vviinn-teaser-text"},"Finde Produkte auf ",i("br",null)," einem Foto"))))}get el(){return n(this)}};et.style=":host{align-items:center;display:grid;justify-items:center;grid-gap:16px}.vviinn-teaser-text{font-size:28px;font-weight:600;line-height:40px;size:28px;text-align:center}";const st=class{constructor(i){t(this,i),this.handler=void 0}render(){return i(e,null,i("vviinn-error",null,i("h4",{slot:"title"},"Dateityp wird nicht unterstützt"),i("span",{slot:"text"},"Leider unterstützen wir dieses Format nicht. Bitte laden Sie eine .jpg, .png oder .webp Bilddatei hoch."),i("button",{slot:"action",onClick:this.handler},"Neues Bild hochladen")))}};st.style=":host{display:block}";export{B as highlight_box,I as image_cropper,G as search_filters,P as vviinn_detected_object,T as vviinn_empty_results,$ as vviinn_example_image,A as vviinn_example_images,V as vviinn_image_selector,H as vviinn_image_view,K as vviinn_modal,N as vviinn_onboarding,R as vviinn_onboarding_card_1,U as vviinn_onboarding_card_2,Y as vviinn_onboarding_card_3,Z as vviinn_overlay,q as vviinn_overlayed_modal,X as vviinn_privacy_badge,Q as vviinn_server_error,J as vviinn_slide,it as vviinn_slider,et as vviinn_teaser,st as vviinn_wrong_format}