1(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`[email protected]+main-production`},e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[new e.Error().stack]=function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];if(n!=null)for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}return e}({},e._sentryModuleMetadata[new e.Error().stack],{"_sentryBundlerPluginAppKey:cinema":!0});var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`9d963d86-b22d-4eed-a115-beb47d5cf46d`,e._sentryDebugIdIdentifier=`sentry-dbid-9d963d86-b22d-4eed-a115-beb47d5cf46d`)}catch{}})();var e=class extends HTMLElement{offersEl;messageTextEl;retryButtonEl;expandButtonEl;sourceLinkEl;statusEl;contentEl;headerEl;imdbId;type;loadingMode;loadState=null;isLoaded=!1;constructor(){super(),this.offersEl=this.querySelector(`.JustWatch-offers`),this.messageTextEl=this.querySelector(`.JustWatch-messageText`),this.retryButtonEl=this.querySelector(`.JustWatch-retryButton`),this.expandButtonEl=this.querySelector(`.JustWatch-expandButton`),this.sourceLinkEl=this.querySelector(`.JustWatch-sourceLink`),this.statusEl=this.querySelector(`.JustWatch-status`),this.contentEl=this.querySelector(`.JustWatch-content`),this.headerEl=this.querySelector(`.JustWatch-header`),this.imdbId=this.dataset.id,this.type=this.dataset.type,this.loadingMode=this.dataset.loading}connectedCallback(){this.setupEventListeners(),this.loadingMode!==`manual`&&this.load()}disconnectedCallback(){this.removeEventListeners()}setupEventListeners(){this.retryButtonEl?.addEventListener(`click`,this.handleRetry),this.expandButtonEl?.addEventListener(`click`,this.handleExpand),this.loadingMode===`manual`&&(this.headerEl.addEventListener(`click`,this.handleHeaderClick),this.headerEl.addEventListener(`keydown`,this.handleHeaderKeydown))}removeEventListeners(){this.retryButtonEl?.removeEventListener(`click`,this.handleRetry),this.expandButtonEl?.removeEventListener(`click`,this.handleExpand),this.loadingMode===`manual`&&(this.headerEl.removeEventListener(`click`,this.handleHeaderClick),this.headerEl.removeEventListener(`keydown`,this.handleHeaderKeydown))}handleRetry=()=>{this.load()};handleExpand=()=>{let e=this.classList.contains(`is-expanded`);this.classList.toggle(`is-expanded`,!e);let t=this.expandButtonEl.querySelector(`.TextLink-label`);t&&(t.textContent=e?`Meer`:`Minder`)};handleHeaderClick=()=>{if(this.loadingMode!==`manual`)return;let e=this.getAttribute(`data-state`)===`collapsed`;this.headerEl.setAttribute(`aria-expanded`,e.toString()),this.headerEl.setAttribute(`aria-label`,e?`Verberg aanbod`:`Toon aanbod`),e?this.isLoaded?this.setState(this.loadState||`content`):this.load():this.setState(`collapsed`)};handleHeaderKeydown=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.handleHeaderClick())};setState(e){this.setAttribute(`data-state`,e);let t=e===`content`||e===`collapsed`;this.toggleHidden(this.statusEl,t);let n=e===`loading`||e===`message`||e===`collapsed`;this.toggleHidden(this.contentEl,n)}toggleHidden(e,t){e.toggleAttribute(`aria-hidden`,t),e.toggleAttribute(`inert`,t)}async load(){this.setState(`loading`);try{let e=await fetch(`/api/justwatch`,{method:`POST`,headers:{"Content-Type":`application/json`}
1,body:JSON.stringify({id:this.imdbId,type:this.type})});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if(t.success&&t.data?.offers?.length)this.showContent(t.data.offers,t.data.sourceUrl);else if(t.success&&t.data?.title){let e=`<strong>${t.data.title}</strong> wordt momenteel niet on demand aangeboden.`;this.showMessage(e,`empty`)}else{let e=this.getErrorMessage(t)||t.errorMessage;this.showMessage(e,t.errorType)}}catch{this.showMessage(`Aanbod kan niet opgehaald worden.`,`network`)}}showContent(e,t){this.offersEl.innerHTML=``;let n=document.createDocumentFragment();e.forEach(e=>{let t=document.createElement(`a`);t.href=e.url,t.target=`_blank`,t.rel=`noopener noreferrer`,t.className=`JustWatch-offer`,t.title=`Bekijk op ${e.provider.clear_name}`;let r=document.createElement(`div`);r.className=`JustWatch-offerLogo`;let i=document.createElement(`img`);i.src=e.provider.icon_url,i.alt=e.provider.clear_name,i.className=`JustWatch-offerImage`,i.loading=`lazy`,r.appendChild(i);let a=document.createElement(`div`);a.className=`JustWatch-offerLabel`,a.textContent=e.label,t.appendChild(r),t.appendChild(a),n.appendChild(t)}),this.offersEl.appendChild(n),t&&this.sourceLinkEl.setAttribute(`href`,t),this.isLoaded=!0,this.loadState=`content`,this.setState(`content`)}showMessage(e,t){this.messageTextEl.innerHTML=e;let n=t===`rate_limit`||t===`network`||!t;this.messageTextEl.classList.toggle(`has-retry`,n),this.isLoaded=!0,this.loadState=`message`,this.setState(`message`)}getErrorMessage(e){switch(e.errorType){case`rate_limit`:return`Te veel verzoeken. Probeer het later opnieuw.`;case`not_found`:return`Titel niet gevonden in JustWatch database.`;case`empty`:return e.errorMessage||`Geen streaming opties beschikbaar.`;case`network`:return`Er is helaas iets misgegaan, we kunnen op dit moment geen informatie laten zien over streaming.`;default:return`Er is helaas iets misgegaan, we kunnen op dit moment geen informatie laten zien over streaming.`}}};customElements.define(`villa-justwatch`,e);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.