1"use strict";(self.webpackChunkweb_booking=self.webpackChunkweb_booking||[]).push([[1928],{19386:($,O,o)=>{o.r(O),o.d(O,{BOOKING_CREATE_BAGGAGE_ROUTES:()=>j});var i=o(35678),g=o(99842),y=o(87588),D=o(72200),I=o(31653),A=o(83417),n=o(90556),P=o(16877),S=o(94709),p=o(91828),E=o(45740),b=o(68018),T=o(62032),e=o(73664),k=o(2615),a=o(78466),l=o(14905),v=o(252),d=o(3905),f=o(23830),R=o(76993),K=o(62710),t=o(79037),r=o(18199),s=o(15787),u=o(43134),c=o(30538),C=o(68098);const U=(m,h,_,B)=>({booking:m,tripsProductFares:h,isB2EMode:_,cmsBlock:B});function L(m,h){if(1&m&&(e.j41(0,"section",12),e.nrm(1,"via-information-panel",13),e.k0s()),2&m){const _=e.XpG(2).ngIf;e.R7$(),e.Y8G("messages",_.cmsBlock)}}function W(m,h){if(1&m){const _=e.RV6();e.j41(0,"via-baggage-container",14),e.bIt("onConfirm",function(){k.eBV(_);const M=e.XpG(3);return k.Njj(M.goToNextStep())}),e.k0s()}if(2&m){const _=e.XpG(2).ngIf;e.Y8G("tripsProductFares",_.tripsProductFares)("booking",_.booking)}}function X(m,h){if(1&m&&e.nrm(0,"app-advanced-booking-options",15),2&m){const _=e.XpG(2).ngIf;e.Y8G("booking",_.booking)}}function F(m,h){if(1&m&&(e.qex(0),e.nrm(1,"via-breadcrumb",3),e.nI1(2,"async"),e.j41(3,"div",4)(4,"div",5),e.DNE(5,L,2,1,"section",6),e.j41(6,"section",7)(7,"h1",8),e.EFF(8),e.nI1(9,"translate"),e.k0s(),e.j41(10,"p",9),e.EFF(11),e.nI1(12,"translate"),e.k0s()()(),e.DNE(13,W,1,2,"via-baggage-container",10),e.k0s(),e.nrm(14,"app-plus-taxes-note"),e.DNE(15,X,1,1,"app-advanced-booking-options",11),e.nI1(16,"viaPermission"),e.bVm()),2&m){const _=e.XpG().ngIf,B=e.XpG();e.R7$(),e.Y8G("booking",_.booking)("steps",e.bMT(2,7,B.breadcrumbSteps$)),e.R7$(4),e.Y8G("ngIf",null==_.cmsBlock?null:_.cmsBlock.length),e.R7$(3),e.JRh(e.bMT(9,9,"baggage.title")),e.R7$(3),e.JRh(e.bMT(12,11,"baggage.description")),e.R7$(2),e.Y8G("ngIf",_.tripsProductFares),e.R7$(2),e.Y8G("ngIf",e.bMT(16,13,B.Permission.ModifyBookingAdvanced))}}function G(m,h){if(1&m&&(e.qex(0),e.DNE(1,F,17,15,"ng-container",2),e.bVm()),2&m){const _=h.ngIf;e.XpG();const B=e.sdS(6);e.R7$(),e.Y8G("ngIf",_.booking&&_.tripsProductFares)("ngIfElse",B)}}function x(m,h){1&m&&(e.j41(0,"div",16),e.nrm(1,"via-spinner"),e.k0s())}const j=[{path:":bookingNumber",component:(()=>{var m;class h extends y.h{constructor(B,M,N,Y,H,z,J,Z,Q,w,q,ee,oe,ne){super(B,M,N,Y,H,z,J,Z,Q,w,q,ee,oe),(0,g.A)(this,"bookingService",void 0),(0,g.A)(this,"workFlowService",void 0),(0,g.A)(this,"activatedRoute",void 0),(0,g.A)(this,"breadcrumbStepsService",void 0),(0,g.A)(this,"userService",void 0),(0,g.A)(this,"organizationService",void 0),(0,g.A)(this,"gtmService",void 0),(0,g.A)(this,"ticketAddonService",void 0),(0,g.A)(this,"cmsBlockService",void 0),(0,g.A)(this,"scrollService",void 0),(0,g.A)(this,"bookingValidators",void 0),(0,g.A)(this,"configService",void 0),(0,g.A)(this,"router",void 0),(0,g.A)(this,"bookingRemainingTimeService",void 0),this.bookingService=B,this.workFlowService=M,this.activatedRoute=N,this.breadcrumbStepsService=Y,this.userService=H,this.organizationService=z,this.gtmService=J,this.ticketAddonService=Z,this.cmsBlockService=Q,this.scrollService=w,this.bookingValidators=q,this.configService=ee,this.router=oe,this.bookingRemainingTimeService=ne}ngOnInit(){super.ngOnInit(),this.initBookingRemainingTime()}initBookingRemainingTime(){this.bookingRemainingTimeService.initCountdown(this.destroy$).subscribe()}}return m=h,(0,g.A)(h,"\u0275fac",function(B){return new(B||m)(e.rXU(a.LM),e.rXU(l.h),e.rXU(v.nX),e.rXU(d.U),e.rXU(f.DL),e.rXU(R.P),e.rXU(K.A),e.rXU(t.S),e.rXU(r.g),e.rXU(s.b),e.rXU(u.t),e.rXU(c.a),e.rXU(v.Ix),e.rXU(C.o))}),(0,g.A)(h,"\u0275cmp",e.VBU({type:m,selectors:[["via-booking-create-baggage"]],features:[e.Vt3],decls:7,vars:14,consts:[["bookingLoading",""],[4,"ngIf"],[4,"ngIf","ngIfElse"],[1,"breadcrumb-stepper",3,"booking","steps"],[1,"baggage-selection"],[1,"container"],["class","spacer-lg",4,"ngIf"],[1,"intro-section"],[1,"title"],[1,"description"],[3,"tripsProductFares","booking","onConfirm",4,"ngIf"],[3,"booking",4,"ngIf"],[1,"spacer-lg"],[3,"messages"],[3,"onConfirm","tripsProductFares","booking"],[3,"booking"],[1,"text-center"]],template:function(B,M){1&B&&(e.DNE(0,G,2,2,"ng-container",1),e.nI1(1,"async"),e.nI1(2,"async"),e.nI1(3,"async"),e.nI1(4,"async"),e.DNE(
15,x,2,0,"ng-template",null,0,e.C5r)),2&B&&e.Y8G("ngIf",e.ziG(9,U,e.bMT(1,1,M.booking$),e.bMT(2,3,M.tripsProductFares$),e.bMT(3,5,M.isB2EMode$),e.bMT(4,7,M.cmsBlock$)))},dependencies:[D.bT,I.D,A.A,n.Y,P.I,S.N,p.D,E.v,D.Jj,b.D9,T.C],encapsulation:2,changeDetection:0})),h})()},{path:"",redirectTo:`/${i.iz.create}/${i.iz.search}`,pathMatch:"full"}]},57867:($,O,o)=>{o.d(O,{e:()=>k});var i=o(99842),g=o(72200),y=o(25558),D=o(96697),I=o(25715),A=o(10064),n=o(73664);function P(a,l){if(1&a&&(n.j41(0,"div",1),n.nrm(1,"div",2),n.k0s()),2&a){const v=l.ngIf;n.R7$(),n.Y8G("innerHTML",v,n.npT)}}let S=(()=>{var a;class l extends I.${constructor(d){super(),(0,i.A)(this,"drupalService",void 0),(0,i.A)(this,"region",void 0),(0,i.A)(this,"baggagePolicyCarryOnHtml$",void 0),this.drupalService=d}ngOnInit(){super.ngOnInit(),this.baggagePolicyCarryOnHtml$=this.drupalService.getPageUrl(A.n.BaggagePolicyCarryOn,{region:this.region}).pipe((0,y.n)(d=>this.drupalService.getEmbeddedContent(d,{skipCache:!1})),(0,D.s)(1))}}return a=l,(0,i.A)(l,"\u0275fac",function(d){return new(d||a)(n.rXU(A.s))}),(0,i.A)(l,"\u0275cmp",n.VBU({type:a,selectors:[["via-baggage-drupal-carry-on"]],inputs:{region:"region"},features:[n.Vt3],decls:2,vars:3,consts:[["class","section-drupal",4,"ngIf"],[1,"section-drupal"],[3,"innerHTML"]],template:function(d,f){1&d&&(n.DNE(0,P,2,1,"div",0),n.nI1(1,"async")),2&d&&n.Y8G("ngIf",n.bMT(1,1,f.baggagePolicyCarryOnHtml$))},dependencies:[g.bT,g.Jj],encapsulation:2})),l})();function p(a,l){if(1&a&&(n.j41(0,"div",1),n.nrm(1,"div",2),n.k0s()),2&a){const v=l.ngIf;n.R7$(),n.Y8G("innerHTML",v,n.npT)}}let E=(()=>{var a;class l extends I.${constructor(d){super(),(0,i.A)(this,"drupalService",void 0),(0,i.A)(this,"region",void 0),(0,i.A)(this,"baggagePolicyCheckedHtml$",void 0),this.drupalService=d}ngOnInit(){super.ngOnInit(),this.baggagePolicyCheckedHtml$=this.drupalService.getPageUrl(A.n.BaggagePolicyChecked,{region:this.region}).pipe((0,y.n)(d=>this.drupalService.getEmbeddedContent(d,{skipCache:!1})),(0,D.s)(1))}}return a=l,(0,i.A)(l,"\u0275fac",function(d){return new(d||a)(n.rXU(A.s))}),(0,i.A)(l,"\u0275cmp",n.VBU({type:a,selectors:[["via-baggage-drupal-checked"]],inputs:{region:"region"},features:[n.Vt3],decls:2,vars:3,consts:[["class","section-drupal",4,"ngIf"],[1,"section-drupal"],[3,"innerHTML"]],template:function(d,f){1&d&&(n.DNE(0,p,2,1,"div",0),n.nI1(1,"async")),2&d&&n.Y8G("ngIf",n.bMT(1,1,f.baggagePolicyCheckedHtml$))},dependencies:[g.bT,g.Jj],encapsulation:2})),l})();function b(a,l){if(1&a&&(n.j41(0,"div",3),n.nrm(1,"via-baggage-drupal-carry-on",4),n.k0s()),2&a){const v=n.XpG(2);n.R7$(),n.Y8G("region",v.drupalBagagesPolicy.carryOnPolicy)}}function T(a,l){if(1&a&&(n.j41(0,"div",5),n.nrm(1,"via-baggage-drupal-checked",4),n.k0s()),2&a){const v=n.XpG(2);n.R7$(),n.Y8G("region",v.drupalBagagesPolicy.checkedBaggagePolicy)}}function e(a,l){if(1&a&&(n.j41(0,"div"),n.DNE(1,b,2,1,"div",1)(2,T,2,1,"div",2),n.k0s()),2&a){const v=n.XpG();n.R7$(),n.Y8G("ngIf",v.drupalBagagesPolicy.carryOnPolicy),n.R7$(),n.Y8G("ngIf",v.drupalBagagesPolicy.checkedBaggagePolicy)}}let k=(()=>{var a;class l{constructor(){(0,i.A)(this,"drupalBagagesPolicy",void 0)}}return a=l,(0,i.A)(l,"\u0275fac",function(d){return new(d||a)}),(0,i.A)(l,"\u0275cmp",n.VBU({type:a,selectors:[["via-baggage-drupal"]],inputs:{drupalBagagesPolicy:"drupalBagagesPolicy"},decls:1,vars:1,consts:[[4,"ngIf"],["class","drupal-carryon-policies spacer-lg",4,"ngIf"],["class","drupal-checked-policies",4,"ngIf"],[1,"drupal-carryon-policies","spacer-lg"],[3,"region"],[1,"drupal-checked-policies"]],template:function(d,f){1&d&&n.DNE(0,e,3,2,"div",0),2&d&&n.Y8G("ngIf",f.drupalBagagesPolicy)},dependencies:[g.bT,S,E],encapsulation:2})),l})()},79037:($,O,o)=>{o.d(O,{S:()=>d});var i=o(99842),g=o(24609),D=o(20319),I=o(7673),A=o(96354),n=o(73028),P=o(44668),S=o(62631),p=o(84084),E=o(2615),b=o(25085),T=o(78466),e=o(30099),k=o(41563),a=o(30538),l=o(84740),v=o(55274);let d=(()=>{var f;class R{constructor(t,r,s,u,c,C,U){(0,i.A)(this,"productService",void 0),(0,i.A)(this,"bookingService",void 0),(0,i.A)(this,"bookingMapper",void 0),(0,i.A)(this,"bookingProductMapper",void 0),(0,i.A)(this,"viaConfigurationService",void 0),(0,i.A)(this,"searchCriteriaService",void 0),(0,i.A)(this,"apiConnector",void 0),this.productService=t,this.bookingService=r,this.bookingMapper=s,this.bookingProductMapper=u,this.viaConfigurationService=c,this.searchCriteriaService=C,this.apiConnector=U}
1getJourneyResponse(t){return this.apiConnector.getJourney(S.g.buildJourneyRequest(t)).pipe((0,P.t)(1))}getProductFares(t){return this.productService.searchProduct(t.booking,t.booking.activePassengersWithoutProvisionalRemovedDummyExcluded,t.productTypes,t.tripNumber).pipe((0,A.T)(r=>r.products.map(s=>this.bookingProductMapper.getProductFare(s,r))))}getBaggageProductFares(t,r){return this.productService.searchBaggageProducts(t).pipe((0,A.T)(s=>s.map(u=>u.products.map(c=>this.bookingProductMapper.getProductFare(c,u,!0,r)).filter(Boolean))))}addTicketAddons(t,r){return this.bookingService.patchBooking(t,this.constructPatchRequest(r))}repriceItems(t,r,s){const u=this.getRepriceItemsFromNewItems(t,s),c=this.getRepriceItemsFromBookingProducts(r);if(!u.length&&!c.length)return(0,I.of)(null);const C=this.constructRepriceRequest([...u,...c]);return this.apiConnector.overridePrices(t.number,C)}getRepriceItemsFromBookingProducts(t){return(t||[]).map(r=>({id:r.bookingProduct.uuid,price:+r.price,currency:g.Currency.CAD}))}constructRepriceRequest(t){return{items:t}}updateTicketAddons(t,r){let s;if(this.hasNoAddDeleteItems(r))return this.bookingService.currentBooking$;if(r.deletions.length>0){const u={cancel_item_refs:r.deletions.map(c=>c.item_ref)};s=this.bookingService.cancelBookingItems(t,u)}return r.additions.length>0&&(s=s?s.pipe((0,n.Z)(()=>this.bookingService.patchBooking(t,this.constructPatchRequest(r.additions)))):this.bookingService.patchBooking(t,this.constructPatchRequest(r.additions))),s}hasNoAddDeleteItems(t){return 0===t.deletions.length&&0===t.additions.length}constructPatchRequest(t){return{segments:t.flatMap(r=>{const s=r.products.map(u=>({passenger_id:r.passenger.id,tariff_code:r.tariffs.find(c=>c.product_code===u.code).code}));return p.b.createPatchSegments(r.segment.direction,r.segment,s)})}}getRepriceItemsFromNewItems(t,r){return(r||[]).map(s=>{const u=t.segments.find(C=>C.id===s.segmentId);return{id:this.findTicketAddonProduct(u,s.code,s.passengerId).uuid,price:s.price,currency:g.Currency.CAD}})}findTicketAddonProduct(t,r,s){return t.bookingPassengerProducts.filter(u=>u.additionalProducts.length).flatMap(u=>u.additionalProducts).find(u=>u.code===r&&!u.cancelled&&u.passenger_id===s)}getFutureTripNumber(t,r){return r.futureTrips.some(s=>s.number===t)?t:r.futureTrips[0]?.number}getFutureSegments(t){return t.segments.filter(r=>this.isFutureSegment(r))}isFutureSegment(t){const r=D.c9.fromMillis(Date.now(),{zone:t.departureDate.zone});return t.departureDate.diff(r).milliseconds>0}}return f=R,(0,i.A)(R,"\u0275fac",function(t){return new(t||f)(E.KVO(b.b),E.KVO(T.LM),E.KVO(e.bD),E.KVO(k.a),E.KVO(a.a),E.KVO(l.L),E.KVO(v.WL))}),(0,i.A)(R,"\u0275prov",E.jDH({token:f,factory:f.\u0275fac,providedIn:"root"})),R})()},87588:($,O,o)=>{o.d(O,{h:()=>t});var i=o(99842),g=o(84572),y=o(44437),D=o(5964),I=o(25558),A=o(96697),n=o(78276),P=o(86706),S=o(57003),p=o(73664),E=o(78466),b=o(14905),T=o(252),e=o(3905),k=o(23830),a=o(76993),l=o(62710),v=o(79037),d=o(18199),f=o(15787),R=o(43134),K=o(30538);let t=(()=>{var r;class s extends S.M{constructor(c,C,U,L,W,X,F,G,x,V,j,m,h){super(c,C,U,L,W,X),(0,i.A)(this,"bookingService",void 0),(0,i.A)(this,"workFlowService",void 0),(0,i.A)(this,"activatedRoute",void 0),(0,i.A)(this,"breadcrumbStepsService",void 0),(0,i.A)(this,"userService",void 0),(0,i.A)(this,"organizationService",void 0),(0,i.A)(this,"gtmService",void 0),(0,i.A)(this,"ticketAddonService",void 0),(0,i.A)(this,"cmsBlockService",void 0),(0,i.A)(this,"scrollService",void 0),(0,i.A)(this,"bookingValidators",void 0),(0,i.A)(this,"configService",void 0),(0,i.A)(this,"router",void 0),(0,i.A)(this,"cmsBlock$",void 0),(0,i.A)(this,"isB2EMode$",void 0),(0,i.A)(this,"tripsProductFares$",void 0),this.bookingService=c,this.workFlowService=C,this.activatedRoute=U,this.breadcrumbStepsService=L,this.userService=W,this.organizationService=X,this.gtmService=F,this.ticketAddonService=G,this.cmsBlockService=x,this.scrollService=V,this.bookingValidators=j,this.configService=m,this.router=h}ngOnInit(){this.scrollService.scrollToTop(),super.ngOnInit(),this.initB2ECheck(),this.initProductFares(),this.booking$.pipe((0,D.p)(c=>!!c),(0,A.s)(1)).subscribe(c=>this.trackGoogleAnalyticsEvents(c)),this.initCmsBlockMessages()}initCmsBlockMessages(){this.cmsBlock$=this.cmsBlockService.getCmsBlocksViaBooking(n.u9)}trackGoogleAnalyticsEvents(c){this.gtmService.pushEventToGA({[P.ID]:P.wH.BookingStep4Baggage,[P.bq.PurchaseCase]:c.isProvisional?P.Mf.New:P.Mf.Modification,[P.$x.Key]:c.s3Booking?.affiliate_code||P.$x.NonValue},P.BX.BookingFlow)}initB2ECheck(){this.isB2EMode$=this.userService.isCurrentUserAgent()}initProductFares(){this.tripsProductFares$=(0,g.z)([this.booking$,this.isB2EMode$]).pipe((0,A.s)(1),(0,I.n)(([c,C])=>{const U=(!c.isCorridorBooking||c.isMixedFaresBooking)&&C;return(0,y.y)(...c.nonCancelledAndNonMadeConcatenatedTrips.map(L=>
1this.ticketAddonService.getBaggageProductFares(L,U)))}))}}return r=s,(0,i.A)(s,"\u0275fac",function(c){return new(c||r)(p.rXU(E.LM),p.rXU(b.h),p.rXU(T.nX),p.rXU(e.U),p.rXU(k.DL),p.rXU(a.P),p.rXU(l.A),p.rXU(v.S),p.rXU(d.g),p.rXU(f.b),p.rXU(R.t),p.rXU(K.a),p.rXU(T.Ix))}),(0,i.A)(s,"\u0275cmp",p.VBU({type:r,selectors:[["ng-component"]],standalone:!1,features:[p.Vt3],decls:0,vars:0,template:function(c,C){},encapsulation:2})),s})()}}]);
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.