PageSourceSearch

https://stamhoofd.app/assets/RegisterCheckout-BferuI-J.js

js stamhoofd.app collected 2026-10-02 00:14:24 UTC 15,386 bytes, 2 lines download raw bytes

1import{C as e,S as t,n,o as r,s as i,v as a,x as o,y as s}from"./vendor-@simonbackx/simple-encoding-PXm9qDUT.js";import{Fn as c,Ji as l,Ln as u,Mn as d,Or as f,ir as p}from"./dist-Cw_myyzr.js";import{i as m,n as h,r as g,t as _}from"./vendor-@simonbackx/simple-errors-DYZIP401.js";import{t as v}from"./vendor-tslib-B3KLIx2E.js";import{t as y}from"./Formatter-e7JISMiy.js";var b=class extends i{get id(){return this.item.id}item;price=0;validate(e){if(e.balanceItems!==void 0){let t=e.balanceItems.find(e=>e.id===this.item.id);if(!t)throw new g({code:`not_found`,message:$t(`%qj`)});this.item=t}let t=this.item.priceOpen;if(t===0)throw new g({code:`not_found`,message:$t(`%qk`)});if(t<0){this.price>0&&(this.price=t),this.price<t&&(this.price=t);return}this.price<0&&(this.price=t),this.price>t&&(this.price=t)}};v([r({decoder:u})],b.prototype,`item`,void 0),v([r({decoder:a}),r({...l})],b.prototype,`price`,void 0);var x=class extends i{items=[];balanceItems=[];deleteRegistrationIds=[];get organizationId(){return this.items.length>0?this.items[0].organizationId:this.balanceItems.length>0?this.balanceItems[0].item.organizationId:null}hydrate(e){let t=new S;t.items=this.items.map(t=>t.hydrate(e)),t.balanceItems=this.balanceItems;let n=[];for(let t of this.deleteRegistrationIds){let r=!1;for(let i of e.members){let e=i.patchedMember.registrations.find(e=>e.id===t);if(e){n.push(new c({registration:e,member:i})),r=!0;break}}if(!r)throw new g({code:`not_found`,message:`Registration not found`,human:$t(`%qn`),field:`deleteRegistrationIds`})}return t.deleteRegistrations=n,t}};v([r({decoder:new e(d)})],x.prototype,`items`,void 0),v([r({decoder:new e(b),optional:!0})],x.prototype,`balanceItems`,void 0),v([r({decoder:new e(o),optional:!0})],x.prototype,`deleteRegistrationIds`,void 0);var S=class e{items=[];balanceItems=[];deleteRegistrations=[];bundleDiscounts=[];calculatePrices(){for(let e of this.items)e.calculatePrice();if(this.bundleDiscounts=[],this.singleOrganization)for(let e of this.singleOrganization.period.settings.bundleDiscounts){let t=e.calculate(this,this.singleOrganization.period.period.id);for(let[e,n]of t.calculations)n.netTotal!==0&&this.bundleDiscounts.push(n)}}clone(){let t=new e;return t.items=this.items.map(e=>e.clone()),t.balanceItems=this.balanceItems.map(e=>e.clone()),t.deleteRegistrations=this.deleteRegistrations.map(e=>e.clone()),t}convert(){return x.create({items:this.items.map(e=>e.convert()),balanceItems:this.balanceItems,deleteRegistrationIds:this.deleteRegistrations.map(e=>e.registration.id)})}add(e){if(this.contains(e))return this.remove(e,e);this.canAdd(e)&&this.items.push(e)}canAdd(e){return!(this.contains(e)||this.items.length>=500)}contains(e){for(let[t,n]of this.items.entries())if(n.id===e.id||n.member.id===e.member.id&&n.groupId===e.groupId)return!0;return!1}getMemberAndGroup(e,t){for(let[n,r]of this.items.entries())if(r.member.id===e&&r.groupId===t)return r;return null}containsMemberAndGroup(e,t){return this.getMemberAndGroup(e,t)!==null}remove(e,t){for(let[n,r]of this.items.entries())if(r.id===e.id||r.member.id===e.member.id&&r.groupId===e.groupId){this.items.splice(n,1,...t?[t]:[]);break}}removeMemberAndGroup(e,t){for(let n=this.items.length-1;n>=0;n--){let r=this.items[n];r.member.id===e&&r.groupId===t&&this.items.splice(n,1)}}removeRegistration(e){this.deleteRegistrations.findIndex(t=>t.registration.id===e.registration.id)===-1&&this.deleteRegistrations.push(e)}unremoveRegistration(e){let t=this.deleteRegistrations.findIndex(t=>t.registration.id===e.registration.id);t!==-1&&this.deleteRegistrations.splice(t,1)}canAddBalanceItem(e){if(this.singleOrganization&&e.item.organizationId!==this.singleOrganization?.id)return!1;for(let t of this.balanceItems)if(t.item.id===e.item.id)return!1;return!0}addBalanceItem(e){this.canAddBalanceItem(e)&&this.balanceItems.push(e)}removeBalanceItem(e){for(let t=this.balanceItems.length-1;t>=0;t--)this.balanceItems[t].id===e.id&&this.balanceItems.splice(t,1)}get isEmpty(){return this.count===0}get count(){return this.items.length+this.balanceItems.length+this.deleteRegistrations.length}get price(){return this.items.reduce((e,t)=>
1t.calculatedPrice+e,0)+this.balanceItems.reduce((e,t)=>e+t.price,0)}get balanceItemDiscounts(){return this.balanceItems.filter(e=>e.price<0)}get balanceItemDiscountsPrice(){return this.balanceItemDiscounts.reduce((e,t)=>e+t.price,0)}get priceDueLater(){return this.items.reduce((e,t)=>t.calculatedPriceDueLater+e,0)}get bundleDiscount(){return this.bundleDiscounts.map(e=>e.netTotalDueNow).reduce((e,t)=>e+t,0)}get bundleDiscountDueLater(){return this.bundleDiscounts.map(e=>e.netTotalDueLater).reduce((e,t)=>e+t,0)}get refund(){return this.items.reduce((e,t)=>t.calculatedRefund+e,0)+this.deleteRegistrations.reduce((e,t)=>e+t.registration.calculatedPrice,0)}getCancellationFees(e){return this.items.reduce((t,n)=>this.calculateCancellationFee(n.calculatedRefund,e)+t,0)+this.deleteRegistrations.reduce((t,n)=>t+this.calculateCancellationFee(n.registration.calculatedPrice,e),0)}calculateCancellationFee(e,t){return Math.round(e*t/1e4)}get singleOrganization(){if(this.items.length===0){if(this.deleteRegistrations.length>0){let e=this.deleteRegistrations[0].registration.group.organizationId;return this.deleteRegistrations[0].member.organizations.find(t=>t.id===e)??null}return null}return this.items[0].organization}validate(e,t){let n=[],r=new _;for(let e of this.items)try{e.validate({final:!0}),e.cartError=null,n.push(e),this.items.find(t=>t!==e&&t.isSameRegistration(e))&&r.addError(new g({code:`duplicate_register_item`,message:`duplicate register item`,human:$t(`%qo`)}))}catch(t){if(m(t)||h(t))t.addNamespace(`cart`),r.addError(t);else throw t;m(t)&&t.meta?.recoverable&&(e.cartError=t,n.push(e))}let i=[];for(let n of this.balanceItems){if(e.singleOrganizationId&&n.item.organizationId!==e.singleOrganizationId){r.addError(new g({code:`invalid_organization`,message:`Invalid organization in balanceItems`,human:$t(`%qp`),field:`balanceItems`}));continue}try{n.validate({balanceItems:t?.memberBalanceItems}),i.push(n)}catch(e){if(m(e)||h(e))e.addNamespace(`cart`),r.addError(e);else throw e}}let a=[],o=e.singleOrganization;for(let t of this.deleteRegistrations){if(e.singleOrganizationId&&t.registration.group.organizationId!==e.singleOrganizationId){r.addError(new g({code:`invalid_organization`,message:`Invalid organization in deleteRegistrations`,human:$t(`%qq`),field:`deleteRegistrations`}));continue}if(!o)continue;let n=t.member.platform,i=t.registration.group.periodId,s=i===n.period.id?n.period:i===o.period.period.id?o.period.period:t.registration.group.settings.period;if(s&&s.locked){r.addError(new g({code:`locked_period`,message:`Locked period`,human:$t(`%ql`,{group:t.registration.group.settings.name,period:s.nameShort})}));continue}if(!s){r.addError(new g({code:`locked_period`,message:`Locked period`,human:$t(`%qm`,{group:t.registration.group.settings.name})}));continue}a.push(t)}this.balanceItems=i,this.deleteRegistrations=a,this.items=n,r.throwIfNotEmpty()}},C=class extends i{cart=x.create({});administrationFee=0;freeContribution=0;cancellationFeePercentage=0;paymentMethod=null;redirectUrl=null;cancelUrl=null;asOrganizationId=null;customer=null;totalPrice=null;sendConfirmationEmail=!1;get organizationId(){return this.cart.organizationId}hydrate(e){let t=new w;if(t.cart=this.cart.hydrate(e),t.administrationFee=this.administrationFee,t.freeContribution=this.freeContribution,t.paymentMethod=this.paymentMethod,t.asOrganizationId=this.asOrganizationId,t.customer=this.customer,t.cancellationFeePercentage=this.cancellationFeePercentage,t.sendConfirmationEmail=this.sendConfirmationEmail,e.organizations[0]&&!t.cart.isEmpty&&t.defaultOrganization===null){let n=t.singleOrganizationId;t.setDefaultOrganization((n?e.organizations.find(e=>e.id===n):null)??e.organizations[0])}else if(!t.cart.isEmpty&&!t.singleOrganization)throw Error(`Missing default organization`);return t}get memberIds(){return y.uniqueArray(this.cart.items.map(e=>e.memberId))}get groupIds(){return y.uniqueArray(this.cart.items.map(e=>e.groupId))}};v([r({decoder:x})],C.prototype,`cart`,void 0),v([r({decoder:a}),r({...l})],C.prototype,`administrationFee`,void 0),v([r({decoder:a}),r({...l})],C.prototype,`freeContribution`,void 0),v([r({decoder:a,version:362})],C.prototype,`cancellationFeePercentage`,void 0),v([r({decoder:new s(f),nullable:!0})],C.prototype,`paymentMethod`,void 0),v([r({decoder:new n({allowedProtocols:[`https:`]}),nullable:!0})],C.prototype,`redirectUrl`,void 0),v([r({decoder:new n({allowedProtocols:[`https:`]}),nullable:!0})],C.prototype,`cancelUrl`,void 0),v([r({decoder:o,nullable:!0})],C.prototype,`asOrganizationId`,void 0),v([r({decoder:p,nullable:!0,version:322})],C.prototype,`customer`,void 0),v([r({decoder:a,nullable:!0}),r({...l,nullable:!0})],C.prototype,`totalPrice`,void 0),v([r({decoder:t,version:378})],C.prototype,`sendConfirmationEmail`,void 0);var w=class e{cart=new S;administrationFee=0;freeContribution=0;paymentMethod=null;customer=null;asOrganizationId=null;balanceItems=null;sendConfirmationEmail=!1;defaultOrganization=null;cancellationFeePercentage=0;clone(){let t=new e;return t.cart=this.cart.clone(),t.administrationFee=this.administrationFee,t.freeContribution=this.freeContribution,t.paymentMethod=this.paymentMethod,t.asOrganizationId=this.asOrganizationId,t.customer=this.customer?this.customer.clone():null,t.cancellationFeePercentage=this.cancellationFeePercentage,t.defaultOrganization=this.defaultOrganization,t.balanceItems=this.balanceItems?.slice()??null,t}convert(){return C.create({cart:this.cart.convert(),administrationFee:this.administrationFee,freeContribution:this.freeContribution,paymentMethod:this.paymentMethod,totalPrice:this.totalPrice,cancellationFeePercentage:this.cancellationFeePercentage,asOrganizationId:this.asOrganizationId,customer:this.customer,sendConfirmationEmail
1:this.sendConfirmationEmail})}get singleOrganization(){return this.cart.singleOrganization??this.defaultOrganization}get singleOrganizationId(){return this.singleOrganization?.id??this.cart.deleteRegistrations[0]?.registration.organizationId??this.cart.balanceItems[0]?.item.organizationId}setDefaultOrganization(e){this.defaultOrganization=e}get isAdminFromSameOrganization(){return!!this.asOrganizationId&&this.asOrganizationId===this.singleOrganization?.id}add(e,t){this.cart.isEmpty&&(this.defaultOrganization=null),this.singleOrganization||this.setDefaultOrganization(e.organization),this.cart.add(e),t?.calculate!==!1&&this.updatePrices()}remove(e,t){this.cart.remove(e),t?.calculate!==!1&&this.updatePrices(),this.cart.isEmpty&&(this.defaultOrganization=null)}removeMemberAndGroup(e,t,n){this.cart.removeMemberAndGroup(e,t),n?.calculate!==!1&&this.updatePrices(),this.cart.isEmpty&&(this.defaultOrganization=null)}removeRegistration(e,t){this.cart.removeRegistration(e),this.cart.deleteRegistrations.length===1&&(this.cancellationFeePercentage=e.registration.balances.reduce((e,t)=>e+t.amountPaid+t.amountPending,0)>0?1e4:0),this.cart.isEmpty&&(this.defaultOrganization=null),t?.calculate!==!1&&this.updatePrices()}unremoveRegistration(e,t){this.cart.unremoveRegistration(e),this.cart.isEmpty&&(this.defaultOrganization=null),t?.calculate!==!1&&this.updatePrices()}addBalanceItem(e,t,n){let r=b.create({item:e,price:t});this.cart.addBalanceItem(r),n?.calculate!==!1&&this.updatePrices()}removeBalanceItem(e,t){this.cart.removeBalanceItem(e),this.cart.isEmpty&&(this.defaultOrganization=null),t?.calculate!==!1&&this.updatePrices()}removeBalanceItemByBalance(e){let t=this.cart.balanceItems.find(t=>t.item.id===e.id);t&&this.removeBalanceItem(t)}updatePrices(){this.cart.calculatePrices(),this.applyMaximumDiscounts(),this.administrationFee=this.isAdminFromSameOrganization||!this.singleOrganization?0:this.singleOrganization.meta.registrationPaymentConfiguration.administrationFee.calculate(this.cart.price-this.bundleDiscount-this.cart.refund)??0}updateBalances(e){this.balanceItems=e,this.updatePrices()}applyMaximumDiscounts(){if(this.isAdminFromSameOrganization||!this.balanceItems)return;for(let e of this.cart.balanceItems.slice())e.price<0&&this.removeBalanceItem(e,{calculate:!1});if(!this.singleOrganizationId)return;let t=e.calculateAutomaticDiscounts({organizationId:this.singleOrganizationId,balanceItems:this.balanceItems,payingNow:this.cart.balanceItems.reduce((e,t)=>e+t.price,0),price:this.totalPrice-this.administrationFee-this.freeContribution});for(let[e,n]of t)this.addBalanceItem(e,-n,{calculate:!1})}static calculateAutomaticDiscounts({organizationId:e,balanceItems:t,payingNow:n,price:r}){let i=new Map,a=t.filter(t=>t.organizationId===e),o=a.reduce((e,t)=>e+t.priceOpen,0)-n;if(o>=0)return i;let s=Math.min(r,-o);for(let e of a){if(e.priceOpen>=0)continue;let t=Math.min(s,-e.priceOpen);if(t<=0)break;i.set(e,t),s-=t}return i}validate(e){if(!this.isAdminFromSameOrganization&&this.cart.deleteRegistrations.length>0)throw new g({code:`forbidden`,message:`Permission denied: you are not allowed to delete registrations`,human:$t(`%qr`)});if(this.cart.validate(this,e??this.balanceItems),this.updatePrices(),this.singleOrganization&&(this.singleOrganization.meta.recordsConfiguration.freeContribution?.amounts.length??0)===0&&(this.freeContribution=0),this.cancellationFeePercentage>1e4||this.cancellationFeePercentage<0)throw new g({code:`invalid_field`,field:`cancellationFeePercentage`,message:`Invalid cancellation fee percentage`});if(!this.isAdminFromSameOrganization&&this.totalPrice<0)throw new g({code:`negative_price`,message:`Total price cannot be negative`,human:$t(`%17E`)})}clear(){this.administrationFee=0,this.freeContribution=0,this.cart.items=[],this.cart.balanceItems=[],this.cart.deleteRegistrations=[],this.cart.bundleDiscounts=[],this.customer=null}get totalPrice(){return this.cart.price-this.bundleDiscount-this.cart.refund+this.administrationFee+this.freeContribution+this.cart.getCancellationFees(this.cancellationFeePercentage)}get bundleDiscount(){return this.cart.bundleDiscount}get bundleDiscountDueLater(){return this.cart.bundleDiscountDueLater}get showDiscountsSeparately(){return!this.isAdminFromSameOrganization}getPriceBreakown(e){let t=[];for(let e of this.cart.bundleDiscounts){let n=e.netTotal;n!==0&&(n<0?t.push({name:$t(`%175`)+` (`+e.name+`)`,price:-n}):t.push({name:e.name,price:-n}))}let n=this.cart.price+this.cart.priceDueLater;
1this.showDiscountsSeparately&&this.cart.balanceItemDiscountsPrice!==0&&(n-=this.cart.balanceItemDiscountsPrice,t.push({name:$t(`%1Xl`),price:this.cart.balanceItemDiscountsPrice,action:e?.balanceItemDiscountsAction})),t.push(...[{name:$t(`%17F`),price:-this.cart.refund},{name:$t(`%qs`),price:this.administrationFee},{name:$t(`%Ot`),price:this.freeContribution},{name:$t(`%17G`),price:this.cart.getCancellationFees(this.cancellationFeePercentage)}].filter(e=>e.price!==0)),t.length>0&&n!==0&&t.unshift({name:$t(`%xJ`),price:n});let r=this.cart.priceDueLater-this.bundleDiscountDueLater;return r!==0&&t.push({name:$t(`%10Z`),price:r}),this.isAdminFromSameOrganization?t.push({name:this.totalPrice>=0?$t(`%vb`):$t(`%vc`),price:Math.abs(this.totalPrice)}):t.push({name:this.cart.priceDueLater?$t(`%10c`):$t(`%xL`),price:this.totalPrice}),t}get priceBreakown(){return this.getPriceBreakown()}};export{w as n,C as t};
2//# sourceMappingURL=RegisterCheckout-BferuI-J.js.map

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.