{"version":3,"file":"remote_state-D9XB6hNI.js","sources":["../../../app/assets/javascripts/app/authentication/state.ts","../../../app/assets/javascripts/app/authentication/remote_state.ts"],"sourcesContent":["import jQuery from \"jquery\"\nimport _once from \"lodash/once\"\n\nconst getHtmlEl = _once(() => jQuery(\"html\"))\nconst getBodyEl = _once(() => jQuery(\"body\"))\n\nconst SIGN_IN_CLASS = \"user-signed-in\"\nconst SIGN_OUT_CLASS = \"user-signed-out\"\n\nconst isSignedIn = () => getHtmlEl().hasClass(SIGN_IN_CLASS)\nconst isSignedOut = () => getHtmlEl().hasClass(SIGN_OUT_CLASS)\n\nconst setSignedIn = () => {\n getHtmlEl().removeClass(SIGN_OUT_CLASS).addClass(SIGN_IN_CLASS)\n getBodyEl().removeClass(SIGN_OUT_CLASS).addClass(SIGN_IN_CLASS)\n}\nconst setSignedOut = () => {\n getHtmlEl().removeClass(SIGN_IN_CLASS).addClass(SIGN_OUT_CLASS)\n getBodyEl().removeClass(SIGN_IN_CLASS).addClass(SIGN_OUT_CLASS)\n}\n\nexport default {\n isSignedIn,\n isSignedOut,\n setSignedIn,\n setSignedOut,\n}\n\nexport {\n isSignedIn,\n isSignedOut,\n setSignedIn,\n setSignedOut,\n}\n","\nimport on_domready from \"domready\"\nimport u from \"umbrellajs\"\nimport Promise from \"plugins/bluebird/index\"\nimport URI from \"urijs\"\n\nimport { isSignedIn, setSignedIn } from \"./state\"\n\nimport { Page } from \"app/multi_device\"\nimport q_ajax_3 from \"app/utils/q_ajax/q_ajax_3\"\n\n\nimport I18n from \"plugins/i18n-js\"\n\n\nconst POST_AUTH_PARTIAL_UPDATE_DATE_ATTRIBUTE_NAME = \"post-ajax-auth-partial-update-url\"\n\n\nconst signed_callbacks: Array<() => void> = []\n\n\nconst getSignedInPromise = (): Promise => {\n return new Promise((resolve, reject) => {\n q_ajax_3({\n url: `/${I18n.locale}/my/auth_states/signed_in`,\n method: \"GET\",\n dataType: \"JSON\",\n })\n .then(({data, response}) => {\n if (typeof data.signed_in === \"undefined\"){\n reject(response)\n }\n\n resolve(data.signed_in)\n })\n .catch(({response}) => {\n reject(response)\n })\n .done()\n })\n}\n\nconst setAsSignedInAndRefreshComponents = () => {\n // Need to change style\n setSignedIn()\n\n refreshComponents()\n}\n\nfunction refreshComponents() {\n Promise.all(u(`[data-${POST_AUTH_PARTIAL_UPDATE_DATE_ATTRIBUTE_NAME}]`).nodes.map((el) => {\n const $el = u(el)\n\n const url_object = URI($el.data(POST_AUTH_PARTIAL_UPDATE_DATE_ATTRIBUTE_NAME))\n if (Page.isForMobile()) {\n url_object.query({is_mobile: \"true\"})\n }\n\n return q_ajax_3({\n url: url_object.toString(),\n method: \"GET\",\n dataType: \"html\",\n })\n .then(({data, response}) => {\n $el.html(data)\n })\n }))\n .then(() => {\n signed_callbacks.forEach((callback) => callback())\n })\n}\n\n// Note: Cannot handle from sign in to sign out\n// Since we have no AJAX sign out yet\n//\n// @return boolean [signed_in]\nconst refreshAndUpdateComponentPromise = (): Promise => {\n return new Promise((resolve) => {\n on_domready(() => {\n if (isSignedIn()){\n // No point checking remote state if signed in\n refreshComponents()\n resolve(true)\n return\n }\n\n getSignedInPromise()\n .then((signed_in) => {\n if (!signed_in){\n // If remote is signed out too then stop\n resolve(false)\n return\n }\n // Local: signed out, remote: signed in\n setAsSignedInAndRefreshComponents()\n resolve(true)\n })\n })\n })\n}\n\nconst onSignedIn = (callback: () => void): void => {\n if (isSignedIn()){\n callback()\n // Some callbacks must be called after `refreshComponents`\n // So we don't call `return` here\n }\n\n signed_callbacks.push(callback)\n}\n\nexport default {\n refreshAndUpdateComponentPromise,\n}\n\nexport {\n refreshAndUpdateComponentPromise,\n onSignedIn,\n}\n"],"names":["getHtmlEl","_once","jQuery","getBodyEl","SIGN_IN_CLASS","SIGN_OUT_CLASS","isSignedIn","isSignedOut","setSignedIn","setSignedOut","Auth_state","POST_AUTH_PARTIAL_UPDATE_DATE_ATTRIBUTE_NAME","signed_callbacks","getSignedInPromise","Promise","resolve","reject","q_ajax_3","I18n","data","response","setAsSignedInAndRefreshComponents","refreshComponents","u","el","$el","url_object","URI","Page","callback","refreshAndUpdateComponentPromise","on_domready","signed_in","onSignedIn","Authentication_remote_state"],"mappings":"gXAGA,MAAMA,EAAYC,EAAM,IAAMC,EAAO,MAAM,CAAC,EACtCC,EAAYF,EAAM,IAAMC,EAAO,MAAM,CAAC,EAEtCE,EAAgB,iBAChBC,EAAiB,kBAEjBC,EAAa,IAAMN,IAAY,SAASI,CAAa,EACrDG,EAAc,IAAMP,IAAY,SAASK,CAAc,EAEvDG,EAAc,IAAM,CACxBR,EAAY,EAAA,YAAYK,CAAc,EAAE,SAASD,CAAa,EAC9DD,EAAY,EAAA,YAAYE,CAAc,EAAE,SAASD,CAAa,CAChE,EACMK,EAAe,IAAM,CACzBT,EAAY,EAAA,YAAYI,CAAa,EAAE,SAASC,CAAc,EAC9DF,EAAY,EAAA,YAAYC,CAAa,EAAE,SAASC,CAAc,CAChE,EAEeK,EAAA,CACb,WAAAJ,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,CACF,ECXME,EAA+C,oCAG/CC,EAAsC,CAAC,EAGvCC,EAAqB,IAClB,IAAIC,EAAQ,CAACC,EAASC,IAAW,CAC7BC,EAAA,CACP,IAAU,IAAI,OAAAC,EAAK,OAAM,6BACzB,OAAU,MACV,SAAU,MACX,CAAA,EACA,KAAK,CAAC,CAAC,KAAAC,EAAM,SAAAC,KAAc,CACtB,OAAOD,EAAK,UAAc,KAC5BH,EAAOI,CAAQ,EAGjBL,EAAQI,EAAK,SAAS,CACvB,CAAA,EACA,MAAM,CAAC,CAAC,SAAAC,KAAc,CACrBJ,EAAOI,CAAQ,CAChB,CAAA,EACA,KAAK,CAAA,CACP,EAGGC,EAAoC,IAAM,CAElCb,EAAA,EAEMc,EAAA,CACpB,EAEA,SAASA,GAAoB,CACnBR,EAAA,IAAIS,EAAE,SAAS,OAAAZ,EAA4C,IAAG,EAAE,MAAM,IAAKa,GAAO,CAClF,MAAAC,EAAMF,EAAEC,CAAE,EAEVE,EAAaC,EAAIF,EAAI,KAAKd,CAA4C,CAAC,EACzE,OAAAiB,EAAK,eACPF,EAAW,MAAM,CAAC,UAAW,MAAA,CAAO,EAG/BT,EAAS,CACd,IAAUS,EAAW,SAAS,EAC9B,OAAU,MACV,SAAU,MACX,CAAA,EACA,KAAK,CAAC,CAAC,KAAAP,EAAM,SAAAC,KAAc,CAC1BK,EAAI,KAAKN,CAAI,CAAA,CACd,CAAA,CACF,CAAC,EACD,KAAK,IAAM,CACVP,EAAiB,QAASiB,GAAaA,EAAA,CAAU,CAAA,CAClD,CACH,CAMA,MAAMC,EAAmC,IAChC,IAAIhB,EAAkBC,GAAY,CACvCgB,EAAY,IAAM,CAChB,GAAIzB,IAAa,CAEGgB,EAAA,EAClBP,EAAQ,EAAI,EACZ,MAAA,CAGiBF,EAAA,EAClB,KAAMmB,GAAc,CACnB,GAAI,CAACA,EAAU,CAEbjB,EAAQ,EAAK,EACb,MAAA,CAGgCM,EAAA,EAClCN,EAAQ,EAAI,CAAA,CACb,CAAA,CACF,CAAA,CACF,EAGGkB,EAAcJ,GAA+B,CAC7CvB,KACOuB,EAAA,EAKXjB,EAAiB,KAAKiB,CAAQ,CAChC,EAEeK,EAAA,CACb,iCAAAJ,CACF"}