{"version":3,"sources":["webpack:///src/components/AccountControls/Login.vue","webpack:///./src/components/AccountControls/Login.vue","webpack:///./src/components/AccountControls/Login.vue?04af","webpack:///./src/components/AccountControls/Login.vue?3913","webpack:///./src/components/AccountControls/Login.vue?53c5"],"names":["touchMap","WeakMap","name","mixins","encryptString","components","Message","props","linkActionForgotPassword","typeof","Function","default","linkActionRegister","inject","localeOverride","type","String","$i18n","locale","data","emailAddress","password","showSpinner","failCode","passkeySupported","window","PublicKeyCredential","passkeyBusy","computed","_objectSpread","mapGetters","isLoggedIn","showPasskeyLogin","emailErrors","errors","$v","$dirty","required","push","$t","fieldLabel","email","passwordErrors","errorMessage","validations","methods","mapMutations","actionForgotPassword","$router","actionRegister","authorizeUser","_this","_asyncToGenerator","_regenerator","m","_callee","self","encryptedPassword","w","_context","n","$touch","$invalid","encryptPassword","setAppStartupLoadReady","loginProvider","then","response","status","StatusCode","$store","dispatch","ProfileToken","$emit","catch","finally","a","authorizeWithPasskey","_this2","_callee2","channelId","optionsResponse","ceremonyId","publicKey","assertion","authResponse","_t","_context2","p","resolveCurrentChannelId","getters","v","isCyberdigmaDomain","passkeyProvider","getAuthenticationOptions","Error","CeremonyId","decodeRequestOptions","Options","navigator","credentials","get","authenticatePasskey","encodeAssertion","f","logOff","render","_vm","_c","_self","staticClass","_v","_s","attrs","message","_e","labelForInput","error","label","onKeyUpEnter","on","input","$event","blur","model","value","callback","$$v","expression","fieldType","class","disabled","Boolean","$anyError","click","icon","staticRenderFns","_withStripped"],"mappings":"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","file":"js/48.js?id=68dc3d784006a00f53ea","sourcesContent":["<template>\n  <div>\n    <div v-if=\"!isLoggedIn\">\n      <p class=\"title is-4\">\n        {{ $t('Components.AccountControls.Login.Main_Title', localeOverride) }}\n      </p>\n\n      <Message\n        v-if=\"errorMessage\"\n        :message=\"errorMessage\"\n        class=\"is-danger\"\n      />\n\n      <ui-base-input-field\n        v-model=\"emailAddress\"\n        :labelForInput=\"false\"\n        :error=\"emailErrors\"\n        :label=\"$t('Components.AccountControls.Login.Label_Email', localeOverride)\"\n        :onKeyUpEnter=\"authorizeUser\"\n        @input=\"$v.emailAddress.$touch()\"\n        @blur=\"$v.emailAddress.$touch()\"\n      />\n\n      <ui-base-input-field\n        v-model=\"password\"\n        fieldType=\"password\"\n        :labelForInput=\"false\"\n        :error=\"passwordErrors\"\n        :label=\"$t('Components.AccountControls.Login.Label_Password', localeOverride)\"\n        :onKeyUpEnter=\"authorizeUser\"\n        @input=\"$v.password.$touch()\"\n        @blur=\"$v.password.$touch()\"\n      />\n      <div class=\"has-text-right has-padding-top\">\n        <button\n          @click=\"authorizeUser\"\n          class=\"button is-primary\"\n          :class=\"{ 'is-loading': showSpinner }\"\n          :disabled=\"Boolean($v.$anyError) || showSpinner\"\n          aria-label=\"login\"\n        >\n          {{ $t('Components.AccountControls.Login.Button_Login', localeOverride) }}\n        </button>\n      </div>\n\n      <div\n        v-if=\"showPasskeyLogin\"\n        class=\"has-padding-top\"\n      >\n        <p class=\"has-text-centered has-text-grey\">\n          {{ $t('Components.AccountControls.Login.Text_Or', localeOverride) }}\n        </p>\n        <button\n          @click=\"authorizeWithPasskey\"\n          class=\"button is-fullwidth\"\n          :class=\"{ 'is-loading': passkeyBusy }\"\n          :disabled=\"passkeyBusy\"\n          aria-label=\"login-passkey\"\n        >\n          <span class=\"icon\">\n            <font-awesome-icon :icon=\"['fas', 'key']\" />\n          </span>\n          <span>{{ $t('Components.AccountControls.Login.Button_Passkey', localeOverride) }}</span>\n        </button>\n      </div>\n\n      <div>\n        <hr />\n        <div class=\"has-margin-bottom\">\n          {{ $t('Components.AccountControls.Login.Text_ForgotPassword', localeOverride) }}\n          <a @click=\"actionForgotPassword()\">{{\n            $t('Components.AccountControls.Login.Link_ForgotPassword', localeOverride)\n          }}</a>\n        </div>\n        <div>\n          {{ $t('Components.AccountControls.Login.Text_NoAccount', localeOverride) }}\n          <a @click=\"actionRegister()\">{{\n            $t('Components.AccountControls.Login.Link_NoAccount', localeOverride)\n          }}</a>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport loginProvider from '@/providers/login'\nimport passkeyProvider from '@/providers/passkey'\nimport { decodeRequestOptions, encodeAssertion } from '@/utils/webauthn'\nimport { resolveCurrentChannelId } from '@/utils/channelHelper'\nimport { isCyberdigmaDomain } from '@/utils/domainHelper'\nimport encryptString from '@/mixins/encryptString'\nimport { required, email } from 'vuelidate/lib/validators'\nconst touchMap = new WeakMap()\n\nimport { mapGetters, mapMutations } from 'vuex'\n\nexport default {\n  name: 'component-login',\n  mixins: [encryptString],\n\n  components: {\n    Message: () => import(/* webpackChunkName: \"component-account-controls-login\" */ '@/components/UI/Message'),\n  },\n\n  props: {\n    linkActionForgotPassword: {\n      typeof: Function,\n      default: false,\n    },\n\n    linkActionRegister: {\n      typeof: Function,\n      default: false,\n    },\n  },\n\n  inject: {\n    localeOverride: {\n      type: String,\n      default: function() {\n        return this.$i18n.locale\n      }\n    }\n  },\n\n  data() {\n    return {\n      emailAddress: '',\n      password: '',\n      showSpinner: false,\n      failCode: false,\n      passkeySupported: typeof window !== 'undefined' && !!window.PublicKeyCredential,\n      passkeyBusy: false,\n    }\n  },\n\n  computed: {\n    ...mapGetters({\n      isLoggedIn: 'profileStore/getIsLoggedIn',\n    }),\n\n    // Offer passkeys whenever the browser supports them; the channel/RP is resolved from the URL.\n    showPasskeyLogin() {\n      return this.passkeySupported\n    },\n\n    emailErrors() {\n      const errors = []\n      if (!this.$v.emailAddress.$dirty) return errors\n      if (!this.$v.emailAddress.required) {\n        errors.push(\n          this.$t('Form.InputErrors.RequiredField', {\n            fieldLabel: this.$t('Components.AccountControls.Login.Label_Email', this.localeOverride),\n          })\n        )\n      } else if (!this.$v.emailAddress.email) {\n        errors.push(this.$t('Form.InputErrors.InvalidEmail', this.localeOverride))\n      }\n      return errors\n    },\n\n    passwordErrors() {\n      const errors = []\n      if (!this.$v.password.$dirty) return errors\n      if (!this.$v.password.required) {\n        errors.push(\n          this.$t('Form.InputErrors.RequiredField', {\n            fieldLabel: this.$t(\n              'Components.AccountControls.Login.Label_Password'\n            ),\n          })\n        )\n      }\n      return errors\n    },\n\n    errorMessage() {\n      if (this.failCode === 404) {\n        return this.$t('Components.AccountControls.Login.Message_Error404', this.localeOverride)\n      } else if (this.failCode === 403) {\n        return this.$t('Components.AccountControls.Login.Message_Error403', this.localeOverride)\n      } else if (this.failCode === 'passkey') {\n        return this.$t('Components.AccountControls.Login.Message_ErrorPasskey', this.localeOverride)\n      } else if (this.failCode === 'passkeyUnavailable') {\n        return this.$t('Components.AccountControls.Login.Message_PasskeyUnavailable', this.localeOverride)\n      } else if (this.failCode) {\n        return this.$t('Components.AccountControls.Login.Message_ErrorUnknown', this.localeOverride)\n      }\n      return ''\n    },\n  },\n\n  /**\n   * Form validation rules\n   */\n  validations: {\n    emailAddress: {\n      required,\n      email,\n    },\n    password: {\n      required,\n    },\n  },\n\n  methods: {\n    ...mapMutations(['setAppStartupLoadReady']),\n\n    actionForgotPassword() {\n      if (!this.linkActionForgotPassword) {\n        this.$router.push({ name: 'my-account-forgotpassword' })\n        return\n      }\n      this.linkActionForgotPassword()\n    },\n    actionRegister() {\n      if (!this.linkActionRegister) {\n        this.$router.push({ name: 'my-account-register' })\n        return\n      }\n      this.linkActionRegister()\n    },\n\n    async authorizeUser() {\n      let self = this\n      if (!this.showSpinner) {\n        this.showSpinner = true\n        this.failCode = false\n        this.$v.$touch()\n        if (this.$v.$invalid) {\n          // 'ERROR'\n          this.showSpinner = false\n        } else {\n          let encryptedPassword = self.encryptPassword(self.password)\n\n          // 'PENDING'\n          self.setAppStartupLoadReady(false)\n          await loginProvider.methods\n            .authorizeUser(self.emailAddress, encryptedPassword)\n            .then((response) => {\n              if (response.status === 200 && response.data.StatusCode === 1) {\n                self.$store.dispatch(\n                  'profileStore/saveProfileToken',\n                  response.data.ProfileToken\n                )\n                this.$emit('actionAfterLogin')\n              } else {\n                if (\n                  response.data.StatusCode === -1 ||\n                  response.data.StatusCode === -3\n                ) {\n                  this.failCode = 404\n                }\n\n                // Not yet activated\n                else if (response.data.StatusCode === -2) {\n                  this.failCode = 403\n                }\n              }\n            })\n            .catch(() => {\n              // console.log(err)\n              // Ensure the failcode is not false at this point\n              if (this.failCode === false) {\n                this.failCode = true\n              }\n            })\n            .finally(() => {\n              self.showSpinner = false\n              self = null\n            })\n        }\n      }\n    },\n\n    async authorizeWithPasskey() {\n      if (this.passkeyBusy || !this.passkeySupported) {\n        return\n      }\n      this.passkeyBusy = true\n      this.failCode = false\n\n      try {\n        // Resolve the channel from the current URL so the API derives the right RP id for this domain.\n        const channelId = await resolveCurrentChannelId(this.$store.getters['brandChannelId'])\n\n        // No channel mapped for this (non-cyberdigma) domain yet — passkeys can't be used here.\n        if (channelId === 0 && !isCyberdigmaDomain()) {\n          this.failCode = 'passkeyUnavailable'\n          return\n        }\n\n        // 1. Get a challenge from the server (usernameless / discoverable).\n        const optionsResponse = await passkeyProvider.methods.getAuthenticationOptions(channelId)\n        if (!optionsResponse || optionsResponse.status !== 200) {\n          throw new Error('options')\n        }\n\n        const ceremonyId = optionsResponse.data.CeremonyId\n        const publicKey = decodeRequestOptions(optionsResponse.data.Options)\n\n        // 2. Let the authenticator sign it (passkey picker / biometric prompt).\n        const assertion = await navigator.credentials.get({ publicKey })\n\n        // 3. Send it back; on success we get a ProfileToken, exactly like password login.\n        this.setAppStartupLoadReady(false)\n        const authResponse = await passkeyProvider.methods.authenticatePasskey(ceremonyId, encodeAssertion(assertion), channelId)\n\n        if (authResponse && authResponse.status === 200 && authResponse.data.StatusCode === 1) {\n          this.$store.dispatch('profileStore/saveProfileToken', authResponse.data.ProfileToken)\n          this.$emit('actionAfterLogin')\n        } else {\n          this.failCode = 'passkey'\n        }\n      } catch (error) {\n        // Dismissing the native prompt throws NotAllowedError/AbortError — treat that as a soft cancel.\n        if (!error || (error.name !== 'NotAllowedError' && error.name !== 'AbortError')) {\n          this.failCode = 'passkey'\n        }\n      } finally {\n        this.passkeyBusy = false\n      }\n    },\n\n    logOff() {\n      this.$store.dispatch('profileStore/logoff')\n    },\n  },\n}\n</script>\n","var render = function render() {\n  var _vm = this,\n    _c = _vm._self._c\n  return _c(\"div\", [\n    !_vm.isLoggedIn\n      ? _c(\n          \"div\",\n          [\n            _c(\"p\", { staticClass: \"title is-4\" }, [\n              _vm._v(\n                \" \" +\n                  _vm._s(\n                    _vm.$t(\n                      \"Components.AccountControls.Login.Main_Title\",\n                      _vm.localeOverride\n                    )\n                  ) +\n                  \" \"\n              ),\n            ]),\n            _vm.errorMessage\n              ? _c(\"Message\", {\n                  staticClass: \"is-danger\",\n                  attrs: { message: _vm.errorMessage },\n                })\n              : _vm._e(),\n            _c(\"ui-base-input-field\", {\n              attrs: {\n                labelForInput: false,\n                error: _vm.emailErrors,\n                label: _vm.$t(\n                  \"Components.AccountControls.Login.Label_Email\",\n                  _vm.localeOverride\n                ),\n                onKeyUpEnter: _vm.authorizeUser,\n              },\n              on: {\n                input: function ($event) {\n                  return _vm.$v.emailAddress.$touch()\n                },\n                blur: function ($event) {\n                  return _vm.$v.emailAddress.$touch()\n                },\n              },\n              model: {\n                value: _vm.emailAddress,\n                callback: function ($$v) {\n                  _vm.emailAddress = $$v\n                },\n                expression: \"emailAddress\",\n              },\n            }),\n            _c(\"ui-base-input-field\", {\n              attrs: {\n                fieldType: \"password\",\n                labelForInput: false,\n                error: _vm.passwordErrors,\n                label: _vm.$t(\n                  \"Components.AccountControls.Login.Label_Password\",\n                  _vm.localeOverride\n                ),\n                onKeyUpEnter: _vm.authorizeUser,\n              },\n              on: {\n                input: function ($event) {\n                  return _vm.$v.password.$touch()\n                },\n                blur: function ($event) {\n                  return _vm.$v.password.$touch()\n                },\n              },\n              model: {\n                value: _vm.password,\n                callback: function ($$v) {\n                  _vm.password = $$v\n                },\n                expression: \"password\",\n              },\n            }),\n            _c(\"div\", { staticClass: \"has-text-right has-padding-top\" }, [\n              _c(\n                \"button\",\n                {\n                  staticClass: \"button is-primary\",\n                  class: { \"is-loading\": _vm.showSpinner },\n                  attrs: {\n                    disabled: Boolean(_vm.$v.$anyError) || _vm.showSpinner,\n                    \"aria-label\": \"login\",\n                  },\n                  on: { click: _vm.authorizeUser },\n                },\n                [\n                  _vm._v(\n                    \" \" +\n                      _vm._s(\n                        _vm.$t(\n                          \"Components.AccountControls.Login.Button_Login\",\n                          _vm.localeOverride\n                        )\n                      ) +\n                      \" \"\n                  ),\n                ]\n              ),\n            ]),\n            _vm.showPasskeyLogin\n              ? _c(\"div\", { staticClass: \"has-padding-top\" }, [\n                  _c(\"p\", { staticClass: \"has-text-centered has-text-grey\" }, [\n                    _vm._v(\n                      \" \" +\n                        _vm._s(\n                          _vm.$t(\n                            \"Components.AccountControls.Login.Text_Or\",\n                            _vm.localeOverride\n                          )\n                        ) +\n                        \" \"\n                    ),\n                  ]),\n                  _c(\n                    \"button\",\n                    {\n                      staticClass: \"button is-fullwidth\",\n                      class: { \"is-loading\": _vm.passkeyBusy },\n                      attrs: {\n                        disabled: _vm.passkeyBusy,\n                        \"aria-label\": \"login-passkey\",\n                      },\n                      on: { click: _vm.authorizeWithPasskey },\n                    },\n                    [\n                      _c(\n                        \"span\",\n                        { staticClass: \"icon\" },\n                        [\n                          _c(\"font-awesome-icon\", {\n                            attrs: { icon: [\"fas\", \"key\"] },\n                          }),\n                        ],\n                        1\n                      ),\n                      _c(\"span\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.$t(\n                              \"Components.AccountControls.Login.Button_Passkey\",\n                              _vm.localeOverride\n                            )\n                          )\n                        ),\n                      ]),\n                    ]\n                  ),\n                ])\n              : _vm._e(),\n            _c(\"div\", [\n              _c(\"hr\"),\n              _c(\"div\", { staticClass: \"has-margin-bottom\" }, [\n                _vm._v(\n                  \" \" +\n                    _vm._s(\n                      _vm.$t(\n                        \"Components.AccountControls.Login.Text_ForgotPassword\",\n                        _vm.localeOverride\n                      )\n                    ) +\n                    \" \"\n                ),\n                _c(\n                  \"a\",\n                  {\n                    on: {\n                      click: function ($event) {\n                        return _vm.actionForgotPassword()\n                      },\n                    },\n                  },\n                  [\n                    _vm._v(\n                      _vm._s(\n                        _vm.$t(\n                          \"Components.AccountControls.Login.Link_ForgotPassword\",\n                          _vm.localeOverride\n                        )\n                      )\n                    ),\n                  ]\n                ),\n              ]),\n              _c(\"div\", [\n                _vm._v(\n                  \" \" +\n                    _vm._s(\n                      _vm.$t(\n                        \"Components.AccountControls.Login.Text_NoAccount\",\n                        _vm.localeOverride\n                      )\n                    ) +\n                    \" \"\n                ),\n                _c(\n                  \"a\",\n                  {\n                    on: {\n                      click: function ($event) {\n                        return _vm.actionRegister()\n                      },\n                    },\n                  },\n                  [\n                    _vm._v(\n                      _vm._s(\n                        _vm.$t(\n                          \"Components.AccountControls.Login.Link_NoAccount\",\n                          _vm.localeOverride\n                        )\n                      )\n                    ),\n                  ]\n                ),\n              ]),\n            ]),\n          ],\n          1\n        )\n      : _vm._e(),\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=1e92e3bd\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/github/workspace/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('1e92e3bd')) {\n      api.createRecord('1e92e3bd', component.options)\n    } else {\n      api.reload('1e92e3bd', component.options)\n    }\n    module.hot.accept(\"./Login.vue?vue&type=template&id=1e92e3bd\", function () {\n      api.rerender('1e92e3bd', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/AccountControls/Login.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"d2a26fb4-vue-loader-template\\\"}!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=template&id=1e92e3bd\""],"sourceRoot":""}