{
  "version": 3,
  "sources": ["../../../node_modules/file-saver/src/FileSaver.js", "../../javascript/src/upload_users.js", "../../javascript/users.js"],
  "sourcesContent": ["/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source  : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n  ? window : typeof self === 'object' && self.self === self\n  ? self : typeof global === 'object' && global.global === global\n  ? global\n  : this\n\nfunction bom (blob, opts) {\n  if (typeof opts === 'undefined') opts = { autoBom: false }\n  else if (typeof opts !== 'object') {\n    console.warn('Deprecated: Expected third argument to be a object')\n    opts = { autoBom: !opts }\n  }\n\n  // prepend BOM for UTF-8 XML and text/* types (including HTML)\n  // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n  if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n    return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n  }\n  return blob\n}\n\nfunction download (url, name, opts) {\n  var xhr = new XMLHttpRequest()\n  xhr.open('GET', url)\n  xhr.responseType = 'blob'\n  xhr.onload = function () {\n    saveAs(xhr.response, name, opts)\n  }\n  xhr.onerror = function () {\n    console.error('could not download file')\n  }\n  xhr.send()\n}\n\nfunction corsEnabled (url) {\n  var xhr = new XMLHttpRequest()\n  // use sync to avoid popup blocker\n  xhr.open('HEAD', url, false)\n  try {\n    xhr.send()\n  } catch (e) {}\n  return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n  try {\n    node.dispatchEvent(new MouseEvent('click'))\n  } catch (e) {\n    var evt = document.createEvent('MouseEvents')\n    evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n                          20, false, false, false, false, 0, null)\n    node.dispatchEvent(evt)\n  }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n  // probably in some web worker\n  (typeof window !== 'object' || window !== _global)\n    ? function saveAs () { /* noop */ }\n\n  // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n  : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n  ? function saveAs (blob, name, opts) {\n    var URL = _global.URL || _global.webkitURL\n    var a = document.createElement('a')\n    name = name || blob.name || 'download'\n\n    a.download = name\n    a.rel = 'noopener' // tabnabbing\n\n    // TODO: detect chrome extensions & packaged apps\n    // a.target = '_blank'\n\n    if (typeof blob === 'string') {\n      // Support regular links\n      a.href = blob\n      if (a.origin !== location.origin) {\n        corsEnabled(a.href)\n          ? download(blob, name, opts)\n          : click(a, a.target = '_blank')\n      } else {\n        click(a)\n      }\n    } else {\n      // Support blobs\n      a.href = URL.createObjectURL(blob)\n      setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n      setTimeout(function () { click(a) }, 0)\n    }\n  }\n\n  // Use msSaveOrOpenBlob as a second approach\n  : 'msSaveOrOpenBlob' in navigator\n  ? function saveAs (blob, name, opts) {\n    name = name || blob.name || 'download'\n\n    if (typeof blob === 'string') {\n      if (corsEnabled(blob)) {\n        download(blob, name, opts)\n      } else {\n        var a = document.createElement('a')\n        a.href = blob\n        a.target = '_blank'\n        setTimeout(function () { click(a) })\n      }\n    } else {\n      navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n    }\n  }\n\n  // Fallback to using FileReader and a popup\n  : function saveAs (blob, name, opts, popup) {\n    // Open a popup immediately do go around popup blocker\n    // Mostly only available on user interaction and the fileReader is async so...\n    popup = popup || open('', '_blank')\n    if (popup) {\n      popup.document.title =\n      popup.document.body.innerText = 'downloading...'\n    }\n\n    if (typeof blob === 'string') return download(blob, name, opts)\n\n    var force = blob.type === 'application/octet-stream'\n    var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n    var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n    if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n      // Safari doesn't allow downloading of blob URLs\n      var reader = new FileReader()\n      reader.onloadend = function () {\n        var url = reader.result\n        url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n        if (popup) popup.location.href = url\n        else location = url\n        popup = null // reverse-tabnabbing #460\n      }\n      reader.readAsDataURL(blob)\n    } else {\n      var URL = _global.URL || _global.webkitURL\n      var url = URL.createObjectURL(blob)\n      if (popup) popup.location = url\n      else location.href = url\n      popup = null // reverse-tabnabbing #460\n      setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n    }\n  }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n  module.exports = saveAs;\n}\n", "import {saveAs} from 'file-saver';\n\n$(document).ready(function () {\n  $('.btn.upload-users').click(() => $('input.upload-users').click());\n\n  $('input.upload-users').change(function () {\n    const formData = new FormData($('form.upload-users').get(0));\n\n    const xhr = new XMLHttpRequest();\n    xhr.open('POST', '/users/upload', true);\n\n    xhr.onload = function () {\n      if (this.status === 200) {\n        let filename = null;\n        const disposition = xhr.getResponseHeader('Content-Disposition');\n\n        if (disposition != null) {\n          const filenamePattern = new RegExp('^attachment; filename[^;=\\n]*=(([\\'\"]).*?\\\\2|[^;\\n]*)$');\n          const m = filenamePattern.exec(disposition);\n\n          if (m != null) {\n            filename = m[1].replace(new RegExp('[\\'\"]', 'g'), '');\n          }\n        }\n\n        const blob = new Blob([this.response], {type: xhr.getResponseHeader('Content-Type')});\n        const url = window.URL || window.webkitURL;\n        const downloadUrl = URL.createObjectURL(blob);\n\n        if (filename) {\n          saveAs(blob, filename);\n        } else {\n          window.location = downloadUrl;\n        }\n\n        return setTimeout(\n            () => URL.revokeObjectURL(downloadUrl),\n            100,\n        );\n      } else {\n        return document.documentElement.innerHTML = xhr.responseText;\n      }\n    };\n\n    xhr.setRequestHeader('X-CSRF-Token', $('meta[name=\"csrf-token\"]').attr('content'));\n    return xhr.send(formData);\n  });\n});\n", "import './src/upload_users';\n\ndocument.addEventListener('DOMContentLoaded', function () {\n  const passwordInput = document.getElementById('password');\n  const passwordEyeToggle = document.getElementById('password-eye-toggle');\n  const passwordConfirmationInput = document.getElementById('user_password_confirmation');\n  const passwordCheckToggle = document.getElementById('toggle-check');\n\n  if (passwordEyeToggle) {\n    passwordEyeToggle.addEventListener('click', function () {\n      if (passwordInput.type === 'password') {\n        passwordInput.type = 'text';\n        passwordEyeToggle.classList.remove('fa-eye');\n        passwordEyeToggle.classList.add('fa-eye-slash');\n      } else {\n        passwordInput.type = 'password';\n        passwordEyeToggle.classList.remove('fa-eye-slash');\n        passwordEyeToggle.classList.add('fa-eye');\n      }\n    });\n  }\n\n  if (passwordConfirmationInput) {\n    passwordConfirmationInput.addEventListener('input', function () {\n      if (passwordInput.value === passwordConfirmationInput.value) {\n        passwordCheckToggle.classList.remove('fa-times', 'text-danger');\n        passwordCheckToggle.classList.add('fa-check', 'text-success');\n      } else {\n        passwordCheckToggle.classList.remove('fa-check');\n        passwordCheckToggle.classList.add('fa-times', 'text-danger');\n      }\n    });\n  }\n\n  // PASSWORD METER STRENGTH\n  const meterSections = document.querySelectorAll('.password-meter__section');\n\n  if (meterSections.length) {\n    passwordInput.addEventListener('input', updateMeter);\n  }\n\n  function updateMeter() {\n    const password = passwordInput.value;\n    let strength = calculatePasswordStrength(password);\n\n    // Remove all strength classes\n    meterSections.forEach((section) => {\n      section.classList.remove('password-meter__section--weak', 'password-meter__section--medium', 'password-meter__section--strong', 'password-meter__section--very-strong');\n    });\n\n    // Add the appropriate strength class based on the strength value\n    if (strength >= 1) {\n      meterSections[0].classList.add('password-meter__section--weak');\n    }\n    if (strength >= 2) {\n      meterSections[1].classList.add('password-meter__section--medium');\n    }\n    if (strength >= 3) {\n      meterSections[2].classList.add('password-meter__section--strong');\n    }\n    if (strength >= 4) {\n      meterSections[3].classList.add('password-meter__section--very-strong');\n    }\n  }\n\n  function calculatePasswordStrength(password) {\n    const lengthWeight = 0.2;\n    const uppercaseWeight = 0.5;\n    const lowercaseWeight = 0.5;\n    const numberWeight = 0.7;\n    const symbolWeight = 1;\n\n    let strength = 0;\n\n    // Calculate the strength based on the password length\n    strength += password.length * lengthWeight;\n\n    // Calculate the strength based on uppercase letters\n    if (/[A-Z]/.test(password)) {\n      strength += uppercaseWeight;\n    }\n\n    // Calculate the strength based on lowercase letters\n    if (/[a-z]/.test(password)) {\n      strength += lowercaseWeight;\n    }\n\n    // Calculate the strength based on numbers\n    if (/\\d/.test(password)) {\n      strength += numberWeight;\n    }\n\n    // Calculate the strength based on symbols\n    if (/[^A-Za-z0-9]/.test(password)) {\n      strength += symbolWeight;\n    }\n\n    return strength;\n  }\n});"],
  "mappings": "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",
  "names": ["a", "b", "c", "d", "g", "f", "e"]
}
