{"version":3,"file":"js/user-sign-in-page-1a7d53146ee5c5a185d9.chunk.js","mappings":"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","sources":["webpack://agra/./node_modules/lodash/kebabCase.js","webpack://agra/./node_modules/vue-loader/dist/exportHelper.js","webpack://agra/./app/javascript/components/buttons/submit-button.vue","webpack://agra/./app/javascript/components/buttons/submit-button.vue?ffe8","webpack://agra/./app/javascript/components/inputs/authenticity-token-field.vue","webpack://agra/./app/javascript/components/inputs/authenticity-token-field.vue?6a8d","webpack://agra/./app/javascript/components/modal.vue","webpack://agra/./app/javascript/components/modal.vue?daec","webpack://agra/./app/javascript/users/facebook-sign-in.vue","webpack://agra/./app/javascript/users/facebook-sign-in.vue?95ae","webpack://agra/./app/javascript/users/google-sign-in.vue","webpack://agra/./app/javascript/users/google-sign-in.vue?7bc3","webpack://agra/./app/javascript/users/sign-in-page.vue","webpack://agra/./app/javascript/users/sign-in-page.vue?8ae9"],"sourcesContent":["var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n  return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","<template>\n  <button ref=\"button\" type=\"submit\"\n          :disabled=\"buttonDisabled\"\n          class=\"btn btn-primary\"\n          @click.prevent=\"$emit('click', $event)\">\n    <!-- Q: Why set type=submit if we're going to prevent the default behavior of submitting the form?\n         A: Having a submit button at all changes the form behavior by enabling \"Enter to submit\" on text fields -->\n    {{ buttonText }}\n  </button>\n</template>\n\n<script>\nimport { inject } from 'vue'\nimport PrimaryButton from './primary-button'\n\nexport default {\n  extends: PrimaryButton,\n\n  props: {\n    formValid: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    submitInProgress: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n\n    submittingLabel: {\n      type: String,\n      required: false,\n      default: function() { return inject('i18n').t('submitting') }\n    }\n  },\n\n  emits: ['click'],\n\n  computed: {\n    buttonDisabled() {\n      return !this.formValid || this.submitInProgress\n    },\n\n    buttonText() {\n      if (this.submitInProgress) {\n        return this.submittingLabel\n      } else {\n        return this.label\n      }\n    }\n  },\n\n  methods: {\n    click() {\n      this.$refs.button.click()\n    },\n\n    focus() {\n      this.$refs.button.focus()\n    }\n  }\n}\n</script>\n","import { render } from \"./submit-button.vue?vue&type=template&id=4ae84733\"\nimport script from \"./submit-button.vue?vue&type=script&lang=js\"\nexport * from \"./submit-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <input type=\"hidden\" name=\"authenticity_token\" :value=\"csrfToken\">\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      csrfToken: null\n    }\n  },\n\n  mounted() {\n    const tokenElement = document.querySelector('meta[name=\"csrf-token\"]')\n    if (tokenElement) {\n      this.csrfToken = tokenElement.getAttribute('content')\n    }\n  }\n}\n</script>\n","import { render } from \"./authenticity-token-field.vue?vue&type=template&id=51a10cfc\"\nimport script from \"./authenticity-token-field.vue?vue&type=script&lang=js\"\nexport * from \"./authenticity-token-field.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <div :id=\"modalId\" ref=\"root\" tabindex=\"-1\" role=\"dialog\" class=\"modal fade\">\n    <div class=\"modal-dialog\" :class=\"modalSizeClass\" role=\"document\">\n      <div class=\"modal-content\">\n        <div v-if=\"!headerless\" class=\"modal-header\">\n          <slot name=\"header\">\n            <h4 v-if=\"title\" class=\"modal-title mt-0\">\n              <slot name=\"title\">\n                {{ title }}\n              </slot>\n            </h4>\n            <button type=\"button\" class=\"btn-close\" :aria-label=\"i18n.t('close')\" @click=\"close\" />\n          </slot>\n        </div>\n        <div class=\"sub-heading\">\n          <slot name=\"sub-heading\" />\n        </div>\n        <div class=\"modal-body\" :class=\"{'paddingless-body': paddinglessBody}\">\n          <slot name=\"body\" />\n        </div>\n        <div v-if=\"hasFooterSlot\" class=\"modal-footer\">\n          <slot name=\"footer\" />\n        </div>\n      </div>\n    </div>\n\n    <slot name=\"outer-navigation\" />\n  </div>\n</template>\n\n<script>\nimport { Modal } from 'bootstrap'\n\nexport default {\n  props: {\n    modalId: {\n      type: String,\n      required: true\n    },\n    title: {\n      type: String,\n      required: false\n    },\n    showOnMount: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    size: {\n      type: String,\n      required: false,\n      default: 'lg'\n    },\n    clickOutsideToClose: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n    headerless: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    paddinglessBody: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n\n  emits: ['visibility-changed'],\n\n  data() {\n    return {\n      bootstrapModal: null,\n      transitionInProgress: false,\n      visibility: 'hidden'\n    }\n  },\n\n  computed: {\n    backdropSetting() {\n      if (this.clickOutsideToClose) {\n        return true\n      } else {\n        return 'static'\n      }\n    },\n\n    hasFooterSlot() {\n      return Object.keys(this.$slots).includes('footer')\n    },\n\n    modalSizeClass() {\n      return `modal-${this.size}`\n    }\n  },\n\n  watch: {\n    clickOutsideToClose: function() {\n      // Update the settings on the live Bootstrap modal to change whether clicks on the backdrop close the modal.\n      // This relies on an undocumented internal data structure, and will need to be updated at our next major version\n      // upgrade of bootstrap. Unfortunately, there is no supported API for changing this attribute of an already-open\n      // modal.\n      this.bootstrapModal._config.backdrop = this.backdropSetting\n    }\n  },\n\n  mounted() {\n    const vm = this\n    const rootElement = this.$refs.root\n\n    rootElement.addEventListener('hidden.bs.modal', function () {\n      vm.transitionInProgress = false\n      vm.visibility = 'hidden'\n      vm.$emit('visibility-changed', 'hidden')\n    })\n\n    rootElement.addEventListener('shown.bs.modal', function () {\n      vm.transitionInProgress = false\n      vm.visibility = 'shown'\n      vm.$emit('visibility-changed', 'shown')\n    })\n\n    this.bootstrapModal = Modal.getOrCreateInstance(this.$refs.root, {backdrop: this.backdropSetting})\n    if (this.showOnMount) {\n      this.open()\n    }\n  },\n\n  beforeUnmount() {\n    if (this.visibility === 'shown') {\n      // When a bootstrap modal opens, it adds `overflow: hidden` and `padding-right: 0px` to the body.\n      // Closing the modal normally removes those, but if we open another modal right away, a timing issue\n      // can prevent these styles from clearing when we close the second modal; this then\n      // prevents the page from scrolling. To avoid this issue, clear the body style ourselves.\n      document.body.attributeStyleMap.delete('overflow')\n      document.body.attributeStyleMap.delete('padding-right')\n    }\n\n    // If we call dispose() while there is a hide-modal transition in progress, then the callback at the end of the\n    // transition will not be able to complete properly, causing a JS console error.\n    if (!this.transitionInProgress) {\n      this.bootstrapModal.dispose()\n    }\n  },\n\n  methods: {\n    close() {\n      this.transitionInProgress = true\n      this.bootstrapModal.hide()\n    },\n\n    open() {\n      this.transitionInProgress = true\n      this.bootstrapModal.show()\n    }\n  }\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n  .paddingless-body {\n    padding-left: 0;\n    padding-right: 0;\n  }\n</style>\n\n","import { render } from \"./modal.vue?vue&type=template&id=149afa11&scoped=true\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\n\nimport \"./modal.vue?vue&type=style&index=0&id=149afa11&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-149afa11\"]])\n\nexport default __exports__","<template>\n  <form :action=\"loginUrl\" method=\"post\" class=\"d-grid\">\n    <authenticity-token-field />\n    <button type=\"submit\" class=\"btn\">\n      <img src=\"../images/icons/facebook.svg\">\n      <span>{{ i18n.t('users.shared.facebook_login.log_in_with_facebook') }}</span>\n    </button>\n  </form>\n</template>\n\n<script>\nimport AuthenticityTokenField from '../components/inputs/authenticity-token-field'\n\nexport default {\n  components: { AuthenticityTokenField },\n\n  props: {\n    loginUrl: {\n      type: String,\n      required: true\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$facebook-blue: #1977f2;\n\nbutton {\n  background-color: $facebook-blue;\n  color: white;\n  border-color: $facebook-blue;\n  text-transform: none;\n  height: 50px;\n  font-size: 16px;\n  font-weight: 500;\n\n  &:hover, &:active, &:focus {\n    color: white !important;\n    background-color: $facebook-blue !important;\n  }\n}\n\nimg {\n  height: 20px;\n  padding-right: 16px;\n  margin-top: -4px; // center icon with text\n}\n</style>\n","import { render } from \"./facebook-sign-in.vue?vue&type=template&id=20b6af62&scoped=true\"\nimport script from \"./facebook-sign-in.vue?vue&type=script&lang=js\"\nexport * from \"./facebook-sign-in.vue?vue&type=script&lang=js\"\n\nimport \"./facebook-sign-in.vue?vue&type=style&index=0&id=20b6af62&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-20b6af62\"]])\n\nexport default __exports__","<template>\n  <form :action=\"loginUrl\" method=\"post\" class=\"d-grid\">\n    <authenticity-token-field />\n    <button type=\"submit\" class=\"btn btn-light\">\n      <img src=\"../images/icons/google-sign-in.svg\">\n      <span>{{ i18n.t('users.shared.google_login.sign_in_with_google') }}</span>\n    </button>\n  </form>\n</template>\n\n<script>\nimport AuthenticityTokenField from '../components/inputs/authenticity-token-field'\n\nexport default {\n  components: { AuthenticityTokenField },\n\n  props: {\n    loginUrl: {\n      type: String,\n      required: true\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\nbutton {\n  text-transform: none;\n  height: 50px;\n  font-size: 16px;\n  font-weight: 500;\n}\n\nimg {\n  height: 20px;\n  padding-right: 16px;\n  margin-top: -2px; // center icon with text\n}\n</style>\n","import { render } from \"./google-sign-in.vue?vue&type=template&id=287396a8&scoped=true\"\nimport script from \"./google-sign-in.vue?vue&type=script&lang=js\"\nexport * from \"./google-sign-in.vue?vue&type=script&lang=js\"\n\nimport \"./google-sign-in.vue?vue&type=style&index=0&id=287396a8&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-287396a8\"]])\n\nexport default __exports__","<template>\n  <div class=\"row\">\n    <div class=\"col-md-8 offset-md-2 bg-light\">\n      <div v-if=\"enableFacebookLogin || enableGoogleLogin\" class=\"row pt-4\">\n        <div class=\"col-md-8 offset-md-2 px-3\">\n          <facebook-sign-in v-if=\"enableFacebookLogin\" :login-url=\"facebookLoginUrl\" class=\"mb-3\" />\n          <google-sign-in v-if=\"enableGoogleLogin\" :login-url=\"googleLoginUrl\" class=\"mb-3\" />\n        </div>\n      </div>\n\n      <sign-in-form :enable-forgot-password=\"enableForgotPassword\"\n                    :forgot-password-url=\"forgotPasswordUrl\" :organisation-id=\"organisationId\" :sign-in-path=\"signInPath\"\n                    :submit-button-text=\"signInButtonText\" class=\"px-3 px-md-4\"\n                    @authenticity-token-updated=\"authenticityTokenUpdated\"\n                    @authenticated=\"authenticated\" @mfa-setup-required=\"mfaSetupRequired\" @mfa-token-required=\"mfaTokenRequired\"\n                    @missing-info-required=\"missingInfoRequired\" />\n\n      <verify-mfa-token-modal v-if=\"showMfaTokenModal\" v-bind=\"mfaTokenModalProps\"\n                              @authenticity-token-updated=\"authenticityTokenUpdated\"\n                              @authenticated=\"authenticated\" @missing-info-required=\"missingInfoRequired\" />\n      <missing-info-modal v-if=\"showMissingInfoModal\" v-bind=\"missingInfoModalProps\" @completed=\"missingInfoCompleted\" />\n    </div>\n  </div>\n</template>\n\n<script>\nimport FacebookSignIn from './facebook-sign-in'\nimport GoogleSignIn from './google-sign-in'\nimport { inject } from 'vue'\nimport MissingInfoModal from './missing-info-modal'\nimport SignInForm from './sign-in-form'\nimport VerifyMfaTokenModal from './verify-mfa-token-modal'\n\nconst DEFAULT_FORGOT_PASSWORD_URL = '/users/password/new'\nconst DEFAULT_SIGN_IN_PATH = '/users/sign_in'\n\nexport default {\n  components: { FacebookSignIn, GoogleSignIn, MissingInfoModal, SignInForm, VerifyMfaTokenModal },\n\n  props: {\n    enableFacebookLogin: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n\n    enableForgotPassword: {\n      type: Boolean,\n      required: false,\n      default: true\n    },\n\n    enableGoogleLogin: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n\n    facebookLoginUrl: {\n      type: String,\n      required: false\n    },\n\n    forgotPasswordUrl: {\n      type: String,\n      required: false,\n      default: DEFAULT_FORGOT_PASSWORD_URL\n    },\n\n    googleLoginUrl: {\n      type: String,\n      required: false\n    },\n\n    organisationId: {\n      type: Number,\n      required: true\n    },\n\n    signInButtonText: {\n      type: String,\n      required: false,\n      default: function() { return inject('i18n').t('member.account.authentication_modal.sign_in_submit') }\n    },\n\n    signInPath: {\n      type: String,\n      required: false,\n      default: DEFAULT_SIGN_IN_PATH\n    }\n  },\n\n  data() {\n    return {\n      mfaTokenModalProps: {\n        statusCheckPath: null,\n        supportsRecoveryCodes: false,\n        supportsSms: false,\n        tokenHelpText: null,\n        userId: null,\n        useRecoveryCodePath: null,\n        verifyTokenPath: null\n      },\n      missingInfoModalProps: {\n        requiredFields: [],\n        additionalFieldConfigs: [],\n        euDataProcessingConsentData: {},\n        phoneNumberLabel: '',\n        postcodeLabel: ''\n      },\n      showMfaTokenModal: false,\n      showMissingInfoModal: false\n    }\n  },\n\n  methods: {\n    authenticated({ afterSignInRedirect }) {\n      window.location.href = afterSignInRedirect\n    },\n\n    authenticityTokenUpdated(newAuthenticityToken) {\n      const tokenElement = document.querySelector('meta[name=\"csrf-token\"]')\n      tokenElement.setAttribute('content', newAuthenticityToken)\n    },\n\n    mfaSetupRequired({ enableMfaPath }) {\n      window.location.href = enableMfaPath\n    },\n\n    mfaTokenRequired(mfaParameters) {\n      this.showMfaTokenModal = true\n      this.mfaTokenModalProps = mfaParameters\n    },\n\n    missingInfoCompleted({ redirectUrl }) {\n      this.authenticated({ afterSignInRedirect: redirectUrl })\n    },\n\n    missingInfoRequired({\n      requiredFields, additionalFieldConfigs, euDataProcessingConsentData, phoneNumberLabel, postcodeLabel\n    }) {\n      this.showMissingInfoModal = true\n      this.missingInfoModalProps = { requiredFields, additionalFieldConfigs, euDataProcessingConsentData,\n                                     phoneNumberLabel, postcodeLabel }\n    }\n  }\n}\n</script>\n","import { render } from \"./sign-in-page.vue?vue&type=template&id=95dc8364\"\nimport script from \"./sign-in-page.vue?vue&type=script&lang=js\"\nexport * from \"./sign-in-page.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["kebabCase","createCompounder","result","word","index","toLowerCase","module","exports","sfc","props","target","__vccOpts","key","val","extends","PrimaryButton","formValid","type","Boolean","required","default","submitInProgress","submittingLabel","String","inject","t","emits","computed","buttonDisabled","this","buttonText","label","methods","click","$refs","button","focus","_createElementBlock","ref","disabled","$options","class","onClick","_cache","_withModifiers","$event","_ctx","$emit","_hoisted_1","data","csrfToken","mounted","tokenElement","document","querySelector","getAttribute","name","value","$data","modalId","title","showOnMount","size","clickOutsideToClose","headerless","paddinglessBody","bootstrapModal","transitionInProgress","visibility","backdropSetting","hasFooterSlot","Object","keys","$slots","includes","modalSizeClass","watch","_config","backdrop","vm","rootElement","root","addEventListener","Modal","getOrCreateInstance","open","beforeUnmount","body","attributeStyleMap","delete","dispose","close","hide","show","id","$props","tabindex","role","_createElementVNode","_normalizeClass","_hoisted_2","_createCommentVNode","_hoisted_3","_renderSlot","_hoisted_4","_createTextVNode","_toDisplayString","i18n","args","_hoisted_5","_hoisted_6","undefined","_hoisted_7","components","AuthenticityTokenField","loginUrl","action","method","_createVNode","_component_authenticity_token_field","src","_imports_0","FacebookSignIn","GoogleSignIn","MissingInfoModal","SignInForm","VerifyMfaTokenModal","enableFacebookLogin","enableForgotPassword","enableGoogleLogin","facebookLoginUrl","forgotPasswordUrl","googleLoginUrl","organisationId","Number","signInButtonText","signInPath","mfaTokenModalProps","statusCheckPath","supportsRecoveryCodes","supportsSms","tokenHelpText","userId","useRecoveryCodePath","verifyTokenPath","missingInfoModalProps","requiredFields","additionalFieldConfigs","euDataProcessingConsentData","phoneNumberLabel","postcodeLabel","showMfaTokenModal","showMissingInfoModal","authenticated","afterSignInRedirect","window","location","href","authenticityTokenUpdated","newAuthenticityToken","setAttribute","mfaSetupRequired","enableMfaPath","mfaTokenRequired","mfaParameters","missingInfoCompleted","redirectUrl","missingInfoRequired","_createBlock","_component_facebook_sign_in","_component_google_sign_in","_component_sign_in_form","onAuthenticityTokenUpdated","onAuthenticated","onMfaSetupRequired","onMfaTokenRequired","onMissingInfoRequired","_component_verify_mfa_token_modal","_mergeProps","_component_missing_info_modal","onCompleted"],"sourceRoot":""}