{"version":3,"file":"js/chunk-common.min.js","mappings":"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","sources":["webpack://clientapp/./src/components/NavBar.vue?6120","webpack://clientapp/src/components/NavBar.vue","webpack://clientapp/./src/components/NavBar.vue?f091","webpack://clientapp/./src/components/NavBar.vue","webpack://clientapp/./src/services/domain_name_service.js","webpack://clientapp/./src/services/shortcuts_service.js","webpack://clientapp/./src/store/mutation_types.js","webpack://clientapp/./src/services/authorization_service.js","webpack://clientapp/./src/store/actions.js","webpack://clientapp/./src/store/mutations.js","webpack://clientapp/./src/store/state.js","webpack://clientapp/./src/store/index.js","webpack://clientapp/./src/utils/toast.js","webpack://clientapp/./src/utils/errorHandler.js","webpack://clientapp/./src/utils/axios.js","webpack://clientapp/./src/utils/url_utility.js"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layout--primary-section\"},[_c('nav',{staticClass:\"navbar navbar-expand-md navbar-dark header-bg\"},[_c('div',{staticClass:\"container-fluid\"},[_vm._m(0),_vm._m(1),_c('div',{staticClass:\"collapse navbar-collapse\",attrs:{\"id\":\"navbars\"}},[_c('ul',{staticClass:\"navbar-nav me-auto mb-2 mb-md-0\"}),_c('ul',{staticClass:\"navbar-nav mb-2 mb-md-0 me-md-5\"},[(_vm.showCreate)?_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"btn btn-create\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('create-click')}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"link\"}}),_vm._v(\" Create\")],1)]):_vm._e()]),(_vm.isLoggedIn)?_c('ul',{staticClass:\"navbar-nav nav-flex-icons\"},[_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle\",attrs:{\"data-bs-toggle\":\"dropdown\",\"href\":\"#\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"user\"}}),_vm._v(\" \"+_vm._s(_vm.username))],1),_c('ul',{staticClass:\"dropdown-menu\"},[_c('li',[_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"/Shibboleth.sso/Logout\"}},[_c('font-awesome-icon',{attrs:{\"icon\":\"sign-out-alt\"}}),_vm._v(\" Logout\")],1)])])])]):_vm._e()])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"navbar-brand\",attrs:{\"href\":\"/\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/logo.png\"),\"alt\":\"AAE Go\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-bs-toggle\":\"collapse\",\"data-bs-target\":\"#navbars\",\"aria-controls\":\"navbars\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('span',{staticClass:\"navbar-toggler-icon\"})])}]\n\nexport { render, staticRenderFns }","\n \n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].rules[0].use[0]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=576841aa&\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js&\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { joinPaths } from '@/utils/url_utility';\n\nexport default class DomainNameService {\n constructor(domainName) {\n this.domainName = domainName;\n }\n\n /**\n * returns domain name without scheme - go.wisc.edu\n * */\n domainName() {\n return this.domainName\n }\n\n /**\n * returns domain name with the keyword appended (go.wisc.edu/thekeyword)\n * @param {string} keyword\n * */\n domainWithKeyword(keyword) {\n return joinPaths(this.domainName, keyword);\n }\n\n /**\n * Returns domain name with keyword appended, with the schema (https://go.wisc.edu/thekeyword)\n * @param {string} keyword\n */\n fullUrl(keyword) {\n return 'https://' + this.domainWithKeyword(keyword);\n }\n}","import axios from '@/utils/axios';\nimport { joinPaths } from '@/utils/url_utility';\n\nexport default class ShortcutsService {\n constructor(endpoint) {\n this.endpoint = endpoint;\n }\n\n /**\n * returns a list of shortcuts\n * @param {String} search\n */\n getShortcuts(search = '') {\n return axios.get(this.endpoint + '?q=' + search);\n }\n\n /**\n * returns a shortcut for the specified keyword\n * @param {string} keyword\n */\n getShortcut(keyword) {\n return axios.get(joinPaths(this.endpoint, keyword));\n }\n\n /**\n * returns whether the specified keyword is available for a shortcut\n * @param {String} keyword\n */\n isAvailable(keyword) {\n return axios.get(joinPaths(this.endpoint, 'available') + '?q=' + keyword);\n }\n\n /**\n * Updates an existing shortcut\n * @param {string} keyword\n * @param {Object} shortcut\n * @param {string} shortcut.title\n * @param {string} shortcut.description\n * @param {string} shortcut.url\n */\n updateShortcut(keyword, shortcut) {\n return axios.put(joinPaths(this.endpoint, keyword), shortcut);\n }\n\n /**\n * Delete an existing shortcut\n * @param {String} keyword\n */\n deleteShortcut(keyword) {\n return axios.delete(joinPaths(this.endpoint, keyword));\n }\n\n /**\n * Register a new shortcut\n * @param {Object} shortcut\n */\n registerShortcut(shortcut) {\n return axios.post(joinPaths(this.endpoint,'register'), shortcut);\n }\n\n /**\n * URL to retrieve a page title\n * @param {string} url\n */\n getPageTitle(url) {\n return axios.get(joinPaths(this.endpoint, 'get-title') + '?q=' + url)\n }\n}","export const UPDATE_USERNAME = 'UPDATE_USERNAME';\nexport const UPDATE_LOGGEDIN = 'UPDATE_LOGGEDIN';\nexport const UPDATE_ISAUTHORIZED = 'UPDATE_ISAUTHORIZED';\nexport const UPDATE_LASTSTATUS_UPDATE = 'UPDATE_LASTSTATUS_UPDATE';","import axios from '@/utils/axios';\nimport { joinPaths } from '@/utils/url_utility';\n\nexport default class AuthorizationService {\n constructor(endpoint) {\n this.endpoint = endpoint;\n }\n\n /**\n * returns the authorization status of the current session\n * @returns {Promise}\n * */\n getAuthorizationStatus() {\n return axios.get(joinPaths(this.endpoint, 'status'));\n }\n}","import * as mutationTypes from './mutation_types';\nimport AuthorizationService from '@/services/authorization_service';\n//import MadisonMetroService from \"@/services/MadisonMetroService\";\n//import OpenWeatherMapService from '@/services/OpenWeatherMapService';\n//import CampusNewsService from '@/services/CampusNewsService';\n//import SeminarsService from '@/services/SeminarsService';\n\nconst authorizationService = new AuthorizationService('/api/auth');\nconst staleAuthorizationStatus = 300 // 5 minutes\nexport const loadAuthorizationStatus = ({ getters, dispatch, commit }) => {\n\n const lastUpdated = getters.lastAuthorizationUpdate ?? 0;\n const now = Date.now();\n \n if ((now - staleAuthorizationStatus) > lastUpdated) {\n authorizationService.getAuthorizationStatus()\n .then(response => {\n dispatch('updateAuthorizationStatus', response.data);\n commit(mutationTypes.UPDATE_LASTSTATUS_UPDATE, now);\n });\n }\n}\n\nexport const updateAuthorizationStatus = ({ commit }, status) => {\n commit(mutationTypes.UPDATE_USERNAME, status.loggedInUser);\n commit(mutationTypes.UPDATE_LOGGEDIN, status.isLoggedIn);\n commit(mutationTypes.UPDATE_ISAUTHORIZED, status.isAuthorized);\n}\n\n//export const loadBusSchedule = ({ getters, commit }, stopId) => {\n// // does the stop exist and was it retrieved less than the cacheTime ago\n// const stopInfoCacheTimeInHours = 24;\n// const stopInfoCacheTimeInMillseconds = stopInfoCacheTimeInHours * 60 * 60 * 1000;\n// const now = new Date().getTime();\n// const stopLastUpdated = getters.busStopInfoLastUpdated(stopId);\n// let promise;\n// if ((now - stopLastUpdated) > stopInfoCacheTimeInMillseconds) {\n// promise = metroService.getStopLocal(stopId)\n// .then(data => {\n// data.lastUpdate = new Date().getTime();\n// data.arrivals = [];\n// commit(mutationTypes.UPDATE_BUS_STOP, { stopId: stopId, stop: data });\n// return data;\n// });\n// }\n// else {\n// promise = new Promise((resolve) => {\n// resolve(getters.getBusStop(stopId));\n// })\n// }\n\n// promise.then(busStop => {\n// // we have the stop info (either from the API or Vuex)\n// // now go grab arrivals\n// let arrivals = [];\n// metroService.getArrivals(stopId)\n// .then(response => {\n// // inject the cardinal direction with each arrival\n// response.data.stop.route.forEach(route => {\n// route.cardinalDirection = busStop.cardinal_direction;\n// });\n\n// arrivals = response.data.stop.route.filter(r => r.minutes > 0);\n// })\n// .catch(() => {\n// arrivals = [];\n// })\n// .finally(() => {\n// commit(mutationTypes.UPDATE_BUS_ARRIVALS, { stopId: stopId, arrivals: arrivals });\n// });\n\n// //console.log(busStop);\n// })\n\n//}\n\n//export const loadCampusNews = ({ dispatch }, numberItems) => {\n// let newsItemsToStore = [];\n// let promises = [];\n\n// newsService.getNews(numberItems)\n// .then(response => {\n// //dispatch('updateCampusNews', response.data);\n// const returnedNewsItems = response.data;\n// returnedNewsItems.forEach(returnedNewsItem => {\n// let newsItem = {\n// title: returnedNewsItem.title.rendered,\n// content: returnedNewsItem.excerpt.rendered,\n// media: '',\n// date: returnedNewsItem.date\n// };\n// newsItemsToStore.push(newsItem);\n\n// promises.push(newsService.getFeaturedMedia(returnedNewsItem.featured_media)\n// .then(response => {\n// const returnedMedia = response.data;\n// if (typeof returnedMedia.media_details.sizes.large != 'undefined')\n// newsItem.media = returnedMedia.media_details.sizes.large.source_url;\n// }));\n\n// Promise.all(promises)\n// .then(() => {\n// dispatch('updateCampusNews', newsItemsToStore);\n// })\n// });\n\n// })\n//}\n\n//export const updateCampusNews = ({ commit }, data) => {\n// commit(mutationTypes.UPDATE_CAMPUSNEWS_DATA, data);\n// commit(mutationTypes.UPDATE_CAMPUSNEWS_LAST_LOAD, new Date().getTime());\n// commit(mutationTypes.CHANGE_CAMPUSNEWS_DATA_READY, true);\n//}\n//// eslint-disable-next-line\n//export const loadSeminarData = ({ dispatch, commit }, seminars) => {\n// let promises = [];\n// seminars.forEach(seminar => {\n\n// promises.push(seminarsService.getNextSeminar(seminar)\n// .then(response => {\n// const data = response.data;\n// let seminarEvent = {\n// //media: 'https://aae-seminars.s3.us-east-2.amazonaws.com/default_media.png',\n// media: data.publicityImage?.uri ?? '',\n// seminarTitle: data.title,\n// date: data.startDate,\n// location: data.location,\n// presenter: data.presenterName,\n// institution: data.presenterInstitution,\n// department: data.presenterDepartment,\n// isCancelled: data.isCancelled,\n// seminar: data.seminarSlug\n// }\n// dispatch('updateSeminarData', seminarEvent);\n// })\n// .catch(err => err)\n// );\n// });\n\n// Promise.all(promises)\n// .finally(() => {\n// commit(mutationTypes.UPDATE_SEMINAR_LAST_LOAD, new Date().getTime());\n// commit(mutationTypes.CHANGE_SEMINAR_DATA_READY, true);\n// })\n//}\n\n//export const updateSeminarData = ({ commit, state }, data) => {\n// // does this seminar already exist in state?\n// let existingSeminars = [...state.seminarsData];\n// let existingLocation = existingSeminars.findIndex(seminar => seminar.seminar == data.seminar);\n\n// if (existingLocation == -1) {\n// // doesn't already exist - just add the new seminar\n// existingSeminars.push(data);\n// }\n// else {\n// // does exist - remove old and add new\n// existingSeminars[existingLocation] = data;\n// }\n\n// commit(mutationTypes.UPDATE_SEMINAR_DATA, existingSeminars);\n//}","import * as types from './mutation_types';\n//import Vue from 'vue';\n\nexport default {\n\n\t[types.UPDATE_ISAUTHORIZED](state, isAuthorized) {\n\t\tstate.isAuthorized = isAuthorized;\n\t},\n\t[types.UPDATE_LOGGEDIN](state, isLoggedIn) {\n\t\tstate.isLoggedIn = isLoggedIn;\n\t},\n\t[types.UPDATE_USERNAME](state, username) {\n\t\tstate.username = username;\n\t},\n\t[types.UPDATE_LASTSTATUS_UPDATE](state, date) {\n\t\tstate.authorizationStatusLastPolled = date;\n }\n}","export default () => ({\n isAuthorized: false,\n username: '',\n isLoggedIn: false,\n authorizationStatusLastPolled: null\n\n});","import Vue from 'vue'\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport state from './state';\n\nVue.use(Vuex)\n\n\nexport default new Vuex.Store({\n actions,\n getters,\n mutations,\n state\n });\n\n","import 'izitoast/dist/css/iziToast.min.css'\nimport iZtoast from 'izitoast'\n\nconst toast = {\n error: (message, title = 'Error') => {\n return iZtoast.error({\n title: title,\n message: message,\n position: 'topCenter'\n });\n },\n success: (message, title = 'Success') => {\n return iZtoast.success({\n title: title,\n message: message,\n position: 'topCenter'\n });\n }\n};\n\nexport default toast;","import toast from '@/utils/toast'\n\nfunction errorResponseHandler(error) {\n // check for errorHandle config\n // eslint-disable-next-line\n if (error.config.hasOwnProperty('errorHandle') && error.config.errorHandle === false) {\n return Promise.reject(error);\n }\n\n // if has response show the error \n if (error.response) {\n var response = error.response\n var title = response.status + ' ' + response.statusText\n var message = (typeof(response.data.title) !== 'undefined' ? response.data.title : response.data)\n toast.error(message.replace(/(?:\\r\\n|\\r|\\n)/g, '
'), title);\n }\n\n // return the reject in case you want additional error processing (but still wanted the standard error)\n return Promise.reject(error);\n}\n\nexport default errorResponseHandler;","// taken from Gitlab\n// https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/lib/utils/axios_utils.js\n\nimport axios from 'axios';\nimport errorResponseHandler from './errorHandler';\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n// apply interceptor on response\naxios.interceptors.response.use(\n response => response,\n errorResponseHandler\n);\n\n\n\nexport default axios;","\n// taken from Gitlab\n// https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/lib/utils/url_utility.js\n\nconst PATH_SEPARATOR = '/';\nconst PATH_SEPARATOR_LEADING_REGEX = new RegExp(`^${PATH_SEPARATOR}+`);\nconst PATH_SEPARATOR_ENDING_REGEX = new RegExp(`${PATH_SEPARATOR}+$`);\n\nexport function cleanLeadingSeparator(path) {\n return path.replace(PATH_SEPARATOR_LEADING_REGEX, '');\n}\n\nfunction cleanEndingSeparator(path) {\n return path.replace(PATH_SEPARATOR_ENDING_REGEX, '');\n}\n\n/**\n * Safely joins the given paths which might both start and end with a `/`\n *\n * Example:\n * - `joinPaths('abc/', '/def') === 'abc/def'`\n * - `joinPaths(null, 'abc/def', 'zoo) === 'abc/def/zoo'`\n *\n * @param {...String} paths\n * @returns {String}\n */\nexport function joinPaths(...paths) {\n return paths.reduce((acc, path) => {\n if (!path) {\n return acc;\n }\n if (!acc) {\n return path;\n }\n\n return [cleanEndingSeparator(acc), PATH_SEPARATOR, cleanLeadingSeparator(path)].join('');\n }, '');\n}"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_m","attrs","on","$event","stopPropagation","preventDefault","$emit","_v","_e","_s","username","staticRenderFns","component","DomainNameService","constructor","domainName","domainWithKeyword","keyword","joinPaths","fullUrl","ShortcutsService","endpoint","getShortcuts","search","axios","getShortcut","isAvailable","updateShortcut","shortcut","deleteShortcut","registerShortcut","getPageTitle","url","UPDATE_USERNAME","UPDATE_LOGGEDIN","UPDATE_ISAUTHORIZED","UPDATE_LASTSTATUS_UPDATE","AuthorizationService","getAuthorizationStatus","authorizationService","staleAuthorizationStatus","loadAuthorizationStatus","getters","dispatch","commit","lastUpdated","lastAuthorizationUpdate","now","Date","then","response","data","mutationTypes","updateAuthorizationStatus","status","loggedInUser","isLoggedIn","isAuthorized","types","state","date","authorizationStatusLastPolled","Vue","Vuex","actions","mutations","toast","error","message","title","iZtoast","position","success","errorResponseHandler","config","hasOwnProperty","errorHandle","Promise","reject","statusText","replace","PATH_SEPARATOR","PATH_SEPARATOR_LEADING_REGEX","RegExp","PATH_SEPARATOR_ENDING_REGEX","cleanLeadingSeparator","path","cleanEndingSeparator","paths","reduce","acc","join"],"sourceRoot":""}