{ "version": 3, "sources": ["../../../../../../../../source/febe/ui/src/scripts/report_modules/sample-header.ts"], "sourcesContent": ["import Utils from \"../classes/Utils\";\n\nimport { Task } from \"../global/interfaces\";\nimport { getSampleStatusConnection } from \"../components/SampleStatus\";\n\nlet initSampleHeaderUpdater = async () => {\n if (globalThis.page_data.sample.state === \"reported\") {\n return;\n }\n const ss = await getSampleStatusConnection(globalThis.page_data.sample.id);\n ss.watch((data) => {\n if (!data.tasks) {\n setTimeout(() => {\n initSampleHeaderUpdater();\n }, 100);\n return;\n }\n data.tasks.forEach((task: Task) => {\n let el = document.querySelector(`[data-tab-id=\"${task.id}\"]`);\n if (!el) return;\n let scoreEl = el.querySelector(\".score\");\n let url = `/${globalThis.page_data.sample.id}/${task.id}`;\n if (globalThis.page_data.magic_user) {\n url = `/${globalThis.page_data.sample.id}/${task.id}/magic/${globalThis.page_data.magic_token}`;\n }\n let statusColor = \"normal\";\n\n let icon = task.score ? task.score.toString() : \"\";\n\n if (task.state !== \"reported\") {\n icon = Utils.stateToIcon(task.state).icon;\n } else if (task.score && task.score !== 0) {\n icon = task.score.toString();\n }\n\n if (task.state === \"running\") {\n url = `/${globalThis.page_data.sample.id}/${task.id}`;\n }\n\n if (task.state === \"scheduled\" || task.state === \"pending\" || task.state === \"processing\") {\n url = `/monitor/${globalThis.page_data.sample.id}/${task.id}`;\n }\n\n statusColor = Utils.getSeverity(task.score);\n\n el.setAttribute(\"href\", url);\n if (scoreEl) {\n scoreEl.classList.remove(\"normal\");\n scoreEl.classList.remove(\"warning\");\n scoreEl.classList.remove(\"alert\");\n scoreEl.classList.add(statusColor);\n scoreEl.innerHTML = icon;\n }\n });\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (!document.querySelector(\".app__header--secondary .tab-view__bar\")) {\n return;\n }\n\n if (globalThis.user) {\n initSampleHeaderUpdater();\n }\n let replaceVerticalScrollByHorizontal = (event: WheelEvent) => {\n if (event.deltaY != 0) {\n let scrollEl = event.currentTarget as HTMLElement;\n scrollEl.scroll(scrollEl.scrollLeft + event.deltaY + event.deltaX, 0);\n event.preventDefault();\n }\n };\n\n const slider = document.querySelector(\".app__header--secondary .tab-view__bar\");\n let isDown = false;\n let startX: number;\n let scrollLeft: number;\n\n let enableMenu = () => {\n slider.querySelectorAll(\"a\").forEach((item) => {\n item.style.pointerEvents = \"all\";\n });\n };\n\n let disableMenu = () => {\n slider.querySelectorAll(\"a\").forEach((item) => {\n item.style.pointerEvents = \"none\";\n });\n };\n\n slider.addEventListener(\"mousedown\", (e: MouseEvent) => {\n setTimeout(() => {\n if (isDown) disableMenu();\n }, 300);\n isDown = true;\n slider.classList.add(\"active\");\n startX = e.pageX - slider.offsetLeft;\n scrollLeft = slider.scrollLeft;\n });\n\n slider.addEventListener(\"mouseleave\", () => {\n enableMenu();\n isDown = false;\n slider.classList.remove(\"active\");\n });\n\n slider.addEventListener(\"mouseup\", () => {\n enableMenu();\n isDown = false;\n slider.classList.remove(\"active\");\n });\n\n slider.addEventListener(\"mousemove\", (e) => {\n if (!isDown) return;\n e.preventDefault();\n const x = e.pageX - slider.offsetLeft;\n const walk = (x - startX) * 1; //scroll-fast\n slider.scrollLeft = scrollLeft - walk;\n });\n\n slider.parentElement.addEventListener(\"click\", (e) => {\n if (e.offsetX < 20) {\n slider.scroll(slider.scrollLeft - 60, 0);\n }\n\n if (e.offsetX > slider.parentElement.getBoundingClientRect().width - 20) {\n slider.scroll(slider.scrollLeft + 60, 0);\n }\n });\n\n document\n .querySelector(\".app__header--secondary .tab-view__bar\")\n .addEventListener(\"wheel\", replaceVerticalScrollByHorizontal);\n});\n"], "mappings": "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", "names": ["initSampleHeaderUpdater", "getSampleStatusConnection", "data", "task", "el", "scoreEl", "url", "statusColor", "icon", "Utils", "replaceVerticalScrollByHorizontal", "event", "scrollEl", "slider", "isDown", "startX", "scrollLeft", "enableMenu", "item", "disableMenu", "e", "walk"] }