var __decorate,MeePortal;(function(n){var t;(function(n){n.areaModuleName="commonModule";var t=angular.module(n.areaModuleName);t.run(function(){angular.element("#feedbackDiv").length===0&&angular.element("[ng-app]").append('<div id="feedbackDiv"><\/div>');var n=angular.element("<mee-feedback><\/mee-feedback>");angular.element("#feedbackDiv").append(n)})})(t=n.Feedback||(n.Feedback={}))})(MeePortal||(MeePortal={}));__decorate=this&&this.__decorate||function(n,t,i,r){var f=arguments.length,u=f<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,i):r,e,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,t,i,r);else for(o=n.length-1;o>=0;o--)(e=n[o])&&(u=(f<3?e(u):f>3?e(t,i,u):e(t,i))||u);return f>3&&u&&Object.defineProperty(t,i,u),u},function(n){var t;(function(t){var i=function(){function n(){}return n.Area="Global",n.Scenario="FeedbackV2",n.StepFeedbackStart="FeedbackStart",n.StepFeedbackSubmit="FeedbackSubmit",n.StepFeedbackClose="FeedbackClose",n}(),r;t.FeedbackBi=i;r=function(){function r(n,t,r,u,f,e,o,s,h,c){var l=this;this.$mwfUtil=n;this.$element=t;this.$timeout=r;this.$window=u;this.$rootScope=f;this.ajax=e;this.$meeMwfDialogWrapperFactory=o;this.telemetry=s;this.$meeA11y=h;this.$promise=c;this.bi=new i;this.modalId="#dialogFeedback";this.activePivot="pivotFeedback";this.isSubmited=!1;this.isCmsErr=!1;this.isRated=!1;this.isMaxLengthReached=!1;this.ambientCookieName="AMC-MS-CV";this.resetFocus=function(){var n=angular.element("#pivotFeedback textarea");n.length>0&&n[0].focus()};this.submit=function(){l.maskFeedbackMessage().then(function(){l.sendFeedback();l.isSubmited=!0;l.telemetry.portalScenarios.endStep({area:i.Area,name:i.Scenario,isSuccess:!0,step:l.bi.currentStep,next:i.StepFeedbackClose});l.bi.currentStep=i.StepFeedbackClose})};this.cancel=function(){l.dialog.hide();l.telemetry.portalScenarios.cancelMultiStepScenario({area:i.Area,name:i.Scenario,isSuccess:!0,step:l.bi.currentStep});angular.element("#feedbackDockedBtn").focus();l.replaceOpenFeedbackParams()};this.close=function(){l.dialog.hide();l.telemetry.portalScenarios.endMultiStepScenario({area:i.Area,name:i.Scenario,isSuccess:!0,step:i.StepFeedbackClose});angular.element("#feedbackDockedBtn").focus();l.replaceOpenFeedbackParams()};this.starRated=function(n){l.ok2Submit=!0;l.starRating=n;l.isRated=!0;l.cmsData&&l.cmsData.starSelectionMessage1&&l.$meeA11y.announcer.announce(l.cmsData.starSelectionMessage1.concat(l.starRating.toString(),l.cmsData.starSelectionMessage2,l.cmsData.ariaStar5),"polite")};this.resetUi=function(){l.isSubmited=!1;l.activePivot="pivotFeedback";l.ok2Submit=!1;l.qSelected="tab2Q0";l.comment="";l.commentProblem="";l.starRating=0;l.isRated=!1;l.isMaxLengthReached=!1;l.bi.currentStep=i.StepFeedbackStart};this.getPropbag=function(){var n,t,i;return"innerWidth"in window?(n=window.innerWidth,t=window.innerHeight):(i=document.documentElement||document.body,n=i.clientWidth,t=i.clientHeight),{browserInfo:{userAgent:navigator.userAgent,viewPortSize:n+"x"+t},appInfo:{locale:$("html").attr("lang"),reportTime:(new Date).toUTCString()}}}}return r.prototype.$onInit=function(){var n=this;if(this.hideFeedbackButton()){document.getElementById("feedbackDiv").remove();return}this.resetUi();this.getCmsData().then(function(t){var u=t.data,r;n.cmsData=u.feedbackTxt;n.questions=u.questionTxt;n.answers=u.answerTxt;n.$element.find("textarea").attr("placeholder",n.cmsData.cmtPlaceholder);n.$rootScope.$on("show-feedback",function(){n.isCmsErr||(n.telemetry.portalScenarios.beginMultiStepScenario(i.Area,i.Scenario,i.StepFeedbackStart),n.bi.currentStep=i.StepFeedbackStart,n.$timeout().then(function(){return n.dialog=n.$meeMwfDialogWrapperFactory.create(n.modalId),n.dialog.initialize()}).then(function(){n.resetUi();n.dialog.show();n.resetFocus()}))});r=angular.element("#site-footer a[href='javascript:MeePortal.Feedback.control.show()']");r.attr("id","footerFbBtn");r.attr("href","#");r.bind("click",function(t){t.preventDefault();n.$rootScope.$broadcast("show-feedback")});angular.element(n.$window).bind("scroll",function(){var r=$(window).height(),n=angular.element("#footerFbBtn"),t,i;n?(t=n.height(),i=n.offset(),i.top+t<window.scrollY+r?angular.element("#feedbackDockedBtn").hide():angular.element("#feedbackDockedBtn").show()):console.error("Feedback: failed to get the feedback button in footer!")});angular.element(n.$window).bind("focusout",function(){angular.element("#obf-ToastContainer").is(":visible")?angular.element("#feedbackDockedBtn").hide():angular.element("#feedbackDockedBtn").show()});n.$timeout().then(function(){n.$mwfUtil.create(mwf.Pivot,n.$element.find("#fbPivot"))});n.isOpenFeedback()&&(cookieManager.default.expireCookie(n.ambientCookieName),n.dockedBtnClicked())}).catch(function(){console.error("Feedback: failed to get CMS data!");n.isCmsErr=!0;return})},r.prototype.escape=function(n){var t=n.which||n.keyCode||n.charCode;t===27&&(this.dialog.hide(),this.telemetry.portalScenarios.cancelMultiStepScenario({area:i.Area,name:i.Scenario,isSuccess:!0,step:this.bi.currentStep}),angular.element("#feedbackDockedBtn").focus(),this.replaceOpenFeedbackParams())},r.prototype.dockedBtnClicked=function(){this.$rootScope.$broadcast("show-feedback")},r.prototype.replaceOpenFeedbackParams=function(){if(this.isOpenFeedback()){var n=this.$window.location.search;n&&(n=n.toLowerCase().replace("isopenfeedback=true",""),n=n.toLowerCase().replace("ms-cv=anon",""));cookieManager.default.expireCookie(this.ambientCookieName);this.$window.location.search=n}},r.prototype.isOpenFeedback=function(){var i=this.$window.location.search,t;return i?(t=n.Utilities.parseUrl(i.toLowerCase()),t.params&&t.params.isopenfeedback&&t.params.isopenfeedback==="true"):!1},r.prototype.hideFeedbackButton=function(){var i=this.$window.location.search,t;return i?(t=n.Utilities.parseUrl(i.toLowerCase()),t.params&&t.params.hidefeedbackbutton&&t.params.hidefeedbackbutton==="true"):!1},r.prototype.keyPressed=function(n){var t=n.which||n.keyCode||n.charCode;t===13&&this.dockedBtnClicked()},r.prototype.sendFeedback=function(){this.telemetry.portalScenarios.endStep({area:i.Area,name:i.Scenario,isSuccess:!0,step:this.bi.currentStep,next:i.StepFeedbackSubmit});this.bi.currentStep=i.StepFeedbackSubmit;var t={},r=window.awa&&window.awa.ct&&window.awa.ct.testHook&&window.awa.ct.testHook.collectMetaTagsAndSetEventProperty(t),u={name:"Ms.Webi.MeePortal.UserFeedbackV2",content:{"Ms.Webi.MeePortal.UserFeedbackV2":{pageid:this.telemetry.portalBi.getCurrentLocation(),rating:this.starRating,message:this.comment,message2:this.commentProblem,problem:this.qSelected==="tab2Q0"?"":this.qSelected,propbag:JSON.stringify(this.getPropbag())},"Ms.Osgs.MeePortal.UserFeedbackV2":{pageTags:JSON.stringify({flight:(n.g_userFlights||[]).join("|"),metaTags:r}),market:t.market}}};this.telemetry.portalQos.reportRawEvent(u)},r.prototype.maskFeedbackMessage=function(){var n=this,t,i;return t=this.comment?this.maskFeedbackText(this.comment).then(function(t){var i=t.data;n.comment=i.maskedFeedbackText}).catch(function(){n.comment="";n.telemetry.portalQos.reportClientError({message:"FeedbackComponent: Error masking the data"})}):this.$promise.resolve(),i=this.commentProblem?this.maskFeedbackText(this.commentProblem).then(function(t){var i=t.data;n.commentProblem=i.maskedFeedbackText}).catch(function(){n.commentProblem="";n.telemetry.portalQos.reportClientError({message:"FeedbackComponent: Error masking the data"})}):this.$promise.resolve(),this.$promise.all([t,i])},r.prototype.pivotClicked=function(n){this.activePivot=n},r.prototype.commentChanged=function(){this.ok2Submit=this.commentProblem.length>10||this.comment.length>10;this.checkAndAnnounceMaxLengthMessage()},r.prototype.textAreaKeyPress=function(){this.checkAndAnnounceMaxLengthMessage()},r.prototype.checkAndAnnounceMaxLengthMessage=function(){this.isMaxLengthReached=this.activePivot=="pivotProblem"&&this.commentProblem.length>=500||this.activePivot=="pivotFeedback"&&this.comment.length>=500;this.isMaxLengthReached&&this.$meeA11y.announcer.announce(this.cmsData.maxCharsMessage,"polite")},r.prototype.getCmsData=function(){return this.ajax.get({serviceName:"Feedback",operationName:"Feedback2_GetStrings",url:"/feedback/Feedback2",contentType:"application/json"})},r.prototype.maskFeedbackText=function(n){return this.ajax.post({serviceName:"Feedback",operationName:"Feedback2_MaskFeedbackText",url:"/feedback/mask-feedback-text",data:{feedbackText:n}})},r.$inject=["$meeMwfUtil","$element","$timeout","$window","$rootScope","portalAjaxServiceAngular","$meeMwfDialogWrapperFactory","telemetryService","$meeA11y","$q"],__decorate([n.Shared.Angular.Decorators.Component(t.areaModuleName,"meeFeedback",{template:'\n<div data-grid="container">\n    <div class="dockPanel" id="feedbackDockedBtn" tabindex="0" role="button" aria-haspopup="true" ng-keydown="$ctrl.keyPressed($event)" ng-if="!$ctrl.isCmsErr" ng-click="$ctrl.dockedBtnClicked()" aria-label="{{$ctrl.cmsData.dockLabel}}">\n        <span class="mee-icon mee-icon-Message"><\/span>\n        <span>{{$ctrl.cmsData.dockLabel}}<\/span>\n    <\/div>\n    <div class="c-dialog f-flow" id="dialogFeedback" aria-hidden="true">\n        <div role="presentation" tabindex="-1"><\/div>\n        <div role="dialog" class="pblList" aria-labelledby="fdDlgHeader" tabindex="-1" ng-keydown="$ctrl.escape($event)">\n            <div data-top-bound tabindex="0"><\/div>\n            <div ng-show="!$ctrl.isSubmited" data-modal-close-button class="c-glyph glyph-cancel" ng-click="$ctrl.cancel()" tabindex="0" role="button" aria-label="{{$ctrl.cmsData.ariaCloseDialog}}"><\/div>\n            <div ng-if="!$ctrl.isSubmited">\n                <h2 id="fdDlgHeader" mee-heading="heading4" class="f-lean">{{$ctrl.cmsData.header}}<\/h2>\n                <section class="c-pivot pivot" id="fbPivot">\n                    <header role="tablist">\n                        <p class="x-screen-reader" id="feedbackAriaTitle">{{$ctrl.cmsData.tab1Header}} {{$ctrl.cmsData.tab1Description}}<\/p>\n                        <p class="x-screen-reader" id="problemAriaTitle">{{$ctrl.cmsData.tab2Header}} {{$ctrl.cmsData.tab2Description}}<\/p>\n                        <a ng-class="{\'f-active\':$ctrl.activePivot===\'pivotFeedback\'}" role="tab" tabindex="0" aria-labelledby="feedbackAriaTitle" aria-controls="pivotFeedback" ng-click="$ctrl.pivotClicked(\'pivotFeedback\')">{{$ctrl.cmsData.tab1Header}}<\/a>\n                        <a ng-class="{\'f-active\':$ctrl.activePivot===\'pivotProblem\'}" role="tab" aria-labelledby="problemAriaTitle" aria-controls="pivotProblem" ng-click="$ctrl.pivotClicked(\'pivotProblem\')">{{$ctrl.cmsData.tab2Header}}<\/a>\n                    <\/header>\n                    <section id="pivotFeedback" role="tabpanel" aria-hidden="{{$ctrl.activePivot!=\'pivotFeedback\'}}">\n                        <mee-text-area kind="scrollable flex not-resizable">\n                            <label class="x-screen-reader">{{$ctrl.cmsData.tab1Title1}}<\/label>\n                            <textarea class="bigMarginTop" role="textbox" rows="5" maxlength="500" ng-trim="true" ng-model="$ctrl.comment" ng-change="$ctrl.commentChanged()" ng-keypress="$ctrl.textAreaKeyPress()"><\/textarea>\n                            <span>{{$ctrl.comment.length}}/500 {{$ctrl.cmsData.maxChars}}<\/span>\n                        <\/mee-text-area>\n                        <h4 mee-heading="subheading5">{{$ctrl.cmsData.tab1Title2}}<\/h4>\n                        <div id="fbRating" class="c-rating f-interactive f-user-rated " style="-ms-high-contrast-adjust: auto;" itemscope itemtype="https://schema.org/Rating">\n                            <p class="x-screen-reader" id="title2" ng-if="!$ctrl.isRated">{{$ctrl.cmsData.tab1ShortTitle2}} {{$ctrl.cmsData.ariaNotYetRated}}<\/p>\n                            <p class="x-screen-reader" id="title2" ng-if="$ctrl.isRated">\n                                {{$ctrl.cmsData.tab1ShortTitle2}} {{$ctrl.cmsData.starSelectionMessage1}}\n                                <span itemprop="ratingValue">{{$ctrl.starRating}}<\/span>{{$ctrl.cmsData.starSelectionMessage2}}\n                                <span itemprop="bestRating">{{$ctrl.cmsData.ariaStar5}}<\/span>\n                            <\/p>\n                            <form>\n                                <button ng-class="{\'c-glyph f-none\':$ctrl.starRating <1,\'c-glyph f-full\':$ctrl.starRating >=1}" ng-click="$ctrl.starRated(1)" name="1" aria-describedby="title2" aria-label="{{$ctrl.cmsData.ariaStar1}}" itemprop="worstRating"><\/button>\n                                <button ng-class="{\'c-glyph f-none\':$ctrl.starRating <2,\'c-glyph f-full\':$ctrl.starRating >=2}" ng-click="$ctrl.starRated(2)" name="2" aria-describedby="title2" aria-label="{{$ctrl.cmsData.ariaStar2}}"><\/button>\n                                <button ng-class="{\'c-glyph f-none\':$ctrl.starRating <3,\'c-glyph f-full\':$ctrl.starRating >=3}" ng-click="$ctrl.starRated(3)" name="3" aria-describedby="title2" aria-label="{{$ctrl.cmsData.ariaStar3}}"><\/button>\n                                <button ng-class="{\'c-glyph f-none\':$ctrl.starRating <4,\'c-glyph f-full\':$ctrl.starRating >=4}" ng-click="$ctrl.starRated(4)" name="4" aria-describedby="title2" aria-label="{{$ctrl.cmsData.ariaStar4}}"><\/button>\n                                <button ng-class="{\'c-glyph f-none\':$ctrl.starRating <5,\'c-glyph f-full\':$ctrl.starRating >=5}" ng-click="$ctrl.starRated(5)" name="5" aria-describedby="title2" aria-label="{{$ctrl.cmsData.ariaStar5}}" itemprop="bestRating"><\/button>\n                            <\/form>\n                        <\/div>\n                        <p class="privacy" mee-caption="caption1">\n                            {{$ctrl.cmsData.privacyStatement}} <a href="{{$ctrl.cmsData.privacyLink}}" target="_blank" mee-hyperlink>{{$ctrl.cmsData.privacyLinkTxt}}<\/a>\n                        <\/p>\n                    <\/section>\n                    <section id="pivotProblem" role="tabpanel" ng-attr-aria-hidden="{{$ctrl.activePivot!=\'pivotProblem\'}}">\n                        <mee-select ng-model="$ctrl.qSelected" menu-style="flex border scroll" class="wildSelect" ng-change="$ctrl.questionSelected()">\n                            <label>{{$ctrl.cmsData.tab2Title1}}<\/label>\n                            <select>\n                                <option ng-selected="{{opt.key == \'Q0\'}}" value="{{opt.key}}" ng-repeat="opt in $ctrl.questions">{{opt.value}}<\/option>\n                            <\/select>\n                        <\/mee-select>\n                        <div class="answerPanel">\n                            <span ng-repeat="answer in $ctrl.answers" ng-hide="$ctrl.qSelected!=answer.key">{{answer.content}} <a mee-hyperlink target="blank" data-bi-id="fbp_{{answer.key}}" href="{{answer.linkHref}}">{{answer.linkTxt}}<\/a><\/span>\n                        <\/div>\n                        <mee-text-area kind="scrollable flex not-resizable">\n                            <label class="x-screen-reader">{{$ctrl.cmsData.cmtPlaceholder}}<\/label>\n                            <textarea rows="5" maxlength="500" role="textbox" ng-trim="true" ng-model="$ctrl.commentProblem" ng-change="$ctrl.commentChanged()" ng-keypress="$ctrl.textAreaKeyPress()"><\/textarea>\n                            <span>{{$ctrl.commentProblem.length}}/500<\/span>\n                        <\/mee-text-area>\n                        <p mee-caption="caption1">\n                            {{$ctrl.cmsData.privacyStatement}} <a href="{{$ctrl.cmsData.privacyLink}}" target="_blank" mee-hyperlink>{{$ctrl.cmsData.privacyLinkTxt}}<\/a>\n                        <\/p>\n                    <\/section>\n                <\/section>\n            <\/div>\n            <div role="alert" ng-if="$ctrl.isSubmited">\n                <h2>{{$ctrl.cmsData.ackHeader}}<\/h2>\n                <div>\n                    <p mee-paragraph="para4">{{$ctrl.cmsData.ackTitle}}<\/p>\n                <\/div>\n            <\/div>\n            <div class="c-group">\n                <button ng-if="!$ctrl.isSubmited" id="feedback-submit" mee-button="primary" ng-disabled="!$ctrl.ok2Submit" ng-click="$ctrl.submit()" aria-label="{{$ctrl.dialog.ariaCloseDialog}}">{{$ctrl.cmsData.btnSubmit}}<\/button>\n                <button ng-if="!$ctrl.isSubmited" mee-button ng-click="$ctrl.cancel()">{{$ctrl.cmsData.btnCancel}}<\/button>\n                <button ng-if="$ctrl.isSubmited" mee-button="primary" ng-click="$ctrl.close()" mee-auto-focus aria-label="{{$ctrl.cmsData.ariaCloseDialog}}">{{$ctrl.cmsData.btnClose}}<\/button>\n            <\/div>\n            <div data-bottom-bound tabindex="0"><\/div>\n        <\/div>\n    <\/div>\n<\/div>'})],r)}();t.FeedbackComponent=r})(t=n.Feedback||(n.Feedback={}))}(MeePortal||(MeePortal={}))