define("metaserver/static/js/modules/clean/profile_services/auth_callback_handler",["require","exports","tslib","metaserver/static/js/modules/core/browser","metaserver/static/js/modules/core/notify","metaserver/static/js/modules/core/uri","metaserver/static/js/modules/clean/deprecated_ajax/ajax_jquery","metaserver/static/js/modules/core/i18n"],(function(e,t,r,s,i,n,o,a){"use strict";function l(e,t,r){e.trigger(t,r)}Object.defineProperty(t,"__esModule",{value:!0}),t.handleCalendarLinkResponse=t.handleLoginResponse=t.handleRegisterResponse=void 0,s=r.__importStar(s),o=r.__importStar(o),t.handleRegisterResponse=function(e,t,r,o,c){var _;e.success&&e.user_id?c?c({display_name:e.profile.name,id:e.user_id,email:e.profile.email}):(_=t.loginCont||"/",s.redirect(_)):e.success?(o&&o(),(function(e,t,r){const{profile:i,emailSig:o,refreshToken:a}=e,{given_name:c,family_name:_,email:d,picture_url:u}=i,{registerCont:p,signupTag:g,k:m,eh:f,showMarketingOptIn:h,signupEndpoint:v,signupReferrer:O,signupUrl:S,trackingParams:y}=t,M={cont:p,eh:f,email:d,email_sig:o,fname:c,k:m,lname:_,picture_url:u,refresh_token:a,show_marketing_opt_in:h,signup_endpoint:v,signup_referrer:O,signup_tag:g,signup_url:S,tracking_params:y},E=Object.keys(M).reduce((e,t)=>{const r=M[t];return void 0!==r&&(e[t]=String(r)),e},{});r&&l(r.form,r.newAccount,E);t.canRedirect?s.redirect(new n.URI({path:"/third_party_signup",query:E}).toString()):t.inlineRedirect&&t.inlineRedirect(M)})({emailSig:e.email_sig,refreshToken:e.refresh_token,profile:e.profile},t,r)):(function(e,t,r){if("tfa_required"===e.errMsg){const r={cont:t};null!=e.pairUser&&(r.pair_user=e.pairUser.toString()),null!=e.rememberMe&&(r.remember_me=e.rememberMe.toString()),s.redirect(new n.URI({path:"/verify_code",query:r}).toString())}else if("sso_required"===e.errMsg){const r={email:e.profile.email,cont:t};s.redirect(new n.URI({path:"/login",query:r}).toString())}else"user_exists"===e.errMsg?(r&&l(r.form,r.userExists,{focus:"input[name=login_password]",prefill:{".login-email":e.profile.email,"input[type='hidden'][name=refresh_token]":e.refreshToken,"input[type='hidden'][name=email_sig]":e.emailSig}}),i.Notify.error(a.intl.formatMessage({id:"RAxZa6",defaultMessage:"This email address is already taken. Please sign in."}))):"user_already_invited_to_team"===e.errMsg?i.Notify.error(a.intl.formatMessage({id:"uE2zpB",defaultMessage:"Contact your admin to resend your invite."})):"email_not_verified"===e.errMsg?i.Notify.error(a.intl.formatMessage({id:"S6RuBm",defaultMessage:"Before you can sign in, you’ll need to verify your account with Google {email}"},{email:e.profile.email})):i.Notify.error(a.intl.formatMessage({id:"/5Xr9S",defaultMessage:"Unable to link to Google. Please refresh the page to try again."}))})({errMsg:e.err_msg,rememberMe:e.remember_me,pairUser:e.pair_user,profile:e.profile,emailSig:e.email_sig,refreshToken:e.refresh_token},t.loginCont||"/",r)},t.handleLoginResponse=function(e,t){if(e.success)i.Notify.success(a.intl.formatMessage({id:"pnPTCp",defaultMessage:"Log in successful!"})),o.SilentBackgroundRequest({url:"/profile_services/log",data:{event_name:"login_callback_success",value:"success"}}),t.onSuccess(),t.redirectOnSuccess&&s.redirect(t.cont);else if(o.SilentBackgroundRequest({url:"/profile_services/log",data:{event_name:"login_callback_error",value:e.err_msg}}),"access_denied"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"4F3Rmj",defaultMessage:"You need to accept Google’s request in order to log in."}));else if("emails_do_not_match"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"9ZZYrU",defaultMessage:"We couldn’t find a Dropbox account matching that email."}));else if("google_login_not_allowed"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"hf0hON",defaultMessage:"Google sign in is disabled. Sign in with your Dropbox password or ask your Dropbox admin for help."}));else if("sso_required"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"/izp8x",defaultMessage:"Your team has single sign-on. Sign in with your Dropbox password or ask your Dropbox admin for help."}));else if("tfa_required"===e.err_msg){const r=new n.URI({path:"/verify_code",query:{cont:t.cont,remember_me:String(e.remember_me),pair_user:String(e.pair_user)}}).toString();s.redirect(r)}else if("disabled_account"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"ZKpC55",defaultMessage:"This account is disabled."}));else if("invalid_pair_target"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"b47mh4",defaultMessage:"That account can’t be paired. Paired account must be a personal account."}));else if("already_paired"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"vbDuY9",defaultMessage:"That account is already paired to another account."}));else if("error_pairing"===e.err_msg)i.Notify.error(a.intl.formatMessage({id:"AH4JT6",defaultMessage:"There was an error pairing."}));else if("not_verified"===e.err_msg){const r=new n.URI({path:"/show_password_form",query:{cont:t.cont,remember_me:String(e.remember_me),pair_user:String(e.pair_user)}}).toString();s.redirect(r)}else"emails_do_not_match_redirect"===e.err_msg?s.redirect(new n.URI({path:"/third_party_signup",query:{email_sig:e.email_sig,email:e.profile.email,fname:e.profile.given_name,lname:e.profile.family_name,refresh_token:e.refresh_token,cont:t.cont}})):i.Notify.error(a.intl.formatMessage({id:"ELzCWG",defaultMessage:"We couldn’t log you in with Google. Try again?"}))},t.handleCalendarLinkResponse=function(e,t){e.success?(i.Notify.success(a.intl.formatMessage({id:"r1Kfvk",defaultMessage:"Successfully connected your Google Calendar"})),t.onSuccess()):i.Notify.error(a.intl.formatMessage({id:"aWO5m4",defaultMessage:"Couldn’t connect your Google Calendar"}))}})),define("metaserver/static/js/modules/clean/profile_services/popup_handler",["require","exports","tslib","lodash"],(function(e,t,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeAuthCompleteListener=t.addAuthCompleteListener=void 0,s=r.__importStar(s);const i={};t.addAuthCompleteListener=function(e){const t=s.uniqueId(),r=t=>{let r;try{r=JSON.parse(t.data)}catch(e){return}r&&"db:profile_service:auth_complete"===r.type&&e(r.payload)};return window.addEventListener("message",r),i[t]=r,t},t.removeAuthCompleteListener=function(e){const t=i[e];t&&(delete i[e],window.removeEventListener("message",t))}})),define("metaserver/static/js/modules/clean/profile_services/profile_services_constants",["require","exports","metaserver/static/js/modules/core/assert","metaserver/static/js/modules/core/i18n"],(function(e,t,r,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceRequestType=t.ServiceResponseType=void 0,(function(e){e.APPLE="APPLE",e.GOOGLE="GOOGLE"})(t.ServiceResponseType||(t.ServiceResponseType={})),(function(e){e[e.CONTACTS=0]="CONTACTS",e[e.PROFILE=1]="PROFILE",e[e.PHOTO=2]="PHOTO",e[e.EMAIL=3]="EMAIL",e[e.CALENDAR=4]="CALENDAR",e[e.DOCUMENTS=5]="DOCUMENTS",e[e.CHAT=6]="CHAT",e[e.READ_FILES=7]="READ_FILES",e[e.DIRECTORY_MEMBERS=8]="DIRECTORY_MEMBERS"})(t.ServiceRequestType||(t.ServiceRequestType={})),(function(e){e.to_api_v2=function(t){switch(t){case e.CONTACTS:return{".tag":"contacts"};case e.PROFILE:return{".tag":"profile"};case e.PHOTO:return{".tag":"photo"};case e.EMAIL:return{".tag":"email"};case e.CALENDAR:return{".tag":"calendar"};case e.DOCUMENTS:return{".tag":"documents"};case e.CHAT:return{".tag":"chat"};case e.READ_FILES:return{".tag":"read_files"};case e.DIRECTORY_MEMBERS:return{".tag":"directory_members"};default:return r.assert(!1,`Should never get ServiceRequestType.to_api_v2 with request type: ${e[t]}`)}}})(t.ServiceRequestType||(t.ServiceRequestType={}));const i={apple:{action:null,permissions:"",landing_page_id:null,learn_more_page:null,img:"/static/images/index/apple-logo-color.svg",friendly_name:"Apple",order:1},google:{action:"link_contacts",permissions:s.intl.formatMessage({id:"sN1hXL",defaultMessage:"Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/index/google-logo-color-vflpJqkMT.svg",friendly_name:"Google",order:3},outlook:{action:"link_contacts",permissions:s.intl.formatMessage({id:"Tgwos1",defaultMessage:"Calendar and Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/outlook_icon-vflzzt-G0.svg",friendly_name:"Outlook",order:4},slack:{action:"link_contacts",permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/slack_icon_transparent-vfljNpDIm.svg",friendly_name:"Slack",order:Number.MAX_VALUE},slack_dropbox:{action:"link_read_files",permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:"dropbox_slack",learn_more_page:"https://www.dropbox.com/help/desktop-web/slack",img:"/static/images/thirdparty/slack_icon_transparent-vfljNpDIm.svg",friendly_name:"Slack",order:5},zoom:{action:"link_contacts",permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:"zoom",learn_more_page:"https://www.dropbox.com/help/desktop-web/zoom",img:"/static/images/thirdparty/zoom_icon_squircle-vfl-znF5M.svg",friendly_name:"Zoom",order:8},zoom_app:{action:null,permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:"zoom_app",learn_more_page:null,img:"/static/images/thirdparty/zoom_icon_squircle-vfl-znF5M.svg",friendly_name:"Dropbox Spaces app for Zoom",order:8},trello:{action:"link_contacts",permissions:s.intl.formatMessage({id:"iiiHMO",defaultMessage:"Project management"}),landing_page_id:"trello",learn_more_page:"https://www.dropbox.com/landing/trello",img:"/static/images/thirdparty/trello_icon-vfl-FetdA.svg",friendly_name:"Trello",order:6},yahoo:{action:null,permissions:s.intl.formatMessage({id:"sN1hXL",defaultMessage:"Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/yahoo_icon-vflqXkWjv.svg",friendly_name:"Yahoo! Mail",order:7},yahoo_legacy:{action:null,permissions:s.intl.formatMessage({id:"sN1hXL",defaultMessage:"Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/yahoo_icon-vflqXkWjv.svg",friendly_name:"Yahoo! Mail",order:Number.MAX_VALUE},facebook:{action:null,permissions:s.intl.formatMessage({id:"sN1hXL",defaultMessage:"Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/facebook_icon-vflbyEm0k.svg",friendly_name:"Facebook",order:2},hellosign:{action:null,permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:null,learn_more_page:null,img:"/static/images/thirdparty/hellosign_icon-vflSwegks.svg",friendly_name:"HelloSign",order:9},canvas:{action:"link_contacts",permissions:s.intl.formatMessage({id:"reDVDJ",defaultMessage:"Communication"}),landing_page_id:null,learn_more_page:"https://help.dropbox.com/installs-integrations/third-party/canvas",img:"/static/images/thirdparty/canvas_icon.svg",friendly_name:"Canvas",order:10}},n={profile_card_v2:{google:{action:"link_calendar",permissions:s.intl.formatMessage({id:"Tgwos1",defaultMessage:"Calendar and Contacts"}),landing_page_id:null,learn_more_page:null,img:"/static/images/index/google-logo-color-vflpJqkMT.svg",friendly_name:"Google",order:1}}},o={GOOGLE:"1",YAHOO:"2",FACEBOOK:"3",TWITTER:"4",YAHOO_LEGACY:"5",MOBILE:"6",OUTLOOK:"7",SLACK:"8",DOCUSIGN:"9",ZOOM:"10",SLACK_DROPBOX:"11",TRELLO:"12",APPLE:"13",HELLOSIGN:"14",CANVAS:"15",ZOOM_APP:"16",NEVER_CONNECTED:0,WAS_CONNECTED:1,IS_CONNECTED:2,VARIOUS:"-1",NONE:"-2",services:()=>[o.GOOGLE,o.YAHOO,o.FACEBOOK,o.TWITTER,o.YAHOO_LEGACY,o.OUTLOOK,o.SLACK,o.DOCUSIGN,o.ZOOM,o.SLACK_DROPBOX,o.TRELLO,o.APPLE,o.HELLOSIGN,o.ZOOM_APP],get_gated_service_data(e,t){const r=e[".tag"];if(t&&t in n){const e=n[t];if(r in e)return e[r]}},get_service_data(e,t=null){const s=e[".tag"];if(t){const r=o.get_gated_service_data(e,t);if(r)return r}return s in i?i[s]:r.assert(!1,`Should never get ProfileServicesConstants.get_service_data with service: ${s}`)},importable_contact_services:()=>[o.GOOGLE],to_img_legacy(e){switch(e){case o.GOOGLE:return["/static/images/contacts/import_icon_google-vflSfFckp.png","/static/images/contacts/import_icon_google@2x-vfla9_OFL.png"];case o.YAHOO:case o.YAHOO_LEGACY:return["/static/images/contacts/import_icon_yahoo-vfl5E728M.png","/static/images/contacts/import_icon_yahoo@2x-vflnVdi5R.png"];case o.FACEBOOK:return["/static/images/contacts/import_icon_facebook-vfluFbt1j.png","/static/images/contacts/import_icon_facebook@2x-vfl7Zk5rR.png"];case o.OUTLOOK:return["/static/images/contacts/import_icon_outlook-vflF1_UKs.png","/static/images/contacts/import_icon_outlook@2x-vflVjRgD3.png"];case o.SLACK:case o.SLACK_DROPBOX:return["/static/images/thirdparty/slack_icon-vflKvKltK.svg","/static/images/thirdparty/slack_icon-vflKvKltK.svg"];case o.ZOOM:case o.ZOOM_APP:return["/static/images/thirdparty/zoom_icon-vflft17yG.svg","/static/images/thirdparty/zoom_icon-vflft17yG.svg"];case o.TRELLO:return["/static/images/thirdparty/trello_icon-vfl-FetdA.svg","/static/images/thirdparty/trello_icon-vfl-FetdA.svg"];case o.HELLOSIGN:return["/static/images/thirdparty/hellosign_icon-vflSwegks.svg","/static/images/thirdparty/hellosign_icon-vflSwegks.svg"];case o.CANVAS:return["/static/images/thirdparty/canvas_icon.svg","/static/images/thirdparty/canvas_icon.svg"];default:return r.assert(!1,`Should never get ProfileServicesConstants.to_img_legacy with service: ${e}`)}},to_name(e){if(e===o.VARIOUS)return s.intl.formatMessage({id:"hK3Vsp",defaultMessage:"Email"});{const t=o.to_api_service_type(e);return o.get_service_data(t).friendly_name}},logging_identifiers(e){switch(e){case o.GOOGLE:return"google";case o.YAHOO:return"yahoo";case o.FACEBOOK:return"facebook";case o.VARIOUS:return"email";case o.YAHOO_LEGACY:return"yahoo_legacy";case o.OUTLOOK:return s.intl.formatMessage({id:"DVWR1j",defaultMessage:"outlook"});case o.SLACK:return s.intl.formatMessage({id:"D/5sPh",defaultMessage:"slack"});case o.DOCUSIGN:return"docusign";case o.ZOOM:return"zoom";case o.ZOOM_APP:return"zoom_app";case o.SLACK_DROPBOX:return"slack_dropbox";case o.TRELLO:return"trello";case o.APPLE:return"apple";case o.HELLOSIGN:return"hellosign";case o.CANVAS:return"canvas";default:return r.assert(!1,`Should never get ProfileServicesConstants.logging_identifiers with service: ${e}`)}},to_api_service_type(e){switch(e){case o.GOOGLE:return{".tag":"google"};case o.YAHOO:return{".tag":"yahoo"};case o.FACEBOOK:return{".tag":"facebook"};case o.OUTLOOK:return{".tag":"outlook"};case o.SLACK:return{".tag":"slack"};case o.ZOOM:return{".tag":"zoom"};case o.ZOOM_APP:return{".tag":"zoom_app"};case o.SLACK_DROPBOX:return{".tag":"slack_dropbox"};case o.TRELLO:return{".tag":"trello"};case o.APPLE:return{".tag":"apple"};case o.HELLOSIGN:return{".tag":"hellosign"};case o.CANVAS:return{".tag":"canvas"};default:return r.assert(!1,`Should never get ProfileServicesConstants.to_api_service_type with service: ${e}`),{".tag":"other"}}},from_api_service_type(e){switch(e[".tag"]){case"google":return o.GOOGLE;case"yahoo":return o.YAHOO;case"facebook":return o.FACEBOOK;case"outlook":return o.OUTLOOK;case"slack":return o.SLACK;case"zoom":return o.ZOOM;case"zoom_app":return o.ZOOM_APP;case"slack_dropbox":return o.SLACK_DROPBOX;case"trello":return o.TRELLO;case"apple":return o.APPLE;case"hellosign":return o.HELLOSIGN;case"canvas":return o.CANVAS}return r.assert(!1,`Should never get ProfileServicesConstants.from_api_service_type with service: ${e}`),o.VARIOUS},from_api_to_name:e=>o.to_name(o.from_api_service_type(e)),from_api_to_img:e=>o.get_service_data(e).img,oauth_window_dimensions(e){let t=600,r=600;return e===o.ZOOM?t=770:e===o.APPLE?t=700:e===o.CANVAS&&(t=700,r=500),{width:t,height:r}}};t.default=o})),define("metaserver/static/js/modules/clean/profile_services/profile_services_link",["require","exports","tslib","metaserver/static/js/modules/core/assert","metaserver/static/js/modules/core/browser","metaserver/static/js/modules/core/i18n","metaserver/static/js/modules/core/uri","metaserver/static/js/modules/clean/deprecated_ajax/ajax_jquery","metaserver/static/js/modules/clean/analytics","metaserver/static/js/modules/clean/profile_services/popup_handler","metaserver/static/js/modules/clean/profile_services/profile_services_constants","metaserver/static/js/modules/clean/viewer","metaserver/static/js/modules/constants/login_and_register","metaserver/static/js/modules/clean/react/snackbar","metaserver/static/js/modules/core/browser"],(function(e,t,r,s,i,n,o,a,l,c,_,d,u,p,g){"use strict";var m;Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileServicesLinkingHandler=t.LinkedProfileServices=t.is_profile_services_action=t.AuthWindowOption=void 0,i=r.__importStar(i),a=r.__importStar(a),_=r.__importDefault(_),u=r.__importStar(u),(function(e){e.HIDDEN_IFRAME="hidden_iframe",e.POP_UP="pop_up",e.REDIRECT="redirect"})(m=t.AuthWindowOption||(t.AuthWindowOption={})),t.is_profile_services_action=function(e){return"link_directory_members"===e||"link_calendar"===e||"link_contacts"===e||"link_target_user"===e||"link_read_files"===e||"link_history"===e||"login_user"===e||"create_user"===e};class f{constructor(e,t=null){this.update_on_auth_event=e=>{if(e.user_id===this.user_id){this.is_updated=!1,this.get_or_update_connected_state(!0);for(const e in this.serviceChangeCallbacks)this.serviceChangeCallbacks.hasOwnProperty(e)&&this.serviceChangeCallbacks[e](this)}},s.assert(null!==e,"No user id provided"),this.user_id=e,this.connectedServices={},this.is_updated=!1,this.get_or_update_connected_state(!0,t),this.serviceChangeCallbacks={},c.addAuthCompleteListener(this.update_on_auth_event)}static get_linked_profile_services_for_user(e,t=null){s.assert(null!==e,"No user_id: LinkedProfileServices.get_linked_profile_services_for_user()");let r=this._LINKED_PROFILE_SERVICES[e];return void 0!==r?r.get_or_update_connected_state(!1,t):(r=new f(e,t),this._LINKED_PROFILE_SERVICES[e]=r),r}get_or_update_connected_state(e=!1,t=null){this.is_updated&&!e?null!==t&&t(this):a.BackgroundRequest({url:"/profile_services/connected_services",subject_user:this.user_id,dataType:"json",success:(e,r,s)=>{this.connectedServices=e,this.is_updated=!0,null!==t&&t(this)}})}connected_accounts_for_service(e){return this.connectedServices[e]?this.connectedServices[e].map(e=>e.source_id):[]}has_connected_services(){for(const e of _.default.services())if(this.service_is_connected(e))return!0;return!1}has_unconnected_services(e=!1){const t=e?_.default.importable_contact_services():_.default.services();for(const e of t)if(e!==_.default.YAHOO_LEGACY&&!this.service_is_connected(e))return!0;return!1}service_is_connected(e){if(s.assert(-1!==_.default.services().indexOf(e),"Not a valid profile service"),null==this.connectedServices[e])return!1;for(const t of this.connectedServices[e])if(t.connection_state===_.default.IS_CONNECTED)return!0;return!1}service_was_connected(e){if(s.assert(-1!==_.default.services().indexOf(e),"Not a valid profile service"),null==this.connectedServices[e])return!1;for(const t of this.connectedServices[e])if(t.connection_state===_.default.WAS_CONNECTED)return!0;return!1}register_for_service_changes(e,t){return this.serviceChangeCallbacks[e]=t}}t.LinkedProfileServices=f,f._LINKED_PROFILE_SERVICES={};function h(e){s.assert(null!==e,"No user_id provided to auth_service_with_user");const t=d.Viewer.get_viewer().get_user_by_id(e);s.assert(null!==t,`No user for user_id ${e}`)}function v(e){const t={};return Object.keys(e).forEach(r=>{const s=e[r];null!=s&&(t[r]=s)}),t}t.ProfileServicesLinkingHandler=class{constructor(){this._popup_window=null}static show_import_notifications(e){e.success?(l.TeamsWebActionsLogger.log("import_contacts_complete",{provider:_.default.logging_identifiers(e.provider),path:i.get_uri().getPath()}),p.Snackbar.complete(n.intl.formatMessage({id:"JxBPfw",defaultMessage:"Successfully connected {service_name}"},{service_name:_.default.to_name(e.provider)}),"profile-services-link")):null!==e.err_msg?p.Snackbar.fail(e.err_msg,"profile-services-link"):p.Snackbar.fail(n.intl.formatMessage({id:"J+0ZxM",defaultMessage:"Could not complete connection, try again later"}),"profile-services-link")}_close_popup_window(){null!=this._popup_window&&(this._popup_window.close(),this._popup_window=null)}_wait_for_auth_complete(e){return new Promise((t,r)=>{let s=null;this._close_popup_window();let i=null;const n=c.addAuthCompleteListener(e=>{if(i=e,!i.settings_config_pending)return c.removeAuthCompleteListener(n),null!=s&&clearInterval(s),this._close_popup_window(),t(e)}),o=e();if(null==o)return r("window_not_created");this._popup_window=o,s=setInterval(()=>{if(!0===o.closed)return i?t(i):(r("window_closed"),c.removeAuthCompleteListener(n),void clearInterval(s))},1e3)})}_window_open_features(e){const{width:t,height:r}=_.default.oauth_window_dimensions(e),s={width:t,height:r,resizable:1,scrollbars:1};return Object.keys(s).map((function(e){return`${e}=${s[e]}`})).join(",")}_post_redirect_to_url(e,t,r,s,n=!1){let a;a=s?"/profile_services/redirect_to_identity_provider":e===_.default.CANVAS?"/canvas/select_domain":"/profile_services/start_auth_flow";const l=new o.URI({path:a,query:t}).toString();if(n){const e={success:!0,provider:"",user_id:null,profile:{service_id:"",name:"",given_name:"",family_name:"",email:"",picture_url:"",additional_emails:[],verified_email:!1,organization:""},email_sig:"",refresh_token:"",err_msg:null,localized_error:null,login_info:"",verified_profile_email:!1,should_update_account_photo:!1,remember_me:!1,pair_user:!1,display_name:"",granted_request_types:[],missing_request_types:[],external_service_id:"",dbx_auth:l};return Promise.resolve(e)}return r===m.HIDDEN_IFRAME?this._wait_for_auth_complete(()=>{const e=document.createElement("iframe");return e.src=l,e.style.display="none",e.style.width="0",e.style.height="0",document.body.appendChild(e),e.contentWindow}):r===m.POP_UP?this._wait_for_auth_complete(()=>{const t=_.default.to_name(e),r=this._window_open_features(e);return window.open(l,t,r)}):(i.redirect(l),Promise.reject("redirected"))}_redirect_to_identity_provider(e,t,r,i=null,n=m.POP_UP,o=null,a,l,c,_=!1){s.assert(null!==e,"No service provided to auth_service_with_user");const d={service:e,is_popup:(n===m.POP_UP).toString(),action:t,prompt_select:"true",token:u.REDIRECT_WINDOW_TOKEN,extra_state_parameters:a,extra_permissions:void 0!==l?JSON.stringify(l):void 0,login_hint:c};null!==r&&(d.user_id=r.toString()),d.referrer=i,null==o?d.is_desktop="false":"desktop"===o.kind?(d.is_desktop="true",d.host_nonce=o.host_nonce,d.login_hint=o.login_hint):(d.is_desktop="false",d.remember_me=o.remember_me.toString(),d.cont=o.cont,d.pair_user=o.pair_user.toString());const p=v(d);return this._post_redirect_to_url(e,p,n,!1,_)}auth_service_with_user_with_landing_page(e,t){const{landing_page_id:r}=_.default.get_service_data(e);return null!=r?this._wait_for_auth_complete(()=>g.open_tab(`/landing/${r}?return_to_opener=true`,!0)):null!=t?t():Promise.reject("no_landing_page")}auth_service_with_user(e,t,r=null,s=null,i="link_contacts",n,o,a,l){this.auth_service_with_user_promise(e,t,s,i,n,o,a,l).then(r)}auth_service_with_user_promise(e,t,r=null,s="link_contacts",i,n,o,a,l=!1){return h(t),this._redirect_to_identity_provider(e,s,t,r,void 0!==i?i:m.POP_UP,null,n,o,a,l)}auth_service_with_specified_user(e,t,r,s){this.auth_service_with_user_promise(e,t,s,"link_target_user").then(r)}auth_service_create_user_if_needed(e,t=null,r=null,s=m.POP_UP,i=null){this._redirect_to_identity_provider(e,"create_user",null,r,s,i).then(t)}auth_service_login_desktop(e,t,r,s=null){const i={kind:"desktop",host_nonce:r,login_hint:s};this._redirect_to_identity_provider(e,"login_user",null,null,m.POP_UP,i).then(t)}auth_service_login_web(e,t,r,s,i,n,o){const a={kind:"web",remember_me:i,cont:n,pair_user:o};this._redirect_to_identity_provider(e,"login_user",null,r,s,a).then(t)}auth_service_link_calendar(e,t,r,s){return h(t),this._redirect_to_identity_provider(e,"link_calendar",t,s,m.POP_UP).then(r)}continue_auth_flow(e){const{user_id:t,service:r,action:s,referrer:i,cont:n,is_popup:o,pair_user:a,is_desktop:l,is_android:c,remember_me:_,host_nonce:d,login_hint:p,prompt_select:g,pkce_challenge:f,extra_state_parameters:h}=e,O={service:r,action:"link_contacts",prompt_select:"true",token:u.REDIRECT_WINDOW_TOKEN};O.action=s,null!=t&&(O.user_id=t.toString()),O.cont=n,O.referrer=i,null!=o&&(O.is_popup=o.toString()),null!=a&&(O.pair_user=a.toString()),null!=l&&(O.is_desktop=l.toString()),null!=c&&(O.is_android=c.toString()),null!=_&&(O.remember_me=_.toString()),O.host_nonce=d,O.login_hint=p,null!=g&&(O.prompt_select=g.toString()),null!=f&&(O.pkce_challenge=f),O.extra_state_parameters=h;const S=v(O);return this._post_redirect_to_url(r,S,m.REDIRECT,!0)}deauth_service(e,t,r=null,i=null){const n=parseInt(t,10);s.assert(-1!==_.default.services().indexOf(e),"Not a valid profile service"),s.assert(null!==n,"No user_id provided"),f.get_linked_profile_services_for_user(n,t=>{t.service_is_connected(e)||null===i?(null!==r&&s.assert(-1!==t.connected_accounts_for_service(e).indexOf(r),"Service is not currently connected"),a.WebRequest({url:"/profile_services/unlink",subject_user:n,data:{service:e,source_id:r},success:(e,r,s)=>(t.update_on_auth_event({user_id:n}),"function"==typeof i?i(!0):void 0),error:(e,t,r)=>"function"==typeof i?i(!1):void 0})):i(!0)})}}})),define("metaserver/static/js/modules/clean/react/paging_list",["require","exports","tslib","classnames","react","react-dom","lodash"],(function(e,t,r,s,i,n,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),s=r.__importDefault(s),i=r.__importDefault(i),n=r.__importStar(n),o=r.__importStar(o);class a extends i.default.Component{constructor(){super(...arguments),this._getScroll=()=>{const e=n.findDOMNode(this.refs.scroller).getBoundingClientRect().top;return n.findDOMNode(this.refs.container).getBoundingClientRect().top-e},this._setScroll=e=>n.findDOMNode(this.refs.container).scrollTop+=e-this._getScroll(),this._getViewportSize=()=>n.findDOMNode(this.refs.container).clientHeight,this._getStartAndEnd=()=>{const e=Math.max(0,this._getScroll()-this.props.threshold);return{start:e,end:e+this._getViewportSize()+2*this.props.threshold}},this.updateFrame=()=>{const{start:e,end:t}=this._getStartAndEnd(),{itemSize:r}=this.props,s=this._constrainFrom(Math.floor(e/r),this.props.children.length),i=this._constrainSize(Math.ceil((t-e)/r)+1,this.props.children,s);return this.setState({from:s,size:i})},this._getSpaceBefore=e=>e*this.props.itemSize,this._constrainFrom=(e,t)=>e?Math.max(Math.min(e,t-1),0):0,this._constrainSize=(e,t,r)=>{const{length:s}=t,{pageSize:i}=this.props;return Math.min(Math.max(e,i),s-r)},this.scrollTo=e=>this._setScroll(this._getSpaceBefore(e)),this.scrollAround=e=>{const t=this._getScroll(),r=this._getSpaceBefore(e);if(t>r)return this._setScroll(r);const s=r-this._getViewportSize()+this.props.itemSize;return t{const e=this.state.from+this.state.size-1;return this.props.children.slice(this.state.from,+e+1||void 0)},this.state={from:0,size:this._constrainSize(this.props.pageSize,this.props.children,0)}}UNSAFE_componentWillReceiveProps(e){const t=this._constrainFrom(this.state.from,e.children.length),r=this._constrainSize(this.state.size,e.children,t);return this.setState({from:t,size:r})}componentDidMount(){return window.addEventListener("resize",this.updateFrame),n.findDOMNode(this).addEventListener("scroll",this.updateFrame),this.updateFrame()}shouldComponentUpdate(e,t){return!o.isEqual(e,this.props)||!o.isEqual(t,this.state)}componentDidUpdate(){return this.updateFrame()}componentWillUnmount(){window.removeEventListener("resize",this.updateFrame),n.findDOMNode(this).removeEventListener("scroll",this.updateFrame)}render(){const{listHeight:e}=this.props,t=this._getSpaceBefore(this.props.children.length),r={position:"relative",height:e?Math.min(e,t):t},n=this._getSpaceBefore(this.state.from),o=this.props.useTranslate3d?`translate3d(0px, ${n}px, 0)`:`translate(0px, ${n}px)`,a={MsTransform:o,WebkitTransform:o,transform:o};return i.default.createElement("div",{className:s.default("paging-list",this.props.customClass),ref:"container"},i.default.createElement("div",{style:r,ref:"scroller"},i.default.createElement("ul",{style:a},this._renderItems())))}}a.displayName="PagingList",a.defaultProps={threshold:100,useTranslate3d:!1},t.default=a})); //# sourceMappingURL=pkg-profile_services.min.js-vfle8rS4P.map