1import{a as Ct}from"./chunk-AO3Y4OUO.js";import{a as ut}from"./chunk-KTYENOX7.js";import{a as _t}from"./chunk-CDPD7CD2.js";import{y as et,z as it}from"./chunk-FYIJWXOI.js";import{A as dt,B as ct,C as A,D as B,E as st,G as mt,V as ft,w as rt,y as lt}from"./chunk-DMQQS2VX.js";import{a as at}from"./chunk-TMX6BLW5.js";import{i as tt}from"./chunk-XRM6ZXWS.js";import{h as nt,i as ot}from"./chunk-QR5CRSXC.js";import{Na as Z,U as J,la as Q,sa as X}from"./chunk-YAQTS5RG.js";import{a as pt}from"./chunk-A2VR236Q.js";import{Cc as F,Dc as E,Ib as m,Ic as c,Jb as _,Jc as p,Kb as H,Kc as w,Lb as P,Mb as G,Nb as v,Ob as l,Pb as d,Qb as y,Rc as S,Sc as M,Uc as K,Vb as D,Vc as N,Xc as W,Ya as a,ac as x,ba as k,cc as r,db as L,ha as C,ia as f,na as j,nc as $,pb as Y,qa as I,qc as s,rc as b,sc as g,tc as q,uc as z}from"./chunk-26UTCU6V.js";import{a as R,b as U}from"./chunk-HZ6M6AS2.js";var bt="months";var ht=/^\d{4}-\d{2}-\d{2}$/;function kt(t){if(typeof t!="object"||t===null)return!1;let i=t.mode;return i==="duration"||i==="fixedPeriod"}function V(t,i){return t[i]}function It(t){if(!t||!ht.test(t))return null;let[i,e,n]=t.split("-").map(Number),o=new Date(i,e-1,n);return o.getFullYear()!==i||o.getMonth()!==e-1||o.getDate()!==n?null:o}function gt(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function xt(t,i){let e=new Date(t.getFullYear(),t.getMonth()+i,1),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();return e.setDate(Math.min(t.getDate(),n)),e}function Tt(t){let i=V(t,"value"),e=V(t,"unit");return t.mode!=="duration"||e!==bt||typeof i!="number"||!Number.isInteger(i)||i<=0?null:i}function vt(t,i){let e=V(t,i);return typeof e=="string"?It(e):null}function yt(t,i=new Date){if(Number.isNaN(i.getTime()))return null;if(!kt(t))return{kind:"until",date:xt(gt(i),12)};if(t.mode==="duration"){let u=Tt(t);return u===null?null:{kind:"until",date:xt(gt(i),u)}}let e=vt(t,"to");if(!e)return null;let n=V(t,"from");if(n==null||n==="")return{kind:"until",date:e};let o=vt(t,"from");return!o||o.getTime()>e.getTime()?null:{kind:"range",from:o,to:e}}var St=t=>["/product",t],wt=(t,i)=>({date:t,time:i}),Bt=(t,i)=>({from:t,to:i}),Vt=t=>({date:t}),Pt=(t,i)=>i.uid;function Gt(t,i){if(t&1&&y(0,"img",3),t&2){let e=i;v("alt",e.alt)("ngSrc",e.media)}}function Ft(t,i){if(t&1&&(y(0,"img",4),c(1,"translate")),t&2){let e=r();v("alt",p(1,1,"product/"+e.product().id+"/name"))}}function Et(t,i){if(t&1){let e=D();l(0,"button",16),x("click",function(){C(e);let o=r(2);return f(o.addItemToCart())})("keyup.enter",function(o){C(e);let u=r(2);return f(u.emulateClick(o))}),y(1,"img",18),d()}}function Mt(t,i){if(t&1){let e=D();l(0,"div",12),m(1,Et,2,0,"button",15),l(2,"button",16),x("click",function(){C(e);let o=r();return f(o.removeItemFromCart())})("keyup.enter",function(o){C(e);let u=r();return f(u.emulateClick(o))}),y(3,"img",17),d()()}if(t&2){let e=r();a(),_(e.asCoupon()?-1:1)}}function Nt(t,i){if(t&1&&(l(0,"span",20),s(1),c(2,"currency"),d()),t&2){let e=r();a(),b(p(2,1,e.fullPrice))}}function At(t,i){if(t&1&&(y(0,"br"),s(1),c(2,"translate"),c(3,"translate")),t&2){let e=r(4);a(),z(" ",p(2,3,"remainingTimeIs")," ",e.spaBookingTimer()," ",p(3,5,"minutes")," ")}}function Ot(t,i){if(t&1){let e=D();l(0,"button",24),x("click",function(){C(e);let o=r(4);return f(o.planningDisplayed.set(!0))})("keyup.enter",function(o){C(e);let u=r(4);return f(u.emulateClick(o))}),s(1),c(2,"translate"),d()}if(t&2){let e=r(4);v("disabled",e.cartService.saving()),a(),g(" ",p(2,2,"modify")," ")}}function Rt(t,i){if(t&1&&(l(0,"p",22),s(1),c(2,"date"),c(3,"translate"),m(4,At,4,7),d(),m(5,Ot,3,4,"button",23)),t&2){let e=r(),n=r(2);a(),g(" ",w(3,5,"bookedFor.v2",E(8,wt,p(2,3,e.item.spaBooking.date),e.item.spaBooking.time))," "),a(3),_(n.spaBookingTimer()?4:-1),a(),_(n.planningDisplayed()?-1:5)}}function Ut(t,i){if(t&1){let e=D();l(0,"button",24),x("click",function(){C(e);let o=r(4);return f(o.planningDisplayed.set(!0))})("keyup.enter",function(o){C(e);let u=r(4);return f(u.emulateClick(o))}),s(1),c(2,"translate"),d()}if(t&2){let e=r(4);v("disabled",e.cartService.saving()),a(),g(" ",p(2,2,"reserveASlot")," ? ")}}function jt(t,i){if(t&1&&m(0,Ut,3,4,"button",23),t&2){let e=r(3);_(e.planningDisplayed()?-1:0)}}function Lt(t,i){t&1&&(l(0,"div",21),m(1,Rt,6,11)(2,jt,1,1),d()),t&2&&(a(),_(i.item.spaBooking?1:2))}function Yt(t,i){t&1&&(l(0,"div",25)(1,"div",26),y(2,"div",27),d()())}function Ht(t,i){if(t&1&&m(0,Yt,3,0,"div",25),t&2){let e=r(2);_(e.spaBookingProgress()?0:-1)}}function $t(t,i){if(t&1&&(l(0,"p")(1,"span",19),m(2,Nt,3,3,"span",20),l(3,"span"),s(4),c(5,"currency"),d()(),s(6),c(7,"translate"),d(),m(8,Lt,3,1,"div",21)(9,Ht,1,1)),t&2){let e,n=i,o=r();a(2),_(n.promo&&n.fullPrice?2:-1),a(),$("text-bleuCaliceo-300",!n.promo)("text-vertCaliceo-500",n.promo),a(),g(" ",p(5,8,n.price)," "),a(2),g(" / ",p(7,10,"unitPrice")," "),a(2),_((e=o.spaBookingData())?8:9,e)}}function qt(t,i){t&1&&(l(0,"div",31),s(1),c(2,"translate"),d()),t&2&&(a(),g(" ",p(2,1,"voucherGuideAnonymous")," "))}function zt(t,i){t&1&&(s(0),c(1,"translate")),t&2&&g(" ",p(1,1,"voucherGuideSpaCheckout")," ")}function Kt(t,i){t&1&&(s(0),c(1,"translate")),t&2&&g(" ",p(1,1,"voucherGuideSpa")," ")}function Wt(t,i){if(t&1&&(l(0,"div",31),m(1,zt,2,3)(2,Kt,2,3),d()),t&2){let e=r(4);a(),_(e.checkout()?1:2)}}function Jt(t,i){t&1&&(s(0),c(1,"translate")),t&2&&g(" ",p(1,1,"voucherGuideCredit
1Checkout")," ")}function Qt(t,i){t&1&&(s(0),c(1,"translate")),t&2&&g(" ",p(1,1,"voucherGuideCredit")," ")}function Xt(t,i){if(t&1&&(l(0,"div",31),m(1,Jt,2,3)(2,Qt,2,3),d()),t&2){let e=r(4);a(),_(e.checkout()?1:2)}}function Zt(t,i){if(t&1&&(l(0,"div",28),m(1,qt,3,3,"div",31)(2,Wt,3,1,"div",31)(3,Xt,3,1,"div",31),d()),t&2){let e,n=i.$implicit,o=r(3);a(),_((e=o.selectedType(n))==="anonymous"?1:e==="spa"?2:e==="credit"?3:-1)}}function te(t,i){if(t&1&&(l(0,"div",30),s(1," Valable jusqu'au "),l(2,"strong"),s(3),c(4,"date"),d(),s(5," dans le(s) centre(s) de "),l(6,"strong"),s(7),d()(),P(8,Zt,4,1,"div",28,H)),t&2){let e=i;a(3),b(w(4,2,e.validUntil,"shortDate")),a(4),b(e.validInStr),a(),G(e.consumables)}}function ee(t,i){if(t&1&&(l(0,"p",28)(1,"span",19)(2,"span",29),s(3),c(4,"translate"),d()()(),m(5,te,10,5)),t&2){let e,n=r();a(3),b(p(4,2,"free")),a(2),_((e=n.asCoupon())?5:-1,e)}}function ie(t,i){if(t&1&&(l(0,"div",32)(1,"p",34),s(2),c(3,"translate"),d(),l(4,"p",35),s(5),c(6,"currency"),d()()),t&2){let e=r(2);a(2),b(p(3,2,"managementFees")),a(3),g(" ",p(6,4,e.siteService.price(e.productService.managementFee().id).price)," ")}}function ne(t,i){if(t&1&&(s(0),c(1,"date"),c(2,"date"),c(3,"translate")),t&2){let e=r();g(" ",w(3,5,"validFromUntil",E(8,Bt,p(1,1,e.from),p(2,3,e.to)))," ")}}function oe(t,i){if(t&1&&(s(0),c(1,"date"),c(2,"translate")),t&2){let e=r();g(" ",w(2,3,"validUntil",F(6,Vt,p(1,1,e.date)))," ")}}function ae(t,i){t&1&&(l(0,"p",33),m(1,ne,4,11)(2,oe,3,8),d()),t&2&&(a(),_(i.kind==="range"?1:2))}function re(t,i){if(t&1&&(m(0,ie,7,6,"div",32),m(1,ae,3,1,"p",33)),t&2){let e,n=r();_(i.format===n.GiftFormat.mail?0:-1),a(),_((e=n.validityDisplay())?1:-1,e)}}function le(t,i){if(t&1){let e=D();l(0,"app-spa-booking",38),x("validated",function(o){C(e);let u=r(3);return f(u.updateSpaOption(o))}),d()}if(t&2){let e=i.$implicit,n=r();v("center",n.center)("initialCommentaires",(n.item.spaBooking==null?null:n.item.spaBooking.commentaires)??"")("spaBooking",e)}}function de(t,i){if(t&1){let e=D();P(0,le,1,3,"app-spa-booking",36,Pt),l(2,"button",37),x("click",function(){C(e);let o=r(2);return f(o.planningDisplayed.set(!1))})("keyup.enter",function(o){C(e);let u=r(2);return f(u.emulateClick(o))}),s(3),c(4,"translate"),d()}if(t&2){let e=r(2);G(i.spaBookings),a(2),v("disabled",e.cartService.saving()),a(),g(" ",p(4,2,"cancel")," ")}}function ce(t,i){if(t&1&&m(0,de,5,4),t&2){let e,n=r();_((e=n.spaBookingData())?0:-1,e)}}function se(t,i){if(t&1){let e=D();l(0,"div",43)(1,"button",16),x("click",function(){C(e);let o=r(2);return f(o.editGift.set(!o.editGift()))})("keyup.enter",function(o){C(e);let u=r(2);return f(u.emulateClick(o))}),y(2,"img",46),d()()}}function pe(t,i){if(t&1){let e=D();l(0,"div",13)(1,"span",47),s(2),c(3,"translate"),d(),l(4,"div",48)(5,"button",49),x("click",function(){C(e);let o=r(2);return f(o.confirmAsGift.set(!1))}),s(6),c(7,"translate"),d(),l(8,"button",50),x("click",function(){C(e);let o=r(2);return f(o.confirmGift())}),s(9),c(10,"translate"),d()()()}t&2&&(a(2),b(p(3,3,"giftWillRemoveBooking")),a(4),g(" ",p(7,5,"cancel")," "),a(3),g(" ",p(10,7,"validate")," "))}function me(t,i){if(t&1){let e=D();l(0,"div",13)(1,"div",39)(2,"div",40),y(3,"img",41),l(4,"p",42),s(5),c(6,"translate"),d()(),m(7,se,3,0,"div",43),l(8,"button",44),x("click",function(){C(e);let o=r();return f(o.toggleGift())}),y(9,"span",45),d()(),m(10,pe,11,9,"div",13),d()}if(t&2){let e=r();a(5),b(p(6,6,"giftOption")),a(2),_(e.asGift()&&!e.editGift()?7:-1),a(),v("disabled",e.spaBookingProgress()||e.cartService.saving())("ngClass",e.asGift()?"bg-bleuCaliceo-300":"bg-gray-500"),a(),v("ngClass",e.asGift()||e.confirmAsGift()?"md:translate-x-8 translate-x-6":"translate-x-0"),a(),_(e.confirmAsGift()?10:-1)}}function _e(t,i){if(t&1){let e=D();l(0,"app-gift-form",51),x("giftFormSubmitted",function(o){C(e);let u=r();return f(u.updateGiftData(o))}),d()}if(t&2){let e=r();v("gift",i)("handleEdit",e.editGift())}}var Dt=class t{emulateClick=at;authService=k(ft);productService=k(rt);cartService=k(mt);siteService=k(lt);accountService=k(_t);item=W.required();asGift=S(()=>{let i=this.item();return i instanceof A?i:null});spaBookingData=I(null);product=S(()=>this.productService.get(this.item().product));canDelete=N(!0);images=S(()=>{let i=this.product();return i.group?this.siteService.images(i.group):this.siteService.images(i.id
1)});asCoupon=S(()=>{let i=this.item();return i instanceof st?i:null});planningDisplayed=I(!1);confirmAsGift=I(!1);validityDisplay=S(()=>{if(!this.asGift())return null;let i=this.product();return i.type==="ManagementFee"?null:yt(i.validity)});spaBookingProgress=I(!1);spaBookingTimer=I("");editGift=I(!1);interval=null;checkout=N(!1);isPlanningDisplayed=K();CartItemType=dt;GiftFormat=ct;constructor(){M(()=>{this.isPlanningDisplayed.emit(this.planningDisplayed())}),M(async()=>{let e=this.siteService.center(),n=this.item(),o=this.product(),u=this.cartService.saving();if(!e||!o||!n||u||!(n instanceof B)||!o.onAppointment)return;let T=n;this.spaBookingProgress.set(!0);let h=await this.accountService.availableSpaForProductGift(e.erpId,o.erpId);this.spaBookingData.set({center:e,item:T,spaBookings:h}),this.spaBookingProgress.set(!1)});let i=L(()=>{this.interval=setInterval(async()=>await this.remainingTime(),1e3)});k(j).onDestroy(()=>i.destroy())}ngOnDestroy(){this.interval&&clearInterval(this.interval)}async updateGiftData(i){let e=this.item(),n=new A(U(R({},i),{product:e.product}));await this.cartService.update(e,n)}async removeItemFromCart(){this.cartService.saving()||await this.cartService.remove(this.item())}async addItemToCart(){if(this.cartService.saving())return;let i=this.item();i instanceof B&&(i.spaBooking=null),await this.cartService.add([{cartItem:i,quantity:1}],this.item())}async updateSpaOption(i){let e=this.item();e instanceof B&&(e.spaBooking=i),this.planningDisplayed.set(!1),await this.remainingTime(),await this.cartService.save(),await this.cartService.refreshCart()}async remainingTime(){let i=this.spaBookingData();if(i?.item.spaBooking){let e=i?.item.spaBooking.created,n=new Date,u=new Date(e).getTime()-n.getTime(),T=Math.round(u/6e4),h=20-Math.abs(T);if(this.spaBookingTimer.set(String(h)),h<=0){let O=this.item();O instanceof B&&(O.spaBooking=null,await this.cartService.save())}}}selectedType(i){let e=i.items.find(n=>n.consumeOid===i.oIds[0]);return e?e.type==="anonymous"?"anonymous":e.onAppointement?"spa":"credit":null}toggleGift(){if(this.asGift()||!this.spaBookingData()?.item.spaBooking){this.cartService.switchGift(this.item());return}this.confirmAsGift.set(!0)}confirmGift(){this.cartService.switchGift(this.item()),this.confirmAsGift.set(!1)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=Y({type:t,selectors:[["app-cart-item-detail"]],inputs:{item:[1,"item"],canDelete:[1,"canDelete"],checkout:[1,"checkout"]},outputs:{item:"itemChange",isPlanningDisplayed:"isPlanningDisplayed"},decls:25,vars:17,consts:[[1,"border-b","border-gray-200","py-12"],[1,"flex","flex-col","md:flex-row","gap-4","md:gap-10"],[1,"basis-1/3","relative","min-w-48","aspect-[1/1]","max-h-[25vh]","w-full"],["fill","","sizes","20vw",1,"object-cover","rounded-lg","h-full",3,"alt","ngSrc"],["fill","","ngSrc","assets/images/placeholder.webp","sizes","20vw",1,"object-cover","rounded-lg","h-full",3,"alt"],[1,"basis-2/3"],[1,"flex","flex-row","place-content-between","gap-2","md:gap-8"],[1,"flex","justify-between","items-center"],[1,"text-bleuCaliceo-300","font-semibold","text-xl",3,"routerLink"],[1,"flex","gap-2","mt-2","mb-6","items-center"],["alt","","height","26","ngSrc","assets/icons/gray/location.svg","width","26",1,"w-4","h-4","md:w-6","md:h-6"],[1,"text-sm","md:text-md","font-semibold"],[1,"flex","flex-col","gap-4","items-center"],[1,"flex","flex-col","gap-4"],["theme","checkout",3,"gift","handleEdit"],["role","button","tabindex","0"],["role","button","tabindex","0",3,"click","keyup.enter"],["alt","","height","36","ngSrc","assets/icons/gray/trashcan.svg","width","36"],["alt","","height","32","ngSrc","assets/icons/gray/one_more.svg","width","32"],[1,"font-semibold","text-xl"],[1,"text-bleuCaliceo-300","mr-4","line-through"],[1,"py-6"],[1,"text-bleuCaliceo-300","font-semibold","whitespace-pre-line"],["appHoverGradient","",1,"px-6","gap-2","w-full","mt-4","py-3","main-btn","text-center","flex","items-center","justify-center","disabled:bg-gray-300",3,"disabled"],["appHoverGradient","",1,"px-6","gap-2","w-full","mt-4","py-3","main-btn","text-center","flex","items-center","justify-center","disabled:bg-gray-300",3,"click","keyup.enter","disabled"],[1,"w-full","pt-8"],[1,"h-1","w-full","bg-gray-300","overflow-hidden"],[1,"progress","w-full","h-full","bg-bleuCaliceo-300","left-right"],[1,"mb-2"],[1,"text-bleuCaliceo-300","mr-4"],[1,"text-sm","m-4"],[1,"m-2"],[1,"flex","items-center","justify-between","text-md","mt-2"],[1,"text-xs","md:text-sm"],[1,"text-sm","md:text-md"],[1,"font-semibold","text-sm","md:text-md"],[3,"center","initialCommentaires","spaBooking"],[1,"px-6","gap-2","w-full","mt-4","py-3","main-btn","text-center","flex","items-center","justify-center","bg-red-500","hover:bg-red-400","disabled:bg-gray-300",3,"click","keyup.enter","disabled"],[3,"validated","center","initialCommentaires","spaBooking"],[1,"flex","mt-7","justify-between","items-center"],[1,"flex","gap-4","items-center"],["alt","","height","40","ngSrc","assets/icons/gray/gift.svg","width","40",1,"h-9","w-9","md:h-14","md:w-14"],[1,"font-semibold","text-base","lg:text-lg"],[1,"text-sm","p-8","leading-6"],["aria-checked","fal
1se","aria-labelledby","annual-billing-label","role","switch","type","button",1,"relative","inline-flex","h-6","md:h-8","w-12","md:w-16","flex-shrink-0","cursor-pointer","rounded-full","border-4","border-transparent","transition-colors","duration-200","ease-in-out","focus:outline-none","disabled:bg-gray-300",3,"click","disabled","ngClass"],["aria-hidden","true",1,"translate-x-0","pointer-events-none","inline-block","h-4","w-4","md:h-6","md:w-6","transform","rounded-full","bg-white","shadow","ring-0","transition","duration-200","ease-in-out",3,"ngClass"],["alt","","height","32","ngSrc","assets/icons/gray/edit.svg","width","32"],[1,"grow","text-md","font-semibold"],[1,"px-2","flex","gap-2"],[1,"grow","py-2","main-btn","bg-gray-400","hover:bg-gray-300",3,"click"],["appHoverGradient","",1,"grow","py-2","main-btn",3,"click"],["theme","checkout",3,"giftFormSubmitted","gift","handleEdit"]],template:function(e,n){if(e&1&&(l(0,"div",0)(1,"div",1)(2,"div")(3,"div",2),m(4,Gt,1,2,"img",3)(5,Ft,2,3,"img",4),d()(),l(6,"div",5)(7,"div",6)(8,"div")(9,"div",7)(10,"a",8),s(11),c(12,"translate"),d()(),l(13,"div",9),y(14,"img",10),l(15,"p",11),s(16),c(17,"translate"),d()()(),m(18,Mt,4,1,"div",12),d(),m(19,$t,10,12)(20,ee,6,4),m(21,re,2,2),d()(),m(22,ce,1,1),m(23,me,11,8,"div",13),m(24,_e,1,2,"app-gift-form",14),d()),e&2){let o,u,T,h;a(4),_((o=n.images()[0])?4:5,o),a(6),v("routerLink",F(15,St,n.product().slug)),a(),g(" ",p(12,11,"product/"+n.product().id+"/name")," "),a(5),q("",p(17,13,"caliceo")," ",n.siteService.center().name),a(2),_(!n.cartService.saving()&&n.canDelete()?18:-1),a(),_((u=n.item().type!==n.CartItemType.Coupon&&n.siteService.price(n.product().id))?19:20,u),a(2),_((T=n.asGift())?21:-1,T),a(),_(n.planningDisplayed()?22:-1),a(),_(n.item().type!==n.CartItemType.Coupon?23:-1),a(),_((h=n.asGift())?24:-1,h)}},dependencies:[Z,pt,ot,J,tt,et,it,Ct,ut,nt,Q,X],encapsulation:2})};export{Dt as a};
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.