{"version":3,"sources":["jsdelivr-header.js","/npm/sf-user-auth@1.0.104/src/sf-user-auth.ts"],"names":[],"mappings":"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","file":"/npm/sf-user-auth@1.0.104/sf-user-auth.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/sf-user-auth@1.0.104/sf-user-auth.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\r\n * @license\r\n * Copyright 2022 Superflow.dev\r\n * SPDX-License-Identifier: MIT\r\n */\r\n\r\nimport { LitElement, html, css, PropertyValueMap } from 'lit';\r\nimport { customElement, property, query } from 'lit/decorators.js';\r\nimport Util from './util';\r\n\r\n/**\r\n * * SfUserAuth element.\r\n *\r\n * @fires searchClick - When the user presses the enter key in the search input\r\n * @property appName - Name of the application\r\n * @property apiId - AWS Api Gateway Id\r\n * @slot terms - Slot for holding terms & conditions content\r\n * @slot privacy - Slot for holding privacy policy content\r\n * @csscustomproperty --auth-background-color - Background color of the component\r\n * @csscustomproperty --auth-color - Text color of the component\r\n * @csscustomproperty --button-background-color - Background color of the component\r\n * @csscustomproperty --button-color - Text color of the component\r\n * @part --title\r\n * @part --subtitle\r\n * @part --container\r\n */\r\n\r\n\r\ninterface bodyListUsers {\r\n  offset: string;\r\n  limit: string;\r\n  filterKey?: string;\r\n  filterString?: string;\r\n  sortKey?: string;\r\n  sortOrder?: string;\r\n}\r\n\r\n\r\n@customElement('sf-user-auth')\r\nexport class SfUserAuth extends LitElement {\r\n\r\n  eventAccessTokenReceived = 'accessTokenReceived';\r\n  eventSignedOut = 'signedOut';\r\n\r\n  static override styles = css`\r\n    \r\n    .SfUserAuthC {\r\n      background-color: var(--auth-background-color, none);\r\n      color: var(--auth-color, inherit);\r\n      display: flex;\r\n      justify-content: center;\r\n    }\r\n\r\n    .SfUserAuthCAdmin {\r\n      background-color: var(--auth-background-color, none);\r\n      color: var(--auth-color, inherit);\r\n    }\r\n\r\n    .badge {\r\n      border: dashed 1px;\r\n      padding-top: 1px;\r\n      padding-bottom: 1px;\r\n      padding-left: 10px;\r\n      padding-right: 10px;\r\n      border-radius: 20px;\r\n    }\r\n\r\n    .no-records {\r\n      padding: 10px;\r\n    }\r\n\r\n    .error-client {\r\n      color: red;\r\n      display: none;\r\n    }\r\n\r\n    .check-client {\r\n      color: green;\r\n    }\r\n\r\n    #unlocked {\r\n      display: none;\r\n    }\r\n\r\n    .details-submit {\r\n      display: none;\r\n    }\r\n\r\n    #signout,\r\n    #logs {\r\n      margin-right: 10px;\r\n    }\r\n   \r\n    .div-row-search {\r\n      display: flex;\r\n      align-items: center;\r\n      margin-top: 10px;\r\n      flex-wrap: wrap;\r\n      justify-content: flex-end;\r\n    }\r\n\r\n    .div-row {\r\n      display: flex;\r\n      align-items: center;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    \r\n\r\n    .div-row > label {\r\n      width: 100px;\r\n    }\r\n\r\n    .div-row > input {\r\n      flex-grow: 1;\r\n    }\r\n\r\n    .div-row > span {\r\n      margin-left: 5px;\r\n    }\r\n\r\n    .div-row-userdetails-checkbox {\r\n      display: flex;\r\n      align-items: center;\r\n      margin-top: 10px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .div-row-userdetails-checkbox > label {\r\n      width: 100px;\r\n    }\r\n\r\n    .div-row-userdetails-checkbox > input {\r\n      margin: 0px;\r\n    }\r\n\r\n    .div-row-terms{\r\n      display: flex;\r\n      align-items: top;\r\n      margin-top: 20px;\r\n    }\r\n\r\n    .div-row-submit{\r\n      display: flex;\r\n      align-items: center;\r\n      margin-top: 20px;\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n    .div-row-submit{\r\n      justify-content: space-between;\r\n    }\r\n\r\n\r\n    .div-row-submit input {\r\n      font-size: 110%;\r\n      font-weight: 800;\r\n      flex-grow: 1;\r\n    }\r\n\r\n    .checkbox {\r\n      margin-top: 0px;\r\n      margin-bottom: 0px;\r\n      height: 20px;\r\n      margin-right: 10px;\r\n    }\r\n\r\n    .div-row-error {\r\n      display: none;\r\n      align-items:center;\r\n    }\r\n\r\n    .div-row-error-message {\r\n      color: red;\r\n      padding: 5px;\r\n      background-color: white;\r\n      border: dashed 1px red;\r\n      width: 100%;\r\n      text-align: center;\r\n    }\r\n\r\n    .div-row-success {\r\n      display: none;\r\n      align-items:center;\r\n    }\r\n\r\n    .success-userdetails {\r\n      justify-content: center;\r\n    }\r\n\r\n    .div-row-success-message {\r\n      color: green;\r\n      padding: 5px;\r\n      background-color: white;\r\n      border: dashed 1px green;\r\n      width: 100%;\r\n      text-align: center;\r\n    }\r\n\r\n    .lds-dual-ring {\r\n      display: inline-block;\r\n      width: 15px;\r\n      height: 15px;\r\n    }\r\n    .lds-dual-ring:after {\r\n      content: \" \";\r\n      display: block;\r\n      width: 15px;\r\n      height: 15px;\r\n      margin: 0px;\r\n      border-radius: 50%;\r\n      border: 2px solid #fff;\r\n      border-color: #000 #ddd #000 #ddd;\r\n      animation: lds-dual-ring 0.8s linear infinite;\r\n    }\r\n\r\n    .lds-dual-ring-lg {\r\n      display: inline-block;\r\n      width: 30px;\r\n      height: 30px;\r\n    }\r\n    .lds-dual-ring-lg:after {\r\n      content: \" \";\r\n      display: block;\r\n      width: 30px;\r\n      height: 30px;\r\n      margin: 0px;\r\n      border-radius: 50%;\r\n      border: 3px solid #fff;\r\n      border-color: #000 #ddd #000 #ddd;\r\n      animation: lds-dual-ring 0.8s linear infinite;\r\n    }\r\n\r\n    .loader-element {\r\n      margin-left: 5px;\r\n    }\r\n\r\n    a.disabled {\r\n      pointer-events: none;\r\n      cursor: default;\r\n    }\r\n\r\n    .link {\r\n      color: var(--auth-color, inherit);\r\n      text-decoration: underline;\r\n      cursor: pointer;\r\n    }\r\n\r\n    a {\r\n      color: var(--auth-color, inherit);\r\n    }\r\n\r\n    @keyframes lds-dual-ring {\r\n      0% {\r\n        transform: rotate(0deg);\r\n      }\r\n      100% {\r\n        transform: rotate(360deg);\r\n      }\r\n    }  \r\n    \r\n    .refresh-container {\r\n      left: 0px;\r\n      top: 0px;\r\n      width: 100%;\r\n      padding-top: 50px;\r\n      padding-bottom: 50px;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      flex-direction: column;\r\n    }\r\n\r\n    .stats-container {\r\n      left: 0px;\r\n      top: 0px;\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .actions-container {\r\n      left: 0px;\r\n      top: 0px;\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: flex-end;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n\r\n    .stats-item {\r\n      margin: 10px;\r\n    }\r\n\r\n    .pages-container {\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .pages-item {\r\n      padding-left: 5px;\r\n      padding-right: 5px;\r\n      cursor: pointer;\r\n      text-decoration: underline;\r\n    }\r\n\r\n    .pages-item-current {\r\n      padding-left: 5px;\r\n      padding-right: 5px;\r\n      cursor: pointer;\r\n    }\r\n\r\n    .pages-label {\r\n      padding-left: 5px;\r\n      padding-right: 5px;\r\n    }\r\n\r\n    .stats-container div {\r\n      margin-left: 15px;\r\n      margin-right: 15px;\r\n    }\r\n\r\n    .stats-container h1 {\r\n      margin-bottom: 0px;\r\n    }\r\n\r\n    .stats-container p {\r\n      margin-top: 0px;\r\n      font-size: 80%;\r\n    }\r\n\r\n    .table-container {\r\n      max-width: 100%;\r\n      overflow-x: auto;\r\n      border: solid 1px;\r\n    }\r\n\r\n    .table-container th {\r\n      border-bottom: solid 1px;\r\n      text-align: left;\r\n      padding: 5px;\r\n    }\r\n\r\n    .table-container td {\r\n      font-size: 90%;\r\n      padding-left: 5px;\r\n      padding-right: 5px;\r\n    }\r\n\r\n    .td-name {\r\n      min-width: 150px;\r\n    }\r\n\r\n    .td-email {\r\n      min-width: 200px;\r\n    }\r\n\r\n    .td-timestamp {\r\n      min-width: 400px;\r\n    }\r\n\r\n    .td-status {\r\n      min-width: 50px;\r\n    }\r\n\r\n    .edit-container {\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .edit-item {\r\n      font-size: 100%;\r\n    }\r\n\r\n    .search-container {\r\n      left: 0px;\r\n      top: 0px;\r\n      width: 100%;\r\n      display: flex;\r\n      justify-content: space-evenly;\r\n      align-items: center;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .stats-item {\r\n      text-align: center;\r\n    }\r\n\r\n    .logo-refresh {\r\n      margin-bottom: 20px;\r\n      width: 100px;\r\n    }\r\n\r\n    #submit {\r\n      background-color: var(--auth-button-background-color, #fff);\r\n      color: var(--auth-button-color, #000);\r\n    }\r\n\r\n    #submit:disabled {\r\n      opacity: 70%;\r\n    }\r\n\r\n    .label-search {\r\n      margin-left: 5px;\r\n      margin-right: 5px;\r\n      margin-bottom: 3px;\r\n    }\r\n\r\n    .input-search {\r\n      width: 200px !important;\r\n      margin: 5px;\r\n      margin-right: 0px;\r\n    }\r\n\r\n    .select-search {\r\n      margin: 5px;\r\n    }\r\n\r\n    .submit-search {\r\n      margin: 5px;\r\n    }\r\n\r\n    .submit-cancel {\r\n      margin-right: 5px;\r\n    }\r\n\r\n    .SfUserAuthCChild {\r\n      display: flex;\r\n      flex-direction: column;\r\n      justify-content: center;\r\n      align-items: center;\r\n      padding-bottom: 30px;\r\n    }\r\n\r\n    @media (orientation: landscape) {\r\n\r\n     .SfUserAuthCChild {\r\n        width: 50%;\r\n      }\r\n\r\n      .SfUserAuthCChild form {\r\n        width: 40%;\r\n      }\r\n\r\n    }\r\n\r\n    @media (orientation: portrait) {\r\n\r\n      .SfUserAuthCChild {\r\n        width: 100%;\r\n      }\r\n\r\n      .SfUserAuthCChild form {\r\n        width: 80%;\r\n      }\r\n      \r\n\r\n    }\r\n\r\n  `;\r\n\r\n  @property()\r\n  logo!: string;\r\n\r\n  @property()\r\n  apiId!: string;\r\n\r\n  @property()\r\n  appName!: string;\r\n\r\n  @property()\r\n  email!: string;\r\n\r\n  @property()\r\n  name!: string;\r\n\r\n  @property()\r\n  reason!: string;\r\n\r\n  @property()\r\n  search: string = \"\";\r\n\r\n  @property({ type: Number })\r\n  offset: number = 0;\r\n\r\n  @property()\r\n  otp!: string;\r\n\r\n  @property({ type: Number })\r\n  pageBlock!: number;\r\n\r\n  @property({ type: Array })\r\n  arrHash: string[] = window.location.hash.split(\"/\").splice(1);;\r\n\r\n  @query('#email')\r\n  _SfUserAuthEmail: any;\r\n\r\n  @query('#name')\r\n  _SfUserAuthName: any;\r\n\r\n  @query('#otp')\r\n  _SfUserAuthOtp: any;\r\n\r\n  @query('#otp-toggle')\r\n  _SfUserAuthOtpToggle: any;\r\n\r\n  @query('#search')\r\n  _SfUserAuthSearch: any;\r\n\r\n  @query('#filter')\r\n  _SfUserAuthFilter: any;\r\n\r\n  @query('#privacy')\r\n  _SfUserAuthPrivacy: any;\r\n\r\n  @query('#terms')\r\n  _SfUserAuthTerms: any;\r\n\r\n  @query('#admin')\r\n  _SfUserAuthAdmin: any;\r\n\r\n  @query('#active')\r\n  _SfUserAuthActive: any;\r\n\r\n  @query('#reason')\r\n  _SfUserAuthReason: any;\r\n\r\n  @query('#bypass-label')\r\n  _SfUserAuthBypassLabel: any;\r\n\r\n  @query('#bypass-time-label')\r\n  _SfUserAuthBypassTimeLabel: any;\r\n\r\n  @query('#locked')\r\n  _SfUserAuthLocked: any;\r\n\r\n  @query('#unlocked')\r\n  _SfUserAuthUnlocked: any;\r\n\r\n  @query('#logs')\r\n  _SfUserAuthLogs: any;\r\n\r\n  @query('#signout')\r\n  _SfUserAuthSignout: any;\r\n\r\n  @query('#bypass')\r\n  _SfUserAuthBypass: any;\r\n\r\n  @query('#submit')\r\n  _SfUserAuthSubmit: any;\r\n\r\n  @query('.submit-search')\r\n  _SfUserAuthSearchSubmit: any;\r\n\r\n  @query('.submit-cancel')\r\n  _SfUserAuthSubmitCancel: any;\r\n\r\n  @query('.loader-element')\r\n  _SfUserAuthLoader: any;\r\n\r\n  @query('.div-row-error')\r\n  _SfUserAuthDivRowError: any;\r\n\r\n  @query('.div-row-error-message')\r\n  _SfUserAuthDivRowErrorMessage: any;\r\n\r\n  @query('.div-row-success')\r\n  _SfUserAuthDivRowSuccess: any;\r\n\r\n  @query('.div-row-success-message')\r\n  _SfUserAuthDivRowSuccessMessage: any;\r\n\r\n  @query('#error-client-name')\r\n  _SfUserAuthErrorName: any;\r\n\r\n  @query('#error-client-email')\r\n  _SfUserAuthErrorEmail: any;\r\n\r\n  @query('#error-client-otp')\r\n  _SfUserAuthErrorOtp: any;\r\n\r\n  @query('.table-container')\r\n  _SfUserAuthTableContainer: any;\r\n\r\n  @query('.pages-container')\r\n  _SfUserAuthPagesContainer: any;\r\n\r\n  flagRefresh: boolean = false;\r\n\r\n  signOut = () => {\r\n    Util.clearCookie('refreshToken');\r\n    Util.clearCookie('accessToken');\r\n    Util.clearCookie('email');\r\n    Util.clearCookie('admin');\r\n    const event = new CustomEvent(this.eventSignedOut, { detail: {}, bubbles: true, composed: true });\r\n    this.dispatchEvent(event);\r\n    //window.location.hash = '#auth/signin';\r\n  }\r\n\r\n  validateTerms = () => {\r\n    return this._SfUserAuthTerms.checked;\r\n  }\r\n\r\n  validatePrivacy = () => {\r\n    return this._SfUserAuthPrivacy.checked;\r\n  }\r\n\r\n  validateEmail = (email: string) => {\r\n    if (email.match(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/)) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  validateName = (name: string) => {\r\n    if ((name + \"\").length > 3) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  validateOtp = (otp: string) => {\r\n    if ((otp + \"\").length !== 6) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  clearMessages = () => {\r\n    this._SfUserAuthDivRowError.style.display = 'none';\r\n    this._SfUserAuthDivRowErrorMessage.innerHTML = '';\r\n\r\n    this._SfUserAuthDivRowSuccess.style.display = 'none';\r\n    this._SfUserAuthDivRowSuccessMessage.innerHTML = '';\r\n  }\r\n\r\n  setError = (msg: string) => {\r\n    this._SfUserAuthDivRowError.style.display = 'flex';\r\n    this._SfUserAuthDivRowErrorMessage.innerHTML = msg;\r\n    this._SfUserAuthDivRowSuccess.style.display = 'none';\r\n    this._SfUserAuthDivRowSuccessMessage.innerHTML = '';\r\n  }\r\n\r\n  setSuccess = (msg: string) => {\r\n    this._SfUserAuthDivRowError.style.display = 'none';\r\n    this._SfUserAuthDivRowErrorMessage.innerHTML = '';\r\n    this._SfUserAuthDivRowSuccess.style.display = 'flex';\r\n    this._SfUserAuthDivRowSuccessMessage.innerHTML = msg;\r\n  }\r\n\r\n  insertLogsHTML = (data: any) => {\r\n\r\n    var htmlStr = `\r\n    <table>\r\n    <tr>\r\n      <th class=\"td-email\">Email</th>\r\n      <th class=\"td-timestamp\">Timestamp</th>\r\n      <th class=\"td-operation\">Operation</th>\r\n      <th class=\"td-httpcode\">HttpCode</th>\r\n    </tr>`;\r\n\r\n    for (var i = 0; i < data.length; i++) {\r\n\r\n      htmlStr += `\r\n        <tr>\r\n          <td class=\"td-email\"><a href=\"#auth/userdetails/${data[i].email}\">${data[i].email}</a></td>\r\n          <td class=\"td-timestamp\">${new Date(parseInt(data[i].timestamp)).toLocaleDateString() + ' ' + new Date(parseInt(data[i].timestamp)).toTimeString()}</td>\r\n          <td class=\"td-operation\">${data[i].operation}</td>\r\n          <td class=\"td-httpcode\">${data[i].httpCode}</td>\r\n        </tr>\r\n      `;\r\n    }\r\n\r\n    htmlStr += `</table>`;\r\n\r\n    if (data.length === 0) {\r\n      htmlStr = '<div class=\"no-records\">No records found</div>';\r\n    }\r\n\r\n    this._SfUserAuthTableContainer.innerHTML = htmlStr;\r\n\r\n  }\r\n\r\n  insertUserDetailHTML = (data: any) => {\r\n    this._SfUserAuthEmail.value = data.email;\r\n    this.email = data.email;\r\n    if (data.name != null) {\r\n      this._SfUserAuthName.value = data.name;\r\n      this.name = data.name;\r\n    } else {\r\n      this.name = \"\";\r\n    }\r\n    if (data.reason != null) {\r\n      this._SfUserAuthReason.value = data.reason;\r\n      this.reason = data.reason;\r\n    } else {\r\n      this.reason = \"\";\r\n    }\r\n\r\n    if (data.bypasstime != null) {\r\n      let currTime = new Date().getTime();\r\n      if (parseInt(data.bypasstime) > currTime) {\r\n        this._SfUserAuthBypassLabel.style.display = 'block';\r\n        this._SfUserAuthBypassTimeLabel.style.display = 'block';\r\n        this._SfUserAuthBypassTimeLabel.innerHTML = `${Util.getDateTimeStrings(parseInt(data.bypasstime))}`;\r\n      } else {\r\n        this._SfUserAuthBypassLabel.style.display = 'none';\r\n        this._SfUserAuthBypassTimeLabel.style.display = 'none';\r\n      }\r\n    } else {\r\n      this._SfUserAuthBypassLabel.style.display = 'none';\r\n      this._SfUserAuthBypassTimeLabel.style.display = 'none';\r\n    }\r\n    if (data.admin != null) {\r\n      if (data.admin) {\r\n        this._SfUserAuthAdmin.setAttribute('checked', true);\r\n      }\r\n    }\r\n    if (data.suspended != null) {\r\n      if (data.suspended) {\r\n        this._SfUserAuthActive.removeAttribute('checked');\r\n      } else {\r\n        this._SfUserAuthActive.setAttribute('checked', true);\r\n      }\r\n    } else {\r\n      this._SfUserAuthActive.setAttribute('checked', true);\r\n    }\r\n  }\r\n\r\n  prepareXhr = async (data: any, url: string, loaderElement: any, authorization: any) => {\r\n\r\n\r\n    if (loaderElement != null) {\r\n      loaderElement.innerHTML = '<div class=\"lds-dual-ring\"></div>';\r\n    }\r\n    return await Util.callApi(url, data, authorization);\r\n\r\n  }\r\n\r\n  onResendSubmit = async () => {\r\n\r\n    this.clearMessages();\r\n\r\n    const xhr: any = (await this.prepareXhr({ \"email\": this.arrHash[1] }, \"https://\" + this.apiId + \"/resend\", this._SfUserAuthLoader, null)) as any;\r\n    if (this._SfUserAuthLoader != null) {\r\n      this._SfUserAuthLoader.innerHTML = '';\r\n    }\r\n    if (xhr.status == 200) {\r\n      this.setSuccess('Verification email sent again successfully!')\r\n    } else {\r\n      const jsonRespose = JSON.parse(xhr.responseText);\r\n      this.setError(jsonRespose.error);\r\n    }\r\n\r\n  }\r\n\r\n  onFormSubmit = async () => {\r\n\r\n    this.clearMessages();\r\n\r\n    if (this.arrHash[0] == 'signup') {\r\n\r\n      const xhr: any = (await this.prepareXhr({ \"name\": this.name, \"email\": this.email }, \"https://\" + this.apiId + \"/signup\", this._SfUserAuthLoader, null)) as any;\r\n      if (this._SfUserAuthLoader != null) {\r\n        this._SfUserAuthLoader.innerHTML = '';\r\n      }\r\n      if (xhr.status == 200) {\r\n        window.location.hash = '#auth/verify/' + this.email;\r\n      } else {\r\n        const jsonRespose = JSON.parse(xhr.responseText);\r\n        this.setError(jsonRespose.error);\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'signin') {\r\n\r\n      const xhr: any = (await this.prepareXhr({ \"email\": this.email }, \"https://\" + this.apiId + \"/signin\", this._SfUserAuthLoader, null)) as any;\r\n      if (this._SfUserAuthLoader != null) {\r\n        this._SfUserAuthLoader.innerHTML = '';\r\n      }\r\n      if (xhr.status == 200) {\r\n        window.location.hash = '#auth/verify/' + this.email;\r\n      } else {\r\n        const jsonRespose = JSON.parse(xhr.responseText);\r\n        this.setError(jsonRespose.error);\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'verify') {\r\n\r\n      const xhr: any = (await this.prepareXhr({ \"email\": this.arrHash[1], \"otp\": this.otp }, \"https://\" + this.apiId + \"/verify\", this._SfUserAuthLoader, null)) as any;\r\n      if (this._SfUserAuthLoader != null) {\r\n        this._SfUserAuthLoader.innerHTML = '';\r\n      }\r\n      if (xhr.status == 200) {\r\n        this.setSuccess('Verification successful!')\r\n        const jsonRespose = JSON.parse(xhr.responseText);\r\n        console.log('verify log', jsonRespose);\r\n        const refreshToken = jsonRespose.data.refreshToken.token;\r\n        const email = jsonRespose.data.email.S;\r\n        Util.writeCookie('refreshToken', refreshToken);\r\n        Util.writeCookie('email', email);\r\n        window.location.hash = '#auth/refresh/' + this.arrHash[1];\r\n\r\n      } else {\r\n        const jsonRespose = JSON.parse(xhr.responseText);\r\n        this.setError(jsonRespose.error);\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'userdetails') {\r\n\r\n      const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\r\n      const xhr: any = (await this.prepareXhr({ \"email\": this.arrHash[1], \"name\": this.name, \"reason\": this.reason, \"admin\": this._SfUserAuthAdmin.checked, \"suspended\": !this._SfUserAuthActive.checked }, \"https://\" + this.apiId + \"/updateuser\", this._SfUserAuthLoader, authorization)) as any;\r\n      if (this._SfUserAuthLoader != null) {\r\n        this._SfUserAuthLoader.innerHTML = '';\r\n      }\r\n      if (xhr.status == 200) {\r\n        this.setSuccess('Update successful!')\r\n      }\r\n\r\n    }\r\n    return false;\r\n  }\r\n\r\n  evalSubmit = () => {\r\n\r\n    if (this.arrHash[0] == 'signup') {\r\n\r\n      if (this.validateName(this._SfUserAuthName.value) && this.validateEmail(this._SfUserAuthEmail.value) && this.validateTerms() && this.validatePrivacy()) {\r\n        this._SfUserAuthSubmit.disabled = false;\r\n      } else {\r\n        this._SfUserAuthSubmit.disabled = true;\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'signin') {\r\n\r\n      if (this.validateEmail(this._SfUserAuthEmail.value)) {\r\n        this._SfUserAuthSubmit.disabled = false;\r\n      } else {\r\n        this._SfUserAuthSubmit.disabled = true;\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'verify') {\r\n\r\n      if (this.validateOtp(this._SfUserAuthOtp.value)) {\r\n        this._SfUserAuthSubmit.disabled = false;\r\n      } else {\r\n        this._SfUserAuthSubmit.disabled = true;\r\n      }\r\n\r\n    } else if (this.arrHash[0] == 'admin') {\r\n\r\n      if (this.validateEmail(this._SfUserAuthSearch.value)) {\r\n        this._SfUserAuthSearchSubmit.disabled = false;\r\n      } else {\r\n        this._SfUserAuthSearchSubmit.disabled = true;\r\n      }\r\n\r\n    }\r\n\r\n  }\r\n\r\n  onCheckedChange = () => {\r\n\r\n    this.evalSubmit();\r\n\r\n  }\r\n\r\n  onKeyUp = (location: string) => {\r\n\r\n    switch (location) {\r\n\r\n      case 'name':\r\n\r\n        if (this.validateName(this._SfUserAuthName.value)) {\r\n          this._SfUserAuthErrorName.style.display = 'none';\r\n        } else {\r\n          this._SfUserAuthErrorName.style.display = 'block';\r\n        }\r\n        this.name = this._SfUserAuthName.value;\r\n        break;\r\n\r\n      case 'email':\r\n\r\n        if (this.validateEmail(this._SfUserAuthEmail.value)) {\r\n          this._SfUserAuthErrorEmail.style.display = 'none';\r\n        } else {\r\n          this._SfUserAuthErrorEmail.style.display = 'block';\r\n        }\r\n        this.email = this._SfUserAuthEmail.value;\r\n        break;\r\n\r\n      case 'otp':\r\n\r\n        if (this.validateOtp(this._SfUserAuthOtp.value)) {\r\n          this._SfUserAuthErrorOtp.style.display = 'none';\r\n        } else {\r\n          this._SfUserAuthErrorOtp.style.display = 'block';\r\n        }\r\n        this.otp = this._SfUserAuthOtp.value;\r\n        break;\r\n\r\n      case 'search':\r\n\r\n        this.search = this._SfUserAuthSearch.value;\r\n        //this.filter = this._SfUserAuthFilter.value;  \r\n\r\n        break;\r\n\r\n      case 'reason':\r\n\r\n        this.reason = this._SfUserAuthReason.value;\r\n\r\n        break;\r\n\r\n      default:\r\n\r\n    }\r\n\r\n    this.evalSubmit();\r\n\r\n    return false;\r\n\r\n  }\r\n\r\n  onLocked = () => {\r\n    this._SfUserAuthUnlocked.style.display = 'none';\r\n    this._SfUserAuthLocked.style.display = 'block';\r\n    this._SfUserAuthName.setAttribute('disabled', true);\r\n    this._SfUserAuthEmail.setAttribute('disabled', true);\r\n    this._SfUserAuthAdmin.setAttribute('disabled', true);\r\n    this._SfUserAuthActive.setAttribute('disabled', true);\r\n    this._SfUserAuthReason.setAttribute('disabled', true);\r\n    this._SfUserAuthSubmit.style.display = 'none';\r\n    this._SfUserAuthSignout.style.display = 'block';\r\n    this._SfUserAuthBypass.style.display = 'block';\r\n    this._SfUserAuthLogs.style.display = 'block';\r\n\r\n  }\r\n\r\n  onUnlocked = () => {\r\n\r\n    this._SfUserAuthLocked.style.display = 'none';\r\n    this._SfUserAuthUnlocked.style.display = 'block';\r\n    this._SfUserAuthName.removeAttribute(\"disabled\");\r\n    this._SfUserAuthAdmin.removeAttribute(\"disabled\");\r\n    this._SfUserAuthActive.removeAttribute(\"disabled\");\r\n    this._SfUserAuthReason.removeAttribute(\"disabled\");\r\n    this._SfUserAuthSubmit.style.display = 'block';\r\n    this._SfUserAuthSignout.style.display = 'none';\r\n    this._SfUserAuthBypass.style.display = 'none';\r\n    this._SfUserAuthLogs.style.display = 'none';\r\n  }\r\n\r\n  onCancelUserDetails = () => {\r\n    Util.goBack();\r\n  }\r\n\r\n  onSearchClick = () => {\r\n    if (this.arrHash[0] == 'admin') {\r\n      Util.goTo('#auth/userdetails/' + this.search);\r\n    }\r\n  }\r\n\r\n  decorateSlots = () => {\r\n\r\n  }\r\n\r\n  copySlots = () => {\r\n\r\n  }\r\n\r\n  initState = async (calling: number = 0) => {\r\n\r\n    if (this.arrHash[0] == 'userdetails') {\r\n      // if(this._SfUserAuthEmail != null) {\r\n      //   console.log('not null');\r\n      //   if(this._SfUserAuthEmail.value.length === 0) {\r\n\r\n      //   }\r\n      // }\r\n      await this.fetchUserDetails(this.arrHash[1]);\r\n\r\n    }\r\n\r\n    this.pageBlock = 100;\r\n    if (this.arrHash[0] == 'logs') {\r\n      this.fetchLogs(parseInt(this.arrHash[3]), this.arrHash[1], this.arrHash[2]);\r\n    }\r\n\r\n    if (this.arrHash[0] == 'usersignout') {\r\n      this.fetchSignout(this.arrHash[1]);\r\n    }\r\n\r\n    if (this.arrHash[0] == 'userbypass') {\r\n      this.fetchBypass(this.arrHash[1]);\r\n    }\r\n\r\n    if (this.arrHash[0] == 'refresh') {\r\n      console.log('init state called', this.arrHash[0], calling, this.flagRefresh);\r\n      if (!this.flagRefresh) {\r\n        this.flagRefresh = true;\r\n        const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('refreshToken'));\r\n        const xhr: any = (await this.prepareXhr(null, \"https://\" + this.apiId + \"/refresh\", this._SfUserAuthLoader, authorization)) as any;\r\n        if (xhr.status == 200) {\r\n          const jsonRespose = JSON.parse(xhr.responseText);\r\n          console.log('jsonresponse', JSON.stringify(jsonRespose));\r\n          Util.writeCookie('refreshToken', jsonRespose.data.refreshToken.token);\r\n          Util.writeCookie('accessToken', jsonRespose.data.accessToken.token);\r\n          Util.writeCookie('email', jsonRespose.data.email.S);\r\n          Util.writeCookie('admin', jsonRespose.admin);\r\n          setTimeout(() => {\r\n            const event = new CustomEvent(this.eventAccessTokenReceived, { detail: { accessToken: jsonRespose.data.accessToken, name: jsonRespose.data.name.S, email: jsonRespose.data.email.S, admin: jsonRespose.admin }, bubbles: true, composed: true });\r\n            this.dispatchEvent(event);\r\n          }, 2000);\r\n        }\r\n        this.flagRefresh = false;\r\n      } else {\r\n        // this.signOut();\r\n      }\r\n\r\n    }\r\n\r\n    if (this.arrHash[0] == 'signout') {\r\n      this.signOut();\r\n    }\r\n\r\n    if (this.arrHash[0] == 'signin') {\r\n      setTimeout(() => {\r\n        (this._SfUserAuthEmail as HTMLInputElement)!.focus();\r\n      }, 500);\r\n\r\n    }\r\n\r\n    if (this.arrHash[0] == 'verify') {\r\n      setTimeout(() => {\r\n        (this._SfUserAuthOtp as HTMLInputElement)!.focus();\r\n      }, 500);\r\n\r\n    }\r\n\r\n  }\r\n\r\n  initListeners = () => {\r\n\r\n  }\r\n\r\n  fetchUserDetails = async (email: string) => {\r\n    const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\r\n    const xhr: any = (await this.prepareXhr({ \"email\": email }, \"https://\" + this.apiId + \"/detailuser\", this._SfUserAuthLoader, authorization)) as any;\r\n    if (this._SfUserAuthLoader != null) {\r\n      this._SfUserAuthLoader.innerHTML = '';\r\n    }\r\n    if (xhr.status == 200) {\r\n      const jsonRespose = JSON.parse(xhr.responseText);\r\n      setTimeout(() => {\r\n        this.insertUserDetailHTML(jsonRespose.data.values);\r\n        this.onLocked();\r\n      },1000)\r\n    } else {\r\n      window.location.href = '#auth/refresh';\r\n    }\r\n  }\r\n\r\n  fetchSignout = async (email: string) => {\r\n    const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\r\n    const xhr: any = (await this.prepareXhr({ \"email\": email }, \"https://\" + this.apiId + \"/logoutuser\", this._SfUserAuthLoader, authorization)) as any;\r\n    if (this._SfUserAuthLoader != null) {\r\n      this._SfUserAuthLoader.innerHTML = '';\r\n    }\r\n    if (xhr.status == 200) {\r\n      this.setSuccess('Signout successful!')\r\n      setTimeout(() => {\r\n        window.history.back();\r\n      }, 2000);\r\n      //this.insertUserDetailHTML(jsonRespose.data.values);\r\n      //this.onLocked();\r\n    } else {\r\n      this.signOut()\r\n    }\r\n  }\r\n\r\n  fetchBypass = async (email: string) => {\r\n    const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\r\n    const xhr: any = (await this.prepareXhr({ \"email\": email }, \"https://\" + this.apiId + \"/bypassuser\", this._SfUserAuthLoader, authorization)) as any;\r\n    if (this._SfUserAuthLoader != null) {\r\n      this._SfUserAuthLoader.innerHTML = '';\r\n    }\r\n    if (xhr.status == 200) {\r\n      this.setSuccess('Bypass successful!')\r\n      setTimeout(() => {\r\n        window.history.back();\r\n      }, 2000);\r\n      //this.insertUserDetailHTML(jsonRespose.data.values);\r\n      //this.onLocked();\r\n    } else {\r\n      this.signOut()\r\n    }\r\n  }\r\n\r\n  fetchLogs = async (offset: number, filterKey: string, filterString: string) => {\r\n\r\n    if (isNaN(offset)) {\r\n\r\n    } else {\r\n\r\n      let body: bodyListUsers = { \"offset\": offset + \"\", \"limit\": this.pageBlock + \"\" };\r\n      if (this.arrHash[2].length > 1) {\r\n        body = { \"offset\": offset + \"\", \"limit\": this.pageBlock + \"\", \"filterKey\": filterKey + \"\", \"filterString\": filterString };\r\n      }\r\n\r\n      const authorization = btoa(Util.readCookie('email') + \":\" + Util.readCookie('accessToken'));\r\n      const xhr: any = (await this.prepareXhr(body, \"https://\" + this.apiId + \"/listlogs\", this._SfUserAuthLoader, authorization)) as any;\r\n      if (this._SfUserAuthLoader != null) {\r\n        this._SfUserAuthLoader.innerHTML = '';\r\n      }\r\n      if (xhr.status == 200) {\r\n        const jsonRespose = JSON.parse(xhr.responseText);\r\n        this.insertLogsHTML(jsonRespose.data.values)\r\n      } else {\r\n        this.signOut();\r\n      }\r\n    }\r\n\r\n\r\n  }\r\n\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  protected override firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\r\n    this.copySlots();\r\n    this.decorateSlots();\r\n    this.initListeners();\r\n    this.initState(1);\r\n    window.onhashchange = () => {\r\n      const hashValue = window.location.hash;\r\n      this.arrHash = hashValue.split(\"/\").splice(1);\r\n    }\r\n\r\n    if (this.arrHash[0] == 'signin') {\r\n      (this._SfUserAuthEmail as HTMLInputElement).focus();\r\n    }\r\n\r\n    if (this.arrHash[0] == 'verify') {\r\n      (this._SfUserAuthOtp as HTMLInputElement)!.focus();\r\n    }\r\n\r\n\r\n  }\r\n\r\n  override connectedCallback() {\r\n    super.connectedCallback()\r\n  }\r\n\r\n  getUiRefresh() {\r\n\r\n    return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"refresh-container\">\r\n            <img .src=${this.logo} class=\"logo-refresh\" />\r\n            <div class=\"lds-dual-ring-lg\"></div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    `;\r\n\r\n  }\r\n\r\n  getUiSignIn() {\r\n\r\n    window.location.hash = '#auth/signin';\r\n\r\n    return html`\r\n        <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n        <div class=\"SfUserAuthC\">\r\n          <div part=\"container\" class=\"SfUserAuthCChild\">\r\n            <h1 part=\"title\">Sign In</h1>\r\n            <form .onsubmit=${() => { this.onFormSubmit(); return false; }}>\r\n              <h4 part=\"subtitle\">Hello again!</h4>\r\n              <label part=\"label\" for=\"email\">Email</label><br />\r\n              <div class=\"div-row\">\r\n                <input part=\"input\" id=\"email\" type=\"text\" @keyup=${() => { this.onKeyUp('email') }} autofocus/>\r\n                <span id=\"error-client-email\" class=\"error-client material-icons\">priority_high</span>\r\n              </div>\r\n              <div class=\"div-row-error div-row-submit\">\r\n                <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-success div-row-submit\">\r\n                <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-submit\">\r\n                <input part=\"submit\" id=\"submit\" type=\"submit\" value=\"Submit\" disabled><div class=\"loader-element\"></div>\r\n              </div>\r\n              <div class=\"div-row-terms\">\r\n                <span>I don't have an account. <a href=\"#auth/signup\">Sign Up</a></span>\r\n              </div>\r\n            </form>\r\n          </div>\r\n        </div>\r\n      `;\r\n\r\n  }\r\n\r\n  toggleMask() {\r\n    let input = this._SfUserAuthOtp;\r\n    let icon = this._SfUserAuthOtpToggle;\r\n\r\n    if (input.type === \"password\") {\r\n      input.type = \"text\";\r\n      icon.textContent = \"visibility_off\";\r\n    } else {\r\n      input.type = \"password\";\r\n      icon.textContent = \"visibility\";\r\n    }\r\n  }\r\n\r\n  override render() {\r\n\r\n\r\n    this.initState(2);\r\n\r\n    if (this.arrHash == null || this.arrHash.length === 0) {\r\n\r\n      return this.getUiRefresh();\r\n\r\n    } else if (this.arrHash[0] == 'signup') {\r\n\r\n      return html`\r\n        <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>\r\n        <div class=\"SfUserAuthC\">\r\n          <div part=\"container\" class=\"SfUserAuthCChild\">\r\n            <h1 part=\"title\">Sign Up</h1>\r\n            <form .onsubmit=${() => { this.onFormSubmit(); return false; }}>\r\n              <h4 part=\"subtitle\">Let's create a new ${this.appName} account</h4>\r\n              <label part=\"label\" for=\"name\">Name</label><br />\r\n              <div class=\"div-row\">\r\n                <input part=\"input\" id=\"name\" type=\"text\" @keyup=${() => { this.onKeyUp('name') }}>\r\n                <span id=\"error-client-name\" class=\"error-client material-icons\">priority_high</span>\r\n              </div>\r\n              <br />\r\n              <label part=\"label\" for=\"email\">Email</label><br />\r\n              <div class=\"div-row\">\r\n                <input part=\"input\" id=\"email\" type=\"text\" @keyup=${() => { this.onKeyUp('email') }} autofocus/>\r\n                <span id=\"error-client-email\" class=\"error-client material-icons\">priority_high</span>\r\n              </div>\r\n              <br />\r\n              <div class=\"div-row-terms\">\r\n                <input id=\"terms\" type=\"checkbox\" class=\"checkbox\" @change=${() => { this.onCheckedChange() }}/>\r\n                <label for=\"terms\">I would like to receive important email communication</label>\r\n              </div>\r\n              <div class=\"div-row-terms\">\r\n                <input id=\"privacy\" type=\"checkbox\" class=\"checkbox\" @change=${() => { this.onCheckedChange() }}/>\r\n                <label for=\"privacy\">I agree to the <a href=\"#auth/terms\">terms</a> and <a href=\"#auth/privacy\">privacy policy</a></label>\r\n              </div>\r\n              <br />\r\n              <div class=\"div-row-error div-row-submit\">\r\n                <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-success div-row-submit\">\r\n                <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-submit\">\r\n                <input part=\"submit\" id=\"submit\" type=\"submit\" value=\"Submit\" disabled><div class=\"loader-element\"></div>\r\n              </div>\r\n              <div class=\"div-row-terms\">\r\n                <span>I already have an account. <a href=\"#auth/signin\">Sign In</a></span>\r\n              </div>\r\n            </form>\r\n          </div>\r\n        </div>\r\n      `;\r\n\r\n    } else if (this.arrHash[0] == 'terms') {\r\n\r\n      return html`\r\n        <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n        <div class=\"SfUserAuthC\">\r\n          <div part=\"container\" class=\"SfUserAuthCChild\">\r\n            <h1 part=\"title\">Terms of Use</h1>\r\n            <slot name=\"terms\"></slot>\r\n          </div>\r\n        </div>\r\n      `;\r\n\r\n    } else if (this.arrHash[0] == 'privacy') {\r\n\r\n      return html`\r\n        <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n        <div class=\"SfUserAuthC\">\r\n          <div part=\"container\" class=\"SfUserAuthCChild\">\r\n            <h1 part=\"title\">Privacy</h1>\r\n            <slot name=\"privacy\"></slot>\r\n          </div>\r\n        </div>\r\n      `;\r\n\r\n    } else if (this.arrHash[0] == 'signin') {\r\n\r\n      return this.getUiSignIn();\r\n\r\n    } else if (this.arrHash[0] == 'verify') {\r\n\r\n      return html`\r\n        <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n        <div class=\"SfUserAuthC\">\r\n          <div part=\"container\" class=\"SfUserAuthCChild\">\r\n            <h1 part=\"title\">Verify</h1>\r\n            <form .onsubmit=${() => { this.onFormSubmit(); return false; }}>\r\n              <h4 part=\"subtitle\">Verification email with a one-time-password (OTP) has been sent to <strong>${Util.maskEmail(this.arrHash[1])}</strong></h4>\r\n              <label part=\"label\" for=\"otp\">OTP</label><br />\r\n              <div class=\"div-row\">\r\n                <input part=\"input\" id=\"otp\" type=\"password\" @keyup=${() => { this.onKeyUp('otp') }} placeholder=\"XXXXXX\" autofocus/>\r\n                <span id=\"otp-toggle\" class=\"material-icons\" @click=${this.toggleMask}>visibility</span>\r\n                <span id=\"error-client-otp\" class=\"error-client material-icons\">priority_high</span>\r\n              </div>\r\n              <div class=\"div-row-error div-row-submit\">\r\n                <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-success div-row-submit\">\r\n                <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-submit\">\r\n                <input part=\"submit\" id=\"submit\" type=\"submit\" value=\"Verify\" disabled><div class=\"loader-element\"></div>\r\n              </div>\r\n              <div class=\"div-row-terms\">\r\n                <span>I didn't receive the verification email. <span class=\"link resend\" .onclick=${this.onResendSubmit}>Resend</span></span>\r\n              </div>\r\n            </form>\r\n          </div>\r\n        </div>\r\n      `;\r\n\r\n    } else if (this.arrHash[0] == 'refresh') {\r\n\r\n      return this.getUiRefresh();\r\n\r\n    } else if (this.arrHash[0] == 'signout') {\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"refresh-container\">\r\n            <img .src=${this.logo} class=\"logo-refresh\" />\r\n            <div class=\"lds-dual-ring-lg\"></div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else if (this.arrHash[0] == 'admin') {\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"stats-container\">\r\n            <h1 part=\"title\">Authentication</h1>\r\n          </div>\r\n          <div class=\"stats-container\">\r\n            <div part=\"badge\" class=\"badge\">Admin</div>\r\n          </div>\r\n          <br />\r\n          <div class=\"search-container\">\r\n            <div class=\"div-row-search\">\r\n              <input part=\"input\" id=\"search\" class=\"input-search\" type=\"email\" @keyup=${() => { this.onKeyUp('search') }} placeholder=\"Email address please ...\" autofocus>\r\n              <button part=\"submit\" class=\"submit-search\" disabled @click=${() => { this.onSearchClick() }}>Search Users</button>\r\n            </div>\r\n          </div>\r\n          <br />\r\n          <div class=\"search-container\">\r\n            <div class=\"div-row table-container\">\r\n            </div>\r\n            <div class=\"div-row pages-container\">\r\n            </div>\r\n          </div>\r\n          <div class=\"search-container\">\r\n            <div class=\"loader-element\"></div>\r\n          </div>\r\n          <br />\r\n          <br />\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else if (this.arrHash[0] == 'logs') {\r\n\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"stats-container\">\r\n            <h1 part=\"title\">Access Logs</h1>\r\n          </div>\r\n          <div class=\"stats-container\">\r\n            <div part=\"badge\" class=\"badge\">Admin</div>\r\n          </div>\r\n          <br />\r\n          <div class=\"stats-container\">\r\n            <span class=\"link resend\" .onclick=${this.onCancelUserDetails}>${'← back to ' + this.arrHash[2]}</span>\r\n          </div>\r\n          <br />\r\n          <div class=\"search-container\">\r\n            <div class=\"div-row table-container\">\r\n            </div>\r\n            <div class=\"div-row pages-container\">\r\n            </div>\r\n          </div>\r\n          <div class=\"search-container\">\r\n            <div class=\"loader-element\"></div>\r\n          </div>\r\n\r\n          <br />\r\n          <br />\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else if (this.arrHash[0] == 'userdetails') {\r\n\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"stats-container\">\r\n            <h1 part=\"title\">User Information</h1>\r\n          </div>\r\n          <div class=\"stats-container\">\r\n                <div part=\"badge\" class=\"badge\">Admin</div>\r\n          </div>\r\n          <br /><br />\r\n          <form onsubmit=\"return false;\">\r\n            <div class=\"edit-container\">\r\n              <span class=\"link resend\" .onclick=${this.onCancelUserDetails}>← Back</span>\r\n              <div>\r\n              <div class=\"stats-container\">\r\n                <button part=\"buttonprimary\" id=\"unlocked\" class=\"edit-item\" @click=${() => { this.onLocked() }}>Cancel</button>\r\n                <button part=\"buttonprimary\" id=\"locked\" class=\"edit-item\" @click=${() => { this.onUnlocked() }}>Edit</button>\r\n              </div>\r\n              </div>\r\n            </div>\r\n          </form>\r\n          <br />\r\n          <form .onsubmit=${() => { this.onFormSubmit(); return false; }}>\r\n            <label part=\"label\" for=\"name\">Name</label><br />\r\n            <div class=\"div-row\">\r\n              <input part=\"input\" id=\"name\" type=\"text\" @keyup=${() => { this.onKeyUp('name') }}>\r\n              <span id=\"error-client-name\" class=\"error-client material-icons\">priority_high</span>\r\n            </div>\r\n            <br />\r\n            <label part=\"label\" for=\"email\">Email</label><br />\r\n            <div class=\"div-row\">\r\n              <input part=\"input\" id=\"email\" type=\"text\" @keyup=${() => { this.onKeyUp('email') }}>\r\n              <span id=\"error-client-name\" class=\"error-client material-icons\">priority_high</span>\r\n            </div>\r\n            <br />\r\n            <label part=\"label\" for=\"reason\">Reason</label><br />\r\n            <div class=\"div-row\">\r\n              <input part=\"input\" id=\"reason\" type=\"text\" @keyup=${() => { this.onKeyUp('reason') }}/>\r\n              <span id=\"error-client-reason\" class=\"error-client material-icons\">priority_high</span>\r\n            </div>\r\n            <br />\r\n            <div class=\"div-row-userdetails-checkbox\">\r\n              <label for=\"admin\">Admin</label>\r\n              <input id=\"admin\" type=\"checkbox\" class=\"checkbox\" @change=${() => { this.onCheckedChange() }}/>    \r\n            </div>\r\n            <div class=\"div-row-userdetails-checkbox\">\r\n              <label for=\"active\">Active</label>\r\n              <input id=\"active\" type=\"checkbox\" class=\"checkbox\" @change=${() => { this.onCheckedChange() }}/>    \r\n            </div>\r\n            <div class=\"div-row-userdetails-checkbox\">\r\n              <div part=\"label\" id=\"bypass-label\">Bypass active until</div><br />\r\n              <div part=\"label\" id=\"bypass-time-label\"></div>\r\n            </div>\r\n            <div class=\"div-row-error div-row-submit\">\r\n              <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n            </div>\r\n            <div class=\"div-row-success div-row-submit success-userdetails\">\r\n              <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n            </div>\r\n\r\n            <div class=\"div-row-submit div-row-submit-userdetails\">\r\n              <div class=\"loader-element\"></div>\r\n              <div class=\"actions-container\">\r\n                <button part=\"buttonprimary\" id=\"logs\" class=\"edit-item\" @click=${() => { window.location.href = '#auth/logs/email/' + this.arrHash[1] + '/0' }}>View Logs</button>\r\n                <button part=\"buttonprimary\" id=\"signout\" class=\"edit-item\" @click=${() => { window.location.href = '#auth/usersignout/' + this.arrHash[1] }}>Sign Out</button>\r\n                <button part=\"buttonprimary\" id=\"bypass\" class=\"edit-item\" @click=${() => { window.location.href = '#auth/userbypass/' + this.arrHash[1] }}>Bypass</button>\r\n                <input part=\"submit\" id=\"submit\" class=\"details-submit\" type=\"submit\" value=\"Submit\">\r\n              </div>\r\n            </div>\r\n            \r\n          </form>\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else if (this.arrHash[0] == 'usersignout') {\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"search-container\">\r\n            <div>\r\n              <div class=\"stats-container\">\r\n                <h1 part=\"title\">User Information</h1>\r\n              </div>\r\n              <div class=\"stats-container\">\r\n                <div part=\"badge\" class=\"badge\">Admin</div>\r\n              </div>\r\n              <br />\r\n              <div class=\"stats-container\">\r\n                <div>User ${this.arrHash[1]} is being signed out ...</div>\r\n              </div>\r\n              <div class=\"refresh-container\">\r\n                <img .src=${this.logo} class=\"logo-refresh\" />\r\n                <div class=\"lds-dual-ring-lg\"></div>\r\n              </div>\r\n              <div class=\"div-row-error div-row-submit\">\r\n                <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-success div-row-submit success-userdetails\">\r\n                <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n              </div>\r\n              <br />\r\n              <br />  \r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else if (this.arrHash[0] == 'userbypass') {\r\n      return html`\r\n      <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'>  \r\n      <div class=\"SfUserAuthC\">\r\n        <div part=\"container\" class=\"SfUserAuthCChild\">\r\n          <div class=\"search-container\">\r\n            <div>\r\n              <div class=\"stats-container\">\r\n                <h1 part=\"title\">User Information</h1>\r\n              </div>\r\n              <div class=\"stats-container\">\r\n                <div part=\"badge\" class=\"badge\">Admin</div>\r\n              </div>\r\n              <br />\r\n              <div class=\"stats-container\">\r\n                <div>User ${this.arrHash[1]} is being bypassed ...</div>\r\n              </div>\r\n              <div class=\"refresh-container\">\r\n                <img .src=${this.logo} class=\"logo-refresh\" />\r\n                <div class=\"lds-dual-ring-lg\"></div>\r\n              </div>\r\n              <div class=\"div-row-error div-row-submit\">\r\n                <div part=\"errormsg\" class=\"div-row-error-message\"></div>\r\n              </div>\r\n              <div class=\"div-row-success div-row-submit success-userdetails\">\r\n                <div part=\"successmsg\" class=\"div-row-success-message\"></div>\r\n              </div>\r\n              <br />\r\n              <br />  \r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    `;\r\n    } else {\r\n\r\n      return this.getUiRefresh();\r\n\r\n    }\r\n\r\n  }\r\n\r\n}\r\n\r\ndeclare global {\r\n  interface HTMLElementTagNameMap {\r\n    'sf-user-auth': SfUserAuth;\r\n  }\r\n}\r\n"]}