"use strict";angular.module("common",["ui.router","mocks","ngCookies","ngDialog","matchmedia-ng"]).run(["$ngRedux","TotalHeaderReducer","PaymentReducer","SCAReducer",function(e,a,d,u){e.addReducers&&e.addReducers({totalHeader:a,payment:d,sca:u})}]);
"use strict";angular.module("common").directive("animatedCollapse",function(){return{restrict:"A",scope:{isCollapsable:"<",isOpen:"<",animatedCollapse:"@",durationTime:"@?",timingFunction:"@?"},link:function(i,t){var e=t[0],n=e.querySelector(i.animatedCollapse),a=e.clientHeight,o=i.durationTime||"0.2s",s=i.timingFunction||"ease";e.style["transition-property"]="height",e.style["transition-duration"]=o,e.style["transition-timing-function"]=s;var l=i.$watch("isOpen",function(){if(i.isOpen){var t=n.clientHeight;e.style.height=t+"px"}else e.style.height=a+"px"});i.$on("$destroy",l)}}});
"use strict";angular.module("common").directive("collapsibleItemsAccordion",function(){var t=0,n="collapsible-item";return{restrict:"AE",compile:function(i){var e=i.find(n);t=e.length,e.forEach(function(t,n){t.setAttribute("ng-click","vm.toggleInfo("+n+")"),t.setAttribute("is-open","vm.isOpen["+n+"]")})},controller:function(){var n=this;this.isOpen=new Array(t).fill(!1),this.toggleInfo=function(t){n.isOpen=n.isOpen.map(function(n,i){return i===t?!n:!1})}},controllerAs:"vm"}});
"use strict";angular.module("common").directive("compactHeader",["$log","$window","Device","Utilities",function(e,t,n,o){return{restrict:"A",bindToController:!0,controllerAs:"compactHeader",controller:["$scope",function(e){var t=this;this.state="title",e.$on("$stateChangeSuccess",function(e,n){switch(n.name){case"booking.payment":t.state="paymentTitle";break;default:t.state="title"}})}],link:function(n,a){function r(){var e=a.find('[data-sticky-hook="compact-header"]')[0];for(u=0;e;)u+=e.offsetTop,e=e.offsetParent;u-=15}function c(){l||(l=document.getElementById("ryanair-navbar")),m=!1,a.parent()&&(d>=u?a.hasClass("compact")||(a.parent()[0].style.marginTop=a[0].offsetHeight+"px",a.addClass("compact")):(a.removeClass("compact"),a.parent()[0].style.marginTop=0))}function i(){!m&&u>0&&(d=t.pageYOffset,f=t.requestAnimationFrame(c),m=!0)}function s(){o.debounce(i,250)}var d=0,l=document.getElementById("ryanair-navbar"),m=!1,u=0,f=void 0;e.debug("[compactHeader]: Directive created"),setTimeout(r,0),t.addEventListener("scroll",s,!1),a.on("$destroy",function(){return n.$destroy()}),n.$on("$destroy",function(){e.debug("[compactHeader]: Directive destroyed"),t.cancelAnimationFrame(f),f=void 0,t.removeEventListener("scroll",s,!1)})}}}]);
"use strict";angular.module("common").directive("dynamicCompile",["$compile",function(e){return{restrict:"E",replace:!0,link:function(i,n,o){var r=void 0,t=void 0;o.$observe("html",function(o){r&&r.$destroy(),t&&t.remove(),o&&(r=i.$new(),t=e(o)(r)[0],n.append(t))})}}}]);
"use strict";angular.module("common").directive("ifCulture",["$animate","MarketConfig",function(e,n){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(t,r,u,l,i){function o(e){for(var n=e[0],t=e[e.length-1],r=void 0,u=1;n!==t&&(n=n.nextSibling);u++)(r||e[u]!==n)&&(r||(r=angular.element(Array.prototype.slice.call(e,0,u))),r.push(n));return r||e}var c=void 0,a=void 0,f=void 0;t.$watchGroup([function(){return u.ifCulture},function(){return n.getCulture()}],function(n){~n[0].indexOf(n[1])?a||i(function(n,t){a=t,n[n.length++]=document.createComment(" end ifCulture: "+u.ifCulture+" "),c={clone:n},e.enter(n,r.parent(),r)}):(f&&(f.remove(),f=null),a&&(a.$destroy(),a=null),c&&(f=o(c.clone),e.leave(f).then(function(){f=null}),c=null))})}}}]);
"use strict";angular.module("common").directive("infiniteScrollContainer",function(){return{controller:["$element",function(i){this.scrollContainer=i}]}}).directive("infiniteScroll",["$log","$parse","$timeout","$window",function(i,n,o,t){return{restrict:"A",require:"^?infiniteScrollContainer",link:function(l,e,r,c){if(c){var f=c.scrollContainer,a=f[0],d=!1,s=void 0,u=0,p=.5,g="down",S=void 0,m=void 0,v=function(){i.debug("[infiniteScroll] Done loading"),d=!1},$=function(){var o=u-a.scrollTop<0?"down":"up",t=!1,e=f[0].clientHeight;if(u=a.scrollTop,!d&&g===o&&("up"===g?a.scrollTop<=e*p&&(t=!0):a.scrollTop+a.offsetHeight+e*p>=a.scrollHeight&&(t=!0),t)){var c=n(r.infiniteScroll);s?(d=!0,i.debug("[infiniteScroll] Invoke load function with done callback...")):i.debug("[infiniteScroll] Invoke load function w/o done callback"),c(l,s)}},b=/\(([^)])/.exec(r.infiniteScroll);if(b&&b[1]&&(b=b[1].replace(/^\s|\s$/g,"").split(/\s*,\s*/),b&&(s={},s[b[0]]=v)),r.infiniteScrollDistance&&(p=parseFloat(r.infiniteScrollDistance)),r.infiniteScrollDirection&&(g=r.infiniteScrollDirection),r.infiniteScrollPadding){var h=n(r.infiniteScrollPadding)(l);a.style.paddingBottom=h.bottom&&h.bottom+"px"||"",a.style.paddingTop=h.top&&h.top+"px"||"",a.style.paddingLeft=h.left&&h.left+"px"||"",a.style.paddingRight=h.right&&h.right+"px"||""}r.$observe("infiniteScrollInterrupt",function(i){i&&f.off("scroll",$)}),c.scrollContainer.on("scroll",function(){o.cancel(S),t.cancelAnimationFrame(m),S=o(function(){m=t.requestAnimationFrame($)},50,!1)}),l.$on("$destroy",function(){f.off("scroll",$),i.debug("[infiniteScroll] $destroy called")})}}}}]);
"use strict";angular.module("common").directive("pictureFillIeFix",function(){return{restrict:"A",controller:["$timeout","$window",function(e,i){(~i.navigator.userAgent.indexOf("MSIE")||~i.navigator.userAgent.indexOf("Trident"))&&e(picturefill,0,!1)}]}});
"use strict";angular.module("common").directive("printFromPdf",["$log",function(e){return{restrict:"A",link:function(n,t,r){e.debug("[printFromPdf]: Directive loaded");var i=document.createElement("iframe"),o=function(){i.focus(),i.contentWindow.print()};n.$on("$destroy",function(){t[0].removeEventListener("click",o,!1),t=null,i.remove(),i=null,e.debug("[printFromPdf]: Directive destroyed")}),t[0].addEventListener("click",o,!1),r.$observe("printFromPdf",function(e){i.src=e}),i.style.display="none",document.body.appendChild(i)}}}]);
"use strict";angular.module("common").directive("printElement",["Utilities","$window",function(n,t){return{restrict:"A",link:function(e,i,o){var r=void 0,c=o.printElement,l=function(){r=c?0===c.indexOf("#")?document.getElementById(c.substr(1,c.length)):document.querySelector(c)||null:document.querySelector("body"),n.printElement(r),t.print()};i.on("click",l),e.$on("$destroy",function(){i.off("click",l)})}}}]);
"use strict";angular.module("common").directive("repeatDone",function(){return function(e,n,t){e.$last&&e.$eval(t.repeatDone)}});
"use strict";angular.module("common").directive("scaleWidth",["$log","$window",function(e,t){return{restrict:"A",link:function(i,n,o){var r=n[0].clientWidth,a=void 0,s=void 0,c=!0;e.debug("[scaleWidth]: Directive loaded");var d=function(e,t){e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t},l=function(){var e=(a/o.scaleWidth).toFixed(2);1>=e?d(n[0],"scale3d("+e+","+e+", 1)"):d(n[0],"none")},u=function m(){a=n[0].clientWidth,(!angular.equals(r,a)||c)&&(l(),c=!1),r=a,s=t.requestAnimationFrame(m)};i.$on("$destroy",function(){e.debug("[scaleWidth]: Directive destroyed"),t.cancelAnimationFrame(s),s=void 0}),u()}}}]);
"use strict";angular.module("common").directive("scrollContainer",["$timeout","$window","Device",function(i,n,o){return{restrict:"A",scope:{height:"@",show:"="},link:function(e,t){var r=function(){if(e.show){var i={"max-height":n.innerHeight*e.height/100+"px","overflow-y":"scroll","overflow-x":"hidden","margin-right":"-50px","padding-right":"50px"};t.css(i)}else{var o={"max-height":"none",width:"auto","overflow-y":"auto","overflow-x":"hidden","padding-right":"0","margin-right":"0"};t.css(o)}},h=o.onResize(function(){r()});i(function(){r()}),e.$on("$destroy",function(){h()})}}}]);
"use strict";angular.module("common").directive("scrollToLoad",function(){return{restrict:"A",scope:{callback:"&scrollToCallback"},link:function(c,n){var o=void 0,e=function(n){n.forEach(function(n){n.intersectionRatio>0&&(c.callback(),o.disconnect())})};o=new IntersectionObserver(e),o.observe(n[0]),c.$on("$destroy",function(){o.disconnect()})}}});
"use strict";angular.module("common").directive("selectPlaceholder",function(){return{require:"ngModel",restrict:"A",link:function(e,t,l){e.$watch(l.ngModel,function(){if(t[0].tagName&&"select"===t[0].tagName.toString().toLowerCase()){var e=t[0].options[t[0].selectedIndex],l=e&&e.value?e.value:"";0===l.length||"?"===l?t[0].classList.add("placeholder-selected"):t[0].classList.remove("placeholder-selected")}})}}});
"use strict";angular.module("common").directive("stickyHeader",["$log","$window","Device","Utilities",function(t,e,o,n){return{restrict:"A",scope:{mHookOffset:"@",dHookOffset:"@",throttle:"@",scroller:"@",cartOffTop:"@",noPush:"@"},link:function(t,r,s){function f(){return y+(H?O:T)}function c(){return H?O?"top: -"+O+"px":"":T?"top: -"+T+"px":""}function i(){s.$set("style",c()),r.addClass("compact")}function a(){s.$set("style",""),r.removeClass("compact")}function l(){v=!1;var e=r.find("[m-hook-top]")[0];O=(e&&e.offsetTop||0)+(parseInt(t.mHookOffset,10)||0);var o=r.find("[d-hook-top]")[0];T=(o&&o.offsetTop||0)+(parseInt(t.dHookOffset,10)||0);var n=angular.element(document.querySelector(".body-section"))[0];m>=f()?r.hasClass("compact")||(i(),n&&!k&&(n.style.marginTop=r[0].offsetHeight+"px")):(a(),n&&!k&&(n.style.marginTop="0"))}function u(){!v&&y>0&&(m=I(),h=e.requestAnimationFrame(l),v=!0)}function p(){var e=r[0];for(y=parseInt(t.cartOffTop,10)||0;e;)y+=e.offsetTop,e=e.offsetParent;u()}function d(){a(),setTimeout(p(),0)}var m=0,v=!1,h=void 0,y=parseInt(t.cartOffTop,10)||0,O=0,T=0,g=t.scroller?document.querySelectorAll(t.scroller)[0]:void 0,k="true"===t.noPush,$=parseInt(t.throttle,10)||0,H=void 0,I=function(){return g?void 0!==g.pageYOffset?g.pageYOffset:g.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:e.scrollTop},A=o.onPhone(function(t){H=t.matches,d()}),E=n.throttle(u,$);g?g.addEventListener("scroll",0===$?u:E,!1):e.addEventListener("scroll",0===$?u:E,!1),r.on("$destroy",function(){return t.$destroy()}),t.$on("$destroy",function(){e.cancelAnimationFrame(h),h=void 0,g?g.removeEventListener("scroll",0===$?u:E,!1):e.removeEventListener("scroll",0===$?u:E,!1),A(),d()})}}}]);
"use strict";angular.module("common").directive("stickyMobile",["$window","$document","Device",function(e,i,n){return{restrict:"A",scope:{stickyClassName:"@",stickyTopOffset:"@",stickyMessageAllowed:"<"},link:function(t,s){var o=R.propOr(!0,"stickyMessageAllowed",t);if(n.isPhone()&&o){var r=void 0,c=void 0,l=void 0,a=void 0,u=s[0],d={scrolling:!1,resizing:!1},f=R.pipe(R.when(R.isNil,function(){return 0}),Number)(t.stickyTopOffset),v=R.pipe(R.when(R.isNil,function(){var e="sticky-mobile";return u.classList.add(e),e}),R.replace(".",""))(t.stickyClassName),m=v+"--active",g=function(){var e=t.stickyClassName?i[0].querySelector("."+v):u;a=e.getBoundingClientRect().top},p=function(){c||(c=u.offsetTop),r=u.getBoundingClientRect().top;var i=e.pageYOffset-r-c-a,n=i>=f;d.scrolling=!1,n?u.classList.add(m):n||u.classList.remove(m)},y=function(){g(),d.resizing=!1,p()},k=function(i){return d[i]?void 0:l=e.requestAnimationFrame(function(){return"scrolling"===i?p():y()})},L=function(){return k("scrolling")},w=function(){return k("resizing")};e.addEventListener("scroll",L,!1),e.addEventListener("resize",w,!1),g(),t.$on("$destroy",function(){e.removeEventListener("scroll",L,!1),e.removeEventListener("resize",w,!1),e.cancelAnimationFrame(l),l=void 0})}}}}]);
"use strict";angular.module("common").directive("stickyElement",["$log","$window","$document","Device",function(e,t,o,n){var r="unstick",i="top",s="bottom";return{restrict:"A",link:function(l,a,c){e.debug("[stickyElement]: initialized");var f=angular.element("
"),u=void 0,p=void 0,b=void 0,d=void 0,v=void 0,m=void 0,y=void 0,g=void 0,h=void 0,k={stickyContainer:{},invertStick:{type:"boolean"},offset:{type:"number"},allowFloat:{type:"boolean"},offsetTop:{type:"number"},heightTolerance:{type:"number"},bottomSelector:{},bottomMargin:{type:"number"}},H={number:function(e){return parseInt(e,10)||0},"boolean":function(e){return Boolean(e)}},S=function(){return Math.max(b.clientHeight,t.innerHeight||0)},T=function(e){var t,o=u.getBoundingClientRect(),n=(t={},babelHelpers.defineProperty(t,i,function(){if(f&&u.offsetHeight&&y.allowFloat){var e=h.hasClass("sidebar")?y.offset:u.offsetHeight+"px";Object.assign(R.head(f).style,{height:e}),h.parent().prepend(f)}var t={position:y.stickyContainer?"relative":"fixed",bottom:y.invertStick?"0":"auto",top:y.invertStick?"auto":"0",marginTop:0,marginBottom:0,width:u.offsetWidth+"px"};if(y.stickyContainer){var n=p.scrollTop-y.offset;t.transform="translate(0px, "+n+"px)"}else{var r=parseInt(isNaN(y.offsetTop)?y.offset:y.offsetTop,10);y.invertStick?Object.assign(t,{left:Math.ceil(o.left)}):Object.assign(t,{left:Math.ceil(o.left)+"px",top:(y.invertStick?m-r:r)+"px"})}Object.assign(u.style,t)}),babelHelpers.defineProperty(t,r,function(){f&&f.remove&&f.remove(),Object.assign(u.style,{},v)}),babelHelpers.defineProperty(t,s,function(){var e;Object.assign(u.style,(e={position:"absolute"},babelHelpers.defineProperty(e,y.invertStick?"top":"bottom","0"),babelHelpers.defineProperty(e,y.invertStick?"bottom":"top","auto"),babelHelpers.defineProperty(e,"marginBottom",(y.bottomMargin||"20")+"px"),babelHelpers.defineProperty(e,"left",Math.ceil(o.left)+"px"),e))}),t);e&&(g=e,n[e]())},O={scroll:function(){var e=void 0,n=void 0,l=[{test:function(){return{"true":function(){return m-y.offsetTop-u.offsetHeight+y.heightTolerance<0},"false":function(){return y.offsetTop+u.offsetHeight-y.heightTolerance>m}}[y.invertStick]()},result:r},{test:function(){var t=void 0,n=void 0,r=void 0;return y.bottomSelector&&(t=Number(y.bottomMargin||0),n=R.head(o).querySelector(y.bottomSelector).getBoundingClientRect().top,r=Number(u.offsetHeight)+Number(y.offset)+t,e=r>n),e&&g===i},result:s},{test:function(){var o=t.pageYOffset||b.scrollTop||p.scrollTop||0,r=y.invertStick?parseInt(t.getComputedStyle(document.body).height,10)-m-(o-(b.clientTop||0)):o-(b.clientTop||0);return n=y.invertStick&&!o||r>=y.offset,n&&(g!==i||y.stickyContainer)&&!e},result:i},{test:function(){var t;return(t={},babelHelpers.defineProperty(t,i,function(){return!n}),babelHelpers.defineProperty(t,s,function(){return!e}),babelHelpers.defineProperty(t,r,function(){return!1}),t)[g]()},result:r},{test:function(){return!0},result:null}];T(l.find(function(e){return e.test()}).result)},resize:function(){m=S(),T(r),O.scroll()}};n.isPhone()||n.isTablet()||(y=Object.keys(k).reduce(function(e,t){return Object.assign(e,babelHelpers.defineProperty({},t,k[t].type?H[k[t].type](c[t]):c[t]))},{}),h=a,u=R.head(a),p=y.stickyContainer?R.head(o).querySelector(y.stickyContainer):t,b=R.head(o).documentElement,g=r,d=R.head(o).querySelector(y.invertStick?"global-footer":"#ryanair-navbar")||{},y.offset=y.offset||d.offsetHeight,v=Object.assign({},["position","marginTop","marginBottom","left","top","bottom","width","transform"].reduce(function(e,t){return Object.assign(e,babelHelpers.defineProperty({},t,u.style[t]))},{})),m=S(),Object.keys(O).map(function(e){return p.addEventListener(e,O[e],!1)}),u.parentElement.addEventListener("scroll",O.scroll,!1),l.$on("$destroy",function(){Object.keys(O).map(function(e){return p.removeEventListener(e,O[e],!1)}),u.parentElement.removeEventListener("scroll",O.scroll,!1),f&&f.remove&&f.remove(),f=null,e.debug("[stickyElement]: destroyed")}),O.scroll())}}}]);
"use strict";angular.module("common").directive("validCreditCardNumber",function(){return{require:"?ngModel",link:function(e,r,n,t){var i=r[0],a=void 0;t&&t.$parsers.push(function(e){angular.isUndefined(e)&&(e=""),e.replace(/[^0-9]+/g,"").length<=n.validCreditCardNumber&&(a=e.replace(/[^0-9\s]+/g,""));var r=a.replace(/[^0-9]+/g,""),l=i.selectionStart,d=i.selectionEnd+a.length-e.length;return e!==a&&(t.$setViewValue(a),t.$render(),i.setSelectionRange(l,d)),r})}}});
"use strict";angular.module("common").factory("Legacy",function(){var t={sortAirportList:function(t){var r=[],o=[],n=void 0,e=void 0,i=void 0;if(t.length){for(n=Math.ceil(t.length/3);t.length;)r.push(t.splice(0,n));for(e=0;e=0;f--)t[s]&&(o="x"===u[f]&&t[s]?t[s--]+o:u[f]+o);return s>=0&&(o=n.substring(0,s+1)+o),o}function e(n,r){n=n.toString();var t=n.split(""),i=r.split(""),u="",e=0;return i.forEach(function(n){"x"===n?t[e]&&(u+=t[e++]):u+=n}),u}function o(){var o=void 0,s=void 0,f=void 0;if(parseInt(n,10)>=0&&r&&t){var l=r;l=l.replace("{symbol}",t),n=n.toString();var a=n.split(".");o=l.indexOf("{"),s=l.indexOf("}"),f=l.substring(o+1,s);var c=u(a[0],f);return l=i(l,o,s,c),o=l.indexOf("{"),s=l.indexOf("}"),a[1]&&o>=0?(f=l.substring(o+1,s),c=e(a[1],f),l=i(l,o,s,c)):l=i(l,o,s,""),l}return""}return""!==r&&r||(r="{symbol}{x xxx}{,xx}"),""!==t&&t||(t="€"),o()}});
"use strict";angular.module("common").filter("titleCase",function(){return function(t){return void 0===t||null===t?"":t.replace(/_|-/," ").replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})}}).filter("displayFullName",function(){return function(t,r){return t.firstName+" "+t.lastName+" "+(r?" ":", ")}}).filter("padLeft",function(){return function(t,r,e){var n=new Array(r||2).join(e||0)+t;return n.slice(-r)}}).filter("toSafe",["$sce",function(t){return function(r){return t.trustAsHtml(r)}}]).filter("displayName",function(){return function(t){return t.middle?t.first+" "+t.middle+" "+t.last:t.first+" "+t.last}}).filter("percentage",["$filter",function(t){return function(r,e){var n=t("number")(100*r,e||0);return n+"%"}}]);
"use strict";angular.module("common").filter("suppressDecimal",function(){return function(t){return t?"string"==typeof t?t.split(".")[0]:Math.floor(t):t}});
"use strict";angular.module("common").filter("toUnderscore",function(){return function(n){var r=n.replace(/([A-Z])/g,function(n){return"_"+n.toLowerCase()});return 0===r.lastIndexOf("_")&&(r=r.substring(1,r.length)),r}});
"use strict";angular.module("common").factory("Address",["Countries","MarketConfig",function(e,t){var s=function(){function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",d=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"",a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";babelHelpers.classCallCheck(this,s),Object.assign(this,{addressLine1:e,addressLine2:t,addressLine3:n,city:r,countryCode:d,stateCode:o,postcode:a})}return s.isExtended=function(e){return""!==e.addressLine3},s.getCountryName=function(t){var s=e.getByCode(t.countryCode);return s?s.name:t.countryCode},s.getStateName=function(t){var s=e.getByCode(t.countryCode),n=s&&s.states?s.states[t.stateCode]:null;return n?n.name:t.stateCode},s.getAddressPayload=function(e){return{Line1:e.addressLine1,Line2:e.addressLine2,Line3:e.addressLine3,City:e.city,State:e.stateCode,Country:e.countryCode,Postal:e.postcode}},s.getAddressPayloadForSEPA=function(e){return{line1:e.addressLine1,line2:e.addressLine2,line3:e.addressLine3,city:e.city,state:e.stateCode,country:e.countryCode,postal:e.postcode}},s.getAddressPayloadForMyRyanair=function(e){return{city:e.city,country:e.countryCode,postalCode:e.postcode||null,state:e.stateCode,street1:e.addressLine1,street2:e.addressLine2,street3:e.addressLine3}},s.getAddressPayloadForRooms=function(e){return{address:(e.addressLine1+" "+e.addressLine2).trim(),city:e.city,state:e.stateCode,countryCode:e.countryCode,postalCode:e.postcode}},s.prototype.clone=function(){return new s(this.addressLine1,this.addressLine2,this.addressLine3,this.city,this.countryCode,this.stateCode,this.postcode)},s.clone=function(e){return new s(e.addressLine1,e.addressLine2,e.addressLine3,e.city,e.countryCode,e.stateCode,e.postcode)},s.getDefaultForCurrentMarket=function(){var e=new s;return e.countryCode=(t.getCountry()||"").toUpperCase(),e},s.mapCardAddress=function(e){return new s(e.street1,e.street2,e.street3,e.city,e.country,e.state,e.postalCode)},s.getAddressPayloadForSamsonite=function(e){return{AddressLine1:e.addressLine1,AddressLine2:e.addressLine2,AddressLine3:e.addressLine3,City:e.city,ProvinceState:e.stateCode,CountryCode:e.countryCode,PostalCode:e.postcode}},babelHelpers.createClass(s,[{key:"isDefaultedToCurrentMarket",get:function(){return!(this.addressLine1||this.addressLine2||this.addressLine3||this.city||this.stateCode||this.postCode||this.countryCode!==(t.getCountry()||"").toUpperCase())}}]),s}();return s}]);
"use strict";angular.module("common").factory("AggregateCommon",["$q","$http","AggregateApiConfig",function(e,t,n){var r=this,i=null,c=[],o=n.getRestfulApi("aggregate"),u="currencies,airports,categories";return this._mapModel=function(e,t){return c=e,t&&1===t.split(",").length?e[t.split(",")[0]]:e},this._isCached=function(e){return c&&c[e]&&c[e].length?!0:!1},this._invalidateCache=function(){i=null,c=[]},this.get=function(n){var r=this;return n=n.toLowerCase(),e(function(e,s){return n&&n.split(",").every(function(e){return r._isCached(e)})?e(r._mapModel(c,n)):i?i.then(function(t){e(r._mapModel(t.data,n))},s):(i=t.get(o.compose({namespace:"common"}),{cache:!0,params:{embedded:u}}),void i.then(function(t){e(r._mapModel(t.data,n))},function(e){s(e)}))})},this.getCurrency=function(t){var n=e.defer();return c&&c.currencies&&c.currencies.length?n.resolve(c.currencies.find(function(e){return e.code===t})):r.get(u).then(function(e){n.resolve(e.currencies.find(function(e){return e.code===t}))}),n.promise},{get:this.get.bind(this),getCurrency:this.getCurrency.bind(this)}}]);
"use strict";angular.module("common").factory("CheckinAvailability",["Dates","FEATURE_CONFIG",function(n,e){return function(t,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!0;return{isCheckin:function(){var i={UNAVAILABLE:"unavailable",AVAILABLE:"available",OPEN:"open",DUE:"due",CLOSED:"closed"},c=function(r){var c=a?n.utc(r.model.departUTC):n.utc(r.departUTC),u=c.clone().startOf("day").diff(n.utc(t).startOf("day"))/24/3600/1e3,o=c.clone().startOf("minute").diff(n.utc(t).startOf("minute"))/60/1e3;return u>e.CHECKIN_TIME_LIMIT.EARLY?i.UNAVAILABLE:u>e.CHECKIN_TIME_LIMIT.FREE?i.AVAILABLE:o>=e.CHECKIN_TIME_LIMIT.DUE?i.OPEN:o>0?i.DUE:i.CLOSED};return{get open(){return r.map(c).map(function(n){return n===i.OPEN})},get available(){return r.map(c).map(function(n){return n===i.AVAILABLE})},get unavailable(){return r.map(c).map(function(n){return n===i.UNAVAILABLE})},get due(){return r.map(c).map(function(n){return n===i.DUE})},get closed(){return r.map(c).map(function(n){return n===i.CLOSED})}}},filterByKey:function(n){return function(e){return e.filter(function(e){return R.whereEq(n)(e.key)})}},canPaxCheckin:function(n){var e=n.pax,a=n.leg,i=n.checkins,c=this.isCheckin(t,r),u={passengers:e.model.num,journeys:a},o=this.filterByKey(u)(i);return"reprint"!==R.path(["model","status"],o)&&(c.open[a]||c.available[a])},canPaxCheckinOnBoking:function(n){var e=this,t=n.pax,a=n.checkins;return r.some(function(n){return e.canPaxCheckin({pax:t,leg:n.key.journey,checkins:a})})},isPaxCheckinReady:function(n){var e=n.paxNum,a=n.leg,i=n.checkins,c=n.seats,u=this.isCheckin(t,r),o={passengers:e,journeys:a},s=this.filterByKey(o)(i),f=this.filterByKey(o)(c);return"reprint"!==R.path([0,"model","status"],s)&&(u.open[a]||u.available[a]&&R.path([0,"model","qty"],f)>0)},canPaxForNotMappedBookingCheckin:function(n){var e=n.pax,a=n.leg,i=this.isCheckin(t,r);return"reprint"!==R.pathOr({},["segCheckin",a],e).status&&(i.open[a]||i.available[a])},canPaxCheckinOnNotMappedBooking:function(n){var e=this;return r.some(function(t,r){return e.canPaxForNotMappedBookingCheckin({pax:n,leg:r})})},isCheckinEnabled:function(n){var e=this;return n.some(function(n){return e.canPaxCheckinOnNotMappedBooking(n)})}}}}]);
"use strict";angular.module("common").factory("ContactDetails",["ProfileManager","PhoneNumber","$http","$q","$log","RezApiConfig","MarketConfig",function(e,n,t,r,u,a,s){var o=a.sms,m=a.coDonation,g=a.ispccDonation,d=R.compose(n.getCountryPhoneCode,R.path(["phoneNumber"])),l=function(){function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new n,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:!1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:!1,m=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"de-de"!==s.getCulture(),g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,d=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null;babelHelpers.classCallCheck(this,r),Object.assign(this,{emailAddress:e,phoneNumber:t,sendSms:u,sendOffers:m,firstName:g,lastName:d,donateCO:a,donateISPCC:o})}return r.getBookingPayload=function(e){return{Country:e.phoneNumber.countryCode,Email:e.emailAddress,PhoneCode:d(e),PhoneNumber:e.phoneNumber.number,SendOffers:e.sendOffers,SendSms:e.sendSms}},r.getVouchersPayload=function(e){return{From:e.firstName,FromEmail:e.emailAddress,PhoneCode:d(e),PhoneNumber:e.phoneNumber.number.replace(/\D/g,""),SendOffers:e.sendOffers}},r.getSamsonitePayload=function(e){return{Email:e.emailAddress,PhoneCode:d(e),PhoneNumber:e.phoneNumber.number,CountryCode:e.phoneNumber.countryCode,SendOffers:e.sendOffers,FirstName:e.firstName,LastName:e.lastName}},r.getRoomsModel=function(e){var n=d(e);return{phone:""+(n?"00":"")+n+e.phoneNumber.number,email:e.emailAddress}},r.getUpdatedContact=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return n.phoneNumber?babelHelpers["extends"]({},e,n,{phoneNumber:babelHelpers["extends"]({},e.phoneNumber,n.phoneNumber)}):babelHelpers["extends"]({},e,n)},r.getContactModel=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!1,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:!1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!1;return e.getProfileDetails().then(function(e){var s=e.data,o=s,m=o.phoneNumber?new n(o.countryCode,o.phoneNumber):new n;return new r(o.email,m,t,u,a)})},r.fromBookingModel=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:!1;if(!e){var u=new r;return u.sendSms=t,u}var a=e.email,s=(e.homePhone?e.homePhone:e.otherPhone).split("-").splice(1,1)[0],o=e.country;return new r(a,new n(o,s),t)},r.update=function(e){return t.put(a.contact,e)},r.updateSmsStatus=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!1;return t.post(o,e)},r.updateCoStatus=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!1;return e?t.post(m):t["delete"](m)},r.updateIspccStatus=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:!1;return e?t.post(g):t["delete"](g)},r}();return l}]);
"use strict";angular.module("common").factory("Countries",["$filter","$q","RezCountries","POSTCODE_TYPES","COUNTRY_STATE_TYPES",function(e,t,n,o,r){var s="XX",u=["AU","CA","US"],i=["CA"],c=function(){function c(){babelHelpers.classCallCheck(this,c),this._countries=[],this._undefinedCountry=null}return c.prototype.get=function(){var c=this;return t(function(t,a){n.get().then(function(n){var a=e("translate"),d=a("common.contact.countries.groups.eu"),l=a("common.contact.countries.groups.non-eu");n.forEach(function(e){e.groupName=e.iseu?d:l,e.stateType=e.states?-1!==i.indexOf(e.code)?r.Province:r.State:null,e.states&&e.states.forEach(function(t){e.states[t.code]=t}),e.hasPostcodes=angular.isArray(e.postalCodeDetails)&&1===e.postalCodeDetails[0],e.postcodeType=-1!==u.indexOf(e.code)?o.ZipCode:o.Postcode,e.requiresPostcode=angular.isArray(e.postalCodeDetails)&&1===e.postalCodeDetails[1],n[e.code]=e}),c._countries=n,c._undefinedCountry=c._countries.find(function(e){return e.code===s}),t(n)})["catch"](function(e){a(e)})})},c.prototype.getPhoneCode=function(e){var t=this._countries.find(function(t){return t.code===e});return t?t.phoneCode:null},c.prototype.getByCode=function(e){return this._countries[e]},c.prototype.getByPhoneCode=function(e){var t=parseInt(e,10);return this._countries.filter(function(e){return e.phoneCode===t})},babelHelpers.createClass(c,[{key:"UNDEFINED_COUNTRY",get:function(){return this._undefinedCountry}}]),c}();return new c}]);
"use strict";angular.module("common").service("FilterChain",["$filter",function t(e){function t(t){this.value=t}t.prototype.applyFilter=function(t){var r=Array.prototype.slice.call(arguments);return r.shift(),r.unshift(this.value),this.value=e(t).apply(void 0,babelHelpers.toConsumableArray(r)),this},this.create=function(e){return new t(e)}}]);
"use strict";angular.module("common").service("HttpCanceller",["$q",function(e){var t={};this.create=function(n){return t[n]=e.defer(),t[n].promise},this.abort=function(e){t[e]&&(t[e].resolve(),t[e]=void 0)},this.isCancelledResponse=function(e){return-1===e.status}}]);
"use strict";angular.module("common").service("MessageFormatService",["MarketConfig","$window",function(e,t){var a=new t.MessageFormat(e.getLanguage());this.getMessage=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments[1],n=e.trim();return R.isEmpty(n)?n:a.compile(n)(t)}}]);
"use strict";angular.module("common").factory("PhoneNumberValidator",["PhoneNumber",function(t){var e=/[\s\-\u00b7]+|^0+/g,n=function(){function n(t){babelHelpers.classCallCheck(this,n),this.defaultPattern=new RegExp(t),this.patterns={}}return n.prototype.setPattern=function(t,e){this.patterns[t]=new RegExp(e)},n.prototype.validate=function(n){var r=this.patterns[n.countryCode]?this.patterns[n.countryCode]:this.defaultPattern,a=null!==t.getCountryPhoneCode(n),o=n.number.replace(e,""),s=r.test(o);return{isCountryCodeValid:a,isNumberValid:s,isValid:a&&s}},n}(),r="^\\d{8,13}$",a=new n(r);return a.setPattern("EE","^\\d{6,13}$"),a}]);
"use strict";angular.module("common").factory("PhoneNumber",["Countries",function(e){var n=function(){function n(e,o){babelHelpers.classCallCheck(this,n),this.countryCode=e||"",this.number=o||""}return n.getCountryPhoneCode=function(n){return e.getPhoneCode(n.countryCode)},n}();return n}]);
"use strict";angular.module("common").service("TransfersDiscountService",function(){var r={NXPRESS:["STN","LGW","LTN"]},n=function(n,t){return R.contains(n,R.pathOr([],[t],r))},t=function(r,t){return R.any(R.curry(n)(r))(t)};return{hasProviderDiscount:n,hasAnyProviderDiscount:t}});
"use strict";angular.module("common").constant("VatDetailsErrors",{NotDomestic:"NotDomestic",NotVatApplicableCountry:"NotVatApplicableCountry"}).factory("VatDetails",["Address",function(s){var e=function(){function e(t,a,d){babelHelpers.classCallCheck(this,e),this.vatNumber=t||"",this.businessName=a||"",this.address=d||new s}return e.getPayload=function(s){return{vatNumber:s.vatNumber,sdiNumber:s.sdiNumber||s.address.sdiNumber,businessName:s.businessName,country:s.address.countryCode,state:s.address.stateCode,city:s.address.city,postalCode:s.address.postcode,addressLine1:s.address.addressLine1,addressLine2:s.address.addressLine2,addressLine3:s.address.addressLine3}},e}();return e}]);
"use strict";angular.module("common").run(["Validators",function(n){n.set("alpha",function(){return function(n){return!!n.match(/^[^\d_\-]+$/)}})}]);
"use strict";angular.module("common").run(["Validators",function(t){t.set("flightNumber",function(){return function(t){return t&&t.trim().length?!!t.match(/^(FR)?\d{1,5}$/i):!0}})}]);
"use strict";angular.module("common").run(["Validators",function(n){n.set("integer",function(){return function(n){return!!n.match(/^\d+$/)}})}]);
"use strict";angular.module("common").run(["Validators",function(n){n.set("lessThan100",function(){return function(n){return!!n&&/^[1-9][0-9]?$/.test(n)}})}]);
"use strict";angular.module("common").directive("matchFieldValidation",["$parse",function(t){return{require:"ngModel",link:function(a,e,i,n){var r=t(i.matchFieldValidation),o="true"===i.matchCaseSensitive?function(t,a){return t===a}:function(t,a){return t.toLowerCase()===a.toLowerCase()};n.$validators.validMatch=function(t){var e=r(a);return o(t||"",e||"")},a.$watch(i.matchFieldValidation,function(){n.$$parseAndValidate()})}}}]);
"use strict";angular.module("common").directive("nameValidator",function(){return{require:"ngModel",link:function(e,t,n,r){var a=function(e){var t=n.nameValidator,a=/(?!.*[\s-]{2})^.*$/,i="'",s=':@#$%&_+*=~^`“"‘,;!?|/\\\\(){}[\\]<>.€¥¢£₽₨₩฿₺₮₱₭₴₹﷼௹૱৳৲₦₲₪₡₫៛₵₢₰₣₠₥₳₤₸₧₯₶®©℗™℠№ª℃℉℀℁℅℆§\\d\\r\\n',u=t?new RegExp(t).test(e):!new RegExp("(^["+i+"]|["+s+"])").test(e);return r.$setValidity("name",u&&a.test(e)),e};r.$parsers.unshift(a),r.$formatters.unshift(a)}}});
"use strict";angular.module("common").directive("validEmail",function(){return{require:"ngModel",link:function(F,u,D,x){x.$parsers.unshift(function(F){var u=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+([a-z]+|\d|-|\.{0,1}|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])?([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/gi;return x.$setValidity("validEmail",!!F.trim().match(u)),F})}}});
"use strict";angular.module("common").directive("validPhoneNumber",["Countries","PhoneNumber","PhoneNumberValidator",function(e,i,r){return{require:"ngModel",link:function(n,u,o,t){var d=function(u,o){var d=e.getByPhoneCode(u),a=d.length?d[0].code:"",l=new i(a,o),s=r.validate(l);s.isCountryCodeValid=""!==u;var c=n.isRequired()||""!==o;t.$setValidity("validPhonePrefix",s.isCountryCodeValid||!c),t.$setValidity("validPhoneNumber",s.isNumberValid||!c)};n.isRequired=function(){return"required"in o},t.$parsers.unshift(function(e){return d(o.prefix,e),e}),o.$observe("prefix",function(e){d(e,t.$viewValue)})}}}]);
"use strict";angular.module("common").run(["$httpBackend","$filter","MockData","ValidatorsAsync","AggregateApiConfig","AllPlaces","$q","$timeout",function(e,r,n,t,a,o,i,c){if(window.__karma__){var u=n.get("aggregate.all-places");e.whenGET(new RegExp("^"+a.getRestfulApi("aggregate").mock+".*?=(?:(airports|countries|cities|regions),*)+")).respond(function(){return[200,u,{}]})}t.set("validPlaceAsync",function(){function e(e,r){e=e.toLowerCase();for(var n=0;n=0)return!1;n="XYZ".indexOf(i.charAt(0)),n>0&&(t[1]=n+(t[0].length>8?t[0].replace(/0*(\d{7,})\w$/,"$1"):t[0].slice(0,-1)))}else if(~"E".indexOf(e))return!1;return l.charAt(t[1]%23)===t[2]}var a=void 0,d=void 0,l="TRWAGMYFPDXBNJZSQVHLCKE";d=e(n.ngModel),t.attr("maxlength",9),n.$observe("docType",function(e){var n=void 0;a=e,"E"===a?n=i.$watch(d,function(e){var i=void 0,n=void 0;e&&e.replace(/[^0-9]/g,"").length>7&&/[^0-9]\d+/.test(e)&&(n=e.match(/([^0-9])(0*)(\d+[^0-9]*)/).splice(1,7),i=n.splice(1,1),e=i&&/\w/.test(n[0])?n.join(""):n.join(""),t[0].value=e)}):n&&(n(),n=null),r.$viewValue&&r.$setValidity("docNoValid",o(a,r.$viewValue))}),n.$observe("docType",function(e){var n=void 0;a=e,"E"===a?n=i.$watch(d,function(e){var i=void 0,n=void 0;e&&e.replace(/[^0-9]/g,"").length>7&&/[^0-9]\d+/.test(e)&&(n=e.match(/([^0-9])(0*)(\d+[^0-9]*)/).splice(1,7),i=n.splice(1,1),e=i&&/\w/.test(n[0])?n.join(""):n.join(""),t[0].value=e)}):n&&(n(),n=null),r.$viewValue&&r.$setValidity("docNoValid",o(a,r.$viewValue))}),r.$parsers.unshift(function(e){return r.$setValidity("docNoValid",o(a,e)),e})}}}]);
"use strict";angular.module("common").directive("validVehicleRegistrationNumber",function(){function t(t){return n.test(t)&&o.test(t)&&u.test(t)}function e(e,i){return i?t(i):!0}function i(t,i,r,n){n.$validators.vehicleRegistrationNumber=e}var r=void 0,n=/^[a-zA-Z\d\-\s]+$/,u=/[a-zA-Z]+/,o=/\d+/;return r={restrict:"A",require:"ngModel",link:i}});
"use strict";angular.module("common").component("addressSelector",{templateUrl:"/partials/common/components/address-selector/address-selector.html",bindings:{name:"@",model:"=",addresses:"=",required:"<",disabled:"<"},controller:["$scope","Address",function(e,d){var s=this;this.name=this.name||"address",this.model=this.model||new d,this.addresses=this.addresses||[],this.extendedAddressLine=d.isExtended(this.model),this.getAddressLabel=function(e){if(!e)return"";var s=[e.addressLine1,e.addressLine2,e.addressLine3,e.city,d.getCountryName(e),d.getStateName(e),e.postcode].filter(function(e){return e}).join(", ");return s.length>45&&(s=s.slice(0,45)+"..."),s},this.addressSelected=function(e){e&&(s.model=R.clone(e)),s.extendedAddressLine=d.isExtended(s.model)},this.handleAddressFormUpdate=function(e){var d=e.address;s.model=babelHelpers["extends"]({},s.model,d)},e.$watch(function(){return s.model},function(e){s.selectedAddress=s.addresses.find(function(d){return R.equals(d,e)}),s.extendedAddressLine=d.isExtended(s.model)},!0)}]});
"use strict";angular.module("common").component("alertBox",{templateUrl:"/partials/common/components/alert-box/alert-box.html",transclude:!0,bindings:{role:"@",icon:"@?",separatorBorder:"<"},controller:function(){var o={ALERT:"alert",WARNING:"warning",INFO:"info"};this.type=o[this.role]?o[this.role]:o.INFO}});
"use strict";angular.module("common").component("amountMessageTooltip",{templateUrl:"/partials/common/components/amount-message-tooltip/amount-message-tooltip.html",bindings:{messageQueue:"@"},controller:["$scope","BasketMessageQueue",function(s,e){var t=this;this.setMessages=function(e){t.messages=e,t.messages.length||s.$evalAsync()},e.subscribe(this.messageQueue,this.setMessages),this.$onDestroy=function(){e.unsubscribe(t.messageQueue,t.setMessages)}}]});
"use strict";angular.module("common").component("coreCalendar",{bindings:{initialDate:"@",selectedDate:"@",data:"<",onSelectItem:"&",isCellInactive:"&",dateMin:"@",dateMax:"@",trackInvalid:"@",type:"@",blockSelection:"@"},transclude:{monthlyTemplateSlot:"?calendarMonthlyTemplate",weeklyTemplateSlot:"?calendarWeeklyTemplate"},templateUrl:"/partials/common/components/calendar/calendar.html",controller:["$scope","$element","$attrs","Device","DateConfig","Dates",function(e,t,a,i,n,o){var r=this,l=void 0;this._isFiveRows=!0,this._isMobile=i.isPhone();var s=n.displayFormats,d={startingHour:4,finishingHour:22,hourStep:2},c=i.onPhone(function(){r._isMobile=i.isPhone()}),h=i.onTablet(function(){r._isMobile=i.isPhone()});this.type||(this.type="monthly"),this.$onInit=function(){function i(e,a,i){setTimeout(function(){[].forEach.call(t.find(".monthly .cell:not(.header)"),function(t){var n=angular.element(t),r=o.parse(n.attr("date-id"))a;"min"===i&&r?n.addClass("invalid"):"max"===i&&l?n.addClass("invalid"):e&&r?n.addClass("invalid"):a&&l?n.addClass("invalid"):n.removeClass("invalid")})})}a.selected&&r._isValidDate(a.selected)&&requestAnimationFrame(function(){r._highlightSelection(a.selected)}),"true"===r.trackInvalid&&(e.$watch("dateMin",function(e){e&&i(o.parse(e),null,"min")}),e.$watch("dateMax",function(e){e&&i(null,o.parse(e),"max")}),e.$watch("data",function(){var e=r.dateMin?o.parse(r.dateMin):null,t=r.dateMax?o.parse(r.dateMax):null;i(e,t,"both")}))},this._getDateMoment=function(){return o.parse(r.initialDate)},this._produceMatrix=function(){r._matrix=[],l=r._getDateMoment(),"monthly"===r.type?r._produceMonthlyMatrix():r._produceWeeklyMatrix(d)},this._produceMonthlyMatrix=function(){var e=[],t=l.clone().startOf("week"),a=l.clone().endOf("week");r.monthLabel=l.format("MMMM YYYY");for(var i=t;a>=i;i.add(1,"days")){var n=[];n.weekdayLabel=i.format(s.dayOfWeek),e.push(n)}for(var d=l.clone().startOf("month").startOf("week"),c=l.clone().endOf("month").endOf("week"),h=d.clone();c>=h;){var u={day:o.format(h),dayLabel:1===h.date()?h.format(s.calendar.firstDayOfMonth):h.format(s.dayOneDigit),date:h.clone()};e[h.weekday()].push(u),h.add(1,"days")}r._checkIfIsFiveRows(Math.ceil(c.diff(d,"weeks",!0))),r._matrix=e},this._checkIfIsFiveRows=function(e){5===e?(r._isFiveRows=!0,t.addClass("five-rows")):(r._isFiveRows=!1,t.removeClass("five-rows"))},this._produceWeeklyMatrix=function(e){for(var t=[],a=l.clone().startOf("week"),i=l.clone().endOf("week");i>=a;){var n=[],d=a.clone().hour(e.startingHour);for(n.weekdayLabel=a.format(s.dayOfWeek);d.hour()<=e.finishingHour&&d.isSame(a,"day");){var c={day:o.format(d),hour:d.format(s.time24Hour),date:a.clone()};n.push(c),d.add(e.hourStep,"hours")}t.push(n),a.add(1,"days")}r._matrix=t},this._isValidDate=function(e){return o.parse(e).isValid()},this._highlightSelection=function(e){t.find("[date-id].selected").removeClass("selected"),t.find('[date-id="'+e+'"]').addClass("selected")},this.getDayIndex=function(e){return parseInt(o.parse(e).format("D")-1,10)},this.getWeekday=function(e){return o.parse(e).locale("fr").weekday()},this.isToday=function(e){return e.isSame(o.today(),"day")},this.isDisabled=function(e){return e=o.parse(e),e.isBefore(o.now,"day")||!e.isSame(o.parse(r.initialDate),"month")&&"monthly"===r.type},this.isInactive=function(e,t){return r.isCellInactive?r.isCellInactive({day:e,days:t}):!1},this.isSelectedDate=function(e){return e===r.selectedDate},this._selectItem=function(e){(!r.blockSelection||r.data[e.day])&&(r.onSelectItem({item:e}),r._highlightSelection(e.day))},e.$watch("$ctrl.initialDate",function(e,t){return r.initialDate?void(e!==t&&r._produceMatrix()):void(r.initialDate=o.format(o.now))}),e.$watch("$ctrl.type",function(e,t){return r.type?void(e!==t&&r._produceMatrix()):void(r.type="monthly")}),e.$watch("$ctrl.selectedDate",function(e,t){e!==t&&r._highlightSelection(r.selectedDate)}),this.initialDate?this._produceMatrix():this.initialDate="",t.on("$destroy",function(){return e.$destroy()}),e.$on("$destroy",function(){c(),h()})}]});
"use strict";angular.module("common").directive("carousel",function(){return{restrict:"EA",scope:!0,transclude:!0,templateUrl:"/partials/common/components/carousel/carousel.html",controller:["$scope","$element","$timeout","Device","$window","$document",function(e,t,n,o,i,l){var r=this,c=!1,a=void 0,s=void 0,u=function(t){var n=t.currentTarget||t.target,o=n.dataset?n.dataset.index:n.getAttribute("data-index")||n.getAttribute("index");e.scrollToSelectedItem(o),e.$digest()},d=function(){c=!0},m=function(e){return c?void(c=!1):(u(e),void e.stopPropagation())},p=function(e){u(e)},f={itemTemplate:"/partials/common/components/carousel/item.html",prevIconId:"chevron.left",nextIconId:"chevron.right",onCarouselItemSelect:function(t,n){e.activePane=n},get slidesToShow(){return o.isPhone()?3:5},activePane:null,wrapperElement:".wrapper",slideElement:".slide",scrollerElement:".scroller",goToNext:function(){a.isAnimating||(e.onNext?e.onNext(a):a.next())},goToPrev:function(){a.isAnimating||(e.onPrev?e.onPrev(a):a.prev())}},h=function(){var n=t.find(f.wrapperElement),i=t.find(f.slideElement),l={};e.infiniteScroll&&(l={infiniteElements:i,dataset:e.requestData,dataFiller:e.updateContent,cacheSize:100}),e.slideElements=i,o.isTouch()?(i.on("touchmove",d),i.on("touchend",m)):i.on("click",p),a=new IScroll(n[0],angular.extend({scrollX:!0,scrollY:!1,snap:".slide",eventPassthrough:!0,momentum:!0,tap:!0,snapSpeed:1e3},l)),angular.isFunction(e.customPositionReset)&&(a.resetPosition=e.customPositionReset),e.scrollStart&&a.on("scrollStart",e.scrollStart),e.scrollEnd&&a.on("scrollEnd",e.scrollEnd),r.iscroll=a};f.init=function(){h(),angular.isFunction(e.postInit)&&!e.postInitCalled&&e.postInit()};var g=l.prop("body").clientWidth;e.scrollToSelectedItem=function(t){t=+t,o.isPhone()?a.goToPage(Math.max(t-1,0),0,1e3):a.goToPage(Math.max(t-2,0),0,1e3),e.activePane=t};var v=function(){o.isPhone()||r.iscroll.refresh(),angular.isFunction(e.setSlidesToShow)&&e.setSlidesToShow()},S=function(){var t=l.prop("body").clientWidth;g!==t&&(g=t,s&&n.cancel(s),s=n(function(){angular.isFunction(e.setSlidesToShow)&&(e.setSlidesToShow(),e.pages=new Array(Math.ceil(e.panes.length/e.setSlidesToShow()))),i.requestAnimationFrame(v),angular.isFunction(e.init)&&e.init(),e.scrollToSelectedItem(e.activePane)},200))},P=o.onResize(function(){return S()});angular.extend(e,f),e.$on("$includeContentLoaded",function(t){t.targetScope.$parent.$last&&(a||e.init())}),t.on("$destroy",function(){e.$destroy()}),e.$on("$destroy",function(){var e=t.find(f.slideElement);e.length&&(e.off("touchmove",d),e.off("touchend",m),e.off("click",p)),P(),a&&(a.destroy(),a=null)})}]}});
"use strict";angular.module("common").component("collapsibleItem",{bindings:{isCollapsable:"<",isOpen:"<",title:"@",type:"@",minimalDesign:"<"},transclude:!0,templateUrl:"/partials/common/components/collapsible-item/collapsible-item.html",controller:["Device",function l(e){babelHelpers.classCallCheck(this,l),this.isPhone=e.isPhone()}]});
"use strict";angular.module("common").directive("coreSwitch",function(){return{restrict:"EA",scope:{states:"=",selectedState:"=?",change:"&onChange",btnClass:"@"},bindToController:!0,controllerAs:"coreSwitch",templateUrl:"/partials/common/components/core-switch/core-switch.html",controller:function(){var e=this;this.selectedState=this.states[0].id,this.classBtn=this.btnClass||"core-btn-switch",this.visibleSwitches=[],this.filterList=function(t){e.visibleSwitches=e.states.filter(function(e){if(e.hiddenFor){if(t.isMobile&&~e.hiddenFor.indexOf("mobile"))return!1;if(t.isTablet&&~e.hiddenFor.indexOf("tablet"))return!1;if(t.isDesktop&&~e.hiddenFor.indexOf("desktop"))return!1}return!0})},this.checkIfSelectedStateIsValid=function(){var t=e.visibleSwitches.find(function(t){return t.id===e.selectedState});t||(e.selectedState=e.visibleSwitches[0].id)},this.changeState=function(t){e.selectedState!==t&&(e.selectedState=t,e.change({state:t}))},this.onMobileViewChange=function(){e.mobileDefault&&e.selectedState!==e.mobileDefault&&e.changeState(e.mobileDefault)},this.onViewportChange=function(t){t&&(e.filterList(t),e.checkIfSelectedStateIsValid())}}}});
"use strict";angular.module("common").component("countdownTimer",{templateUrl:"/partials/common/components/countdown-timer/countdown-timer.html",bindings:{time:"@"},controller:["$interval",function(o){var t=this,n=void 0,r=1e3,i=Math.floor(this.time/r),e=function(){var r=Math.floor(i/86400),e=Math.floor(i-86400*r),a=Math.floor(e/3600),c=Math.floor(e-3600*a);a=Math.floor(a+24*r);var l=Math.floor(c/60),m=i%60;t.hours=10>a?"0"+a:a,t.minutes=10>l?"0"+l:l,t.seconds=10>m?"0"+m:m,0===i?o.cancel(n):i--};this.$onInit=function(){n=o(e,r)},this.$onDestroy=function(){o.cancel(n)}}]});
"use strict";angular.module("common").component("creditCardForm",{bindings:{defaultValues:"<",onSubmit:"&?",cards:"=",model:"=",isLoading:"<",noSubmit:"=?"},require:{cardForm:"^form"},templateUrl:"/partials/common/components/credit-card-form/credit-card-form.html",controller:["$scope","Payments","Utilities","CardMethod","MarketConfig","PAYMENT_TYPES",function(e,r,a,t,d,c){var o=this,n=(new Date).getFullYear(),i=(new Date).getMonth()+1,m=a.rangeFn(n,n+10),l=a.rangeFn(1,12),s=function(){var e=o.cardCopy.find(function(e){return!!o.model.cardNumber.match(e.regEx)});return e&&e.name&&(o.detectedCardType=e.name),e},u=function(){o.model=new t,o.model.cardHolderName=o.defaultValues.cardholdersName||"",o.model.cardType=o.cards.find(function(e){return e.code===o.defaultValues.creditCardType})},p=function(){if(o.model.cardNumber){var e=o.model.cardType?o.model.cardType.regEx:/^[0-9]*/;o.model.cardNumber.match(e)?(o.cardForm.cardNumber.$setValidity("typePattern",!0),o.cardForm.cardNumber.$setValidity("pattern",!0)):s()?o.cardForm.cardNumber.$setValidity("typePattern",!1):o.cardForm.cardNumber.$setValidity("pattern",!1),o.cardForm.cardNumber.$setValidity("luhn",a.validateLuhn(o.model.cardNumber))}},y=function(){if(o.model.cardType){var e=o.model.cardType.percentage>0?c.CREDIT_CARD:c.DEBIT_CARD,a=e===c.DEBIT_CARD&&"INC"===d.getCCFeeDisplayType()?r.debitCardFeePerc:o.model.cardType.percentage,t=r.get("selectedMethod")||{};t.perc!==a&&r.set("selectedMethod",{name:e,feeType:o.model.cardType.feeType,perc:a})}};u(),this.years=m,this.months=l,this.noSubmit=this.noSubmit||!0,this.expiryMonthUpdate=function(){o.years=m,o.model.expiry.monthc.month()?n.selectedDate.month=null:n.dateObj.dates=m(1,y())):(n.dateObj.months=l,n.dateObj.dates=m(1,y()))},D=function(){n.prepopulate&&n.ngModel&&r.parseISO(n.ngModel).isValid()?n.selectedDate={value:n.isMobile?r.parseISO(n.ngModel).toDate():null,date:r.parseISO(n.ngModel).date(),month:l[moment(n.ngModel).month()],year:r.parseISO(n.ngModel).year()}:(R.isNil(n.selectedDate)||R.isNil(n.ngModel))&&(n.selectedDate={value:null,date:null,month:null,year:null})};n.isMobile=!e.isNotMobileAndNotTouch()&&u,n.dateObj={dates:m(1,y()),months:l,years:n.reverse?m(i.year(),c.year()).slice().reverse():m(i.year(),c.year())},t(m(0,11).map(function(e){return"common.components.calendar.months.month_"+e})).then(function(e){Object.keys(e).forEach(function(t){s=t.match(/(\d)+$/)[0],l[s]=e[t]}),D()}),n.$watch("selectedDate",function(e,t){(e&&e!==t||n.forceDateValidation)&&(n.ngModel=e.value?moment(e.value).format(a.displayFormats.birthExpiryDateFormat):p(e),O(e))},!0),n.$watch("toggleModelUpdate",function(e,t){if(e!==t){D();var a=r.parseISO(n.dateRange.min),o=r.parseISO(n.dateRange.max);a.isSame(i)&&o.isSame(c)||(i=a,c=o,n.dateObj={dates:m(1,y()),months:l,years:n.reverse?m(i.year(),c.year()).slice().reverse():m(i.year(),c.year())},O(n.selectedDate))}}),o.on("$destroy",function(){return n.$destroy()})}]}}]);
"use strict";angular.module("common").directive("coreDateSingle",function(){return{restrict:"EA",templateUrl:"/partials/common/components/date-single/date-single.html",scope:{startDate:"=",startDateDefault:"@",startDateMin:"@",startDateMax:"@",popupId:"@",iconId:"@",inputId:"@",placeholder:"@",isDisabled:"=",onDateChanged:"&"},controllerAs:"vm",bindToController:!0,controller:["$scope","$timeout","$element","MorphPopupManager",function(e,t,o,a){var n=this;this.openDatePicker=function(){n.isDisabled||a.openPopup(n.popupId)},this.closeDatePicker=function(){a.closePopup(n.popupId,!0)},e.$on("calendar:cal-selector:select-start-date",function(e,t){n.startDate=t,n.onDateChanged({$event:{value:n.startDate}}),a.closePopup(n.popupId,!0)}),a.onClose(this.popupId,this.closeDatePicker)}]}});
"use strict";angular.module("common").directive("dateSelect",["Dates","DateConfig",function(e,a){var t="/partials/common/components/dateselect/dateselect-button.html",l="/partials/common/components/dateselect/dateselect-select.html",n="/partials/common/components/dateselect/dateselect-twocolumns.html";return{restrict:"E",template:'',require:"ngModel",scope:{mainClass:"@mainClass",selectClass:"@selectClass",mode:"@mode",isDisabled:"=",isRequired:"=l;l+=1)o.months.push({name:t[l],value:l+1});(o.val.month-1>a||o.val.month-1=l;l+=1)o.dates.push(l);(o.val.datet)&&(o.val.date=void 0)}switch(o.mode){case"btn":o.style={display:"inline"},o.template=t;break;case"twocolumns":o.template=n;break;default:o.template=l}o.automationRef||(o.automationRef="date-select-control"),o.status={dateIsOpen:!1,monthIsOpen:!1,yearIsOpen:!1},o.val={},o.$on("clear-date",function(){o.val={}}),"ngRequired"in s||(o.isRequired="required"in s);var c=e.parse(s.min||"1900-01-01",a.displayFormats.dashboardFormat);o.min=c;var d=e.parse(s.max,a.displayFormats.dashboardFormat);if(o.max=d,o.years=[],""===s.yearsAsc||s.yearsAsc)for(var u=c.years();u=c.years();h-=1)o.years.push(h);o.$watchCollection("[val.date, val.month, val.year, isRequired]",function(){if(i.$setValidity("format",!0),o.val.year&&o.val.month&&o.val.date){var a=e.utc([o.val.year,o.val.month-1,o.val.date]);i.$setViewValue(a.toDate().getTime())}else o.val.year||o.val.month||o.val.date?(o.isRequired&&i.$error.required!==!0&&i.$setValidity("format",!1),i.$setViewValue()):i.$setViewValue()}),o.monthName=function(e){for(var a in o.months)if(o.months[a].value===e)return o.months[a].name;return""},o.selectDate=function(e){o.val.date=e},o.selectMonth=function(e){e?o.val.month=e.value:o.val.month=null},o.selectYear=function(e){o.val.year=e},o.capitalizeName=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},o.$watch("val.year",function(){m()}),o.$watchCollection("[val.month, val.year]",function(){v()}),i.$render=function(){if(i.$viewValue){var a=e.utc(i.$viewValue);o.val={year:a.year(),month:a.month()+1,date:a.date()}}}}}}]);
"use strict";angular.module("common").component("dialogBanner",{bindings:{icon:"@",bannerTitle:"@",content:"@",showOnDesktop:"<",price:"<",closeDialog:"="},templateUrl:"/partials/common/components/dialog-banner/dialog-banner.html",transclude:{dialogBack:"?dialogBack"},controller:["AEMConfig",function(n){var o=this;this.getIcon=function(){return""+n.getStaticFilePrefix()+o.icon}}]});
"use strict";angular.module("common").component("disabledTooltip",{templateUrl:"/partials/common/components/disabled-tooltip/disabled-tooltip.html",bindings:{toolTipDirection:"@",visible:"="},transclude:{tooltipTarget:"tooltipTarget",tooltipContent:"tooltipContent"},controller:["$scope","$timeout","Device",function(o,t,i){var e=this,n=void 0;this.ctaTooltip=function(o){if(e.visible){var i=o?o.currentTarget:null;n&&t.cancel(n),n=t(function(){if(e.showTooltip=!1,i){var o=i.offsetTop+"px";e.tooltipPos={left:i.offsetLeft+"px",top:""+("bottom"===e.toolTipDirection?"auto":o)},e.showTooltip=!0}},50)}};var l=i.onPhone(function(o){e.isMobile=o.matches});o.$on("$destroy",function(){l()})}]});
"use strict";angular.module("common").directive("compile",["$compile",function(n){return function(t,c,e){t.$watch(function(n){return n.$eval(e.compile)},function(e){c.html(e),n(c.contents())(t)})}}]);
"use strict";angular.module("common").component("errorsList",{templateUrl:"/partials/common/components/errors-list/errors-list.html",bindings:{errorKeys:"<",textTitle:"@"}});
"use strict";angular.module("common").directive("flightPath",function(){return{replace:!1,restrict:"EA",controllerAs:"vm",bindToController:!0,controller:["$element","$timeout",function(e,t){function n(e){r.clearRect(0,0,60,e),r.beginPath(),r.lineWidth=2,r.strokeStyle="#C6CBCF","undefined"!=typeof r.setLineDash?r.setLineDash([i]):"undefined"!=typeof r.mozDash?r.mozDash=[i]:"undefined"!=typeof r.webkitLineDash&&(r.webkitLineDash=[i]),r.moveTo(60,0),r.bezierCurveTo(0,0,0,e,60,e),r.stroke(),r=null}var o=void 0,i=4,r=void 0;angular.element(document).ready(function(){t(function(){o=e[0].parentNode.parentNode.offsetHeight,r=e[0].getContext("2d"),n(o)},2e3)})}]}});
"use strict";angular.module("common").component("gmap",{templateUrl:"/partials/common/components/gmap/gmap.html",bindings:{items:"<",templateName:"<",isMobile:"<",handlePinSelect:"&",handleInfoWindowSelect:"&handleInfoWindowSelect",isContainerOpen:"<"},controller:["$element","$window","$scope","AEMConfig","$templateCache","$timeout","$compile","InfoBoxService","ROOMS_PROMO_TYPES","GoogleMapApi","uiGmapMapScriptLoader",function(e,n,o,t,i,s,r,a,l,c,m){var g=this;this.selectedItem={},this.$scope=o,this.ROOMS_PROMO_TYPES=l,this.imagePath=t.getStaticFilePrefix();var p=t.getStaticFilePrefix()+"/resources/ui/rooms/icons/pin@2x.png";this.$onInit=function(){m.init(),c.then(function(){g.map=new n.google.maps.Map(e.find("div")[0],{center:{lat:0,lng:0},zoom:8,scrollwheel:!1,mapTypeControl:!1,streetViewControl:!1,zoomControlOptions:{position:n.google.maps.ControlPosition.RIGHT_TOP}}),g.markers=g.setPinObjectsFromResponse(g.items),g.bounds=new n.google.maps.LatLngBounds,g.centerMap(g.markers,g.bounds),s(function(){g.setListeners()},100,!1),g.infoBoxConstructor=a.initInfoBox()})},this.$onChanges=function(e){e.items&&this.map&&(this.removeMarkers(this.markers),this.markers=this.setPinObjectsFromResponse(this.items),this.centerMap(this.markers,this.bounds),this.setListeners()),e.isContainerOpen&&this.map&&(n.google.maps.event.trigger(this.map,"resize"),this.centerMap(this.markers,this.bounds))},this.removeMarkers=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.forEach(function(e){n.google.maps.event.clearListeners(e,"click"),e.setMap(null)})},this.setPinObjectsFromResponse=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o={url:p,size:new n.google.maps.Size(25,34),origin:new n.google.maps.Point(0,0),anchor:null,scaledSize:new n.google.maps.Size(50,34)},t=[];return e.forEach(function(e){var i=new n.google.maps.Marker({position:{lat:e.coordinates.latitude,lng:e.coordinates.longitude},map:g.map,infoWindow:new n.google.maps.InfoWindow,icon:o});i.set("id",e.id),t.push(i)}),t},this.centerMap=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e.forEach(function(e){n.extend(e.getPosition())}),g.map.setZoom(8),g.map.setCenter(n.getCenter()),g.map.fitBounds(n)},this.findItemByMarker=function(e,n){return e.filter(function(e){return e.id===n.get("id")})[0]};var u=function(){return r(i.get("roomsInfoWindow"))(o)};this.selectItem=function(e){g.iwItem=e,g.handlePinSelect({item:e}),g.isMobile&&(g.isPopupMarkerClicked=!0)};var f=function(){return g.isMobile?new n.google.maps.Size(0,0):new n.google.maps.Size(25,-64)};this.openInfoWindow=function(e,t,i,s,r,a,l,c){var m=Object.assign({},r(i,e));return function(){if(l(),a(m),o.$applyAsync(),!s){var i={disableAutoPan:!1,maxWidth:null,pixelOffset:f(),zIndex:1,closeBoxURL:"",infoBoxClearance:new n.google.maps.Size(1,1),isHidden:!1,pane:"floatPane",enableEventPropagation:!1};i.content=u()[0],e.infoBox=new c(i),e.infoBox.open(t,e)}e.getIcon().origin=new n.google.maps.Point(24,0),e.setIcon(e.getIcon()),e.setZIndex(999)}},this.closeAllInfoWindows=function(){g.handlePinSelect({item:null}),g.markers.forEach(function(e){e.infoBox&&(e.setZIndex(99),e.infoBox.close()),0!==e.getIcon().origin.x&&(e.getIcon().origin=new n.google.maps.Point(0,0),e.setIcon(e.getIcon()))}),g.isPopupMarkerClicked=!1,o.$digest()},this.setListeners=function(){g.markers.forEach(function(e){e.addListener("click",g.openInfoWindow(e,g.map,g.items,g.isMobile,g.findItemByMarker,g.selectItem,g.closeAllInfoWindows,g.infoBoxConstructor))}),g.mapClickHandle=g.map.addListener("click",g.closeAllInfoWindows)},this.$onDestroy=function(){n.google.maps.event.removeListener(g.mapClickHandle),g.markers.forEach(function(e){n.google.maps.event.clearListeners(e,"click")})}}]});
"use strict";angular.module("common").directive("includeReplace",function(){return{require:"ngInclude",link:function(e,n){n.replaceWith(n.children())}}});
"use strict";angular.module("common").directive("infoAccordion",function(){return{restrict:"E",templateUrl:"/partials/common/components/info-accordion/info-accordion.html",scope:{collapsedTitle:"@",expandedTitle:"@",theme:"@"},controllerAs:"$ctrl",transclude:!0,controller:["$scope",function(o){o.isCollapsed=!0,o.theme||(o.theme="default"),o.toggleAccordion=function(){o.isCollapsed=!o.isCollapsed}}]}});
"use strict";angular.module("common").component("lightBasketBanner",{templateUrl:"/partials/common/components/light-basket-banner/light-basket-banner.html",bindings:{price:"<",dccEnabled:"<",currency:"<",msg:"@",btnState:"@",btnText:"@",disabled:"<",tooltipTitle:"@",tooltipBody:"@"},controller:function(){var e=this;this.$onChanges=function(t){t.price&&null!=t.price.currentValue&&(e.displayPrice=t.price.currentValue)},this.$onChanges({price:{currentValue:this.price}})}});
"use strict";angular.module("common").component("loginRegisterPanel",{templateUrl:"/partials/common/components/login-register-panel/panel.html",controller:["Session","$scope","AEMConfig",function(e,i,n){var t=this,s=function(e){i.$evalAsync(function(){t.isAuthenticated=e})};e.subscribe("user:details",s),s(e.get("user:details")),this.myRyanairLogo=n.getStaticFilePrefix()+"/resources/ui/illustrations/myryanair/myRyanairNew_OnWhite",this.$onDestroy=function(){e.unsubscribe("user:details",s)}}]});
"use strict";angular.module("common").component("moreInfoAccordion",{templateUrl:"/partials/common/components/more-info-accordion/more-info-accordion.html",transclude:!0,bindings:{isOpened:"<",collapsedTitle:"@",expandedTitle:"@",onToggle:"&"},controller:function o(){babelHelpers.classCallCheck(this,o)}});
"use strict";angular.module("common").component("addressForm",{templateUrl:"/partials/common/components/payment-details-form/address-form.html",bindings:{name:"@",model:"<",extendedAddressLine:"",onUpdate:"&",isAirMaltaFlight:"",isRequired:"@?",isDisabled:"@?",isCountryDisabled:"<",disabledCountrySelection:"<",isItalianDomestic:"<",isPaypalSelected:"<"},require:{form:"^form"},controller:["Countries","Address","POSTCODE_TYPES","COUNTRY_STATE_TYPES",function(e,t,o,n){var s=this,r="IT";this.maxLength={city:32,postcode:10,addressLine:52,italianPostcode:5},this.minLength={postcode:0,italianPostcode:5},this.pattern={addressLine:"[a-zA-Z0-9 /,.-]+",city:"[A-Za-z0-9 ]+",postcode:"[a-zA-Z0-9]+[ -]?[a-zA-Z0-9]+",italianPostcode:"[0-9]+",sdiNumber:/^(?:([A-Za-z0-9]{7})|((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))))$/},this.postcodeTypes=o,this.countryStateTypes=n,this.countries=[],this.selectedCountry=null,this.countryRelatedLabels={zipCode:"",province:"",provinceError:""},this.countrySelected=function(e){e&&(s.model.countryCode=e.code,e.hasPostcodes||(s.model.postcode="")),s.model.stateCode="",s.states=e&&e.states?e.states:[],s.isItalySelected=R.equals(R.path(["code"],e),r);var t=s.name+"State";s.form[t]&&(s.form[t].$setPristine(),s.form[t].$setUntouched()),s.onUpdate({$event:{address:s.model}})};var i=function(){var e=R.path(["stateType"],s.selectedCountry)===s.countryStateTypes.Province;s.countryRelatedLabels.zipCode=R.prop("postcodeType",s.selectedCountry)===s.postcodeTypes.ZipCode?"common.components.payment_forms.zipCode":"common.components.payment_forms.postcode",s.countryRelatedLabels.province=e?"common.components.payment_forms.province_dropdown":"common.components.payment_forms.state_dropdown",s.countryRelatedLabels.provinceError=e?"common.components.payment_forms.error_province_required":"common.components.payment_forms.error_state_required"};this.$onInit=function(){var o=this;this.model=R.merge(new t,this.model),e.get().then(function(e){if(o.countries=e,o.isCountryDisabled){var t=o.countries.find(function(e){return e.code===o.disabledCountrySelection});o.countrySelected(t||"")}var n=o.countries.find(function(e){return e.code===o.model.countryCode});o.selectedCountry=n,o.states=R.pathOr([],["states"],n),i()})};var a=function(e,t,o){return R.equals(R.path([e,"previousValue"].concat(babelHelpers.toConsumableArray(t)),o),R.path([e,"currentValue"].concat(babelHelpers.toConsumableArray(t)),o))};this.$onChanges=function(e){var t=this;if(e.model&&(this.model=R.clone(this.model)),e.model&&!a("model",["countryCode"],e)||this.isCountryDisabled){if(this.isCountryDisabled){var o=this.countries.find(function(e){return e.code===t.disabledCountrySelection});this.countrySelected(o||"")}var n=this.countries.find(function(e){return e.code===R.path(["model","countryCode"],t)});this.selectedCountry=n,this.states=R.pathOr([],["states"],n),this.isItalianValidationEnabled=R.equals(R.path(["code"],this.selectedCountry),r),i()}},this.checkElementError=function(e){var t=s.form[""+s.name+e],o=t.$invalid,n=t.$touched,r=s.form.$submitted;return o&&(n||r)},this.getElementErrorMessage=function(e){return s.checkElementError(e)&&s.form[""+s.name+e].$error}}]});
"use strict";angular.module("common").component("paymentMethodCard",{require:{form:"^form"},templateUrl:"/partials/common/components/payment-details-form/card-method.html",bindings:{payment:"<",maxCardsLimitReached:"<",isExplicitDccEnabled:"<",saveNewCard:"@",onHidePaymentFeeMsg:"&",paymentAuthenticationError:"<"},controller:["Payments","Utilities","MarketConfig","ImageConfig","$ngRedux","PaymentActions","FlightSearch","PAYMENT_TYPES","Session",function(e,r,a,t,d,n,c,o,i){var s=this;this.cardModel=e.constructor.getCardModelTemplate();var l=(new Date).getFullYear(),u=(new Date).getMonth()+1,m=r.rangeFn(l,l+10),p=r.rangeFn(1,12);this.cardIcons=t.cvvIcons,this.selectedCardType="",this.isSaveNewCardSupported=function(){return i.getAuthenticated()&&!c.model.operatedBy&&!s.maxCardsLimitReached&&"false"!==s.saveNewCard},this.years=m,this.months=p;var y=function(){s.form.cardNumber.$validate();var e=s.form.cardNumber.$valid,r=R.path(["anonymousCard","cardNumber"],s.payment);if(!e&&r){var a=babelHelpers["extends"]({},s.cardModel,{cardNumber:""});d.dispatch(n.updateAnonymousCard(a))}else e&&d.dispatch(n.updateAnonymousCard(s.cardModel))};this.onUpdateAnonymousCard=function(){y()},this.onUpdateSecurityCode=function(){return d.dispatch(n.updateSecurityCode(s.cardModel.securityCode))},this.expiryMonthUpdate=function(){s.years=m,s.cardModel.expiry.month0&&void 0!==arguments[0]?arguments[0]:s.cardModel.cardNumber;return R.pathOr([],["paymentMethods","cardTypes"],s.payment).filter(function(r){return!e||e.match(r.regEx)})};var f=function(){if(s.cardModel.cardType){var r=s.cardModel.cardType.percentage>0?o.CREDIT_CARD:o.DEBIT_CARD,t=r===o.DEBIT_CARD&&"INC"===a.getCCFeeDisplayType()?e.debitCardFeePerc:s.cardModel.cardType.percentage;s.payment.selectedPaymentMethod.name!==r&&d.dispatch(n.setSelectedPaymentMethod({name:r,feeType:s.cardModel.cardType.feeType,perc:t}))}};this.cardNumberUpdate=function(){s.cardModel.cardNumber||d.dispatch(n.unsetSelectedCardType()),s.updateCardType()},this.updateCardType=function(){if(s.cardModel.cardNumber){var e=h(s.cardModel.cardNumber),r=R.pipe(R.prop("code"),R.equals(R.prop("code",e)),R.not)(s.cardModel.cardType);e&&r&&Object.assign(s.cardModel,{cardType:e})}M(),f(),s.onHidePaymentFeeMsg({$event:{payment:s.payment}}),s.selectedCardType=R.pathOr("",["cardType","code"],s.cardModel),s.cardIcons=R.pathOr({},["AX"===s.selectedCardType?"cidIcons":"cvvIcons"],t),y()},this.toggleSaveCard=function(){s.cardModel.saveCard=!s.cardModel.saveCard,y()},this.isFieldRequired=function(e){return s.cardModel&&s.cardModel.cardType?s.cardModel.cardType[e]:!0},this.$onInit=function(){f(),s.cardModel.securityCode=void 0},this.$onChanges=function(e){(!R.pathOr(!1,["payment","previousValue","declinedPayment"],e)&&R.pathOr(!1,["payment","currentValue","declinedPayment"],e)&&418!==R.pathOr(null,["payment","currentValue","error","status"],e)||null!==R.pathOr(null,["paymentAuthenticationError","currentValue","errorCode"],e))&&(s.cardModel.cardNumber="",s.cardModel.cardType={},s.cardModel.expiry={},s.cardModel.cardHolderName="",s.cardModel.saveCard=!1,s.cardModel.securityCode=void 0,d.dispatch(n.updateAnonymousCard(s.cardModel)))},this.checkElementError=function(e){var r=s.form[e],a=r.$invalid,t=r.$touched,d=s.form.$submitted;return a&&(t||d)},this.getElementErrorMessage=function(e){return s.checkElementError(e)&&s.form[e].$error}}]});
"use strict";angular.module("common").component("currencyConverter",{templateUrl:"/partials/common/components/payment-details-form/currency-converter.html",bindings:{offerDate:"<",amount:"<",currencyCode:"<",foreignCurrencyCode:"<",quotes:"<",applicable:"<",isExplicit:"<",offerApplied:"<"},require:{paymentForm:"^form"},controller:["PaymentActions","$filter","$ngRedux","Dates","DateConfig","Basket",function(e,o,r,n,t,c){var i=this;this.componentInitialised=!1,this.isDropdownOpen=!1,this.isSingleOffer=1===R.path(["quotes","length"],this);var u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=i.isSingleOffer?[{amount:i.amount,currencyCode:i.currencyCode}].concat(babelHelpers.toConsumableArray(e)):e;return r.map(function(e,r){var c=e.amount||e.foreignAmount,u=e.currencyCode||e.foreignCurrencyCode,s=o("displayPrice")(c,u),a=e.rate,f=n.toOtherFormat(i.offerDate,t.formats.ISO_8601_FULL,t.displayFormats.currencyConversion),d=" "+e.rate+"
"+i.amount+" "+i.currencyCode+" = "+c+" "+u,l=r>0?d:null,p=u+" ("+s+")";return{amount:c,currencyCode:u,date:f,description:l,label:p,rate:a}})},s=function(){var e=i.offer.find(function(e){return e.currencyCode===i.foreignCurrencyCode});return e||i.offer[0]},a=function(){r.dispatch(e.resetDccOffer()),i.singleOfferApplied=i.offerApplied,i.isSingleOffer=1===R.path(["quotes","length"],i),i.offer=u(i.quotes);var n=i.currencyCode!==i.foreignCurrencyCode?s():i.offer[0];i.selectedQuote=i.isSingleOffer?n:null,i.onQuoteChange(),i.singleOffer={currencyCode:i.offer[0].currencyCode,foreignCurrencyCode:i.offer[1].currencyCode,localValue:o("displayPrice")(i.amount,i.currencyCode),foreignValue:o("displayPrice")(i.offer[1].amount,i.offer[1].currencyCode),rate:i.offer[1].rate,offerDate:i.offer[1].date,amount:i.offer[0].amount,foreignAmount:i.offer[1].amount}};this.onQuoteChange=function(){return i.isSingleOffer&&r.dispatch(e.toggleDccOffer()),R.pathEq(["selectedQuote","currencyCode"],i.currencyCode,i)?void r.dispatch(e.resetConversionCurrencyCode()):void(i.selectedQuote&&r.dispatch(e.setConversionCurrencyCode(i.selectedQuote.currencyCode)))},this.selectQuote=function(e){i.selectedQuote=i.offer[e],i.onQuoteSelect()},this.checkElementError=function(e){var o=R.pathOr({},[e],i.paymentForm),r=o.$invalid,n=o.$touched,t=i.paymentForm.$submitted;return r&&(n||t)},this.openPopup=function(){i.isDropdownOpen=!0},this.closePopup=function(){i.isDropdownOpen=!1},this.toggleSelectedQuote=function(){return i.selectedQuote.currencyCode===i.currencyCode?void i.selectQuote(1):void i.resetSelectedQuote()},this.resetSelectedQuote=function(){var e=babelHelpers.slicedToArray(i.offer,1);i.selectedQuote=e[0],i.onQuoteSelect()},this.onQuoteSelect=function(){i.onQuoteChange(),i.closePopup()};var f=function(e){return{ssrs:e.bookingModel.ssrs,extras:e.bookingModel.extras,addons:e.bookingModel.addons,seats:e.bookingModel.seats,vouchers:e.bookingModel.payments}},d=r.connect(f)(function(){i.componentInitialised&&c.getTotal().amt>0&&r.dispatch(e.updateCurrencyConversionOffer())});this.$onChanges=a,this.$onDestroy=d,this.componentInitialised=!0}]});
"use strict";angular.module("common").component("dccCheck",{templateUrl:"/partials/common/components/payment-details-form/dcc-check.html",bindings:{cardValid:"<",isExplicitDccEnabled:"<",selectedCard:"",anonymousCard:"<"},controller:["Session","$ngRedux","PaymentActions",function(e,n,t){var a=this;this.isDccDropdownOpen=function(){return!a.offerApplied};var o=function(e){return{isAnonymousPayment:e.payment.isAnonymousPayment,dcc:e.payment.dcc,offerApplied:e.payment.dccOfferApplied}},r=n.connect(o,t)(function(e,n){a.$state=e,a.$actions=n});this.getForeignAmount=function(){return a.$state.dcc.foreignAmount},this.getAmount=function(){return a.$state.dcc.amount},this.isDropdownOpen=!1;var c=function(e,n){if(n){var t=e.anonymousCard&&!R.equals(R.path(["anonymousCard","currentValue","cardType"],e),R.path(["anonymousCard","previousValue","cardType"],e)),o=e.anonymousCard&&!R.equals(R.path(["anonymousCard","currentValue","cardNumber"],e),R.path(["anonymousCard","previousValue","cardNumber"],e));return R.path(["cardType","code"],a.anonymousCard)&&(t||o)}return!1},d=function(n){a.cardValid&&"AX"!==R.path(["selectedCard","currentValue","creditCardType"],n)&&"AX"!==R.path(["anonymousCard","currentValue","cardType","code"],n)?c(n,a.$state.isAnonymousPayment)?a.$actions.updateDccOffer({PaymentMethodCode:a.anonymousCard.cardType.code,AccountNumber:a.anonymousCard.cardNumber}):!a.$state.isAnonymousPayment&&a.selectedCard&&a.$actions.updateDccOffer({CustomerId:e.getCurrentUser().surrogateId,CardId:a.selectedCard.id}):a.$actions.resetDccOffer()};this.$onChanges=d,this.$onInit=function(){this.dccOfferApplied=R.path(["offerApplied"],this.$state)},this.$onDestroy=function(){r()}}]});
"use strict";angular.module("common").component("paymentMethodIdeal",{require:{form:"^form"},templateUrl:"/partials/common/components/payment-details-form/ideal.html",bindings:{onIdealSelect:"&",onGetIdealBanks:"&",bankList:"<"},controller:function(){this.banksList||this.onGetIdealBanks()}});
"use strict";angular.module("common").component("masterpassCheckout",{restrict:"EA",templateUrl:"/partials/common/components/payment-details-form/masterpass-checkout.html",require:{formCtrl:"^form"},controller:["$log","Payments","MasterpassPayment","$scope","ImageConfig",function(t,e,s,r,a){t.info(s.getState()),this.isReady=function(){return s.isReady},this.cardDetails=s.getSelectedCard(),this.showSpinner=!1,this.hasMasterpassCard=function(){return s.isInProgress()},this.isDccApplicable=function(){return s.isDccApplicable()},this.card=s.getSelectedCard(),this.getCardExpiryDate=function(){return s.getCardExpiryDate()},this.cvvIcons=a.cvvIcons}]});
"use strict";angular.module("common").component("paymentMethodMasterpass",{templateUrl:"/partials/common/components/payment-details-form/masterpass.html",bindings:{},controller:["Payments","DccService","MasterpassPayment",function(s,t,e){this.isReady=function(){return e.isReady},this.isMasterpassInProgress=function(){return e.isInProgress()},this.starAgain=function(){e.reset()}}]});
"use strict";angular.module("common").component("paymentDetailsForm",{templateUrl:"/partials/common/components/payment-details-form/payment-details-form.html",bindings:{payment:"<",paymentForm:"<",paymentMethods:"<",bookingModel:"<",serverError:"<",includeDcc:"@",paymentRequired:"@",savedCards:"@",containerId:"@",isAuthenticated:"<",payPalErrors:"<",paymentAuthenticationError:"<"},controller:["$state","$ngRedux","AEMConfig","$scope","Payments","Basket","FEATURE_CONFIG","EXPLICIT_SINGLE_OFFER_CONFIG","PaymentActions","CardService","PAYMENT_TYPES","PAYMENT_TYPES_CONFIG","AIRLINE_CONFIG","BookingRead","CurrencyConversionService","PAYPAL_ERROR_KEYS",function(e,t,n,r,a,i,o,s,d,c,u,p,l,h,m,y){var f=this,C="true"===this.paymentRequired;this.isSavedCardsSupported="false"!==this.savedCards,this.verisign=n.getStaticFilePrefix()+"/resources/img/verisign.png",this.extendedAddressLine=!1,this.dccIncluded="false"!==this.includeDcc,this.isExplicit=s,this.currencyConverterTurnedOn=o["currency-converter"]&&this.dccIncluded,this.PAYMENT_TYPES=u,this.isAirMaltaFlight=h.isOperatedBy(this.bookingModel,l.AIRMALTA.airline),this.isItalianDomestic=R.compose(R.equals("IT"),R.path(["domestic"]),h.getBookingInfo)(this.bookingModel),this.$onInit=function(){var e=R.pathOr([],["payPalErrors"],f);f.payPalValidationErrorKeys=R.pipe(R.map(function(e){return y[e]}),R.filter(function(e){return Boolean(e)}))(e)},this.getSelectedPaymentMethodName=function(){var e=f.payment.selectedPaymentMethod;return R.contains(R.path(["name"],e),[u.DEBIT_CARD,u.CREDIT_CARD])?u.PAYMENT_CARD:R.path(["name"],e)};var v=function(){return R.path(["card","cardType","code"],f.payment)};this.isInputMandatory=function(e){return a.isPaymentInputMandatory(v())(e)};var g=function(){return o["currency-converter"]&&f.dccIncluded&&!!R.path(["currencyConversion","quotes","length"],f)},A=function(){f.userCardsAvailable=Boolean(f.isSavedCardsSupported&&f.isAuthenticated)},P=function(){if(f.noPaymentRequired()&&f.payment.paymentMethods&&f.payment.paymentMethods.options){var e=f.payment.paymentMethods.options.find(function(e){return e.def})||f.payment.paymentMethods.options[0];t.dispatch(d.setSelectedPaymentMethod(e))}},E=function(e){return R.when(R.propEq("isFeeMsgVisible",!e),function(){return t.dispatch(d.setPaymentFeeMsgVisibility({isVisible:e}))})};this.onAddressUpdate=function(e){var n=e.address;n&&t.dispatch(d.updateBillingAddress(n))},this.noPaymentRequired=function(){return!C&&i.totalPriceToShow()<=m.getCorporateCardFee(f.payment)},this.onSelectMethod=function(e){var n=e.method;t.dispatch(d.setSelectedPaymentMethod(n));var r=R.pipe(R.pathOr([],["retrievedUserCards"]),R.any(R.whereEq({favourite:!0})))(f.payment),a=n.name===u.CREDIT_CARD&&!r;E(a)(f.payment)},this.handleIdealSelect=function(e){t.dispatch(d.selectIdealBank(e)),E(!1)(f.payment)},this.hidePaymentFeeMsg=function(e){var t=e.payment;E(!1)(t)},this.handleGetIdealBanks=function(){t.dispatch(d.getIdealBanks())},this.handleSepaFormUpdate=function(e){t.dispatch(d.updateSepaForm(e))},this.isAddressSectionVisible=function(){return R.contains(f.getSelectedPaymentMethodName(),p.ADDRESS_NEEDED)},this.isAddressFormVisible=function(){return!f.userCardsAvailable||f.getSelectedPaymentMethodName()===u.IDEAL||f.payment.isAnonymousPayment},this.isSavedAddressVisible=function(){return f.userCardsAvailable&&f.getSelectedPaymentMethodName()!==u.IDEAL&&!f.payment.isAnonymousPayment},A(),r.$on("$stateChangeStart",function(t,n){-1!==n.name.indexOf("booking.active")&&a.declinedPayment&&a.changeFlightPayment&&(t.preventDefault(),e.go("home")),a.declinedPayment=!1,a.changeFlightPayment=!1});var M=function(e,t){var n=R.path(["previousValue"].concat(babelHelpers.toConsumableArray(e)),t),r=R.path(["currentValue"].concat(babelHelpers.toConsumableArray(e)),t),a=R.complement(R.equals)(n,r);return a},I=function(e,n){var r=c.isCard(R.path(["previousValue","selectedPaymentMethod","name"],e)),a=c.isCard(R.path(["currentValue","selectedPaymentMethod","name"],e)),i=r&&a,o=M(["anonymousCard","cardNumber"],e),s=M(["anonymousCard","cardType","code"],e),u=M(["selectedPaymentMethod","name"],e)&&!i,p=o||s,l=M(["selectedCard","id"],e);if(f.currencyConversionOfferRequested=R.path(["currentValue","currencyConversionOfferRequested"],e),u||p||l){var h=R.path(["currentValue","anonymousCard","cardNumber"],e),m=R.path(["currentValue","anonymousCard","cardType","code"],e),y=R.path(["currentValue","selectedCard","id"],e);if(t.dispatch(d.resetCurrencyConversionOffer()),c.isCard(n)){f.cardValid=h||!!y;var C=o||s||l;(f.cardValid&&C||f.cardValid&&!h)&&(f.currencyConverterTurnedOn?t.dispatch(d.updateCurrencyConversionOffer()):void 0!==m&&void 0!==h&&t.dispatch(d.updateDccOffer({PaymentMethodCode:m,AccountNumber:h})))}else f.currencyConverterTurnedOn&&t.dispatch(d.updateCurrencyConversionOffer())}},b=function(e){var t=R.path(["currentValue","currencyConversionOffer"],e),n=R.path(["currentValue","currencyConversionOfferApplied"],e),r=1===R.path(["quotes","length"],t),a=r?R.path(["quotes","0","foreignCurrencyCode"],t):R.path(["currencyCode"],t),i=R.pathOr(a,["currentValue","ForeignCurrencyCode"],e);f.currencyConversion=babelHelpers["extends"]({},t,{offerApplied:n,foreignCurrencyCode:i}),f.isCurrencyConverterEnabled=g()};this.$onChanges=function(e){var n=e.bookingModel,r=e.payment,a=e.isAuthenticated;if(!h.getTravelCredits(R.path(["currentValue"],n)).length&&h.getTravelCredits(R.path(["previousValue"],n)).length&&t.dispatch(d.updateCurrencyConversionOffer()),r){var i=R.path(["currentValue","selectedPaymentMethod","name"],r);M(["paymentMade"],r)&&(P(),f.paymentForm&&(f.paymentForm.$submitted=!1)),I(r,i);var o=M(["currencyConversionOffer"],r)||M(["currencyConversionOfferApplied"],r);o&&b(r);var s=R.pipe(R.pathOr([],["currentValue","retrievedUserCards"]),R.any(R.whereEq({favourite:!0})))(r);s&&f.isAuthenticated&&E(!1)(r.currentValue)}a&&A()}}]});
"use strict";angular.module("common").component("paymentMethodPaypal",{templateUrl:"/partials/common/components/payment-details-form/paypal.html",bindings:{payment:"<",isAuthenticated:"<"},controller:["$element","$ngRedux","PaymentActions","AEMConfig","FEATURE_CONFIG",function(e,a,t,c,n){var l=this;this.$postLink=function(){if(!document.querySelector(".paypal-checkout")){var a=angular.element(document.createElement("script"));a.attr("class","paypal-checkout"),a.attr("src","//www.paypalobjects.com/api/checkout.js"),e.append(a)}},this.$onInit=function(){l.payPalImg=c.getStaticFilePrefix()+"/resources/ui/img/payment-methods/paypal-img",l.payPalBillingAgreementEnabled=n["paypal-billing-agreement-enabled"],a.dispatch(t.toggleSavePayPal(l.payPalBillingAgreementEnabled)),l.payPalBillingAgreementEnabled&&a.dispatch(t.getPayPal()).then(function(e){l.showSavedAccountsSection=e.payload.data.length,l.showSavedAccountsSection?(l.savedAccountSeleced=R.pathOr("false",["0","id"],e.payload.data),a.dispatch(t.savedPayPalAccountSelected(l.savedAccountSeleced)),a.dispatch(t.toggleSavePayPal(!1))):l.savePayPalAccount=!0})["catch"](function(){l.savePayPalAccount=!0})},this.updateSelectedCard=function(){a.dispatch(t.savedPayPalAccountSelected(l.savedAccountSeleced))},this.toggleSavePayPal=function(){l.savePayPalAccount=!l.savePayPalAccount,a.dispatch(t.toggleSavePayPal(l.savePayPalAccount))},this.$onDestroy=function(){document.querySelector(".paypal-checkout")&&document.querySelector(".paypal-checkout").remove()}}]});
"use strict";angular.module("common").directive("redirectPayment",function(){return{restrict:"EA",scope:{where:"=",redirect:"="},templateUrl:"/partials/common/components/payment-details-form/redirect-payment.html"}});
"use strict";angular.module("common").component("paymentMethodRetrievedCards",{bindings:{payment:"<",saveNewCard:"@",onHidePaymentFeeMsg:"&",paymentAuthenticationError:"<"},require:{paymentForm:"^form"},templateUrl:"/partials/common/components/payment-details-form/retrieved-cards.html",controller:["$ngRedux","Dates","DateConfig","Session","ImageConfig","PaymentActions","MarketConfig","Payments","PAYMENT_TYPES","AEMConfig","CREDIT_CARD_CODES",function(e,r,t,a,d,n,i,s,c,o,u){var p=this,l=void 0;this.CARD_CODES={visa:["VI","CN","DL","VE"],mastercard:["MC","MD","MP"],americanexpress:["AX"],diners:["DI"],discover:["DS"],uatp:["TP"]},this.cardCidCvvIcons=d.cvvIcons,this.selectedCardType="",this.isCvvRequired=!0;var C=function(r){var t=R.pathOr([],["cardTypes"],p.payment).find(function(e){return e.code===r.creditCardType});if(t){var a=t.percentage>0?c.CREDIT_CARD:c.DEBIT_CARD,d=a===c.DEBIT_CARD&&"INC"===i.getCCFeeDisplayType()?s.debitCardFeePerc:t.percentage;p.payment.selectedPaymentMethod.name!==a&&e.dispatch(n.setSelectedPaymentMethod({name:a,feeType:t.feeType,perc:d}))}},y=function(e){return p.onHidePaymentFeeMsg({$event:{payment:e}})};this.hidePaymentFeeMsg=function(e){var r=e.payment;y(r)},this.updateSelectedCard=function(r,t){return p.cardChangeAllowed?(p.selectedCardId=r.id,p.localSecurityCode={},l=void 0,r?(C(r),e.dispatch(n.setSelectedCard(r))):e.dispatch(n.setAnonymousPayment()),void y(p.payment)):(t.preventDefault(),void(p.localSelectedCardId=p.selectedCardId))},this.setEditMode=function(r){C(r),e.dispatch(n.setSelectedCard(r)),l=r},this.isInEditMode=function(e){return l===e},this.isCvvRequired=function(e){return p.payment.selectedCard.id===e.id&&!e.isExpired&&!p.isInEditMode(e)&&e.creditCardType!==u.UATP};var h=function(r){r&&!R.isEmpty(r)&&e.dispatch(n.retrieveMyryanairCards())},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.map(function(e){return babelHelpers["extends"]({},e,{inEditMode:!1})})};this.updateCard=function(r){var t=Object.assign(r,r.updatedInfo),a=parseInt(r.updatedInfo.expiry.month,10);10>a&&(a="0"+a),t=babelHelpers["extends"]({},t,{cardholdersName:r.cardHolderName,cardNumber:r.updatedInfo.cardNumber,expiryYear:r.updatedInfo.expiry.year.toString().slice(2,4),expiryMonth:a,creditCardType:r.updatedInfo.cardType.code,billingAddress:{street1:r.billingAddress.addressLine1,street2:r.billingAddress.addressLine2,street3:r.billingAddress.addressLine3,city:r.billingAddress.city,stateCode:r.billingAddress.stateCode,country:r.billingAddress.countryCode,postalCode:r.billingAddress.postcode}}),p.cardUpdating=!0,p.cardUpdateErrors=null,e.dispatch(n.updateMyryanairCard(t.id,t)).then(function(){e.dispatch(n.retrieveMyryanairCards())})["catch"](function(e){p.cardUpdateErrors=e})["finally"](function(){p.cardUpdating=!1,m(p.payment.retrievedUserCards)})},this.isExpired=function(e){return r.parse(e.expiryYear+"-"+e.expiryMonth,t.displayFormats.yearMonth).endOf("month")=0});return r+"/resources/ui/img/payment-methods/"+t+".png, "+r+"/resources/ui/img/payment-methods/"+t+"@2x.png 2x"},this.$onInit=function(){h(a.getCurrentUser()),a.subscribe("user:details",h)},this.$onChanges=function(e){var r=e.payment;r&&r.currentValue&&(p.localSelectedCardId=R.path(["selectedCard","id"],r.currentValue),p.selectedCardId=R.path(["selectedCard","id"],r.currentValue),p.maxCardsLimitReached=R.path(["maxCcLimitReached"],r.currentValue),(!R.path(["retrievedUserCards",0],r.previousValue)&&R.path(["retrievedUserCards",0],r.currentValue)&&R.path(["cardTypes"],r.currentValue)||!R.path(["cardTypes"],r.previousValue)&&R.path(["cardTypes"],r.currentValue)&&R.path(["retrievedUserCards",0],r.currentValue))&&C(R.path(["retrievedUserCards",0],r.currentValue)),p.selectedCardType=R.pathOr("",["selectedCard","creditCardType"],r.currentValue),p.cardChangeAllowed=!R.path(["currencyConversionOfferRequested"],r.currentValue),p.cardCidCvvIcons=R.pathOr({},["AX"===p.selectedCardType?"cidIcons":"cvvIcons"],d),R.pathOr(!1,["previousValue","retrievedUserCards"],r)&&R.pathOr(0,["currentValue","retrievedUserCards","length"],r)!==R.pathOr(0,["previousValue","retrievedUserCards","length"],r)&&(p.localSecurityCode={}))},this.$onDestroy=function(){a.unsubscribe("user:details",h)},this.checkElementError=function(e){var r=p.paymentForm[e],t=r.$invalid,a=r.$touched,d=p.paymentForm.$submitted;return t&&(a||d)},this.getElementErrorMessage=function(e){return p.checkElementError(e)&&p.paymentForm[e].$error}}]});
"use strict";angular.module("common").component("savedAddress",{templateUrl:"/partials/common/components/payment-details-form/saved-address.html",bindings:{name:"@",billingAddress:"<",selectedAnonymous:"<",selectedCard:"<",extendedAddressLine:"<",isItalianDomestic:"<",onUpdate:"&"},controller:["Address",function(e){var t=this;this.name=this.name||"address",this.isEditing=!1,this.changeAddress=function(){t.isEditing=!0},this.getCountryName=e.getCountryName,this.getStateName=e.getStateName;var s=function(e,t,s){return R.equals(R.path([e,"previousValue"].concat(babelHelpers.toConsumableArray(t)),s),R.path([e,"currentValue"].concat(babelHelpers.toConsumableArray(t)),s))};this.$onChanges=function(e){s("selectedCard",[],e)||(this.isEditing=!1)}}]});
"use strict";angular.module("common").component("paymentMethodSepa",{bindings:{payment:"<",constraints:"<",onFormUpdate:"&"},require:{form:"^form"},templateUrl:"/partials/common/components/payment-details-form/sepa.html",controller:function(){var n=this;this.$onChanges=function(t){t.payment&&(n.payment=R.clone(n.payment))},this.constraints=angular.extend({verificationCodeMinLength:1,verificationCodeMaxLength:50,bicMinLength:1,bicMaxLength:20},this.constraints)}});
"use strict";angular.module("common").component("vatDetailsForm",{templateUrl:"/partials/common/components/payment-details-form/vat-details-form.html",bindings:{name:"@",model:"<",defaultAddress:"<",useDefaultAddress:"<",domesticCountry:"<",error:"",onFormUpdate:"&",isPaypalSelected:"<"},require:{form:"^form"},controller:["VatDetails","Address","$attrs",function(e,t,d){var a=this;this.italyCode="IT",this.maxLength={vat:null,italianVat:11},this.minLength={vat:0,italianVat:11},this.pattern={vat:"^[A-Za-z0-9_ ]+$",sdiNumber:/^(?:([A-Za-z0-9]{7})|((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))))$/,italianVat:"[0-9]+"},this.$onInit=function(){a.isItalianDomestic=R.equals(a.domesticCountry,a.italyCode),a.name=a.name||"vatDetails",a.model=a.model||new e,a.defaultAddress=a.defaultAddress||new t},this.$onChanges=function(e){e.model&&(a.model=R.clone(a.model),a.isPaypalSelected&&(a.isItalySelected=R.equals(R.path(["model","address","countryCode"],a),a.italyCode))),e.defaultAddress&&(a.isItalySelected=R.equals(R.path(["defaultAddress","countryCode"],a),a.italyCode))},this.handleAddressFormUpdate=function(e){var d=e.address;a.extendAddressLine=a.model.address?t.isExtended(a.model.address):!1,a.onFormUpdate({$event:{address:d}})},this.isRequired=function(){return"required"in d&&(""===d.required||d.required)},this.isDisabled=function(){return"disabled"in d&&(""===d.disabled||d.disabled)}}]});
"use strict";angular.module("common").component("paymentMethodsSelector",{bindings:{paymentChargeApplicableAmount:"<",bookingModel:"<",methodsOptions:"<",model:"<",isPaymentPage:"<",onSelectMethod:"&"},templateUrl:"/partials/common/components/payment-methods-selector/payment-methods-selector.html",controller:["Payments","AEMConfig","MarketConfig","BookingRead",function(e,t,n,a){var o=this,i="common.components.payment_forms.method_",s=e.getIconSetForAllCards(),m=R.pipe(R.when(R.either(R.isNil,R.isEmpty),R.always(["visa","mastercard","americanexpress","uatp","diners","discover"])),R.map(R.objOf("name"))),r={DC:{label:"trips.payment_type.DC",icon:[{name:"visa"},{name:"masterpass"},{name:"americanexpress"}]},CC:{label:void 0!==this.paymentChargeApplicableAmount?"trips.payment_type.CC":i+"card",icon:m(s)},PP:{label:i+"paypal",icon:[{name:"paypal-img"}]},SD:{label:i+"sepa",icon:[{name:"sepa"}]},IA:{label:i+"IA",icon:[{name:"ideal"}]},IO:{label:i+"ingenico",icon:[{name:"visa"},{name:"mastercard"},{name:"americanexpress"}]},def:function(e){return{label:""+i+e,icon:[]}}},l=function(e){var t=void 0;return!o.isPaymentPage||e&&"DC"!==R.path(["name"],e)||(t=R.pipe(R.filter(function(e){return"CC"===e.name}),R.head)(o.methodsOptions)),t||e};this.ccFeeDisplayType=n.getCCFeeDisplayType(),this.isDomestic=a.isDomestic(this.bookingModel),this.getIcon=function(e){var n=t.getStaticFilePrefix(),a=n+"/resources/ui/img/payment-methods/"+e+".png, "+n+"/resources/ui/img/payment-methods/"+e+"@2x.png 2x";return a},this.getVisuals=function(e){return r[e]||r.def(e)},this.onMethodChange=function(e){var t=babelHelpers["extends"]({},l(e));o.onSelectMethod({$event:{method:t}})},this.calcDomesticPaymentFee=function(e){return a.getDomesticFee(o.paymentChargeApplicableAmount,e,o.bookingModel)},this.$onChanges=function(e){var t=e.methodsOptions,n=e.model;t&&t.previousValue||!t||!t.currentValue||(o.model=babelHelpers["extends"]({},l(o.model))),o.methodsOptions&&n&&n.currentValue&&(o.model=babelHelpers["extends"]({},l(n.currentValue)))}}]});
"use strict";angular.module("common").component("phoneNumber",{bindings:{name:"@",model:"<",required:"<",disabled:"<",onUpdateValue:"&"},require:{form:"^form"},templateUrl:"/partials/common/components/phone-number/phone-number.html",controllerAs:"ctrl",controller:["Countries",function(e){var n=this;this.name=this.name||"phoneNumber",this.countries=[],this.selectedCountry=null,e.get().then(function(o){if(n.countries=o.filter(function(n){return n!==e.UNDEFINED_COUNTRY}),n.model.countryCode){var t=n.countries.find(function(e){return e.code===n.model.countryCode});n.selectedCountry=t}}),this.countrySelected=function(e){n.model.countryCode=e?e.code:"",n.onUpdateValue({$event:{countryCode:n.model.countryCode}})},this.$onChanges=function(e){R.path(["model","currentValue"],e)&&(n.selectedCountry=n.countries.find(function(e){return e.code===n.model.countryCode}))}}]});
"use strict";angular.module("common").component("prompt",{templateUrl:"/partials/common/components/prompt/prompt.html",bindings:{text:"@",textTitle:"@?",icon:"@?",translateValues:"=?"}});
"use strict";angular.module("common").directive("resize",function(){return function(e){var t=document.getElementById("dropdown"),n=void 0;e.$watch(function(){return{w:t.offsetWidth}},function(t){n=t.w-90+"px;",e.calculateStringWidth=function(){return"width:"+n+"white-space: nowrap; overflow: hidden; text-overflow:ellipsis;float:left;"}},!0),angular.element(t).bind("resize",function(){e.$apply()})}});
"use strict";angular.module("common").component("ribbon",{templateUrl:"/partials/common/components/ribbon/ribbon.html",bindings:{translation:"@"}});
"use strict";angular.module("common").component("roomsBreakdown",{bindings:{roomInfo:"<",isLauda:"<"},templateUrl:"/partials/common/components/rooms-breakdown/rooms-breakdown.html",controller:["$log","AEMConfig","HotelsearchUtil","Booking","$ngRedux",function(e,t,o,r,i){var n=this;e.info("roomsBreakdown component initialized"),this.imagePath=t.getStaticFilePrefix(),this.detailSectionOpen=!1;var a=function(e){var t=n.roomInfo.detail.items.reduce(function(t,o){var r=Object.keys(o.item.priceVariants).filter(function(e){return(o.item.priceVariants[e]||{}).price}),i=e?r.find(function(t){return o.item.priceVariants[t].paymentMode===e})||r[0]:r[0];return t.total+=o.item.priceVariants[i].price.value*o.qty,(o.item.priceVariants[i].surcharges||[]).forEach(function(e){var o=t.extraFees.find(function(t){return t.type===e.type});o?o.price+=e.price.value:t.extraFees.push({code:e.type,price:e.price.value})}),t},{total:0,extraFees:[]});n.extraFees=t.extraFees.sort(function(e,t){return e.code>t.code}),n.totalPrice=t.total-n.extraFees.reduce(function(e,t){return e+t.price},0)};this.$onInit=function(){var e=R.path(["roomInfo","detail","roomAllocations"],n);e&&(n.roomAllocations="string"==typeof e?o.deserializeGuestsPerRoomsModel(e):e),n.paymentOption=i.getState().roomsDetails.selectedPaymentOption,a(n.paymentOption)}}]});
"use strict";angular.module("common").component("roomsBreakdownLcc",{bindings:{deposit:"<",totalPrice:"<",countryCode:"<",paymentOption:"<"},templateUrl:"/partials/common/components/rooms-breakdown-lcc/rooms-breakdown-lcc.html"});
"use strict";angular.module("common").component("roomsBreakdownTotal",{bindings:{item:"<",showInfoPopup:"<"},templateUrl:"/partials/common/components/rooms-breakdown-total/rooms-breakdown-total.html",controller:["Device","$ngRedux",function(o,t){var n=this,e=[],r=function(o){return{selectedPaymentOption:o.roomsDetails.selectedPaymentOption,currency:o.roomsSearch.currencyCode}};this.$onInit=function(){e.push(o.onPhone(function(o){n.showPaymentSelector=o.matches})),e.push(t.connect(r,null)(n))},this.$onChanges=function(o){if(o.item&&o.item.currentValue){var t=n.item.model.total;n.depositRequired=!!t.deposit,n.hotelBookingTotalPrice=t.amt}},this.$onDestroy=function(){e.forEach(function(o){return o()})}}]});
"use strict";angular.module("common").component("roomsConfirmationHeader",{bindings:{confirmation:"<"},templateUrl:"/partials/common/components/rooms-confirmation-header/rooms-confirmation-header.html",controller:["ROOMS_CONFIRMATION_STATUS",function(o){this.STATUS=o}]});
"use strict";angular.module("common").directive("myrScrollTo",["$document",function(o){var c=o;return{restrict:"A",scope:{scrollToOffset:"="},link:function(o,r){r.bind("click",function(){c.scrollTo(r,o.scrollToOffset,300)})}}}]);
"use strict";angular.module("common").directive("smartAppBanner",function(){return{restrict:"E",templateUrl:"/partials/common/components/smart-app-banner/smart-app-banner.html",controllerAs:"vm",controller:["$cookies","$window","MarketConfig","Device","appStores",function(e,t,a,n,r){var l=this;this.fallbackVisible=!n.isDesktop()&&n.isAndroid()&&!t.beforeInstallPrompt&&"rejected"!==e.get("fallbackAppBanner"),this.getIt=function(){var n=a.getCulture().slice(0,2);e.put("fallbackAppBanner","clicked"),t.location.href=r.play+n},this.closeIt=function(){e.put("fallbackAppBanner","rejected"),l.fallbackVisible=!1}}]}});
"use strict";function SVGage(t,e){var a=this,s=void 0,r=void 0,o=void 0,i=void 0,n=void 0,c=void 0,l=void 0;a.config={value:t.value,stroke:t.stroke?t.stroke:10},s=130,r=130,i=s/2,n=r/2,o=(s-a.config.stroke)/2,c=2*Math.PI*o,l=c*(1+a.config.value),a.state={value:a.config.value,stroke:a.config.stroke,width:s,height:r,cx:i,cy:n,radius:o,szero:c,svalue:l},l=null,a.snap=new Snap(e[0].querySelector(".indicator")),a.track=a.snap.circle(a.state.cx,a.state.cy,a.state.radius),a.track.attr({"class":"track","stroke-width":a.state.stroke}),a.level=a.snap.circle(a.state.cx,a.state.cy,a.state.radius),a.level.attr({"class":"level",transform:"r-90, "+a.state.cx+", "+a.state.cy,"stroke-width":a.state.stroke,"stroke-dasharray":a.state.szero,"stroke-dashoffset":a.state.szero}),Snap.animate(a.state.szero,a.state.svalue,function(t){a.level.attr({"stroke-dasharray":t})},400)}SVGage.prototype.update=function(t){var e=this,a=e.state.szero*(1+t);Snap.animate(e.state.svalue,a,function(t){e.level.attr({"stroke-dasharray":t,stroke:"green"})},400,mina.easein,function(){e.state.value=t,e.state.svalue=a})},angular.module("common").directive("svgGage",function(){return{restrict:"E",scope:{svgUrl:"=",iconClass:"=",title:"=",indicator:"="},link:function(t,e){var a=new SVGage({value:parseFloat(t.indicator)},e);t.$watch("indicator",function(t){a.update(parseFloat(t))})},templateUrl:"/partials/common/components/svg-gage/svg-gage.html"}});
"use strict";angular.module("common").directive("svgUseViewBox",function(){return{restrict:"E",scope:{svgUrl:"=",iconClass:"=",viewBox:"="},template:''}});
"use strict";angular.module("common").directive("svgUse",function(){return{restrict:"E",scope:{svgUrl:"=",iconClass:"="},template:''}});
"use strict";angular.module("common").component("coreTab",{templateUrl:"/partials/common/components/tabs/tab.html",bindings:{tabTitle:"@",tabTitleValues:"<",tabId:"@",tabIcon:"@?",hideTab:"<"},transclude:!0,require:{tabsCtrl:"^coreTabs"},controller:function(){var t=this,a=void 0;this.$onInit=function(){a={title:t.tabTitle,id:t.tabId,icon:t.tabIcon,titleValues:t.tabTitleValues,hide:t.hideTab},t.tabsCtrl.addTab(a)},this.$onChanges=function(e){if(e.tabTitleValues&&a&&(a.titleValues=e.tabTitleValues.currentValue),e.hideTab&&a){var i=e.hideTab.currentValue?t.tabsCtrl.hideTab:t.tabsCtrl.showTab;i(a)}}}});
"use strict";angular.module("common").component("coreTabs",{templateUrl:"/partials/common/components/tabs/tabs.html",bindings:{headerClass:"@?",bodyClass:"@?",tabsRemovable:"=?",onTabSelect:"&?",onTabRemove:"&?",selectedTabId:"@?",onTabHide:"&"},transclude:!0,controller:function(){var t=this;this.tabs=[],this.selectTab=function(e){t.onTabSelect&&t.onTabSelect({tab:e}),t.selectedTabId=e.id};var e=function(e,a){t.tabs.length?t.selectedTabId=(a-1>0?t.tabs[a-1]:t.tabs[0]).id:t.selectedTabId=void 0};this.removeTab=function(a,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{stopPropagation:angular.noop};n=n||t.tabs.findIndex(function(t){return a.id===t.id}),-1!==n&&(i.stopPropagation(),t.tabs=t.tabs.filter(function(t){return t.id!==a.id}),a.id===t.selectedTabId&&e(a,n),t.onTabRemove&&t.onTabRemove({tab:a}))},this.addTab=function(e){t.tabs.push(e),t.selectedTabId||1!==t.tabs.length||(t.selectedTabId=e.id)},this.hideTab=function(e){t.tabs.find(function(t){return t.id===e.id}).hide=!0,t.onTabHide({tabId:e.id})},this.showTab=function(e){t.tabs.find(function(t){return t.id===e.id}).hide=!1}}});
"use strict";angular.module("common").factory("TotalHeaderUtil",["$stateParams","$filter","BookingRead",function(e,n,r){var t=n("iataToStationName");return{getRouteInfo:function(n){var r=n.isReturn,a=n.origin,o=n.dest,i=n.passengers,u=n.connectingAirport;return{bookingType:function(){var n=(e.searchObj?e.searchObj.RoundTrip:r)?"return":"one_way";return"trips."+n}(),from:function(){var n=e.searchObj?e.searchObj.Origin:a;return t(n)}(),to:function(){var n=e.searchObj?e.searchObj.Destination:o;return t(n)}(),connectingAirport:e.searchObj?e.searchObj.connectingAirport:u,passengers:i}},getPaxInfoFromFlightSearch:function(e){return Object.keys(e).map(function(n){return{type:n,num:e[n],age:{ADT:3,TEEN:2,CHD:1,INF:0}[n]}})},isInfantCountGreaterThenAdultCount:function(e){return R.pathOr(0,["INF"],e)>R.pathOr(0,["ADT"],e)},isContinueBtnDisabled:function(e){var n=e.isReturn,r=e.selectedFlights;return n?!r[1]||!r[0]:!(1===r.length&&r[0]||2===r.length&&r[1])},getSavedTripDataForCurrentFlight:function(e,n){var t=r.get("journeys",e),a=(Array.isArray(n)?n:n.values()).find(function(n){return n.booking.journeys.length===t.length&&n.booking.journeys.every(function(n,a){return n.fareClass===t[a].model.fareClass&&n.flt===r.getSegmentsFor(a,e)[0].model.flt&&new Date(n.departUTC).getTime()===new Date(t[a].model.departUTC).getTime()})});return a}}}]);
"use strict";angular.module("common").constant("TOTAL_HEADER_ACTION_TYPES",{SHOW_EXTRAS_INFO:"[TotalHeader actions] show extras info"});
"use strict";angular.module("common").factory("TotalHeaderActions",["TOTAL_HEADER_ACTION_TYPES","$state","BookingModelActions","PriorityBoardingActions","CabinBagActions","PriorityBoardingUtil","BookingRead","$injector","$q","FEATURE_CONFIG","$ngRedux","MarketConfig",function(o,a,n,t,i,e,r,g,p,s,l,b){var c={continueCheckout:function(o){return function(c,d){var u=g.get("PromotionActions"),f=d(),y=f.bookingModel;switch(a.current.name){case"booking.extras":var m=f.priorityBoarding,k=m.isCampaignAvailable,h=m.isCampaignSeen;if(k&&R.not(h)&&R.isEmpty(r.getAllpriorityBoardingItems(y))&&R.pathOr(!1,["priority-boarding-and-cabin-bags-pt"],s))return void a.go("booking.extras.priority-boarding-and-cabin-bags");if(R.pathEq(["launchDarkly","potential-nextpage"],"payment",l.getState())&&r.isRyanairFlight(y)&&r.isInternationalFlight(y)&&r.isFlightProductsOnly(y))return void(window.location.pathname=b.getPath()+"/payment");c(u.getPromotionMessageOnCheckout({path:"booking.payment",params:{cardId:o}}));break;case"booking.priority-boarding":p.all([c(t.post()),c(i.submitBasket())]).then(function(){a.go("booking.extras",{openSeatMapInfo:s["open-seat-map-for-all-on-pt"]})});break;default:if(!s["cabin-bag-standalone-page-enabled"])return void c(n.createBooking("booking.extras",{openSeatMapInfo:s["open-seat-map-for-all-on-pt"]}));c(n.createBooking("")).then(function(){return c(t.getPriorityAvailability())}).then(function(o){!e.isPriorityViewAvailable(y)||e.allLegsPriorityBoardingSoldOutAndLauda(y,o.payload)&&!y.journeys.some(function(o){return!e.isCabinBagLaudaRulesDisabled(o)})?a.go("booking.extras",{openSeatMapInfo:s["open-seat-map-for-all-on-pt"]||s["open-seat-map-for-all-on-cabin-bag-page"]}):a.go("booking.priority-boarding",{openSeatMapInfo:s["open-seat-map-for-all-on-cabin-bag-page"]})},function(){a.go("booking.priority-boarding",{openSeatMapInfo:s["open-seat-map-for-all-on-cabin-bag-page"]})})}}},showExtrasInfo:function(a){return{type:o.SHOW_EXTRAS_INFO,payload:a}}};return c}]);
"use strict";angular.module("common").component("totalHeader",{bindings:{hideModifySearch:"<",dropDownDisabled:"<"},templateUrl:"/partials/common/components/total-header/total-header.html",controller:["$scope","$timeout","Device","$state","$stateParams","MorphPopupManager","smoothScroll","$document","MarketConfig","SavedTrips","FarefinderHistogramSearch","Session","AEMConfig","FEATURE_CONFIG","$ngRedux","BookingRead","TotalHeaderUtil","TotalHeaderActions","BookingModelActions","DialogManager","Basket","PaymentActions","FlightSearchUtil","ErasmusBookingUtil","$filter","TargetService",function(e,t,n,o,i,r,a,s,c,u,d,l,g,p,h,f,m,b,y,k,S,C,v,P,B,O){var M=this,I=/^booking\.home|priority-boarding|payment|active\.payment|extras(\.[a-z0-9-]+)*$/,T=void 0,x=void 0,F="",D=function(e){M.showMandatorySignUpBanner=!e&&M.isMandatorySignIn},A=n.onPhone(function(e){M.isMobile=e.matches}),E=function(){var e=o.current.name,t=g.getStaticFilePrefix();M.showBasketHeader=I.test(e),M.showFlightPassengerSummary=!~["booking.active.payment"].indexOf(e),M.showOffersHeader=!!~["booking.payment","booking.active"].indexOf(e),M.showCheckoutHeader=!!~["booking.payment","booking.active.payment","rooms.payment"].indexOf(e),M.showFarefinderHeader=!!~["farefinder.results.details"].indexOf(e),M.summaryView=!!~["booking.payment","booking.active.payment"].indexOf(e),M.myRyanairLogo=t+"/resources/ui/illustrations/myryanair/myRyanairNew_OnWhite",M.isMandatorySignIn=p["mandatory-sign-in"]&&o.is("booking.payment"),M.potentialTripId=i.cardId||null,M.isPotential=o.includes("booking.extras")||M.operatedBy,M.currentState=o.current.name,M.isCheckoutBtnVisible=O.isCheckoutButtonOnPTVisible(),D(l.get("user:details")),M.isLaudaMotion=c.isLaudaMotion(),M.isTripPlannerActive=p["trip-planner-redirection"]},H=function(e){R.path(["flightSearch","info","isReturn"],M)||"return"!==e.tripType||(i.searchObj={RoundTrip:!0},M.routeInfo={bookingType:"trips.return"})},w=function(){M.hideModifySearch?("booking.home"===o.current.name||"booking.priority-boarding"===o.current.name)&&(M.hideModifySearch=!1):o.current&&~o.current.name.indexOf("booking")&&"booking.home"!==o.current.name&&"booking.priority-boarding"!==o.current.name&&(M.hideModifySearch=!0)},$=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.length&&(M.routeInfo=m.getRouteInfo({isReturn:f.isReturnTrip(M.bookingModel),origin:f.getOriginCityCode(M.bookingModel),dest:f.getDestCityCode(M.bookingModel),passengers:f.getSortedPassengerObject(M.bookingModel),connectingAirport:f.getConnectingCity(M.bookingModel)})),M.showSummaryHeader=!(n.isPhone()||!e[0]&&!e[1]),M.isContinueBtnDisabled=m.isContinueBtnDisabled({isReturn:R.path(["flightSearch","info","isReturn"],M),selectedFlights:e}),T===e||M.isContinueBtnDisabled||(T&&(M.potentialTripId=null),l.isAuthenticated&&u.getTrips(!1).then(function(e){var t=m.getSavedTripDataForCurrentFlight(M.bookingModel,e);t&&(M.potentialTripId=t.id,u.setSavedCardId(t.id))}),T=e)},U=function(){x&&t.cancel(x),x=t(function(){M.closePopup(),x=null},4e3)},L=function(e){if(R.path(["info","origin"],e)){M.showInfantsAlert=R.compose(m.isInfantCountGreaterThenAdultCount,R.pathOr({},["passengers"]))(e),M.routeInfo=m.getRouteInfo(babelHelpers["extends"]({},e.info,{passengers:R.compose(m.getPaxInfoFromFlightSearch,R.pathOr({},["passengers"]))(e)}));var t=R.pipe(R.propOr({},"info"),R.props(["origin","dest","discount"]),R.zipObj(["origin","destination","discountPercentage"]))(e);h.dispatch(C.getAvailablePaymentOptionFees([],t))}},V=function(e,t){var n=R.prop("config",t)?P.parseErasmusConfig(t.config):void 0;return babelHelpers["extends"]({isReturnFlight:e.info.isReturn,discountsLeft:P.getNumberOfDiscountsLeft(t)},P.getErasmusDates(n),{disabledFields:P.getDisabledFields(t),erasmusValid:P.erasmusEnabled(t)})},j=function(e){var t=e.bookingModel,n=e.totalHeader,o=e.flightSearch,i=e.payment,r=e.erasmus,a=e.priorityBoarding,s=e.isContinueBtnDisabled,c=V(o,r);return M.isContinueBtnDisabled=s,{payment:i,bookingModel:t,flightSearch:o,operatedBy:R.path(["info","operatedBy"],o),isErasmusSearch:v.isErasmusSearch(o)&&c.erasmusValid,extrasAddedHeader:R.both(R.identity,R.prop("extrasAddedHeader"))(n),isHoldable:R.compose(R.pathOr(!1,["isHoldable"]),f.getBookingInfo)(t),totalPrice:S.totalPriceToShow(),erasmusSearchWidgetConfig:v.isErasmusSearch(o)?c:{},isContinueBtnDisabled:"booking.priority-boarding"===M.currentState?!a.continueEnabled:m.isContinueBtnDisabled({isReturn:R.path(["info","isReturn"],o),selectedFlights:R.pathOr([],["journeys"],t)})}},_=h.connect(j,b)(this);E(),e.$watch(function(){return R.path(["bookingModel","journeys"],M)},$),e.$watch(function(){return M.flightSearch},L),e.$on("$stateChangeSuccess",E),e.$on("$stateChangeSuccess",w),D(l.get("user:details")),l.subscribe("user:details",D),d.subscribe("fare",H),w(),this.getOperator=function(){return M.operatedBy},this.openLockFareDialog=function(){k.open("lockFaresHome",{template:"/partials/extras/lockfare/lockfare-drawer.html",className:"lockdown-modal dialog-aside",controller:"LockFareCtrl",controllerAs:"lf"})},this.openedPopupId=function(){return r.openPopup("booking.extras"===o.current.name?"noExtras":"holdablePopUp")},this.closePopupId=function(){return r.closePopup("booking.extras"===o.current.name?"noExtras":"holdablePopUp")},this.closePopup=function(){F="",x&&t.cancel(x)},this.onSaveActionSuccess=function(e){M.potentialTripId=e,F="SAVED_POPUP",U()},this.getPopupTemplate=function(){return F},this.onSaveActionFail=function(e){F=e,U()},this.onContinueBtnClick=function(){M.operatedBy?h.dispatch(y.createBooking("booking.payment")):M.continueCheckout(M.potentialTripId)},this.toggleSearch=function(){M.searchEnabled=!M.searchEnabled;var t=s[0].getElementById("ryanair-navbar");t&&e.searchEnabled&&a(t,{offset:0,stopOnUserScroll:!0})},i.toggleSearchInHeader&&this.toggleSearch();var N=function(e){return B("translate")(e).length>8};this.isContinueBtnTextLong=N("trips.summary.buttons.btn_continue"),this.isCheckoutBtnTextLong=N("trips.summary.buttons.btn_checkout");var W=k.whenOpenDisableWatchers("*",e);this.$onDestroy=function(){d.unsubscribe("fare",H),l.unsubscribe("user:details",D),_(),W(),A()},this.$onInit=function(){h.dispatch(C.getAvailablePaymentOptionFees())}}]});
"use strict";angular.module("common").factory("TotalHeaderReducer",["TOTAL_HEADER_ACTION_TYPES",function(e){var r={extrasAddedHeader:null};return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,t=arguments[1],n=t.type,u=t.payload;switch(n){case e.SHOW_EXTRAS_INFO:return{extrasAddedHeader:u};default:return a}}}]);
"use strict";angular.module("common").component("trustedText",{bindings:{text:"<",type:"@"},template:'',controller:["$sce",function(t){var e=this;this.$onChanges=function(){switch(e.type){case"HTML":default:e.trustedText=t.trustAsHtml(e.text)}}}]});
"use strict";angular.module("common").constant("PAYMENT_ACTION_TYPES",{RESET:"[Payment] reset payment state to default",FETCH_SMS_FEE_START:"[Payment] fetch sms fee start",FETCH_SMS_FEE_SUCCESS:"[Payment] fetch sms fee success",FETCH_SMS_FEE_FAILURE:"[Payment] fetch sms fee failure",TOGGLE_SMS_START:"[Payment] toggle sms start",TOGGLE_SMS_SUCCESS:"[Payment] toggle sms success",TOGGLE_SMS_FAILURE:"[Payment] toggle sms failure",ADD_SMS_START:"[Payment] add sms start",ADD_SMS_SUCCESS:"[Payment] add sms success",ADD_SMS_FAILURE:"[Payment] add sms failed",REMOVE_SMS_START:"[Payment] remove sms start",REMOVE_SMS_SUCCESS:"[Payment] remove sms success",REMOVE_SMS_FAILURE:"[Payment] remove sms failed",RETRIEVE_METHODS_START:"[Payment] retrieve methods start",RETRIEVE_METHODS_SUCCESS:"[Payment] retrieve methods success",EXCLUDE_PAYMENT_METHOD_OPTIONS:"[Payment] exclude given payment methods options",SET_EXCLUDED_METHODS_OPTIONS:"[Payment] set excluded payment methods options",RESET_EXCLUDED_METHODS_OPTIONS:"[Payment] reset excluded payment methods options",SET_SELECTED_PAYMENT_METHOD:"[Payment] set selected payment method",UNSET_SELECTED_PAYMENT_METHOD:"[Payment] unset selected payment method",SET_SELECTED_CARD_TYPE:"[Payment] set selected card type",UNSET_SELECTED_CARD_TYPE:"[Payment] unset selected card type",RETRIEVE_MYRYANAIR_CARDS_START:"[Payment] retrieve myryanair cards start",RETRIEVE_MYRYANAIR_CARDS_SUCCESS:"[Payment] retrieve myryanair cards success",RETRIEVE_MYRYANAIR_CARDS_FAILURE:"[Payment] retrieve myryanair cards error",UPDATE_MYRYANAIR_CARDS_START:"[Payment] update myryanair cards start",UPDATE_MYRYANAIR_CARDS_SUCCESS:"[Payment] update myryanair cards success",UPDATE_MYRYANAIR_CARDS_FAILURE:"[Payment] update myryanair cards error",SET_SELECTED_CARD:"[Payment] set selected card",UNSET_SELECTED_CARD:"[Payment] unset selected card",SET_CARD_STATE:"[Payment] selected card state",MAX_CC_LIMIT_REACHED:"[Payment] maximum cc limit reached",SET_ANONYMOUS_CARD:"[Payment] set anonymous card payment",UPDATE_ANONYMOUS_CARD:"[Payment] update anonymous card from user input",RESET_ANONYMOUS_CARD:"[Payment] reset anonymous card",SET_ANONYMOUS_PAYMENT:"[Payment] set anonymous payment to true",UPDATE_CHACHED_CARD:"[Payment] update chached card id",PROCESS_PAYMENT_START:"[Payment] process payment start",PROCESS_PAYMENT_SUCCESS:"[Payment] process payment success",PROCESS_PAYMENT_FAILURE:"[Payment] process payment failure",REDIRECT_PAYMENT_START:"[Payment] start of the redirect payment",UPDATE_CVV:"[Payment] update cvv on selected card",UPDATE_BILLING_ADDRESS:"[Payment] update billing address",UPDATE_DELIVERY_ADDRESS:"[Payment] update delivery address",GET_CONTACT_FROM_PROFILE_START:"[Payment] get contact details from profile start",GET_CONTACT_FROM_PROFILE_SUCCESS:"[Payment] get contact details from profile success",GET_CONTACT_FROM_PROFILE_FAILURE:"[Payment] get contact details from profile failure",UPDATE_DCC_OFFER_START:"[Payment] update DCC offer start",UPDATE_DCC_OFFER_SUCCESS:"[Payment] update DCC offer success",RESET_DCC_OFFER:"[Payment] reset DCC offer",UPDATE_CURRENCY_CONVERSION_OFFER_START:"[Payment] update Currency Conversion offer start",UPDATE_CURRENCY_CONVERSION_OFFER_SUCCESS:"[Payment] update Currency Conversion offer success",UPDATE_CURRENCY_CONVERSION_OFFER_FAILURE:"[Payment] update Currency Conversion offer failure",RESET_CURRENCY_CONVERSION_OFFER:"[Payment] reset Currency Conversion offer",SET_CONVERSION_CURRENCY_CODE:"[Payment] update selected conversion currency code",RESET_CONVERSION_CURRENCY_CODE:"[Payment] reset selected conversion currency code",SAVE_CC_TO_MYRYANAIR_START:"[Payment] save card to my ryanair start",SAVE_CC_TO_MYRYANAIR_SUCCESS:"[Payment] save card to my ryanair success",TOGGLE_DCC_OFFER:"[Payment] toggle dcc offer",UPDATE_CONTACT_DETAILS:"[Payment] update contact details",REQUEST_PAY_PAL_TOKEN_START:"[Payment] requesting paypal token",REQUEST_PAY_PAL_TOKEN_SUCCESS:"[Payment] requesting paypal token succeed",REQUEST_PAY_PAL_TOKEN_FAILURE:"[Payment] request paypal token failed",PAY_PAL_INITIALIZED:"[Payment] paypal initialized",CLEAR_ALL:"[Payment] setting up payment in default state",SELECT_IDEAL_BANK:"[Payment] select ideal bank",GET_IDEAL_BANKS_START:"[Payment] fething ideal banks",GET_IDEAL_BANKS_SUCCESS:"[Payment] fetching ideal banks succed",GET_IDEAL_BANKS_FAILURE:"[Payment] fetching ideal banks falied",UPDATE_SEPA_FORM:"[Payment] update sepa form",RESET_SEPA_FORM:"[Payment] reset sepa form",TOGGLE_VAT_DETAILS:"[Payment] toggle VAT details form",UPDATE_VAT_DETAILS:"[Payment] update VAT details form",SET_BILLING_ADDRESS_AS_VAT_FORM_ADDRESS:"[Payment] set billing address as VAT form address",GET_AVAILABLE_PAYMENT_OPTION_FEES_START:"[Payment] fetched available payment option fees start",GET_AVAILABLE_PAYMENT_OPTION_FEES_SUCCESS:"[Payment] fetched available payment option fees success",GET_AVAILABLE_PAYMENT_OPTION_FEES_FAILURE:"[Payment] fetched available payment option fees failed",UPDATE_LEAD_DRIVER:"[Payment] update lead driver for car hire",FETCH_CO_FEE_SUCCESS:"[Payment] fetch CO fee success",TOGGLE_CO_START:"[Payment] toggle CO start",TOGGLE_CO_SUCCESS:"[Payment] toggle CO success",TOGGLE_CO_FAILURE:"[Payment] toggle CO failure",SET_AIR_MALTA_PRE_PAYMENT_START:"[Payment] set Air Malta pre payment start",SET_AIR_MALTA_PRE_PAYMENT_SUCCESS:"[Payment] set Air Malta pre payment success",SET_AIR_MALTA_PRE_PAYMENT_ERROR:"[Payment] set Air Malta pre payment error",SET_PAYMENT_FEE_MSG_VISIBILITY:"[Payment] Set payment fee message visibility",SET_INVALID_CARD_ID:"[Payment] set invalid card id",FETCH_ISPCC_FEE_SUCCESS:"[Payment] fetch ISPCC fee success",TOGGLE_ISPCC_START:"[Payment] toggle ISPCC start",TOGGLE_ISPCC_SUCCESS:"[Payment] toggle ISPCC success",TOGGLE_ISPCC_FAILURE:"[Payment] toggle ISPCC failure",TOGGLE_SAVE_PAY_PAL_TO_MYRYANAIR:"[Payment] toggle save pay pal to my ryanair",USE_SAVED_PAY_PAL_ACCOUNT:"[Payment] use saved pay pal account to pay",GET_SAVED_PAY_PAL_ACCOUNT_START:"[Payment] get saved pay pal account start",GET_SAVED_PAY_PAL_ACCOUNT_SUCCESS:"[Payment] get saved pay pal account success",GET_SAVED_PAY_PAL_ACCOUNT_ERROR:"[Payment] get saved pay pal account error"});
"use strict";angular.module("common").service("PaymentActions",["PAYMENT_ACTION_TYPES","MAX_REGISTERED_CARDS_COUNT","ModelQuery","Flatnmap","FlatmapMaps","Payments","ContactDetails","MyRyanairPaymentService","Dates","Address","DateConfig","Fees","DccService","CurrencyConversionService","WizardService","PaymentModel","$window","RezApiConfig","$http","Currency","PayPalConfig","$state","$rootScope","SavedTrips","Session","PAYMENT_TYPES","ANALYTICS_EVENT","takeoverDataStorage","FEATURE_CONFIG","AirMaltaApiConfig","MarketConfig","BookingRead","FEE_CODES","BoxeverActions","SCAActions",function(e,t,n,a,r,o,d,i,c,u,s,p,y,E,C,l,_,S,A,T,f,m,O,P,I,v,D,h,M,N,g,U,L,F,b){var Y=function(e,t){var n="booking.active";t||e.travelDocuments||!M["at-post-booking-rooms-deal"]||U.isSameDayReturnBooking(e)||(I.setSessionStorage("roomsDealAt",c.formatISOFull(c.now)),n="booking.rooms-deal"),m.go(n,{confirmation:!0,displayTooltip:!0,bookingModel:e})},G=function(e,t){if(I.removeBasketId(),!m.transition)switch(m.current.name){case"booking.active.checkin.payment":O.$emit("payment-controller:payment-processed");break;case"vouchers.payment":m.go("vouchers.summary");break;case"samsonite.payment":m.go("samsonite.confirmation");break;default:Y(e,t)}},x=R.pathEq(["name"],"PP"),V=function(e){return R.pipe(R.filter(function(e){return e.def}),R.head)(e)||R.head(e)},k=R.evolve({groundTransfer:R.map(R.when(R.pathEq(["model","status"],"CONFIRMED"),function(e){return babelHelpers["extends"]({},e,{model:babelHelpers["extends"]({},e.model,{sold:!0,total:R.pipe(R.pathOr(0,["model","totalPrice"]),Number)(e)})})}))}),B={updateContactDetails:function(t){return function(n,a){var r=a().payment.contact;n({type:e.UPDATE_CONTACT_DETAILS,payload:d.getUpdatedContact(r,t)})}},executePayment:function(t,n,o){return function(d,i){var c=i().payment.selectedPaymentMethod;d({type:e.PROCESS_PAYMENT_START,payload:{isProcessing:!0,declinedPayment:!1}}),n(t).then(function(n){var o=n.data;d(F.pay(c.name)),d(F.confirm());var i=a.normalize(r.bookingModel,o),u=R.when(R.propSatisfies(function(e){return!R.isNil(e)&&!R.isEmpty(e)},"groundTransfer"),k)(i),s=R.path(["info","bookingId"],o);P.getSavedCardId()&&P.removeTrip(P.getSavedCardId()).then(function(){P.setSavedCardId(!1)}),t.hotel&&s&&h.save("rooms",s),d(B.saveCreditCard()),y.reset(),d({type:e.PROCESS_PAYMENT_SUCCESS,payload:u,meta:{analytics:{event:D.successfulPayment}}}),G(u,!!t.hotel)})["catch"](function(t){d({type:e.PROCESS_PAYMENT_FAILURE,payload:babelHelpers["extends"]({status:t.status},t.data)}),o(t)})}},executePaymentWithDccUpdate:function(e,t,n){return function(a){e.AccountNumber?a(B.updateDccOffer({PaymentMethodCode:e.PaymentMethodCode,AccountNumber:e.AccountNumber})).then(function(){a(B.executePayment(e,t,n))}):a(B.updateDccOffer({CustomerId:e.CustomerId,CardId:e.CardId})).then(function(){a(B.executePayment(e,t,n))})}},updateSecurityCode:function(t){return{type:e.UPDATE_CVV,payload:{securityCode:t}}},saveCreditCard:function(){return function(t,n){t({type:e.SAVE_CC_TO_MYRYANAIR_START});var a=n().payment,r=R.pathOr({},["anonymousCard"],a),o=a.billingAddress,d=a.securityCode;r.saveCard&&C.saveCreditCard(l.getCreditCardMyRyanairPayload(r,o,d)).then(function(n){var a=n.payload;t({type:e.SAVE_CC_TO_MYRYANAIR_SUCCESS,payload:a})})}},getPayPal:function(){return function(t){return t({type:e.GET_SAVED_PAY_PAL_ACCOUNT_START}),C.getPayPal().then(function(n){return t({type:e.GET_SAVED_PAY_PAL_ACCOUNT_SUCCESS,payload:n})})["catch"](function(n){t({type:e.GET_SAVED_PAY_PAL_ACCOUNT_ERROR,payload:n})})}},retrieveSmsFee:function(){return function(t){t({type:e.FETCH_SMS_FEE_START}),p.retrieve().then(function(n){t({type:e.FETCH_SMS_FEE_SUCCESS,payload:R.pipe(R.pathOr([],["data"]),R.find(R.propEq("code",L.SMS)))(n)}),t({type:e.FETCH_CO_FEE_SUCCESS,payload:R.pipe(R.pathOr([],["data"]),R.find(R.propEq("code",L.CARBON)))(n)});var a=R.pipe(R.pathOr([],["data"]),R.find(R.propEq("code",L.ISPCC)))(n);a&&t({type:e.FETCH_ISPCC_FEE_SUCCESS,payload:a})})["catch"](function(n){t({type:e.FETCH_SMS_FEE_FAILURE,payload:n})})}},toggleSms:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=t.isFlexiFare;return function(t,r){if(!a){var o=r();t({type:e.TOGGLE_SMS_START});var i=o.bookingModel,c=U.hasUnsoldExtraItemsByCode(L.SMS,i),u={key:{id:0,journeys:0,segments:0},model:R.pathOr({},["payment","smsExtras"],o)};return d.updateSmsStatus(!c).then(function(){var a=void 0;a=c?R.pipe(n.byIdentity("extras"),n.byPredicate(R.where({code:R.complement(R.equals(L.SMS))})))(i):[].concat(n.byIdentity("extras")(i),u),t({type:e.TOGGLE_SMS_SUCCESS,payload:a}),t(B.updateContactDetails({sendSms:!c}))})["catch"](function(n){t({type:e.TOGGLE_SMS_FAILURE,payload:n}),t(B.updateContactDetails({sendSms:!1}))})}return t(B.updateContactDetails({sendSms:!0})),Promise.reject()}},toggleCoDonation:function(t){return function(a,r){a({type:e.TOGGLE_CO_START});var o=r(),i=o.bookingModel,c=U.hasUnsoldExtraItemsByCode(L.CARBON,i),u=[{key:{id:0,journeys:0,segments:0},model:R.pathOr({},["coExtras"],t)}];d.updateCoStatus(!c).then(function(){var o=void 0,d=r();i=d.bookingModel,o=c?R.pipe(n.byIdentity("extras"),n.byPredicate(R.where({code:R.complement(R.equals(L.CARBON))})))(i):R.concat(n.byIdentity("extras")(i),u),a({type:e.TOGGLE_CO_SUCCESS,payload:o}),a(B.updateContactDetails({donateCO:!c})),a(B.updateCurrencyConversionOffer()),t.selectedCard&&a(B.updateDccOffer({CardId:t.selectedCard.id,CustomerId:I.getCurrentUser().surrogateId}))})["catch"](function(t){a({type:e.TOGGLE_CO_FAILURE,payload:t}),a(B.updateContactDetails({donateCO:!1}))})}},toggleIspccDonation:function(t){return function(a,r){a({type:e.TOGGLE_ISPCC_START});var o=r(),i=o.bookingModel,c=U.hasUnsoldExtraItemsByCode(L.ISPCC,i),u=[{key:{id:0,journeys:0,segments:0},model:R.pathOr({},["ispccExtras"],t)}];d.updateIspccStatus(!c).then(function(){var o=void 0,d=r();i=d.bookingModel,o=c?R.pipe(n.byIdentity("extras"),n.byPredicate(R.where({code:R.complement(R.equals(L.ISPCC))})))(i):R.concat(n.byIdentity("extras")(i),u),a({type:e.TOGGLE_ISPCC_SUCCESS,payload:o}),a(B.updateContactDetails({donateISPCC:!c})),a(B.updateCurrencyConversionOffer()),t.selectedCard&&a(B.updateDccOffer({CardId:t.selectedCard.id,CustomerId:I.getCurrentUser().surrogateId}))})["catch"](function(t){a({type:e.TOGGLE_ISPCC_FAILURE,payload:t}),a(B.updateContactDetails({donateISPCC:!1}))})}},retrievePaymentMethods:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return function(n,a){var r=a();return n({type:e.RETRIEVE_METHODS_START}),o.updatePaymentMethods(t).then(function(t){var a=t.paymentMethods,o=t.cachedCardTypes,d=t.selectedMethod,i=g.getMarket(),c=R.pathOr([],["payment","excludedPaymentMethodsOptions"],r),u=function(e){return R.is(Array,e)&&R.not(R.contains(i,R.map(R.toLower)(e)))},s=R.pipe(R.pathOr([],["options"]),R.reject(function(e){return R.or(R.contains(e.name,c),u(e.culturesAllowed))}))(a),p=R.path(["payment","selectedPaymentMethod"],r);if(n({type:e.RETRIEVE_METHODS_SUCCESS,payload:{paymentMethods:babelHelpers["extends"]({},a,{options:[].concat(babelHelpers.toConsumableArray(s))}),cardTypes:o,selectedMethod:d,securityCode:void 0}}),!p){var y=V(s);n({type:e.SET_SELECTED_PAYMENT_METHOD,payload:babelHelpers["extends"]({},y,{perc:0})})}})}},getAvailablePaymentOptionFees:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];return function(a,r){a({type:e.GET_AVAILABLE_PAYMENT_OPTION_FEES_START}),o.getAvailablePaymentOptionFees(t,n).then(function(t){var n=r(),o=n.payment,d=R.pathOr([],["excludedPaymentMethodsOptions"],o),i=R.pipe(R.filter(function(e){return d.indexOf(e.name)<0}))(t),c=R.path(["selectedPaymentMethod"],o);a({type:e.GET_AVAILABLE_PAYMENT_OPTION_FEES_SUCCESS,payload:{availablePaymentOptionFees:t}});var u=R.anyPass([R.isNil,R.isEmpty,function(e){return R.none(R.equals(e),i)}])(c);if(u){var s=V(i);a({type:e.SET_SELECTED_PAYMENT_METHOD,payload:babelHelpers["extends"]({},s,{perc:0})})}})["catch"](function(t){a({type:e.GET_AVAILABLE_PAYMENT_OPTION_FEES_FAILURE,payload:t})})}},setSelectedPaymentMethod:function(t){return function(n,a){var r=R.pathOr([],["state","payment","selectedPaymentMethod","name"],a());R.contains(r,[v.CREDIT_CARD,v.DEBIT_CARD])&&n({type:e.UNSET_SELECTED_CARD}),n({type:e.SET_SELECTED_PAYMENT_METHOD,payload:babelHelpers["extends"]({},t,{perc:0})}),x(t)&&n(B.initPayPal())}},unsetSelectedPaymentMethod:function(){return{type:e.UNSET_SELECTED_PAYMENT_METHOD}},setSelectedCardType:function(t){return{type:e.SET_SELECTED_CARD_TYPE,payload:t}},unsetSelectedCardType:function(){return{type:e.UNSET_SELECTED_CARD_TYPE}},resetAnonymousCard:function(){var t={anonymousCard:{cardNumber:"",cardType:{},expiry:{},cardHolderName:"",saveCard:!1,securityCode:void 0},dcc:void 0};return{type:e.RESET_ANONYMOUS_CARD,payload:t}},setExcludedPaymentMethodsOptions:function(t){return{type:e.SET_EXCLUDED_METHODS_OPTIONS,payload:t}},setSelectedCard:function(t){var n=t.billingAddress;return{type:e.SET_SELECTED_CARD,payload:{selectedCard:t,billingAddress:n,anonymousCard:!1,isAnonymousPayment:!1,securityCode:void 0}}},setCardState:function(t){return{type:e.SET_CARD_STATE,payload:{currencyConversionOfferRequested:t}}},toggleDccOffer:function(){return function(t,n){y.set("applied",!R.pathOr(!1,["payment","dccOfferApplied"],n())),t({type:e.TOGGLE_DCC_OFFER})}},resetDccOffer:function(){return function(t){y.set("applied",!1),t({type:e.RESET_DCC_OFFER})}},setAnonymousPayment:function(){return{type:e.SET_ANONYMOUS_PAYMENT,payload:{isAnonymousPayment:!0,selectedCardType:void 0,selectedMethod:void 0,selectedCard:void 0,securityCode:void 0,dcc:void 0,dccOfferApplied:!1}}},updateAnonymousCard:function(t){var n={anonymousCard:babelHelpers["extends"]({},t)};return t.cardType||(n.dcc=void 0),{type:e.UPDATE_ANONYMOUS_CARD,payload:n}},updateBillingAddress:function(t){return{type:e.UPDATE_BILLING_ADDRESS,payload:t}},updateDeliveryAddress:function(t){var n=t.address;return{type:e.UPDATE_DELIVERY_ADDRESS,payload:{address:n}}},retrieveMyryanairCards:function(){return function(n,a){n({type:e.RETRIEVE_MYRYANAIR_CARDS_START});var r=a(),o=r.payment;return I.getCurrentUser().surrogateId?void i.getAllCards().then(function(a){var r=a.data,d=function(e){return c.format(c.parse(e,"YY"),"YYYY")},i=function(e){var t=d(e.expiryYear);return c.parse(t+"-"+e.expiryMonth,s.displayFormats.yearMonth).endOf("month")0&&void 0!==arguments[0]?arguments[0]:{sendSms:!1,donateCO:!1,donateISPCC:!1},n=t.sendSms,a=t.donateCO,r=t.donateISPCC;return function(t){t({type:e.GET_CONTACT_FROM_PROFILE_START}),d.getContactModel(n,a,r).then(function(n){t({type:e.GET_CONTACT_FROM_PROFILE_SUCCESS,payload:{contact:n}})})["catch"](function(n){t({type:e.GET_CONTACT_FROM_PROFILE_FAILURE,payload:n})})}},updateMyryanairCard:function(t,n){return function(a){return a({type:e.UPDATE_MYRYANAIR_CARDS_START}),i.updateCreditCard(t,n).then(function(t){var n=t.data;a({type:e.UPDATE_MYRYANAIR_CARDS_SUCCESS,payload:n})})["catch"](function(t){a({type:e.UPDATE_MYRYANAIR_CARDS_FAILURE,payload:t})})}},updateDccOffer:function(t){return function(n){return n({type:e.UPDATE_DCC_OFFER_START}),y.update(t).then(function(t){var a=t.data,r=babelHelpers["extends"]({},a,{applied:a.applicable});y.set(r),n({type:e.UPDATE_DCC_OFFER_SUCCESS,payload:{dcc:r,dccOfferApplied:r.applicable}})})["catch"](function(){n(B.resetDccOffer())})}},updateCurrencyConversionOffer:function(){return function(t,n){t({type:e.UPDATE_CURRENCY_CONVERSION_OFFER_START});var a=n(),r=R.path(["selectedPaymentMethod","name"],a.payment),o=R.path(["anonymousCard","cardNumber"],a.payment),d=R.path(["anonymousCard","cardType","code"],a.payment),i=R.path(["selectedCard","id"],a.payment),c=I.getCurrentUser().surrogateId,u={paymentMethod:r,anonymousCardNumber:o,anonymousCardType:d,selectedCardId:i,customerId:c};return E.updateOffer(u).then(function(n){var a=n.data;if(a){var r=babelHelpers["extends"]({},a,{applicable:E.isOutcomeAnOffer(a),conversionType:E.getConversionType(a)});t({type:e.UPDATE_CURRENCY_CONVERSION_OFFER_SUCCESS,payload:{currencyConversionOffer:r,currencyConversionOfferApplied:r.applicable,currencyConversionOfferRequested:!1,CurrencyConversionId:a.id}}),t(a.jwt&&a.deviceDataCollectionUrl&&a.dfReferenceId?b.startDataCollectionProcess(a):b.reset())}else t({type:e.UPDATE_CURRENCY_CONVERSION_OFFER_FAILURE,payload:a})})["catch"](function(n){t({type:e.UPDATE_CURRENCY_CONVERSION_OFFER_FAILURE,payload:n})})}},resetCurrencyConversionOffer:function(){return function(t){t({type:e.RESET_CURRENCY_CONVERSION_OFFER})}},setConversionCurrencyCode:function(t){return function(n){n({type:e.SET_CONVERSION_CURRENCY_CODE,payload:t})}},resetConversionCurrencyCode:function(){return function(t){t({type:e.RESET_CONVERSION_CURRENCY_CODE})}},startPayPalPaymentFlow:function(t,n){return function(a){var r=_.paypal;r.checkout.initXO(),a({type:e.REQUEST_PAY_PAL_TOKEN_START}),A.post(S.paypalRedirect,t).then(function(t){a({type:e.REQUEST_PAY_PAL_TOKEN_SUCCESS,payload:t.data.token}),r.checkout.startFlow(R.pathOr(""+r.checkout.urlPrefix+t.data.token,["redirectURI"],t.data))})["catch"](function(t){var o=t.data;a({type:e.REQUEST_PAY_PAL_TOKEN_FAILURE,payload:o}),r.checkout.closeFlow(),n({data:o})})}},initPayPal:function(){return function(t,n){_.paypal&&!n().payment.isPayPalInitialized&&(_.paypalCheckoutReady=function(){var e="GBP"===T.get("vmCurrency")?"UK":"nonUK";_.paypal.checkout.setup(f.merchantId[f.environment][e],{environment:f.environment,button:""})},t({type:e.PAY_PAL_INITIALIZED}))}},clearAll:function(){return{type:e.CLEAR_ALL}},selectIdealBank:function(t){return{type:e.SELECT_IDEAL_BANK,payload:t}},getIdealBanks:function(){return function(t){t({type:e.GET_IDEAL_BANKS_START}),A.get(S.idealBanks).then(function(n){var a=n.data;t({type:e.GET_IDEAL_BANKS_SUCCESS,payload:a})})["catch"](function(n){var a=n.data;t({type:e.GET_BOOKING_MODEL_FAILURE,payload:a})})}},updateSepaForm:function(t){return{type:e.UPDATE_SEPA_FORM,payload:t}},resetSepaForm:function(){return{type:e.RESET_SEPA_FORM}},toggleVatDetails:function(){return{type:e.TOGGLE_VAT_DETAILS}},updateVatDetails:function(t){return{type:e.UPDATE_VAT_DETAILS,payload:t}},setBillingAddressAsVatDetailsAddress:function(t){return{type:e.SET_BILLING_ADDRESS_AS_VAT_FORM_ADDRESS,payload:t}},updateLeadDriver:function(t){return{type:e.UPDATE_LEAD_DRIVER,payload:t}},resetPaymentState:function(){return{type:e.RESET}},setAirMaltaPrePayment:function(t){return function(n){return n({type:e.SET_AIR_MALTA_PRE_PAYMENT_START}),A.post(N.prePayment,t).then(function(t){return n({type:e.SET_AIR_MALTA_PRE_PAYMENT_SUCCESS,payload:t.data}),t.data})["catch"](function(t){return n({type:e.SET_AIR_MALTA_PRE_PAYMENT_ERROR,payload:t.status}),t})}},setInvalidCardId:function(t){return{type:e.SET_INVALID_CARD_ID,payload:t}},setPaymentFeeMsgVisibility:function(t){return{payload:t.isVisible,type:e.SET_PAYMENT_FEE_MSG_VISIBILITY}},toggleSavePayPal:function(t){return{payload:t,type:e.TOGGLE_SAVE_PAY_PAL_TO_MYRYANAIR}},savedPayPalAccountSelected:function(t){return{payload:t,type:e.USE_SAVED_PAY_PAL_ACCOUNT}}};return B}]);
"use strict";angular.module("common").controller("ChallengeFlowCtrl",["$ngRedux",function(n){var o=function(n){return{sca:n.sca}},t=n.connect(o,null)(this);this.$onDestroy=function(){t()}}]);
"use strict";angular.module("common").component("payments",{templateUrl:"partials/payment/components/payment-wrapper.component.html",controller:["$ngRedux","PaymentActions","$state",function(t,n,e){var o=function(t){return{bookingModel:t.bookingModel,smsExtras:t.payment.smsExtras,payment:t.payment}},m={"booking.payment":"/partials/common/payment/components/payment.booking.component.html","booking.active.payment":"/partials/common/payment/components/payment.booking.active.component.html","vouchers.payment":"/partials/common/payment/components/payment.booking.active.component.html","samsonite.payment":"/partials/extras/samsonite/templates/samsonite-payment.html","rooms.payment":"/partials/rooms/component/rooms-payments-microsite.html"};this.determineTemplate=function(){return m[e.current.name]};var a=t.connect(o,n)(this);this.$onInit=function(){this.retrieveSmsFee(),this.retrievePaymentMethods()},this.$onDestroy=function(){a()}}]});
"use strict";angular.module("common").component("payment",{templateUrl:["$attrs",function(e){return e.templateUrl}],controller:["BookingRead","$ngRedux","$log","$scope","$rootScope","ContactDetails","Device","Payments","Address","RezApiConfig","AirlineService","$state","AEMConfig","MarketConfig","PassengerFactory","Session","smoothScroll","$window","$stateParams","DialogManager","CompanionService","SavedTrips","BookingAccommodation","ConfirmationBannerService","PaymentModel","SpecialAssistanceActions","PaymentActions","VoucherActions","Basket","FEATURE_CONFIG","Stations","SpecialAssistanceUtils","VatDetails","FareUpgradeActions","InsuranceActions","FlightExtrasActions","CARD_CODES","$httpParamSerializer","INGENICO_PAYMENT_CONFIG","PAYMENT_TYPES","$document","AIRLINE_CONFIG","Utilities","FlightSearchDataStorage","FlightSearch","CheckinModelSelectors","CheckinFlow","FEE_CODES","FraudNet","PAYMENT_ERRORS","InsuranceUtil","SCAActions","BookingModelActions",function(e,t,a,n,s,o,i,r,c,l,d,m,p,u,g,h,y,f,v,b,C,k,P,$,S,A,M,I,D,E,F,N,T,O,x,B,U,w,H,L,V,_,G,j,q,Y,z,W,J,K,Z,Q,X){var ee=this,te=!1,ae=function(t){return{seats:t.seats,samsoniteModel:t.samsonite,payment:t.payment,bookingModel:t.bookingModel,checkinModel:t.checkin,specialAssistance:t.specialAssistance,showVatDetailsForm:t.payment.showVatDetailsForm,passengersFormDisabled:e.hasVoucher(t.bookingModel)&&(e.isPendingBooking(t.bookingModel)||e.isAvailableBooking(t.bookingModel))||e.getTravelCredits(t.bookingModel).length,eventsAdded:!!e.getEventItems(!1)(t.bookingModel).length,flightExtras:t.flightExtras,insurance:t.insurance,isErasmus:R.pathEq(["erasmus","membership","status"],"VALID",t),loginIsEnforced:R.pathOr(!0,["launchDarkly","my-ryanair-login-is-enforced"],t),isInsuranceAdded:!!R.pipe(e.getInsuranceItems(!1),R.length)(t.bookingModel),launchDarkly:t.launchDarkly,sca:t.sca,paymentAuthenticationError:R.path(["sca","paymentAuthenticationError"],t)}},ne=function(a){var n=D.getTotal(),s=e.getVouchers(a).find(function(e){return"Approved"!==e.model.status}),o=e.getUnsoldProducts(a).length;(n.amt<0||m.is("booking.active.payment")&&!o)&&(s&&t.dispatch(I.remove(s.model.accNum)),m.transition||m.go("booking.active",{confirmation:!1}))},se=m.is("booking.payment")&&R.prop("insurance-on-payment-page",E),oe=function(a,n,s){var o=Z.isInsuranceSupportedByCountry(n,s),i=Z.hasAddedInsurance(n),r=Z.hasSoldInsurance(n),c=R.pipe(e.getHoldFareObjects,R.length)(n),l=e.isHoldFare(n);ee.insuranceExtra=Z.getInsuranceExtra(a);var d=ee.isCrossSellingInsuranceAvailable;ee.isCrossSellingInsuranceAvailable=o&&ee.insuranceExtra&&!i&&!r&&R.not(l)&&R.not(c)&&se,R.isNil(d)||d===ee.isCrossSellingInsuranceAvailable||t.dispatch(M.updateCurrencyConversionOffer())},ie=function(t){var a=t.bookingModel;ee.isCrossSellingInsuranceAvailable&&R.once(function(){var t=e.get("passengers",a);ee.originCountryCode=R.pipe(e.getOriginCityCode,F.getCountryCode.bind(F),R.when(R.identity,R.toUpper))(a),ee.insurancePassengers=e.enumPassengersByType(t),ee.isFamilyDiscountEligible=e.isFamilyDiscountEligible(a),ee.isItalianMarket=R.equals(u.getCountry(),"it")})()},re=function(e){return{providerId:e.providerId,hotelName:e.hotelName,eviivoData:R.pathOr(!1,["roomSelection","items",0,"item","providerData"],e),guestsOptions:{formTitleLabel:"rooms.payment.guests.details",infoMessage:"rooms.payment.guests.info",guestsForm:!0},guests:g.getPassengersFromRoomsModel(e),selection:e.roomSelection}},ce=function(e,t){R.path(e,ee)&&t(R.path(e,ee))},le=function(){var t=m.is("booking.active.checkin.payment")&&R.not(R.prop("enable-paypal-checkin",E))||m.is("booking.active.boarding-pass-payment")||"seats.payment"===ee.$state.seats.currentStep?["MP","DC","IA","PP","TP"]:["MP","DC","TP"];e.getCarhireObject(ee.$state.bookingModel)&&t.push("SD"),ee.$actions.retrievePaymentMethods(t)},de=function(t,a){var n=e.hasCarHire(t);ee.hasCarHire=n,ee.hasGroundTransfer=e.hasGroundTransfer(t);var s=e.hasAccommodation(t),o=s&&!ee.accommodationModel,i=!s&&ee.accommodationModel&&R.pipe(R.prop("currentBooking"),R.isEmpty)(a);return o?ee.accommodationModel=re(a.currentBooking):i&&(ee.accommodationModel=null),function(t){var a={addons:t},o=e.hasCarHire(a);ee.hasCarHire=o,ee.hasGroundTransfer=e.hasGroundTransfer(a);var i=e.hasAccommodation(a),r=n&&!o,c=s&&!i;(c||r)&&(le(),ee.accommodationModel=c?null:ee.accommodationModel)}},me=function(e){var t=R.pipe(R.pluck("model"),R.pluck("code"),R.filter(R.contains(R.__,ee.$state.samsoniteModel.codes)),R.length,R.equals(0))(e);m.is("samsonite.payment")&&t&&b.openConfirm("samsoniteNoBagsDialog",{template:"/partials/extras/samsonite/templates/basket-empty.html"}).then(function(){m.go("samsonite.home")})},pe=R.pipe(angular.copy,g.getPassengersFromBookingModel.bind(g)),ue=function(){ee.formDisabled=!ee.isAuthenticated&&ee.$state.loginIsEnforced&&m.is("booking.payment")},ge=t.connect(ae,[M,x,B])(function(e,t){var a=babelHelpers.slicedToArray(t,3),n=a[0],s=a[1],i=a[2];ne(e.bookingModel),Object.assign(ee,{$state:e,$actions:babelHelpers["extends"]({},n,{insurance:s,flightExtras:i})}),ue(),ce(["$state","bookingModel","addons"],de(ee.$state.bookingModel,P)),ce(["$state","bookingModel","extras"],me),ce(["$state","payment","contact"],function(e){ee.contact=o.getUpdatedContact(ee.contact,e)}),ce(["$state","isErasmus"],function(e){e&&!R.path(["0","name","first"],ee.passengers)&&(ee.passengers=pe(ee.$state.bookingModel))}),R.not(R.isNil(R.path(["flightExtras","extras"],ee.$state)))&&(ee.isCrossSellingInsuranceAvailable||oe(ee.$state.flightExtras.extras,ee.$state.bookingModel,ee.$state.insurance),ie({extras:ee.$state.flightExtras.extras,bookingModel:ee.$state.bookingModel}))}),he=function(e){return e.bookingPaymentForm||e.form};this.showReprintMessage=e.showReprintMessage(this.$state.bookingModel),this.isHeldFare=e.isHoldFare(this.$state.bookingModel),this.showLoginPanel=!(E["mandatory-sign-in"]&&m.is("booking.payment")),this.isSaraValidationEnabled=e.isSaraValidationEnabled(this.$state.bookingModel),this.language=u.getLanguage(),this.specialAssistanceRequired=e.hasUnsoldSpecialAssistance(this.$state.bookingModel),this.domesticCountryCode=R.compose(R.path(["domestic"]),e.getBookingInfo)(this.$state.bookingModel),this.vatDetailsError=null,this.isRedirecting=!1,this.verisign=p.getStaticFilePrefix()+"/resources/img/verisign.png",this.operatedBy=e.getOperator(this.$state.bookingModel),this.operatedBy&&(this.airlineConfig=_.getAirlineConfig(this.operatedBy));var ye=e.hasSpanishDiscount(this.$state.bookingModel),fe=e.getZoneDiscountFor(0,this.$state.bookingModel),ve=R.pathOr("",["pct"],fe),be=ve>=50;this.isPassengersLockedState=function(){return ye&&be},this.isPaymenBtnDisabled=function(){return ee.$state.payment.currencyConversionOfferRequested},this.isPaymentAvailable=function(){return!ee.$state.sca.jwtDataCollectionToken||!ee.$state.sca.dataCollectionProcessing},this.lockedState=function(e){ye=e.value},this.contactDetailsOptions={sendSms:m.is("booking.payment"),carbonOffsetDonationEnabled:!this.operatedBy&&m.is("booking.payment")&&R.pathOr(!1,["carbon-offset-donation-enabled"],E),sendOffers:!0,smsFee:0,nameMinNumberOfChars:2,nameMaxNumberOfChars:32};var Ce=function(){m.is("vouchers.payment")?(angular.extend(ee.contactDetailsOptions,{firstName:!0,firstNameLabel:"vouchers.details.your_name",emailLabel:"vouchers.details.your_email"}),ee.voucherRecipient={}):m.is("samsonite.payment")&&angular.extend(ee.contactDetailsOptions,{firstName:!0,lastName:!0,emailLabel:"trips.samsonite.delivery.email"})};m.is("samsonite.payment")&&(this.onContactDetailsUpdate=this.$actions.updateContactDetails,this.onDeliveryAddressUpdate=this.$actions.updateDeliveryAddress);var ke=function(e){h.removeBasketId(),e.redirectURI&&(f.location.href=e.redirectURI)},Pe=function(n,o){if(504===n.status)return m.go("booking.active",{},{reload:!0}),void t.dispatch(X.refresh("booking.active",!1,!0));if(a.warn(n,o),h.getSessionStorage("ryanair:captcha:token")&&h.removeSessionStorage("ryanair:captcha:token"),n.data.paymentMethodCode===L.PAYPAL&&(ee.payPalValidationErrors=n.data.message.split(",")),418===n.status&&n.data.jwt&&n.data.stepUpUrl)return t.dispatch(Q.startConsumerAuthenticationProcess(n.data)),void b.open("paymentConsumerAuthenticationDialog",{template:"/partials/common/payment/challenge/challenge-flow.html",className:"consumer-authentication-modal",controller:"ChallengeFlowCtrl",controllerAs:"$ctrl",data:{hasHotel:ee.accommodationModel?!!P.getHotelPayload(ee.accommodationModel.guests):!1},closeByEscape:!1,closeByDocument:!1,showClose:!0},function(){ee.isProcessing=!1,t.dispatch(Q.reset())},!1);if(k.setSavedCardId(!1),ee.isProcessing=!1,s.$emit("payment-controller:payment-error"),t.dispatch(A.handleSpecialAssistanceError(n.data)),500===n.status)ee.paymentErrors.payment="InternalServerError";else if(n.data.details)Object.keys(n.data.details).forEach(function(e){if(e)switch(e){case"model.Passengers":ee.paymentErrors.passengers=n.data.details[e].errors.map(function(e){return e.errorMessage});break;case"model.Contact":ee.paymentErrors.contact=n.data.details[e].errors.map(function(e){return e.errorMessage})}});else if(e.isOperatedBy(ee.$state.bookingModel,_.AIRMALTA.airline)){var i=R.path(["data","Details"]),c=function(e){return R.pipe(i,R.prop(e),R.clone)(n)},l=function(e){switch(e){case"Passenger.PassengerDetails":ee.paymentErrors.passengers=c(e)}};R.pipe(i,R.keys,R.forEach(l))(n)}else if(ee.paymentErrors||(ee.paymentErrors={}),ee.paymentErrors.payment=n.data.message,n.data.message===K.paymentNavitaireValidationFailed&&"SD"===R.path(["payment","method","name"],ee.$state)&&ee.resetSepa(),n.data.message===K.sepaPaymentIbanDoesNotMatchMethod&&"SD"===R.path(["payment","method","name"],ee.$state)&&ee.$actions.updateSepaForm({iban:""}),n.data.message!==K.paymentDeclined||"CC"!==R.path(["payment","method","name"],ee.$state)&&"DC"!==R.path(["payment","method","name"],ee.$state)||(ee.$state.payment.resetCard(),r.declinedPayment=!0),n.data.message===K.myRyanairCardRetrievalError&&(t.dispatch(M.setInvalidCardId(ee.$state.payment.selectedCard.id)),t.dispatch(M.retrieveMyryanairCards())),R.pathEq(["data","message"],"SSRLimitBreached",n)){var d={"booking.payment":{area:"pt",callback:function(){var e=G.reverseSearchObjDates(R.pathOr({},["dataStorage",0,"searchObj"],j));q.redirect(e,!0)}},"booking.active.payment":{area:"at",callback:function(){e.isPlusUpgradeAdded(ee.$state.bookingModel)&&t.dispatch(O.removeUpgrade()),m.go("booking.active",{},{location:"replace"})}},"booking.active.checkin.payment":{area:"checkin",callback:function(){e.isPlusUpgradeAdded(ee.$state.bookingModel)&&t.dispatch(O.removeUpgrade()),m.go("booking.active.checkin.extras",{},{location:"replace"})}}},p=m.current.name;b.open("SSRLimitBreached",{template:"/partials/common/components/ssr-failed-payment/ssr-failed-payment.html",closeByEscape:!1,closeByDocument:!1,showClose:!1,data:{area:d[p].area}},void 0,!1).closePromise.then(function(){d[p].callback()})}};this.isSmsChecked=e.hasSms(this.$state.bookingModel),this.isCoDonationChecked=e.hasUnsoldExtraItemsByCode(W.CARBON,this.$state.bookingModel),this.isIspccDonationChecked=e.hasUnsoldExtraItemsByCode(W.ISPCC,this.$state.bookingModel);var $e=function(t){var a=e.getBookingContact(t);return o.fromBookingModel(a,ee.isSmsChecked)},Re=function(e,t){(e||!t)&&(R.isEmpty(R.pathOr([],["contacts"],ee.$state.bookingModel))&&e?(ee.contact=void 0,ee.$actions.getUserProfileContact({sendSms:ee.isSmsChecked,donateCO:ee.isCoDonationChecked,donateISPCC:ee.isIspccDonationChecked})):ee.contact=$e(ee.$state.bookingModel))},Se=function(e,t){r.declinedPayment=!1;var a={IA:l.idealService,PP:l.paypalRedirect,IO:R.contains(window.ENV,["PRODUCTION","OAT"])?H.PRODURL:H.TESTURL};t===L.INGENICO?window.location.href=a.IO+"?"+w(e):r.makeExternalPayment(e,a[t],ke,Pe,angular.noop)},Ae=function(e){return r.makePayment(e,d.getAirlineApiConfig(ee.operatedBy).payment)},Me=function(e){return r.makePayment(e,l.sepaPayment)},Ie=function(e){return r.makePayment(e,l.paypalCheckout)},De=function(e){ee.isAuthenticated=e,ue(),e||n.$evalAsync(function(){ee.$actions.updateBillingAddress(c.getDefaultForCurrentMarket())}),Re(e,ee.contact)},Ee=i.onPhone(function(e){var t=e.matches;ee.isMobile=t}),Fe=i.onLaptop(function(e){var t=e.matches;ee.isLaptop=t});this.passengers=pe(this.$state.bookingModel);var Ne=function(){return h.getAuthenticated()?ee.passengers.some(function(e){return e.saveToCompanion||e.infant&&e.infant.saveToCompanion}):!1},Te=function(){var e=[],t={ADT:"Adult",TEEN:"Teen",CHD:"Child"};ee.passengers.forEach(function(a){a.saveToCompanion&&!a.isSaved&&e.push({firstName:a.name.first,lastName:a.name.last,passengerType:t[a.type],title:{title:a.name.title,type:a.type}}),a.infant&&a.infant.saveToCompanion&&!a.infant.isSaved&&e.push({firstName:a.infant.name.first,lastName:a.infant.name.last,passengerType:"Infant",title:{title:a.infant.name.title,type:a.infant.type},birthDate:new Date(a.infant.dob).getTime()})}),e.length>0&&($.setPassengersSavedToCompanions(0),$.setFailedToSaveCompanions(!1),C.addList(e).then(function(e){e.data.forEach(function(t){var a=ee.passengers.find(function(e){return"Infant"===t.passengerType?e.infant.name.first===t.firstName&&e.infant.name.last===t.lastName:e.name.first===t.firstName&&e.name.last===t.lastName})||{};"Infant"===e.data.passengerType?a.infant.isSaved=!0:a.isSaved=!0}),$.setPassengersSavedToCompanions(e.data.length)})["catch"](function(){$.setFailedToSaveCompanions(!0)}))};this.specialAssistanceRequiredChanged=function(e){ee.specialAssistanceRequired=e},this.onLeadDriverUpdate=function(e){var t=e.driver;t&&ee.$actions.updateLeadDriver(t)};var Oe=function(){var e={};ee.$state.payment.showVatDetailsForm&&(e.vatDetails=T.getPayload(ee.$state.payment.vatDetails)),ee.$state.payment.ForeignCurrencyCode&&(e.ForeignCurrencyCode=ee.$state.payment.ForeignCurrencyCode,e.CurrencyConversionId=ee.$state.payment.CurrencyConversionId);var t=g.getPaymentFormPayload(ee.passengers);if(m.is("booking.payment")&&ee.specialAssistanceRequired){var a=N.getPassengersSpecialAssistancePayload(R.path(["passengers"],ee.$state.bookingModel),ee.$state.specialAssistance);t=t.map(N.renamePaxNum).map(function(e,t){return R.merge(a[t],e)})}switch(m.current.name){case"booking.active.checkin":case"booking.payment":e.contact=o.getBookingPayload(ee.contact),e.passengers=t;break;case"vouchers.payment":e.Voucher=angular.extend({FirstName:ee.voucherRecipient.firstName,LastName:ee.voucherRecipient.lastName,ToEmail:ee.voucherRecipient.emailAddress},o.getVouchersPayload(ee.contact));break;case"samsonite.payment":e.Contact=babelHelpers["extends"]({},o.getSamsonitePayload(ee.contact),c.getAddressPayloadForSamsonite(ee.$state.payment.deliveryAddress));break;case"booking.active.payment":ee.accommodationModel&&(e.contact=o.getBookingPayload(ee.contact))}if(ee.$state.payment.leadDriver&&(e.leadDriver=ee.$state.payment.leadDriver),ee.hasGroundTransfer){var n=ee.passengers[0];e.primaryPassenger={first:n.name.first,last:n.name.last}}return ee.accommodationModel&&(e.hotel=P.getHotelPayload(ee.accommodationModel.guests)),e.ACSWindowSize=5,e},xe=function(){Ne()?Te():($.setPassengersSavedToCompanions(0),$.setFailedToSaveCompanions(!1))};this.processPayment=function(){if(!ee.isProcessing){if(i.isMobile()&&he(n).$setSubmitted(),he(n).$invalid){s.$emit("payment-controller:payment-error");var a=document.querySelector('form[name="bookingPaymentForm"] .ng-invalid');return void(a&&y(a,{offset:70,containerId:ee.containerId}))}xe(),ee.paymentErrors={};var o=Oe(),r=void 0;ee.isProcessing=!0;var c=e.getTravelCredits(ee.$state.bookingModel).length||e.getVouchers(ee.$state.bookingModel).length,l=function(){return c&&!E["currency-converter"]?ee.$actions.executePaymentWithDccUpdate(o,Ae,Pe):ee.$actions.executePayment(o,Ae,Pe)},d=function(){return c?ee.$actions.executePaymentWithDccUpdate(babelHelpers["extends"]({},S.getSepaPayload(ee.$state.payment),o),Me,Pe):ee.$actions.executePayment(babelHelpers["extends"]({},S.getSepaPayload(ee.$state.payment),o),Me,Pe)},m=t.getState(),p=Y.getSelectedPassengers(m),u=Y.getSelectedJourneysToCheckin(m),g=z.getCheckinPayload(m.bookingModel,p,u),f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.reduce(function(e,t){return""+e+(e?";":"")+t.segmentNum+"|"+t.journeyNum+"|"+t.paxNum},"")},v=function(){var e=R.pathOr(!1,["savePayPal"],ee.$state.payment),t=R.path(["payPalId"],ee.$state.payment),a=void 0;if((e||"false"!==t)&&E["paypal-billing-agreement-enabled"]&&(te=!0,a=G.uuid().replace(/[-]/g,""),J.injectConfig(a),J.loadBeaconJS()),!ee.$state.payment.retrievedPayPal.length||"false"===t){var n=Boolean(ee.$state.payment.ForeignCurrencyCode),s=f(g);return ee.$actions.startPayPalPaymentFlow(babelHelpers["extends"]({},S.getPypalPayload(n,s,e,a),o,{savePayPal:e}),Pe)}return ee.$actions.executePayment(babelHelpers["extends"]({},o,{payPalId:ee.$state.payment.payPalId,correlationId:a,customerId:h.getClientId()}),Ie,Pe)},b=void 0;switch(ee.$state.payment.selectedPaymentMethod.name){case L.INGENICO:b=S.getAirMaltaPayload({payment:ee.$state.payment,curr:e.getBookingInfo(ee.$state.bookingModel).curr,amount:e.getBookingInfo(ee.$state.bookingModel).balanceDue,contact:o.contact,passengers:o.passengers,journeys:ee.$state.bookingModel.journeys}),ee.$actions.setAirMaltaPrePayment(b.prePaymentMethod).then(function(e){return e.status?void Pe(e):void Se(babelHelpers["extends"]({},b.ingenicoPayment,{SHASIGN:R.path(["hash"],e),ORDERID:R.path(["orderId"],e),AITINUM:R.path(["pnr"],e)}),L.INGENICO)});break;case L.DEBIT_CARD:case L.CREDIT_CARD:r=ee.$state.payment.anonymousCard?S.getCreditCardPayload(babelHelpers["extends"]({},ee.$state.payment.anonymousCard,{securityCode:ee.$state.payment.securityCode,billingAddress:ee.$state.payment.billingAddress})):S.getSavedCardPayload(babelHelpers["extends"]({},ee.$state.payment.selectedCard,{securityCode:ee.$state.payment.securityCode,billingAddress:ee.$state.payment.billingAddress})),o=R.merge(o,r),l();break;case L.SEPA:d();break;case L.IDEAL:Se(babelHelpers["extends"]({},S.getIdealPayload(ee.$state.payment),{Contact:o.contact,Passengers:o.passengers,VatDetails:o.vatDetails}),L.IDEAL);break;case L.PAYPAL:v()}}},this.onPassengersValidated=function(){var e=document.getElementsByClassName("after-pax-validation-step")[0];e&&y(e,{offset:70})},this.toggleSms=function(e){ee.$actions.toggleSms(e).then(function(){return t.dispatch(M.updateCurrencyConversionOffer())})},this.confirmSelectedInsurance=function(){ee.$actions.insurance.confirmSelectedInsurance().then(function(){return t.dispatch(M.updateCurrencyConversionOffer())})},this.removeAllInsurance=function(){ee.$actions.insurance.removeAllInsurance().then(function(){return t.dispatch(M.updateCurrencyConversionOffer())})};var Be=function(){(v||{}).paymentFailure&&Pe(v.paymentFailure)};this.$onInit=function(){this.isInsuranceActiveChoice=Z.isInsuranceActiveChoiceEnabledOnPayment(this.$state.launchDarkly),this.isInsuranceAdded=!1,this.payPalValidationErrors=null;var t=V[0].querySelector('form[name="bookingPaymentForm"]');t&&(t.submit=null),le(),e.isOperatedBy(this.$state.bookingModel,_.AIRMALTA.airline)||this.$actions.retrieveMyryanairCards(),Ce(),this.$actions.retrieveSmsFee(),R.isNil(R.path(["flightExtras","extras"],this.$state))&&se&&this.$actions.flightExtras.getExtras([],{Parking:28}),Be(),this.isPotentialHoldFare=e.isPotentialHoldFare(this.$state.bookingModel),this.productCodePassedFromBoardingPass=R.path(["productCodePassedFromBoardingPass"],this.$state.checkinModel),this.showProductReprintMessage=this.productCodePassedFromBoardingPass!==U.GRTANSFER},this.$onChanges=function(){};var Ue=s.$on("payment-controller:process-payment",function(){he(n).$setSubmitted(),ee.processPayment()});De(h.get("user:details")),n.$on("$stateChangeSuccess",function(){Be()}),h.subscribe("user:details",De),this.handleVatFormUpdate=function(e){e.checkBox?ee.$actions.setBillingAddressAsVatDetailsAddress(e.checkBox.useDefaultAddress):ee.$actions.updateVatDetails(e)},this.getSubmitButtonTranslationKey=function(){if(ee.isRedirecting)return"common.components.payment_forms.redirect-message";var e=t.getState(),a=e.bookingModel,n=e.payment,s=e.samsonite;return D.getTotalPriceToPay({bookingModel:a,payment:n,samsonite:s},D.getTotalPriceToPayConfigurationObject(!1))?"common.components.payment_forms.pay_now":"common.components.payment_forms.reserve"},this.makeInsuranceChoice=function(){var e=he(n);e.insurance=!0,ee.$actions.insurance.makeChoice()},this.isPayPalSelected=function(){return R.pathEq(["payment","selectedPaymentMethod","name"],L.PAYPAL,ee.$state)},this.$onDestroy=function(){Ue(),this.$actions.resetPaymentState(),ge(),Ee(),Fe(),h.unsubscribe("user:details",De),h.getSessionStorage("ryanair:captcha:token")&&h.removeSessionStorage("ryanair:captcha:token"),te&&(J.removeScript("fconfig"),J.removeScript("beacon"))}}]});
"use strict";
"use strict";angular.module("common").factory("PaymentReducer",["PAYMENT_ACTION_TYPES","Address",function(e,s){var r=s.getDefaultForCurrentMarket(),a={availablePaymentOptionFees:void 0,isProcessing:!1,paymentMade:!1,isLoading:!1,dcc:void 0,dccOfferApplied:void 0,smsExtras:void 0,declinedPayment:!1,voucherLocked:!1,selectedPaymentMethod:void 0,selectedCardType:void 0,selectedCard:void 0,anonymousCard:void 0,isAnonymousPayment:!0,paymentMethods:void 0,billingAddress:r,deliveryAddress:void 0,excludedPaymentMethodsOptions:void 0,cardCache:{},lastAdded:void 0,maxCcLimitReached:!1,userContact:void 0,contact:void 0,paypalToken:void 0,error:void 0,isPayPalInitialized:!1,ideal:void 0,idealBanks:void 0,showVatDetailsForm:!1,vatDetails:void 0,useBillingAddressAsVatDetailsAddress:!1,leadDriver:void 0,securityCode:void 0,sepa:{code:"SD",accountName:"",bic:"",iban:""},currencyConversionOffer:{quotes:[]},coExtras:void 0,currencyConversionOfferRequested:!1,CurrencyConversionId:"",ingenico:void 0,isFeeMsgVisible:!0,savePayPal:!0,payPalId:void 0,retrievedPayPal:[],retrievedUserCards:null,invalidCardsIds:[],isToggleCoProcessing:!1,isToggleIspccProcessing:!1},d=R.path(["vatDetails","address"]);return function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,n=arguments[1],t=n.type,l=n.payload;switch(t){case e.RETRIEVE_METHODS_SUCCESS:case e.UPDATE_DCC_OFFER_SUCCESS:case e.UPDATE_CURRENCY_CONVERSION_OFFER_SUCCESS:case e.SET_SELECTED_CARD_TYPE:case e.RETRIEVE_MYRYANAIR_CARDS_SUCCESS:case e.SET_SELECTED_CARD:case e.PROCESS_PAYMENT_START:case e.UPDATE_ANONYMOUS_CARD:case e.RESET_ANONYMOUS_CARD:case e.GET_CONTACT_FROM_PROFILE_SUCCESS:return babelHelpers["extends"]({},s,l);case e.SET_INVALID_CARD_ID:return babelHelpers["extends"]({},s,{invalidCardsIds:[].concat(babelHelpers.toConsumableArray(s.invalidCardsIds),[l])});case e.SET_ANONYMOUS_CARD:return babelHelpers["extends"]({},s,{retrievedUserCards:a.retrievedUserCards,selectedCard:a.selectedCard,isAnonymousPayment:a.isAnonymousPayment,anonymousCard:a.anonymousCard});case e.UNSET_SELECTED_CARD:return babelHelpers["extends"]({},s,{selectedCard:a.selectedCard});case e.PROCESS_PAYMENT_SUCCESS:return babelHelpers["extends"]({},s,{paymentMade:!0,isProcessing:!1});case e.SET_AIR_MALTA_PRE_PAYMENT_START:case e.REQUEST_PAY_PAL_TOKEN_START:case e.GET_SAVED_PAY_PAL_ACCOUNT_START:case e.FETCH_SMS_FEE_START:return babelHelpers["extends"]({},s,{isLoading:!0});case e.FETCH_SMS_FEE_SUCCESS:return babelHelpers["extends"]({},s,{isLoading:!1,smsExtras:l});case e.FETCH_CO_FEE_SUCCESS:return babelHelpers["extends"]({},s,{isLoading:!1,coExtras:l});case e.FETCH_ISPCC_FEE_SUCCESS:return babelHelpers["extends"]({},s,{isLoading:!1,ispccExtras:l});case e.TOGGLE_ISPCC_START:return babelHelpers["extends"]({},s,{isToggleIspccProcessing:!0});case e.TOGGLE_CO_START:return babelHelpers["extends"]({},s,{isToggleCoProcessing:!0});case e.TOGGLE_ISPCC_SUCCESS:case e.TOGGLE_ISPCC_FAILURE:return babelHelpers["extends"]({},s,{isToggleIspccProcessing:!1});case e.TOGGLE_CO_SUCCESS:case e.TOGGLE_CO_FAILURE:return babelHelpers["extends"]({},s,{isToggleCoProcessing:!1});case e.SET_EXCLUDED_METHODS_OPTIONS:return babelHelpers["extends"]({},s,{excludedPaymentMethodsOptions:l});case e.EXCLUDE_PAYMENT_METHOD_OPTIONS:return babelHelpers["extends"]({},s,{paymentMethods:babelHelpers["extends"]({},s.paymentMethods,{options:l})});case e.UNSET_SELECTED_PAYMENT_METHOD:return babelHelpers["extends"]({},s,{selectedPaymentMethod:void 0});case e.SET_SELECTED_PAYMENT_METHOD:return babelHelpers["extends"]({},s,{selectedPaymentMethod:l});case e.UNSET_SELECTED_CARD_TYPE:return babelHelpers["extends"]({},s,{selectedCardType:void 0,dcc:void 0});case e.SET_ANONYMOUS_PAYMENT:return babelHelpers["extends"]({},s,l,{billingAddress:r});case e.UPDATE_CHACHED_CARD:return babelHelpers["extends"]({},s,{cardCache:babelHelpers["extends"]({},s.cardCache,{payload:l})});case e.PROCESS_PAYMENT_FAILURE:return babelHelpers["extends"]({},s,{isProcessing:!1,declinedPayment:!0,error:l});case e.UPDATE_CURRENCY_CONVERSION_OFFER_START:return babelHelpers["extends"]({},s,{currencyConversionOfferRequested:!0});case e.UPDATE_CURRENCY_CONVERSION_OFFER_FAILURE:return babelHelpers["extends"]({},s,{currencyConversionOffer:void 0,currencyConversionOfferApplied:!1,currencyConversionOfferRequested:!1});case e.RESET_CURRENCY_CONVERSION_OFFER:return babelHelpers["extends"]({},s,{currencyConversionOffer:void 0,currencyConversionOfferApplied:!1});case e.SET_CONVERSION_CURRENCY_CODE:return babelHelpers["extends"]({},s,{ForeignCurrencyCode:l});case e.RESET_CONVERSION_CURRENCY_CODE:return babelHelpers["extends"]({},s,{ForeignCurrencyCode:null});case e.RESET_DCC_OFFER:return babelHelpers["extends"]({},s,{dcc:void 0,dccOfferApplied:!1});case e.TOGGLE_DCC_OFFER:return babelHelpers["extends"]({},s,{dccOfferApplied:!s.dccOfferApplied});case e.UPDATE_CVV:return babelHelpers["extends"]({},s,{securityCode:l.securityCode});case e.REQUEST_PAY_PAL_TOKEN_SUCCESS:return babelHelpers["extends"]({},s,{isLoading:!1,paypalToken:l});case e.SET_AIR_MALTA_PRE_PAYMENT_ERROR:case e.GET_IDEAL_BANKS_FAILURE:case e.GET_SAVED_PAY_PAL_ACCOUNT_ERROR:case e.REQUEST_PAY_PAL_TOKEN_FAILURE:return babelHelpers["extends"]({},s,{isLoading:!1,error:l});case e.PAY_PAL_INITIALIZED:return babelHelpers["extends"]({},s,{isPayPalInitialized:!0});case e.CLEAR_ALL:return a;case e.SELECT_IDEAL_BANK:return babelHelpers["extends"]({},s,{ideal:l});case e.GET_IDEAL_BANKS_SUCCESS:return babelHelpers["extends"]({},s,{idealBanks:l});case e.UPDATE_SEPA_FORM:return babelHelpers["extends"]({},s,{sepa:babelHelpers["extends"]({},s.sepa,l)});case e.RESET_SEPA_FORM:return babelHelpers["extends"]({},s,{sepa:a.sepa});case e.UPDATE_CONTACT_DETAILS:return babelHelpers["extends"]({},s,{contact:l});case e.UPDATE_MYRYANAIR_CARDS_START:case e.UPDATE_MYRYANAIR_CARDS_SUCCESS:case e.UPDATE_MYRYANAIR_CARDS_FAILURE:return babelHelpers["extends"]({},s);case e.MAX_CC_LIMIT_REACHED:return babelHelpers["extends"]({},s,{maxCcLimitReached:!0});case e.UPDATE_DELIVERY_ADDRESS:return babelHelpers["extends"]({},s,{deliveryAddress:babelHelpers["extends"]({},s.deliveryAddress,l.address)});case e.TOGGLE_VAT_DETAILS:return babelHelpers["extends"]({},s,{showVatDetailsForm:!s.showVatDetailsForm});case e.UPDATE_VAT_DETAILS:var E=R.pathOr({},["address"],l),_=R.pathOr({},["vatDetails","address"],s);return babelHelpers["extends"]({},s,{vatDetails:babelHelpers["extends"]({},s.vatDetails,l,{address:babelHelpers["extends"]({},_,E)}),useBillingAddressAsVatDetailsAddress:l.address?!1:s.useBillingAddressAsVatDetailsAddress});case e.SET_BILLING_ADDRESS_AS_VAT_FORM_ADDRESS:return babelHelpers["extends"]({},s,{vatDetails:babelHelpers["extends"]({},s.vatDetails,{address:l?R.clone(s.billingAddress):d(s)}),useBillingAddressAsVatDetailsAddress:l});case e.UPDATE_BILLING_ADDRESS:return babelHelpers["extends"]({},s,{billingAddress:babelHelpers["extends"]({},s.billingAddress,l),useBillingAddressAsVatDetailsAddress:!1});case e.GET_AVAILABLE_PAYMENT_OPTION_FEES_SUCCESS:return babelHelpers["extends"]({},s,{availablePaymentOptionFees:l.availablePaymentOptionFees});case e.UPDATE_LEAD_DRIVER:return babelHelpers["extends"]({},s,{leadDriver:l});case e.SET_AIR_MALTA_PRE_PAYMENT_SUCCESS:return babelHelpers["extends"]({},s,{ingenico:l,isLoading:!1});case e.SET_PAYMENT_FEE_MSG_VISIBILITY:return babelHelpers["extends"]({},s,{isFeeMsgVisible:l});case e.TOGGLE_SAVE_PAY_PAL_TO_MYRYANAIR:return babelHelpers["extends"]({},s,{savePayPal:l});case e.GET_SAVED_PAY_PAL_ACCOUNT_SUCCESS:return babelHelpers["extends"]({},s,{isLoading:!1,retrievedPayPal:l.data});case e.USE_SAVED_PAY_PAL_ACCOUNT:return babelHelpers["extends"]({},s,{payPalId:l});case e.RESET:return a;default:return s}}}]);
"use strict";!function(e){var t=function(t){function i(e,n,a,s,r,o,u,l){babelHelpers.classCallCheck(this,i);var d=babelHelpers.possibleConstructorReturn(this,t.call(this));return Object.assign(d,{$q:e,$http:n,Utilities:a,AvailabilityParams:s,RezApiConfig:r,AirlineService:o,Currency:u,AIRLINE_CONFIG:l}),d.preExecuteCallbacks=[],d.clearCache(),d.running=!1,d.nextReq=null,d.deferred=e.defer(),d}return i.$inject=["$q","$http","Utilities","AvailabilityParams","RezApiConfig","AirlineService","Currency","AIRLINE_CONFIG"],babelHelpers.inherits(i,t),i.prototype.clearCache=function(){this.set("outboundLegs",[]),this.set("inboundLegs",[]),this.set("inboundTrip",{}),this.set("running",!1),this.set("availabilityData",{trips:[{origin:"DUB",destination:"STN",dates:[]},{origin:"STN",destination:"DUB",dates:[]}]}),this.set("requestCount",0)},i.prototype.registerPreExecuteCallback=function(e){this.preExecuteCallbacks.push(e)},i.prototype.deregisterPreExecuteCallback=function(e){this.preExecuteCallbacks=this.preExecuteCallbacks.filter(function(t){return t!==e})},i.prototype.resetRequests=function(){this.deferred=this.$q.defer()},i.prototype.execute=function(t,i){var n=this;this.deferred&&1!==this.deferred.promise.$$state.status||(this.deferred=this.$q.defer());var a={cache:!0},s=e.copy(t),r=function(e,t){return moment(t.dateOut).isAfter(e.dateOut,"day")?-1:moment(e.dateOut).isAfter(t.dateOut,"day")?1:0},o=function(e,t){return[].concat(babelHelpers.toConsumableArray(e),babelHelpers.toConsumableArray(t)).sort(r).filter(function(e,t,i){return t===i.length-1||e.dateOut!==i[t+1].dateOut})},u=this.AirlineService.getAirlineApiConfig(t.operatedBy).availability,l=void 0;e.forEach(this.preExecuteCallbacks,function(e){e(s,i)});var d=e.extend({},a,{params:new this.AvailabilityParams(s,this.get("availabilityData"),this.get("requestCount"))});return(d.params||{}).ChangeFlight&&(u=this.RezApiConfig.changeFlight),R.equals(R.path(["params","OperatedBy"],d),this.AIRLINE_CONFIG.AIRMALTA.airline)&&(d.params.exists=!1),this.running||d.params.exists?(this.nextReq={searchParams:t,clearCache:i},this.running||this.deferred.resolve(this.model)):(this.running=!0,this.set("running",!0),this.$http.get(u,d).then(function(e){n.running=!1,n.set("running",!1),R.propEq("operatedBy","Air Europa",t)&&n.clearCache(),l=e.data,n.set("requestCount",n.get("requestCount")+1),n.Currency.set("vmCurrency",l.currency),n.set("outboundLegs",o(n.get("outboundLegs"),l.trips[0].dates)),l.trips[0].dates=n.get("outboundLegs"),n.set("outboundTrip",l.trips[0]),l.trips[1]&&(n.set("inboundTrip",l.trips[1]),n.set("inboundLegs",o(n.get("inboundLegs"),l.trips[1].dates)),l.trips[1].dates=n.get("inboundLegs"),l.trips[1]=n.get("inboundTrip")),n.set("availabilityData",l),n.deferred.resolve(n.model),n.nextReq=null})["catch"](function(e){n.deferred.reject(e),n.running=!1,n.set("running",!1),n.nextReq&&n.execute(n.nextReq.searchParams,n.nextReq.clearCache),n.nextReq=null})),this.deferred.promise},i}(ObservableService);t.$inject=["$q","$http","Utilities","AvailabilityParams","RezApiConfig","AirlineService","Currency","AIRLINE_CONFIG"],e.module("common").service("Availability",t).factory("AvailabilityParams",["Dates","$state","$ngRedux",function(t,i,n){var a=function(e,i){return i&&t.parseISO(i).isBefore(t.parseISO(e),"days")},s=function(e,i){return t.formatISO(t.parseISO(e).subtract(i,"days"))},r=function(e){return"ERASMUSX"!==e.promoCode&&!(e.connectingAirport&&e.isConnectedFlight===!1)};return function(o,u,l){var d=this;if(e.extend(this,{Origin:o.origin,Destination:o.dest,DateOut:t.formatISO(o.outbound.flightDate),FlexDaysOut:o.outbound.flexibleDays,RoundTrip:o.isReturn,OperatedBy:o.operatedBy,ToUs:"AGREED",Disc:R.pathOr(o.discount,["discounts","selected","value"],o),IncludeConnectingFlights:r(o),promoCode:o.promoCode},o.passengers),o.isReturn&&(this.DateIn=t.formatISO(o.inbound.flightDate),this.FlexDaysIn=o.inbound.flexibleDays),o.operatedBy){var h=moment().startOf("day"),c=o.outbound.flightDate.diff(h,"days"),f=o.inbound.flightDate.diff(h,"days"),p=R.path(["outbound","flexibleDays"],o),b=R.path(["inbound","flexibleDays"],o),g=p>=c?c:p,y=b>=f?f:b,D=2*p-g,v=2*b-y;this.FlexDaysBeforeOut=g,this.FlexDaysOut=D,o.isReturn&&(this.FlexDaysBeforeIn=y,this.FlexDaysIn=v);var C=Math.abs(t.parseISO(this.DateOut).diff(o.outbound.firstVisibleDate,"days")),O=Math.abs(t.parseISO(this.DateIn).diff(o.inbound.firstVisibleDate,"days")),m=o.outbound.firstVisibleDate&&0===o.outbound.firstVisibleDate.diff(h,"days"),x=o.inbound.firstVisibleDate&&0===o.inbound.firstVisibleDate.diff(h,"days"),I=l&&m||!m,A=l&&x||!x,F=C=u&&u>=s&&(c=new Date(u),c.setDate(u.getDate()+h),n=r>=c,r.setDate(r.getDate()+(o.operatedBy?-1:1)),f=r.toISOString().replace(/T.*/,"")),{cached:n,newDate:f}});if(this.OperatedBy||(this.DateOut=$[0].newDate||this.DateOut,this.DateIn=($[1]||{}).newDate||this.DateIn),!o.operatedBy&&a(this.DateOut,this.DateIn)&&(this.DateOut=s(this.DateIn,this.FlexDaysOut)),this.exists=$.every(function(e){return e.cached}),o.ChangeFlight){if("Inbound"===o.ChangeFlight){var N=this.Destination;this.Destination=this.Origin,this.Origin=N}this.ChangeFlight=o.ChangeFlight,this.RoundTrip="RoundTrip"===this.ChangeFlight,this.FlexDaysOut=2,this.FlexDaysBeforeOut=2,this.RoundTrip&&(this.FlexDaysIn=2,this.FlexDaysBeforeIn=2)}}}]).factory("MonthlyAvailability",["$http","$q","RezApiConfig",function(t,i,n){function a(a){var s=i.defer(),o=e.copy(r);return e.extend(o,a),t.get(n.availabilityMonthly,{params:o,timeout:s.promise}).then(function(e){s.resolve(e.data)},function(e){s.reject(e)}),s}function s(a){var s=e.copy(r);return e.extend(s,a),i(function(e,i){t.get(n.availabilityMonthly,{params:s}).then(function(t){e(t.data)},function(e){i(e)})})}var r={Origin:"DUB",Destination:"STN",ADT:1,CHD:0,TEEN:0,IsBusiness:!1,IsRoundTrip:!1};return{get:s,deferredGet:a}}]).factory("WeeklyAvailability",["$http","$q","RezApiConfig",function(t,i,n){function a(a){var r=i.defer(),o=e.copy(s);return e.extend(o,a),t.get(n.availabilityWeekly,{params:o,timeout:r.promise}).then(function(e){r.resolve(e.data)},function(e){r.reject(e)}),r}var s={Origin:"DUB",Destination:"STN",ADT:1,CHD:0,TEEN:0,IsBusiness:!1};return{deferredGet:a}}])}(angular);
"use strict";angular.module("common").service("FareOptions",["$q","$http","AirlineService","FlightSearch","PRODUCT_FARE_TYPES",function(e,n,t,r,o){var u=[];this.clearCache=function(){u=[]},this.fareRefundFootnote=function(e){return e===o.BUSINESS?"trips.basket.group.booking.journey.footnote.business_plus":"trips.basket.group.booking.journey.footnote.standard"},this.getFareOptions=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments[2],a=function(e){return function(n){return n.flightKey===e}},g=function(e){u.length>10?u=[].concat(babelHelpers.toConsumableArray(u.slice(1)),[e]):u.push(e)},f=u.find(a(o.flightKey));if(f&&!s)return e.when(f);var l=void 0;l="inbound"===o.type?{outboundFlightKey:i.flightKey,outboundFareKey:i.fareKey,inboundFlightKey:o.flightKey,inboundFareKey:o.fareKey}:{outboundFlightKey:o.flightKey,outboundFareKey:o.fareKey},o.passengers&&(l.AdultsCount=o.passengers.ADT,l.TeensCount=o.passengers.TEEN,l.ChildrenCount=o.passengers.CHD,l.InfantCount=o.passengers.INF);var h=t.getAirlineApiConfig(r.model.operatedBy).fareOptions;return n.get(h,{params:l}).then(function(e){var n=e.data,t="inbound"===o.type?1:0,r=n.filter(function(e){return e.journeyNum===t});return r.flightKey=o.flightKey,g(r),r})}}]);
"use strict";var PassengerName=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"";babelHelpers.classCallCheck(this,t),Object.assign(this,{first:e,last:s,middle:n,suffix:r,title:i})}return t.prototype.isEmpty=function(){return!(this.title||this.first||this.last||this.middle||this.suffix)},t.prototype.equals=function(t){var e=this;return["first","last","middle","suffix","title"].every(function(s){return e[s]===t[s]})},t.prototype.clone=function(){return new t(this.first,this.last,this.middle,this.suffix,this.title)},t.prototype.isValid=function(){return this.first&&this.last},t.factoryImpl=function(){return t},t}();angular.module("common").factory("PassengerName",PassengerName.factoryImpl);
"use strict";angular.module("logging",["toaster"]).constant("LOGGING_CONFIG",{TOASTER_ENABLED:!1,ENABLED:!1}).factory("loggingFactory",["$log","toaster","LOGGING_CONFIG",function(n,r,o){function u(u){function e(){}function t(n){return E+": "+n}function a(n,o,u){N.TOASTER_ENABLED&&r.pop(n,u,o)}function c(r,o,u){var e=t(r);a("debug",e,u),n.debug("Debug: "+e)}function i(r,o,u){var e=t(r);a("error",e,o,u),n.error("Error: "+e)}function g(r,o,u){var e=t(r);a("info",e,u),n.info("Info: "+e)}function f(r,o,u){var e=t(r);a("success",e,u),n.info("Success: "+e)}function s(r,o,u){var e=t(r);a("warning",e,o,u),n.warn("Warning: "+e,o)}var E=u||"",N={ENABLED:!0,TOASTER_ENABLED:!0};angular.extend(N,o);var A={error:i,info:g,success:f,warning:s,debug:c};return N.ENABLED||angular.extend(A,{error:e,info:e,success:e,warning:e,debug:e}),A}var e={getLogger:function(n){return new u(n)}};return e}]);
"use strict";angular.module("notification",["toaster"]).factory("NotificationService",["$filter","toaster","loggingFactory",function(t,i,o){function e(t,o,e,n){var l=r(o),c=r(e);i.pop(t,l,c,n),a.debug("Showing notification with following parameters: ",{type:t,title:o,text:e,timeout:n})}function n(t,o,e,n){i.pop(t,o,e,n),a.debug("Showing notification with following parameters: ",{type:t,title:o,text:e,timeout:n})}var a=o.getLogger("NotificationService"),r=t("translate"),l={alert:e,alertNoTranslation:n};return l}]);
"use strict";angular.module("openservices",["common.home"]);
"use strict";angular.module("openservices").filter("countryCallingCode",["CountryManager",function(n){var e=[];return n.getCountries().then(function(n){e=n}),function(n){return R.pipe(R.find(R.whereEq({countryCode:n})),R.propOr(n,"countryCallingCode"))(e)}}]);
"use strict";angular.module("openservices").factory("CountryManager",["$http","$q","Country","API_PATH",function(e,r,n,t){var o=void 0,u=function(e){var r=o;return r?r.setData(e):(r=new n(e),o=r),r},a=function(r){return e.get(t+"/open/countries",{cache:!0}).then(function(e){var n=u(e.data),t=n.countries;r.resolve(t)},function(){r.reject()})},c=function(){var e=r.defer();if(o){var n=o,t=n.countries;e.resolve(t)}else a(e);return e.promise};return{getCountries:c}}]);
"use strict";angular.module("openservices").factory("Country",function(){function t(t){t&&this.setData(t)}return t.prototype={setData:function(t){this.countries=t}},t});
"use strict";angular.module("openservices").factory("DocumentTypesManager",["$http","API_PATH",function(e,t){var n=function(){return e.get(t+"/open/traveldocuments",{cache:!0}).then(R.identity)["catch"](angular.noop)};return{getAllDocumentTypes:n}}]);
"use strict";angular.module("openservices").factory("NationalityManager",["$http","$q","Nationality","API_PATH",function(e,t,n,a){var r=void 0,o=function(e){var t=r;return t?t.setData(e):(t=new n(e),r=t),t},i=function(t){return e.get(a+"/open/nationalities",{cache:!0}).then(function(e){var n=o(e.data);t.resolve(n)},function(){t.reject()})},u=function(){var e=t.defer();return r?e.resolve(r):i(e),e.promise},c=function(e,n){var a=t.defer(),r=babelHelpers["extends"]({},e,{nationality:n.nationality,countryCode:n.countryCode});return a.resolve(r),a.promise};return{getNationalities:u,mapNationalityModel:c}}]);
"use strict";angular.module("openservices").factory("Nationality",function(){function t(t){t&&this.setData(t)}return t.prototype={setData:function(t){this.nationalities=t},getData:function(){return this.nationalities}},t});
"use strict";angular.module("openservices").factory("TitlesManager",["$http","$q","API_PATH",function(e,t,n){var r=[],a=[],i=function(){return e.get(n+"/open/titles",{cache:!0}).then(R.identity)["catch"](angular.noop)},c=function(e){var n=t.defer(),i=void 0;switch(e){case"Teen":i="TEEN";break;case"Child":i="CHD";break;case"Infant":i="INF";break;default:i="ADT"}return a=R.filter(function(e){return e.type===i},r),n.resolve(a),n.promise},s=function(e){r=e};return{getAllTitles:i,getTitlesByPaxType:c,setTitles:s}}]);
"use strict";angular.module("common").factory("CardMethod",["DateConfig","Dates",function(e,r){var t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:!1,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";babelHelpers.classCallCheck(this,t),"object"===("undefined"==typeof e?"undefined":babelHelpers["typeof"](e))&&null!==e&&e.hasOwnProperty("cardType")?Object.assign(this,e):(this.cardType=e,this.cardNumber=r,this.expiry=a,this.securityCode=n,this.cardHolderName=i,this.dcc=o,this.customerId=s)}return t.getPaymentCardPayload=function(t){return{Expiration:this.expiry?r.parse(this.expiry.year+"-"+this.expiry.month,e.displayFormats.yearMonth).endOf("month").format(e.formats.ISO_8601):null,AccountNumber:this.cardNumber,AccountName:this.cardHolderName,PaymentMethodCode:this.cardType?this.cardType.code:null,VerificationCode:this.securityCode,AcceptDccOffer:this.dcc,CustomerId:this.customerId}},t.getMyRyanairPayload=function(e){return R.pick(["creditCardType","expiryMonth","expiryYear","cardNumber","expiryYear","cardHolderName","autoDcc"],e)},t.getRoomsPayload=function(e){return{type:e.cardType.code,number:e.cardNumber,identifier:e.securityCode,holder:e.cardHolderName,expirationMonth:e.expiry.month,expirationYear:e.expiry.year}},babelHelpers.createClass(t,[{key:"paymentFormPayload",get:function(){return{Expiration:this.expiry?r.parse(this.expiry.year+"-"+this.expiry.month,e.displayFormats.yearMonth).endOf("month").format(e.formats.ISO_8601):null,AccountNumber:this.cardNumber,AccountName:this.cardHolderName,PaymentMethodCode:this.cardType?this.cardType.code:null,VerificationCode:this.securityCode,AcceptDccOffer:this.dcc,CustomerId:this.customerId}}},{key:"myRyanairPayload",get:function(){var e=null,r=null;return this.expiry&&(e=this.expiry.month<10?"0"+this.expiry.month:""+this.expiry.month,r=(this.expiry.year%100).toString()),{creditCardType:this.cardType?this.cardType.code:null,expiryMonth:e,expiryYear:r,cardNumber:this.cardNumber,cardholdersName:this.cardHolderName,autoDcc:!1}}}]),t}();return t}]);
"use strict";angular.module("common").service("CardService",["PAYMENT_TYPES_CONFIG",function(r){var n=function(n){return R.contains(n,r.PAYMENT_CARDS)};return{isCard:n}}]);
"use strict";angular.module("common").service("MasterpassPayment",["$log","$http","$state","$stateParams","RezApiConfig","Payments","Utilities","Dates","DccService",function(t,e,a,r,i,n,c,o,s){var u=void 0,d=void 0,l=!0,v=function(t){return l=!l,t},f={SUCCESS:"success",CANCEL:"cancel"},p={checkout_resource_url:void 0,currency:!1,isAuthenticated:!1,locale:void 0,mpstatus:void 0,myRyanairId:void 0,oauth_verifier:void 0,oauth_token:void 0,paymentMethodCode:"MP",originUrl:void 0,targerUrl:void 0},h={walletId:void 0,transactionId:void 0,iv:void 0,lastFour:void 0,expiration:void 0,accountNumber:void 0,accountName:void 0,paymentMethodCode:void 0,address:{},acceptDccOffer:void 0},g=Object.assign({},p),m=void 0;return{initiate:function(r){g=Object.assign({},p),v();var n=Object.assign({},r,{CallbackUrl:a.href("masterpass.callback",{originstate:a.current.name},{absolute:!0}),OriginUrl:a.current.name});return e.post(i.masterpass.initiate,n).then(function(e){return t.debug(e),d=e&&e.data.redirectURI,e.data})["finally"](v)},checkout:function(a){var r=c.serialize(a);return v(),e.get(i.masterpass.checkout+"?"+r).then(function(e){return t.info("should have the card details",e),m=Object.assign({},h,e.data)})["catch"](function(e){t.info("error",e)})["finally"](v)},transaction:function(t){v();var a={contact:t.contact,passengers:t.passengers,vatDetails:t.vatDetails,address:t.address},r=Object.assign(a,m,{acceptDccOffer:s.get("applied")});return e.post(i.masterpass.transaction,r).then(v)},getCardInformation:function(){return u},getRedirectURI:function(){return d},processRedirectBack:function(e,r,i,c){var o=this;v(),g=Object.assign(g,e);var u=Object.assign({},{oauthVerifier:e.oauth_verifier,oauthToken:e.oauth_token,checkoutResourceUrl:e.checkout_resource_url});this.checkout(u).then(function(){n.updatePaymentMethods(r,i,c).then(function(){n.setMasterpass(),t.debug("[card details before DCC check]",m,m.dcc.applicable),m&&m.dcc.applicable&&(t.debug("[DCC masterpass]"),s.set("triggerDccOffer",!0))})})["catch"](t.error)["finally"](function(){v(),o.isProcessing=!1,a.go(g.originstate)})},isInProgress:function(){return g.mpstatus===f.SUCCESS},hasCard:function(){return!!m},getSelectedCard:function(){return m},getCardTemplate:function(){return{acceptedDccOffer:!1,accountName:void 0,accountNumber:void 0,address:void 0,dcc:void 0,expiration:void 0,iv:void 0,lastFour:void 0,paymentMethodCode:void 0,walletId:void 0}},getCardExpiryDate:function(){return m?{month:o.utc(m.expiration).month()+1,year:o.utc(m.expiration).year()}:!1},isReady:function(){return l},getState:function(){return g},isDccApplicable:function(){return m&&m.dcc.applicable},reset:function(){g=Object.assign({},p),l=!1,m=void 0}}}]);
"use strict";angular.module("common").service("PaymentModel",["$state","Address","DccService","Session","WizardService","RetrievedCards","CardMethod","CurrencyConversionService","MarketConfig","INGENICO_PAYMENT_CONFIG","Stations","Dates",function(e,r,a,t,n,d,o,s,l,i,u,c){var A=function(e,d,s){return Object.assign({billingAddress:r.getAddressPayloadForMyRyanair(d),cardUsage:n.getCardUsageTypes()[0].value},new o(e.cardType,e.cardNumber,e.expiry,s,e.cardHolderName,a.get("applied"),(t.getCurrentUser()||{surrogateId:""}).surrogateId).myRyanairPayload)},m=function(r){var a=r.passengers[0].name,n={AMOUNT:(100*r.amount).toFixed(0),CURRENCY:r.curr,LANGUAGE:l.getLanguage()+"_"+l.getCountry().toUpperCase(),PSPID:R.contains(window.ENV,["PRODUCTION","OAT"])?i.PRODPSPID:i.TESTPSPID,TITLE:i.TITLE,CN:a.first+" "+a.last,EMAIL:r.contact.Email,OWNERADDRESS:r.payment.billingAddress.addressLine1,OWNERTOWN:r.payment.billingAddress.city,OWNERZIP:r.payment.billingAddress.postcode,OWNERCTY:r.payment.billingAddress.countryCode,OWNERTELNO:r.contact.PhoneNumber,ACCEPTURL:e.href(i.SUCCESS_STATE,{},{absolute:!0}),DECLINEURL:e.href(i.FAILURE_STATE,{},{absolute:!0}),EXCEPTIONURL:e.href(i.FAILURE_STATE,{},{absolute:!0}),CANCELURL:e.href(i.FAILURE_STATE,{},{absolute:!0}),COMPLUS:t.getSessionStorage("ryanair:token"),DATATYPE:i.DATATYPE,AIAIRNAME:i.AIAIRNAME,AITIDATE:c.utc(c.now).format("MM/DD/YY"),AIPASNAME:a.first+" "+a.last},d=function(e){return u.getCityName(e).substring(0,20)},o={legs:r.journeys.map(function(e){return{AIORCITY:e.model.orig,AIORCITYL:d(e.model.orig),AIDESTCITY:e.model.dest,AIDESTCITYL:d(e.model.dest),AICARRIER:i.AICARRIER,AIFLDATE:c.utc(e.model.depart).format("MM/DD/YY")}})},s=function(){var e=r.journeys.map(function(e){var r;return r={},babelHelpers.defineProperty(r,"AIORCITY"+(e.model.journeyNum+1),e.model.orig),babelHelpers.defineProperty(r,"AIORCITYL"+(e.model.journeyNum+1),d(e.model.orig)),babelHelpers.defineProperty(r,"AIDESTCITY"+(e.model.journeyNum+1),e.model.dest),babelHelpers.defineProperty(r,"AIDESTCITYL"+(e.model.journeyNum+1),d(e.model.dest)),babelHelpers.defineProperty(r,"AICARRIER"+(e.model.journeyNum+1),i.AICARRIER),babelHelpers.defineProperty(r,"AIFLDATE"+(e.model.journeyNum+1),c.utc(e.model.depart).format("MM/DD/YY")),r});return R.merge(R.path([0],e),R.path([1],e))},A=function(e,r,a){return{name:r.first,surname:r.last,paxType:e,dob:a}},m=R.reduce(function(e,r){var a=[];return a=R.append(A(r.type,r.name,R.path(["travelDocuments","travelDocument","dob"],r)),a),R.prop(["inf"],r)&&(a=R.append(A("INF",r.inf,r.inf.dob),a)),R.concat(a,e)},[],R.propOr([],"passengers",r));return{prePaymentMethod:{passenger:{email:r.contact.Email,phone:r.contact.PhoneCode+r.contact.PhoneNumber,passengerDetails:m},ingenico:R.merge(n,o)},ingenicoPayment:R.merge(n,s())}},y=function(a){return{CallBackURL:e.href("ideal.callback",{},{absolute:!0}),VoucherId:"",ReturnURL:e.href("ideal.callback",{},{absolute:!0}),PaymentMethodCode:"IA",IssuerId:a.ideal.issuerId,CustomerId:t.getClientId(),Address:r.getAddressPayload(a.billingAddress)}},I=function(r,a,n,d){var o=null,l=null;if(r){var i=s.getCurrencyConversionDetails();o=i.foreignCurrencyCode,l=i.id}return{callbackURI:e.href("paypal.callback",{customerId:t.getClientId(),isBookingActivePayment:e.current.name,foreignCurrencyCode:o,currencyConversionId:l,checkinPayload:a,savePayPal:n,correlationId:d},{absolute:!0}),cancelURI:e.href(e.current.name,{},{absolute:!0})}},p=function(e){return{Iban:e.sepa.iban,customerId:t.getClientId(),accountName:e.sepa.accountName,paymentMethodCode:e.sepa.code,Bic:e.sepa.bic,address:r.getAddressPayloadForSEPA(e.billingAddress)}},g=function(e){var n=a.get("applied"),d=new o(e.cardType,e.cardNumber,e.expiry,e.securityCode,e.cardHolderName,n,t.getClientId()),s=d.paymentFormPayload;return babelHelpers["extends"]({},s,{Address:r.getAddressPayload(e.billingAddress)})},C=function(e){var t=a.get("applied"),n=new d(e.id,e.securityCode,e.expiryMonth,e.expiryYear,e.cardholdersName,t).savedCardPayload;return babelHelpers["extends"]({},n,{Address:r.getAddressPayload(e.billingAddress)})};return{getCreditCardMyRyanairPayload:A,getIdealPayload:y,getAirMaltaPayload:m,getPypalPayload:I,getSepaPayload:p,getCreditCardPayload:g,getSavedCardPayload:C}}]);
"use strict";!function(e){var t=function(t){function n(e,r,i,o,a,s,d,u,c,p,h,l,g){"ngInject";babelHelpers.classCallCheck(this,n);var m=babelHelpers.possibleConstructorReturn(this,t.call(this));return Object.assign(m,{$http:e,$ngRedux:a,BookingRead:c,RezApiConfig:r,AirlineService:i,$q:o,Utilities:s,FlightSearch:d,PAYMENT_METHODS:p,Configuration:h,$state:l,$stateParams:g}),m.CARD_PAYMENT_CODES={visa:["VI","CN","DL","VE"],mastercard:["MC","MD","MP"],americanexpress:["AX"],masterpass:[""],uatp:["TP"],sepa:["SD"],diners:["DI"],discover:["DS"]},m.METHOD_NAMES={CC:"CC",MASTERPASS:"MP",IDEAL:"IA",PAYPAL:"PP"},m.set("paymentMethods",[]),m.set("paymentOptions",[]),m.allPaymentMethods=[],m.disabledPaymentMethods=p.filter(function(e){return!e.enabled}).map(function(e){return e.key}),m.declinedPayment=!1,m.changeFlightPayment=!1,m.OPTIONAL_FIELDS={uatp:["securityCode","cardHolderName"]},m}return n.$inject=["$http","RezApiConfig","AirlineService","$q","$ngRedux","Utilities","FlightSearch","AirMaltaApiConfig","BookingRead","PAYMENT_METHODS","Configuration","$state","$stateParams"],babelHelpers.inherits(n,t),n.prototype.setMasterpass=function(){this.set("selectedMethod",this.get("paymentOptions").find(function(e){return"MP"===e.name}))},n.prototype.isPaymentInputMandatory=function(e){var t=this,n=Object.keys(this.CARD_PAYMENT_CODES).find(function(n){return~t.CARD_PAYMENT_CODES[n].indexOf(e)});return this.OPTIONAL_FIELDS[n]?function(e){return!~t.OPTIONAL_FIELDS[n].indexOf(e)}:function(){return!0}},n.prototype.getIconSetForAllCards=function(){var e=this,t=this.$ngRedux.getState(),n=t.bookingModel,r=Object.keys(this.CARD_PAYMENT_CODES),i=this.getCardMethods().filter(function(t){return e.excludeCardTypes(t,n)});return r.filter(function(t){return i.some(function(n){return e.CARD_PAYMENT_CODES[t].some(function(e){return e===n.code})})})},n.prototype.excludeCardTypes=function(e,t){var n=this.getExcludedCardTypes(t);return!~n.indexOf(e.code)},n.prototype.getExcludedCardTypes=function(e){var t=["SD","MV","MM"];return this.BookingRead.hasGroundTransfer(e)&&t.push("TP"),t},n.excludeHeldFareUnavailableMethods=function(e){return!~["IA","PP","SD"].indexOf(e.name)},n.prototype.getConfiguredPaymentOptionFees=function(e){var t=this;return this.Configuration.query(e,this.FlightSearch.model.operatedBy).then(function(e){return t.extractDebitCardFeePercentage(e),e})},n.prototype.extractDebitCardFeePercentage=function(e){this.debitCardFeePercLoc=R.pipe(R.either(R.path(["opts","pof"]),R.path(["opts","paymentOptionsFees"])),R.find(R.propEq("name","DC")),R.path(["perc"]))(e)},n.prototype.getCardMethods=function(){return this.allPaymentMethods.filter(function(e){return e.isCard})},n.prototype.getCardTypes=function(){return this.getBePaymentMethods()},n.prototype.getBePaymentMethods=function(e){var t=this;if(e)return this.$q.when(this.allPaymentMethods);var n=this.AirlineService.getAirlineApiConfig(this.FlightSearch.model.operatedBy).paymentMethods;return this.$http.get(n).then(function(e){var n=e.data;return n&&n.length&&(t.allPaymentMethods=n),n})},n.prototype.setPaymentMethods=function(e){this.allPaymentMethods=[].concat(babelHelpers.toConsumableArray(e))},n.prototype.requestPaypalToken=function(e){return this.$http.post(this.RezApiConfig.paypalRedirect,e)},n.prototype.makeExternalPayment=function(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.noop,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:e.noop,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"post";this.$http[a](n,t).then(function(e){r(e.data)})["catch"](function(e){i(e)})["finally"](o)},n.prototype.makePayment=function(e,t){return this.$http.post(t,e)},n.prototype.getContextExcludedPaymentOptions=function(e,t){var n=this.isVouchersOrSamsonitePaymentPage()||this.BookingRead.hasCarHire(t)||this.BookingRead.hasAccommodation(t)?["PP","SD","MP","IA"]:[];if(this.BookingRead.hasGroundTransfer(t)){var r=["PP","SD","IA"];n=R.pipe(R.concat(r),R.uniq)(n)}return n},n.prototype.getAvailablePaymentOptionFees=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1],r=this.$ngRedux.getState(),i=r.bookingModel,o=n||{origin:this.BookingRead.getOriginCityCode(i),destination:this.BookingRead.getDestCityCode(i),discountPercentage:R.prop("pct",this.BookingRead.getZoneDiscount(i))};this.isVouchersOrSamsonitePaymentPage()&&(o.origin="DUB",o.destination="STN");var a=this.getContextExcludedPaymentOptions(this.$state.current.name,i);return this.getConfiguredPaymentOptionFees(o).then(function(n){return n.opts.pof.filter(function(n){return!~t.indexOf(n.name)&&!~a.indexOf(n.name)&&!~e.disabledPaymentMethods.indexOf(n.name)})})},n.prototype.updatePaymentMethods=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.$q.all([this.getAvailablePaymentOptionFees(n),this.getBePaymentMethods()]).then(function(r){var i=babelHelpers.slicedToArray(r,2),o=i[0],a=i[1],s=t.$ngRedux.getState().bookingModel.bookingModel,d=a.find(function(e){return"SEPA"===e.name}),u=void 0,c={options:o,cardTypes:a.filter(function(e){return t.excludeCardTypes(e,s)})};t.cachedCardTypes=e.copy(c.cardTypes);var p=R.concat(n,t.getContextExcludedPaymentOptions(t.$state.current.name,s));d&&!R.contains(d.code,p)&&c.options.push(Object.assign(d,{name:d.code,perc:d.percentage}));var h=R.compose(R.length,t.BookingRead.getHoldFareObjects);return h(s)&&(c.options=c.options.filter(t.excludeHeldFareUnavailableMethods)),{paymentMethods:c,cachedCardTypes:t.cachedCardTypes,selectedMethod:u}})},n.getCardModelTemplate=function(){return{cardType:void 0,cardHolderName:void 0,cardNumber:void 0,securityCode:void 0,expiry:{month:void 0,year:void 0},saveCard:!1}},n.prototype.isVouchersOrSamsonitePaymentPage=function(){return/(vouchers|samsonite)\.payment/.test(this.$state.current.name)},babelHelpers.createClass(n,[{key:"debitCardFeePerc",get:function(){return this.debitCardFeePercLoc}}]),n}(ObservableService);e.module("common").service("Payments",t)}(angular);
"use strict";angular.module("common").factory("RetrievedCards",["Session","DateConfig","Dates",function(e,t,r){var a=function(){function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:!1;babelHelpers.classCallCheck(this,a),this.cardId=e,this.securityCode=t,this.expiryMonth=r,this.expiryYear=n,this.cardHolderName=s,this.dcc=i}return babelHelpers.createClass(a,[{key:"savedCardPayload",get:function(){return{CardId:this.cardId,VerificationCode:this.securityCode,CustomerId:e.getCurrentUser().surrogateId,Expiration:this.expiryYear&&this.expiryMonth?r.parse(this.expiryYear+"-"+this.expiryMonth,t.displayFormats.yearMonth).endOf("month").format(t.formats.ISO_8601):null,AccountName:this.cardHolderName,AcceptDccOffer:this.dcc}}}]),a}();return a}]);
"use strict";!function(t){var e=function(){function t(e,n,i,o,a,r,s,c,l){"ngInject";babelHelpers.classCallCheck(this,t),Object.assign(this,{$ngRedux:e,$interval:n,Session:i,DialogManager:o,ErrorHandler:a,SCAActions:r,SCA_ACTIONS:s,SCA_TIMEOUTS:c,SCA_CHECK_PAGE_ORIGINS:l})}return t.$inject=["$ngRedux","$interval","Session","DialogManager","ErrorHandler","SCAActions","SCA_ACTIONS","SCA_TIMEOUTS","SCA_CHECK_PAGE_ORIGINS"],t.prototype.dataCollectionCallback=function(t){var e=t.origin;this.checkOrigins(e)&&(this.logDataCollectionMetric(!1),this.stopTimer(this.dataCollectionTimer),this.$ngRedux.dispatch(this.SCAActions.finishSCADeviceDataCollection()),this.removeDataCollectionListener())},t.prototype.consumerAuthenticationCallback=function(t){var e=t.data,n=t.origin;this.checkOrigins(n)&&("200"===e.code&&"Ok"===e.message?this.$ngRedux.dispatch(this.SCAActions.finishSCAPaymentAuthentication(this.hasHotel)):e.code&&e.message&&this.consumerAuthenticationHandleError(e))},t.prototype.consumerAuthenticationHandleError=function(t){"400"===t.code&&"UserCancelledAuthentication"===t.message?this.DialogManager.closeByKey("paymentConsumerAuthenticationDialog"):"400"===t.code&&"PaymentMaxAttemptsLimitBreached"===t.message&&this.ErrorHandler.handle("payment",t.message),this.$ngRedux.dispatch(this.SCAActions.setSCAPaymentAuthenticationError(t))},t.prototype.startDataCollectionTimer=function(){var t=this;this.dataCollectionTimer=this.$interval(function(){t.logDataCollectionMetric(!0),t.removeDataCollectionListener(),t.$ngRedux.dispatch({type:t.SCA_ACTIONS.DATA_COLLECTION_PROCESS_TIMEOUT})},this.SCA_TIMEOUTS.DATA_COLLECTION_TIMEOUT,1,!1)},t.prototype.addDataCollectionListener=function(){this.startDataCollectionTimer(),this.dataCollectionListener=this.dataCollectionCallback.bind(this),window.addEventListener("message",this.dataCollectionListener,!1)},t.prototype.removeDataCollectionListener=function(){this.stopTimer(this.dataCollectionTimer),window.removeEventListener("message",this.dataCollectionListener,!1)},t.prototype.addConsumerAuthenticationListener=function(){this.consumerAuthenticationListener=this.consumerAuthenticationCallback.bind(this),window.addEventListener("message",this.consumerAuthenticationListener,!1)},t.prototype.removeConsumerAuthenticationListener=function(){window.removeEventListener("message",this.consumerAuthenticationListener,!1)},t.prototype.startDataCollection=function(e,n){var i=n.deviceDataCollectionUrl,o=void 0===i?"":i,a=n.jwtDataCollectionToken,r=void 0===a?"":a;this.removeDataCollectionListener(),this.addDataCollectionListener(),t.populateIframe(e,t.cardinalIframeHtml(o,r)),this.dataCollectionStart=window.performance.now(),e.contentWindow.document.getElementById("collectionForm").submit()},t.prototype.startConsumerAuthentication=function(e,n){var i=n.stepUpUrl,o=void 0===i?"":i,a=n.jwtConsumerAuthenticationToken,r=void 0===a?"":a,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!1;this.hasHotel=s,this.removeConsumerAuthenticationListener(),this.addConsumerAuthenticationListener(),t.populateIframe(e,t.consumerAuthenticationIframeHtml(o,r,this.Session.getSessionStorage("ryanair:token"))),e.contentWindow.document.getElementById("consumerAuthenticationForm").submit()},t.prototype.stopTimer=function(t){this.$interval.cancel(t)},t.prototype.logDataCollectionMetric=function(t){if(window.newrelic){var e=window.performance.now();window.newrelic.addPageAction("deviceDataCollection",{started:this.dataCollectionStart,ended:e,duration:e-this.dataCollectionStart,timeout:t})}},t.prototype.checkOrigins=function(t){return R.any(function(e){return R.contains(e,t)},this.SCA_CHECK_PAGE_ORIGINS)},t.consumerAuthenticationIframeHtml=function(t,e,n){return''},t.cardinalIframeHtml=function(t,e){return''},t.populateIframe=function(t,e){t.contentWindow.document.open(),t.contentWindow.document.write(e),t.contentWindow.document.close()},t}();t.module("common").service("SCAService",e)}(angular);
"use strict";angular.module("regularexpressions",[]).factory("ParsingFactory",function(){function r(r){return r.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var e={escapeRegExp:r};return e});
"use strict";angular.module("common").directive("a11yMaxNum",function(){return{require:"?ngModel",link:function(e,n,r,a){if(a&&r.a11yMaxNum){var u=parseFloat(r.a11yMaxNum,10);a.$parsers.push(function(e){return angular.isUndefined(e)&&(e=""),parseFloat(e,10)>u?(a.$setViewValue(""+u),a.$render(),""+u):e}),n.bind("keypress",function(e){32===e.keyCode&&e.preventDefault()})}}}});
"use strict";angular.module("common").directive("a11yNumbersOnly",function(){return{require:"?ngModel",link:function(e,n,r,u){u&&(u.$parsers.push(function(e){angular.isUndefined(e)&&(e="");var n=e.replace(/[^0-9.]+/g,""),r=n.indexOf(".");return n=n.replace(/\.+/g,function(e,n){return n===r?".":void 0}),e!==n&&(u.$setViewValue(n),u.$render()),n}),n.bind("keypress",function(e){32===e.keyCode&&e.preventDefault()}))}}});
"use strict";angular.module("common").directive("limitTo",function(){return{restrict:"A",link:function(e,t,i){var n=i.limitTo;t.bind("keypress",function(e){t.val().length>=n&&8!==e.keyCode&&e.preventDefault()})}}});
"use strict";angular.module("common").directive("validPassword",function(){var i={scope:{skipPasswordValidation:"<"},require:"ngModel",link:function(i,t,e,s){i.skipPasswordValidation||s.$parsers.unshift(function(i){for(var t=""===i,e=!t&&i.length<8,a=/[0-9]/.test(i),n=void 0,r=void 0,d=0;d0&&void 0!==arguments[0]?arguments[0]:t,r=arguments[1],l=r.type,a=r.payload;switch(l){case e.DATA_COLLECTION_PROCESS_START:return babelHelpers["extends"]({},n,{jwtDataCollectionToken:a.jwtDataCollectionToken,deviceDataCollectionUrl:a.deviceDataCollectionUrl,dfReferenceId:a.dfReferenceId,dataCollectionProcessing:!0});case e.DATA_COLLECTION_PROCESS_SUCCESS:return babelHelpers["extends"]({},n,{dataCollectionProcessing:!1});case e.DATA_COLLECTION_PROCESS_TIMEOUT:return babelHelpers["extends"]({},n,{jwtDataCollectionToken:null,dataCollectionProcessing:!1});case e.CONSUMER_AUTHENTICATION_REQUIRED:return babelHelpers["extends"]({},n,{jwtConsumerAuthenticationToken:a.jwtConsumerAuthenticationToken,stepUpUrl:a.stepUpUrl});case e.CONSUMER_AUTHENTICATION_FAILED:return babelHelpers["extends"]({},n,{paymentAuthenticationError:babelHelpers["extends"]({},a)});case e.CONSUMER_AUTHENTICATION_FINISHED:case e.RESET:return t;default:return n}}}]);
"use strict";angular.module("common").component("scaConsumerAuthenticationError",{templateUrl:"/partials/common/components/sca-iframe/components/sca-consumer-authentication-error/sca-consumer-authentication-error.component.html",bindings:{paymentAuthenticationError:"<"},controller:function(){function t(n,o,e,i,s,a){babelHelpers.classCallCheck(this,t),Object.assign(this,{$state:n,$element:o,$ngRedux:e,SCAActions:i,DialogManager:s,PAYMENT_ERRORS:a})}return t.$inject=["$state","$element","$ngRedux","SCAActions","DialogManager","PAYMENT_ERRORS"],t.prototype.$onInit=function(){this.isBookingFlights=this.$state.is("booking.payment")},t.prototype.closeThisDialog=function(){this.DialogManager.close()},t.prototype.$onDestroy=function(){this.$ngRedux.dispatch(this.SCAActions.reset())},t}()});
"use strict";angular.module("common").component("scaConsumerAuthenticationIframe",{templateUrl:"/partials/common/components/sca-iframe/components/sca-consumer-authentication-iframe/sca-consumer-authentication-iframe.component.html",bindings:{hasHotel:"<"},controller:function(){function e(t,n,i,o){babelHelpers.classCallCheck(this,e),Object.assign(this,{$element:t,SCAService:n,$ngRedux:i,SCAActions:o})}return e.$inject=["$element","SCAService","$ngRedux","SCAActions"],e.prototype.$onInit=function(){this.iframe=R.head(this.$element.find("#SCAConsumerAuthenticationIframe")),this.sca=this.$ngRedux.getState().sca,this.SCAService.startConsumerAuthentication(this.iframe,this.sca,this.hasHotel)},e.prototype.$onDestroy=function(){this.SCAService.removeConsumerAuthenticationListener()},e}()});
"use strict";angular.module("common").component("scaDataCollectionIframe",{templateUrl:"/partials/common/components/sca-iframe/components/sca-data-collection-iframe/sca-data-collection-iframe.component.html",bindings:{sca:"<"},controller:function(){function e(t,a,n,o){babelHelpers.classCallCheck(this,e),Object.assign(this,{$element:t,SCAService:a,$ngRedux:n,SCAActions:o})}return e.$inject=["$element","SCAService","$ngRedux","SCAActions"],e.prototype.createIframe=function(){this.iframe&&this.iframe.remove();var e=document.createElement("iframe");this.iframe=e,this.container.appendChild(e)},e.prototype.$onInit=function(){this.container=R.head(this.$element.find("#SCADataCollectionIframeContainer"))},e.prototype.$onChanges=function(e){R.path(["sca","currentValue","jwtDataCollectionToken"],e)&&R.path(["sca","currentValue","deviceDataCollectionUrl"],e)&&!R.equals(R.path(["sca","currentValue","jwtDataCollectionToken"],e),R.path(["sca","previousValue","jwtDataCollectionToken"],e))?(this.createIframe(),this.SCAService.startDataCollection(this.iframe,this.sca)):this.SCAService.removeDataCollectionListener()},e.prototype.$onDestroy=function(){this.SCAService.removeDataCollectionListener(),this.$ngRedux.dispatch(this.SCAActions.reset())},e}()});
//# sourceMappingURL=common-58f6aed075.bundle.js.map