diff --git a/CTFd/themes/admin/assets/js/components/comments/CommentBox.vue b/CTFd/themes/admin/assets/js/components/comments/CommentBox.vue index ef8ca5ff..b1bcc7f2 100644 --- a/CTFd/themes/admin/assets/js/components/comments/CommentBox.vue +++ b/CTFd/themes/admin/assets/js/components/comments/CommentBox.vue @@ -97,7 +97,7 @@ export default { if (comment.length > 0) { helpers.comments.add_comment( comment, - "challenge", + this.$props.type, this.getArgs(), () => { this.loadComments(); diff --git a/CTFd/themes/admin/assets/js/pages/team.js b/CTFd/themes/admin/assets/js/pages/team.js index 3a43b9c9..c759edeb 100644 --- a/CTFd/themes/admin/assets/js/pages/team.js +++ b/CTFd/themes/admin/assets/js/pages/team.js @@ -4,6 +4,8 @@ import CTFd from "core/CTFd"; import { htmlEntities } from "core/utils"; import { ezAlert, ezQuery, ezBadge } from "core/ezq"; import { createGraph, updateGraph } from "core/graphs"; +import Vue from "vue/dist/vue.esm.browser"; +import CommentBox from "../components/comments/CommentBox.vue"; function createTeam(event) { event.preventDefault(); @@ -481,11 +483,30 @@ $(() => { $("#team-info-edit-form").submit(updateTeam); + // Insert CommentBox element + const commentBox = Vue.extend(CommentBox); + let vueContainer = document.createElement("div"); + document.querySelector("#comment-box").appendChild(vueContainer); + new commentBox({ + propsData: { type: "team", id: window.TEAM_ID } + }).$mount(vueContainer); + let type, id, name, account_id; ({ type, id, name, account_id } = window.stats_data); - createGraphs(type, id, name, account_id); - setInterval(() => { - updateGraphs(type, id, name, account_id); - }, 300000); + let intervalId; + $("#team-statistics-modal").on("shown.bs.modal", function(_e) { + createGraphs(type, id, name, account_id); + intervalId = setInterval(() => { + updateGraphs(type, id, name, account_id); + }, 300000); + }); + + $("#team-statistics-modal").on("hidden.bs.modal", function(_e) { + clearInterval(intervalId); + }); + + $(".statistics-team").click(function(_event) { + $("#team-statistics-modal").modal("toggle"); + }); }); diff --git a/CTFd/themes/admin/assets/js/pages/user.js b/CTFd/themes/admin/assets/js/pages/user.js index c146ed19..417289d7 100644 --- a/CTFd/themes/admin/assets/js/pages/user.js +++ b/CTFd/themes/admin/assets/js/pages/user.js @@ -4,6 +4,8 @@ import CTFd from "core/CTFd"; import { htmlEntities } from "core/utils"; import { ezQuery, ezBadge } from "core/ezq"; import { createGraph, updateGraph } from "core/graphs"; +import Vue from "vue/dist/vue.esm.browser"; +import CommentBox from "../components/comments/CommentBox.vue"; function createUser(event) { event.preventDefault(); @@ -441,11 +443,30 @@ $(() => { $("#user-info-edit-form").submit(updateUser); $("#user-award-form").submit(awardUser); + // Insert CommentBox element + const commentBox = Vue.extend(CommentBox); + let vueContainer = document.createElement("div"); + document.querySelector("#comment-box").appendChild(vueContainer); + new commentBox({ + propsData: { type: "user", id: window.USER_ID } + }).$mount(vueContainer); + let type, id, name, account_id; ({ type, id, name, account_id } = window.stats_data); - createGraphs(type, id, name, account_id); - setInterval(() => { - updateGraphs(type, id, name, account_id); - }, 300000); + let intervalId; + $("#user-statistics-modal").on("shown.bs.modal", function(_e) { + createGraphs(type, id, name, account_id); + intervalId = setInterval(() => { + updateGraphs(type, id, name, account_id); + }, 300000); + }); + + $("#user-statistics-modal").on("hidden.bs.modal", function(_e) { + clearInterval(intervalId); + }); + + $(".statistics-user").click(function(_event) { + $("#user-statistics-modal").modal("toggle"); + }); }); diff --git a/CTFd/themes/admin/static/js/components.dev.js b/CTFd/themes/admin/static/js/components.dev.js new file mode 100644 index 00000000..0fe0cca2 --- /dev/null +++ b/CTFd/themes/admin/static/js/components.dev.js @@ -0,0 +1,157 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["components"],{ + +/***/ "./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue": +/*!************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true& */ \"./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true&\");\n/* harmony import */ var _CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CommentBox.vue?vue&type=script&lang=js& */ \"./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js&\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css& */ \"./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1fd2c08a\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"CTFd/themes/admin/assets/js/components/comments/CommentBox.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./CommentBox.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css&": +/*!*********************************************************************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css& ***! + \*********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-style-loader!../../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css& */ \"./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css&\");\n/* harmony import */ var _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_vue_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_style_index_0_id_1fd2c08a_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true&": +/*!*******************************************************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true& ***! + \*******************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_CommentBox_vue_vue_type_template_id_1fd2c08a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue": +/*!***********************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MediaLibrary.vue?vue&type=template&id=50f8d42a& */ \"./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a&\");\n/* harmony import */ var _MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MediaLibrary.vue?vue&type=script&lang=js& */ \"./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js&\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js&": +/*!************************************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js& ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/babel-loader/lib??ref--0!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./MediaLibrary.vue?vue&type=script&lang=js& */ \"./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_babel_loader_lib_index_js_ref_0_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?"); + +/***/ }), + +/***/ "./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a&": +/*!******************************************************************************************************!*\ + !*** ./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a& ***! + \******************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./MediaLibrary.vue?vue&type=template&id=50f8d42a& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a&\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_MediaLibrary_vue_vue_type_template_id_50f8d42a___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?"); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--0!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _helpers = _interopRequireDefault(__webpack_require__(/*! core/helpers */ \"./CTFd/themes/core/assets/js/helpers.js\"));\n\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n props: {\n // These props are passed to the api via query string.\n // See this.getArgs()\n type: String,\n id: Number\n },\n data: function data() {\n return {\n comment: \"\",\n comments: [],\n urlRoot: _CTFd.default.config.urlRoot\n };\n },\n methods: {\n toLocalTime: function toLocalTime(date) {\n return (0, _moment.default)(date).local().format(\"MMMM Do, h:mm:ss A\");\n },\n getArgs: function getArgs() {\n var args = {};\n args[\"\".concat(this.$props.type, \"_id\")] = this.$props.id;\n return args;\n },\n loadComments: function loadComments() {\n var _this = this;\n\n var apiArgs = this.getArgs();\n\n _helpers.default.comments.get_comments(apiArgs).then(function (response) {\n _this.comments = response.data;\n return _this.comments;\n });\n },\n submitComment: function submitComment() {\n var _this2 = this;\n\n var comment = this.comment.trim();\n\n if (comment.length > 0) {\n _helpers.default.comments.add_comment(comment, this.$props.type, this.getArgs(), function () {\n _this2.loadComments();\n });\n }\n\n this.comment = \"\";\n },\n deleteComment: function deleteComment(commentId) {\n var _this3 = this;\n\n if (confirm(\"Are you sure you'd like to delete this comment?\")) {\n _helpers.default.comments.delete_comment(commentId).then(function (response) {\n if (response.success === true) {\n for (var i = _this3.comments.length - 1; i >= 0; --i) {\n if (_this3.comments[i].id == commentId) {\n _this3.comments.splice(i, 1);\n }\n }\n }\n });\n }\n }\n },\n created: function created() {\n this.loadComments();\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?./node_modules/babel-loader/lib??ref--0!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--0!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nvar _helpers = _interopRequireDefault(__webpack_require__(/*! core/helpers */ \"./CTFd/themes/core/assets/js/helpers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nfunction get_page_files() {\n return _CTFd.default.fetch(\"/api/v1/files?type=page\", {\n credentials: \"same-origin\"\n }).then(function (response) {\n return response.json();\n });\n}\n\nvar _default = {\n props: {\n editor: Object\n },\n data: function data() {\n return {\n files: [],\n selectedFile: null\n };\n },\n methods: {\n getPageFiles: function getPageFiles() {\n var _this = this;\n\n get_page_files().then(function (response) {\n _this.files = response.data;\n return _this.files;\n });\n },\n uploadChosenFiles: function uploadChosenFiles() {\n var _this2 = this;\n\n // TODO: We should reduce the need to interact with the DOM directly.\n // This looks jank and we should be able to remove it.\n var form = document.querySelector(\"#media-library-upload\");\n\n _helpers.default.files.upload(form, {}, function (_data) {\n _this2.getPageFiles();\n });\n },\n selectFile: function selectFile(file) {\n this.selectedFile = file;\n return this.selectedFile;\n },\n buildSelectedFileUrl: function buildSelectedFileUrl() {\n return _CTFd.default.config.urlRoot + \"/files/\" + this.selectedFile.location;\n },\n deleteSelectedFile: function deleteSelectedFile() {\n var _this3 = this;\n\n var file_id = this.selectedFile.id;\n\n if (confirm(\"Are you sure you want to delete this file?\")) {\n _CTFd.default.fetch(\"/api/v1/files/\" + file_id, {\n method: \"DELETE\"\n }).then(function (response) {\n if (response.status === 200) {\n response.json().then(function (object) {\n if (object.success) {\n _this3.getPageFiles();\n\n _this3.selectedFile = null;\n }\n });\n }\n });\n }\n },\n insertSelectedFile: function insertSelectedFile() {\n var editor = this.$props.editor;\n\n if (editor.hasOwnProperty(\"codemirror\")) {\n editor = editor.codemirror;\n }\n\n var doc = editor.getDoc();\n var cursor = doc.getCursor();\n var url = this.buildSelectedFileUrl();\n var img = this.getIconClass(this.selectedFile.location) === \"far fa-file-image\";\n var filename = url.split(\"/\").pop();\n link = \"[{0}]({1})\".format(filename, url);\n\n if (img) {\n link = \"!\" + link;\n }\n\n doc.replaceRange(link, cursor);\n },\n downloadSelectedFile: function downloadSelectedFile() {\n var link = this.buildSelectedFileUrl();\n window.open(link, \"_blank\");\n },\n getIconClass: function getIconClass(filename) {\n var mapping = {\n // Image Files\n png: \"far fa-file-image\",\n jpg: \"far fa-file-image\",\n jpeg: \"far fa-file-image\",\n gif: \"far fa-file-image\",\n bmp: \"far fa-file-image\",\n svg: \"far fa-file-image\",\n // Text Files\n txt: \"far fa-file-alt\",\n // Video Files\n mov: \"far fa-file-video\",\n mp4: \"far fa-file-video\",\n wmv: \"far fa-file-video\",\n flv: \"far fa-file-video\",\n mkv: \"far fa-file-video\",\n avi: \"far fa-file-video\",\n // PDF Files\n pdf: \"far fa-file-pdf\",\n // Audio Files\n mp3: \"far fa-file-sound\",\n wav: \"far fa-file-sound\",\n aac: \"far fa-file-sound\",\n // Archive Files\n zip: \"far fa-file-archive\",\n gz: \"far fa-file-archive\",\n tar: \"far fa-file-archive\",\n \"7z\": \"far fa-file-archive\",\n rar: \"far fa-file-archive\",\n // Code Files\n py: \"far fa-file-code\",\n c: \"far fa-file-code\",\n cpp: \"far fa-file-code\",\n html: \"far fa-file-code\",\n js: \"far fa-file-code\",\n rb: \"far fa-file-code\",\n go: \"far fa-file-code\"\n };\n var ext = filename.split(\".\").pop();\n return mapping[ext] || \"far fa-file\";\n }\n },\n created: function created() {\n return this.getPageFiles();\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?./node_modules/babel-loader/lib??ref--0!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.card .close[data-v-1fd2c08a] {\\n opacity: 0;\\n transition: 0.2s;\\n}\\n.card:hover .close[data-v-1fd2c08a] {\\n opacity: 0.5;\\n}\\n.close[data-v-1fd2c08a]:hover {\\n opacity: 0.75 !important;\\n}\\n.comment-card-leave[data-v-1fd2c08a] {\\n max-height: 200px;\\n}\\n.comment-card-leave-to[data-v-1fd2c08a] {\\n max-height: 0;\\n}\\n.comment-card-active[data-v-1fd2c08a] {\\n position: absolute;\\n}\\n.comment-card-enter-active[data-v-1fd2c08a],\\n.comment-card-move[data-v-1fd2c08a],\\n.comment-card-leave-active[data-v-1fd2c08a] {\\n transition: all 0.3s;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true&": +/*!*************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=template&id=1fd2c08a&scoped=true& ***! + \*************************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", [\n _c(\"div\", { staticClass: \"row mb-3\" }, [\n _c(\"div\", { staticClass: \"col-md-12\" }, [\n _c(\"div\", { staticClass: \"comment\" }, [\n _c(\"textarea\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model.lazy\",\n value: _vm.comment,\n expression: \"comment\",\n modifiers: { lazy: true }\n }\n ],\n staticClass: \"form-control mb-2\",\n attrs: {\n rows: \"2\",\n id: \"comment-input\",\n placeholder: \"Add comment\"\n },\n domProps: { value: _vm.comment },\n on: {\n change: function($event) {\n _vm.comment = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-sm btn-success btn-outlined float-right\",\n attrs: { type: \"submit\" },\n on: {\n click: function($event) {\n return _vm.submitComment()\n }\n }\n },\n [_vm._v(\"\\n Comment\\n \")]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"comments\" },\n [\n _c(\n \"transition-group\",\n { attrs: { name: \"comment-card\" } },\n _vm._l(_vm.comments.slice().reverse(), function(comment) {\n return _c(\n \"div\",\n { key: comment.id, staticClass: \"comment-card card mb-2\" },\n [\n _c(\"div\", { staticClass: \"card-body pl-0 pb-0 pt-2 pr-2\" }, [\n _c(\n \"button\",\n {\n staticClass: \"close float-right\",\n attrs: { type: \"button\", \"aria-label\": \"Close\" },\n on: {\n click: function($event) {\n return _vm.deleteComment(comment.id)\n }\n }\n },\n [\n _c(\"span\", { attrs: { \"aria-hidden\": \"true\" } }, [\n _vm._v(\"×\")\n ])\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"card-body\" }, [\n _c(\"div\", {\n staticClass: \"card-text\",\n domProps: { innerHTML: _vm._s(comment.html) }\n }),\n _vm._v(\" \"),\n _c(\"small\", { staticClass: \"text-muted float-left\" }, [\n _c(\"span\", [\n _c(\n \"a\",\n {\n attrs: {\n href:\n _vm.urlRoot + \"/admin/users/\" + comment.author_id\n }\n },\n [_vm._v(_vm._s(comment.author.name))]\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"small\", { staticClass: \"text-muted float-right\" }, [\n _c(\"span\", { staticClass: \"float-right\" }, [\n _vm._v(_vm._s(_vm.toLocalTime(comment.date)))\n ])\n ])\n ])\n ]\n )\n }),\n 0\n )\n ],\n 1\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a&": +/*!************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?vue&type=template&id=50f8d42a& ***! + \************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"modal fade\", attrs: { id: \"media-modal\", tabindex: \"-1\" } },\n [\n _c(\"div\", { staticClass: \"modal-dialog modal-lg\" }, [\n _c(\"div\", { staticClass: \"modal-content\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"modal-body\" }, [\n _c(\"div\", { staticClass: \"modal-header\" }, [\n _c(\"div\", { staticClass: \"container\" }, [\n _c(\"div\", { staticClass: \"row mh-100\" }, [\n _c(\n \"div\",\n {\n staticClass: \"col-md-6\",\n attrs: { id: \"media-library-list\" }\n },\n _vm._l(_vm.files, function(file) {\n return _c(\n \"div\",\n { key: file.id, staticClass: \"media-item-wrapper\" },\n [\n _c(\n \"a\",\n {\n attrs: { href: \"javascript:void(0)\" },\n on: {\n click: function($event) {\n _vm.selectFile(file)\n return false\n }\n }\n },\n [\n _c(\"i\", {\n class: _vm.getIconClass(file.location),\n attrs: { \"aria-hidden\": \"true\" }\n }),\n _vm._v(\" \"),\n _c(\"small\", { staticClass: \"media-item-title\" }, [\n _vm._v(_vm._s(file.location.split(\"/\").pop()))\n ])\n ]\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"col-md-6\",\n attrs: { id: \"media-library-details\" }\n },\n [\n _c(\"h4\", { staticClass: \"text-center\" }, [\n _vm._v(\"Media Details\")\n ]),\n _vm._v(\" \"),\n _c(\"div\", { attrs: { id: \"media-item\" } }, [\n _c(\n \"div\",\n {\n staticClass: \"text-center\",\n attrs: { id: \"media-icon\" }\n },\n [\n this.selectedFile\n ? _c(\"div\", [\n _vm.getIconClass(\n this.selectedFile.location\n ) === \"far fa-file-image\"\n ? _c(\"div\", [\n _c(\"img\", {\n staticStyle: {\n \"max-width\": \"100%\",\n \"max-height\": \"100%\",\n \"object-fit\": \"contain\"\n },\n attrs: {\n src: _vm.buildSelectedFileUrl()\n }\n })\n ])\n : _c(\"div\", [\n _c(\"i\", {\n class:\n _vm.getIconClass(\n this.selectedFile.location\n ) + \" fa-4x\",\n attrs: { \"aria-hidden\": \"true\" }\n })\n ])\n ])\n : _vm._e()\n ]\n ),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n this.selectedFile\n ? _c(\n \"div\",\n {\n staticClass: \"text-center\",\n attrs: { id: \"media-filename\" }\n },\n [\n _c(\n \"a\",\n {\n attrs: {\n href: _vm.buildSelectedFileUrl(),\n target: \"_blank\"\n }\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n this.selectedFile.location\n .split(\"/\")\n .pop()\n ) +\n \"\\n \"\n )\n ]\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"br\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group\" }, [\n this.selectedFile\n ? _c(\"div\", [\n _vm._v(\n \"\\n Link:\\n \"\n ),\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"text\",\n id: \"media-link\",\n readonly: \"\"\n },\n domProps: {\n value: _vm.buildSelectedFileUrl()\n }\n })\n ])\n : _c(\"div\", [\n _vm._v(\n \"\\n Link:\\n \"\n ),\n _c(\"input\", {\n staticClass: \"form-control\",\n attrs: {\n type: \"text\",\n id: \"media-link\",\n readonly: \"\"\n }\n })\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"form-group text-center\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-md-6\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-success w-100\",\n attrs: {\n id: \"media-insert\",\n \"data-toggle\": \"tooltip\",\n \"data-placement\": \"top\",\n title: \"Insert link into editor\"\n },\n on: { click: _vm.insertSelectedFile }\n },\n [\n _vm._v(\n \"\\n Insert\\n \"\n )\n ]\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-md-3\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary w-100\",\n attrs: {\n id: \"media-download\",\n \"data-toggle\": \"tooltip\",\n \"data-placement\": \"top\",\n title: \"Download file\"\n },\n on: { click: _vm.downloadSelectedFile }\n },\n [_c(\"i\", { staticClass: \"fas fa-download\" })]\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"col-md-3\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-danger w-100\",\n attrs: {\n id: \"media-delete\",\n \"data-toggle\": \"tooltip\",\n \"data-placement\": \"top\",\n title: \"Delete file\"\n },\n on: { click: _vm.deleteSelectedFile }\n },\n [_c(\"i\", { staticClass: \"far fa-trash-alt\" })]\n )\n ])\n ])\n ])\n ])\n ]\n )\n ])\n ])\n ]),\n _vm._v(\" \"),\n _vm._m(1)\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"modal-footer\" }, [\n _c(\"div\", { staticClass: \"float-right\" }, [\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary media-upload-button\",\n attrs: { type: \"submit\" },\n on: { click: _vm.uploadChosenFiles }\n },\n [_vm._v(\"\\n Upload\\n \")]\n )\n ])\n ])\n ])\n ])\n ]\n )\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"modal-header\" }, [\n _c(\"div\", { staticClass: \"container\" }, [\n _c(\"div\", { staticClass: \"row\" }, [\n _c(\"div\", { staticClass: \"col-md-12\" }, [\n _c(\"h3\", { staticClass: \"text-center\" }, [_vm._v(\"Media Library\")])\n ])\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"close\",\n attrs: {\n type: \"button\",\n \"data-dismiss\": \"modal\",\n \"aria-label\": \"Close\"\n }\n },\n [_c(\"span\", { attrs: { \"aria-hidden\": \"true\" } }, [_vm._v(\"×\")])]\n )\n ])\n },\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"form\",\n { attrs: { id: \"media-library-upload\", enctype: \"multipart/form-data\" } },\n [\n _c(\"div\", { staticClass: \"form-group\" }, [\n _c(\"label\", { attrs: { for: \"media-files\" } }, [\n _vm._v(\"\\n Upload Files\\n \")\n ]),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"form-control-file\",\n attrs: {\n type: \"file\",\n name: \"file\",\n id: \"media-files\",\n multiple: \"\"\n }\n }),\n _vm._v(\" \"),\n _c(\"sub\", { staticClass: \"help-block\" }, [\n _vm._v(\n \"\\n Attach multiple files using Control+Click or Cmd+Click.\\n \"\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\"input\", { attrs: { type: \"hidden\", value: \"page\", name: \"type\" } })\n ]\n )\n }\n]\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + +/***/ "./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css&": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue?vue&type=style&index=0&id=1fd2c08a&scoped=true&lang=css& ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// style-loader: Adds some css to the DOM by adding a \n";s.getDoc().setValue(e)}),(0,r.default)(".start-date").change(function(){u("start")}),(0,r.default)(".end-date").change(function(){u("end")}),(0,r.default)(".freeze-date").change(function(){u("freeze")});var e=(0,r.default)("#start").val(),n=(0,r.default)("#end").val(),a=(0,r.default)("#freeze").val();e&&d("start",e),n&&d("end",n),a&&d("freeze",a),(0,r.default)("#mail_useauth").change(function(){(0,r.default)("#mail_username_password").toggle(this.checked)}).change()})},"./CTFd/themes/admin/assets/js/pages/main.js":function(e,t,o){var n=m(o("./CTFd/themes/core/assets/js/CTFd.js")),s=m(o("./node_modules/jquery/dist/jquery.js")),a=m(o("./node_modules/moment/moment.js")),i=m(o("./node_modules/nunjucks/browser/nunjucks.js")),l=o("./node_modules/howler/dist/howler.js"),r=m(o("./CTFd/themes/core/assets/js/events.js")),d=m(o("./CTFd/themes/core/assets/js/times.js")),c=m(o("./CTFd/themes/admin/assets/js/styles.js")),u=m(o("./CTFd/themes/core/assets/js/helpers.js"));function m(e){return e&&e.__esModule?e:{default:e}}n.default.init(window.init),window.CTFd=n.default,window.helpers=u.default,window.$=s.default,window.Moment=a.default,window.nunjucks=i.default,window.Howl=l.Howl,(0,s.default)(function(){(0,c.default)(),(0,d.default)(),(0,r.default)(n.default.config.urlRoot)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=r(o("./node_modules/jquery/dist/jquery.js")),a=r(o("./node_modules/easymde/src/js/easymde.js")),i=r(o("./node_modules/vue/dist/vue.esm.browser.js")),l=r(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function r(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(l.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),l=d(o("./node_modules/jquery/dist/jquery.js")),r=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:r.default},f={$:l.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o").text(c.default.tz.guess());(0,l.default)(e).append(t);for(var o=c.default.tz.names(),n=0;n").text(o[n]);(0,l.default)(e).append(s)}}o("./node_modules/codemirror/mode/htmlmixed/htmlmixed.js"),(0,l.default)(function(){var s=i.default.fromTextArea(document.getElementById("theme-header"),{lineNumbers:!0,lineWrapping:!0,mode:"htmlmixed",htmlMode:!0}),t=i.default.fromTextArea(document.getElementById("theme-footer"),{lineNumbers:!0,lineWrapping:!0,mode:"htmlmixed",htmlMode:!0}),o=i.default.fromTextArea(document.getElementById("theme-settings"),{lineNumbers:!0,lineWrapping:!0,mode:{name:"javascript",json:!0}});(0,l.default)("a[href='#theme']").on("shown.bs.tab",function(e){s.refresh(),t.refresh(),o.refresh()}),(0,l.default)("#theme-settings-modal form").submit(function(e){e.preventDefault(),o.getDoc().setValue(JSON.stringify((0,l.default)(this).serializeJSON(),null,2)),(0,l.default)("#theme-settings-modal").modal("hide")}),(0,l.default)("#theme-settings-button").click(function(){var t,n=(0,l.default)("#theme-settings-modal form");try{t=JSON.parse(o.getValue())}catch(e){t={}}l.default.each(t,function(e,t){var o=n.find("[name='".concat(e,"']"));switch(o.prop("type")){case"radio":case"checkbox":o.each(function(){(0,l.default)(this).attr("value")==t&&(0,l.default)(this).attr("checked",t)});break;default:o.val(t)}}),(0,l.default)("#theme-settings-modal").modal()}),_((0,l.default)("#start-timezone")),_((0,l.default)("#end-timezone")),_((0,l.default)("#freeze-timezone")),(0,l.default)(".config-section > form:not(.form-upload)").submit(m),(0,l.default)("#logo-upload").submit(p),(0,l.default)("#remove-logo").click(f),(0,l.default)("#export-button").click(h),(0,l.default)("#import-button").click(j),(0,l.default)("#config-color-update").click(function(){var e,t=(0,l.default)("#config-color-picker").val(),o=s.getValue();if(o.length){var n="theme-color: ".concat(t,";");e=o.replace(/theme-color: (.*);/,n)}else e='\n";s.getDoc().setValue(e)}),(0,l.default)(".start-date").change(function(){u("start")}),(0,l.default)(".end-date").change(function(){u("end")}),(0,l.default)(".freeze-date").change(function(){u("freeze")});var e=(0,l.default)("#start").val(),n=(0,l.default)("#end").val(),a=(0,l.default)("#freeze").val();e&&d("start",e),n&&d("end",n),a&&d("freeze",a),(0,l.default)("#mail_useauth").change(function(){(0,l.default)("#mail_username_password").toggle(this.checked)}).change()})},"./CTFd/themes/admin/assets/js/pages/main.js":function(e,t,o){var n=m(o("./CTFd/themes/core/assets/js/CTFd.js")),s=m(o("./node_modules/jquery/dist/jquery.js")),a=m(o("./node_modules/moment/moment.js")),i=m(o("./node_modules/nunjucks/browser/nunjucks.js")),r=o("./node_modules/howler/dist/howler.js"),l=m(o("./CTFd/themes/core/assets/js/events.js")),d=m(o("./CTFd/themes/core/assets/js/times.js")),c=m(o("./CTFd/themes/admin/assets/js/styles.js")),u=m(o("./CTFd/themes/core/assets/js/helpers.js"));function m(e){return e&&e.__esModule?e:{default:e}}n.default.init(window.init),window.CTFd=n.default,window.helpers=u.default,window.$=s.default,window.Moment=a.default,window.nunjucks=i.default,window.Howl=r.Howl,(0,s.default)(function(){(0,c.default)(),(0,d.default)(),(0,l.default)(n.default.config.urlRoot)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),a=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),s=(0,r.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(u),s=(0,l.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(u),s=(0,l.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(u),s=(0,l.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(u),s=(0,l.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,i.default)("#scoreboard-bulk-edit").serializeJSON(!0).visibility;!function(e,t){var o={hidden:"hidden"===t},n=[],s=!0,i=!1,a=void 0;try{for(var l,r=e[Symbol.iterator]();!(s=(l=r.next()).done);s=!0){var d=l.value;n.push(u[c.default.config.userMode](d,o))}}catch(e){i=!0,a=e}finally{try{s||null==r.return||r.return()}finally{if(i)throw a}}Promise.all(n).then(function(e){window.location.reload()})}(t,e)}})}(0,i.default)(function(){(0,i.default)(".scoreboard-toggle").click(a),(0,i.default)("#scoreboard-edit-button").click(l)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=r(o("./node_modules/jquery/dist/jquery.js")),i=r(o("./node_modules/easymde/src/js/easymde.js")),a=r(o("./node_modules/vue/dist/vue.esm.browser.js")),l=r(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function r(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=a.default.extend(l.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new i.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),i=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var a=d(o("./node_modules/markdown-it/index.js")),l=d(o("./node_modules/jquery/dist/jquery.js")),r=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new i.API("/"),m={},p={ezq:r.default},f={$:l.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,i.default)("#scoreboard-bulk-edit").serializeJSON(!0).visibility;!function(e,t){var o={hidden:"hidden"===t},n=[],s=!0,i=!1,a=void 0;try{for(var r,l=e[Symbol.iterator]();!(s=(r=l.next()).done);s=!0){var d=r.value;n.push(u[c.default.config.userMode](d,o))}}catch(e){i=!0,a=e}finally{try{s||null==l.return||l.return()}finally{if(i)throw a}}Promise.all(n).then(function(e){window.location.reload()})}(t,e)}})}(0,i.default)(function(){(0,i.default)(".scoreboard-toggle").click(a),(0,i.default)("#scoreboard-edit-button").click(r)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),i=l(o("./node_modules/easymde/src/js/easymde.js")),a=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=a.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new i.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),i=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var a=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new i.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),s=(0,r.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o"+(0,l.htmlEntities)(s)+"",""+(0,l.htmlEntities)(n)+""),success:function(){r.default.api.delete_submission({submissionId:t}).then(function(e){e.success&&i.remove()})}})}function i(e){var l=(0,a.default)("input[data-submission-id]:checked").map(function(){return(0,a.default)(this).data("submission-id")}),t=1===l.length?"submission":"submissions";(0,d.ezQuery)({title:"Delete Submissions",body:"Are you sure you want to delete ".concat(l.length," ").concat(t,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var s,i=l[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var a=s.value;e.push(r.default.api.delete_submission({submissionId:a}))}}catch(e){o=!0,n=e}finally{try{t||null==i.return||i.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}(0,a.default)(function(){(0,a.default)(".delete-correct-submission").click(s),(0,a.default)("#submission-delete-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=r(o("./node_modules/jquery/dist/jquery.js")),i=r(o("./node_modules/easymde/src/js/easymde.js")),a=r(o("./node_modules/vue/dist/vue.esm.browser.js")),l=r(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function r(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=a.default.extend(l.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new i.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),i=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var a=d(o("./node_modules/markdown-it/index.js")),l=d(o("./node_modules/jquery/dist/jquery.js")),r=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new i.API("/"),m={},p={ezq:r.default},f={$:l.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o"+(0,r.htmlEntities)(s)+"",""+(0,r.htmlEntities)(n)+""),success:function(){l.default.api.delete_submission({submissionId:t}).then(function(e){e.success&&i.remove()})}})}function i(e){var r=(0,a.default)("input[data-submission-id]:checked").map(function(){return(0,a.default)(this).data("submission-id")}),t=1===r.length?"submission":"submissions";(0,d.ezQuery)({title:"Delete Submissions",body:"Are you sure you want to delete ".concat(r.length," ").concat(t,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var s,i=r[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var a=s.value;e.push(l.default.api.delete_submission({submissionId:a}))}}catch(e){o=!0,n=e}finally{try{t||null==i.return||i.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}(0,a.default)(function(){(0,a.default)(".delete-correct-submission").click(s),(0,a.default)("#submission-delete-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),i=l(o("./node_modules/easymde/src/js/easymde.js")),a=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=a.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new i.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),i=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var a=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var m=new i.API("/"),u={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,i=!1!==e.animation,a=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:a,animation:i}),o.toast("show"),o}function j(e){var t=i.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=a.format(e.width),n=i.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var g={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=g},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var i=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,i(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function i(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,a.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,a.default)("th.sort-col").click(function(){var e=(0,a.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=i(e,s),n=i(t,s);return a.default.isNumeric(o)&&a.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,a.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-info-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction updateTeam(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#team-info-edit-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-info-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-info-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(event, target) {\n var submissions;\n var type;\n var title;\n\n switch (target) {\n case \"solves\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=correct]:checked\");\n type = \"solve\";\n title = \"Solves\";\n break;\n\n case \"fails\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=incorrect]:checked\");\n type = \"fail\";\n title = \"Fails\";\n break;\n\n default:\n break;\n }\n\n var submissionIDs = submissions.map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target_string = submissionIDs.length === 1 ? type : type + \"s\";\n (0, _ezq.ezQuery)({\n title: \"Delete \".concat(title),\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target_string, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction deleteSelectedAwards(_event) {\n var awardIDs = (0, _jquery.default)(\"input[data-award-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"award-id\");\n });\n var target = awardIDs.length === 1 ? \"award\" : \"awards\";\n (0, _ezq.ezQuery)({\n title: \"Delete Awards\",\n body: \"Are you sure you want to delete \".concat(awardIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = awardIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var awardID = _step2.value;\n\n var req = _CTFd.default.fetch(\"/api/v1/awards/\" + awardID, {\n method: \"DELETE\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction solveSelectedMissingChallenges(event) {\n event.preventDefault();\n var challengeIDs = (0, _jquery.default)(\"input[data-missing-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"missing-challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Mark Correct\",\n body: \"Are you sure you want to mark \".concat(challengeIDs.length, \" \").concat(target, \" correct for \").concat((0, _utils.htmlEntities)(window.TEAM_NAME), \"?\"),\n success: function success() {\n (0, _ezq.ezAlert)({\n title: \"User Attribution\",\n body: \"\\n Which user on \".concat((0, _utils.htmlEntities)(window.TEAM_NAME), \" solved these challenges?\\n
\\n \").concat((0, _jquery.default)(\"#team-member-select\").html(), \"\\n
\\n \"),\n button: \"Mark Correct\",\n success: function success() {\n var USER_ID = (0, _jquery.default)(\"#query-team-member-solve > select\").val();\n var reqs = [];\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = challengeIDs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var challengeID = _step3.value;\n var params = {\n provided: \"MARKED AS SOLVED BY ADMIN\",\n user_id: USER_ID,\n team_id: window.TEAM_ID,\n challenge_id: challengeID,\n type: \"correct\"\n };\n\n var req = _CTFd.default.fetch(\"/api/v1/submissions\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n }\n });\n}\n\nvar api_funcs = {\n team: [function (x) {\n return _CTFd.default.api.get_team_solves({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_fails({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_awards({\n teamId: x\n });\n }],\n user: [function (x) {\n return _CTFd.default.api.get_user_solves({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_fails({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_awards({\n userId: x\n });\n }]\n};\n\nvar createGraphs = function createGraphs(type, id, name, account_id) {\n var _api_funcs$type = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type[0],\n fails_func = _api_funcs$type[1],\n awards_func = _api_funcs$type[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.createGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\nvar updateGraphs = function updateGraphs(type, id, name, account_id) {\n var _api_funcs$type2 = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type2[0],\n fails_func = _api_funcs$type2[1],\n awards_func = _api_funcs$type2[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.updateGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#team-captain-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#team-captain-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-captain-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-captain-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-captain-form\").find(\"select[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n (0, _jquery.default)(\".edit-team\").click(function (_e) {\n (0, _jquery.default)(\"#team-info-edit-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".edit-captain\").click(function (_e) {\n (0, _jquery.default)(\"#team-captain-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".award-team\").click(function (_e) {\n (0, _jquery.default)(\"#team-award-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".addresses-team\").click(function (_event) {\n (0, _jquery.default)(\"#team-addresses-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\"#user-award-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#user-award-form\").serializeJSON(true);\n params[\"user_id\"] = (0, _jquery.default)(\"#award-member-input\").val();\n params[\"team_id\"] = window.TEAM_ID;\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n\n if (!params[\"user_id\"]) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: \"Please select a team member\"\n }));\n return;\n }\n\n params[\"user_id\"] = parseInt(params[\"user_id\"]);\n\n _CTFd.default.fetch(\"/api/v1/awards\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-award-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n (0, _jquery.default)(\".delete-member\").click(function (e) {\n e.preventDefault();\n var member_id = (0, _jquery.default)(this).attr(\"member-id\");\n var member_name = (0, _jquery.default)(this).attr(\"member-name\");\n var params = {\n user_id: member_id\n };\n var row = (0, _jquery.default)(this).parent().parent();\n (0, _ezq.ezQuery)({\n title: \"Remove Member\",\n body: \"Are you sure you want to remove {0} from {1}?

All of their challenges solves, attempts, awards, and unlocked hints will also be deleted!\".format(\"\" + (0, _utils.htmlEntities)(member_name) + \"\", \"\" + (0, _utils.htmlEntities)(window.TEAM_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID + \"/members\", {\n method: \"DELETE\",\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n row.remove();\n }\n });\n }\n });\n });\n (0, _jquery.default)(\".delete-team\").click(function (_e) {\n (0, _ezq.ezQuery)({\n title: \"Delete Team\",\n body: \"Are you sure you want to delete {0}\".format(\"\" + (0, _utils.htmlEntities)(window.TEAM_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location = _CTFd.default.config.urlRoot + \"/admin/teams\";\n }\n });\n }\n });\n });\n (0, _jquery.default)(\"#solves-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"solves\");\n });\n (0, _jquery.default)(\"#fails-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"fails\");\n });\n (0, _jquery.default)(\"#awards-delete-button\").click(function (e) {\n deleteSelectedAwards(e);\n });\n (0, _jquery.default)(\"#missing-solve-button\").click(function (e) {\n solveSelectedMissingChallenges(e);\n });\n (0, _jquery.default)(\"#team-info-create-form\").submit(createTeam);\n (0, _jquery.default)(\"#team-info-edit-form\").submit(updateTeam);\n var type, id, name, account_id;\n var _window$stats_data = window.stats_data;\n type = _window$stats_data.type;\n id = _window$stats_data.id;\n name = _window$stats_data.name;\n account_id = _window$stats_data.account_id;\n createGraphs(type, id, name, account_id);\n setInterval(function () {\n updateGraphs(type, id, name, account_id);\n }, 300000);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/team.js?"); +eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _utils = __webpack_require__(/*! core/utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nvar _graphs = __webpack_require__(/*! core/graphs */ \"./CTFd/themes/core/assets/js/graphs.js\");\n\nvar _vueEsm = _interopRequireDefault(__webpack_require__(/*! vue/dist/vue.esm.browser */ \"./node_modules/vue/dist/vue.esm.browser.js\"));\n\nvar _CommentBox = _interopRequireDefault(__webpack_require__(/*! ../components/comments/CommentBox.vue */ \"./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction createTeam(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#team-info-create-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n var team_id = response.data.id;\n window.location = _CTFd.default.config.urlRoot + \"/admin/teams/\" + team_id;\n } else {\n (0, _jquery.default)(\"#team-info-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-info-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction updateTeam(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#team-info-edit-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-info-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-info-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(event, target) {\n var submissions;\n var type;\n var title;\n\n switch (target) {\n case \"solves\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=correct]:checked\");\n type = \"solve\";\n title = \"Solves\";\n break;\n\n case \"fails\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=incorrect]:checked\");\n type = \"fail\";\n title = \"Fails\";\n break;\n\n default:\n break;\n }\n\n var submissionIDs = submissions.map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target_string = submissionIDs.length === 1 ? type : type + \"s\";\n (0, _ezq.ezQuery)({\n title: \"Delete \".concat(title),\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target_string, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction deleteSelectedAwards(_event) {\n var awardIDs = (0, _jquery.default)(\"input[data-award-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"award-id\");\n });\n var target = awardIDs.length === 1 ? \"award\" : \"awards\";\n (0, _ezq.ezQuery)({\n title: \"Delete Awards\",\n body: \"Are you sure you want to delete \".concat(awardIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = awardIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var awardID = _step2.value;\n\n var req = _CTFd.default.fetch(\"/api/v1/awards/\" + awardID, {\n method: \"DELETE\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction solveSelectedMissingChallenges(event) {\n event.preventDefault();\n var challengeIDs = (0, _jquery.default)(\"input[data-missing-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"missing-challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Mark Correct\",\n body: \"Are you sure you want to mark \".concat(challengeIDs.length, \" \").concat(target, \" correct for \").concat((0, _utils.htmlEntities)(window.TEAM_NAME), \"?\"),\n success: function success() {\n (0, _ezq.ezAlert)({\n title: \"User Attribution\",\n body: \"\\n Which user on \".concat((0, _utils.htmlEntities)(window.TEAM_NAME), \" solved these challenges?\\n
\\n \").concat((0, _jquery.default)(\"#team-member-select\").html(), \"\\n
\\n \"),\n button: \"Mark Correct\",\n success: function success() {\n var USER_ID = (0, _jquery.default)(\"#query-team-member-solve > select\").val();\n var reqs = [];\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = challengeIDs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var challengeID = _step3.value;\n var params = {\n provided: \"MARKED AS SOLVED BY ADMIN\",\n user_id: USER_ID,\n team_id: window.TEAM_ID,\n challenge_id: challengeID,\n type: \"correct\"\n };\n\n var req = _CTFd.default.fetch(\"/api/v1/submissions\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n }\n });\n}\n\nvar api_funcs = {\n team: [function (x) {\n return _CTFd.default.api.get_team_solves({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_fails({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_awards({\n teamId: x\n });\n }],\n user: [function (x) {\n return _CTFd.default.api.get_user_solves({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_fails({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_awards({\n userId: x\n });\n }]\n};\n\nvar createGraphs = function createGraphs(type, id, name, account_id) {\n var _api_funcs$type = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type[0],\n fails_func = _api_funcs$type[1],\n awards_func = _api_funcs$type[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.createGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\nvar updateGraphs = function updateGraphs(type, id, name, account_id) {\n var _api_funcs$type2 = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type2[0],\n fails_func = _api_funcs$type2[1],\n awards_func = _api_funcs$type2[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.updateGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\"#team-captain-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#team-captain-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#team-captain-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#team-captain-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#team-captain-form\").find(\"select[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n (0, _jquery.default)(\".edit-team\").click(function (_e) {\n (0, _jquery.default)(\"#team-info-edit-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".edit-captain\").click(function (_e) {\n (0, _jquery.default)(\"#team-captain-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".award-team\").click(function (_e) {\n (0, _jquery.default)(\"#team-award-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".addresses-team\").click(function (_event) {\n (0, _jquery.default)(\"#team-addresses-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\"#user-award-form\").submit(function (e) {\n e.preventDefault();\n var params = (0, _jquery.default)(\"#user-award-form\").serializeJSON(true);\n params[\"user_id\"] = (0, _jquery.default)(\"#award-member-input\").val();\n params[\"team_id\"] = window.TEAM_ID;\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n\n if (!params[\"user_id\"]) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: \"Please select a team member\"\n }));\n return;\n }\n\n params[\"user_id\"] = parseInt(params[\"user_id\"]);\n\n _CTFd.default.fetch(\"/api/v1/awards\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-award-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n });\n (0, _jquery.default)(\".delete-member\").click(function (e) {\n e.preventDefault();\n var member_id = (0, _jquery.default)(this).attr(\"member-id\");\n var member_name = (0, _jquery.default)(this).attr(\"member-name\");\n var params = {\n user_id: member_id\n };\n var row = (0, _jquery.default)(this).parent().parent();\n (0, _ezq.ezQuery)({\n title: \"Remove Member\",\n body: \"Are you sure you want to remove {0} from {1}?

All of their challenges solves, attempts, awards, and unlocked hints will also be deleted!\".format(\"\" + (0, _utils.htmlEntities)(member_name) + \"\", \"\" + (0, _utils.htmlEntities)(window.TEAM_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID + \"/members\", {\n method: \"DELETE\",\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n row.remove();\n }\n });\n }\n });\n });\n (0, _jquery.default)(\".delete-team\").click(function (_e) {\n (0, _ezq.ezQuery)({\n title: \"Delete Team\",\n body: \"Are you sure you want to delete {0}\".format(\"\" + (0, _utils.htmlEntities)(window.TEAM_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/teams/\" + window.TEAM_ID, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location = _CTFd.default.config.urlRoot + \"/admin/teams\";\n }\n });\n }\n });\n });\n (0, _jquery.default)(\"#solves-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"solves\");\n });\n (0, _jquery.default)(\"#fails-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"fails\");\n });\n (0, _jquery.default)(\"#awards-delete-button\").click(function (e) {\n deleteSelectedAwards(e);\n });\n (0, _jquery.default)(\"#missing-solve-button\").click(function (e) {\n solveSelectedMissingChallenges(e);\n });\n (0, _jquery.default)(\"#team-info-create-form\").submit(createTeam);\n (0, _jquery.default)(\"#team-info-edit-form\").submit(updateTeam); // Insert CommentBox element\n\n var commentBox = _vueEsm.default.extend(_CommentBox.default);\n\n var vueContainer = document.createElement(\"div\");\n document.querySelector(\"#comment-box\").appendChild(vueContainer);\n new commentBox({\n propsData: {\n type: \"team\",\n id: window.TEAM_ID\n }\n }).$mount(vueContainer);\n var type, id, name, account_id;\n var _window$stats_data = window.stats_data;\n type = _window$stats_data.type;\n id = _window$stats_data.id;\n name = _window$stats_data.name;\n account_id = _window$stats_data.account_id;\n var intervalId;\n (0, _jquery.default)(\"#team-statistics-modal\").on(\"shown.bs.modal\", function (_e) {\n createGraphs(type, id, name, account_id);\n intervalId = setInterval(function () {\n updateGraphs(type, id, name, account_id);\n }, 300000);\n });\n (0, _jquery.default)(\"#team-statistics-modal\").on(\"hidden.bs.modal\", function (_e) {\n clearInterval(intervalId);\n });\n (0, _jquery.default)(\".statistics-team\").click(function (_event) {\n (0, _jquery.default)(\"#team-statistics-modal\").modal(\"toggle\");\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/team.js?"); /***/ }) diff --git a/CTFd/themes/admin/static/js/pages/team.min.js b/CTFd/themes/admin/static/js/pages/team.min.js index 2f6edf11..8623eb08 100644 --- a/CTFd/themes/admin/static/js/pages/team.min.js +++ b/CTFd/themes/admin/static/js/pages/team.min.js @@ -1 +1 @@ -!function(l){function e(e){for(var t,o,n=e[0],a=e[1],s=e[2],i=0,r=[];i #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-info-form > #results").append((0,i.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-info-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")})})}function c(e){e.preventDefault();var t=(0,u.default)("#team-info-edit-form").serializeJSON(!0);m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#team-info-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-info-form > #results").append((0,i.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-info-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function p(e,t){var o,n,a;switch(t){case"solves":o=(0,u.default)("input[data-submission-type=correct]:checked"),n="solve",a="Solves";break;case"fails":o=(0,u.default)("input[data-submission-type=incorrect]:checked"),n="fail",a="Fails"}var r=o.map(function(){return(0,u.default)(this).data("submission-id")}),s=1===r.length?n:n+"s";(0,i.ezQuery)({title:"Delete ".concat(a),body:"Are you sure you want to delete ".concat(r.length," ").concat(s,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=r[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value;e.push(m.default.api.delete_submission({submissionId:i}))}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}var f={team:[function(e){return m.default.api.get_team_solves({teamId:e})},function(e){return m.default.api.get_team_fails({teamId:e})},function(e){return m.default.api.get_team_awards({teamId:e})}],user:[function(e){return m.default.api.get_user_solves({userId:e})},function(e){return m.default.api.get_user_fails({userId:e})},function(e){return m.default.api.get_user_awards({userId:e})}]};(0,u.default)(function(){var e,t,o,n;(0,u.default)("#team-captain-form").submit(function(e){e.preventDefault();var t=(0,u.default)("#team-captain-form").serializeJSON(!0);m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#team-captain-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-captain-form > #results").append((0,i.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-captain-form").find("select[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}),(0,u.default)(".edit-team").click(function(e){(0,u.default)("#team-info-edit-modal").modal("toggle")}),(0,u.default)(".edit-captain").click(function(e){(0,u.default)("#team-captain-modal").modal("toggle")}),(0,u.default)(".award-team").click(function(e){(0,u.default)("#team-award-modal").modal("toggle")}),(0,u.default)(".addresses-team").click(function(e){(0,u.default)("#team-addresses-modal").modal("toggle")}),(0,u.default)("#user-award-form").submit(function(e){e.preventDefault();var t=(0,u.default)("#user-award-form").serializeJSON(!0);t.user_id=(0,u.default)("#award-member-input").val(),t.team_id=window.TEAM_ID,(0,u.default)("#user-award-form > #results").empty(),t.user_id?(t.user_id=parseInt(t.user_id),m.default.fetch("/api/v1/awards",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#user-award-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#user-award-form > #results").append((0,i.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#user-award-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})):(0,u.default)("#user-award-form > #results").append((0,i.ezBadge)({type:"error",body:"Please select a team member"}))}),(0,u.default)(".delete-member").click(function(e){e.preventDefault();var t=(0,u.default)(this).attr("member-id"),o=(0,u.default)(this).attr("member-name"),n={user_id:t},a=(0,u.default)(this).parent().parent();(0,i.ezQuery)({title:"Remove Member",body:"Are you sure you want to remove {0} from {1}?

All of their challenges solves, attempts, awards, and unlocked hints will also be deleted!".format(""+(0,s.htmlEntities)(o)+"",""+(0,s.htmlEntities)(window.TEAM_NAME)+""),success:function(){m.default.fetch("/api/v1/teams/"+window.TEAM_ID+"/members",{method:"DELETE",body:JSON.stringify(n)}).then(function(e){return e.json()}).then(function(e){e.success&&a.remove()})}})}),(0,u.default)(".delete-team").click(function(e){(0,i.ezQuery)({title:"Delete Team",body:"Are you sure you want to delete {0}".format(""+(0,s.htmlEntities)(window.TEAM_NAME)+""),success:function(){m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"DELETE"}).then(function(e){return e.json()}).then(function(e){e.success&&(window.location=m.default.config.urlRoot+"/admin/teams")})}})}),(0,u.default)("#solves-delete-button").click(function(e){p(0,"solves")}),(0,u.default)("#fails-delete-button").click(function(e){p(0,"fails")}),(0,u.default)("#awards-delete-button").click(function(e){!function(){var l=(0,u.default)("input[data-award-id]:checked").map(function(){return(0,u.default)(this).data("award-id")}),e=1===l.length?"award":"awards";(0,i.ezQuery)({title:"Delete Awards",body:"Are you sure you want to delete ".concat(l.length," ").concat(e,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=l[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value,r=m.default.fetch("/api/v1/awards/"+i,{method:"DELETE",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"}});e.push(r)}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}()}),(0,u.default)("#missing-solve-button").click(function(e){!function(e){e.preventDefault();var c=(0,u.default)("input[data-missing-challenge-id]:checked").map(function(){return(0,u.default)(this).data("missing-challenge-id")}),t=1===c.length?"challenge":"challenges";(0,i.ezQuery)({title:"Mark Correct",body:"Are you sure you want to mark ".concat(c.length," ").concat(t," correct for ").concat((0,s.htmlEntities)(window.TEAM_NAME),"?"),success:function(){(0,i.ezAlert)({title:"User Attribution",body:"\n Which user on ".concat((0,s.htmlEntities)(window.TEAM_NAME),' solved these challenges?\n
\n ').concat((0,u.default)("#team-member-select").html(),"\n
\n "),button:"Mark Correct",success:function(){var e=(0,u.default)("#query-team-member-solve > select").val(),t=[],o=!0,n=!1,a=void 0;try{for(var s,i=c[Symbol.iterator]();!(o=(s=i.next()).done);o=!0){var r=s.value,l={provided:"MARKED AS SOLVED BY ADMIN",user_id:e,team_id:window.TEAM_ID,challenge_id:r,type:"correct"},d=m.default.fetch("/api/v1/submissions",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(l)});t.push(d)}}catch(e){n=!0,a=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw a}}Promise.all(t).then(function(e){window.location.reload()})}})}})}(e)}),(0,u.default)("#team-info-create-form").submit(r),(0,u.default)("#team-info-edit-form").submit(c);var a=window.stats_data;e=a.type,t=a.id,o=a.name,n=a.account_id,function(t,o,n,a){var e=d(f[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,l.createGraph)("score_graph","#score-graph",e,t,o,n,a),(0,l.createGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,l.createGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(e,t,o,n),setInterval(function(){!function(t,o,n,a){var e=d(f[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,l.updateGraph)("score_graph","#score-graph",e,t,o,n,a),(0,l.updateGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,l.updateGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(e,t,o,n)},3e5)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),a=l(o("./node_modules/jquery/dist/jquery.js")),s=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,a.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,a.default)("#media-modal").remove()}),(0,a.default)("#media-modal").modal()}function c(){(0,a.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new s.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,a.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,a.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,a.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,a.default)(":input").each(function(){(0,a.default)(this).data("initial",(0,a.default)(this).val())}),(0,a.default)(function(){(0,a.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,a.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,a.default)("[data-checkbox]").click(function(e){(0,a.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,a.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,a.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,a.default)(this).prop("checked"),o=(0,a.default)(this).index()+1;(0,a.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,a.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,a.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,a.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,a.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,a.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,a.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,a.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),a=d(o("./CTFd/themes/core/assets/js/config.js")),s=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new s.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var a=!1!==e.autohide,s=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:a,delay:i,animation:s}),o.toast("show"),o}function h(e){var t=s.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),a=(0,r.default)(u);return o.find(".modal-footer").append(a),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function j(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=s.format(e.title),a=(0,r.default)(n);return a.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(a),a.modal("show")}function _(e){var t={success:d,error:a}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:h,ezProgressBar:j,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,a=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var s=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=a.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=a.default.csrfNonce,s(e,t)}},"./CTFd/themes/core/assets/js/graphs.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.createGraph=function(e,t,o,n,a,s,i){var r=u[e],l=c.default.init(document.querySelector(t));l.setOption(r.format(n,a,s,i,o)),(0,d.default)(window).on("resize",function(){null!=l&&null!=l&&l.resize()})},t.updateGraph=function(e,t,o,n,a,s,i){var r=u[e];c.default.init(document.querySelector(t)).setOption(r.format(n,a,s,i,o))};var d=n(o("./node_modules/jquery/dist/jquery.js")),c=n(o("./node_modules/echarts/dist/echarts-en.common.js")),p=n(o("./node_modules/moment/moment.js")),f=o("./CTFd/themes/core/assets/js/utils.js");function n(e){return e&&e.__esModule?e:{default:e}}var u={score_graph:{format:function(e,t,o,n,a){var s={title:{left:"center",text:"Score over Time"},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{type:"scroll",orient:"horizontal",align:"left",bottom:0,data:[o]},toolbox:{feature:{saveAsImage:{}}},grid:{containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:[]}],yAxis:[{type:"value"}],series:[]},i=[],r=[],l=a[0].data,d=a[2].data,c=l.concat(d);c.sort(function(e,t){return new Date(e.date)-new Date(t.date)});for(var u=0;u>4*a&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(a){return function(e,t){var o=s(e,a),n=s(t,a);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-info-form > #results").append((0,d.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-info-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")})})}function _(e){e.preventDefault();var t=(0,u.default)("#team-info-edit-form").serializeJSON(!0);m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#team-info-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-info-form > #results").append((0,d.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-info-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function v(e,t){var o,n,a;switch(t){case"solves":o=(0,u.default)("input[data-submission-type=correct]:checked"),n="solve",a="Solves";break;case"fails":o=(0,u.default)("input[data-submission-type=incorrect]:checked"),n="fail",a="Fails"}var r=o.map(function(){return(0,u.default)(this).data("submission-id")}),s=1===r.length?n:n+"s";(0,d.ezQuery)({title:"Delete ".concat(a),body:"Are you sure you want to delete ".concat(r.length," ").concat(s,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=r[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value;e.push(m.default.api.delete_submission({submissionId:i}))}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}var g={team:[function(e){return m.default.api.get_team_solves({teamId:e})},function(e){return m.default.api.get_team_fails({teamId:e})},function(e){return m.default.api.get_team_awards({teamId:e})}],user:[function(e){return m.default.api.get_user_solves({userId:e})},function(e){return m.default.api.get_user_fails({userId:e})},function(e){return m.default.api.get_user_awards({userId:e})}]};(0,u.default)(function(){(0,u.default)("#team-captain-form").submit(function(e){e.preventDefault();var t=(0,u.default)("#team-captain-form").serializeJSON(!0);m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#team-captain-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#team-captain-form > #results").append((0,d.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#team-captain-form").find("select[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}),(0,u.default)(".edit-team").click(function(e){(0,u.default)("#team-info-edit-modal").modal("toggle")}),(0,u.default)(".edit-captain").click(function(e){(0,u.default)("#team-captain-modal").modal("toggle")}),(0,u.default)(".award-team").click(function(e){(0,u.default)("#team-award-modal").modal("toggle")}),(0,u.default)(".addresses-team").click(function(e){(0,u.default)("#team-addresses-modal").modal("toggle")}),(0,u.default)("#user-award-form").submit(function(e){e.preventDefault();var t=(0,u.default)("#user-award-form").serializeJSON(!0);t.user_id=(0,u.default)("#award-member-input").val(),t.team_id=window.TEAM_ID,(0,u.default)("#user-award-form > #results").empty(),t.user_id?(t.user_id=parseInt(t.user_id),m.default.fetch("/api/v1/awards",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,u.default)("#user-award-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,u.default)("#user-award-form > #results").append((0,d.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,u.default)("#user-award-form").find("input[name={0}]".format(e)),n=(0,u.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})):(0,u.default)("#user-award-form > #results").append((0,d.ezBadge)({type:"error",body:"Please select a team member"}))}),(0,u.default)(".delete-member").click(function(e){e.preventDefault();var t=(0,u.default)(this).attr("member-id"),o=(0,u.default)(this).attr("member-name"),n={user_id:t},a=(0,u.default)(this).parent().parent();(0,d.ezQuery)({title:"Remove Member",body:"Are you sure you want to remove {0} from {1}?

All of their challenges solves, attempts, awards, and unlocked hints will also be deleted!".format(""+(0,l.htmlEntities)(o)+"",""+(0,l.htmlEntities)(window.TEAM_NAME)+""),success:function(){m.default.fetch("/api/v1/teams/"+window.TEAM_ID+"/members",{method:"DELETE",body:JSON.stringify(n)}).then(function(e){return e.json()}).then(function(e){e.success&&a.remove()})}})}),(0,u.default)(".delete-team").click(function(e){(0,d.ezQuery)({title:"Delete Team",body:"Are you sure you want to delete {0}".format(""+(0,l.htmlEntities)(window.TEAM_NAME)+""),success:function(){m.default.fetch("/api/v1/teams/"+window.TEAM_ID,{method:"DELETE"}).then(function(e){return e.json()}).then(function(e){e.success&&(window.location=m.default.config.urlRoot+"/admin/teams")})}})}),(0,u.default)("#solves-delete-button").click(function(e){v(0,"solves")}),(0,u.default)("#fails-delete-button").click(function(e){v(0,"fails")}),(0,u.default)("#awards-delete-button").click(function(e){!function(){var l=(0,u.default)("input[data-award-id]:checked").map(function(){return(0,u.default)(this).data("award-id")}),e=1===l.length?"award":"awards";(0,d.ezQuery)({title:"Delete Awards",body:"Are you sure you want to delete ".concat(l.length," ").concat(e,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=l[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value,r=m.default.fetch("/api/v1/awards/"+i,{method:"DELETE",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"}});e.push(r)}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}()}),(0,u.default)("#missing-solve-button").click(function(e){!function(e){e.preventDefault();var c=(0,u.default)("input[data-missing-challenge-id]:checked").map(function(){return(0,u.default)(this).data("missing-challenge-id")}),t=1===c.length?"challenge":"challenges";(0,d.ezQuery)({title:"Mark Correct",body:"Are you sure you want to mark ".concat(c.length," ").concat(t," correct for ").concat((0,l.htmlEntities)(window.TEAM_NAME),"?"),success:function(){(0,d.ezAlert)({title:"User Attribution",body:"\n Which user on ".concat((0,l.htmlEntities)(window.TEAM_NAME),' solved these challenges?\n
\n ').concat((0,u.default)("#team-member-select").html(),"\n
\n "),button:"Mark Correct",success:function(){var e=(0,u.default)("#query-team-member-solve > select").val(),t=[],o=!0,n=!1,a=void 0;try{for(var s,i=c[Symbol.iterator]();!(o=(s=i.next()).done);o=!0){var r=s.value,l={provided:"MARKED AS SOLVED BY ADMIN",user_id:e,team_id:window.TEAM_ID,challenge_id:r,type:"correct"},d=m.default.fetch("/api/v1/submissions",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(l)});t.push(d)}}catch(e){n=!0,a=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw a}}Promise.all(t).then(function(e){window.location.reload()})}})}})}(e)}),(0,u.default)("#team-info-create-form").submit(h),(0,u.default)("#team-info-edit-form").submit(_);var t,o,n,a,e=p.default.extend(f.default),s=document.createElement("div");document.querySelector("#comment-box").appendChild(s),new e({propsData:{type:"team",id:window.TEAM_ID}}).$mount(s);var i,r=window.stats_data;t=r.type,o=r.id,n=r.name,a=r.account_id,(0,u.default)("#team-statistics-modal").on("shown.bs.modal",function(e){!function(t,o,n,a){var e=j(g[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,c.createGraph)("score_graph","#score-graph",e,t,o,n,a),(0,c.createGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,c.createGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(t,o,n,a),i=setInterval(function(){!function(t,o,n,a){var e=j(g[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,c.updateGraph)("score_graph","#score-graph",e,t,o,n,a),(0,c.updateGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,c.updateGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(t,o,n,a)},3e5)}),(0,u.default)("#team-statistics-modal").on("hidden.bs.modal",function(e){clearInterval(i)}),(0,u.default)(".statistics-team").click(function(e){(0,u.default)("#team-statistics-modal").modal("toggle")})})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),a=l(o("./node_modules/jquery/dist/jquery.js")),s=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,a.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,a.default)("#media-modal").remove()}),(0,a.default)("#media-modal").modal()}function c(){(0,a.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new s.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,a.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,a.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,a.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,a.default)(":input").each(function(){(0,a.default)(this).data("initial",(0,a.default)(this).val())}),(0,a.default)(function(){(0,a.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,a.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,a.default)("[data-checkbox]").click(function(e){(0,a.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,a.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,a.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,a.default)(this).prop("checked"),o=(0,a.default)(this).index()+1;(0,a.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,a.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,a.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,a.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,a.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,a.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,a.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,a.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),a=d(o("./CTFd/themes/core/assets/js/config.js")),s=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new s.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var a=!1!==e.autohide,s=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:a,delay:i,animation:s}),o.toast("show"),o}function j(e){var t=s.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),a=(0,r.default)(u);return o.find(".modal-footer").append(a),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=s.format(e.title),a=(0,r.default)(n);return a.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(a),a.modal("show")}function _(e){var t={success:d,error:a}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,a=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var s=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=a.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=a.default.csrfNonce,s(e,t)}},"./CTFd/themes/core/assets/js/graphs.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.createGraph=function(e,t,o,n,a,s,i){var r=u[e],l=c.default.init(document.querySelector(t));l.setOption(r.format(n,a,s,i,o)),(0,d.default)(window).on("resize",function(){null!=l&&null!=l&&l.resize()})},t.updateGraph=function(e,t,o,n,a,s,i){var r=u[e];c.default.init(document.querySelector(t)).setOption(r.format(n,a,s,i,o))},t.disposeGraph=function(e){c.default.dispose(document.querySelector(e))};var d=n(o("./node_modules/jquery/dist/jquery.js")),c=n(o("./node_modules/echarts/dist/echarts-en.common.js")),p=n(o("./node_modules/moment/moment.js")),f=o("./CTFd/themes/core/assets/js/utils.js");function n(e){return e&&e.__esModule?e:{default:e}}var u={score_graph:{format:function(e,t,o,n,a){var s={title:{left:"center",text:"Score over Time"},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{type:"scroll",orient:"horizontal",align:"left",bottom:0,data:[o]},toolbox:{feature:{saveAsImage:{}}},grid:{containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:[]}],yAxis:[{type:"value"}],series:[]},i=[],r=[],l=a[0].data,d=a[2].data,c=l.concat(d);c.sort(function(e,t){return new Date(e.date)-new Date(t.date)});for(var u=0;u>4*a&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(a){return function(e,t){var o=s(e,a),n=s(t,a);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,c.default)("#teams-bulk-edit").serializeJSON(!0),t=[],o=!0,n=!1,s=void 0;try{for(var a,i=r[Symbol.iterator]();!(o=(a=i.next()).done);o=!0){var l=a.value;t.push(d.default.fetch("/api/v1/teams/".concat(l),{method:"PATCH",body:JSON.stringify(e)}))}}catch(e){n=!0,s=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}Promise.all(t).then(function(e){window.location.reload()})}})}(0,c.default)(function(){(0,c.default)("#teams-delete-button").click(a),(0,c.default)("#teams-edit-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=r(o("./node_modules/jquery/dist/jquery.js")),a=r(o("./node_modules/easymde/src/js/easymde.js")),i=r(o("./node_modules/vue/dist/vue.esm.browser.js")),l=r(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function r(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(l.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),l=d(o("./node_modules/jquery/dist/jquery.js")),r=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:r.default},f={$:l.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,c.default)("#teams-bulk-edit").serializeJSON(!0),t=[],o=!0,n=!1,s=void 0;try{for(var a,i=l[Symbol.iterator]();!(o=(a=i.next()).done);o=!0){var r=a.value;t.push(d.default.fetch("/api/v1/teams/".concat(r),{method:"PATCH",body:JSON.stringify(e)}))}}catch(e){n=!0,s=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}Promise.all(t).then(function(e){window.location.reload()})}})}(0,c.default)(function(){(0,c.default)("#teams-delete-button").click(a),(0,c.default)("#teams-edit-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),a=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var m=new a.API("/"),u={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(u),s=(0,r.default)(m);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-info-create-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction updateUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-info-edit-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-info-edit-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-info-edit-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-info-edit-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteUser(event) {\n event.preventDefault();\n (0, _ezq.ezQuery)({\n title: \"Delete User\",\n body: \"Are you sure you want to delete {0}\".format(\"\" + (0, _utils.htmlEntities)(window.USER_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location = _CTFd.default.config.urlRoot + \"/admin/users\";\n }\n });\n }\n });\n}\n\nfunction awardUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-award-form\").serializeJSON(true);\n params[\"user_id\"] = window.USER_ID;\n\n _CTFd.default.fetch(\"/api/v1/awards\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-award-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction emailUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-mail-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID + \"/email\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n (0, _jquery.default)(\"#user-mail-form > #results\").append((0, _ezq.ezBadge)({\n type: \"success\",\n body: \"E-Mail sent successfully!\"\n }));\n (0, _jquery.default)(\"#user-mail-form\").find(\"input[type=text], textarea\").val(\"\");\n } else {\n (0, _jquery.default)(\"#user-mail-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-mail-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-mail-form\").find(\"input[name={0}], textarea[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(event, target) {\n var submissions;\n var type;\n var title;\n\n switch (target) {\n case \"solves\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=correct]:checked\");\n type = \"solve\";\n title = \"Solves\";\n break;\n\n case \"fails\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=incorrect]:checked\");\n type = \"fail\";\n title = \"Fails\";\n break;\n\n default:\n break;\n }\n\n var submissionIDs = submissions.map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target_string = submissionIDs.length === 1 ? type : type + \"s\";\n (0, _ezq.ezQuery)({\n title: \"Delete \".concat(title),\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target_string, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction deleteSelectedAwards(_event) {\n var awardIDs = (0, _jquery.default)(\"input[data-award-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"award-id\");\n });\n var target = awardIDs.length === 1 ? \"award\" : \"awards\";\n (0, _ezq.ezQuery)({\n title: \"Delete Awards\",\n body: \"Are you sure you want to delete \".concat(awardIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = awardIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var awardID = _step2.value;\n\n var req = _CTFd.default.fetch(\"/api/v1/awards/\" + awardID, {\n method: \"DELETE\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction solveSelectedMissingChallenges(event) {\n event.preventDefault();\n var challengeIDs = (0, _jquery.default)(\"input[data-missing-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"missing-challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Mark Correct\",\n body: \"Are you sure you want to mark \".concat(challengeIDs.length, \" \").concat(target, \" correct for \").concat((0, _utils.htmlEntities)(window.USER_NAME), \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = challengeIDs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var challengeID = _step3.value;\n var params = {\n provided: \"MARKED AS SOLVED BY ADMIN\",\n user_id: window.USER_ID,\n team_id: window.TEAM_ID,\n challenge_id: challengeID,\n type: \"correct\"\n };\n\n var req = _CTFd.default.fetch(\"/api/v1/submissions\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nvar api_funcs = {\n team: [function (x) {\n return _CTFd.default.api.get_team_solves({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_fails({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_awards({\n teamId: x\n });\n }],\n user: [function (x) {\n return _CTFd.default.api.get_user_solves({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_fails({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_awards({\n userId: x\n });\n }]\n};\n\nvar createGraphs = function createGraphs(type, id, name, account_id) {\n var _api_funcs$type = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type[0],\n fails_func = _api_funcs$type[1],\n awards_func = _api_funcs$type[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.createGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\nvar updateGraphs = function updateGraphs(type, id, name, account_id) {\n var _api_funcs$type2 = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type2[0],\n fails_func = _api_funcs$type2[1],\n awards_func = _api_funcs$type2[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.updateGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".delete-user\").click(deleteUser);\n (0, _jquery.default)(\".edit-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-info-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".award-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-award-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".email-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-email-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".addresses-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-addresses-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\"#user-mail-form\").submit(emailUser);\n (0, _jquery.default)(\"#solves-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"solves\");\n });\n (0, _jquery.default)(\"#fails-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"fails\");\n });\n (0, _jquery.default)(\"#awards-delete-button\").click(function (e) {\n deleteSelectedAwards(e);\n });\n (0, _jquery.default)(\"#missing-solve-button\").click(function (e) {\n solveSelectedMissingChallenges(e);\n });\n (0, _jquery.default)(\"#user-info-create-form\").submit(createUser);\n (0, _jquery.default)(\"#user-info-edit-form\").submit(updateUser);\n (0, _jquery.default)(\"#user-award-form\").submit(awardUser);\n var type, id, name, account_id;\n var _window$stats_data = window.stats_data;\n type = _window$stats_data.type;\n id = _window$stats_data.id;\n name = _window$stats_data.name;\n account_id = _window$stats_data.account_id;\n createGraphs(type, id, name, account_id);\n setInterval(function () {\n updateGraphs(type, id, name, account_id);\n }, 300000);\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/user.js?"); +eval("\n\n__webpack_require__(/*! ./main */ \"./CTFd/themes/admin/assets/js/pages/main.js\");\n\nvar _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\"));\n\nvar _CTFd = _interopRequireDefault(__webpack_require__(/*! core/CTFd */ \"./CTFd/themes/core/assets/js/CTFd.js\"));\n\nvar _utils = __webpack_require__(/*! core/utils */ \"./CTFd/themes/core/assets/js/utils.js\");\n\nvar _ezq = __webpack_require__(/*! core/ezq */ \"./CTFd/themes/core/assets/js/ezq.js\");\n\nvar _graphs = __webpack_require__(/*! core/graphs */ \"./CTFd/themes/core/assets/js/graphs.js\");\n\nvar _vueEsm = _interopRequireDefault(__webpack_require__(/*! vue/dist/vue.esm.browser */ \"./node_modules/vue/dist/vue.esm.browser.js\"));\n\nvar _CommentBox = _interopRequireDefault(__webpack_require__(/*! ../components/comments/CommentBox.vue */ \"./CTFd/themes/admin/assets/js/components/comments/CommentBox.vue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction createUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-info-create-form\").serializeJSON(true); // Move the notify value into a GET param\n\n var url = \"/api/v1/users\";\n var notify = params.notify;\n\n if (notify === true) {\n url = \"\".concat(url, \"?notify=true\");\n }\n\n delete params.notify;\n\n _CTFd.default.fetch(url, {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n var user_id = response.data.id;\n window.location = _CTFd.default.config.urlRoot + \"/admin/users/\" + user_id;\n } else {\n (0, _jquery.default)(\"#user-info-create-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-info-create-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-info-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction updateUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-info-edit-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID, {\n method: \"PATCH\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-info-edit-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-info-edit-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-info-edit-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteUser(event) {\n event.preventDefault();\n (0, _ezq.ezQuery)({\n title: \"Delete User\",\n body: \"Are you sure you want to delete {0}\".format(\"\" + (0, _utils.htmlEntities)(window.USER_NAME) + \"\"),\n success: function success() {\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID, {\n method: \"DELETE\"\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location = _CTFd.default.config.urlRoot + \"/admin/users\";\n }\n });\n }\n });\n}\n\nfunction awardUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-award-form\").serializeJSON(true);\n params[\"user_id\"] = window.USER_ID;\n\n _CTFd.default.fetch(\"/api/v1/awards\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n window.location.reload();\n } else {\n (0, _jquery.default)(\"#user-award-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-award-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-award-form\").find(\"input[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction emailUser(event) {\n event.preventDefault();\n var params = (0, _jquery.default)(\"#user-mail-form\").serializeJSON(true);\n\n _CTFd.default.fetch(\"/api/v1/users/\" + window.USER_ID + \"/email\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n }).then(function (response) {\n return response.json();\n }).then(function (response) {\n if (response.success) {\n (0, _jquery.default)(\"#user-mail-form > #results\").append((0, _ezq.ezBadge)({\n type: \"success\",\n body: \"E-Mail sent successfully!\"\n }));\n (0, _jquery.default)(\"#user-mail-form\").find(\"input[type=text], textarea\").val(\"\");\n } else {\n (0, _jquery.default)(\"#user-mail-form > #results\").empty();\n Object.keys(response.errors).forEach(function (key, _index) {\n (0, _jquery.default)(\"#user-mail-form > #results\").append((0, _ezq.ezBadge)({\n type: \"error\",\n body: response.errors[key]\n }));\n var i = (0, _jquery.default)(\"#user-mail-form\").find(\"input[name={0}], textarea[name={0}]\".format(key));\n var input = (0, _jquery.default)(i);\n input.addClass(\"input-filled-invalid\");\n input.removeClass(\"input-filled-valid\");\n });\n }\n });\n}\n\nfunction deleteSelectedSubmissions(event, target) {\n var submissions;\n var type;\n var title;\n\n switch (target) {\n case \"solves\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=correct]:checked\");\n type = \"solve\";\n title = \"Solves\";\n break;\n\n case \"fails\":\n submissions = (0, _jquery.default)(\"input[data-submission-type=incorrect]:checked\");\n type = \"fail\";\n title = \"Fails\";\n break;\n\n default:\n break;\n }\n\n var submissionIDs = submissions.map(function () {\n return (0, _jquery.default)(this).data(\"submission-id\");\n });\n var target_string = submissionIDs.length === 1 ? type : type + \"s\";\n (0, _ezq.ezQuery)({\n title: \"Delete \".concat(title),\n body: \"Are you sure you want to delete \".concat(submissionIDs.length, \" \").concat(target_string, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = submissionIDs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subId = _step.value;\n reqs.push(_CTFd.default.api.delete_submission({\n submissionId: subId\n }));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction deleteSelectedAwards(_event) {\n var awardIDs = (0, _jquery.default)(\"input[data-award-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"award-id\");\n });\n var target = awardIDs.length === 1 ? \"award\" : \"awards\";\n (0, _ezq.ezQuery)({\n title: \"Delete Awards\",\n body: \"Are you sure you want to delete \".concat(awardIDs.length, \" \").concat(target, \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = awardIDs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var awardID = _step2.value;\n\n var req = _CTFd.default.fetch(\"/api/v1/awards/\" + awardID, {\n method: \"DELETE\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nfunction solveSelectedMissingChallenges(event) {\n event.preventDefault();\n var challengeIDs = (0, _jquery.default)(\"input[data-missing-challenge-id]:checked\").map(function () {\n return (0, _jquery.default)(this).data(\"missing-challenge-id\");\n });\n var target = challengeIDs.length === 1 ? \"challenge\" : \"challenges\";\n (0, _ezq.ezQuery)({\n title: \"Mark Correct\",\n body: \"Are you sure you want to mark \".concat(challengeIDs.length, \" \").concat(target, \" correct for \").concat((0, _utils.htmlEntities)(window.USER_NAME), \"?\"),\n success: function success() {\n var reqs = [];\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = challengeIDs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var challengeID = _step3.value;\n var params = {\n provided: \"MARKED AS SOLVED BY ADMIN\",\n user_id: window.USER_ID,\n team_id: window.TEAM_ID,\n challenge_id: challengeID,\n type: \"correct\"\n };\n\n var req = _CTFd.default.fetch(\"/api/v1/submissions\", {\n method: \"POST\",\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(params)\n });\n\n reqs.push(req);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n Promise.all(reqs).then(function (_responses) {\n window.location.reload();\n });\n }\n });\n}\n\nvar api_funcs = {\n team: [function (x) {\n return _CTFd.default.api.get_team_solves({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_fails({\n teamId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_team_awards({\n teamId: x\n });\n }],\n user: [function (x) {\n return _CTFd.default.api.get_user_solves({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_fails({\n userId: x\n });\n }, function (x) {\n return _CTFd.default.api.get_user_awards({\n userId: x\n });\n }]\n};\n\nvar createGraphs = function createGraphs(type, id, name, account_id) {\n var _api_funcs$type = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type[0],\n fails_func = _api_funcs$type[1],\n awards_func = _api_funcs$type[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.createGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.createGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\nvar updateGraphs = function updateGraphs(type, id, name, account_id) {\n var _api_funcs$type2 = _slicedToArray(api_funcs[type], 3),\n solves_func = _api_funcs$type2[0],\n fails_func = _api_funcs$type2[1],\n awards_func = _api_funcs$type2[2];\n\n Promise.all([solves_func(account_id), fails_func(account_id), awards_func(account_id)]).then(function (responses) {\n (0, _graphs.updateGraph)(\"score_graph\", \"#score-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"category_breakdown\", \"#categories-pie-graph\", responses, type, id, name, account_id);\n (0, _graphs.updateGraph)(\"solve_percentages\", \"#keys-pie-graph\", responses, type, id, name, account_id);\n });\n};\n\n(0, _jquery.default)(function () {\n (0, _jquery.default)(\".delete-user\").click(deleteUser);\n (0, _jquery.default)(\".edit-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-info-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".award-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-award-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".email-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-email-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\".addresses-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-addresses-modal\").modal(\"toggle\");\n });\n (0, _jquery.default)(\"#user-mail-form\").submit(emailUser);\n (0, _jquery.default)(\"#solves-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"solves\");\n });\n (0, _jquery.default)(\"#fails-delete-button\").click(function (e) {\n deleteSelectedSubmissions(e, \"fails\");\n });\n (0, _jquery.default)(\"#awards-delete-button\").click(function (e) {\n deleteSelectedAwards(e);\n });\n (0, _jquery.default)(\"#missing-solve-button\").click(function (e) {\n solveSelectedMissingChallenges(e);\n });\n (0, _jquery.default)(\"#user-info-create-form\").submit(createUser);\n (0, _jquery.default)(\"#user-info-edit-form\").submit(updateUser);\n (0, _jquery.default)(\"#user-award-form\").submit(awardUser); // Insert CommentBox element\n\n var commentBox = _vueEsm.default.extend(_CommentBox.default);\n\n var vueContainer = document.createElement(\"div\");\n document.querySelector(\"#comment-box\").appendChild(vueContainer);\n new commentBox({\n propsData: {\n type: \"user\",\n id: window.USER_ID\n }\n }).$mount(vueContainer);\n var type, id, name, account_id;\n var _window$stats_data = window.stats_data;\n type = _window$stats_data.type;\n id = _window$stats_data.id;\n name = _window$stats_data.name;\n account_id = _window$stats_data.account_id;\n var intervalId;\n (0, _jquery.default)(\"#user-statistics-modal\").on(\"shown.bs.modal\", function (_e) {\n createGraphs(type, id, name, account_id);\n intervalId = setInterval(function () {\n updateGraphs(type, id, name, account_id);\n }, 300000);\n });\n (0, _jquery.default)(\"#user-statistics-modal\").on(\"hidden.bs.modal\", function (_e) {\n clearInterval(intervalId);\n });\n (0, _jquery.default)(\".statistics-user\").click(function (_event) {\n (0, _jquery.default)(\"#user-statistics-modal\").modal(\"toggle\");\n });\n});\n\n//# sourceURL=webpack:///./CTFd/themes/admin/assets/js/pages/user.js?"); /***/ }) diff --git a/CTFd/themes/admin/static/js/pages/user.min.js b/CTFd/themes/admin/static/js/pages/user.min.js index 5020cab0..dc1e56bb 100644 --- a/CTFd/themes/admin/static/js/pages/user.min.js +++ b/CTFd/themes/admin/static/js/pages/user.min.js @@ -1 +1 @@ -!function(l){function e(e){for(var t,o,n=e[0],a=e[1],s=e[2],i=0,r=[];i #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,i.default)("#user-info-create-form > #results").append((0,u.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,i.default)("#user-info-form").find("input[name={0}]".format(e)),n=(0,i.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")})})}function m(e){e.preventDefault();var t=(0,i.default)("#user-info-edit-form").serializeJSON(!0);c.default.fetch("/api/v1/users/"+window.USER_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,i.default)("#user-info-edit-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,i.default)("#user-info-edit-form > #results").append((0,u.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,i.default)("#user-info-edit-form").find("input[name={0}]".format(e)),n=(0,i.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function p(e){e.preventDefault(),(0,u.ezQuery)({title:"Delete User",body:"Are you sure you want to delete {0}".format(""+(0,s.htmlEntities)(window.USER_NAME)+""),success:function(){c.default.fetch("/api/v1/users/"+window.USER_ID,{method:"DELETE"}).then(function(e){return e.json()}).then(function(e){e.success&&(window.location=c.default.config.urlRoot+"/admin/users")})}})}function f(e){e.preventDefault();var t=(0,i.default)("#user-award-form").serializeJSON(!0);t.user_id=window.USER_ID,c.default.fetch("/api/v1/awards",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?window.location.reload():((0,i.default)("#user-award-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,i.default)("#user-award-form > #results").append((0,u.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,i.default)("#user-award-form").find("input[name={0}]".format(e)),n=(0,i.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function h(e){e.preventDefault();var t=(0,i.default)("#user-mail-form").serializeJSON(!0);c.default.fetch("/api/v1/users/"+window.USER_ID+"/email",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(a){a.success?((0,i.default)("#user-mail-form > #results").append((0,u.ezBadge)({type:"success",body:"E-Mail sent successfully!"})),(0,i.default)("#user-mail-form").find("input[type=text], textarea").val("")):((0,i.default)("#user-mail-form > #results").empty(),Object.keys(a.errors).forEach(function(e,t){(0,i.default)("#user-mail-form > #results").append((0,u.ezBadge)({type:"error",body:a.errors[e]}));var o=(0,i.default)("#user-mail-form").find("input[name={0}], textarea[name={0}]".format(e)),n=(0,i.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function j(e,t){var o,n,a;switch(t){case"solves":o=(0,i.default)("input[data-submission-type=correct]:checked"),n="solve",a="Solves";break;case"fails":o=(0,i.default)("input[data-submission-type=incorrect]:checked"),n="fail",a="Fails"}var r=o.map(function(){return(0,i.default)(this).data("submission-id")}),s=1===r.length?n:n+"s";(0,u.ezQuery)({title:"Delete ".concat(a),body:"Are you sure you want to delete ".concat(r.length," ").concat(s,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=r[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value;e.push(c.default.api.delete_submission({submissionId:i}))}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}var _={team:[function(e){return c.default.api.get_team_solves({teamId:e})},function(e){return c.default.api.get_team_fails({teamId:e})},function(e){return c.default.api.get_team_awards({teamId:e})}],user:[function(e){return c.default.api.get_user_solves({userId:e})},function(e){return c.default.api.get_user_fails({userId:e})},function(e){return c.default.api.get_user_awards({userId:e})}]};(0,i.default)(function(){var e,t,o,n;(0,i.default)(".delete-user").click(p),(0,i.default)(".edit-user").click(function(e){(0,i.default)("#user-info-modal").modal("toggle")}),(0,i.default)(".award-user").click(function(e){(0,i.default)("#user-award-modal").modal("toggle")}),(0,i.default)(".email-user").click(function(e){(0,i.default)("#user-email-modal").modal("toggle")}),(0,i.default)(".addresses-user").click(function(e){(0,i.default)("#user-addresses-modal").modal("toggle")}),(0,i.default)("#user-mail-form").submit(h),(0,i.default)("#solves-delete-button").click(function(e){j(0,"solves")}),(0,i.default)("#fails-delete-button").click(function(e){j(0,"fails")}),(0,i.default)("#awards-delete-button").click(function(e){!function(){var l=(0,i.default)("input[data-award-id]:checked").map(function(){return(0,i.default)(this).data("award-id")}),e=1===l.length?"award":"awards";(0,u.ezQuery)({title:"Delete Awards",body:"Are you sure you want to delete ".concat(l.length," ").concat(e,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=l[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value,r=c.default.fetch("/api/v1/awards/"+i,{method:"DELETE",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"}});e.push(r)}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}()}),(0,i.default)("#missing-solve-button").click(function(e){!function(e){e.preventDefault();var d=(0,i.default)("input[data-missing-challenge-id]:checked").map(function(){return(0,i.default)(this).data("missing-challenge-id")}),t=1===d.length?"challenge":"challenges";(0,u.ezQuery)({title:"Mark Correct",body:"Are you sure you want to mark ".concat(d.length," ").concat(t," correct for ").concat((0,s.htmlEntities)(window.USER_NAME),"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var a,s=d[Symbol.iterator]();!(t=(a=s.next()).done);t=!0){var i=a.value,r={provided:"MARKED AS SOLVED BY ADMIN",user_id:window.USER_ID,team_id:window.TEAM_ID,challenge_id:i,type:"correct"},l=c.default.fetch("/api/v1/submissions",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r)});e.push(l)}}catch(e){o=!0,n=e}finally{try{t||null==s.return||s.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}(e)}),(0,i.default)("#user-info-create-form").submit(r),(0,i.default)("#user-info-edit-form").submit(m),(0,i.default)("#user-award-form").submit(f);var a=window.stats_data;e=a.type,t=a.id,o=a.name,n=a.account_id,function(t,o,n,a){var e=d(_[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,l.createGraph)("score_graph","#score-graph",e,t,o,n,a),(0,l.createGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,l.createGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(e,t,o,n),setInterval(function(){!function(t,o,n,a){var e=d(_[t],3),s=e[0],i=e[1],r=e[2];Promise.all([s(a),i(a),r(a)]).then(function(e){(0,l.updateGraph)("score_graph","#score-graph",e,t,o,n,a),(0,l.updateGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,a),(0,l.updateGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,a)})}(e,t,o,n)},3e5)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),a=l(o("./node_modules/jquery/dist/jquery.js")),s=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,a.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,a.default)("#media-modal").remove()}),(0,a.default)("#media-modal").modal()}function c(){(0,a.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new s.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,a.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,a.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,a.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,a.default)(":input").each(function(){(0,a.default)(this).data("initial",(0,a.default)(this).val())}),(0,a.default)(function(){(0,a.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,a.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,a.default)("[data-checkbox]").click(function(e){(0,a.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,a.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,a.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,a.default)(this).prop("checked"),o=(0,a.default)(this).index()+1;(0,a.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,a.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,a.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,a.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,a.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,a.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,a.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,a.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),a=d(o("./CTFd/themes/core/assets/js/config.js")),s=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new s.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var a=!1!==e.autohide,s=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:a,delay:i,animation:s}),o.toast("show"),o}function h(e){var t=s.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),a=(0,r.default)(u);return o.find(".modal-footer").append(a),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function j(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=s.format(e.title),a=(0,r.default)(n);return a.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(a),a.modal("show")}function _(e){var t={success:d,error:a}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:h,ezProgressBar:j,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,a=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var s=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=a.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=a.default.csrfNonce,s(e,t)}},"./CTFd/themes/core/assets/js/graphs.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.createGraph=function(e,t,o,n,a,s,i){var r=u[e],l=c.default.init(document.querySelector(t));l.setOption(r.format(n,a,s,i,o)),(0,d.default)(window).on("resize",function(){null!=l&&null!=l&&l.resize()})},t.updateGraph=function(e,t,o,n,a,s,i){var r=u[e];c.default.init(document.querySelector(t)).setOption(r.format(n,a,s,i,o))};var d=n(o("./node_modules/jquery/dist/jquery.js")),c=n(o("./node_modules/echarts/dist/echarts-en.common.js")),p=n(o("./node_modules/moment/moment.js")),f=o("./CTFd/themes/core/assets/js/utils.js");function n(e){return e&&e.__esModule?e:{default:e}}var u={score_graph:{format:function(e,t,o,n,a){var s={title:{left:"center",text:"Score over Time"},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{type:"scroll",orient:"horizontal",align:"left",bottom:0,data:[o]},toolbox:{feature:{saveAsImage:{}}},grid:{containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:[]}],yAxis:[{type:"value"}],series:[]},i=[],r=[],l=a[0].data,d=a[2].data,c=l.concat(d);c.sort(function(e,t){return new Date(e.date)-new Date(t.date)});for(var u=0;u>4*a&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(a){return function(e,t){var o=s(e,a),n=s(t,a);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o #results").empty(),Object.keys(s.errors).forEach(function(e,t){(0,c.default)("#user-info-create-form > #results").append((0,m.ezBadge)({type:"error",body:s.errors[e]}));var o=(0,c.default)("#user-info-form").find("input[name={0}]".format(e)),n=(0,c.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")})})}function _(e){e.preventDefault();var t=(0,c.default)("#user-info-edit-form").serializeJSON(!0);u.default.fetch("/api/v1/users/"+window.USER_ID,{method:"PATCH",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(s){s.success?window.location.reload():((0,c.default)("#user-info-edit-form > #results").empty(),Object.keys(s.errors).forEach(function(e,t){(0,c.default)("#user-info-edit-form > #results").append((0,m.ezBadge)({type:"error",body:s.errors[e]}));var o=(0,c.default)("#user-info-edit-form").find("input[name={0}]".format(e)),n=(0,c.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function v(e){e.preventDefault(),(0,m.ezQuery)({title:"Delete User",body:"Are you sure you want to delete {0}".format(""+(0,l.htmlEntities)(window.USER_NAME)+""),success:function(){u.default.fetch("/api/v1/users/"+window.USER_ID,{method:"DELETE"}).then(function(e){return e.json()}).then(function(e){e.success&&(window.location=u.default.config.urlRoot+"/admin/users")})}})}function g(e){e.preventDefault();var t=(0,c.default)("#user-award-form").serializeJSON(!0);t.user_id=window.USER_ID,u.default.fetch("/api/v1/awards",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(s){s.success?window.location.reload():((0,c.default)("#user-award-form > #results").empty(),Object.keys(s.errors).forEach(function(e,t){(0,c.default)("#user-award-form > #results").append((0,m.ezBadge)({type:"error",body:s.errors[e]}));var o=(0,c.default)("#user-award-form").find("input[name={0}]".format(e)),n=(0,c.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function y(e){e.preventDefault();var t=(0,c.default)("#user-mail-form").serializeJSON(!0);u.default.fetch("/api/v1/users/"+window.USER_ID+"/email",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(s){s.success?((0,c.default)("#user-mail-form > #results").append((0,m.ezBadge)({type:"success",body:"E-Mail sent successfully!"})),(0,c.default)("#user-mail-form").find("input[type=text], textarea").val("")):((0,c.default)("#user-mail-form > #results").empty(),Object.keys(s.errors).forEach(function(e,t){(0,c.default)("#user-mail-form > #results").append((0,m.ezBadge)({type:"error",body:s.errors[e]}));var o=(0,c.default)("#user-mail-form").find("input[name={0}], textarea[name={0}]".format(e)),n=(0,c.default)(o);n.addClass("input-filled-invalid"),n.removeClass("input-filled-valid")}))})}function b(e,t){var o,n,s;switch(t){case"solves":o=(0,c.default)("input[data-submission-type=correct]:checked"),n="solve",s="Solves";break;case"fails":o=(0,c.default)("input[data-submission-type=incorrect]:checked"),n="fail",s="Fails"}var r=o.map(function(){return(0,c.default)(this).data("submission-id")}),a=1===r.length?n:n+"s";(0,m.ezQuery)({title:"Delete ".concat(s),body:"Are you sure you want to delete ".concat(r.length," ").concat(a,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var s,a=r[Symbol.iterator]();!(t=(s=a.next()).done);t=!0){var i=s.value;e.push(u.default.api.delete_submission({submissionId:i}))}}catch(e){o=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}var T={team:[function(e){return u.default.api.get_team_solves({teamId:e})},function(e){return u.default.api.get_team_fails({teamId:e})},function(e){return u.default.api.get_team_awards({teamId:e})}],user:[function(e){return u.default.api.get_user_solves({userId:e})},function(e){return u.default.api.get_user_fails({userId:e})},function(e){return u.default.api.get_user_awards({userId:e})}]};(0,c.default)(function(){(0,c.default)(".delete-user").click(v),(0,c.default)(".edit-user").click(function(e){(0,c.default)("#user-info-modal").modal("toggle")}),(0,c.default)(".award-user").click(function(e){(0,c.default)("#user-award-modal").modal("toggle")}),(0,c.default)(".email-user").click(function(e){(0,c.default)("#user-email-modal").modal("toggle")}),(0,c.default)(".addresses-user").click(function(e){(0,c.default)("#user-addresses-modal").modal("toggle")}),(0,c.default)("#user-mail-form").submit(y),(0,c.default)("#solves-delete-button").click(function(e){b(0,"solves")}),(0,c.default)("#fails-delete-button").click(function(e){b(0,"fails")}),(0,c.default)("#awards-delete-button").click(function(e){!function(){var l=(0,c.default)("input[data-award-id]:checked").map(function(){return(0,c.default)(this).data("award-id")}),e=1===l.length?"award":"awards";(0,m.ezQuery)({title:"Delete Awards",body:"Are you sure you want to delete ".concat(l.length," ").concat(e,"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var s,a=l[Symbol.iterator]();!(t=(s=a.next()).done);t=!0){var i=s.value,r=u.default.fetch("/api/v1/awards/"+i,{method:"DELETE",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"}});e.push(r)}}catch(e){o=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}()}),(0,c.default)("#missing-solve-button").click(function(e){!function(e){e.preventDefault();var d=(0,c.default)("input[data-missing-challenge-id]:checked").map(function(){return(0,c.default)(this).data("missing-challenge-id")}),t=1===d.length?"challenge":"challenges";(0,m.ezQuery)({title:"Mark Correct",body:"Are you sure you want to mark ".concat(d.length," ").concat(t," correct for ").concat((0,l.htmlEntities)(window.USER_NAME),"?"),success:function(){var e=[],t=!0,o=!1,n=void 0;try{for(var s,a=d[Symbol.iterator]();!(t=(s=a.next()).done);t=!0){var i=s.value,r={provided:"MARKED AS SOLVED BY ADMIN",user_id:window.USER_ID,team_id:window.TEAM_ID,challenge_id:i,type:"correct"},l=u.default.fetch("/api/v1/submissions",{method:"POST",credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r)});e.push(l)}}catch(e){o=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(o)throw n}}Promise.all(e).then(function(e){window.location.reload()})}})}(e)}),(0,c.default)("#user-info-create-form").submit(h),(0,c.default)("#user-info-edit-form").submit(_),(0,c.default)("#user-award-form").submit(g);var t,o,n,s,e=p.default.extend(f.default),a=document.createElement("div");document.querySelector("#comment-box").appendChild(a),new e({propsData:{type:"user",id:window.USER_ID}}).$mount(a);var i,r=window.stats_data;t=r.type,o=r.id,n=r.name,s=r.account_id,(0,c.default)("#user-statistics-modal").on("shown.bs.modal",function(e){!function(t,o,n,s){var e=j(T[t],3),a=e[0],i=e[1],r=e[2];Promise.all([a(s),i(s),r(s)]).then(function(e){(0,d.createGraph)("score_graph","#score-graph",e,t,o,n,s),(0,d.createGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,s),(0,d.createGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,s)})}(t,o,n,s),i=setInterval(function(){!function(t,o,n,s){var e=j(T[t],3),a=e[0],i=e[1],r=e[2];Promise.all([a(s),i(s),r(s)]).then(function(e){(0,d.updateGraph)("score_graph","#score-graph",e,t,o,n,s),(0,d.updateGraph)("category_breakdown","#categories-pie-graph",e,t,o,n,s),(0,d.updateGraph)("solve_percentages","#keys-pie-graph",e,t,o,n,s)})}(t,o,n,s)},3e5)}),(0,c.default)("#user-statistics-modal").on("hidden.bs.modal",function(e){clearInterval(i)}),(0,c.default)(".statistics-user").click(function(e){(0,c.default)("#user-statistics-modal").modal("toggle")})})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),a=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),s=(0,r.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/graphs.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.createGraph=function(e,t,o,n,s,a,i){var r=u[e],l=c.default.init(document.querySelector(t));l.setOption(r.format(n,s,a,i,o)),(0,d.default)(window).on("resize",function(){null!=l&&null!=l&&l.resize()})},t.updateGraph=function(e,t,o,n,s,a,i){var r=u[e];c.default.init(document.querySelector(t)).setOption(r.format(n,s,a,i,o))},t.disposeGraph=function(e){c.default.dispose(document.querySelector(e))};var d=n(o("./node_modules/jquery/dist/jquery.js")),c=n(o("./node_modules/echarts/dist/echarts-en.common.js")),p=n(o("./node_modules/moment/moment.js")),f=o("./CTFd/themes/core/assets/js/utils.js");function n(e){return e&&e.__esModule?e:{default:e}}var u={score_graph:{format:function(e,t,o,n,s){var a={title:{left:"center",text:"Score over Time"},tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{type:"scroll",orient:"horizontal",align:"left",bottom:0,data:[o]},toolbox:{feature:{saveAsImage:{}}},grid:{containLabel:!0},xAxis:[{type:"category",boundaryGap:!1,data:[]}],yAxis:[{type:"value"}],series:[]},i=[],r=[],l=s[0].data,d=s[2].data,c=l.concat(d);c.sort(function(e,t){return new Date(e.date)-new Date(t.date)});for(var u=0;u>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,c.default)("#users-bulk-edit").serializeJSON(!0),t=[],o=!0,n=!1,s=void 0;try{for(var a,i=r[Symbol.iterator]();!(o=(a=i.next()).done);o=!0){var l=a.value;t.push(d.default.fetch("/api/v1/users/".concat(l),{method:"PATCH",body:JSON.stringify(e)}))}}catch(e){n=!0,s=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}Promise.all(t).then(function(e){window.location.reload()})}})}(0,c.default)(function(){(0,c.default)("#users-delete-button").click(a),(0,c.default)("#users-edit-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=r(o("./node_modules/jquery/dist/jquery.js")),a=r(o("./node_modules/easymde/src/js/easymde.js")),i=r(o("./node_modules/vue/dist/vue.esm.browser.js")),l=r(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function r(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(l.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),l=d(o("./node_modules/jquery/dist/jquery.js")),r=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:r.default},f={$:l.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(c.format(e.button));return e.success&&(0,l.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),o.modal("show"),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),o}function f(e){(0,l.default)("#ezq--notifications-toast-container").length||(0,l.default)("body").append((0,l.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=r.format(e.title,e.body),o=(0,l.default)(t);if(e.onclose&&(0,l.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,l.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,l.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,l.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,l.default)(e.body));var n=(0,l.default)(m),s=(0,l.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,l.default)("main").append(o),(0,l.default)(o).on("hidden.bs.modal",function(){(0,l.default)(this).modal("dispose")}),(0,l.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,l.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,l.default)(n);return s.find(".modal-body").append((0,l.default)(o)),(0,l.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,l.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,l=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n '),button:"Submit",success:function(){var e=(0,c.default)("#users-bulk-edit").serializeJSON(!0),t=[],o=!0,n=!1,s=void 0;try{for(var a,i=l[Symbol.iterator]();!(o=(a=i.next()).done);o=!0){var r=a.value;t.push(d.default.fetch("/api/v1/users/".concat(r),{method:"PATCH",body:JSON.stringify(e)}))}}catch(e){n=!0,s=e}finally{try{o||null==i.return||i.return()}finally{if(n)throw s}}Promise.all(t).then(function(e){window.location.reload()})}})}(0,c.default)(function(){(0,c.default)("#users-delete-button").click(a),(0,c.default)("#users-edit-button").click(i)})},"./CTFd/themes/admin/assets/js/styles.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.showMediaLibrary=d,t.bindMarkdownEditors=c,t.default=void 0,o("./node_modules/bootstrap/dist/js/bootstrap.bundle.js");var n=o("./CTFd/themes/core/assets/js/utils.js"),s=l(o("./node_modules/jquery/dist/jquery.js")),a=l(o("./node_modules/easymde/src/js/easymde.js")),i=l(o("./node_modules/vue/dist/vue.esm.browser.js")),r=l(o("./CTFd/themes/admin/assets/js/components/files/MediaLibrary.vue"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){var t=i.default.extend(r.default),o=document.createElement("div");document.querySelector("main").appendChild(o);var n=new t({propsData:{editor:e}}).$mount(o);(0,s.default)("#media-modal").on("hidden.bs.modal",function(e){n.$destroy(),(0,s.default)("#media-modal").remove()}),(0,s.default)("#media-modal").modal()}function c(){(0,s.default)("textarea.markdown").each(function(e,t){if(!1===t.hasOwnProperty("mde")){var o=new a.default({autoDownloadFontAwesome:!1,toolbar:["bold","italic","heading","|","quote","unordered-list","ordered-list","|","link","image",{name:"media",action:function(e){d(e)},className:"fas fa-file-upload",title:"Media Library"},"|","preview","guide"],element:this,initialValue:(0,s.default)(this).val(),forceSync:!0,minHeight:"200px"});this.mde=o,this.codemirror=o.codemirror,(0,s.default)(this).on("change keyup paste",function(){o.codemirror.getDoc().setValue((0,s.default)(this).val()),o.codemirror.refresh()})}})}t.default=function(){(0,s.default)(":input").each(function(){(0,s.default)(this).data("initial",(0,s.default)(this).val())}),(0,s.default)(function(){(0,s.default)("tr[data-href], td[data-href]").click(function(){if(!getSelection().toString()){var e=(0,s.default)(this).attr("data-href");e&&(window.location=e)}return!1}),(0,s.default)("[data-checkbox]").click(function(e){(0,s.default)(e.target).is("input[type=checkbox]")?e.stopImmediatePropagation():((0,s.default)(this).find("input[type=checkbox]").click(),e.stopImmediatePropagation())}),(0,s.default)("[data-checkbox-all]").on("click change",function(e){var t=(0,s.default)(this).prop("checked"),o=(0,s.default)(this).index()+1;(0,s.default)(this).closest("table").find("tr td:nth-child(".concat(o,") input[type=checkbox]")).prop("checked",t),e.stopImmediatePropagation()}),(0,s.default)("tr[data-href] a, tr[data-href] button").click(function(e){(0,s.default)(this).attr("data-dismiss")||e.stopPropagation()}),(0,s.default)(".page-select").change(function(){var e=new URL(window.location);e.searchParams.set("page",this.value),window.location.href=e.toString()}),(0,s.default)('a[data-toggle="tab"]').on("shown.bs.tab",function(e){sessionStorage.setItem("activeTab",(0,s.default)(e.target).attr("href"))});var e=sessionStorage.getItem("activeTab");if(e){var t=(0,s.default)('.nav-tabs a[href="'.concat(e,'"], .nav-pills a[href="').concat(e,'"]'));t.length?t.tab("show"):sessionStorage.removeItem("activeTab")}c(),(0,n.makeSortableTables)(),(0,s.default)('[data-toggle="tooltip"]').tooltip()})}},"./CTFd/themes/core/assets/js/CTFd.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=d(o("./CTFd/themes/core/assets/js/fetch.js")),s=d(o("./CTFd/themes/core/assets/js/config.js")),a=o("./CTFd/themes/core/assets/js/api.js");o("./CTFd/themes/core/assets/js/patch.js");var i=d(o("./node_modules/markdown-it/index.js")),r=d(o("./node_modules/jquery/dist/jquery.js")),l=d(o("./CTFd/themes/core/assets/js/ezq.js"));function d(e){return e&&e.__esModule?e:{default:e}}function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var u=new a.API("/"),m={},p={ezq:l.default},f={$:r.default,markdown:function(e){var t=function(t){for(var e=1;e".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(c.format(e.button));return e.success&&(0,r.default)(n).click(function(){e.success()}),e.large&&o.find(".modal-dialog").addClass("modal-lg"),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),o.modal("show"),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),o}function f(e){(0,r.default)("#ezq--notifications-toast-container").length||(0,r.default)("body").append((0,r.default)("
").attr({id:"ezq--notifications-toast-container"}).css({position:"fixed",bottom:"0",right:"0","min-width":"20%"}));var t=l.format(e.title,e.body),o=(0,r.default)(t);if(e.onclose&&(0,r.default)(o).find("button[data-dismiss=toast]").click(function(){e.onclose()}),e.onclick){var n=(0,r.default)(o).find(".toast-body");n.addClass("cursor-pointer"),n.click(function(){e.onclick()})}var s=!1!==e.autohide,a=!1!==e.animation,i=e.delay||1e4;return(0,r.default)("#ezq--notifications-toast-container").prepend(o),o.toast({autohide:s,delay:i,animation:a}),o.toast("show"),o}function j(e){var t=a.format(e.title),o=(0,r.default)(t);"string"==typeof e.body?o.find(".modal-body").append("

".concat(e.body,"

")):o.find(".modal-body").append((0,r.default)(e.body));var n=(0,r.default)(m),s=(0,r.default)(u);return o.find(".modal-footer").append(s),o.find(".modal-footer").append(n),(0,r.default)("main").append(o),(0,r.default)(o).on("hidden.bs.modal",function(){(0,r.default)(this).modal("dispose")}),(0,r.default)(n).click(function(){e.success()}),o.modal("show"),o}function h(e){if(e.target){var t=(0,r.default)(e.target);return t.find(".progress-bar").css("width",e.width+"%"),t}var o=i.format(e.width),n=a.format(e.title),s=(0,r.default)(n);return s.find(".modal-body").append((0,r.default)(o)),(0,r.default)("main").append(s),s.modal("show")}function _(e){var t={success:d,error:s}[e.type].format(e.body);return(0,r.default)(t)}var v={ezAlert:p,ezToast:f,ezQuery:j,ezProgressBar:h,ezBadge:_};t.default=v},"./CTFd/themes/core/assets/js/fetch.js":function(e,t,o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,o("./node_modules/whatwg-fetch/fetch.js");var n,s=(n=o("./CTFd/themes/core/assets/js/config.js"))&&n.__esModule?n:{default:n};var a=window.fetch;t.default=function(e,t){return void 0===t&&(t={method:"GET",credentials:"same-origin",headers:{}}),e=s.default.urlRoot+e,void 0===t.headers&&(t.headers={}),t.credentials="same-origin",t.headers.Accept="application/json",t.headers["Content-Type"]="application/json",t.headers["CSRF-Token"]=s.default.csrfNonce,a(e,t)}},"./CTFd/themes/core/assets/js/patch.js":function(e,t,o){var n,r=(n=o("./node_modules/q/q.js"))&&n.__esModule?n:{default:n},s=o("./CTFd/themes/core/assets/js/api.js");function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e,t){return function(t){for(var e=1;e>4*s&255).toString(16)).substr(-2)}return n},t.htmlEntities=function(e){return(0,i.default)("
").text(e).html()},t.cumulativeSum=function(e){for(var t=e.concat(),o=0;o'),(0,i.default)("th.sort-col").click(function(){var e=(0,i.default)(this).parents("table").eq(0),t=e.find("tr:gt(0)").toArray().sort(function(s){return function(e,t){var o=a(e,s),n=a(t,s);return i.default.isNumeric(o)&&i.default.isNumeric(n)?o-n:o.toString().localeCompare(n)}}((0,i.default)(this).index()));this.asc=!this.asc,this.asc||(t=t.reverse());for(var o=0;o + {% block entrypoint %} diff --git a/CTFd/themes/admin/templates/modals/teams/statistics.html b/CTFd/themes/admin/templates/modals/teams/statistics.html new file mode 100644 index 00000000..ee58d213 --- /dev/null +++ b/CTFd/themes/admin/templates/modals/teams/statistics.html @@ -0,0 +1,23 @@ +
+ {% if solves %} +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ {% else %} +

+ No data yet +

+ {% endif %} +
diff --git a/CTFd/themes/admin/templates/modals/users/statistics.html b/CTFd/themes/admin/templates/modals/users/statistics.html new file mode 100644 index 00000000..ee58d213 --- /dev/null +++ b/CTFd/themes/admin/templates/modals/users/statistics.html @@ -0,0 +1,23 @@ +
+ {% if solves %} +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ {% else %} +

+ No data yet +

+ {% endif %} +
diff --git a/CTFd/themes/admin/templates/teams/team.html b/CTFd/themes/admin/templates/teams/team.html index 67caad4e..3c77a747 100644 --- a/CTFd/themes/admin/templates/teams/team.html +++ b/CTFd/themes/admin/templates/teams/team.html @@ -20,6 +20,22 @@
+ +