{"version":3,"file":"js/application-ae7ec6e6e48849994188.js","mappings":"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","sources":["webpack://relier-react-webpack-rails/./app/javascript/src/application/modal.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/custom_confirm_box.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/datepicker.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/vendor/jquery.infinite-pages.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/infinite_scroll.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/intl_tel_input.js","webpack://relier-react-webpack-rails/./app/javascript/packs/application.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/disabling_checkbox.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/disabling_other_select.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/disabling_title_select.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/flash_messages.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/jquery.tablednd.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/list_search.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/list_sort.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/navigation_menu.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/registration_form.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/report_tab.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/setConfirmFromSelect.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/show_calendar.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/tab_navigation.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/track_time.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/usage_report.js","webpack://relier-react-webpack-rails/./app/javascript/src/application/user_panel_tab.js"],"sourcesContent":["/**\n * Modal\n * A modal library made with raw js\n *\n * @version 1.0\n *\n * @author Javier Sanahuja \n *\n * https://github.com/jsanahuja/modal\n */\nvar Modal = (function(){\n var defaults = {\n title: \"Default modal title\",\n body: \"This is the default body. It can include html. You can also leave it empty so we will hide it :).\",\n buttons: [\n /*No buttons by default.\n {\n content: \"Cancel\",\n classes: \"modal-button-gray\",\n // bindKey: 27, This would throw a warning because we're using the same key for closing.\n bindKey: false,\n callback: function(modal){\n alert(\"You clicked CANCEL!\");\n modal.hide();\n }\n },{\n content: \"Accept\",\n classes: \"modal-button-blue\",\n bindKey: 13, //Enter. See https://keycode.info/\n callback: function(modal){\n alert(\"You clicked ACCEPT!\");\n modal.hide();\n }\n }*/\n ],\n close: {\n closable: true,\n location: \"in\",\n bindKey: 27,\n callback: function(modal){\n modal.hide();\n }\n },\n\n onShow: function(modal){},\n onHide: function(modal){ modal.destroy(); },\n onCreate: function(modal){},\n onDestroy: function(modal){}\n };\n\n /** Object.assign polyfill **/\n if (typeof Object.assign != 'function') {\n Object.assign = function(target) {\n 'use strict';\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n\n target = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source != null) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n }\n\n /**\n * PRIVATE METHODS\n */\n function getClasses(el){\n return el.className.split(\" \").filter(function(c){ return c.length > 0; });\n }\n\n function hasClass(el, className){\n return getClasses(el).indexOf(className) >= 0;\n }\n\n function addClass(el, className){\n if(!hasClass(el, className)){\n el.className += \" \"+ className;\n }\n }\n\n function removeClass(el, className){\n if(hasClass(el, className)){\n var classes = getClasses(el);\n classes.splice(classes.indexOf(className), 1);\n el.className = classes.join(\" \");\n }\n }\n\n var Modal = function(options, id){\n this.id = id || Math.random().toString(36).substr(2);\n this.options = Object.assign({}, defaults, options);\n // this will fix options.close unwanted overrides\n if(typeof options !== undefined && typeof options.close !== undefined){\n this.options.close = Object.assign({}, defaults.close, options.close);\n }\n this.display = false;\n this.bindings = {};\n\n this.bind = function(key, callback){\n if(typeof this.bindings[key] !== \"undefined\")\n console.warn(\"Modal: Tried to bind the key \"+ key +\" twice. Overriding...\");\n this.bindings[key] = callback;\n };\n\n this.addKeyListener = function(){\n window.currentModal = this;\n window.addEventListener(\"keydown\", this.onKeyPress, false);\n };\n\n this.removeKeyListener = function(){\n window.currentModal = undefined;\n window.removeEventListener(\"keydown\", this.onKeyPress, false);\n };\n\n this.onKeyPress = function(e){\n if(typeof window.currentModal !== \"undefined\" && window.currentModal instanceof Modal){\n var _that = window.currentModal;\n if(!_that.display)\n return;\n var keyCode = e.keyCode || e.which;\n var keys = Object.keys(_that.bindings);\n for(var i = 0; i < keys.length; i++){\n if(keys[i] == keyCode){\n e.preventDefault();\n e.stopPropagation();\n _that.bindings[keys[i]](_that);\n return false;\n }\n }\n }\n };\n\n this.show = function(){\n if(typeof this.wrapper !== \"undefined\"){\n addClass(this.wrapper, \"modal-active\");\n addClass(document.body, \"modal-active\");\n this.display = true;\n this.options.onShow(this);\n }\n };\n\n this.hide = function(){\n if(typeof this.wrapper !== \"undefined\"){\n removeClass(this.wrapper, \"modal-active\");\n removeClass(document.body, \"modal-active\");\n this.display = false;\n this.options.onHide(this);\n }\n };\n\n this.create = function(){\n if(typeof this.wrapper !== \"undefined\"){\n return;\n }\n var backdrop, dialog;\n\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"modal-wrapper\";\n this.wrapper.id = \"modal-wrapper-\" + this.id;\n\n backdrop = document.createElement(\"div\");\n backdrop.className = \"modal-backdrop\";\n\n dialog = document.createElement(\"div\");\n dialog.className = \"modal-dialog\";\n\n if(typeof this.options.close.closable !== \"undefined\" && this.options.close.closable){\n var close = document.createElement(\"a\");\n close.setAttribute(\"href\", \"javascript:void(0);\");\n\n if(typeof this.options.close.callback === \"undefined\")\n this.options.close.callback = function(){};\n\n //close button click\n close.modal = this;\n close.callback = this.options.close.callback;\n close.onclick = function(e){\n e.preventDefault();\n e.stopPropagation()\n this.callback(this.modal);\n return false;\n }\n\n //close key binding\n if(typeof this.options.close.bindKey === \"number\"){\n this.bind(this.options.close.bindKey, this.options.close.callback);\n }\n\n if(typeof this.options.close.location === \"undefined\" || this.options.close.location == \"in\"){\n close.className = \"modal-close-in\";\n dialog.appendChild(close);\n }else{\n close.className = \"modal-close-out\";\n backdrop.appendChild(close);\n }\n }\n\n if(this.options.title != \"\"){\n var title = document.createElement(\"div\");\n title.className = \"modal-title\";\n title.innerHTML = this.options.title;\n dialog.appendChild(title);\n }\n\n if(this.options.body != \"\"){\n var body = document.createElement(\"div\");\n body.className = \"modal-body\";\n body.innerHTML = this.options.body;\n dialog.appendChild(body);\n }\n\n if(this.options.buttons.length > 0){\n var buttons = document.createElement(\"div\");\n buttons.className = \"modal-buttons\";\n\n for(var i = 0; i < this.options.buttons.length; i++){\n var button = document.createElement(\"button\");\n button.setAttribute(\"href\", \"javascript:void(0);\");\n\n button.className = \"modal-button\";\n if(typeof this.options.buttons[i].classes !== \"undefined\")\n button.className += \" \" + this.options.buttons[i].classes;\n\n if(typeof this.options.buttons[i].content !== \"undefined\")\n button.innerHTML = this.options.buttons[i].content;\n\n if(typeof this.options.buttons[i].callback === \"undefined\")\n this.options.buttons[i].callback = function(modal){ modal.hide(); };\n\n //button click\n button.modal = this;\n button.callback = this.options.buttons[i].callback;\n button.onclick = function(e){\n e.preventDefault();\n e.stopPropagation();\n this.callback(this.modal);\n return false;\n };\n\n //button key binding\n if(typeof this.options.buttons[i].bindKey !== \"undefined\"){\n this.bind(this.options.buttons[i].bindKey, this.options.buttons[i].callback);\n }\n\n buttons.appendChild(button);\n }\n dialog.appendChild(buttons);\n }\n this.wrapper.appendChild(backdrop);\n this.wrapper.appendChild(dialog);\n document.body.appendChild(this.wrapper);\n\n this.addKeyListener();\n this.options.onCreate(this);\n };\n\n this.destroy = function(){\n if(typeof this.wrapper !== \"undefined\"){\n document.body.removeChild(this.wrapper);\n this.wrapper = undefined;\n this.removeKeyListener();\n this.options.onDestroy(this);\n }\n };\n\n this.create();\n return this;\n }\n\n return Modal;\n})();\n\nexport default Modal;\n","import Modal from 'modal'\nimport Rails from '@rails/ujs'\n\n// The code in this file is based on https://gist.github.com/carloswherbet/0d8ea53c3d406b4abb550e736ec5d2e5\n//\nfunction setUpCustomConfirmBox() {\n window.customAlertBox = function ({title, message, okLabel}) {\n new Modal({\n title: title,\n body: message,\n buttons: [\n {\n content: okLabel || \"OK\",\n classes: \"gen-button highlighted small\",\n bindKey: 13,\n callback: function(modal){\n modal.hide();\n }\n }\n ]\n }).show();\n }\n\n window.customConfirmBox = function ({message, title, callback, okLabel, cancel, showsCancel = true}) {\n let buttons = []\n buttons.push({\n content: okLabel || \"OK\",\n classes: \"gen-button highlighted small\",\n bindKey: 13,\n callback: function(modal){\n modal.hide();\n callback();\n }\n })\n showsCancel && buttons.push({\n content: \"Cancel\",\n classes: \"gen-button highlighted small\",\n bindKey: false,\n callback: function(modal){\n modal.hide();\n if(cancel) {\n cancel()\n }\n }\n })\n\n new Modal({\n title: title || 'Please Confirm!',\n body: message,\n buttons: buttons,\n close: {\n closable: false\n }\n }).show();\n }\n}\n\n$(document).ready(setUpCustomConfirmBox);\n$(document).on('turbo:load', setUpCustomConfirmBox);\n","import datepickerFactory from 'jquery-datepicker';\ndatepickerFactory($)\n\nfunction setUpDatePickers() {\n $('.datepicker').datepicker({\n dateFormat: \"M d, yy\",\n // June 1, 2017 was the launch date.\n minDate: new Date(2017, 6 - 1, 1),\n beforeShow: function (input, inst) {\n setTimeout(function () {\n inst.dpDiv.css({\n top: $(\".datepicker\").offset().top + 35,\n left: $(\".datepicker\").offset().left\n });\n }, 0);\n }\n })\n $('.studentdatepicker').datepicker({\n dateFormat: \"M d, yy\",\n minDate: new Date(),\n });\n $('.customcoursedatepicker1').datepicker({\n dateFormat: \"M d, yy\",\n minDate: new Date(),\n });\n $('.customcoursedatepicker2').datepicker({\n dateFormat: \"M d, yy\",\n minDate: new Date(),\n });\n\n $('.report-dashboard-datepicker1').datepicker({\n dateFormat: \"M d, yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.report-dashboard-datepicker2').datepicker({\n dateFormat: \"M d, yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.user-profile-datepicker').datepicker({\n dateFormat: \"mm-dd-yy\",\n beforeShow: function(input) {\n let fieldId = $(input).attr(\"id\");\n // Set minDate and maxDate dynamically when datepicker opens\n if (fieldId === \"registration_form_end_date\") {\n let startDate = $(\"#registration_form_start_date\").datepicker(\"getDate\");\n if (startDate) {\n $(this).datepicker(\"option\", \"minDate\", startDate);\n }\n }\n\n if (fieldId === \"registration_form_start_date\") {\n let endDate = $(\"#registration_form_end_date\").datepicker(\"getDate\");\n if (endDate) {\n $(this).datepicker(\"option\", \"maxDate\", endDate);\n }\n }\n },\n onSelect: function() {\n let fieldId = $(this).attr(\"id\");\n if ($(\"#registration_form_start_date\").hasClass(\"validate-date\") && fieldId === \"registration_form_start_date\") {\n let startDate = $(this).datepicker(\"getDate\");\n $(\"#registration_form_end_date\").datepicker(\"option\", \"minDate\", startDate || null);\n }\n\n if ($(\"#registration_form_end_date\").hasClass(\"validate-date\") && fieldId === \"registration_form_end_date\") {\n let endDate = $(this).datepicker(\"getDate\");\n $(\"#registration_form_start_date\").datepicker(\"option\", \"maxDate\", endDate || null);\n }\n\n $(\"#date_changed\").click();\n },\n onClose: function() {\n // if registration_form_start_date is empty, set minDate to null for registration_form_end_date\n if ($(\"#registration_form_start_date\").val() === \"\") {\n $(\"#registration_form_end_date\").datepicker(\"option\", \"minDate\", null);\n }\n // if registration_form_end_date is empty, set maxDate to null for registration_form_start_date\n if ($(\"#registration_form_end_date\").val() === \"\") {\n $(\"#registration_form_start_date\").datepicker(\"option\", \"maxDate\", null);\n }\n $(\"#date_changed\").click();\n }\n });\n $('.exam-academic-start-date-picker').datepicker({\n numberOfMonths: 1,\n dateFormat: \"mm-dd-yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.exam-academic-end-date-picker').datepicker({\n numberOfMonths: 1,\n dateFormat: \"mm-dd-yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.academic-start-date-picker-edit').datepicker({\n numberOfMonths: 1,\n dateFormat: \"mm-dd-yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.academic-end-date-picker-edit').datepicker({\n numberOfMonths: 1,\n dateFormat: \"mm-dd-yy\",\n onSelect: function() {\n $(\"#date_changed\").click();\n }\n });\n $('.educator-dashboard-datepicker').datepicker({\n dateFormat: \"M d, yy\",\n onSelect: function(dateText, inst) {\n const element = $(this)[0]; // Get the raw DOM element\n element.value = dateText; // Update the value explicitly\n \n // Manually trigger the Stimulus action\n const event = new Event(\"change\", { bubbles: true });\n element.dispatchEvent(event);\n },\n beforeShow: function(input, inst) {\n // Add a custom class to the datepicker popup\n setTimeout(function () {\n $('#ui-datepicker-div').addClass('educator-dashboard-datepicker-popup');\n }, 0);\n }\n })\n $('.superadmin-dashboard-datepicker').datepicker({\n dateFormat: \"M d, yy\",\n onSelect: function(dateText, inst) {\n const element = $(this)[0]; // Get the raw DOM element\n element.value = dateText; // Update the value explicitly\n \n // Manually trigger the Stimulus action\n const event = new Event(\"change\", { bubbles: true });\n element.dispatchEvent(event);\n },\n beforeShow: function(input, inst) {\n // Add a custom class to the datepicker popup\n setTimeout(function () {\n $('#ui-datepicker-div').addClass('superadmin-dashboard-datepicker-popup');\n }, 0);\n }\n })\n\n}\n\n$(document).ready(setUpDatePickers);\n$(document).on('turbo:load', setUpDatePickers);\n","/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * DS206: Consider reworking classes to avoid initClass\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\n/*\njQuery Infinite Pages v0.2.0\nhttps://github.com/magoosh/jquery-infinite-pages\n\nReleased under the MIT License\n*/\n\n//\n// Built with a class-based template for jQuery plugins in Coffeescript:\n// https://gist.github.com/rjz/3610858\n//\n\nexport default function($, window) {\n // Define the plugin class\n class InfinitePages {\n static initClass() {\n\n // Default settings\n this.prototype.defaults = {\n debug: false, // set to true to log messages to the console\n navSelector: 'a[rel=next]',\n buffer: 1000, // 1000px buffer by default\n loading: null, // optional callback when next-page request begins\n success: null, // optional callback when next-page request finishes\n error: null, // optional callback when next-page request fails\n context: window, // context to define the scrolling container\n state: {\n paused: false,\n loading: false\n }\n };\n }\n\n // Constructs the new InfinitePages object\n //\n // container - the element containing the infinite table and pagination links\n constructor(container, options) {\n this.options = $.extend({}, this.defaults, options);\n this.$container = $(container);\n this.$table = $(container).find('table');\n this.$context = $(this.options.context);\n this.init();\n }\n\n // Setup and bind to related events\n init() {\n\n // Debounce scroll event to improve performance\n let scrollTimeout = null;\n const scrollHandler = (() => this.check());\n\n return this.$context.scroll(function() {\n if (scrollTimeout) {\n clearTimeout(scrollTimeout);\n scrollTimeout = null;\n }\n return scrollTimeout = setTimeout(scrollHandler, 250);\n });\n }\n\n // Internal helper for logging messages\n _log(msg) {\n if (this.options.debug) { return (typeof console !== 'undefined' && console !== null ? console.log(msg) : undefined); }\n }\n\n // Check the distance of the nav selector from the bottom of the window and fire\n // load event if close enough\n check() {\n const nav = this.$container.find(this.options.navSelector);\n if (nav.length === 0) {\n return this._log(\"No more pages to load\");\n } else {\n const windowBottom = this.$context.scrollTop() + this.$context.height();\n const distance = nav.offset().top - windowBottom;\n\n if (this.options.state.paused) {\n return this._log(\"Paused\");\n } else if (this.options.state.loading) {\n return this._log(\"Waiting...\");\n } else if (distance > this.options.buffer) {\n return this._log(`${distance - this.options.buffer}px remaining...`);\n } else {\n return this.next(); // load the next page\n }\n }\n }\n\n // Load the next page\n next() {\n if (this.options.state.done) {\n return this._log(\"Loaded all pages\");\n } else {\n this._loading();\n\n return $.getScript(this.$container.find(this.options.navSelector).attr('href'))\n .done(() => this._success())\n .fail(() => this._error());\n }\n }\n\n _loading() {\n this.options.state.loading = true;\n this._log(\"Loading next page...\");\n if (typeof this.options.loading === 'function') {\n return this.$container.find(this.options.navSelector).each(this.options.loading);\n }\n }\n\n _success() {\n this.options.state.loading = false;\n this._log(\"New page loaded!\");\n if (typeof this.options.success === 'function') {\n return this.$container.find(this.options.navSelector).each(this.options.success);\n }\n }\n\n _error() {\n this.options.state.loading = false;\n this._log(\"Error loading new page :(\");\n if (typeof this.options.error === 'function') {\n return this.$container.find(this.options.navSelector).each(this.options.error);\n }\n }\n\n // Pause firing of events on scroll\n pause() {\n this.options.state.paused = true;\n return this._log(\"Scroll checks paused\");\n }\n\n // Resume firing of events on scroll\n resume() {\n this.options.state.paused = false;\n this._log(\"Scroll checks resumed\");\n return this.check();\n }\n }\n InfinitePages.initClass();\n\n // Define the plugin\n return $.fn.extend({infinitePages(option, ...args) {\n return this.each(function() {\n const $this = $(this);\n let data = $this.data('infinitepages');\n\n if (!data) {\n $this.data('infinitepages', (data = new InfinitePages(this, option)));\n }\n if (typeof option === 'string') {\n return data[option].apply(data, args);\n }});\n }});\n\n}\n","import React from 'react';\nimport infinitePagesFactory from 'vendor/jquery.infinite-pages.js'\ninfinitePagesFactory($, window)\n\nconst initializeInfinitePages = () => {\n const $list = $('.infinite-list')\n $list.infinitePages({\n loading: () => {\n $list.find('.pagination-spinner').html(\n
\n
\n
\n
\n
\n )\n },\n error: () => {\n $list.button('There was an error, please try again')\n }\n })\n}\n\n$(document)\n .ready(initializeInfinitePages)\n .on('turbo:load', initializeInfinitePages)\n","import * as intlTelInput from 'intl-tel-input';\n\nfunction setupIntlTelInput() {\n var input = document.querySelector(\"#contact-phone-iti\");\n if (!input) { return; } // Return if no contact phone field is present\n\n var iti = intlTelInput(input, {\n allowDropdown: true,\n initialCountry: \"auto\",\n geoIpLookup: function(callback) {\n $.get('https://ipinfo.io', function() {}, \"jsonp\").always(function(resp) {\n var countryCode = (resp && resp.country) ? resp.country : \"\";\n callback(countryCode);\n });\n },\n utilsScript: \"/packs/utils.js\"\n });\n\n // on blur: validate\n input.addEventListener('blur', function() {\n $(\"#contact-phone-iti\").val(iti.getNumber())\n if (input.value.trim()) {\n var contact_phone_validity_message = (iti.isValidNumber()) ? \"\" : \"Provide valid contact phone number\";\n input.setCustomValidity(contact_phone_validity_message);\n }\n });\n}\n\n$(document).ready(setupIntlTelInput);\n$(document).on('turbo:load', setupIntlTelInput);\n","import \"../controllers\";\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\nimport \"@hotwired/turbo\"\n\nimport Rails from '@rails/ujs'\nimport * as ActiveStorage from '@rails/activestorage'\nimport $ from \"jquery\"\n\nimport * as EasyMDE from 'easymde';\nwindow.EasyMDE = EasyMDE;\n\nglobal.Rails = Rails\nRails.start()\nActiveStorage.start()\n\nimport 'application/custom_confirm_box'\nimport 'application/datepicker'\nimport 'application/disabling_checkbox'\nimport 'application/disabling_other_select'\nimport 'application/disabling_title_select'\nimport 'application/infinite_scroll'\nimport 'application/intl_tel_input'\nimport 'application/list_search'\nimport 'application/list_sort'\nimport 'application/navigation_menu'\nimport 'application/report_tab'\nimport 'application/setConfirmFromSelect'\nimport 'application/show_calendar'\nimport 'application/usage_report'\nimport 'application/user_panel_tab'\nimport 'application/jquery.tablednd'\nimport \"application/track_time.js\"\nimport \"application/analytics.js\"\nimport \"application/registration_form.js\"\nimport \"application/flash_messages.js\"\nimport \"application/tab_navigation.js\"\n\nimport \"controllers\"\n","function disablingCheckbox(checkbox){\n var target = $(checkbox).attr(\"data-disabling-checkbox-target\");\n var onState = $(checkbox).attr(\"data-disabling-checkbox-hide-state\") === 'true';\n var currentState = $(checkbox).is(\":checked\");\n\n if(currentState != onState){\n $(\"#\" + target).show();\n } else {\n $(\"#\" + target).hide();\n }\n}\n\nfunction disablingCheckboxReady(){\n $('.disabling-checkbox').each( function(){\n disablingCheckbox(this);\n });\n\n $('.disabling-checkbox').change( function(){\n disablingCheckbox(this);\n });\n}\n\n$(document).ready(disablingCheckboxReady);\n$(document).on('turbo:load', disablingCheckboxReady);\n","function disablingOtherSelect(checkbox){\n var target = $(checkbox).attr(\"data-disabling-other-select-target\");\n var currentState = $(checkbox).val();\n\n if(currentState === \"Other\"){\n $(\"#\" + target).show();\n } else {\n $(\"#\" + target).hide();\n }\n}\n\nfunction disablingOtherSelectReady(){\n $('.disabling-other-select').each( function(){\n disablingOtherSelect(this);\n });\n\n $('.disabling-other-select').change( function(){\n disablingOtherSelect(this);\n });\n}\n\n$(document).ready(disablingOtherSelectReady);\n$(document).on('turbo:load', disablingOtherSelectReady);\n","function disablingTitleSelect(select){\n var target = $(select).attr(\"data-disabling-title-select-target\");\n var currentState = $(select).val();\n\n if(currentState === \"Student\" || currentState === \"\"){\n $(\"#\" + target).hide();\n } else {\n $(\"#\" + target).show();\n }\n}\n\nfunction disablingTitleSelectReady(){\n $('.disabling-title-select').each( function(){\n disablingTitleSelect(this);\n });\n\n $('.disabling-title-select').change( function(){\n disablingTitleSelect(this);\n });\n}\n\n$(document).ready(disablingTitleSelectReady);\n$(document).on('turbo:load', disablingTitleSelectReady);\n","function initializeFlashMessages(container) {\n if (!container) return;\n\n const closeButtons = container.querySelectorAll(\".flash-close-button\");\n const timeoutDuration = 5000;\n\n setTimeout(() => {\n container.querySelectorAll(\".alert\").forEach((alert) => {\n fadeOut(alert, () => {\n if (alert && alert.parentNode) {\n alert.parentNode.removeChild(alert);\n\n if (container.querySelectorAll(\".alert\").length === 0 && !container.classList.contains('saq-player-flash-messages')) {\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n }\n }\n }\n });\n });\n }, timeoutDuration);\n\n closeButtons.forEach((button) => {\n button.addEventListener(\"click\", () => {\n const flashMessageDiv = button.closest(\".alert\");\n if (flashMessageDiv) {\n fadeOut(flashMessageDiv, () => {\n if (flashMessageDiv.parentNode) {\n flashMessageDiv.parentNode.removeChild(flashMessageDiv);\n\n if (container.querySelectorAll(\".alert\").length === 0) {\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n }\n }\n }\n });\n }\n });\n });\n}\n\nfunction fadeOut(element, callback) {\n element.style.transition = \"opacity 0.5s ease\";\n element.style.opacity = 0;\n\n setTimeout(() => {\n if (callback) callback();\n }, 500);\n}\n\ndocument.addEventListener(\"turbo:load\", () => {\n const flashMessagesContainer = document.getElementById(\"flash-messages\");\n initializeFlashMessages(flashMessagesContainer);\n});\n\ndocument.addEventListener(\"turbo:before-stream-render\", (event) => {\n const targetId = event.target.getAttribute(\"target\");\n if (targetId === \"flash-messages\" || targetId === \"saq-player-flash-messages\") {\n setTimeout(() => {\n const updatedFlashMessages = document.getElementById(targetId);\n initializeFlashMessages(updatedFlashMessages);\n }, 10);\n }\n});\n","/**\n * TableDnD plug-in for JQuery, allows you to drag and drop table rows\n * You can set up various options to control how the system will work\n * Copyright (c) Denis Howlett \n * License: MIT.\n * See https://github.com/isocra/TableDnD\n */\n\n/*jshint -W054 */\n\n!function ($, window, document, undefined) {\n\nvar startEvent = 'touchstart mousedown',\n moveEvent = 'touchmove mousemove',\n endEvent = 'touchend mouseup';\n\n$(document).ready(function () {\n function parseStyle(css) {\n var objMap = {},\n parts = css.match(/([^;:]+)/g) || [];\n while (parts.length)\n objMap[parts.shift()] = parts.shift().trim();\n\n return objMap;\n }\n $('table').each(function () {\n if ($(this).data('table') === 'dnd') {\n\n $(this).tableDnD({\n onDragStyle: $(this).data('ondragstyle') && parseStyle($(this).data('ondragstyle')) || null,\n onDropStyle: $(this).data('ondropstyle') && parseStyle($(this).data('ondropstyle')) || null,\n onDragClass: $(this).data('ondragclass') === undefined && \"tDnD_whileDrag\" || $(this).data('ondragclass'),\n onDrop: $(this).data('ondrop') && new Function('table', 'row', $(this).data('ondrop')), // 'return eval(\"'+$(this).data('ondrop')+'\");') || null,\n onDragStart: $(this).data('ondragstart') && new Function('table', 'row' ,$(this).data('ondragstart')), // 'return eval(\"'+$(this).data('ondragstart')+'\");') || null,\n onDragStop: $(this).data('ondragstop') && new Function('table', 'row' ,$(this).data('ondragstop')),\n scrollAmount: $(this).data('scrollamount') || 5,\n sensitivity: $(this).data('sensitivity') || 10,\n hierarchyLevel: $(this).data('hierarchylevel') || 0,\n indentArtifact: $(this).data('indentartifact') || '
 
',\n autoWidthAdjust: $(this).data('autowidthadjust') || true,\n autoCleanRelations: $(this).data('autocleanrelations') || true,\n jsonPretifySeparator: $(this).data('jsonpretifyseparator') || '\\t',\n serializeRegexp: $(this).data('serializeregexp') && new RegExp($(this).data('serializeregexp')) || /[^\\-]*$/,\n serializeParamName: $(this).data('serializeparamname') || false,\n dragHandle: $(this).data('draghandle') || null\n });\n }\n\n\n });\n});\n\njQuery.tableDnD = {\n /** Keep hold of the current table being dragged */\n currentTable: null,\n /** Keep hold of the current drag object if any */\n dragObject: null,\n /** The current mouse offset */\n mouseOffset: null,\n /** Remember the old value of X and Y so that we don't do too much processing */\n oldX: 0,\n oldY: 0,\n\n /** Actually build the structure */\n build: function(options) {\n // Set up the defaults if any\n\n this.each(function() {\n // This is bound to each matching table, set up the defaults and override with user options\n this.tableDnDConfig = $.extend({\n onDragStyle: null,\n onDropStyle: null,\n // Add in the default class for whileDragging\n onDragClass: \"tDnD_whileDrag\",\n onDrop: null,\n onDragStart: null,\n onDragStop: null,\n scrollAmount: 5,\n /** Sensitivity setting will throttle the trigger rate for movement detection */\n sensitivity: 10,\n /** Hierarchy level to support parent child. 0 switches this functionality off */\n hierarchyLevel: 0,\n /** The html artifact to prepend the first cell with as indentation */\n indentArtifact: '
 
',\n /** Automatically adjust width of first cell */\n autoWidthAdjust: true,\n /** Automatic clean-up to ensure relationship integrity */\n autoCleanRelations: true,\n /** Specify a number (4) as number of spaces or any indent string for JSON.stringify */\n jsonPretifySeparator: '\\t',\n /** The regular expression to use to trim row IDs */\n serializeRegexp: /[^\\-]*$/,\n /** If you want to specify another parameter name instead of the table ID */\n serializeParamName: false,\n /** If you give the name of a class here, then only Cells with this class will be draggable */\n dragHandle: null\n }, options || {});\n\n // Now make the rows draggable\n $.tableDnD.makeDraggable(this);\n // Prepare hierarchy support\n this.tableDnDConfig.hierarchyLevel\n && $.tableDnD.makeIndented(this);\n });\n\n // Don't break the chain\n return this;\n },\n makeIndented: function (table) {\n var config = table.tableDnDConfig,\n rows = table.rows,\n firstCell = $(rows).first().find('td:first')[0],\n indentLevel = 0,\n cellWidth = 0,\n longestCell,\n tableStyle;\n\n if ($(table).hasClass('indtd'))\n return null;\n\n tableStyle = $(table).addClass('indtd').attr('style');\n $(table).css({whiteSpace: \"nowrap\"});\n\n for (var w = 0; w < rows.length; w++) {\n if (cellWidth < $(rows[w]).find('td:first').text().length) {\n cellWidth = $(rows[w]).find('td:first').text().length;\n longestCell = w;\n }\n }\n $(firstCell).css({width: 'auto'});\n for (w = 0; w < config.hierarchyLevel; w++)\n $(rows[longestCell]).find('td:first').prepend(config.indentArtifact);\n firstCell && $(firstCell).css({width: firstCell.offsetWidth});\n tableStyle && $(table).css(tableStyle);\n\n for (w = 0; w < config.hierarchyLevel; w++)\n $(rows[longestCell]).find('td:first').children(':first').remove();\n\n config.hierarchyLevel\n && $(rows).each(function () {\n indentLevel = $(this).data('level') || 0;\n indentLevel <= config.hierarchyLevel\n && $(this).data('level', indentLevel)\n || $(this).data('level', 0);\n for (var i = 0; i < $(this).data('level'); i++)\n $(this).find('td:first').prepend(config.indentArtifact);\n });\n\n return this;\n },\n /** This function makes all the rows on the table draggable apart from those marked as \"NoDrag\" */\n makeDraggable: function(table) {\n var config = table.tableDnDConfig;\n\n config.dragHandle\n // We only need to add the event to the specified cells\n && $(config.dragHandle, table).each(function() {\n // The cell is bound to \"this\"\n $(this).bind(startEvent, function(e) {\n $.tableDnD.initialiseDrag($(this).parents('tr')[0], table, this, e, config);\n return false;\n });\n })\n // For backwards compatibility, we add the event to the whole row\n // get all the rows as a wrapped set\n || $(table.rows).each(function() {\n // Iterate through each row, the row is bound to \"this\"\n if (! $(this).hasClass(\"nodrag\")) {\n $(this).bind(startEvent, function(e) {\n if (e.target.tagName === \"TD\") {\n $.tableDnD.initialiseDrag(this, table, this, e, config);\n return false;\n }\n }).css(\"cursor\", \"move\"); // Store the tableDnD object\n } else {\n $(this).css(\"cursor\", \"\"); // Remove the cursor if we don't have the nodrag class\n }\n });\n },\n currentOrder: function() {\n var rows = this.currentTable.rows;\n return $.map(rows, function (val) {\n return ($(val).data('level') + val.id).replace(/\\s/g, '');\n }).join('');\n },\n initialiseDrag: function(dragObject, table, target, e, config) {\n this.dragObject = dragObject;\n this.currentTable = table;\n this.mouseOffset = this.getMouseOffset(target, e);\n this.originalOrder = this.currentOrder();\n\n // Now we need to capture the mouse up and mouse move event\n // We can use bind so that we don't interfere with other event handlers\n $(document)\n .bind(moveEvent, this.mousemove)\n .bind(endEvent, this.mouseup);\n\n // Call the onDragStart method if there is one\n config.onDragStart\n && config.onDragStart(table, target);\n },\n updateTables: function() {\n this.each(function() {\n // this is now bound to each matching table\n if (this.tableDnDConfig)\n $.tableDnD.makeDraggable(this);\n });\n },\n /** Get the mouse coordinates from the event (allowing for browser differences) */\n mouseCoords: function(e) {\n if (e.originalEvent.changedTouches)\n return {\n x: e.originalEvent.changedTouches[0].clientX,\n y: e.originalEvent.changedTouches[0].clientY\n };\n\n if(e.pageX || e.pageY)\n return {\n x: e.pageX,\n y: e.pageY\n };\n\n return {\n x: e.clientX + document.body.scrollLeft - document.body.clientLeft,\n y: e.clientY + document.body.scrollTop - document.body.clientTop\n };\n },\n /** Given a target element and a mouse eent, get the mouse offset from that element.\n To do this we need the element's position and the mouse position */\n getMouseOffset: function(target, e) {\n var mousePos,\n docPos;\n\n e = e || window.event;\n\n docPos = this.getPosition(target);\n mousePos = this.mouseCoords(e);\n\n return {\n x: mousePos.x - docPos.x,\n y: mousePos.y - docPos.y\n };\n },\n /** Get the position of an element by going up the DOM tree and adding up all the offsets */\n getPosition: function(element) {\n var left = 0,\n top = 0;\n\n while (element.offsetParent) {\n left += element.offsetLeft;\n top += element.offsetTop;\n element = element.offsetParent;\n }\n\n left += element.offsetLeft;\n top += element.offsetTop;\n\n return {\n x: left,\n y: top\n };\n },\n autoScroll: function (mousePos) {\n var config = this.currentTable.tableDnDConfig,\n yOffset = window.pageYOffset,\n windowHeight = window.innerHeight\n ? window.innerHeight\n : document.documentElement.clientHeight\n ? document.documentElement.clientHeight\n : document.body.clientHeight;\n\n // Windows version\n // yOffset=document.body.scrollTop;\n if (document.all)\n if (typeof document.compatMode !== 'undefined'\n && document.compatMode !== 'BackCompat')\n yOffset = document.documentElement.scrollTop;\n else if (typeof document.body !== 'undefined')\n yOffset = document.body.scrollTop;\n\n mousePos.y - yOffset < config.scrollAmount\n && window.scrollBy(0, - config.scrollAmount)\n || windowHeight - (mousePos.y - yOffset) < config.scrollAmount\n && window.scrollBy(0, config.scrollAmount);\n\n },\n moveVerticle: function (moving, currentRow) {\n\n if (0 !== moving.vertical\n // If we're over a row then move the dragged row to there so that the user sees the\n // effect dynamically\n && currentRow\n && this.dragObject !== currentRow\n && this.dragObject.parentNode === currentRow.parentNode)\n 0 > moving.vertical\n && this.dragObject.parentNode.insertBefore(this.dragObject, currentRow.nextSibling)\n || 0 < moving.vertical\n && this.dragObject.parentNode.insertBefore(this.dragObject, currentRow);\n\n },\n moveHorizontal: function (moving, currentRow) {\n var config = this.currentTable.tableDnDConfig,\n currentLevel;\n\n if (!config.hierarchyLevel\n || 0 === moving.horizontal\n // We only care if moving left or right on the current row\n || !currentRow\n || this.dragObject !== currentRow)\n return null;\n\n currentLevel = $(currentRow).data('level');\n\n 0 < moving.horizontal\n && currentLevel > 0\n && $(currentRow).find('td:first').children(':first').remove()\n && $(currentRow).data('level', --currentLevel);\n\n 0 > moving.horizontal\n && currentLevel < config.hierarchyLevel\n && $(currentRow).prev().data('level') >= currentLevel\n && $(currentRow).children(':first').prepend(config.indentArtifact)\n && $(currentRow).data('level', ++currentLevel);\n\n },\n mousemove: function(e) {\n var dragObj = $($.tableDnD.dragObject),\n config = $.tableDnD.currentTable.tableDnDConfig,\n currentRow,\n mousePos,\n moving,\n x,\n y;\n\n e && e.preventDefault();\n\n if (!$.tableDnD.dragObject)\n return false;\n\n // prevent touch device screen scrolling\n e.type === 'touchmove'\n && event.preventDefault(); // TODO verify this is event and not really e\n\n // update the style to show we're dragging\n config.onDragClass\n && dragObj.addClass(config.onDragClass)\n || dragObj.css(config.onDragStyle);\n\n mousePos = $.tableDnD.mouseCoords(e);\n x = mousePos.x - $.tableDnD.mouseOffset.x;\n y = mousePos.y - $.tableDnD.mouseOffset.y;\n\n // auto scroll the window\n $.tableDnD.autoScroll(mousePos);\n\n currentRow = $.tableDnD.findDropTargetRow(dragObj, y);\n moving = $.tableDnD.findDragDirection(x, y);\n\n $.tableDnD.moveVerticle(moving, currentRow);\n $.tableDnD.moveHorizontal(moving, currentRow);\n\n return false;\n },\n findDragDirection: function (x,y) {\n var sensitivity = this.currentTable.tableDnDConfig.sensitivity,\n oldX = this.oldX,\n oldY = this.oldY,\n xMin = oldX - sensitivity,\n xMax = oldX + sensitivity,\n yMin = oldY - sensitivity,\n yMax = oldY + sensitivity,\n moving = {\n horizontal: x >= xMin && x <= xMax ? 0 : x > oldX ? -1 : 1,\n vertical : y >= yMin && y <= yMax ? 0 : y > oldY ? -1 : 1\n };\n\n // update the old value\n if (moving.horizontal !== 0)\n this.oldX = x;\n if (moving.vertical !== 0)\n this.oldY = y;\n\n return moving;\n },\n /** We're only worried about the y position really, because we can only move rows up and down */\n findDropTargetRow: function(draggedRow, y) {\n var rowHeight = 0,\n rows = this.currentTable.rows,\n config = this.currentTable.tableDnDConfig,\n rowY = 0,\n row = null;\n\n for (var i = 0; i < rows.length; i++) {\n row = rows[i];\n rowY = this.getPosition(row).y;\n rowHeight = parseInt(row.offsetHeight) / 2;\n if (row.offsetHeight === 0) {\n rowY = this.getPosition(row.firstChild).y;\n rowHeight = parseInt(row.firstChild.offsetHeight) / 2;\n }\n // Because we always have to insert before, we need to offset the height a bit\n if (y > (rowY - rowHeight) && y < (rowY + rowHeight))\n // that's the row we're over\n // If it's the same as the current row, ignore it\n if (draggedRow.is(row)\n || (config.onAllowDrop\n && !config.onAllowDrop(draggedRow, row))\n // If a row has nodrop class, then don't allow dropping (inspired by John Tarr and Famic)\n || $(row).hasClass(\"nodrop\"))\n return null;\n else\n return row;\n }\n return null;\n },\n processMouseup: function() {\n if (!this.currentTable || !this.dragObject)\n return null;\n\n var config = this.currentTable.tableDnDConfig,\n droppedRow = this.dragObject,\n parentLevel = 0,\n myLevel = 0;\n\n // Unbind the event handlers\n $(document)\n .unbind(moveEvent, this.mousemove)\n .unbind(endEvent, this.mouseup);\n\n config.hierarchyLevel\n && config.autoCleanRelations\n && $(this.currentTable.rows).first().find('td:first').children().each(function () {\n myLevel = $(this).parents('tr:first').data('level');\n myLevel\n && $(this).parents('tr:first').data('level', --myLevel)\n && $(this).remove();\n })\n && config.hierarchyLevel > 1\n && $(this.currentTable.rows).each(function () {\n myLevel = $(this).data('level');\n if (myLevel > 1) {\n parentLevel = $(this).prev().data('level');\n while (myLevel > parentLevel + 1) {\n $(this).find('td:first').children(':first').remove();\n $(this).data('level', --myLevel);\n }\n }\n });\n\n // If we have a dragObject, then we need to release it,\n // The row will already have been moved to the right place so we just reset stuff\n config.onDragClass\n && $(droppedRow).removeClass(config.onDragClass)\n || $(droppedRow).css(config.onDropStyle);\n\n this.dragObject = null;\n // Call the onDrop method if there is one\n config.onDrop\n && this.originalOrder !== this.currentOrder()\n && $(droppedRow).hide().fadeIn('fast')\n && config.onDrop(this.currentTable, droppedRow);\n\n // Call the onDragStop method if there is one\n config.onDragStop\n && config.onDragStop(this.currentTable, droppedRow);\n\n this.currentTable = null; // let go of the table too\n },\n mouseup: function(e) {\n e && e.preventDefault();\n $.tableDnD.processMouseup();\n return false;\n },\n jsonize: function(pretify) {\n var table = this.currentTable;\n if (pretify)\n return JSON.stringify(\n this.tableData(table),\n null,\n table.tableDnDConfig.jsonPretifySeparator\n );\n return JSON.stringify(this.tableData(table));\n },\n serialize: function() {\n return $.param(this.tableData(this.currentTable));\n },\n serializeTable: function(table) {\n var result = \"\";\n var paramName = table.tableDnDConfig.serializeParamName || table.id;\n var rows = table.rows;\n for (var i=0; i 0) result += \"&\";\n var rowId = rows[i].id;\n if (rowId && table.tableDnDConfig && table.tableDnDConfig.serializeRegexp) {\n rowId = rowId.match(table.tableDnDConfig.serializeRegexp)[0];\n result += paramName + '[]=' + rowId;\n }\n }\n return result;\n },\n serializeTables: function() {\n var result = [];\n $('table').each(function() {\n this.id && result.push($.param($.tableDnD.tableData(this)));\n });\n return result.join('&');\n },\n tableData: function (table) {\n var config = table.tableDnDConfig,\n previousIDs = [],\n currentLevel = 0,\n indentLevel = 0,\n rowID = null,\n data = {},\n getSerializeRegexp,\n paramName,\n currentID,\n rows;\n\n if (!table)\n table = this.currentTable;\n if (!table || !table.rows || !table.rows.length)\n return {error: { code: 500, message: \"Not a valid table.\"}};\n if (!table.id && !config.serializeParamName)\n return {error: { code: 500, message: \"No serializable unique id provided.\"}};\n \n rows = config.autoCleanRelations\n && table.rows\n || $.makeArray(table.rows);\n paramName = config.serializeParamName || table.id;\n currentID = paramName;\n\n getSerializeRegexp = function (rowId) {\n if (rowId && config && config.serializeRegexp)\n return rowId.match(config.serializeRegexp)[0];\n return rowId;\n };\n\n data[currentID] = [];\n !config.autoCleanRelations\n && $(rows[0]).data('level')\n && rows.unshift({id: 'undefined'});\n\n\n\n for (var i=0; i < rows.length; i++) {\n if (config.hierarchyLevel) {\n indentLevel = $(rows[i]).data('level') || 0;\n if (indentLevel === 0) {\n currentID = paramName;\n previousIDs = [];\n }\n else if (indentLevel > currentLevel) {\n previousIDs.push([currentID, currentLevel]);\n currentID = getSerializeRegexp(rows[i-1].id);\n }\n else if (indentLevel < currentLevel) {\n for (var h = 0; h < previousIDs.length; h++) {\n if (previousIDs[h][1] === indentLevel)\n currentID = previousIDs[h][0];\n if (previousIDs[h][1] >= currentLevel)\n previousIDs[h][1] = 0;\n }\n }\n currentLevel = indentLevel;\n\n if (!$.isArray(data[currentID]))\n data[currentID] = [];\n rowID = getSerializeRegexp(rows[i].id);\n rowID && data[currentID].push(rowID);\n }\n else {\n rowID = getSerializeRegexp(rows[i].id);\n rowID && data[currentID].push(rowID);\n }\n }\n return data;\n }\n};\n\njQuery.fn.extend(\n {\n tableDnD : $.tableDnD.build,\n tableDnDUpdate : $.tableDnD.updateTables,\n tableDnDSerialize : $.proxy($.tableDnD.serialize, $.tableDnD),\n tableDnDSerializeAll : $.tableDnD.serializeTables,\n tableDnDData : $.proxy($.tableDnD.tableData, $.tableDnD)\n }\n);\n\n}(jQuery, window, window.document);\n","function readyListSearch() {\n $('.list').on('input', 'input', function() {\n filterList(this);\n });\n}\n\nfunction filterList(searchInput) {\n var lowercaseSearchValue = searchInput.value.toLowerCase();\n var list = $(searchInput).closest('.list');\n var listHiddenCopy = list.find('.list-items.hidden-copy');\n var listDisplayedCopy = list.find('.list-items.displayed-copy');\n var filteredListItems = listHiddenCopy.find('.summary').filter(function(){\n return $(this).text().toLowerCase().indexOf(lowercaseSearchValue) >= 0;\n });\n\n listDisplayedCopy.find('.summary').remove();\n listDisplayedCopy.append(filteredListItems.clone());\n}\n\n$(document).ready(readyListSearch);\n$(document).on('turbo:load', readyListSearch);\n","function readyListSort(){\n $('.list').on('click', ':radio', function( event ) {\n var label = $(this).parent();\n\n if(label.hasClass('ascending') || label.hasClass('descending')) {\n label.toggleClass('ascending');\n label.toggleClass('descending');\n reverseList(label.closest('.list').find('.list-items.displayed-copy'), '.summary');\n reverseList(label.closest('.list').find('.list-items.hidden-copy'), '.summary');\n } else {\n label.siblings('.sort-option').removeClass('ascending descending');\n label.addClass('ascending');\n sortListUsingNestedText(label.closest('.list').find('.list-items.displayed-copy'), '.summary', '.' + $(this).val());\n sortListUsingNestedText(label.closest('.list').find('.list-items.hidden-copy'), '.summary', '.' + $(this).val());\n }\n\n event.stopImmediatePropagation();\n });\n}\n\nfunction sortListUsingNestedText(parent, childSelector, keySelector) {\n var items = parent.children(childSelector).sort(function(a, b) {\n var vA = $(keySelector, a).text();\n var vB = $(keySelector, b).text();\n return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;\n });\n parent.append(items);\n}\n\nfunction reverseList(parent, childSelector) {\n var items = parent.children(childSelector).get().reverse();\n parent.append(items);\n}\n\n$(document).ready(readyListSort);\n$(document).on('turbo:load', readyListSort);\n","function readyMenu() {\n var menuToggle = $('#js-mobile-menu').off();\n $('#js-navigation-menu').removeClass(\"show\");\n\n menuToggle.on('click', function(e) {\n e.preventDefault();\n $('#js-navigation-menu').slideToggle(function(){\n if($('#js-navigation-menu').is(':hidden')) {\n $('#js-navigation-menu').removeAttr('style');\n }\n });\n });\n}\n\n$(document).ready(readyMenu);\n$(document).on('turbo:load', readyMenu);\n","function toggleCheckboxes() {\n var doNotWorkWithLearnersCheckbox = $(\"#registration_form_work_with_learners_in_i_do_not_work_with_learners\")[0]\n var workWithStudentInOtherCheckbox = $(\"#registration_form_work_with_students_in_main_other\")[0]\n var otherInterestsCheckbox = $(\"#registration_form_interests_main_other_things\")[0]\n var otherPrimaryClinicalDisciplineCheckbox = $(\"#registration_form_primary_clinical_discipline_main_other\")[0]\n var workWithLearnersInBasicScienceCheckbox = $(\"#registration_form_work_with_learners_in_basic_science_courses\")[0]\n\n if(doNotWorkWithLearnersCheckbox && doNotWorkWithLearnersCheckbox.checked) {\n $(\"#work-with-students-in\").find('input[type=checkbox]').attr(\"disabled\", true); \n $(\"#work-with-learners-in\").find('input[type=checkbox]').attr(\"disabled\", true);\n $(\"#registration_form_work_with_learners_in_i_do_not_work_with_learners\").attr(\"disabled\", false);\n $(\"#work-with-students-in\").hide();\n }\n\n if(workWithStudentInOtherCheckbox && workWithStudentInOtherCheckbox.checked) {\n $(\"#work-with-students-in-other-box\").show(); \n } else { \n $(\"#work-with-students-in-other-box\").hide();\n }\n\n if(workWithLearnersInBasicScienceCheckbox && workWithLearnersInBasicScienceCheckbox.checked) {\n $(\"#work-with-students-in-basic-science-options\").show();\n $(\"#work-with-students-in-basic-science-options\").find('input[type=checkbox]').attr(\"disabled\", false);\n } else {\n $(\"#work-with-students-in-basic-science-options\").find('input[type=checkbox]').attr(\"disabled\", true);\n $(\"#work-with-students-in-basic-science-options\").hide();\n }\n\n if(otherInterestsCheckbox && otherInterestsCheckbox.checked) {\n $(\"#interests-other-box\").show();\n } else {\n $(\"#interests-other-box\").hide();\n }\n\n if(otherPrimaryClinicalDisciplineCheckbox && otherPrimaryClinicalDisciplineCheckbox.checked) {\n $(\"#primary-clinical-discipline-other-box\").show();\n } else {\n $(\"#primary-clinical-discipline-other-box\").hide();\n }\n\n $(\"#registration_form_work_with_learners_in_i_do_not_work_with_learners\").on('change', function (e) { \n if(e.target.checked) {\n $(\"#work-with-students-in\").find('input[type=checkbox]').attr(\"disabled\", true);\n $(\"#work-with-learners-in\").find('input[type=checkbox]').attr(\"disabled\", true);\n $(\"#registration_form_work_with_learners_in_i_do_not_work_with_learners\").attr(\"disabled\", false);\n $(\"#work-with-students-in-other-box\").prop('disabled', true)\n $(\"#work-with-students-in\").hide();\n } else {\n $(\"#work-with-students-in\").find('input[type=checkbox]').attr(\"disabled\", false);\n $(\"#work-with-learners-in\").find('input[type=checkbox]').attr(\"disabled\", false);\n $(\"#work-with-students-in-other-box\").prop('disabled', false)\n $(\"#work-with-students-in\").show();\n }\n })\n\n $(\"#registration_form_work_with_learners_in_basic_science_courses\").on('change', function (e) { \n if(e.target.checked) {\n $(\"#work-with-students-in-basic-science-options\").show();\n $(\"#work-with-students-in-basic-science-options\").find('input[type=checkbox]').attr(\"disabled\", false);\n } else {\n $(\"#work-with-students-in-basic-science-options\").hide();\n $(\"#work-with-students-in-basic-science-options\").find('input[type=checkbox]').attr(\"disabled\", true);\n }\n })\n\n $(\"#registration_form_work_with_students_in_main_other\").on('change', function (e) {\n if(e.target.checked) {\n $(\"#work-with-students-in-other-box\").show();\n $(\"#work-with-students-in-other-box\").prop('disabled', false)\n } else {\n $(\"#work-with-students-in-other-box\").hide();\n $(\"#work-with-students-in-other-box\").prop('disabled', true)\n }\n })\n\n $(\"#registration_form_interests_main_other_things\").on('change', function (e) {\n if(e.target.checked) {\n $(\"#interests-other-box\").show();\n $(\"#interests-other-box\").prop('disabled', false)\n } else {\n $(\"#interests-other-box\").hide();\n $(\"#interests-other-box\").prop('disabled', true)\n }\n })\n\n $(\"#registration_form_primary_clinical_discipline_main_other\").on('change', function (e) {\n if(e.target.checked) {\n $(\"#primary-clinical-discipline-other-box\").show();\n $(\"#primary-clinical-discipline-other-box\").prop('disabled', false)\n } else {\n $(\"#primary-clinical-discipline-other-box\").hide();\n $(\"#primary-clinical-discipline-other-box\").prop('disabled', true)\n }\n })\n}\n\n$(document).ready(toggleCheckboxes);\n$(document).on('turbo:load', toggleCheckboxes);","window.openReportTable = (evt, Name, Header) => {\n var i, tabcontent, tablinks;\n tabcontent = document.getElementsByClassName(\"tabcontent\");\n for (i = 0; i < tabcontent.length; i++) {\n tabcontent[i].style.display = \"none\";\n }\n tablinks = document.getElementsByClassName(\"tablinks\");\n for (i = 0; i < tablinks.length; i++) {\n tablinks[i].className = tablinks[i].className.replace(\" selectedReport\", \" unselectedReport\");\n }\n document.getElementById(Name).style.display = \"block\";\n evt.currentTarget.classList.remove(\"unselectedReport\")\n evt.currentTarget.classList.add(\"selectedReport\");\n localStorage.setItem(\"selectedReport\", [Name]);\n}\n","function setConfirmFromSelect(select){\n var selectedOption = select.options[select.selectedIndex];\n var buttons = $(\".set-confirm-from-select-button\");\n\n if (selectedOption) {\n var confirmMessage = selectedOption.dataset.confirmMessage;\n if (confirmMessage) {\n buttons.data('confirm', confirmMessage);\n } else {\n buttons.removeData('confirm');\n }\n } else {\n buttons.removeData('confirm');\n }\n}\n\nfunction setConfirmFromSelectReady(){\n $('.set-confirm-from-select-select').change( function(){\n setConfirmFromSelect(this);\n });\n}\n\n$(document).ready(setConfirmFromSelectReady);\n$(document).on('turbo:load', setConfirmFromSelectReady);\n","window.show_calendar = (required) => {\n var req = required === undefined ? true : required;\n var checkbox = document.getElementById('email_checkbox');\n var details_div = document.getElementById('calendar');\n var calendar_field = document.getElementById('calendar_field');\n\n if(checkbox.checked) {\n details_div.style['display'] = 'block';\n calendar_field.required = req\n console.log(calendar_field.value)\n\n if(calendar_field.value === '') {\n calendar_field.setCustomValidity('Please select date for email invite to be sent or opt out of sending email by unchecking the box.')\n } else {\n console.log(calendar_field.value)\n calendar_field.setCustomValidity('')\n }\n } else {\n details_div.style['display'] = 'none';\n calendar_field.required = false\n calendar_field.setCustomValidity('')\n }\n};\n","document.addEventListener(\"DOMContentLoaded\", function() {\n document.addEventListener('click', function(event) {\n if (event.target && event.target.id === 'reportTab') {\n var nextTab = document.querySelector('#reportTabs a[href=\"#' + event.target.dataset.next + '\"]');\n if (nextTab) {\n var bootstrapTab = new bootstrap.Tab(nextTab);\n bootstrapTab.show();\n window.scrollTo({\n top: 0,\n behavior: 'smooth'\n });\n }\n }\n });\n});\n","window.trackTime = Date.now()\n\ndocument.onvisibilitychange = function() {\n if (document.visibilityState === 'hidden') {\n analytics.track(\"time_on_page\", {page: window.location.href, duration_seconds: (Date.now()-window.trackTime)/1000});\n }\n window.trackTime=Date.now()\n}\n\ndocument.addEventListener(\"turbo:load\", function(){\n if(window.prevUrl) {\n analytics.track(\"time_on_page\", {page: window.prevUrl, duration_seconds: (Date.now() - window.trackTime)/1000});\n window.trackTime = Date.now()\n }\n window.prevUrl = window.location.href\n})\n","window.enableCollapsibleItems = () => {\n $('.usage-report .collapsible-item h1').off(\"click\");\n $('.usage-report .collapsible-item h1').on(\"click\", function(){\n $(this).find('.collapsed-indicator').toggle();\n $(this).find('.expanded-indicator').toggle();\n $(this).closest('.collapsible-item').find('.collapsible-content').toggle();\n if ($(this).closest('.collapsible-item').find('.remote-filler').length > 0) {\n $(this).closest('.collapsible-item').find('.remote-filler')[0].click();\n }\n });\n}\n","window.openTable = (evt, Name, Header) => {\n var i, tabcontent, tablinks;\n tabcontent = document.getElementsByClassName(\"tabcontent\");\n for (i = 0; i < tabcontent.length; i++) {\n tabcontent[i].style.display = \"none\";\n }\n tablinks = document.getElementsByClassName(\"tablinks\");\n for (i = 0; i < tablinks.length; i++) {\n tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\n }\n document.getElementById(Name).style.display = \"block\";\n document.getElementById(Header).style.display = \"block\";\n evt.currentTarget.className += \" active\";\n localStorage.setItem(\"active\", [Name, Header]);\n}\n\nwindow.pageDefault = () => {\n if (localStorage.getItem(\"active\") != null){\n var tabcontent = document.getElementsByClassName(\"tabcontent\");\n for (i = 0; i < tabcontent.length; i++) {\n tabcontent[i].style.display = \"none\";\n }\n activeIds = localStorage.getItem(\"active\").split(',')\n Name = activeIds[0];\n Header = activeIds[1];\n document.getElementById(Name).style.display = \"block\";\n document.getElementById(Header).style.display = \"block\";\n buttonName = Name + 'button'\n document.getElementById(buttonName).className += \" active\"\n }\n else {\n var tabcontent = document.getElementsByClassName(\"tablinks\");\n document.getElementById('Adminbutton').className += \" active\"\n }\n}\n"],"names":["Modal","defaults","title","body","buttons","close","closable","location","bindKey","callback","modal","hide","onShow","onHide","destroy","onCreate","onDestroy","getClasses","el","className","split","filter","c","length","hasClass","indexOf","addClass","removeClass","classes","splice","join","Object","assign","target","TypeError","index","arguments","source","key","prototype","hasOwnProperty","call","options","id","this","Math","random","toString","substr","undefined","display","bindings","bind","console","warn","addKeyListener","window","currentModal","addEventListener","onKeyPress","removeKeyListener","removeEventListener","e","_that","keyCode","which","keys","i","preventDefault","stopPropagation","show","wrapper","document","create","backdrop","dialog","createElement","setAttribute","onclick","appendChild","innerHTML","button","content","removeChild","setUpCustomConfirmBox","customAlertBox","message","okLabel","customConfirmBox","cancel","showsCancel","push","$","ready","on","setUpDatePickers","datepicker","dateFormat","minDate","Date","beforeShow","input","inst","setTimeout","dpDiv","css","top","offset","left","onSelect","click","fieldId","attr","startDate","endDate","onClose","val","numberOfMonths","dateText","element","value","event","Event","bubbles","dispatchEvent","datepickerFactory","InfinitePages","initClass","debug","navSelector","buffer","loading","success","error","context","state","paused","constructor","container","extend","$container","$table","find","$context","init","scrollTimeout","scrollHandler","check","scroll","clearTimeout","_log","msg","log","nav","windowBottom","scrollTop","height","distance","next","done","_loading","getScript","_success","fail","_error","each","pause","resume","fn","infinitePages","option","args","$this","data","apply","infinitePagesFactory","initializeInfinitePages","$list","html","React","class","setupIntlTelInput","querySelector","iti","intlTelInput","allowDropdown","initialCountry","geoIpLookup","get","always","resp","countryCode","country","utilsScript","getNumber","trim","contact_phone_validity_message","isValidNumber","setCustomValidity","EasyMDE","global","Rails","ActiveStorage","disablingCheckbox","checkbox","onState","is","disablingCheckboxReady","change","disablingOtherSelect","disablingOtherSelectReady","disablingTitleSelect","select","currentState","disablingTitleSelectReady","initializeFlashMessages","closeButtons","querySelectorAll","forEach","alert","fadeOut","parentNode","classList","contains","flashMessageDiv","closest","style","transition","opacity","getElementById","targetId","getAttribute","startEvent","moveEvent","endEvent","parseStyle","objMap","parts","match","shift","tableDnD","onDragStyle","onDropStyle","onDragClass","onDrop","Function","onDragStart","onDragStop","scrollAmount","sensitivity","hierarchyLevel","indentArtifact","autoWidthAdjust","autoCleanRelations","jsonPretifySeparator","serializeRegexp","RegExp","serializeParamName","dragHandle","jQuery","currentTable","dragObject","mouseOffset","oldX","oldY","build","tableDnDConfig","makeDraggable","makeIndented","table","longestCell","tableStyle","config","rows","firstCell","first","indentLevel","cellWidth","whiteSpace","w","text","width","prepend","offsetWidth","children","remove","initialiseDrag","parents","tagName","currentOrder","map","replace","getMouseOffset","originalOrder","mousemove","mouseup","updateTables","mouseCoords","originalEvent","changedTouches","x","clientX","y","clientY","pageX","pageY","scrollLeft","clientLeft","clientTop","mousePos","docPos","getPosition","offsetParent","offsetLeft","offsetTop","autoScroll","yOffset","pageYOffset","windowHeight","innerHeight","documentElement","clientHeight","all","compatMode","scrollBy","moveVerticle","moving","currentRow","vertical","insertBefore","nextSibling","moveHorizontal","currentLevel","horizontal","prev","dragObj","type","findDropTargetRow","findDragDirection","draggedRow","rowHeight","rowY","row","parseInt","offsetHeight","firstChild","onAllowDrop","processMouseup","droppedRow","parentLevel","myLevel","unbind","fadeIn","jsonize","pretify","JSON","stringify","tableData","serialize","param","serializeTable","result","paramName","rowId","serializeTables","getSerializeRegexp","currentID","previousIDs","rowID","code","makeArray","unshift","h","isArray","tableDnDUpdate","tableDnDSerialize","proxy","tableDnDSerializeAll","tableDnDData","readyListSearch","searchInput","lowercaseSearchValue","list","listHiddenCopy","listDisplayedCopy","filteredListItems","toLowerCase","append","clone","readyListSort","label","parent","toggleClass","reverseList","siblings","sortListUsingNestedText","stopImmediatePropagation","childSelector","keySelector","items","sort","a","b","vA","vB","reverse","readyMenu","menuToggle","off","slideToggle","removeAttr","toggleCheckboxes","doNotWorkWithLearnersCheckbox","workWithStudentInOtherCheckbox","otherInterestsCheckbox","otherPrimaryClinicalDisciplineCheckbox","workWithLearnersInBasicScienceCheckbox","checked","prop","openReportTable","evt","Name","Header","tabcontent","tablinks","getElementsByClassName","currentTarget","add","localStorage","setItem","setConfirmFromSelectReady","selectedOption","selectedIndex","confirmMessage","dataset","removeData","setConfirmFromSelect","show_calendar","required","req","details_div","calendar_field","nextTab","bootstrap","Tab","scrollTo","behavior","trackTime","now","onvisibilitychange","visibilityState","analytics","track","page","href","duration_seconds","prevUrl","enableCollapsibleItems","toggle","openTable","pageDefault","getItem","activeIds","buttonName"],"sourceRoot":""}