{"version":3,"sources":["webpack:///pages.sessions.new.60a38c94bcbb1a563741.bundle.js","webpack:///./pages/sessions/new/index.js","webpack:///./pages/sessions/new/oauth_remember_me.js","webpack:///./pages/sessions/new/signin_tabs_memoizer.js","webpack:///./pages/sessions/new/username_validator.js"],"names":["webpackJsonp","./pages/sessions/new/index.js","module","__webpack_exports__","__webpack_require__","Object","defineProperty","value","$","__WEBPACK_IMPORTED_MODULE_0__username_validator__","__WEBPACK_IMPORTED_MODULE_1__signin_tabs_memoizer__","__WEBPACK_IMPORTED_MODULE_2__oauth_remember_me__","document","addEventListener","container","bindEvents","call","./pages/sessions/new/oauth_remember_me.js","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","OAuthRememberMe","opts","arguments","undefined","this","loginLinkSelector","on","toggleRememberMe","event","rememberMe","is","each","element","href","attr","replace","./pages/sessions/new/signin_tabs_memoizer.js","__WEBPACK_IMPORTED_MODULE_0__lib_utils_accessor__","SigninTabsMemoizer","_ref","_ref$currentTabKey","currentTabKey","_ref$tabSelector","tabSelector","isLocalStorageAvailable","isLocalStorageAccessSafe","window","location","hash","saveData","bootstrap","_this","tabs","querySelectorAll","e","nodeName","anchorName","getAttribute","showTab","readData","tab","querySelector","click","val","localStorage","setItem","getItem","./pages/sessions/new/username_validator.js","__WEBPACK_IMPORTED_MODULE_0_underscore__","__WEBPACK_IMPORTED_MODULE_0_underscore___default","n","__WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__","__WEBPACK_IMPORTED_MODULE_2__flash__","__WEBPACK_IMPORTED_MODULE_3__locale__","debounceTimeoutDuration","UsernameValidator","inputElement","inputDomElement","get","state","available","valid","pending","empty","debounceTimeout","a","debounce","username","validateUsername","validity","renderState","interceptInvalid","bind","clearFieldValidationState","setSuccessState","setPendingState","setInvalidState","setUnavailableState","preventDefault","stopPropagation","_this2","gon","relative_url_root","then","data","setAvailabilityState","exists","catch","usernameTaken","siblings","hide","removeClass","$usernameUnavailableMessage","addClass","show","$usernameSuccessMessage","$usernamePendingMessage","$inputErrorMessage"],"mappings":"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","file":"pages.sessions.new.60a38c94bcbb1a563741.bundle.js","sourcesContent":["webpackJsonp([\"pages.sessions.new\"],{\n\n/***/ \"./pages/sessions/new/index.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__username_validator__ = __webpack_require__(\"./pages/sessions/new/username_validator.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__signin_tabs_memoizer__ = __webpack_require__(\"./pages/sessions/new/signin_tabs_memoizer.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__oauth_remember_me__ = __webpack_require__(\"./pages/sessions/new/oauth_remember_me.js\");\n\n\n\n\ndocument.addEventListener('DOMContentLoaded', function () {\n new __WEBPACK_IMPORTED_MODULE_0__username_validator__[\"a\" /* default */](); // eslint-disable-line no-new\n new __WEBPACK_IMPORTED_MODULE_1__signin_tabs_memoizer__[\"a\" /* default */](); // eslint-disable-line no-new\n new __WEBPACK_IMPORTED_MODULE_2__oauth_remember_me__[\"a\" /* default */]({ // eslint-disable-line no-new\n container: $('.omniauth-container')\n }).bindEvents();\n});\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./pages/sessions/new/oauth_remember_me.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * OAuth-based login buttons have a separate \"remember me\" checkbox.\n *\n * Toggling this checkbox adds/removes a `remember_me` parameter to the\n * login buttons' href, which is passed on to the omniauth callback.\n **/\n\nvar OAuthRememberMe = function () {\n function OAuthRememberMe() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, OAuthRememberMe);\n\n this.container = opts.container || '';\n this.loginLinkSelector = '.oauth-login';\n }\n\n _createClass(OAuthRememberMe, [{\n key: 'bindEvents',\n value: function bindEvents() {\n $('#remember_me', this.container).on('click', this.toggleRememberMe);\n }\n\n // eslint-disable-next-line class-methods-use-this\n\n }, {\n key: 'toggleRememberMe',\n value: function toggleRememberMe(event) {\n var rememberMe = $(event.target).is(':checked');\n\n $('.oauth-login', this.container).each(function (i, element) {\n var href = $(element).attr('href');\n\n if (rememberMe) {\n $(element).attr('href', href + '?remember_me=1');\n } else {\n $(element).attr('href', href.replace('?remember_me=1', ''));\n }\n });\n }\n }]);\n\n return OAuthRememberMe;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (OAuthRememberMe);\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ }),\n\n/***/ \"./pages/sessions/new/signin_tabs_memoizer.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lib_utils_accessor__ = __webpack_require__(\"./lib/utils/accessor.js\");\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Memorize the last selected tab after reloading a page.\n * Does that setting the current selected tab in the localStorage\n */\n\nvar SigninTabsMemoizer = function () {\n function SigninTabsMemoizer() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$currentTabKey = _ref.currentTabKey,\n currentTabKey = _ref$currentTabKey === undefined ? 'current_signin_tab' : _ref$currentTabKey,\n _ref$tabSelector = _ref.tabSelector,\n tabSelector = _ref$tabSelector === undefined ? 'ul.nav-tabs' : _ref$tabSelector;\n\n _classCallCheck(this, SigninTabsMemoizer);\n\n this.currentTabKey = currentTabKey;\n this.tabSelector = tabSelector;\n this.isLocalStorageAvailable = __WEBPACK_IMPORTED_MODULE_0__lib_utils_accessor__[\"a\" /* default */].isLocalStorageAccessSafe();\n // sets selected tab if given as hash tag\n if (window.location.hash) {\n this.saveData(window.location.hash);\n }\n\n this.bootstrap();\n }\n\n _createClass(SigninTabsMemoizer, [{\n key: 'bootstrap',\n value: function bootstrap() {\n var _this = this;\n\n var tabs = document.querySelectorAll(this.tabSelector);\n if (tabs.length > 0) {\n tabs[0].addEventListener('click', function (e) {\n if (e.target && e.target.nodeName === 'A') {\n var anchorName = e.target.getAttribute('href');\n _this.saveData(anchorName);\n }\n });\n }\n\n this.showTab();\n }\n }, {\n key: 'showTab',\n value: function showTab() {\n var anchorName = this.readData();\n if (anchorName) {\n var tab = document.querySelector(this.tabSelector + ' a[href=\"' + anchorName + '\"]');\n if (tab) {\n tab.click();\n }\n }\n }\n }, {\n key: 'saveData',\n value: function saveData(val) {\n if (!this.isLocalStorageAvailable) return undefined;\n\n return window.localStorage.setItem(this.currentTabKey, val);\n }\n }, {\n key: 'readData',\n value: function readData() {\n if (!this.isLocalStorageAvailable) return null;\n\n return window.localStorage.getItem(this.currentTabKey);\n }\n }]);\n\n return SigninTabsMemoizer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (SigninTabsMemoizer);\n\n/***/ }),\n\n/***/ \"./pages/sessions/new/username_validator.js\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_underscore__ = __webpack_require__(\"../../../node_modules/underscore/underscore.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_underscore___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_underscore__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__ = __webpack_require__(\"./lib/utils/axios_utils.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__flash__ = __webpack_require__(\"./flash.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__locale__ = __webpack_require__(\"./locale/index.js\");\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* eslint-disable comma-dangle, consistent-return, class-methods-use-this, arrow-parens, no-param-reassign, max-len */\n\n\n\n\n\n\nvar debounceTimeoutDuration = 1000;\nvar invalidInputClass = 'gl-field-error-outline';\nvar successInputClass = 'gl-field-success-outline';\nvar unavailableMessageSelector = '.username .validation-error';\nvar successMessageSelector = '.username .validation-success';\nvar pendingMessageSelector = '.username .validation-pending';\nvar invalidMessageSelector = '.username .gl-field-error';\n\nvar UsernameValidator = function () {\n function UsernameValidator() {\n var _this = this;\n\n _classCallCheck(this, UsernameValidator);\n\n this.inputElement = $('#new_user_username');\n this.inputDomElement = this.inputElement.get(0);\n this.state = {\n available: false,\n valid: false,\n pending: false,\n empty: true\n };\n\n var debounceTimeout = __WEBPACK_IMPORTED_MODULE_0_underscore___default.a.debounce(function (username) {\n _this.validateUsername(username);\n }, debounceTimeoutDuration);\n\n this.inputElement.on('keyup.username_check', function () {\n var username = _this.inputElement.val();\n\n _this.state.valid = _this.inputDomElement.validity.valid;\n _this.state.empty = !username.length;\n\n if (_this.state.valid) {\n return debounceTimeout(username);\n }\n\n _this.renderState();\n });\n\n // Override generic field validation\n this.inputElement.on('invalid', this.interceptInvalid.bind(this));\n }\n\n _createClass(UsernameValidator, [{\n key: 'renderState',\n value: function renderState() {\n // Clear all state\n this.clearFieldValidationState();\n\n if (this.state.valid && this.state.available) {\n return this.setSuccessState();\n }\n\n if (this.state.empty) {\n return this.clearFieldValidationState();\n }\n\n if (this.state.pending) {\n return this.setPendingState();\n }\n\n if (!this.state.available) {\n return this.setUnavailableState();\n }\n\n if (!this.state.valid) {\n return this.setInvalidState();\n }\n }\n }, {\n key: 'interceptInvalid',\n value: function interceptInvalid(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n }, {\n key: 'validateUsername',\n value: function validateUsername(username) {\n var _this2 = this;\n\n if (this.state.valid) {\n this.state.pending = true;\n this.state.available = false;\n this.renderState();\n __WEBPACK_IMPORTED_MODULE_1__lib_utils_axios_utils__[\"a\" /* default */].get(gon.relative_url_root + '/users/' + username + '/exists').then(function (_ref) {\n var data = _ref.data;\n return _this2.setAvailabilityState(data.exists);\n }).catch(function () {\n return Object(__WEBPACK_IMPORTED_MODULE_2__flash__[\"a\" /* default */])(Object(__WEBPACK_IMPORTED_MODULE_3__locale__[\"__\"])('An error occurred while validating username'));\n });\n }\n }\n }, {\n key: 'setAvailabilityState',\n value: function setAvailabilityState(usernameTaken) {\n if (usernameTaken) {\n this.state.valid = false;\n this.state.available = false;\n } else {\n this.state.available = true;\n }\n this.state.pending = false;\n this.renderState();\n }\n }, {\n key: 'clearFieldValidationState',\n value: function clearFieldValidationState() {\n this.inputElement.siblings('p').hide();\n\n this.inputElement.removeClass(invalidInputClass).removeClass(successInputClass);\n }\n }, {\n key: 'setUnavailableState',\n value: function setUnavailableState() {\n var $usernameUnavailableMessage = this.inputElement.siblings(unavailableMessageSelector);\n this.inputElement.addClass(invalidInputClass).removeClass(successInputClass);\n $usernameUnavailableMessage.show();\n }\n }, {\n key: 'setSuccessState',\n value: function setSuccessState() {\n var $usernameSuccessMessage = this.inputElement.siblings(successMessageSelector);\n this.inputElement.addClass(successInputClass).removeClass(invalidInputClass);\n $usernameSuccessMessage.show();\n }\n }, {\n key: 'setPendingState',\n value: function setPendingState() {\n var $usernamePendingMessage = $(pendingMessageSelector);\n if (this.state.pending) {\n $usernamePendingMessage.show();\n } else {\n $usernamePendingMessage.hide();\n }\n }\n }, {\n key: 'setInvalidState',\n value: function setInvalidState() {\n var $inputErrorMessage = $(invalidMessageSelector);\n this.inputElement.addClass(invalidInputClass).removeClass(successInputClass);\n $inputErrorMessage.show();\n }\n }]);\n\n return UsernameValidator;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (UsernameValidator);\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(\"../../../node_modules/jquery/dist/jquery.js\")))\n\n/***/ })\n\n},[\"./pages/sessions/new/index.js\"]);\n\n\n// WEBPACK FOOTER //\n// pages.sessions.new.60a38c94bcbb1a563741.bundle.js","import UsernameValidator from './username_validator';\nimport SigninTabsMemoizer from './signin_tabs_memoizer';\nimport OAuthRememberMe from './oauth_remember_me';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new UsernameValidator(); // eslint-disable-line no-new\n new SigninTabsMemoizer(); // eslint-disable-line no-new\n new OAuthRememberMe({ // eslint-disable-line no-new\n container: $('.omniauth-container'),\n }).bindEvents();\n});\n\n\n\n// WEBPACK FOOTER //\n// ./pages/sessions/new/index.js","/**\n * OAuth-based login buttons have a separate \"remember me\" checkbox.\n *\n * Toggling this checkbox adds/removes a `remember_me` parameter to the\n * login buttons' href, which is passed on to the omniauth callback.\n **/\n\nexport default class OAuthRememberMe {\n constructor(opts = {}) {\n this.container = opts.container || '';\n this.loginLinkSelector = '.oauth-login';\n }\n\n bindEvents() {\n $('#remember_me', this.container).on('click', this.toggleRememberMe);\n }\n\n // eslint-disable-next-line class-methods-use-this\n toggleRememberMe(event) {\n const rememberMe = $(event.target).is(':checked');\n\n $('.oauth-login', this.container).each((i, element) => {\n const href = $(element).attr('href');\n\n if (rememberMe) {\n $(element).attr('href', `${href}?remember_me=1`);\n } else {\n $(element).attr('href', href.replace('?remember_me=1', ''));\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./pages/sessions/new/oauth_remember_me.js","import AccessorUtilities from '~/lib/utils/accessor';\n\n/**\n * Memorize the last selected tab after reloading a page.\n * Does that setting the current selected tab in the localStorage\n */\nexport default class SigninTabsMemoizer {\n constructor({ currentTabKey = 'current_signin_tab', tabSelector = 'ul.nav-tabs' } = {}) {\n this.currentTabKey = currentTabKey;\n this.tabSelector = tabSelector;\n this.isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe();\n // sets selected tab if given as hash tag\n if (window.location.hash) {\n this.saveData(window.location.hash);\n }\n\n this.bootstrap();\n }\n\n bootstrap() {\n const tabs = document.querySelectorAll(this.tabSelector);\n if (tabs.length > 0) {\n tabs[0].addEventListener('click', (e) => {\n if (e.target && e.target.nodeName === 'A') {\n const anchorName = e.target.getAttribute('href');\n this.saveData(anchorName);\n }\n });\n }\n\n this.showTab();\n }\n\n showTab() {\n const anchorName = this.readData();\n if (anchorName) {\n const tab = document.querySelector(`${this.tabSelector} a[href=\"${anchorName}\"]`);\n if (tab) {\n tab.click();\n }\n }\n }\n\n saveData(val) {\n if (!this.isLocalStorageAvailable) return undefined;\n\n return window.localStorage.setItem(this.currentTabKey, val);\n }\n\n readData() {\n if (!this.isLocalStorageAvailable) return null;\n\n return window.localStorage.getItem(this.currentTabKey);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./pages/sessions/new/signin_tabs_memoizer.js","/* eslint-disable comma-dangle, consistent-return, class-methods-use-this, arrow-parens, no-param-reassign, max-len */\n\nimport _ from 'underscore';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport { __ } from '~/locale';\n\nconst debounceTimeoutDuration = 1000;\nconst invalidInputClass = 'gl-field-error-outline';\nconst successInputClass = 'gl-field-success-outline';\nconst unavailableMessageSelector = '.username .validation-error';\nconst successMessageSelector = '.username .validation-success';\nconst pendingMessageSelector = '.username .validation-pending';\nconst invalidMessageSelector = '.username .gl-field-error';\n\nexport default class UsernameValidator {\n constructor() {\n this.inputElement = $('#new_user_username');\n this.inputDomElement = this.inputElement.get(0);\n this.state = {\n available: false,\n valid: false,\n pending: false,\n empty: true\n };\n\n const debounceTimeout = _.debounce((username) => {\n this.validateUsername(username);\n }, debounceTimeoutDuration);\n\n this.inputElement.on('keyup.username_check', () => {\n const username = this.inputElement.val();\n\n this.state.valid = this.inputDomElement.validity.valid;\n this.state.empty = !username.length;\n\n if (this.state.valid) {\n return debounceTimeout(username);\n }\n\n this.renderState();\n });\n\n // Override generic field validation\n this.inputElement.on('invalid', this.interceptInvalid.bind(this));\n }\n\n renderState() {\n // Clear all state\n this.clearFieldValidationState();\n\n if (this.state.valid && this.state.available) {\n return this.setSuccessState();\n }\n\n if (this.state.empty) {\n return this.clearFieldValidationState();\n }\n\n if (this.state.pending) {\n return this.setPendingState();\n }\n\n if (!this.state.available) {\n return this.setUnavailableState();\n }\n\n if (!this.state.valid) {\n return this.setInvalidState();\n }\n }\n\n interceptInvalid(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n validateUsername(username) {\n if (this.state.valid) {\n this.state.pending = true;\n this.state.available = false;\n this.renderState();\n axios.get(`${gon.relative_url_root}/users/${username}/exists`)\n .then(({ data }) => this.setAvailabilityState(data.exists))\n .catch(() => flash(__('An error occurred while validating username')));\n }\n }\n\n setAvailabilityState(usernameTaken) {\n if (usernameTaken) {\n this.state.valid = false;\n this.state.available = false;\n } else {\n this.state.available = true;\n }\n this.state.pending = false;\n this.renderState();\n }\n\n clearFieldValidationState() {\n this.inputElement.siblings('p').hide();\n\n this.inputElement.removeClass(invalidInputClass)\n .removeClass(successInputClass);\n }\n\n setUnavailableState() {\n const $usernameUnavailableMessage = this.inputElement.siblings(unavailableMessageSelector);\n this.inputElement.addClass(invalidInputClass).removeClass(successInputClass);\n $usernameUnavailableMessage.show();\n }\n\n setSuccessState() {\n const $usernameSuccessMessage = this.inputElement.siblings(successMessageSelector);\n this.inputElement.addClass(successInputClass).removeClass(invalidInputClass);\n $usernameSuccessMessage.show();\n }\n\n setPendingState() {\n const $usernamePendingMessage = $(pendingMessageSelector);\n if (this.state.pending) {\n $usernamePendingMessage.show();\n } else {\n $usernamePendingMessage.hide();\n }\n }\n\n setInvalidState() {\n const $inputErrorMessage = $(invalidMessageSelector);\n this.inputElement.addClass(invalidInputClass).removeClass(successInputClass);\n $inputErrorMessage.show();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./pages/sessions/new/username_validator.js"],"sourceRoot":""}