diff --git a/app/assets/build/application.js b/app/assets/build/application.js index aee42cbc..2d0aa294 100644 --- a/app/assets/build/application.js +++ b/app/assets/build/application.js @@ -26,7 +26,7 @@ eval("document.addEventListener('turbolinks:load', () => {\n // Segment\n !fun /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ 74692);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ 85471);\n/* harmony import */ var vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue-turbolinks */ 29739);\n/* harmony import */ var vue_tippy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-tippy */ 17823);\n/* harmony import */ var _vue_RaceCreateButton_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vue/RaceCreateButton.vue */ 13992);\n/* harmony import */ var _vue_EditRunGameAndCategory_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vue/EditRunGameAndCategory.vue */ 1975);\n/* harmony import */ var _vue_Search_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vue/Search.vue */ 82787);\n/* harmony import */ var _vue_SpeedRunsLiveRaceList_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vue/SpeedRunsLiveRaceList.vue */ 22227);\n/* harmony import */ var chartkick__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! chartkick */ 67092);\n/* harmony import */ var _analytics_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./analytics.js */ 98233);\n/* harmony import */ var _analytics_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_analytics_js__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _collapse_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./collapse.js */ 77202);\n/* harmony import */ var _collapse_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_collapse_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./count.js */ 99854);\n/* harmony import */ var _dropdown_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./dropdown.js */ 8964);\n/* harmony import */ var _dropdown_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_dropdown_js__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var _highchart_theme_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./highchart_theme.js */ 20159);\n/* harmony import */ var _chart_builder_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./chart_builder.js */ 96345);\n/* harmony import */ var _landing_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./landing.js */ 63117);\n/* harmony import */ var _landing_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_landing_js__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _like_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./like.js */ 82926);\n/* harmony import */ var _like_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_like_js__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _race_attach_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./race_attach.js */ 48354);\n/* harmony import */ var _race_attach_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_race_attach_js__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _run_claim_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./run_claim.js */ 65011);\n/* harmony import */ var _run_claim_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_run_claim_js__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _run_delete_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./run_delete.js */ 9064);\n/* harmony import */ var _run_delete_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_run_delete_js__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var _run_disown_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./run_disown.js */ 33427);\n/* harmony import */ var _run_disown_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_run_disown_js__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _run_export_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./run_export.js */ 77649);\n/* harmony import */ var _run_export_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_run_export_js__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _run_parse_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./run_parse.js */ 91188);\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./settings.js */ 13008);\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_settings_js__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _srdc_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./srdc.js */ 83745);\n/* harmony import */ var _srdc_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_srdc_js__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _stripe_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./stripe.js */ 81308);\n/* harmony import */ var _stripe_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_stripe_js__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var _paypal_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./paypal.js */ 74870);\n/* harmony import */ var _survey_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./survey.js */ 31095);\n/* harmony import */ var _survey_js__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_survey_js__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony import */ var _timeline_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./timeline.js */ 53550);\n/* harmony import */ var _token_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./token.js */ 90816);\n/* harmony import */ var _tooltips_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./tooltips.js */ 8245);\n/* harmony import */ var _twitch_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./twitch.js */ 14102);\n/* harmony import */ var _twitch_js__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_twitch_js__WEBPACK_IMPORTED_MODULE_31__);\n/* harmony import */ var _upload_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./upload.js */ 48000);\n/* harmony import */ var _youtube_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./youtube.js */ 94320);\n/* harmony import */ var _youtube_js__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(_youtube_js__WEBPACK_IMPORTED_MODULE_33__);\n/* harmony import */ var _youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./youtube_timestamps.js */ 90518);\n/* harmony import */ var _youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_34__);\n/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n(__webpack_require__(/*! @rails/activestorage */ 64276).start)();\n(__webpack_require__(/*! @rails/ujs */ 23337).start)();\n(__webpack_require__(/*! turbolinks */ 6224).start)();\n__webpack_require__(/*! ./channels */ 49898);\nconst moment = __webpack_require__(/*! moment */ 95093);\nconst momentDurationFormatSetup = __webpack_require__(/*! moment-duration-format */ 53395);\n\nmomentDurationFormatSetup(moment);\n\n\n\n\n\n\n\n\n\n\n\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(vue_turbolinks__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].use(vue_tippy__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n onShow: (instance) => {\n if (!instance.props.content) {\n return false;\n } // Makes null `content` hide the tooltip, not show a blank one\n },\n});\nvue__WEBPACK_IMPORTED_MODULE_7__[\"default\"].component(\"tippy\", vue_tippy__WEBPACK_IMPORTED_MODULE_2__.TippyComponent);\n\nif (document.getElementById(\"vue\")) {\n const app = new vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]({\n el: \"#vue\",\n components: {\n race,\n RaceCreateButton: _vue_RaceCreateButton_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n EditRunGameAndCategory: _vue_EditRunGameAndCategory_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Search: _vue_Search_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n SpeedRunsLiveRaceList: _vue_SpeedRunsLiveRaceList_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n },\n });\n}\n// Using Google charts for admin dashboards for now (a script tag in app/views/layouts/admin/application.slim) because\n// Chartkick + Highcharts doesn't seem to include axes, and tooltips don't include years (?) with no clear resolution\n\nwindow.Chartkick = chartkick__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\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//# sourceURL=webpack://splits-io/./app/javascript/application.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ 74692);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vue_race_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vue/race.js */ 97233);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue */ 14404);\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var vue_turbolinks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue-turbolinks */ 29739);\n/* harmony import */ var vue_tippy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-tippy */ 17823);\n/* harmony import */ var _vue_RaceCreateButton_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vue/RaceCreateButton.vue */ 13992);\n/* harmony import */ var _vue_EditRunGameAndCategory_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vue/EditRunGameAndCategory.vue */ 1975);\n/* harmony import */ var _vue_Search_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vue/Search.vue */ 82787);\n/* harmony import */ var _vue_SpeedRunsLiveRaceList_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./vue/SpeedRunsLiveRaceList.vue */ 22227);\n/* harmony import */ var chartkick__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! chartkick */ 67092);\n/* harmony import */ var _analytics_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./analytics.js */ 98233);\n/* harmony import */ var _analytics_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_analytics_js__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _collapse_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./collapse.js */ 77202);\n/* harmony import */ var _collapse_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_collapse_js__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./count.js */ 99854);\n/* harmony import */ var _dropdown_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./dropdown.js */ 8964);\n/* harmony import */ var _dropdown_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_dropdown_js__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _highchart_theme_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./highchart_theme.js */ 20159);\n/* harmony import */ var _chart_builder_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./chart_builder.js */ 96345);\n/* harmony import */ var _landing_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./landing.js */ 63117);\n/* harmony import */ var _landing_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_landing_js__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _like_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./like.js */ 82926);\n/* harmony import */ var _like_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_like_js__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _race_attach_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./race_attach.js */ 48354);\n/* harmony import */ var _race_attach_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_race_attach_js__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _run_claim_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./run_claim.js */ 65011);\n/* harmony import */ var _run_claim_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_run_claim_js__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var _run_delete_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./run_delete.js */ 9064);\n/* harmony import */ var _run_delete_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_run_delete_js__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _run_disown_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./run_disown.js */ 33427);\n/* harmony import */ var _run_disown_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_run_disown_js__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _run_export_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./run_export.js */ 77649);\n/* harmony import */ var _run_export_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_run_export_js__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var _run_parse_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./run_parse.js */ 91188);\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./settings.js */ 13008);\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_settings_js__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _srdc_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./srdc.js */ 83745);\n/* harmony import */ var _srdc_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_srdc_js__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var _stripe_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./stripe.js */ 81308);\n/* harmony import */ var _stripe_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_stripe_js__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var _paypal_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./paypal.js */ 74870);\n/* harmony import */ var _survey_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./survey.js */ 31095);\n/* harmony import */ var _survey_js__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_survey_js__WEBPACK_IMPORTED_MODULE_28__);\n/* harmony import */ var _timeline_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./timeline.js */ 53550);\n/* harmony import */ var _token_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./token.js */ 90816);\n/* harmony import */ var _tooltips_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./tooltips.js */ 8245);\n/* harmony import */ var _twitch_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./twitch.js */ 14102);\n/* harmony import */ var _twitch_js__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_twitch_js__WEBPACK_IMPORTED_MODULE_32__);\n/* harmony import */ var _upload_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./upload.js */ 48000);\n/* harmony import */ var _youtube_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./youtube.js */ 94320);\n/* harmony import */ var _youtube_js__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_youtube_js__WEBPACK_IMPORTED_MODULE_34__);\n/* harmony import */ var _youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./youtube_timestamps.js */ 90518);\n/* harmony import */ var _youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_youtube_timestamps_js__WEBPACK_IMPORTED_MODULE_35__);\n/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n(__webpack_require__(/*! @rails/activestorage */ 64276).start)();\n(__webpack_require__(/*! @rails/ujs */ 23337).start)();\n(__webpack_require__(/*! turbolinks */ 6224).start)();\n__webpack_require__(/*! ./channels */ 49898);\nconst moment = __webpack_require__(/*! moment */ 95093);\nconst momentDurationFormatSetup = __webpack_require__(/*! moment-duration-format */ 53395);\n\nmomentDurationFormatSetup(moment);\n\n\n\n\n\n\n\n\n\n\n\n\n\nvue__WEBPACK_IMPORTED_MODULE_8___default().use(vue_turbolinks__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\nvue__WEBPACK_IMPORTED_MODULE_8___default().use(vue_tippy__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onShow: (instance) => {\n if (!instance.props.content) {\n return false;\n } // Makes null `content` hide the tooltip, not show a blank one\n },\n});\n\nvue__WEBPACK_IMPORTED_MODULE_8___default().component(\"tippy\", vue_tippy__WEBPACK_IMPORTED_MODULE_3__.TippyComponent);\n\ndocument.addEventListener(\"turbolinks:load\", () => {\n if (!document.getElementById(\"vue\")) {\n return;\n }\n\n const app = new (vue__WEBPACK_IMPORTED_MODULE_8___default())({\n el: \"#vue\",\n components: {\n race: _vue_race_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n RaceCreateButton: _vue_RaceCreateButton_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n EditRunGameAndCategory: _vue_EditRunGameAndCategory_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Search: _vue_Search_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n SpeedRunsLiveRaceList: _vue_SpeedRunsLiveRaceList_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n },\n });\n});\n\n// Using Google charts for admin dashboards for now (a script tag in app/views/layouts/admin/application.slim) because\n// Chartkick + Highcharts doesn't seem to include axes, and tooltips don't include years (?) with no clear resolution\n\nwindow.Chartkick = chartkick__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\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//# sourceURL=webpack://splits-io/./app/javascript/application.js?"); /***/ }), @@ -421,6 +421,72 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var unde /***/ }), +/***/ 35444: +/*!*****************************************!*\ + !*** ./app/javascript/vue/race-chat.js ***! + \*****************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../token */ 90816);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data: () => ({\n body: '',\n error: null,\n loading: false,\n }),\n methods: {\n chat: async function() {\n this.error = false\n this.loading = true\n\n const headers = new Headers()\n headers.append('Content-Type', 'application/json')\n const accessToken = (0,_token__WEBPACK_IMPORTED_MODULE_0__.getAccessToken)()\n if (accessToken) {\n headers.append('Authorization', `Bearer ${accessToken}`)\n }\n\n try {\n const response = fetch(`/api/v4/races/${this.race.id}/chat`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n body: this.body,\n })\n })\n\n this.body = ''\n\n if (!(await response).ok) {\n throw (await response.json()).error || response.statusText\n }\n\n } catch(error) {\n this.error = error\n } finally {\n this.loading = false\n document.getElementById('input-chat-text').focus()\n }\n },\n },\n name: 'race-chat',\n props: ['race'],\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race-chat.js?"); + +/***/ }), + +/***/ 12537: +/*!***********************************************!*\ + !*** ./app/javascript/vue/race-disclaimer.js ***! + \***********************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data: () => ({\n accepted: false,\n }),\n methods: {\n accept: function() {\n this.accepted = true\n }\n },\n name: 'race-disclaimer',\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race-disclaimer.js?"); + +/***/ }), + +/***/ 48569: +/*!****************************************!*\ + !*** ./app/javascript/vue/race-nav.js ***! + \****************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../time */ 91812);\n/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../token */ 90816);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n created: function() {\n this.currentUser = gon.user\n if (this.currentUser === null) {\n return\n }\n\n this.entry = this.race.entries.find((entry) => {\n if (!entry.runner || entry.ghost) {\n return false\n }\n\n return entry.runner.id === this.currentUser.id\n })\n },\n data: () => ({\n currentUser: null,\n entry: null,\n errors: {},\n loading: {\n finish: false,\n forfeit: false,\n join: false,\n leave: false,\n ready: false,\n split: false,\n unfinish: false,\n unforfeit: false,\n unready: false,\n },\n }),\n methods: {\n finish: async function() {\n this.errors.finish = false\n this.loading.finish = true\n try {\n await this.updateEntry({finished_at: new Date(_time__WEBPACK_IMPORTED_MODULE_0__.ts.now())})\n } catch(error) {\n this.errors.finish = `Error: ${error}`\n } finally {\n this.loading.finish = false\n }\n },\n forfeit: async function() {\n this.errors.forfeit = false\n this.loading.forfeit = true\n try {\n await this.updateEntry({forfeited_at: new Date(_time__WEBPACK_IMPORTED_MODULE_0__.ts.now())})\n } catch(error) {\n this.errors.forfeit = `Error: ${error}`\n } finally {\n this.loading.forfeit = false\n }\n },\n join: async function() {\n this.errors.join = false\n this.loading.join = true\n try {\n await this.updateEntry({}, 'POST')\n } catch(error) {\n this.errors.join = `Error: ${error}`\n } finally {\n this.loading.join = false\n }\n },\n leave: async function() {\n this.errors.leave = false\n this.loading.leave = true\n try {\n await this.updateEntry({}, 'DELETE')\n this.entry = null\n } catch(error) {\n this.errors.leave = `Error: ${error}`\n } finally {\n this.loading.leave = false\n }\n },\n ready: async function() {\n this.errors.ready = false\n this.loading.ready = true\n try {\n await this.updateEntry({readied_at: new Date(_time__WEBPACK_IMPORTED_MODULE_0__.ts.now())})\n } catch(error) {\n this.errors.ready = `Error: ${error}`\n } finally {\n this.loading.ready = false\n }\n },\n split: async function() {\n this.errors.split = false\n this.loading.split = true\n try {\n // Protect against disconnections ruining times -- save the request for later if we're offline\n if (!navigator.onLine) {\n await new Promise(function(resolve, reject) {\n window.setInterval(() => {\n if (navigator.onLine) {\n resolve()\n }\n }, 1000)\n })\n }\n\n const headers = new Headers()\n headers.append('Content-Type', 'application/json')\n const accessToken = (0,_token__WEBPACK_IMPORTED_MODULE_1__.getAccessToken)()\n if (accessToken) {\n headers.append('Authorization', `Bearer ${accessToken}`)\n }\n\n const response = await fetch(`/api/v4/races/${this.race.id}/entries/${this.entry.id}/splits?more=1`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n split: {realtime_end_ms: new Date(_time__WEBPACK_IMPORTED_MODULE_0__.ts.now()) - new Date(this.race.started_at)},\n join_token: (new URLSearchParams(window.location.search)).get('join_token')\n }),\n })\n\n if (!response.ok) {\n throw (await response.json()).error || response.statusText\n }\n\n this.$emit('syncing')\n } catch(error) {\n this.errors.split = `Error: ${error}`\n } finally {\n this.loading.split = false\n }\n },\n unfinish: async function() {\n this.errors.unfinish = false\n this.loading.unfinish = true\n try {\n await this.updateEntry({finished_at: null})\n } catch(error) {\n this.errors.unfinish = `Error: ${error}`\n } finally {\n this.loading.unfinish = false\n }\n },\n unforfeit: async function() {\n this.errors.unforfeit = false\n this.loading.unforfeit = true\n try {\n await this.updateEntry({forfeited_at: null})\n } catch(error) {\n this.errors.unforfeit = `Error: ${error}`\n } finally {\n this.loading.unforfeit = false\n }\n },\n unready: async function() {\n this.errors.unready = false\n this.loading.unready = true\n try {\n await this.updateEntry({readied_at: null})\n } catch(error) {\n this.errors.unready = `Error: ${error}`\n } finally {\n this.loading.unready = false\n }\n },\n updateEntry: async function(params, method = 'PATCH', path = null) {\n // Protect against disconnections ruining times -- save the request for later if we're offline\n if (!navigator.onLine) {\n await new Promise(function(resolve, reject) {\n window.setInterval(() => {\n if (navigator.onLine) {\n resolve()\n }\n }, 1000)\n })\n }\n\n if (path === null) {\n if (method === 'POST') {\n path = `/api/v4/races/${this.race.id}/entries`\n } else {\n path = `/api/v4/races/${this.race.id}/entries/${this.entry.id}`\n }\n }\n\n const headers = new Headers()\n headers.append('Content-Type', 'application/json')\n const accessToken = (0,_token__WEBPACK_IMPORTED_MODULE_1__.getAccessToken)()\n if (accessToken) {\n headers.append('Authorization', `Bearer ${accessToken}`)\n }\n\n const response = await fetch(path, {\n method: method,\n headers: headers,\n body: JSON.stringify({\n entry: params,\n join_token: (new URLSearchParams(window.location.search)).get('join_token')\n }),\n })\n\n if (!response.ok) {\n throw (await response.json()).error || response.statusText\n }\n\n this.entry = (await response.json()).entry\n this.$emit('syncing')\n },\n },\n name: 'race-nav',\n props: ['race', 'starting'],\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race-nav.js?"); + +/***/ }), + +/***/ 72713: +/*!********************************************!*\ + !*** ./app/javascript/vue/race-streams.js ***! + \********************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-multiselect */ 75262);\n/* harmony import */ var vue_multiselect__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_multiselect__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n Multiselect: (vue_multiselect__WEBPACK_IMPORTED_MODULE_0___default())\n },\n computed: {\n options: function() {\n return this.race.entries.filter(entry => !entry.ghost && entry.creator.twitch_name !== null).map(entry => {\n return {name: entry.creator.display_name, id: entry.creator.twitch_name}\n })\n },\n\n finished: function() {\n return this.race.entries.every(entry => entry.forfeited_at || entry.finished_at)\n }\n },\n watch: {\n options: function(entries) {\n const currentEntries = entries.map(entry => entry.id)\n this.value = this.value.filter(entry => currentEntries.includes(entry.id))\n }\n },\n created: function() {\n\n },\n data: () => ({\n value: []\n }),\n methods: {\n ratioHeight: function(div) {\n const width = div.offsetWidth\n\n return (width / 16) * 9\n },\n\n getBreakPointDiv: function(desiredBreak) {\n const breakPointDiv = document.createElement('div')\n const allSizes = ['sm', 'md', 'lg', 'xl']\n const breakpoints = allSizes.map(size => size === desiredBreak ? `d-${size}-block` : `d-${size}-none`)\n breakpoints.unshift(desiredBreak === 'xs' ? 'd-block' : 'd-none')\n breakPointDiv.className = `w-100 ${breakpoints.join(' ')}`\n return breakPointDiv\n }\n },\n\n updated: function() {\n const deck = document.getElementById('stream-deck')\n if (!deck) {\n return\n }\n\n // We have to manually add and remove breakpoints in JS otherwise we cannot utilize :key on the card div\n // Without :key all iframes after the removed one will reload\n deck.querySelectorAll('#stream-deck .w-100').forEach(breakpoint => {\n breakpoint.parentNode.removeChild(breakpoint)\n })\n\n deck.querySelectorAll('.card').forEach((card, i) => {\n deck.insertBefore(this.getBreakPointDiv('xs'), card.nextSibling)\n if (i + 1 === 2) { deck.insertBefore(this.getBreakPointDiv('md'), card.nextSibling) }\n if (i + 1 === 3) { deck.insertBefore(this.getBreakPointDiv('lg'), card.nextSibling) }\n if (i + 1 === 4) { deck.insertBefore(this.getBreakPointDiv('xl'), card.nextSibling) }\n })\n\n // Resize iframe divs in their dynamic column/rows\n document.querySelectorAll('.twitch-stream').forEach(div => {\n const iframe = div.firstChild\n iframe.height = this.ratioHeight(div)\n })\n },\n name: 'race-streams',\n props: ['race']\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race-streams.js?"); + +/***/ }), + +/***/ 68182: +/*!******************************************!*\ + !*** ./app/javascript/vue/race-title.js ***! + \******************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _race_nav_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./race-nav.js */ 48569);\n/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../token */ 90816);\n/* harmony import */ var _GameSelector_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./GameSelector.vue */ 13722);\n/* harmony import */ var _CategorySelector_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CategorySelector.vue */ 12844);\n\n\n\n\nconst _ = __webpack_require__(/*! underscore */ 86860)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n raceNav: _race_nav_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n GameSelector: _GameSelector_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n CategorySelector: _CategorySelector_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n },\n computed: {\n categories: function() {\n if (!this.game) {\n return []\n }\n\n return [\n {id: null, name: ''},\n ...this.game.categories.filter(category => category.srdc_id)\n ]\n },\n title: function() {\n if (this.race === null) {\n return ''\n }\n if (this.race.game === null && this.race.category === null && this.race.notes === null) {\n return 'Untitled race'\n }\n return `${(this.race.game || {name: ''}).name} ${(this.race.category || {name: ''}).name} ${(this.race.notes || '').split('\\n')[0]}`\n },\n },\n created: async function() {\n this.notes = this.race.notes\n this.category = this.race.category\n\n const currentUser = gon.user\n if (!currentUser) {\n return\n }\n\n this.entry = this.race.entries.find(entry => {\n if (!entry.runner || entry.ghost) {\n return false\n }\n\n return entry.runner.id === currentUser.id\n })\n\n if (this.race.game) {\n this.game = await fetch(`/api/v4/games?search=${this.race.game.id}`).then(response => response.json()).then(body => {\n return body.games[0]\n })\n }\n },\n data: () => ({\n category: null,\n editing: false,\n entry: null,\n error: null,\n game: null,\n loading: false,\n notes: '',\n }),\n methods: {\n cancel: function() {\n this.editing = false\n },\n edit: async function() {\n this.editing = true\n },\n save: async function() {\n this.error = false\n this.loading = true\n this.editing = false\n\n const headers = new Headers()\n headers.append('Content-Type', 'application/json')\n const accessToken = (0,_token__WEBPACK_IMPORTED_MODULE_1__.getAccessToken)()\n if (accessToken) {\n headers.append('Authorization', `Bearer ${accessToken}`)\n }\n\n try {\n const response = fetch(`/api/v4/races/${this.race.id}`, {\n method: 'PATCH',\n headers: headers,\n body: JSON.stringify({\n category_id: (this.category && this.category.id) || null,\n game_id: (this.game || {}).id,\n notes: this.notes,\n })\n })\n\n if (!(await response).ok) {\n throw (await response.json()).error || response.statusText\n }\n\n this.$emit('syncing')\n } catch(error) {\n this.error = error\n } finally {\n this.loading = false\n document.getElementById('input-chat-text').focus()\n }\n },\n },\n mounted: function() {\n },\n name: 'race-title',\n props: ['race', 'starting', 'syncing'],\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race-title.js?"); + +/***/ }), + +/***/ 97233: +/*!************************************!*\ + !*** ./app/javascript/vue/race.js ***! + \************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _tooltips__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tooltips */ 8245);\n/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../token */ 90816);\n/* harmony import */ var _channels_consumer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channels/consumer */ 80136);\n/* harmony import */ var _race_chat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./race-chat.js */ 35444);\n/* harmony import */ var _race_disclaimer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./race-disclaimer.js */ 12537);\n/* harmony import */ var _race_title_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./race-title.js */ 68182);\n/* harmony import */ var _race_streams_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./race-streams.js */ 72713);\nconst moment = __webpack_require__(/*! moment */ 95093);\n__webpack_require__(/*! moment-duration-format */ 53395)(moment);\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n raceChat: _race_chat_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n raceDisclaimer: _race_disclaimer_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n raceTitle: _race_title_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n raceStreams: _race_streams_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n },\n created: async function () {\n this.error = false;\n\n const headers = new Headers();\n const accessToken = (0,_token__WEBPACK_IMPORTED_MODULE_1__.getAccessToken)();\n if (accessToken) {\n headers.append(\"Authorization\", `Bearer ${accessToken}`);\n }\n\n let url = `/api/v4/races/${this.raceId}`;\n const joinToken = (window.gon.race || {}).join_token;\n if (joinToken) {\n url += `?join_token=${joinToken}`;\n }\n\n const response = await fetch(url, {\n headers: headers,\n });\n if (!response.ok) {\n throw (await response.json()).error || response.statusText;\n }\n\n this.globalSubscription = _channels_consumer__WEBPACK_IMPORTED_MODULE_2__[\"default\"].subscriptions.create(\n \"Api::V4::GlobalRaceChannel\",\n {\n connection() {},\n\n disconnected() {},\n\n received(data) {\n this.syncing = false;\n switch (data.type) {\n // TODO: update races on game page with this info\n case \"...\":\n \"\";\n break;\n }\n },\n }\n );\n\n this.raceSubscription = _channels_consumer__WEBPACK_IMPORTED_MODULE_2__[\"default\"].subscriptions.create(\n {\n channel: \"Api::V4::RaceChannel\",\n race_id: this.raceId,\n join_token: (window.gon.race || {}).join_token,\n },\n {\n connected: () => {\n // Clean up disconnect if its shown\n // Maybe utilize state to update the page?\n },\n\n disconnected: () => {\n // Maybe show disconnects?\n },\n\n received: (data) => {\n this.syncing = false;\n switch (data.type) {\n case \"race_entries_updated:html\":\n document.getElementById(\"entries-table\").innerHTML =\n data.data.entries_html;\n document.getElementById(\"stats-box\").innerHTML =\n data.data.stats_html;\n (0,_tooltips__WEBPACK_IMPORTED_MODULE_0__.applyTips)();\n break;\n case \"race_entries_updated\":\n this.race = data.data.race;\n break;\n\n case \"race_start_scheduled:html\":\n document.getElementById(\"stats-box\").innerHTML =\n data.data.stats_html;\n if (\n !this.starting &&\n new Date(this.race.started_at) > new Date()\n ) {\n this.starting = true;\n setTimeout(\n () => (this.starting = false),\n new Date(this.race.started_at) - new Date()\n );\n }\n break;\n case \"race_start_scheduled\":\n this.race = data.data.race;\n break;\n\n case \"race_updated\":\n this.race = data.data.race;\n document.getElementById(\"attachments\").innerHTML =\n data.data.attachments_html;\n break;\n\n case \"race_ended\":\n this.race = data.data.race;\n break;\n\n case \"race_ended:html\":\n document.getElementById(\"entries-table\").innerHTML =\n data.data.entries_html;\n document.getElementById(\"stats-box\").innerHTML =\n data.data.stats_html;\n break;\n\n case \"new_message:html\":\n document\n .getElementById(\"input-list-item\")\n .insertAdjacentHTML(\"afterend\", data.data.chat_html);\n (0,_tooltips__WEBPACK_IMPORTED_MODULE_0__.applyTips)();\n break;\n\n case \"new_attachment:html\":\n document.getElementById(\"attachments\").innerHTML =\n data.data.attachments_html;\n break;\n }\n },\n }\n );\n\n document.addEventListener(\n \"turbolinks:visit\",\n () => {\n _channels_consumer__WEBPACK_IMPORTED_MODULE_2__[\"default\"].subscriptions.remove(this.raceSubscription);\n },\n { once: true }\n );\n\n this.race = (await response.json()).race;\n this.loading = false;\n },\n data: () => ({\n error: false,\n globalSubscription: null,\n loading: true,\n race: null,\n raceSubscription: null,\n starting: false, // true when we're counting down to start, false before & after that\n syncing: false, // true when we know we're waiting on an ActionCable update\n }),\n methods: {\n setSyncing: function () {\n this.syncing = true;\n },\n },\n name: \"race\",\n props: [\"race-id\"],\n});\n\n\n//# sourceURL=webpack://splits-io/./app/javascript/vue/race.js?"); + +/***/ }), + /***/ 94320: /*!***********************************!*\ !*** ./app/javascript/youtube.js ***! @@ -4430,6 +4496,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ 75262: +/*!******************************************************************!*\ + !*** ./node_modules/vue-multiselect/dist/vue-multiselect.min.js ***! + \******************************************************************/ +/***/ (function(module) { + +eval("!function(t,e){ true?module.exports=e():0}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=89)}([function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(35),i=Function.prototype,o=i.call,s=r&&i.bind.bind(o,o);t.exports=r?s:function(t){return function(){return o.apply(t,arguments)}}},function(t,e,n){var r=n(59),i=r.all;t.exports=r.IS_HTMLDDA?function(t){return\"function\"==typeof t||t===i}:function(t){return\"function\"==typeof t}},function(t,e,n){var r=n(4),i=n(43).f,o=n(30),s=n(11),u=n(33),a=n(95),l=n(66);t.exports=function(t,e){var n,c,f,p,h,d=t.target,v=t.global,g=t.stat;if(n=v?r:g?r[d]||u(d,{}):(r[d]||{}).prototype)for(c in e){if(p=e[c],t.dontCallGetSet?(h=i(n,c),f=h&&h.value):f=n[c],!l(v?c:d+(g?\".\":\"#\")+c,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(t.sham||f&&f.sham)&&o(p,\"sham\",!0),s(n,c,p,t)}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n(\"object\"==typeof globalThis&&globalThis)||n(\"object\"==typeof window&&window)||n(\"object\"==typeof self&&self)||n(\"object\"==typeof e&&e)||function(){return this}()||Function(\"return this\")()}).call(e,n(139))},function(t,e,n){var r=n(0);t.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,e,n){var r=n(8),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+\" is not an object\")}},function(t,e,n){var r=n(1),i=n(14),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},function(t,e,n){var r=n(2),i=n(59),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return\"object\"==typeof t?null!==t:r(t)||t===o}:function(t){return\"object\"==typeof t?null!==t:r(t)}},function(t,e,n){var r=n(4),i=n(47),o=n(7),s=n(75),u=n(72),a=n(76),l=i(\"wks\"),c=r.Symbol,f=c&&c.for,p=a?c:c&&c.withoutSetter||s;t.exports=function(t){if(!o(l,t)||!u&&\"string\"!=typeof l[t]){var e=\"Symbol.\"+t;u&&o(c,t)?l[t]=c[t]:l[t]=a&&f?f(e):p(e)}return l[t]}},function(t,e,n){var r=n(123);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(2),i=n(13),o=n(104),s=n(33);t.exports=function(t,e,n,u){u||(u={});var a=u.enumerable,l=void 0!==u.name?u.name:e;if(r(n)&&o(n,l,u),u.global)a?t[e]=n:s(e,n);else{try{u.unsafe?t[e]&&(a=!0):delete t[e]}catch(t){}a?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return t}},function(t,e,n){var r=n(35),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},function(t,e,n){var r=n(5),i=n(62),o=n(77),s=n(6),u=n(50),a=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor;e.f=r?o?function(t,e,n){if(s(t),e=u(e),s(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&\"writable\"in n&&!n.writable){var r=c(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:\"configurable\"in n?n.configurable:r.configurable,enumerable:\"enumerable\"in n?n.enumerable:r.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(s(t),e=u(e),s(n),i)try{return l(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw a(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(24),i=Object;t.exports=function(t){return i(r(t))}},function(t,e,n){var r=n(1),i=r({}.toString),o=r(\"\".slice);t.exports=function(t){return o(i(t),8,-1)}},function(t,e,n){var r=n(0),i=n(9),o=n(23),s=i(\"species\");t.exports=function(t){return o>=51||!r(function(){var e=[],n=e.constructor={};return n[s]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},function(t,e,n){var r=n(4),i=n(2),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},function(t,e,n){var r=n(15);t.exports=Array.isArray||function(t){return\"Array\"==r(t)}},function(t,e,n){var r=n(39),i=n(24);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(29),i=String;t.exports=function(t){if(\"Symbol\"===r(t))throw TypeError(\"Cannot convert a Symbol value to a string\");return i(t)}},function(t,e,n){var r=n(100),i=n(1),o=n(39),s=n(14),u=n(10),a=n(28),l=i([].push),c=function(t){var e=1==t,n=2==t,i=3==t,c=4==t,f=6==t,p=7==t,h=5==t||f;return function(d,v,g,y){for(var b,m,x=s(d),_=o(x),O=r(v,g),w=u(_),S=0,E=y||a,k=e?E(d,w):n||p?E(d,0):void 0;w>S;S++)if((h||S in _)&&(b=_[S],m=O(b,S,x),t))if(e)k[S]=m;else if(m)switch(t){case 3:return!0;case 5:return b;case 6:return S;case 2:l(k,b)}else switch(t){case 4:return!1;case 7:l(k,b)}return f?-1:i||c?c:k}};t.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n(\"Maximum allowed index exceeded\");return t}},function(t,e,n){var r,i,o=n(4),s=n(97),u=o.process,a=o.Deno,l=u&&u.versions||a&&a.version,c=l&&l.v8;c&&(r=c.split(\".\"),i=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&s&&(!(r=s.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\\/(\\d+)/))&&(i=+r[1]),t.exports=i},function(t,e,n){var r=n(40),i=TypeError;t.exports=function(t){if(r(t))throw i(\"Can't call method on \"+t);return t}},function(t,e,n){var r=n(2),i=n(74),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+\" is not a function\")}},function(t,e,n){\"use strict\";var r=n(0);t.exports=function(t,e){var n=[][t];return!!n&&r(function(){n.call(null,e||function(){return 1},1)})}},function(t,e,n){\"use strict\";var r=n(5),i=n(18),o=TypeError,s=Object.getOwnPropertyDescriptor,u=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=u?function(t,e){if(i(t)&&!s(t,\"length\").writable)throw o(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(94);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},function(t,e,n){var r=n(51),i=n(2),o=n(15),s=n(9),u=s(\"toStringTag\"),a=Object,l=\"Arguments\"==o(function(){return arguments}()),c=function(t,e){try{return t[e]}catch(t){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=c(e=a(t),u))?n:l?o(e):\"Object\"==(r=o(e))&&i(e.callee)?\"Arguments\":r}},function(t,e,n){var r=n(5),i=n(13),o=n(31);t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){\"use strict\";var r=n(50),i=n(13),o=n(31);t.exports=function(t,e,n){var s=r(e);s in t?i.f(t,s,o(0,n)):t[s]=n}},function(t,e,n){var r=n(4),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},function(t,e,n){var r=n(0);t.exports=!r(function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")})},function(t,e,n){var r=n(5),i=n(7),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,u=i(o,\"name\"),a=u&&\"something\"===function(){}.name,l=u&&(!r||r&&s(o,\"name\").configurable);t.exports={EXISTS:u,PROPER:a,CONFIGURABLE:l}},function(t,e,n){var r=n(15),i=n(1);t.exports=function(t){if(\"Function\"===r(t))return i(t)}},function(t,e){t.exports={}},function(t,e,n){var r=n(1),i=n(0),o=n(15),s=Object,u=r(\"\".split);t.exports=i(function(){return!s(\"z\").propertyIsEnumerable(0)})?function(t){return\"String\"==o(t)?u(t,\"\"):s(t)}:s},function(t,e){t.exports=function(t){return null===t||void 0===t}},function(t,e,n){var r=n(17),i=n(2),o=n(44),s=n(76),u=Object;t.exports=s?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return i(e)&&o(e.prototype,u(t))}},function(t,e,n){var r,i=n(6),o=n(107),s=n(34),u=n(38),a=n(101),l=n(60),c=n(70),f=c(\"IE_PROTO\"),p=function(){},h=function(t){return\"