{"version":3,"file":"js/app.7224c0db.js","mappings":"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","sources":["webpack://@minids/Orion-Nebula/./src/MainContent.vue?ca0d","webpack://@minids/Orion-Nebula/../common/dist/src/keyboard.js","webpack://@minids/Orion-Nebula/../common/dist/src/components/MiniDSBase.js","webpack://@minids/Orion-Nebula/../common/dist/src/background.js","webpack://@minids/Orion-Nebula/./src/data/proplyds_data(150).ts","webpack://@minids/Orion-Nebula/./src/data/jumbo_data(42).ts","webpack://@minids/Orion-Nebula/./src/MainContent.vue?81da","webpack://@minids/Orion-Nebula/./src/MainContent.vue","webpack://@minids/Orion-Nebula/./src/FolderView.vue?1a1e","webpack://@minids/Orion-Nebula/./src/FolderView.vue?8575","webpack://@minids/Orion-Nebula/./src/FolderView.vue","webpack://@minids/Orion-Nebula/./plugins/vuetify.ts","webpack://@minids/Orion-Nebula/./src/main.ts","webpack://@minids/Orion-Nebula/webpack/bootstrap","webpack://@minids/Orion-Nebula/webpack/runtime/chunk loaded","webpack://@minids/Orion-Nebula/webpack/runtime/compat get default export","webpack://@minids/Orion-Nebula/webpack/runtime/create fake namespace object","webpack://@minids/Orion-Nebula/webpack/runtime/define property getters","webpack://@minids/Orion-Nebula/webpack/runtime/ensure chunk","webpack://@minids/Orion-Nebula/webpack/runtime/get javascript chunk filename","webpack://@minids/Orion-Nebula/webpack/runtime/get mini-css chunk filename","webpack://@minids/Orion-Nebula/webpack/runtime/global","webpack://@minids/Orion-Nebula/webpack/runtime/hasOwnProperty shorthand","webpack://@minids/Orion-Nebula/webpack/runtime/load script","webpack://@minids/Orion-Nebula/webpack/runtime/make namespace object","webpack://@minids/Orion-Nebula/webpack/runtime/publicPath","webpack://@minids/Orion-Nebula/webpack/runtime/jsonp chunk loading","webpack://@minids/Orion-Nebula/webpack/startup"],"sourcesContent":["import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vShow as _vShow, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, normalizeStyle as _normalizeStyle, withKeys as _withKeys, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from './assets/logo_wwt.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-798b3be3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"main-content\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"link\", {\n rel: \"stylesheet\",\n href: \"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css\"\n}, null, -1))\nconst _hoisted_3 = { class: \"hamb-icon-container\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fas fa-sliders-h\",\n style: {\"font-size\":\"24px\"}\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fas fa-regular fa-info-circle\" }, null, -1))\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fas fa-solid fa-star\" }, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://arxiv.org/abs/2310.01231\",\n target: \"_blank\",\n style: {\"text-decoration\":\"none\",\"color\":\"inherit\"},\n onmouseover: \"this.style.textDecoration='none';\",\n onmouseout: \"this.style.textDecoration='none';\"\n}, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fas fa-regular fa-newspaper\" }),\n /*#__PURE__*/_createTextVNode(\" JuMBOs publication \")\n], -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://arxiv.org/abs/astro-ph/0506650\",\n target: \"_blank\",\n style: {\"text-decoration\":\"none\",\"color\":\"inherit\"},\n onmouseover: \"this.style.textDecoration='none';\",\n onmouseout: \"this.style.textDecoration='none';\"\n}, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fas fa-regular fa-newspaper\" }),\n /*#__PURE__*/_createTextVNode(\" Proplyds publication \")\n], -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"li\", { class: \"hamb-menu-items\" }, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://www.rocketcenter.com/INTUITIVEPlanetarium/InteractiveAstronomy\",\n target: \"_blank\",\n style: {\"text-decoration\":\"none\",\"color\":\"inherit\"},\n onmouseover: \"this.style.textDecoration='none';\",\n onmouseout: \"this.style.textDecoration='none';\"\n }, [\n /*#__PURE__*/_createElementVNode(\"i\", { class: \"fas fa-solid fa-rocket\" }),\n /*#__PURE__*/_createElementVNode(\"i\", null, \" INTUITIVE\"),\n /*#__PURE__*/_createElementVNode(\"sup\", null, \"®\"),\n /*#__PURE__*/_createTextVNode(\" Planetarium \")\n ])\n], -1))\nconst _hoisted_13 = { class: \"bg-menu-container\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", {\n style: {\"text-shadow\":\"0px 0px 5px black\"},\n class: \"bg-menu-text\"\n}, \"Sky survey: \", -1))\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = {\n key: 0,\n class: \"intro-container\"\n}\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fas fa-times\",\n style: {\"font-size\":\"20px\"}\n}, null, -1))\nconst _hoisted_18 = [\n _hoisted_17\n]\nconst _hoisted_19 = { style: {\"font-size\":\"18px\",\"font-family\":\"'Roboto'\",\"margin-bottom\":\"1em\"} }\nconst _hoisted_20 = {\n class: \"text\",\n style: {\"font-size\":\"14px\",\"margin-bottom\":\"1em\"}\n}\nconst _hoisted_21 = { style: {\"font-size\":\"14px\",\"margin-bottom\":\"1em\"} }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { style: {\"font-size\":\"14px\",\"margin-bottom\":\"1em\"} }, [\n /*#__PURE__*/_createTextVNode(\" Interactive created by \"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://twitter.com/ADavidWeigel\",\n target: \"_blank\",\n class: \"links\",\n style: {\"margin-right\":\"0.5em\"}\n }, \"A. David Weigel\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://www.linkedin.com/in/erika-s-a37431153/\",\n target: \"_blank\",\n class: \"links\",\n style: {\"margin-right\":\"0.5em\"}\n }, \"Érika Silva\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://newton.cx/~peter/\",\n target: \"_blank\",\n class: \"links\",\n style: {\"margin-right\":\"0.5em\"}\n }, \"Peter K. G. Williams\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://www.jcarifio.com/projects\",\n target: \"_blank\",\n class: \"links\",\n style: {\"margin-right\":\"0.5em\"}\n }, \"Jon Carifio\")\n], -1))\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { style: {\"font-size\":\"14px\"} }, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://worldwidetelescope.org/home/\",\n target: \"_blank\",\n class: \"links\"\n }, [\n /*#__PURE__*/_createTextVNode(\" Powered by WorldWide Telescope\"),\n /*#__PURE__*/_createElementVNode(\"a\", null, [\n /*#__PURE__*/_createElementVNode(\"img\", {\n alt: \"WWT Logo\",\n src: _imports_0,\n width: \"20\",\n height: \"20\",\n style: {\"vertical-align\":\"middle\",\"margin-left\":\"0.5em\"}\n })\n ])\n ])\n], -1))\nconst _hoisted_24 = {\n key: 1,\n class: \"description-container\"\n}\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fas fa-times\",\n style: {\"font-size\":\"20px\"}\n}, null, -1))\nconst _hoisted_26 = [\n _hoisted_25\n]\nconst _hoisted_27 = { style: {\"font-size\":\"18px\",\"margin-bottom\":\"1em\"} }\nconst _hoisted_28 = { style: {\"font-size\":\"16px\",\"margin-bottom\":\"1em\"} }\nconst _hoisted_29 = { style: {\"font-size\":\"16px\"} }\nconst _hoisted_30 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { style: {\"font-size\":\"16px\",\"margin-left\":\"0.5em\"} }, \" - \", -1))\nconst _hoisted_31 = [\"href\"]\nconst _hoisted_32 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", { style: {\"vertical-align\":\"middle\",\"margin-left\":\"0.5em\"} }, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fas fa-solid fa-rocket\",\n style: {\"margin-right\":\"0.5em\"}\n })\n], -1))\nconst _hoisted_33 = {\n class: \"modal\",\n id: \"modal-loading\"\n}\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"container\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"spinner\" }),\n /*#__PURE__*/_createElementVNode(\"p\", null, \"Loading …\")\n], -1))\nconst _hoisted_35 = [\n _hoisted_34\n]\nconst _hoisted_36 = { class: \"jumbos-container\" }\nconst _hoisted_37 = { class: \"proplyds-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_WorldWideTelescope = _resolveComponent(\"WorldWideTelescope\")!\n const _component_v_checkbox = _resolveComponent(\"v-checkbox\")!\n const _component_folder_view = _resolveComponent(\"folder-view\")!\n const _component_v_app = _resolveComponent(\"v-app\")!\n\n return (_openBlock(), _createBlock(_component_v_app, {\n id: \"app\",\n style: _normalizeStyle(_ctx.cssVars)\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_WorldWideTelescope, {\n \"wwt-namespace\": _ctx.wwtNamespace,\n onPointerdown: _ctx.wwtOnPointerDown,\n onPointermove: _ctx.wwtOnPointerMove,\n onPointerup: _ctx.wwtOnPointerUp\n }, null, 8, [\"wwt-namespace\", \"onPointerdown\", \"onPointermove\", \"onPointerup\"]),\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n class: \"menu-toggle\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggleMenu && _ctx.toggleMenu(...args)))\n }, _hoisted_5),\n _createElementVNode(\"div\", {\n class: _normalizeClass({ fullscreen: _ctx.fullscreen })\n }, [\n _createElementVNode(\"button\", {\n class: \"fullscreen-button\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.toggleFullscreen && _ctx.toggleFullscreen(...args)))\n }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(_ctx.fullscreen ? 'fas fa-compress fa-lg' : 'fas fa-expand fa-lg')\n }, null, 2)\n ])\n ], 2),\n _createElementVNode(\"ul\", {\n class: _normalizeClass([\"hamb-menu-container\", {'show': _ctx.isMenuOpen }])\n }, [\n _createElementVNode(\"li\", {\n class: \"hamb-menu-items\",\n style: {\"cursor\":\"pointer\"},\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.openIntro && _ctx.openIntro(...args)))\n }, [\n _hoisted_6,\n _createTextVNode(\" Overview \")\n ]),\n _createElementVNode(\"li\", {\n class: \"hamb-menu-items\",\n style: {\"cursor\":\"pointer\"},\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.toggleBgButton && _ctx.toggleBgButton(...args)))\n }, [\n _hoisted_7,\n _createTextVNode(\" Choose sky survey \")\n ]),\n _createElementVNode(\"li\", {\n class: \"hamb-menu-items\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.toggleLink && _ctx.toggleLink(...args)))\n }, _hoisted_9),\n _createElementVNode(\"li\", {\n class: \"hamb-menu-items\",\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.toggleLink && _ctx.toggleLink(...args)))\n }, _hoisted_11),\n _hoisted_12\n ], 2)\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n _withDirectives(_createElementVNode(\"select\", {\n style: {\"text-shadow\":\"0px 0px 2px black\"},\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.curForegroundImagesetName) = $event)),\n class: \"bg-menu\",\n onChange: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.hideMenu && _ctx.hideMenu(...args)))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.backgroundImagesets, (bg) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: bg.imagesetName,\n key: bg.imagesetName,\n class: \"custom-option\"\n }, _toDisplayString(bg.displayName), 9, _hoisted_15))\n }), 128))\n ], 544), [\n [_vModelSelect, _ctx.curForegroundImagesetName]\n ])\n ], 512), [\n [_vShow, _ctx.showBgButton]\n ]),\n (_ctx.showIntro)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", {\n class: \"close-intro\",\n onClick: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.closeIntro && _ctx.closeIntro(...args)))\n }, _hoisted_18),\n _createElementVNode(\"h1\", _hoisted_19, _toDisplayString(_ctx.introTitle), 1),\n _createElementVNode(\"p\", _hoisted_20, _toDisplayString(_ctx.introText), 1),\n _createElementVNode(\"p\", _hoisted_21, _toDisplayString(_ctx.introInstructions), 1),\n _hoisted_22,\n _hoisted_23\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showDescription)\n ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", {\n class: \"close-description\",\n onClick: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.closeDescription && _ctx.closeDescription(...args)))\n }, _hoisted_26),\n _createElementVNode(\"h1\", _hoisted_27, _toDisplayString(_ctx.descrTitles), 1),\n _createElementVNode(\"p\", _hoisted_28, _toDisplayString(_ctx.descriptions), 1),\n _createElementVNode(\"p\", _hoisted_29, [\n _createElementVNode(\"i\", null, \" Credits: \" + _toDisplayString(_ctx.descrCredits), 1),\n _hoisted_30,\n _createElementVNode(\"a\", {\n href: _ctx.descrCreditsURL,\n target: \"_blank\",\n class: \"links\"\n }, [\n _hoisted_32,\n _createTextVNode(\"Learn more \")\n ], 8, _hoisted_31)\n ])\n ], 512)), [\n [_vShow, !_ctx.showBgButton]\n ])\n : _createCommentVNode(\"\", true),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", _hoisted_33, _hoisted_35, 512), [\n [_vShow, _ctx.isLoading]\n ])\n ]),\n _: 1\n }),\n _withDirectives(_createElementVNode(\"div\", {\n id: \"circle-popover\",\n style: _normalizeStyle(_ctx.popoverCssVars)\n }, _toDisplayString(_ctx.lastClosePt?.name), 5), [\n [_vShow, _ctx.lastClosePt !== null]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_36, [\n _createVNode(_component_v_checkbox, {\n color: _ctx.color1,\n modelValue: _ctx.jumbos,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.jumbos) = $event)),\n style: {\"font-size\":\"10px\"},\n onKeyup: _cache[11] || (_cache[11] = _withKeys(($event: any) => (_ctx.jumbos = !_ctx.jumbos), [\"enter\"])),\n class: \"jumbos-checkbox\",\n label: \"JuMBOs\",\n \"hide-details\": \"\"\n }, null, 8, [\"color\", \"modelValue\"])\n ], 512), [\n [_vShow, _ctx.showJumbosButton]\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_37, [\n _createVNode(_component_v_checkbox, {\n color: _ctx.color3,\n modelValue: _ctx.proplyds,\n \"onUpdate:modelValue\": _cache[12] || (_cache[12] = ($event: any) => ((_ctx.proplyds) = $event)),\n style: {\"font-size\":\"10px\"},\n onKeyup: _cache[13] || (_cache[13] = _withKeys(($event: any) => (_ctx.proplyds = !_ctx.proplyds), [\"enter\"])),\n class: \"proplyds-checkbox\",\n label: \"PROPLYDS\",\n \"hide-details\": \"\"\n }, null, 8, [\"color\", \"modelValue\"])\n ], 512), [\n [_vShow, _ctx.showProplydsButton]\n ]),\n _withDirectives(_createElementVNode(\"div\", {\n onClick: _cache[14] || (_cache[14] = \n//@ts-ignore\n(...args) => (_ctx.toggleFolderView && _ctx.toggleFolderView(...args)))\n }, [\n (_ctx.imagesetFolder !== null)\n ? (_openBlock(), _createBlock(_component_folder_view, {\n key: 0,\n sliders: \"\",\n expandable: \"\",\n thumbnails: true,\n open: _ctx.mobile ? true : true,\n \"root-folder\": _ctx.imagesetFolder,\n incomingItemSelect: _ctx.incomingItemSelect,\n \"flex-direction\": \"column\",\n onSelect: _ctx.onItemSelected,\n onOpacity: _ctx.onOpacityChanged\n }, null, 8, [\"open\", \"root-folder\", \"incomingItemSelect\", \"onSelect\", \"onOpacity\"]))\n : _createCommentVNode(\"\", true)\n ], 512), [\n [_vShow, _ctx.showFolderView]\n ])\n ])\n ]),\n _: 1\n }, 8, [\"style\"]))\n}","import { __values } from \"tslib\";\r\nvar KeyPressInfo = /** @class */ (function () {\r\n function KeyPressInfo(code, modifiers) {\r\n var _a, _b, _c, _d;\r\n this.code = code;\r\n this.ctrl = (_a = modifiers === null || modifiers === void 0 ? void 0 : modifiers.ctrl) !== null && _a !== void 0 ? _a : false;\r\n this.alt = (_b = modifiers === null || modifiers === void 0 ? void 0 : modifiers.alt) !== null && _b !== void 0 ? _b : false;\r\n this.shift = (_c = modifiers === null || modifiers === void 0 ? void 0 : modifiers.shift) !== null && _c !== void 0 ? _c : false;\r\n this.meta = (_d = modifiers === null || modifiers === void 0 ? void 0 : modifiers.meta) !== null && _d !== void 0 ? _d : false;\r\n }\r\n KeyPressInfo.prototype.matches = function (event) {\r\n return (event.code === this.code &&\r\n event.ctrlKey === this.ctrl &&\r\n event.altKey === this.alt &&\r\n event.shiftKey === this.shift &&\r\n event.metaKey === this.meta);\r\n };\r\n return KeyPressInfo;\r\n}());\r\nvar KeyboardControlSettings = /** @class */ (function () {\r\n function KeyboardControlSettings(_a) {\r\n var _b = _a.zoomIn, zoomIn = _b === void 0 ? [new KeyPressInfo(\"KeyI\")] : _b, _c = _a.zoomOut, zoomOut = _c === void 0 ? [new KeyPressInfo(\"KeyO\")] : _c, _d = _a.moveUp, moveUp = _d === void 0 ? [new KeyPressInfo(\"KeyW\")] : _d, _e = _a.moveLeft, moveLeft = _e === void 0 ? [new KeyPressInfo(\"KeyA\")] : _e, _f = _a.moveDown, moveDown = _f === void 0 ? [new KeyPressInfo(\"KeyS\")] : _f, _g = _a.moveRight, moveRight = _g === void 0 ? [new KeyPressInfo(\"KeyD\")] : _g, _h = _a.moveAmount, moveAmount = _h === void 0 ? 20 : _h;\r\n // This is to make sure that we can't make a listener for an action type that doesn't exist\r\n this.actionTypes = [\r\n \"zoomIn\",\r\n \"zoomOut\",\r\n \"moveUp\",\r\n \"moveDown\",\r\n \"moveLeft\",\r\n \"moveRight\",\r\n ];\r\n this.zoomIn = zoomIn;\r\n this.zoomOut = zoomOut;\r\n this.moveUp = moveUp;\r\n this.moveDown = moveDown;\r\n this.moveLeft = moveLeft;\r\n this.moveRight = moveRight;\r\n this.moveAmount = moveAmount;\r\n }\r\n KeyboardControlSettings.prototype.makeListener = function (actionName, action) {\r\n var _this = this;\r\n return function (e) {\r\n var e_1, _a;\r\n try {\r\n for (var _b = __values(_this[actionName]), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var keyPress = _c.value;\r\n if (keyPress.matches(e)) {\r\n action();\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n };\r\n };\r\n return KeyboardControlSettings;\r\n}());\r\nexport { KeyboardControlSettings };\r\n//# sourceMappingURL=keyboard.js.map","import { defineComponent } from \"vue\";\r\nimport { WWTAwareComponent } from \"@wwtelescope/engine-pinia\";\r\nimport { KeyboardControlSettings } from \"../keyboard\";\r\nimport screenfull from \"screenfull\";\r\nvar defaultWindowShape = { width: 1200, height: 900 };\r\nexport default defineComponent({\r\n extends: WWTAwareComponent,\r\n props: {\r\n kcs: { type: KeyboardControlSettings, default: new KeyboardControlSettings({}) }\r\n },\r\n data: function () {\r\n return {\r\n fullscreenModeActive: false,\r\n resizeObserver: null,\r\n touchscreen: false,\r\n windowShape: defaultWindowShape,\r\n };\r\n },\r\n created: function () {\r\n this.touchscreen = matchMedia('(hover: none)').matches;\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n if (screenfull.isEnabled) {\r\n screenfull.on(\"change\", this.onFullscreenEvent);\r\n }\r\n // ResizeObserver not yet in TypeScript but we should start using it when\r\n // available. If we're in an iframe, our shape might change spontaneously.\r\n this.resizeObserver = new ResizeObserver(function (_entries) { return _this.onResizeEvent(); });\r\n this.resizeObserver.observe(this.$el);\r\n this.onResizeEvent();\r\n // Handling key presses\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"zoomIn\", function () { return _this.doZoom(true); }));\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"zoomOut\", function () { return _this.doZoom(false); }));\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"moveUp\", function () {\r\n return _this.doMove(0, _this.kcs.moveAmount);\r\n }));\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"moveDown\", function () {\r\n return _this.doMove(0, -_this.kcs.moveAmount);\r\n }));\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"moveLeft\", function () {\r\n return _this.doMove(_this.kcs.moveAmount, 0);\r\n }));\r\n window.addEventListener(\"keydown\", this.kcs.makeListener(\"moveRight\", function () {\r\n return _this.doMove(-_this.kcs.moveAmount, 0);\r\n }));\r\n },\r\n destroyed: function () {\r\n var _a;\r\n if (screenfull.isEnabled) {\r\n screenfull.off(\"change\", this.onFullscreenEvent);\r\n }\r\n (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this.$el);\r\n },\r\n methods: {\r\n doZoom: function (zoomIn) {\r\n if (zoomIn) {\r\n this.zoom(1 / 1.3);\r\n }\r\n else {\r\n this.zoom(1.3);\r\n }\r\n },\r\n doMove: function (x, y) {\r\n this.move({ x: x, y: y });\r\n },\r\n onFullscreenEvent: function () {\r\n // NB: we need the isEnabled check to make TypeScript happy even though it\r\n // is not necessary in practice here.\r\n if (screenfull.isEnabled) {\r\n this.fullscreenModeActive = screenfull.isFullscreen;\r\n }\r\n },\r\n onResizeEvent: function () {\r\n var width = this.$el.clientWidth;\r\n var height = this.$el.clientHeight;\r\n if (width > 0 && height > 0) {\r\n this.windowShape = { width: width, height: height };\r\n }\r\n else {\r\n this.windowShape = defaultWindowShape;\r\n }\r\n },\r\n blurActiveElement: function () {\r\n var active = document.activeElement;\r\n if (active instanceof HTMLElement) {\r\n active.blur();\r\n }\r\n }\r\n },\r\n computed: {\r\n fullscreenAvailable: function () {\r\n return screenfull.isEnabled;\r\n }\r\n }\r\n});\r\n//# sourceMappingURL=MiniDSBase.js.map","var BackgroundImageset = /** @class */ (function () {\r\n function BackgroundImageset(displayName, imagesetName) {\r\n this.displayName = displayName;\r\n this.imagesetName = imagesetName;\r\n }\r\n return BackgroundImageset;\r\n}());\r\nexport { BackgroundImageset };\r\nexport var skyBackgroundImagesets = [\r\n new BackgroundImageset(\"Optical (Terapixel DSS)\", \"Digitized Sky Survey (Color)\"),\r\n new BackgroundImageset(\"Low-frequency radio (VLSS)\", \"VLSS: VLA Low-frequency Sky Survey (Radio)\"),\r\n new BackgroundImageset(\"Infrared (2MASS)\", \"2Mass: Imagery (Infrared)\"),\r\n new BackgroundImageset(\"Infrared (SFD dust map)\", \"SFD Dust Map (Infrared)\"),\r\n new BackgroundImageset(\"Ultraviolet (GALEX)\", \"GALEX (Ultraviolet)\"),\r\n new BackgroundImageset(\"X-Ray (ROSAT RASS)\", \"RASS: ROSAT All Sky Survey (X-ray)\"),\r\n new BackgroundImageset(\"Gamma Rays (FERMI LAT 8-year)\", \"Fermi LAT 8-year (gamma)\"),\r\n];\r\n//# sourceMappingURL=background.js.map","// These are the proplyds candidates \nexport const proplydsCsv = `Name,RA,DEC\n4596-400,83.74794769066474,-5.400070178067461\n005-514,83.75173935733135,-5.42062573362302\n044-527,83.76823935733134,-5.42426462251191\nd053-717,83.77232269066474,-5.45476462251191\n064-705,83.77653102399805,-5.451292400289691\n066-652,83.77728102399804,-5.447764622511911\n069-600,83.77857269066475,-5.43351462251191\nd072-135,83.77978102399804,-5.3595424002896905\n073-227,83.78007269066474,-5.3740424002896905\n097-125,83.79011435733133,-5.356903511400801\n102-233,83.79203102399804,-5.3757368447341305\n102-021,83.79223935733134,-5.339181289178571\n106-156,83.79382269066474,-5.365625733623021\n106-417,83.79369769066474,-5.40462573362302\nd109-247,83.79519769066474,-5.37954240028969\nd109-327,83.79536435733134,-5.390709066956351\n109-449,83.79536435733134,-5.413514622511911\nd110-3035,83.79557269066474,-5.50976462251191\nd114-426,83.79690602399803,-5.407320178067461\n117-025,83.79861435733135,-5.34029240028969\nd117-352,83.79861435733135,-5.3977090669563506\n119-340,83.79936435733134,-5.3944035114008\nd121-192,83.80015602399804,-5.32354240028969\n121-434,83.80028102399804,-5.4094035114008\nd124-132,83.80136435733134,-5.35873684473413\n131-046,83.80419769066474,-5.34607017806746\n131-247,83.80436435733134,-5.37979240028969\nd132-042,83.80494769066473,-5.34495906695635\nd132-183,83.80490602399804,-5.3091535114008\nd135-220,83.80607269066473,-5.37209795584524\n138-207,83.80723935733134,-5.36862573362302\n139-320,83.80778102399805,-5.38893128917857\n140-1952,83.80832269066474,-5.33112573362302\nd141-520,83.80832269066474,-5.42232017806746\nd141-301,83.80873935733133,-5.38362573362302\n143-425,83.80919769066475,-5.40687573362302\nd143-522,83.80953102399803,-5.42282017806746\n144-334,83.80969769066473,-5.3926812891785705\nd147-323,83.81111435733133,-5.3897090669563505\n150-231,83.81236435733133,-5.3752924002896805\n152-319,83.81311435733134,-5.388570178067461\n152-738,83.81315602399803,-5.46048684473413\n153-1902,83.81373935733134,-5.31726462251191\n154-324,83.81373935733134,-5.3900424002896905\n154-225,83.81382269066474,-5.3737090669563505\nd154-240,83.81386435733134,-5.3777646225119105\nd155-338,83.81444769066474,-5.39373684473413\n156-403,83.81482269066474,-5.400847955845241\n157-533,83.81507269066473,-5.42584795584524\n157-323,83.81528102399804,-5.38957017806746\nd158-326,83.81557269066474,-5.39073684473413\nd158-327,83.81578102399804,-5.39043128917857\n158-323,83.81573935733134,-5.38957017806746\n159-338,83.81603102399804,-5.3938757336230205\nd159-418,83.81603102399804,-5.40493128917857\n159-350,83.81623935733134,-5.397209066956351\n160-353,83.81644769066475,-5.39807017806746\n161-324,83.81669769066474,-5.39009795584524\nd161-328,83.81673935733134,-5.39107017806746\n161-314,83.81686435733134,-5.387292400289691\n163-317,83.81761435733134,-5.387931289178571\nd163-026,83.81765602399804,-5.3404035114008\nd163-222,83.81769769066474,-5.3726535114008005\n163-249,83.81782269066474,-5.38029240028969\n164-511,83.81794769066474,-5.41932017806746\n165-235,83.81844769066474,-5.37643128917857\nd165-254,83.81869769066473,-5.38157017806746\n166-519,83.81886435733134,-5.42157017806746\n166-250,83.81890602399804,-5.3806535114008005\n166-316,83.81898935733133,-5.387820178067461\nd167-231,83.81948935733134,-5.375347955845241\n167-317,83.81957269066474,-5.387820178067461\n168-328,83.81961435733135,-5.39112573362302\n168-235,83.81990602399804,-5.37626462251191\n168-326,83.81994769066473,-5.39062573362302\n169-338,83.82011435733133,-5.393903511400801\nd170-249,83.82048935733134,-5.38018128917857\n170-337,83.82061435733134,-5.39362573362302\nd171-340,83.82082269066474,-5.39437573362302\n171-334,83.82086435733135,-5.3927924002896805\nd172-028,83.82153102399803,-5.341014622511911\n173-341,83.82194769066474,-5.394847955845241\nd174-236,83.82203102399804,-5.376597955845241\n174-414,83.82223935733134,-5.40379240028969\n175-251,83.82261435733135,-5.38093128917857\nd175-355,83.82286435733134,-5.39862573362302\nd176-543,83.82290602399804,-5.42851462251191\n176-325,83.82290602399804,-5.3902368447341305\nd177-341,83.82340602399805,-5.39468128917857\n177-454,83.82348935733134,-5.41495906695635\nd177-541,83.82357269066473,-5.42798684473413\n177-444,83.82365602399804,-5.4120979558452404\nd179-353,83.82461435733134,-5.39820906695635\n180-331,83.82494769066474,-5.39187573362302\nd181-247,83.82511435733134,-5.37973684473413\nd181-825,83.82519769066474,-5.473597955845241\nd182-332,83.82557269066474,-5.392097955845241\nd182-413,83.82569769066474,-5.403709066956351\n182-316,83.82578102399803,-5.387681289178571\n183-439,83.82594769066473,-5.410736844734131\nd183-419,83.82607269066474,-5.405209066956351\nd183-405,83.82615602399804,-5.40129240028969\n184-427,83.82623935733135,-5.4074035114008\n184-520,83.82665602399804,-5.42198684473413\n189-329,83.82840602399804,-5.391347955845241\n191-350,83.82923935733135,-5.397070178067461\nd191-232,83.82946852399805,-5.37537573362302\nd197-427,83.83169769066474,-5.407320178067461\n198-222,83.83236435733134,-5.3726535114008005\n198-448,83.83244769066474,-5.41326462251191\n201-534,83.83373935733134,-5.426014622511911\n202-228,83.83373935733134,-5.37451462251191\nd203-504,83.83423935733134,-5.41773684473413\nd203-506,83.83444769066475,-5.418181289178571\n205-330,83.83503102399804,-5.39157017806746\n205-052,83.83528102399804,-5.34779240028969\nd205-421,83.83536435733134,-5.40576462251191\nd206-446,83.83573935733133,-5.4128479558452405\n208-122,83.83661435733134,-5.35595906695635\n212-557,83.83794769066473,-5.43245906695635\n212-260,83.83828102399804,-5.38318128917857\n213-346,83.83857269066473,-5.39609795584524\n215-317,83.83940602399804,-5.387931289178571\nd216-0939,83.83965602399805,-5.16079240028969\n218-339,83.84048935733134,-5.394209066956351\nd218-354,83.84065602399804,-5.3982368447341305\nd218-529,83.84073935733134,-5.424514622511911\n221-433,83.84182269066474,-5.40907017806746\n224-728,83.84303102399804,-5.45784795584524\n228-548,83.84490602399804,-5.429847955845241\n231-502,83.84628102399805,-5.417264622511911\n232-453,83.84648935733134,-5.4146535114008\n236-527,83.84811435733134,-5.423986844734131\n237-627,83.84836435733133,-5.440820178067461\nd239-334,83.84923935733134,-5.39276462251191\n239-510,83.84969769066474,-5.419375733623021\n240-314,83.84998935733134,-5.3871535114008005\n242-519,83.85086435733135,-5.421820178067461\nd244-440,83.85161435733134,-5.41104240028969\n245-632,83.85169769066474,-5.44204240028969\n245-502,83.85190602399804,-5.41707017806746\n247-436,83.85269769066474,-5.4098757336230205\n250-439,83.85407269066474,-5.410653511400801\nd252-457,83.85482269066473,-5.41587573362302\nd253-1536,83.85519769066474,-5.259847955845241\n264-532,83.85986435733133,-5.4254035114008\nd280-1720,83.86661435733134,-5.288931289178571\n282-458,83.86732269066474,-5.416153511400801\nd294-606,83.87261435733134,-5.4351535114008005\nd347-1535,83.89423935733134,-5.2596535114008`","export const jumbosCsv = `Name,RA,DEC,M,Pri,Av,Pri.1,M.1,Sec,Av.1,Sec.1,Proj,Sep,M.2,Ter,Av.2,Ter.1\r\nJuMBO 1,83.7161351188129,-5.37461866285444,0.001,6.3,0.001,4.3,357.7,-,-,,,,,,,\r\nJuMBO 2,83.7181991188129,-5.39151566285444,0.002,16.4,0.002,13.1,114.7,-,-,,,,,,,\r\nJuMBO 3,83.7206141188129,-5.379521662854439,0.003,19.7,0.003,10.8,52.3,-,-,,,,,,,\r\nJuMBO 4,83.7271401188129,-5.44485166285444,0.002,23.7,0.001,10.6,324.4,-,-,,,,,,,\r\nJuMBO 5,83.7277571188129,-5.38938966285444,0.003,10.0,0.002,32.8,384.3,-,-,,,,,,,\r\nJuMBO 6,83.7339161188129,-5.3687336628544395,0.003,46.6,0.003,56.5,70.2,-,-,,,,,,,\r\nJuMBO 7,83.7347721188129,-5.3876246628544395,0.001,17.4,0.001,17.3,119.0,-,-,,,,,,,\r\nJuMBO 8,83.7357611188129,-5.445592662854439,0.002,21.0,0.002,15.9,101.2,-,-,,,,,,,\r\nJuMBO 9,83.7366441188129,-5.33210566285444,0.001,13.1,0.0007,8.8,211.5,-,-,,,,,,,\r\nJuMBO 10,83.7479091188129,-5.44562066285444,0.001,6.9,0.001,8.9,342.5,-,-,,,,,,,\r\nJuMBO 11,83.7531381188129,-5.43171866285444,0.0008,10.4,0.0007,15.9,192.2,-,-,,,,,,,\r\nJuMBO 12,83.7533401188129,-5.3545696628544395,0.003,20.1,0.001,19.8,366.2,-,-,,,,,,,\r\nJuMBO 13,83.7598241188129,-5.39354966285444,0.001,20.5,0.001,26.5,192.6,-,-,,,,,,,\r\nJuMBO 14,83.76681211881291,-5.40594666285444,0.009,39.5,0.008,36.0,55.6,-,-,,,,,,,\r\nJuMBO 15,83.7684551188129,-5.44018866285444,0.003,39.8,0.002,26.5,329.8,-,-,,,,,,,\r\nJuMBO 16,83.7691891188129,-5.41513966285444,0.001,5.3,0.001,6.5,273.9,-,-,,,,,,,\r\nJuMBO 17,83.7754581188129,-5.43290666285444,0.001,24.5,0.0006,10.7,194.9,-,-,,,,,,,\r\nJuMBO 18,83.7795091188129,-5.42404366285444,0.003,11.7,0.002,6.6,150.6,-,-,,,,,,,\r\nJuMBO 19,83.7854461188129,-5.34582366285444,0.003,22.6,0.002,31.5,273.6,-,-,,,,,,,\r\nJuMBO 20,83.78612411881291,-5.41149866285444,0.003,19.1,0.002,11.3,149.4,-,-,,,,,,,\r\nJuMBO 21,83.7885221188129,-5.398565662854439,0.007,74.2,0.002,26.1,200.5,-,-,,,,,,,\r\nJuMBO 22,83.8012221188129,-5.34268466285444,0.004,51.6,0.003,29.4,127.4,-,-,,,,,,,\r\nJuMBO 23,83.8288181188129,-5.44685066285444,0.004,35.2,0.002,11.3,314.7,-,-,,,,,,,\r\nJuMBO 24,83.8310221188129,-5.39429966285444,0.011,3.6,0.011,3.5,28.0,-,-,,,,,,,\r\nJuMBO 25,83.8362151188129,-5.37105466285444,0.005,14.2,0.004,16.4,46.1,0.004,6.1,,,,,,,\r\nJuMBO 26,83.8377671188129,-5.36647466285444,0.008,12.5,0.003,9.1,267.1,-,-,,,,,,,\r\nJuMBO 27,83.8463811188129,-5.39946366285444,0.009,2.4,0.002,2.8,333.1,-,-,,,,,,,\r\nJuMBO 28,83.8467001188129,-5.3926566628544395,0.011,8.7,0.009,20.1,58.9,-,-,,,,,,,\r\nJuMBO 29,83.8470121188129,-5.3466076628544394,0.012,11.9,0.003,14.4,135.0,-,-,,,,,,,\r\nJuMBO 30,83.8483001188129,-5.40589366285444,0.005,33.1,0.002,2.2,374.1,-,-,,,,,,,\r\nJuMBO 31,83.8564921188129,-5.3878276628544395,0.007,12.8,0.003,15.2,206.7,-,-,,,,,,,\r\nJuMBO 32,83.86021311881291,-5.38889666285444,0.004,14.4,0.003,11.9,118.0,-,-,,,,,,,\r\nJuMBO 33,83.8628461188129,-5.3881646628544395,0.004,17.8,0.004,23.1,73.7,-,-,,,,,,,\r\nJuMBO 34,83.8669811188129,-5.38854166285444,0.005,15.4,0.005,13.9,66.4,-,-,,,,,,,\r\nJuMBO 35,83.8681871188129,-5.389949662854439,0.004,10.1,0.003,10.3,84.5,-,-,,,,,,,\r\nJuMBO 36,83.8785631188129,-5.34020466285444,0.013,32.3,0.004,36.0,363.0,-,-,,,,,,,\r\nJuMBO 37,83.8820141188129,-5.33067566285444,0.003,18.3,0.002,32.2,317.6,-,-,,,,,,,\r\nJuMBO 38,83.8830271188129,-5.3518626628544395,0.004,27.8,0.002,24.4,213.6,-,-,,,,,,,\r\nJuMBO 39,83.8865491188129,-5.372862662854439,0.004,41.9,0.002,32.9,251.0,-,-,,,,,,,\r\nJuMBO 40,83.8866161188129,-5.3639616628544395,0.005,18.1,0.005,23.0,164.3,-,-,,,,,,,\r\nJuMBO 41,83.88701111881291,-5.375213662854439,0.011,31.7,0.0008,17.2,287.2,-,-,,,,,,,\r\nJuMBO 42,83.8973081188129,-5.33364366285444,0.003,17.8,0.0007,15.2,123.3,0.0007,10.8,,,,,,,\r\n`","\r\nimport { defineComponent } from 'vue';\r\nimport { csvFormatRows, csvParse } from \"d3-dsv\";\r\n\r\nimport { distance } from \"@wwtelescope/astro\";\r\nimport { Color, Constellations, Folder, Layer, LayerManager, Poly, RenderContext, Settings, SpreadSheetLayer, WWTControl } from \"@wwtelescope/engine\";\r\nimport { ImageSetType, MarkerScales, PlotTypes, PointScaleTypes, Thumbnail } from \"@wwtelescope/engine-types\";\r\n\r\nimport L, { LeafletMouseEvent, Map } from \"leaflet\";\r\nimport { tween } from \"femtotween\";\r\nimport { MiniDSBase, BackgroundImageset, skyBackgroundImagesets} from \"@minids/common\";\r\n\r\nimport { ImageSetLayer, Place, Imageset } from \"@wwtelescope/engine\";\r\n\r\nimport { ref, onMounted } from 'vue';\r\n\r\nimport { applyImageSetLayerSetting, applySpreadSheetLayerSetting } from \"@wwtelescope/engine-helpers\";\r\n\r\nimport { proplydsCsv } from \"./data/proplyds_data(150)\";\r\n\r\nimport { jumbosCsv } from \"./data/jumbo_data(42)\";\r\n\r\nimport { drawSkyOverlays, initializeConstellationNames, makeAltAzGridText, drawSpreadSheetLayer, layerManagerDraw } from \"./wwt-hacks\";\r\n\r\n\r\nfunction parseCsvTable(csv: string) {\r\n return csvParse(csv, (d) => {\r\n return {\r\n name: d.Name!, // + makes it a number - we don't want that here\r\n ra: +d.RA!,\r\n dec: +d.DEC!,\r\n };\r\n });\r\n}\r\n\r\nconst proplydsContainers = document.getElementsByClassName(\"proplyds-container\");\r\n\r\nfor (let i = 0; i < proplydsContainers.length; i++) {\r\n proplydsContainers[i].addEventListener(\"click\", function() {\r\n const proplydsIcon = proplydsContainers[i].querySelector(\".proplyds-icon\")\r\n if (proplydsIcon !== null) {\r\n proplydsIcon.classList.toggle(\"fa-toggle-on\");\r\n proplydsIcon.classList.toggle(\"fa-toggle-off\");\r\n\r\n if (proplydsIcon.classList.contains(\"fa-toggle-on\")) {\r\n proplydsIcon.classList.add(\"active\");\r\n } else {\r\n proplydsIcon.classList.remove(\"active\");\r\n }\r\n }\r\n\r\n });\r\n}\r\n\r\nconst proplydsTable = parseCsvTable(proplydsCsv);\r\ntype Table = typeof proplydsTable;\r\ntype TableRow = typeof proplydsTable[number];\r\n\r\nconst jumbosTable = parseCsvTable(jumbosCsv);\r\ntype TableJ = typeof jumbosTable;\r\ntype TableRowJ = typeof jumbosTable[number];\r\n\r\nfunction formatCsvTable(table: Table): string {\r\n return csvFormatRows([[\r\n \"Name\", \"RA\", \"Dec\"\r\n ]].concat(table.map((d, _i) => {\r\n return [\r\n d.name.toString(),\r\n d.ra.toString(),\r\n d.dec.toString(),\r\n ];\r\n }))).replace(/\\n/g, '\\r\\n');\r\n // By using a regex, we replace all instances.\r\n // For WWT implementation reasons (left over from \r\n // the Windows client?), we need the line endings \r\n // to be CRLF\r\n}\r\n\r\nconst proplydsString = formatCsvTable(proplydsTable);\r\nconst jumbosString = formatCsvTable(jumbosTable);\r\n\r\ninterface MoveOptions {\r\n instant?: boolean;\r\n zoomDeg?: number;\r\n rollRad?: number;\r\n}\r\n\r\nconst D2R = Math.PI / 180;\r\nconst R2D = 180 / Math.PI;\r\nconst hms2R = (360 * Math.PI) / 4320; // First convert to degrees and then to radians: ((1 / 24) * 360) * (Math.PI / 180);\r\n\r\ntype LocationRad = {\r\n longitudeRad: number;\r\n latitudeRad: number;\r\n};\r\n\r\ntype EquatorialRad = {\r\n raRad: number;\r\n decRad: number;\r\n};\r\n\r\ntype HorizontalRad = {\r\n altRad: number;\r\n azRad: number;\r\n};\r\n\r\ninterface PointData {\r\n x: number;\r\n y: number;\r\n ra: number;\r\n dec: number;\r\n name: string;\r\n color: Color;\r\n}\r\n\r\ntype ToolType = \"crossfade\" | \"choose-background\" | null;\r\ntype SheetType = \"text\" | \"video\" | null;\r\n\r\nexport default defineComponent({\r\n\r\n setup() {\r\n const fullscreen = ref(false);\r\n\r\n function toggleFullscreen() {\r\n if (!document.fullscreenElement) {\r\n document.documentElement.requestFullscreen().catch((err) => {\r\n console.log(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`);\r\n });\r\n } else {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n }\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n document.addEventListener('fullscreenchange', () => {\r\n fullscreen.value = !!document.fullscreenElement;\r\n });\r\n });\r\n\r\n return {\r\n fullscreen,\r\n toggleFullscreen\r\n };\r\n },\r\n\r\n extends: MiniDSBase,\r\n name: 'MyComponent',\r\n \r\n props: {\r\n wtml: {\r\n type: Object,\r\n required: true\r\n },\r\n wwtNamespace: {\r\n type: String,\r\n required: true\r\n },\r\n url: {\r\n type: String,\r\n required: true\r\n },\r\n thumbnailUrl: {\r\n type: String,\r\n required: true\r\n },\r\n bgWtml: {\r\n type: String,\r\n required: true\r\n },\r\n bgName: {\r\n type: String,\r\n required: true\r\n },\r\n fgName: {\r\n type: String,\r\n required: true\r\n },\r\n title: {\r\n required: true\r\n },\r\n introText: {\r\n required: true\r\n },\r\n introTitle: {\r\n required: true\r\n },\r\n introInstructions: {\r\n required: true\r\n },\r\n },\r\n \r\n data() {\r\n return {\r\n isMenuOpen: false,\r\n hiddenTitle: false,\r\n hiddenIntro: false,\r\n showIntro: true,\r\n showBgButton: false,\r\n showBgSlider: true,\r\n showFolderView: true,\r\n showProplydsButton: true,\r\n showJumbosButton: true,\r\n descriptions: '',\r\n descrTitles: '',\r\n descrCredits: '',\r\n descrCreditsURL: '',\r\n showDescription: false,\r\n showLeftMenu: false,\r\n showTitle: true,\r\n \r\n \r\n showSplashScreen: true,\r\n imagesetLayers: {} as Record,\r\n layersLoaded: false,\r\n positionSet: false,\r\n imagesetFolder: null as Folder | null,\r\n backgroundImagesets: [] as BackgroundImageset[],\r\n layers: {} as Record,\r\n\r\n color0: \"#ffffff\",\r\n color1: \"#298E00\",\r\n color2: \"#ffaa00\",\r\n color3: \"#FF00F7\",\r\n colorp: \"#8901bd\",\r\n color4: \"#00c9ff\",\r\n color5: \"#ff0000\",\r\n colorD: \"#45aecb\",\r\n // colorRed: \"#000000\",\r\n todayColor: \"#D6B004\",\r\n\r\n currentAllLayer: null as SpreadSheetLayer | null,\r\n\r\n proplyds: true,\r\n proplydsLayer: null as SpreadSheetLayer | null,\r\n\r\n jumbos: true,\r\n jumbosLayer: null as SpreadSheetLayer | null,\r\n\r\n incomingItemSelect: null as Thumbnail | null,\r\n sheet: null as SheetType,\r\n showTextTooltip: false,\r\n showVideoTooltip: false,\r\n showControls: false,\r\n currentTool: \"crossfade\" as ToolType,\r\n tab: 0,\r\n map: null as Map | null,\r\n selectionProximity: 4,\r\n pointerMoveThreshold: 6,\r\n isPointerMoving: false,\r\n pointerStartPosition: null as { x: number; y: number } | null,\r\n lastClosePt: null as PointData | null\r\n };\r\n },\r\n\r\n\r\n mounted() {\r\n\r\n this.waitForReady().then(async () => {\r\n // SpreadSheetLayer.prototype.draw = drawSpreadSheetLayer;\r\n\r\n\r\n this.setClockSync(false);\r\n this.imagesetFolder = await this.loadImageCollection({\r\n url: this.wtml.layeredimagery,\r\n loadChildFolders: false\r\n });\r\n const children = this.imagesetFolder.get_children() ?? [];\r\n const layerPromises: Promise[] = [];\r\n\r\n children.reverse().forEach((item) => {\r\n if (!(item instanceof Place)) { return; }\r\n const imageset = item.get_backgroundImageset() ?? item.get_studyImageset();\r\n if (imageset == null) { return; }\r\n const name = imageset.get_name();\r\n layerPromises.push(this.addImageSetLayer({\r\n url: imageset.get_url(),\r\n mode: \"autodetect\",\r\n name: name,\r\n goto: false\r\n }).then((layer) => {\r\n this.imagesetLayers[name] = layer;\r\n applyImageSetLayerSetting(layer, [\"opacity\", 1]); // Here is where you set your initial image's opacity to either 0 or 1 (0 being invisible).\r\n return layer;\r\n }));\r\n });\r\n \r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.curForegroundImagesetName = this.fgName;\r\n this.curBackgroundImagesetName = this.bgName;\r\n this.foregroundOpacity = 75; //set to zero if going to use tween for dramatic fade\r\n\r\n //tween(0, 50, (value) => { this.foregroundOpacity = value; }, {\r\n // time: 7500,\r\n //ease: (t: number) => t * (2 * (1 - t) * 1.75 + t * 0.5),\r\n //done: () => { this.foregroundOpacity = 50; }\r\n //});\r\n });\r\n \r\n \r\n // this.backgroundImagesets = [...skyBackgroundImagesets]; // This is the default background imagery\r\n\r\n this.createTableLayer({\r\n name: \"Proplyds\",\r\n referenceFrame: \"Sky\",\r\n dataCsv: proplydsString\r\n }).then((layer) => {\r\n layer.set_lngColumn(1);\r\n layer.set_latColumn(2);\r\n layer.set_markerScale(MarkerScales.world);\r\n this.applyTableLayerSettings({\r\n id: layer.id.toString(),\r\n settings: [\r\n [\"scaleFactor\", 0.15],\r\n [\"plotType\", PlotTypes.circle],\r\n [\"color\", Color.fromHex(this.color3)],\r\n //[\"sizeColumn\", 4],\r\n //[\"pointScaleType\", PointScaleTypes.log],\r\n [\"opacity\", 100]\r\n ]\r\n });\r\n this.proplydsLayer = layer;\r\n });\r\n\r\n this.createTableLayer({\r\n name: \"JuMBOS\",\r\n referenceFrame: \"Sky\",\r\n dataCsv: jumbosString\r\n }).then((layer) => {\r\n layer.set_lngColumn(1);\r\n layer.set_latColumn(2);\r\n layer.set_markerScale(MarkerScales.world);\r\n this.applyTableLayerSettings({\r\n id: layer.id.toString(),\r\n settings: [\r\n [\"scaleFactor\", 0.15],\r\n [\"plotType\", PlotTypes.circle],\r\n [\"color\", Color.fromHex(this.color1)],\r\n // [\"sizeColumn\", 4],\r\n //[\"pointScaleType\", PointScaleTypes.log],\r\n [\"opacity\", 100]\r\n ]\r\n });\r\n this.jumbosLayer = layer;\r\n });\r\n\r\n this.showControls = !this.mobile;\r\n\r\n /* This section adds extra foreground imagery to the default sky survey menu. \r\n This is hard coded and we could find a better way to add them in the future. */\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"SFD Dust Map (Infrared)\", \"SFD Dust Map (Infrared)\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"2Mass (Infrared)\", \"2Mass: Imagery (Infrared)\") \r\n );\r\n }); \r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"WISE (Infrared)\", \"WISE All Sky (Infrared)\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"unWISE (Infrared)\", \"unWISE color, from W2 and W1 bands\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"PanSTARRS1 3pi (Optical) \", \"PanSTARRS1 3pi\") \r\n );\r\n });\r\n \r\n // this.loadImageCollection({\r\n // url: this.bgWtml,\r\n // loadChildFolders: true,\r\n // }).then((folder) => {\r\n // this.backgroundImagesets.unshift(\r\n // new BackgroundImageset(\"Digitized Sky Survey (Optical)\", \"Digitized Sky Survey (Color)\") \r\n // );\r\n // });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"USNOB (Optical)\", \"USNOB: US Naval Observatory B 1.0 (Synthetic, Optical)\") // First name is what you want the menu to look like, second name should be what you see in your WWT collection.\r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"Gaia DR2 (Optical)\", \"Gaia DR2\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"NASA Deep Star Maps (Optical)\", \"Deep Star Maps 2020\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"GALEX (Ultraviolet)\", \"GALEX (Ultraviolet)\") \r\n );\r\n });\r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"ROSAT (X-ray)\", \"RASS: ROSAT All Sky Survey (X-ray)\") \r\n );\r\n }); \r\n\r\n this.loadImageCollection({\r\n url: this.bgWtml,\r\n loadChildFolders: true,\r\n }).then((_folder) => {\r\n this.backgroundImagesets.unshift(\r\n new BackgroundImageset(\"Fermi (Gamma)\", \"Fermi LAT 8-year (gamma)\") \r\n );\r\n });\r\n\r\n this.setLayerOpacityForImageSet(\"Short-wavelength NIRCam Orion Nebula\", 1, true)\r\n\r\n Promise.all(layerPromises).then(() => {\r\n this.layersLoaded = true;\r\n \r\n // Set all of the imageset layers to be above the spreadsheet layers\r\n //this.resetImagesetLayerOrder();\r\n\r\n const splashScreenListener = (_event: KeyboardEvent) => {\r\n this.showSplashScreen = false;\r\n window.removeEventListener('keyup', splashScreenListener);\r\n };\r\n window.addEventListener('keyup', splashScreenListener);\r\n\r\n window.addEventListener('keyup', (event: KeyboardEvent) => {\r\n if ([\"Esc\", \"Escape\"].includes(event.key) && this.showVideoSheet) {\r\n this.showVideoSheet = false;\r\n }\r\n });\r\n });\r\n\r\n // this.wwtControl._drawSkyOverlays = drawSkyOverlays;\r\n // LayerManager._draw = layerManagerDraw;\r\n\r\n // wwtZoomDeg is still 0 if we run this here\r\n // and it was the same in nextTick\r\n // so give just a bit of a delay\r\n setTimeout(() => {\r\n this.positionSet = true;\r\n }, 100);\r\n\r\n });\r\n\r\n },\r\n\r\n \r\n computed: {\r\n\r\n wwtControl(): WWTControl {\r\n return WWTControl.singleton;\r\n },\r\n wwtRenderContext(): RenderContext {\r\n return this.wwtControl.renderContext;\r\n },\r\n wwtSettings(): Settings {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n return Settings.get_active();\r\n },\r\n \r\n isLoading(): boolean {\r\n return !this.ready;\r\n },\r\n ready(): boolean {\r\n return this.layersLoaded && this.positionSet;\r\n },\r\n smallSize(): boolean {\r\n return this.$vuetify.display.smAndDown;\r\n },\r\n mobile(): boolean {\r\n return this.smallSize && this.touchscreen;\r\n },\r\n cssVars() {\r\n return {\r\n '--color-default': this.colorD,\r\n // '--color-default2': this.colorRed,\r\n\t\t\t\t'--color0':this.color0,\r\n\t\t\t\t'--color1':this.color1,\r\n\t\t\t\t'--color2':this.color2,\r\n\t\t\t\t'--color3':this.color3,\r\n\t\t\t\t'--color4':this.color4,\r\n\t\t\t\t'--color5':this.color5,\r\n '--app-content-height': this.showTextSheet ? '66%' : '100%',\r\n };\r\n },\r\n popoverCssVars() {\r\n const x = this.lastClosePt?.x ?? 0;\r\n const y = this.lastClosePt?.y ?? 0;\r\n\r\n // Note that the canvas takes up the full width\r\n const leftPct = 100 * x / window.innerWidth;\r\n const topPct = 100 * (y - 50) / window.innerHeight;\r\n return {\r\n '--current-color': this.lastClosePt?.color.toString() ?? \"white\",\r\n '--current-left': `${leftPct}%`,\r\n '--current-top': `${topPct}%`\r\n };\r\n },\r\n\r\n \r\n showTextSheet: {\r\n get(): boolean {\r\n return this.sheet === 'text';\r\n },\r\n set(_value: boolean) {\r\n this.selectSheet('text');\r\n this.showTextTooltip = false;\r\n }\r\n },\r\n showVideoSheet: {\r\n get(): boolean {\r\n return this.sheet === \"video\";\r\n },\r\n set(value: boolean) {\r\n this.selectSheet('video');\r\n if (!value) {\r\n const video = document.querySelector(\"#info-video\") as HTMLVideoElement;\r\n video.pause();\r\n }\r\n this.showVideoTooltip = false;\r\n }\r\n },\r\n \r\n curBackgroundImagesetName: {\r\n get(): string {\r\n if (this.wwtBackgroundImageset == null) return \"\";\r\n return this.wwtBackgroundImageset.get_name();\r\n },\r\n set(name: string) {\r\n this.setBackgroundImageByName(name);\r\n }\r\n },\r\n \r\n curForegroundImagesetName: {\r\n get(): string {\r\n if (this.wwtForegroundImageset == null) return \"\";\r\n return this.wwtForegroundImageset.get_name();\r\n },\r\n set(name: string) {\r\n this.setForegroundImageByName(name);\r\n }\r\n },\r\n\r\n\r\n foregroundOpacity: {\r\n get(): number {\r\n return this.wwtForegroundOpacity;\r\n },\r\n set(o: number) {\r\n this.setForegroundOpacity(o); \r\n }\r\n },\r\n },\r\n\r\n methods: {\r\n\r\n setSpreadSheetLayerOrder(id: string, order: number) {\r\n const layer = LayerManager.get_layerList()[id];\r\n const layers = LayerManager.get_allMaps()[layer.get_referenceFrame()].layers;\r\n if (order >= 0) {\r\n const currentIndex = layers.indexOf(layer);\r\n if (currentIndex > -1) {\r\n layers.splice(currentIndex, 1);\r\n }\r\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.splice(order, 0, layer);\r\n }\r\n },\r\n\r\n closestInView(\r\n point: { x: number, y: number },\r\n threshold?: number\r\n ): PointData | null {\r\n\r\n let minDist = Infinity;\r\n let closestPt: PointData | null = null;\r\n\r\n const rowSeparator = \"\\r\\n\";\r\n const colSeparator = \"\\t\";\r\n\r\n const raDecDeg = this.findRADecForScreenPoint(point);\r\n const target = { ra: D2R * raDecDeg.ra, dec: D2R * raDecDeg.dec };\r\n\r\n const layers = [this.proplydsLayer, this.jumbosLayer];\r\n for (const layer of layers) {\r\n if (layer == null) {\r\n continue;\r\n }\r\n\r\n const inView = layer.getTableDataInView();\r\n const rows = inView.split(rowSeparator);\r\n const header = rows.shift();\r\n if (!header) {\r\n continue;\r\n }\r\n\r\n const lngCol = layer.get_lngColumn();\r\n const latCol = layer.get_latColumn();\r\n const nameCol = 0; // All of the data sets have the name in the first column\r\n\r\n for (const row of rows) {\r\n const values = row.split(colSeparator);\r\n const ra = D2R * Number(values[lngCol]);\r\n const dec = D2R * Number(values[latCol]);\r\n const pt = { ra: ra, dec: dec };\r\n const dist = distance(target.ra, target.dec, pt.ra, pt.dec);\r\n if (dist < minDist) {\r\n closestPt = {\r\n ...point,\r\n ra: ra,\r\n dec: dec,\r\n name: values[nameCol],\r\n color: layer.get_color()\r\n };\r\n minDist = dist;\r\n }\r\n }\r\n }\r\n\r\n if (closestPt !== null) {\r\n const closestRADecDeg = { ra: closestPt.ra * R2D, dec: closestPt.dec * R2D };\r\n const closestScreenPoint = this.findScreenPointForRADec(closestRADecDeg);\r\n const pixelDist = Math.sqrt((point.x - closestScreenPoint.x) ** 2 + (point.y - closestScreenPoint.y) ** 2);\r\n if (!threshold || pixelDist < threshold) {\r\n return closestPt;\r\n }\r\n }\r\n return null;\r\n\r\n },\r\n\r\n wwtOnPointerMove(event: PointerEvent) {\r\n if (!this.isPointerMoving && this.pointerStartPosition !== null) {\r\n const dist = Math.sqrt((event.pageX - this.pointerStartPosition.x) ** 2 + (event.pageY - this.pointerStartPosition.y) ** 2);\r\n if (dist > this.pointerMoveThreshold) {\r\n this.isPointerMoving = true;\r\n }\r\n }\r\n this.updateLastClosePoint(event);\r\n },\r\n\r\n wwtOnPointerDown(event: PointerEvent) {\r\n this.isPointerMoving = false;\r\n this.pointerStartPosition = { x: event.pageX, y: event.pageY };\r\n },\r\n\r\n wwtOnPointerUp(event: PointerEvent) {\r\n if (!this.isPointerMoving) {\r\n this.updateLastClosePoint(event);\r\n }\r\n this.pointerStartPosition = null;\r\n this.isPointerMoving = false;\r\n },\r\n\r\n updateLastClosePoint(event: PointerEvent): void {\r\n const pt = { x: event.offsetX, y: event.offsetY };\r\n const closestPt = this.closestInView(pt, this.selectionProximity);\r\n if (closestPt == null && this.lastClosePt == null) {\r\n return;\r\n }\r\n const needsUpdate =\r\n closestPt == null ||\r\n this.lastClosePt == null ||\r\n this.lastClosePt.ra != closestPt.ra ||\r\n this.lastClosePt.dec != closestPt.dec;\r\n if (needsUpdate) {\r\n this.lastClosePt = closestPt;\r\n }\r\n },\r\n\r\n wwtSmallestFov(): number {\r\n // ignore the possibility of rotation\r\n const w = this.wwtRenderContext.width;\r\n const h = this.wwtRenderContext.height;\r\n const fovH = this.wwtRenderContext.get_fovAngle() * D2R;\r\n const fovW = fovH * w / h;\r\n return Math.min(fovW, fovH);\r\n },\r\n \r\n // circleForLocation(latDeg: number, lonDeg: number): L.Circle {\r\n // return L.circle([latDeg, lonDeg], {\r\n // color: \"#FF0000\",\r\n // fillColor: \"#FF0033\",\r\n // fillOpacity: 0.5,\r\n // radius: 200\r\n // });\r\n // },\r\n\r\n\r\n\r\n /* Toggles the hamburger menu when the hamburger icon is clicked */\r\n toggleMenu() {\r\n this.isMenuOpen = !this.isMenuOpen;\r\n this.showTitle = false;\r\n this.showFolderView = !this.showFolderView;\r\n this.showProplydsButton = !this.showProplydsButton;\r\n this.showJumbosButton = !this.showJumbosButton;\r\n },\r\n \r\n /* This is for the close button of the intro box */\r\n closeIntro() {\r\n this.showIntro = false;\r\n },\r\n \r\n /* This is for the \"Toggle description\" in the hamburger menu. It opens the intro container */\r\n openIntro() {\r\n this.showIntro = !this.showIntro;\r\n this.showBgButton = false;\r\n this.showDescription = false;\r\n },\r\n\r\n closeDescription() {\r\n this.showDescription = false;\r\n },\r\n\r\n /* Toggles the background button when the Choose background button is clicked */\r\n toggleBgButton() {\r\n this.showBgButton = !this.showBgButton;\r\n this.hiddenIntro = !this.hiddenIntro;\r\n this.showIntro = false;\r\n this.showDescription = false;\r\n this.showBgSlider = false;\r\n this.showFolderView = true;\r\n this.isMenuOpen = false;\r\n this.showProplydsButton = true;\r\n this.showJumbosButton = true;\r\n }, \r\n\r\n toggleBgSlider() {\r\n this.showBgSlider = !this.showBgSlider;\r\n this.showIntro = false;\r\n this.showDescription = false;\r\n this.showBgButton = false;\r\n this.showFolderView = true;\r\n this.isMenuOpen = false;\r\n this.showProplydsButton = true;\r\n this.showJumbosButton = true;\r\n },\r\n\r\n hideMenu() {\r\n this.showBgButton = false;\r\n this.showBgSlider = true;\r\n },\r\n\r\n toggleFolderView() {\r\n this.showIntro = false;\r\n this.showDescription = true;\r\n },\r\n\r\n hideTitle() {\r\n this.showTitle = false;\r\n },\r\n\r\n closeSplashScreen() {\r\n this.showSplashScreen = false;\r\n },\r\n\r\n selectSheet(name: SheetType) {\r\n if (this.sheet == name) {\r\n this.sheet = null;\r\n } else {\r\n this.sheet = name;\r\n }\r\n },\r\n\r\n getImageSetLayerIndex(layer: ImageSetLayer): number {\r\n // find layer in this.wwtActiveLayers\r\n // this.wwtActiveLayers is a dictionary of {0:id1, 1:id2, 2:id3, ...}\r\n // get the key item with the value of layer.id\r\n for (const [key, value] of Object.entries(this.wwtActiveLayers)) {\r\n if (value === layer.id.toString()) {\r\n return Number(key);\r\n }\r\n }\r\n return -1;\r\n },\r\n\r\n\r\n\r\n\r\n setLayerOpacityForImageSet(name: string, opacity: number, setting_opacity_from_ui=false) {\r\n const layer = this.imagesetLayers[name];\r\n if (layer != null) {\r\n // update the image opacity in the WWT control\r\n applyImageSetLayerSetting(layer, ['opacity', opacity]);\r\n\r\n // update the value for the slider only if we are not setting the opacity from the UI\r\n if (!setting_opacity_from_ui) {\r\n const selector = `#items div.item[title='${name}'] input.opacity-range[type='range']`;\r\n const el = (document.querySelector(selector) as HTMLInputElement);\r\n if (el != null) {\r\n el.value = `${opacity * 100}`;\r\n }\r\n }\r\n\r\n const toggleSelector = `#items input[type='checkbox'][title='${name}']`;\r\n const el2 = (document.querySelector(toggleSelector) as HTMLInputElement);\r\n // truth table: opacity == 0 and el.checked == false => do nothing\r\n // truth table: opacity == 0 and el.checked == true => set el.checked = false\r\n // truth table: opacity > 0 and el.checked == false => set el.checked = true\r\n // truth table: opacity > 0 and el.checked == true => do nothing\r\n if (el2 != null) {\r\n if (opacity == 0 && el2.checked) {\r\n el2.checked = false;\r\n } else if (opacity > 0 && !el2.checked) {\r\n el2.checked = true;\r\n }\r\n }\r\n \r\n }\r\n },\r\n\t\t\r\n\t\tonItemSelected(place: Place) {\r\n //this.logTimes(`onItemSelected: ${place.get_name()}`)\r\n const iset = place.get_studyImageset() ?? place.get_backgroundImageset();\r\n if (iset == null) { return; }\r\n const layer = this.imagesetLayers[iset.get_name()];\r\n\r\n // Give time for the selectedTime changes to propagate\r\n setTimeout(() => {\r\n this.$nextTick(() => {\r\n //if (this.image_out_of_view(place) || this.need_to_zoom_in(place)) {\r\n this.descriptions = place.htmlDescription;\r\n this.descrTitles = iset.get_name(); \r\n this.descrCredits = iset.get_creditsText();\r\n this.descrCreditsURL = iset.get_creditsUrl();\r\n \r\n this.gotoRADecZoom({\r\n raRad: hms2R * place.get_RA(), // In the WTML file ra is in hours. Convert to radians (which is what hms2R does)\r\n decRad: D2R * place.get_dec(), // In the WTML file dec is in degrees. Convert to radians (which is what DR2 does) \r\n // raRad: D2R * iset.get_centerX(), // We don't wanna use these lines because the will make the images skip\r\n // decRad: D2R * iset.get_centerY(), \r\n zoomDeg: place.get_zoomLevel() * 9, \r\n instant: true\r\n });\r\n //this.onOpacityChanged(place, 100, true);\r\n this.setLayerOpacityForImageSet(iset.get_name(), 1, false);\r\n });\r\n }, 10); \r\n },\r\n\t\t\r\n\t\tonOpacityChanged(place: Place, opacity: number, move: boolean) {\r\n const iset = place.get_studyImageset() ?? place.get_backgroundImageset();\r\n if (iset == null) { return; }\r\n this.updateImageOpacity(place, opacity);\r\n \r\n\r\n // this.$nextTick(() => {\r\n // this.incomingItemSelect = place;\r\n // this.gotoRADecZoom({\r\n // raRad: D2R * iset.get_centerX(),\r\n // decRad: D2R * iset.get_centerY(),\r\n // zoomDeg: this.wwtZoomDeg, //zoom,\r\n // instant: false\r\n // });\r\n // });\r\n\t\t},\r\n\t\t\r\n\t\tupdateImageOpacity(place: Place, opacity: number) {\r\n const iset = place.get_studyImageset() ?? place.get_backgroundImageset();\r\n if (iset == null) { return; }\r\n const layer = this.imagesetLayers[iset.get_name()];\r\n if (layer == null) { return; }\r\n // applyImageSetLayerSetting(layer, [\"opacity\", opacity / 100]);\r\n // tell setLayerOpacityForImageSet that we are updating from the ui\r\n this.setLayerOpacityForImageSet(iset.get_name(), opacity / 100, true);\r\n },\r\n },\r\n\r\n watch: {\r\n\r\n proplyds(on: boolean) {\r\n if (this.proplydsLayer) {\r\n applySpreadSheetLayerSetting(this.proplydsLayer, [\"opacity\", on ? 1.0 : 0.0]);\r\n }\r\n },\r\n\r\n jumbos(on: boolean) {\r\n if(this.jumbosLayer) {\r\n applySpreadSheetLayerSetting(this.jumbosLayer, [\"opacity\", on? 1.0 : 0.0]);\r\n }\r\n },\r\n \r\n }\r\n\t\r\n\r\n\t\r\n});\r\n\r\n","import { render } from \"./MainContent.vue?vue&type=template&id=798b3be3&scoped=true&ts=true\"\nimport script from \"./MainContent.vue?vue&type=script&lang=ts\"\nexport * from \"./MainContent.vue?vue&type=script&lang=ts\"\n\nimport \"./MainContent.vue?vue&type=style&index=0&id=798b3be3&lang=less&scoped=true\"\n\nimport exportComponent from \"C:\\\\Users\\\\adavi\\\\Documents\\\\CosmicDS\\\\minids\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-798b3be3\"]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, vModelText as _vModelText, withKeys as _withKeys, withDirectives as _withDirectives, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c64fd488\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"item-container\" }\nconst _hoisted_2 = { id: \"items\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = [\"title\", \"id\"]\nconst _hoisted_5 = { class: \"item-thumbnails\" }\nconst _hoisted_6 = [\"src\", \"alt\", \"onClick\"]\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = { class: \"slider-container\" }\nconst _hoisted_9 = [\"onUpdate:modelValue\", \"onInput\", \"onKeyup\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_transition_expand = _resolveComponent(\"transition-expand\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"fv-root\",\n style: _normalizeStyle(_ctx.cssVars)\n }, [\n _createVNode(_component_transition_expand, null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.items !== null && _ctx.expanded)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(['bordered', 'item', _ctx.lastSelectedItem === item ? 'selected' : '']),\n key: item.get_name(),\n title: item.get_name(),\n id: `fv-${item.get_name()}`\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.thumbnails)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: item.get_thumbnailUrl(),\n alt: item.get_name(),\n onClick: () => _ctx.selectItem(item)\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"item-name\", ['thumbnail']]),\n onClick: () => _ctx.selectItem(item)\n }, _toDisplayString(item.get_name()), 9, _hoisted_7)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_ctx.sliders)\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"range\",\n \"onUpdate:modelValue\": ($event: any) => ((_ctx.opacities[item.get_name()]) = $event),\n onInput: (e) => _ctx.onSliderInputChanged(e, item),\n onKeyup: _withKeys(() => _ctx.selectItem(item), [\"enter\"]),\n onMouseup: _cache[0] || (_cache[0] = () => { _ctx.lastOpacityChanged = null })\n }, null, 40, _hoisted_9)), [\n [_vModelText, _ctx.opacities[item.get_name()]]\n ])\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_4))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n })\n ], 4))\n}","\r\n import { defineComponent, isProxy, toRaw, PropType } from \"vue\";\r\n import { Folder, FolderUp, Place, Imageset } from \"@wwtelescope/engine\";\r\n import { Thumbnail } from \"@wwtelescope/engine-types\";\r\n import { WWTAwareComponent } from \"@wwtelescope/engine-pinia\";\r\n \r\n type FlexDirection = \"row\" | \"column\";\r\n \r\n \r\n export default defineComponent({\r\n extends: WWTAwareComponent,\r\n \r\n name: 'MyComponent',\r\n \r\n props: {\r\n rootFolder: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n flexDirection: {\r\n type: String as PropType,\r\n default: \"column\"\r\n },\r\n expandable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n sliders: {\r\n type: Boolean,\r\n default: false\r\n },\r\n startFirstSelected: {\r\n type: Boolean,\r\n default: true\r\n },\r\n thumbnails: {\r\n type: Boolean,\r\n default: true\r\n },\r\n open: {\r\n type: Boolean,\r\n default: false\r\n },\r\n incomingItemSelect: {\r\n type: Object as PropType,\r\n default: null\r\n },\r\n },\r\n \r\n data() {\r\n return {\r\n items: [] as Thumbnail[],\r\n lastSelectedItem: null as Thumbnail | null,\r\n opacities: {} as Record,\r\n expanded: this.open,\r\n lastOpacityChanged: null as Thumbnail | null,\r\n };\r\n },\r\n \r\n created() {\r\n this.populate();\r\n },\r\n \r\n methods: {\r\n\r\n populate(): void {\r\n for (const c of this.rootFolder.get_children() ?? []) {\r\n const cr = isProxy(c) ? toRaw(c) : c;\r\n if (cr instanceof Place) {\r\n this.items.push(cr);\r\n this.opacities[cr.get_name()] = 100;\r\n }\r\n }\r\n if (this.startFirstSelected && this.items?.length > 0) {\r\n this.selectItem(this.items[4]); \r\n //change items[#] to start on a desired image\r\n }\r\n },\r\n\r\n showSlider(item: Thumbnail | null): boolean {\r\n return item instanceof Imageset;\r\n },\r\n\r\n selectItem(item: Thumbnail): void {\r\n this.lastSelectedItem = item;\r\n if (item instanceof Folder || item instanceof FolderUp) {\r\n this.items = item.get_children() ?? [];\r\n \r\n } else {\r\n this.opacities[item.get_name()] = 100;\r\n this.$emit('select', item);\r\n //this.$emit('opacity', item, 100, false);\r\n //this.$emit('opacity', item);\r\n }\r\n },\r\n\r\n onSliderInputChanged(e: Event, item: Thumbnail) {\r\n let dragging = false;\r\n if (this.lastOpacityChanged == item) {\r\n dragging = true;\r\n } else {\r\n this.lastOpacityChanged = item;\r\n }\r\n this.$emit('opacity', item, (e.target as HTMLInputElement).value, !dragging);\r\n },\r\n\r\n onToggleImage(e: Event, item: Thumbnail) {\r\n this.$emit('toggle', item, (e.target as HTMLInputElement).checked);\r\n },\r\n \r\n scrollToItem(id: string) {\r\n const element = document.getElementById(id);\r\n if (element !== null) {\r\n const container = document.getElementById(\"items\");\r\n if (container !== null) {\r\n console.log(element.clientHeight);\r\n const y = Math.max(Math.min(element.offsetTop - element.clientHeight * 1.5, container.scrollHeight), 0);\r\n container.scrollTo(0, y);\r\n }\r\n }\r\n },\r\n },\r\n \r\n computed: {\r\n cssVars() {\r\n return {\r\n \"--flex-direction\": this.flexDirection\r\n };\r\n },\r\n \r\n isMobile() {\r\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));\r\n },\r\n },\r\n \r\n watch: {\r\n incomingItemSelect() {\r\n if (this.incomingItemSelect != null) {\r\n this.lastSelectedItem = this.incomingItemSelect;\r\n this.scrollToItem(`fv-${this.incomingItemSelect.get_name()}`);\r\n } else {\r\n this.lastSelectedItem = null;\r\n }\r\n }\r\n }\r\n });\r\n ","import { render } from \"./FolderView.vue?vue&type=template&id=c64fd488&scoped=true&ts=true\"\nimport script from \"./FolderView.vue?vue&type=script&lang=ts\"\nexport * from \"./FolderView.vue?vue&type=script&lang=ts\"\n\nimport \"./FolderView.vue?vue&type=style&index=0&id=c64fd488&scoped=true&lang=less\"\n\nimport exportComponent from \"C:\\\\Users\\\\adavi\\\\Documents\\\\CosmicDS\\\\minids\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c64fd488\"]])\n\nexport default __exports__","import { aliases, mdi } from 'vuetify/iconsets/mdi';\r\nimport { createVuetify } from 'vuetify';\r\n\r\n// For test use. Do not include createVuetify()\r\n// see https://next.vuetifyjs.com/en/features/treeshaking/\r\n//import * as components from 'vuetify/components';\r\n//import * as directives from 'vuetify/directives';\r\n\r\n// Translations provided by Vuetify\r\nimport { en } from 'vuetify/locale';\r\n\r\n// Styles\r\nimport 'vuetify/styles';\r\nimport '@mdi/font/css/materialdesignicons.css';\r\n\r\nexport default createVuetify({\r\n // Icon Fonts\r\n icons: {\r\n defaultSet: 'mdi',\r\n aliases,\r\n sets: {\r\n mdi,\r\n },\r\n },\r\n locale: {\r\n locale: 'en',\r\n fallback: 'en',\r\n messages: { en },\r\n },\r\n theme: {\r\n defaultTheme: 'dark',\r\n },\r\n});\r\n\r\n// Export for test.\r\n//export { components, directives };\r\n","import Vue, { createApp } from \"vue\";\r\n\r\nimport LayeredImagery from \"./MainContent.vue\";\r\nimport FolderView from \"./FolderView.vue\";\r\nimport TransitionExpand from \"./TransitionExpand.vue\";\r\n\r\nimport VueSlider from \"vue-slider-component\";\r\nimport 'vue-slider-component/theme/default.css';\r\n\r\nimport Datepicker from '@vuepic/vue-datepicker';\r\nimport '@vuepic/vue-datepicker/dist/main.css';\r\n\r\nimport vuetify from \"../plugins/vuetify\";\r\n\r\nimport './assets/Roboto.ttf';\r\nimport './assets/RobotoCondensed.ttf';\r\n\r\nimport { WWTComponent, wwtPinia } from \"@wwtelescope/engine-pinia\";\r\n\r\nimport Notifications from '@kyvg/vue3-notification';\r\n\r\nimport \"leaflet/dist/leaflet.css\";\r\n\r\n/** v-hide directive taken from https://www.ryansouthgate.com/2020/01/30/vue-js-v-hide-element-whilst-keeping-occupied-space/ */\r\n// Extract the function out, up here, so I'm not writing it twice\r\nconst update = (el: HTMLElement, binding: Vue.DirectiveBinding) => el.style.visibility = (binding.value) ? \"hidden\" : \"\";\r\n\r\ncreateApp(LayeredImagery, {\r\n wwtNamespace: \"wwt-minids-layeredimagery\",\r\n wtml: { // images are listed in chronological order earliest to latest\r\n layeredimagery: \"http://data1.wwtassets.org/packages/2023/10_jwst/OrionNebula_v10.wtml\",\r\n },\r\n url: \"https://web.wwtassets.org/specials/2023/orion/\",\r\n thumbnailUrl: \"https://cdn.worldwidetelescope.org/thumbnails/jwst.jpg\",\r\n bgWtml: \"https://data1.wwtassets.org/packages/2023/04_casA/StudyBackgroundImagery.wtml\",\r\n fgName: \"unWISE\",\r\n bgName: \"Digitized Sky Survey\",\r\n title: \"ORION NEBULA\",\r\n introTitle: \"Interactively Explore Orion Nebula Imagery!\",\r\n introText: `The Orion Nebula is one of the most scrutinized and photographed objects in the \r\n night sky and is among the most intensely studied celestial features. This nebula has revealed \r\n much about the process of how stars and planetary systems are formed from collapsing clouds \r\n of gas and dust. Astronomers have directly observed protoplanetary disks and brown dwarfs within \r\n the nebula, intense and turbulent motions of the gas, and the photo-ionizing effects of massive \r\n nearby stars in the nebula.`,\r\n introInstructions: `Pan and zoom to explore the images. \r\n Select the thumbnails to view Orion Nebula astro-imagery \r\n in context of the sky. Using the menu (top right), change the background imagery to compare \r\n against different surveys and wavelengths.`\r\n})\r\n\r\n // Plugins\r\n .use(wwtPinia)\r\n .use(vuetify)\r\n .use(Notifications)\r\n\r\n // Directives\r\n .directive(\r\n /**\r\n * Hides an HTML element, keeping the space it would have used if it were visible (css: Visibility)\r\n */\r\n \"hide\", {\r\n // Run on initialisation (first render) of the directive on the element\r\n beforeMount(el, binding, _vnode, _prevVnode) {\r\n update(el, binding);\r\n },\r\n // Run on subsequent updates to the value supplied to the directive\r\n updated(el, binding, _vnode, _prevVnode) {\r\n update(el, binding);\r\n }\r\n })\r\n\r\n // Components\r\n .component(\"WorldWideTelescope\", WWTComponent)\r\n\r\n .component('folder-view', FolderView)\r\n .component('vue-slider', VueSlider)\r\n .component('date-picker', Datepicker)\r\n\r\n // Mount\r\n .mount(\"#app\");\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"938\":\"327e272f\",\"991\":\"cccc9076\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"@minids/Orion-Nebula:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_minids_Orion_Nebula\"] = self[\"webpackChunk_minids_Orion_Nebula\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], () => (__webpack_require__(6970)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_withScopeId","n","_hoisted_1","id","_hoisted_2","_","rel","href","_hoisted_3","class","_hoisted_4","style","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","target","onmouseover","onmouseout","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","key","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","alt","src","width","height","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","render","_ctx","_cache","$props","$setup","$data","$options","_component_WorldWideTelescope","_component_folder_view","cssVars","default","wwtNamespace","onPointerdown","wwtOnPointerDown","onPointermove","wwtOnPointerMove","onPointerup","wwtOnPointerUp","onClick","toggleMenu","args","fullscreen","toggleFullscreen","isMenuOpen","openIntro","toggleBgButton","toggleLink","$event","onChange","hideMenu","backgroundImagesets","bg","value","imagesetName","displayName","curForegroundImagesetName","showBgButton","closeIntro","introTitle","introText","introInstructions","closeDescription","descrTitles","descriptions","descrCredits","descrCreditsURL","name","isLoading","popoverCssVars","lastClosePt","color","color1","modelValue","jumbos","onKeyup","label","showJumbosButton","color3","proplyds","showProplydsButton","toggleFolderView","imagesetFolder","sliders","expandable","thumbnails","open","mobile","incomingItemSelect","onSelect","onItemSelected","onOpacity","onOpacityChanged","showFolderView","KeyPressInfo","code","modifiers","_a","_b","_c","_d","this","ctrl","shift","meta","prototype","matches","event","ctrlKey","altKey","shiftKey","metaKey","KeyboardControlSettings","zoomIn","zoomOut","moveUp","_e","moveLeft","_f","moveDown","_g","moveRight","_h","moveAmount","actionTypes","makeListener","actionName","action","_this","e","e_1","next","done","keyPress","e_1_1","error","return","call","defaultWindowShape","extends","WWTAwareComponent","props","kcs","type","data","fullscreenModeActive","resizeObserver","touchscreen","windowShape","created","matchMedia","mounted","screenfull","onFullscreenEvent","ResizeObserver","_entries","onResizeEvent","observe","$el","window","addEventListener","doZoom","doMove","destroyed","unobserve","methods","zoom","x","y","move","clientWidth","clientHeight","blurActiveElement","active","document","activeElement","HTMLElement","blur","computed","fullscreenAvailable","BackgroundImageset","proplydsCsv","jumbosCsv","parseCsvTable","csv","d","Name","ra","RA","dec","DEC","proplydsContainers","getElementsByClassName","i","proplydsIcon","querySelector","classList","toggle","contains","add","remove","length","proplydsTable","jumbosTable","formatCsvTable","table","concat","map","_i","toString","replace","proplydsString","jumbosString","D2R","Math","PI","R2D","hms2R","setup","fullscreenElement","exitFullscreen","documentElement","requestFullscreen","catch","err","console","log","message","MiniDSBase","wtml","Object","required","String","url","thumbnailUrl","bgWtml","bgName","fgName","title","hiddenTitle","hiddenIntro","showIntro","showBgSlider","showDescription","showLeftMenu","showTitle","showSplashScreen","imagesetLayers","layersLoaded","positionSet","layers","color0","color2","colorp","color4","color5","colorD","todayColor","currentAllLayer","proplydsLayer","jumbosLayer","sheet","showTextTooltip","showVideoTooltip","showControls","currentTool","tab","selectionProximity","pointerMoveThreshold","isPointerMoving","pointerStartPosition","waitForReady","then","setClockSync","loadImageCollection","layeredimagery","loadChildFolders","children","get_children","layerPromises","reverse","forEach","item","Place","imageset","get_backgroundImageset","get_studyImageset","get_name","push","addImageSetLayer","get_url","mode","goto","layer","_folder","curBackgroundImagesetName","foregroundOpacity","createTableLayer","referenceFrame","dataCsv","set_lngColumn","set_latColumn","set_markerScale","applyTableLayerSettings","settings","Color","folder","unshift","setLayerOpacityForImageSet","Promise","all","splashScreenListener","_event","removeEventListener","includes","showVideoSheet","setTimeout","wwtControl","WWTControl","wwtRenderContext","renderContext","wwtSettings","Settings","ready","smallSize","$vuetify","display","smAndDown","showTextSheet","leftPct","innerWidth","topPct","innerHeight","get","set","_value","selectSheet","video","pause","wwtBackgroundImageset","setBackgroundImageByName","wwtForegroundImageset","setForegroundImageByName","wwtForegroundOpacity","o","setForegroundOpacity","setSpreadSheetLayerOrder","order","LayerManager","get_referenceFrame","currentIndex","indexOf","splice","closestInView","point","threshold","minDist","Infinity","closestPt","rowSeparator","colSeparator","raDecDeg","findRADecForScreenPoint","inView","getTableDataInView","rows","split","header","lngCol","get_lngColumn","latCol","get_latColumn","nameCol","row","values","Number","pt","dist","get_color","closestRADecDeg","closestScreenPoint","findScreenPointForRADec","pixelDist","sqrt","pageX","pageY","updateLastClosePoint","offsetX","offsetY","needsUpdate","wwtSmallestFov","w","h","fovH","get_fovAngle","fovW","min","toggleBgSlider","hideTitle","closeSplashScreen","getImageSetLayerIndex","entries","wwtActiveLayers","opacity","setting_opacity_from_ui","selector","el","toggleSelector","el2","checked","place","iset","$nextTick","htmlDescription","get_creditsText","get_creditsUrl","gotoRADecZoom","raRad","get_RA","decRad","get_dec","zoomDeg","get_zoomLevel","instant","updateImageOpacity","watch","on","__exports__","_component_transition_expand","items","expanded","lastSelectedItem","get_thumbnailUrl","selectItem","opacities","onInput","onSliderInputChanged","onMouseup","lastOpacityChanged","rootFolder","flexDirection","Boolean","startFirstSelected","populate","c","cr","showSlider","Imageset","Folder","FolderUp","$emit","dragging","onToggleImage","scrollToItem","element","getElementById","container","max","offsetTop","scrollHeight","scrollTo","isMobile","test","navigator","userAgent","icons","defaultSet","aliases","sets","mdi","locale","fallback","messages","en","theme","defaultTheme","update","binding","visibility","use","wwtPinia","vuetify","directive","beforeMount","_vnode","_prevVnode","updated","component","WWTComponent","FolderView","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","fulfilled","j","keys","every","r","getter","__esModule","a","leafPrototypes","getProto","getPrototypeOf","obj","t","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","reduce","promises","u","miniCssF","g","globalThis","Function","prop","hasOwnProperty","inProgress","dataWebpackPrefix","l","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","promise","resolve","reject","Error","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}