{"version":3,"file":"js/2385-585be665b442f0e5d5a9.chunk.js","mappings":"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","sources":["webpack://app/./app/assets/javascripts/templates/users/identify_user_signup_type.jst.eco","webpack://app/./node_modules/@edfinity/ally/src/query/first-tabbable.js","webpack://app/./app/assets/javascripts/helpers/fire_social_button.js","webpack://app/./app/assets/javascripts/utils/user.js","webpack://app/./app/assets/javascripts/views/dialogs/backbone.js","webpack://app/./app/assets/javascripts/views/dialogs/dialog.js","webpack://app/./app/assets/javascripts/templates/dialogs/dialog.jst.eco","webpack://app/./app/assets/javascripts/views/sessions/new.js","webpack://app/./app/assets/javascripts/views/users/type.js"],"sourcesContent":["export default function(__obj) {\n if (!__obj) __obj = {};\n var __out = [], __capture = function(callback) {\n var out = __out, result;\n __out = [];\n callback.call(this);\n result = __out.join('');\n __out = out;\n return __safe(result);\n }, __sanitize = function(value) {\n if (value && value.ecoSafe) {\n return value;\n } else if (typeof value !== 'undefined' && value != null) {\n return __escape(value);\n } else {\n return '';\n }\n }, __safe, __objSafe = __obj.safe, __escape = __obj.escape;\n __safe = __obj.safe = function(value) {\n if (value && value.ecoSafe) {\n return value;\n } else {\n if (!(typeof value !== 'undefined' && value != null)) value = '';\n var result = new String(value);\n result.ecoSafe = true;\n return result;\n }\n };\n if (!__escape) {\n __escape = __obj.escape = function(value) {\n return ('' + value)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n };\n }\n (function() {\n (function() {\n __out.push('
\\n
\\n
\\n \\n I am a student
(or parent or TA)\\n \\n
\\n
\\n\\n
\\n\\n
\\n \\n I am an educator\\n \\n
\\n
\\n');\n \n }).call(this);\n \n }).call(__obj);\n __obj.safe = __objSafe, __obj.escape = __escape;\n return __out.join('');\n}","\n/*\n query/firstTabbable() finds the first suitable element to receive focus in the given context.\n If an element has [autofocus] return that element, otherwise return the first element\n in document order that does *not* have a positive tabIndex (e.g. as [tabindex=\"1\"]),\n otherwise return the context itself, if it is focusable.\n\n Note: Chrome's will focus the first tabbable element, even if it has\n [tabindex=\"1\"]. Since [tabindex=\"1\"] is considered\n bad practice we'll ignore it until someone complains.\n */\n\nimport findIndex from '../util/array-find-index';\nimport queryTabbable from './tabbable';\nimport isFocusable from '../is/focusable';\nimport nodeArray from '../util/node-array';\n\nfunction hasAutofocus(element) {\n // [autofocus] actually only works on form element, but who cares?\n return element.hasAttribute('autofocus');\n}\n\nfunction hasNoPositiveTabindex(element) {\n return element.tabIndex <= 0;\n}\n\nexport default function({\n context,\n sequence,\n strategy,\n ignoreAutofocus,\n defaultToContext,\n includeOnlyTabbable,\n} = {}) {\n let index = -1;\n\n if (!sequence) {\n context = nodeArray(context || document.body)[0];\n sequence = queryTabbable({\n context,\n includeOnlyTabbable,\n strategy,\n });\n }\n\n if (sequence.length && !ignoreAutofocus) {\n // prefer [autofocus]\n index = findIndex(sequence, hasAutofocus);\n }\n\n if (sequence.length && index === -1) {\n // ignore positive [tabindex]\n index = findIndex(sequence, hasNoPositiveTabindex);\n }\n\n const _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable,\n });\n\n if (index === -1 && defaultToContext && context && _isFocusable(context)) {\n return context;\n }\n\n return sequence[index] || null;\n}\n","import _templates_users_identify_user_signup_type_ from 'templates/users/identify_user_signup_type'\n/* global $, JST */\nimport BackboneDialog from 'views/dialogs/backbone'\nimport UserTypeView from 'views/users/type'\nimport { popupCenter } from 'helpers/view'\nimport { isBlank } from 'utils/common'\nimport { userType } from 'utils/user'\n\nexport const fireSocialButton = function (e) {\n const callback = function () {\n const link = $(e.currentTarget)\n\n return popupCenter(\n link.attr('href'),\n link.attr('data-width'),\n link.attr('data-height'),\n 'authPopup'\n )\n }\n\n if (isBlank(userType())) {\n const modal = new BackboneDialog({\n view: new UserTypeView({\n template: _templates_users_identify_user_signup_type_,\n alwaysCallback: callback,\n }),\n static: true,\n overflow: 'auto',\n footerShow: false,\n title: 'Please choose your account type.',\n })\n modal.show()\n } else {\n callback()\n }\n\n e.stopPropagation()\n\n return false\n}\n","/* global _E */\nimport { contains } from 'underscore'\nimport EdfinityCookie from 'models/cookie'\n\nexport const userType = () =>\n _E.currentUser.type ||\n new EdfinityCookie({ namespace: 'guest' }).get('user_type', false)\n\nexport const isOperator = () =>\n ['admin', 'superoperator', 'support', 'operator'].includes(\n _E.currentUser.role\n )\n\nexport const isSuperOperator = () =>\n ['admin', 'superoperator', 'support'].includes(_E.currentUser.role)\n\nexport const isSupport = () =>\n ['admin', 'support'].includes(_E.currentUser.role)\n\nexport const isAdmin = () => _E.currentUser.role == 'admin'\n\nexport const isGuest = () => _E.currentUser.role == 'guest'\n\nexport const isEducatorOrTa = () => _E.currentUser.educator || _E.currentUser.ta\n\nexport const isEducator = () => _E.currentUser.educator\n\nexport const isVerifiedEducator = () =>\n _E.currentUser.educator && _E.currentUser.state == 'verified_educator'\n\nexport const isTa = () => _E.currentUser.ta\n\nexport const featureAccess = (feature) =>\n contains(_E.currentUser.features, feature)\n","import { defaults } from 'underscore'\nimport Dialog from 'views/dialogs/dialog'\n\n//\n// Dialog that embeds a Backbone view\n//\nexport default class BackboneDialog extends Dialog {\n initialize (options) {\n super.initialize(options)\n defaults(this.options, { useBodyEl: true })\n this.view = this.options.view\n this.view.modal = this\n }\n\n createModal () {\n super.createModal()\n const el = this.options.useBodyEl ? this.getBody() : this.modal\n this.view.setElement(el)\n this.view.render()\n }\n}\n","import _templates_dialogs_dialog_ from 'templates/dialogs/dialog'\n/* globals $, _E, JST */\nimport { extend, defer, defaults, values, any } from 'underscore'\nimport firstTabbable from '@edfinity/ally/src/query/first-tabbable'\nimport { hideDropdowns, showModal } from 'helpers/view'\nimport { typeset } from 'helpers/mathjax'\nimport { functionValue, uniqueId } from 'utils/common'\nimport ProgressBar from 'views/progress_bar'\nimport BaseView from 'views/base'\nimport DialogLocking from 'views/modules/dialog_locking'\n\n//\n// Wraps Bootstrap Modal to provide desired markup, accessibility, and features\n//\nexport default class Dialog extends BaseView {\n initialize (options) {\n super.initialize(options)\n defaults(this.options, {\n title: '',\n id: uniqueId('modal-' + this.cid),\n role: 'dialog',\n footerShow: true,\n buttonOk: 'OK',\n buttonOkClass: 'btn-blue',\n buttonCancel: 'Cancel',\n buttonCancelShow: true,\n closeOnEnter: false,\n bodyClass: '',\n static: false,\n focusOnFirst: true,\n confineInteractions: true,\n })\n\n extend(this, DialogLocking)\n this.progressBar = this.addChild(new ProgressBar())\n }\n\n show () {\n if (!this.alreadyVisible()) {\n this.deactivateOtherModals()\n hideDropdowns()\n\n this.clickedButton = null\n this.lastActiveElement = this.getLastActiveElement()\n\n if (this.modal == null) {\n this.createModal()\n if (!_E.modals) {\n _E.modals = {}\n }\n _E.modals[this.modal.get(0).id] = this\n this.configureRequiredFields()\n }\n\n defer(() => showModal(this.modal))\n }\n return this\n }\n\n hide () {\n hideDropdowns(this.modal)\n if (this.modal != null) {\n this.modal.modal('hide')\n }\n return this\n }\n\n createModal () {\n this.modal = $(_templates_dialogs_dialog_({ opts: this.options }))\n this.assign(this.progressBar, this.modal.find('#progress-bar'), {\n local: false,\n })\n\n $('body').append(this.modal)\n if (this.options.width) {\n this.$('.modal-dialog').css('min-width', this.options.width + 'px')\n }\n\n this.refreshTooltips(this.modal)\n this.addDialogClass()\n\n if (this.options.bodyClass) {\n this.$('.modal-body').addClass(this.options.bodyClass)\n }\n if (this.options.static) {\n this.modal.data('backdrop', 'static')\n }\n if (this.options.overflow) {\n this.getBody().css('overflow-y', this.options.overflow)\n }\n if (this.options.height) {\n this.getBody().css('max-height', this.options.height)\n }\n if (this.options.modalFooterLeft) {\n this.$('.modal-footer-left').html(this.options.modalFooterLeft)\n }\n typeset(this.modal.get(0))\n\n this.okButton = this.modal.find('.okay')\n this.secondButton = this.modal.find('.second')\n this.cancelButton = this.modal.find('.cancel')\n this.cancelHeaderButton = this.modal.find('.cancel-header')\n this.clickedButton = null\n\n this.okButton.click((e) => {\n if (this.okButton.hasClass('disabled')) {\n e.stopPropagation()\n } else {\n this.clickedButton = 'ok'\n }\n })\n\n this.cancelButton.click((e) => {\n this.clickedButton = 'cancel'\n })\n this.cancelHeaderButton.click((e) => {\n this.clickedButton = 'cancel'\n })\n this.secondButton.click((e) => {\n this.clickedButton = 'second'\n })\n this.listenToModal()\n }\n\n getLastActiveElement () {\n const activeElement = document.activeElement\n const isDropdownItem = $(activeElement).hasClass('.dropdown-item')\n return isDropdownItem\n ? $(activeElement)\n .parent('.dropdown')\n .find('[data-toggle=\"dropdown\"]')\n .get(0) || activeElement\n : activeElement\n }\n\n getBody () {\n if (this.modal) {\n return this.modal.find('.modal-body')\n }\n }\n\n renderBody (html) {\n this.getBody().html(html)\n }\n\n lock () {\n if (this.options.confineInteractions) {\n this.lockInteractionTo(this.modal, this.modal.get(0))\n }\n }\n\n unlock () {\n if (this.options.confineInteractions) {\n this.unlockInteraction()\n }\n }\n\n $ (selector) {\n return this.modal.find(selector)\n }\n\n getRequiredFields () {\n return this.$(\n 'input.required,select.required,textarea.required,input.listen-required'\n )\n }\n\n hasRequiredFieldValues () {\n if (this.options.missingRequired) {\n return false\n }\n\n const inputs = this.$('.required')\n return (\n inputs.filter(function () {\n return $(this).val() !== ''\n }).length === inputs.length\n )\n }\n\n configureRequiredFields () {\n const inputs = this.getRequiredFields()\n this.enableButton(this.okButton, this.hasRequiredFieldValues())\n\n const modal = this\n inputs.each(function () {\n $(this).keyup((e) => modal.enableOkButton())\n $(this).change((e) => modal.enableOkButton())\n })\n\n const input = $(inputs.get(0))\n if (input) {\n this.modal.bind('show.bs.modal', () => {\n if (this.options.value) {\n input.val(this.options.value)\n }\n this.enableButton(this.okButton, this.hasRequiredFieldValues())\n })\n\n this.modal.bind('hidden.bs.modal', () => {\n this.enableButton(this.okButton, false)\n })\n }\n }\n\n addDialogClass () {\n if (this.options.dialogClass) {\n this.$('.modal-dialog').addClass(\n functionValue(this.options.dialogClass, this)\n )\n }\n }\n\n setFocus () {\n if (this.modal) {\n let tabbable\n\n // see if user has already moved focus\n if ($.contains(this.$('.modal-dialog').get(0), document.activeElement))\n return\n\n if (\n this.options.focusOnFirst &&\n this.modal.find('input').length > 0 &&\n (tabbable = firstTabbable({\n context: this.modal.find('input'),\n defaultToContext: true,\n }))\n ) {\n tabbable.focus()\n } else {\n const focusButton =\n this.cancelHeaderButton ||\n this.okButton ||\n this.cancelButton ||\n this.secondButton\n focusButton?.focus()\n }\n }\n }\n\n enableButton (button, enable) {\n if (enable) {\n button.removeAttr('disabled')\n button.removeClass('disabled')\n } else {\n button.attr('disabled', 'disabled')\n button.addClass('disabled')\n }\n }\n\n enableOkButton () {\n this.enableButton(this.okButton, this.hasRequiredFieldValues())\n }\n\n handleCallback () {\n this.options.callback?.(this.okClicked() || this.secondClicked(), this)\n }\n\n listenToModal () {\n this.modal.on('hide.bs.modal', this.onModalHide.bind(this))\n this.modal.on('hidden.bs.modal', this.onModalHidden.bind(this))\n this.modal.on('shown.bs.modal', this.onModalShown.bind(this))\n this.modal.click(this.onModalClick.bind(this))\n $(document).keyup(this.onKeyup.bind(this))\n }\n\n alreadyVisible () {\n // this logic isn't perfect; it relies on the fact that a matching dialog\n // will have the same title. In a very small edge case, a user on a slow\n // machine can click on two different buttons that open dialogs and get\n // an error due to the disengage handle not having been created. We are\n // willing for now to take that chance.\n return any(values(_E.modals), (modal) => {\n return modal.options.title === this.options.title\n })\n }\n\n deactivateOtherModals () {\n values(_E.modals).forEach((modal) => {\n if (modal !== this) {\n modal.modal.attr('aria-modal', false)\n modal.modal.attr('aria-hidden', true)\n modal.modal.addClass('modal-background')\n $(document).off('keyup', modal.onKeyup)\n modal.unlock()\n }\n })\n }\n\n activateOtherModals () {\n values(_E.modals).forEach((modal) => {\n if (modal !== this) {\n modal.modal.attr('aria-modal', true)\n modal.modal.attr('aria-hidden', false)\n modal.modal.removeClass('modal-background')\n $(document).on('keyup', modal.onKeyup)\n modal.lock()\n }\n })\n }\n\n okClicked () {\n return this.clickedButton === 'ok'\n }\n\n cancelClicked () {\n return this.clickedButton === 'cancel'\n }\n\n secondClicked () {\n return this.clickedButton === 'second'\n }\n\n //\n // event handlers\n //\n onKeyup (e) {\n const isTarget = $(e.target).closest('.modal').is(this.modal)\n if (\n this.modal &&\n this.options.closeOnEnter &&\n e.keyCode === 13 &&\n e.target.type !== 'textarea' &&\n e.target !== this.cancelButton.get(0) &&\n e.target !== this.cancelHeaderButton.get(0) &&\n isTarget &&\n this.hasRequiredFieldValues()\n ) {\n this.clickedButton = 'ok'\n this.hide()\n }\n }\n\n onModalShown () {\n _E.modal = this\n _E.globalEvents.trigger('dialogShown')\n this.modal.find('h2').focus()\n this.lock()\n }\n\n onModalHide (e) {\n this.getBody().scrollTop(0) // reset position for the next time model is opened\n\n if (this.clickedButton == null) {\n this.clickedButton = 'cancel'\n }\n if (\n this.options.validate &&\n !this.cancelClicked() &&\n !this.options.validate(this)\n ) {\n e.preventDefault()\n this.clickedButton = null\n }\n }\n\n onModalHidden (e) {\n this.handleCallback()\n\n delete _E.modals[this.modal.get(0).id]\n this.unlock()\n _E.globalEvents.trigger('dialogHidden')\n\n if (e.target === this.modal[0]) {\n this.modal.remove()\n }\n this.modal = null\n\n _E.modal = null\n this.activateOtherModals()\n\n defer(() => {\n this.lastActiveElement.focus()\n $(this.lastActiveElement).tooltip('hide')\n })\n }\n\n onModalClick () {\n hideDropdowns(this.modal)\n }\n}\n","export default function(__obj) {\n if (!__obj) __obj = {};\n var __out = [], __capture = function(callback) {\n var out = __out, result;\n __out = [];\n callback.call(this);\n result = __out.join('');\n __out = out;\n return __safe(result);\n }, __sanitize = function(value) {\n if (value && value.ecoSafe) {\n return value;\n } else if (typeof value !== 'undefined' && value != null) {\n return __escape(value);\n } else {\n return '';\n }\n }, __safe, __objSafe = __obj.safe, __escape = __obj.escape;\n __safe = __obj.safe = function(value) {\n if (value && value.ecoSafe) {\n return value;\n } else {\n if (!(typeof value !== 'undefined' && value != null)) value = '';\n var result = new String(value);\n result.ecoSafe = true;\n return result;\n }\n };\n if (!__escape) {\n __escape = __obj.escape = function(value) {\n return ('' + value)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"');\n };\n }\n (function() {\n (function() {\n __out.push('\\n
\\n
\\n ');\n \n if (!this.opts.hideHeader) {\n __out.push('\\n \\n ');\n }\n \n __out.push('\\n\\n
\\n\\n ');\n \n if (this.opts.footerShow) {\n __out.push('\\n \\n ');\n }\n \n __out.push('\\n
\\n
\\n\\n');\n \n }).call(this);\n \n }).call(__obj);\n __obj.safe = __objSafe, __obj.escape = __escape;\n return __out.join('');\n}","import BaseView from 'views/base'\nimport { fireSocialButton } from 'helpers/fire_social_button'\n\nexport default class NewSessionView extends BaseView {\n events () {\n return { 'click .btn-social': 'onSocialButtonClicked' }\n }\n\n //\n // event handlers\n //\n onSocialButtonClicked (e) {\n fireSocialButton(e)\n\n return false\n }\n}\n","/* global $ */\nimport { defaults } from 'underscore'\nimport Cookie from 'models/cookie'\nimport { userType } from 'utils/user'\nimport BaseView from 'views/base'\n\nexport default class UserType extends BaseView {\n events () {\n return {\n 'click .user-type-educator': 'onEducatorTypeSelected',\n 'click .user-type-student': 'onStudentTypeSelected',\n }\n }\n\n initialize (options) {\n super.initialize(options)\n defaults(this.options, { callback: $.noop })\n this.cookie = new Cookie({ namespace: 'guest' })\n this.currentType = userType()\n }\n\n render () {\n this.$el.html(this.options.template({ url: this.options.url }))\n this.$el.closest('.modal-body').addClass('user-type-modal')\n\n return this\n }\n\n redirectTo () {\n if (\n this.options.url &&\n (this.options.redirectUnlessType == null ||\n this.options.redirectUnlessType !== this.userType)\n ) {\n window.location = this.options.url\n }\n this.modal.hide()\n }\n\n callback () {\n if (this.options.redirectUnlessType === this.userType) {\n this.options.callback?.()\n }\n this.options.alwaysCallback?.()\n }\n\n onEducatorTypeSelected (e) {\n this.cookie.set('user_type', 'educator')\n this.userType = 'educator'\n this.redirectTo()\n this.callback()\n }\n\n onStudentTypeSelected (e) {\n this.cookie.set('user_type', 'student')\n this.userType = 'student'\n this.redirectTo()\n this.callback()\n }\n}\n"],"names":["__obj","__out","__sanitize","value","ecoSafe","__escape","__objSafe","safe","escape","result","String","replace","push","this","url","call","join","hasAutofocus","element","hasAttribute","hasNoPositiveTabindex","tabIndex","context","sequence","strategy","ignoreAutofocus","defaultToContext","includeOnlyTabbable","index","document","body","length","_isFocusable","rules","except","onlyTabbable","fireSocialButton","e","callback","link","$","currentTarget","popupCenter","attr","isBlank","userType","BackboneDialog","view","UserTypeView","template","_templates_users_identify_user_signup_type_","alwaysCallback","static","overflow","footerShow","title","show","stopPropagation","_E","currentUser","type","EdfinityCookie","namespace","get","isOperator","includes","role","isSupport","isAdmin","isGuest","isEducatorOrTa","educator","ta","isEducator","isVerifiedEducator","state","featureAccess","feature","contains","features","Dialog","initialize","options","super","defaults","useBodyEl","modal","createModal","el","getBody","setElement","render","BaseView","id","uniqueId","cid","buttonOk","buttonOkClass","buttonCancel","buttonCancelShow","closeOnEnter","bodyClass","focusOnFirst","confineInteractions","extend","DialogLocking","progressBar","addChild","ProgressBar","alreadyVisible","deactivateOtherModals","hideDropdowns","clickedButton","lastActiveElement","getLastActiveElement","modals","configureRequiredFields","defer","showModal","hide","opts","hideHeader","footerClass","_templates_dialogs_dialog_","assign","find","local","append","width","css","refreshTooltips","addDialogClass","addClass","data","height","modalFooterLeft","html","typeset","okButton","secondButton","cancelButton","cancelHeaderButton","click","hasClass","listenToModal","activeElement","parent","renderBody","lock","lockInteractionTo","unlock","unlockInteraction","selector","getRequiredFields","hasRequiredFieldValues","missingRequired","inputs","filter","val","enableButton","each","keyup","enableOkButton","change","input","bind","dialogClass","functionValue","setFocus","tabbable","firstTabbable","focus","focusButton","button","enable","removeAttr","removeClass","handleCallback","_this$options$callbac","_this$options","okClicked","secondClicked","on","onModalHide","onModalHidden","onModalShown","onModalClick","onKeyup","any","values","forEach","off","activateOtherModals","cancelClicked","isTarget","target","closest","is","keyCode","globalEvents","trigger","scrollTop","validate","preventDefault","remove","tooltip","NewSessionView","events","onSocialButtonClicked","UserType","noop","cookie","Cookie","currentType","$el","redirectTo","redirectUnlessType","window","location","_this$options$alwaysC","_this$options2","onEducatorTypeSelected","set","onStudentTypeSelected"],"sourceRoot":""}