PageSourceSearch

https://moveoss.nl/content/themes/movenl/assets/js/detail-B3kzXYTt.js

js moveoss.nl collected 2026-09-24 13:29:51 UTC 5,044 bytes, 25 lines download raw bytes

1import { p as products } from './products-BLepsjEU.js';
2import { t as tempStore, g as globalStore } from './main-module-D8UQLSsS.js';
3import { d as detailPage, s as show404Page } from './404-E-Y9Yt8d.js';
4import './reformat-DUMoSDhI.js';
5import './security-CjMZ7P28.js';
6import './base64-D0xLjV6U.js';
7import './map-BGqh6wnp.js';
8import './age-B6r4bODg.js';
9import './loading-DICUQEYz.js';
10import './activity-bundle-DL26mPwk.js';
11import './product-h4L0W1eP.js';
12import './organization-qg43h6Kq.js';
13import './organizations-CYZa_xjI.js';
14import './a11y-B-zyjK_U.js';
15import './navigation-CSDkkhKK.js';
16import './create-element-if-not-defined-CsiCqqQ3.js';
17import './pagination-Bd96EKeG.js';
18
19class productDetail extends detailPage{constructor(){super();}async settleData(){var _data$health_limitati;this.id=window.location.pathname.split('/').pop().split('-')[0];const data=await products.get({include:'organization.locations'},this.id);tempStore.activeItem=data;if(data.status===404){show404Page();return;}this.data={age_range:data.age_range,contact_persons:data.contact_persons,description:data.description,difficulty:data.difficulty,gender:data.gender,id:data.id,banner:data.image,health_limitations:(_data$health_limitati=data.health_limitations)!==null&&_data$health_limitati!==void 0?_data$health_limitati:[],is_accessible_for_all_health_limitations:data.is_accessible_for_all_health_limitations,location:data.location,address:data.location?data.location.address:null,name:data.name,organization:data.organization,payment_url:data.payment_url,display_price:data.display_price,price_in_cents:data.price_in_cents,should_display_price:data.should_display_price,should_validate_age:data.should_validate_age,max_purchases_per_profile:data.max_purchases_per_profile,sports:data.sports,spots:data.spots,type:'product'};this.childElements={signinButton:document.querySelector('.js-detail-page .js-subscribe-button'),loginButton:document.querySelector('.js-detail-page .js-modal-open[data-modal="login-notification"]'),price:document.querySelector(".js-detail-page .js-price"),externalButton:document.querySelector('.js-detail-page .js-external'),maxPurchasesInfo:document.querySelector('.js-detail-page .js-max-purchases-info')};Object.assign(this.elements,this.childElements);// Store this type for modals
20tempStore.pageData=this.data;tempStore.activeType='product';}async init(){await this.settleData();super.init();await this.buildPage();await this.postBuildPage();// Let everyone know this page is ready
21document.dispatchEvent(this.events.pageLoaded);}async buildPage(){this.buildTitle(this.data.name);this.buildHero(this.data.banner);this.buildDescription(this.data.description);this.buildFeatureAgeRange(this.data.age_range);this.buildFeatureGender(this.data.gender);this.buildFeatureHealthLimitations(this.data.is_accessible_for_all_health_limitations,this.data.health_limitations);this.buildFeatureDifficulty(this.data.difficulty);this.buildOrganizationInfo([this.data.organization]);this.buildContactPersons(this.data.contact_persons);this.buildMap(this.data.location?[this.data.location]:null);}async postBuildPage(){tempStore.profiles={};// All profiles all selectable for a product
22tempStore.profiles.selectable=await products.getProfiles(this.id);if(this.data.max_purchases_per_profile!=null){const max=this.data.max_purchases_per_profile;const label=max===1?'aankoop':'aankopen';this.elements.maxPurchasesInfo.innerHTML=`Maximaal ${max} ${label} per persoon`;this.elements.maxPurchasesInfo.style.display='block';}if(this.data.should_display_price===false){this.elements.price.style.display='none';}else if(this.data.display_price){this.elements.price.innerHTML=this.data.display_price;}else if(this.data.price_in_cents){let formattedPrice;const priceString=this.data.price_in_cents.toString();if(priceString.length<3){formattedPrice='€0,'+priceString;}else if(priceString.length===3){formattedPrice='€'+priceString.slice(0,1)+','+priceString.slice(1,3);}else if(priceString.length===4){formattedPrice='€'+priceString.slice(0,2)+','+priceString.slice(2,6);}else {formattedPrice='€'+priceString.slice(0,3)+','+priceString.slice(3,6);}this.elements.price.innerHTML=formattedPrice;}else {this.elements.price.innerHTML='Gratis';}if(this.data.payment_url){this.elements.externalButton.href=this.data.payment_url;this.elements.signinButton.style.display='none';this.elements.maxPurchasesInfo.style.display='none';this.elements.externalButton.style.display='flex';return;}
22if(!globalStore.user||!globalStore.api_token){this.elements.signinButton.style.display='none';this.elements.loginButton.style.display='flex';}else {this.elements.signinButton.style.display='flex';this.elements.loginButton.style.display='none';}// Hide max purchases info when the signin button is not visible
23if(this.data.max_purchases_per_profile!=null&&this.elements.signinButton.style.display==='none'){this.elements.maxPurchasesInfo.style.display='none';}}}const product=new productDetail();(async function(){product.init();})();
24
25export { productDetail };

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.