{"version":3,"file":"index.es","sources":["../templates/components/twoweekscal.ts","../templates/pages/index.ts"],"sourcesContent":["import {\n computePosition,\n offset,\n autoPlacement,\n shift,\n arrow,\n} from \"@floating-ui/dom\";\n\nconst getShowTooltip = (tooltip: HTMLElement) => () => {\n tooltip.classList.remove(\"opacity-0\");\n tooltip.classList.add(\"opacity-100\");\n};\nconst getHideTooltip = (tooltip: HTMLElement) => () => {\n tooltip.classList.remove(\"opacity-100\");\n tooltip.classList.add(\"opacity-0\");\n};\n\ndocument\n .querySelectorAll('.two-weeks-calendar .day-wrapper[tabindex=\"0\"]')\n .forEach((el) => {\n const identifier = new Array(...el.classList).findLast((c) =>\n c.startsWith(\"day-\")\n );\n if (!identifier) return;\n const tooltip: HTMLElement = document.querySelector(\n `.event-tooltip.${identifier}`\n );\n if (!tooltip) return;\n const arrowRef: HTMLElement = tooltip.querySelector(\".arrow\");\n\n computePosition(el, tooltip, {\n placement: \"bottom-start\",\n strategy: \"absolute\",\n middleware: [\n offset(7),\n autoPlacement(),\n shift(),\n arrow({ element: arrowRef, padding: 3 }),\n ],\n }).then(({ x, y, middlewareData: { arrow }, placement }) => {\n Object.assign(tooltip.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n if (arrow !== undefined) {\n Object.assign(arrowRef.style, {\n left:\n placement === \"right\"\n ? \"-3px\"\n : arrow?.x != null\n ? `${arrow.x}px`\n : \"\",\n right: placement === \"left\" ? \"-3px\" : \"\",\n top:\n placement === \"bottom\"\n ? \"-3px\"\n : arrow?.y != null\n ? `${arrow.y}px`\n : \"\",\n bottom: placement === \"top\" ? \"-3px\" : \"\",\n });\n }\n });\n let isHovering = false;\n const showTooltip = () => {\n tooltip.classList.remove(\"opacity-0\");\n tooltip.classList.remove(\"pointer-events-none\");\n tooltip.classList.add(\"opacity-100\");\n };\n const hideTooltip = () => {\n if (isHovering) return;\n tooltip.classList.remove(\"opacity-100\");\n tooltip.classList.add(\"pointer-events-none\");\n tooltip.classList.add(\"opacity-0\");\n };\n el.addEventListener(\"mouseenter\", () => {\n isHovering = true;\n showTooltip();\n });\n el.addEventListener(\"mouseleave\", () => {\n isHovering = false;\n setTimeout(hideTooltip, 30);\n });\n el.addEventListener(\"focus\", () => {\n isHovering = true;\n showTooltip();\n });\n el.addEventListener(\"blur\", () => {\n isHovering = false;\n setTimeout(hideTooltip, 30);\n });\n tooltip.addEventListener(\"mouseenter\", () => {\n isHovering = true;\n });\n tooltip.addEventListener(\"mouseleave\", () => {\n isHovering = false;\n hideTooltip();\n });\n });\n","import \"../components/twoweekscal\";\nimport \"./index.css\";\n\nconst currentClasses = [\"scale-125\"];\nconst inactiveClasses = [\"filter\", \"grayscale\", \"grayscale-100\"];\nconst currentContentClasses = [\"translate-x-0\", \"opacity-1\"];\nconst inactiveContentClasses = [\n \"translate-x-full\",\n \"opacity-0\",\n \"mouse-events-none\",\n];\nconst imageSelector = \".image\";\nconst contentsSelector = \".activities-presentation .activity-content\";\n\nconst activitiesButtonsElement = document.querySelectorAll(\n \".activities-presentation .image-wrapper\"\n);\ninterface ActiveItem {\n el?: HTMLElement;\n [key: string | symbol]: any; // Adding an index signature\n timeoutID?: number;\n}\n\nlet activeActivity: ActiveItem = new Proxy(\n {},\n {\n get: function (target, property) {\n return target[property];\n },\n set: function (target, property, value) {\n if (target.el === value) {\n return true;\n }\n // remove from active\n if (property === \"el\" && target.el !== undefined) {\n const imgEl = target.el.querySelector(imageSelector);\n if (imgEl !== null) {\n imgEl.classList.remove(...currentClasses);\n imgEl.classList.add(...inactiveClasses);\n }\n const activityID = target.el.dataset.activity as string;\n const activityContent = document.querySelector(\n `${contentsSelector}[data-activity=\"${activityID}\"]`\n );\n activityContent?.classList.remove(...currentContentClasses);\n activityContent?.classList.add(...inactiveContentClasses);\n }\n target.el = value;\n // set the new active\n if (target.el !== undefined) {\n const imgEl = target.el.querySelector(imageSelector);\n if (imgEl !== null) {\n imgEl.classList.add(...currentClasses);\n imgEl.classList.remove(...inactiveClasses);\n }\n const activityID = target.el.dataset.activity as string;\n // let's set correct contentSelector\n const activityContent = document.querySelector(\n `${contentsSelector}[data-activity=\"${activityID}\"]`\n );\n activityContent?.classList.add(...currentContentClasses);\n activityContent?.classList.remove(...inactiveContentClasses);\n clearTimeout(target.timeoutID);\n target.timeoutID = window.setTimeout(() => {\n activeActivity.el =\n (activeActivity.el.nextSibling as HTMLElement) ??\n (activitiesButtonsElement[0] as HTMLElement) ??\n undefined;\n }, 30e3);\n }\n return true;\n },\n }\n);\n\nfor (var index in activitiesButtonsElement) {\n if (activitiesButtonsElement.hasOwnProperty(index)) {\n var element = activitiesButtonsElement[index];\n const active = element.querySelector(\n currentClasses.map((c) => `.${c}`).join(\" \")\n )?.parentElement;\n if (active) {\n activeActivity.el = active;\n }\n element.addEventListener(\"click\", (e) => {\n activeActivity.el = e.currentTarget as HTMLElement;\n });\n }\n}\n"],"names":["arrow"],"mappings":"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"}