summaryrefslogtreecommitdiff
path: root/ThirdParty/CsvHelper-master/docs/scripts/sidebar.js
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-12 09:24:40 +0800
committerchai <215380520@qq.com>2023-05-12 09:24:40 +0800
commit2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 (patch)
treea471fafed72e80b4ac3ac3002e06c34220dd6058 /ThirdParty/CsvHelper-master/docs/scripts/sidebar.js
parentb8a694746562b37dc8dc5b8b5aec8612bb0964fc (diff)
*misc
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs/scripts/sidebar.js')
-rw-r--r--ThirdParty/CsvHelper-master/docs/scripts/sidebar.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs/scripts/sidebar.js b/ThirdParty/CsvHelper-master/docs/scripts/sidebar.js
new file mode 100644
index 0000000..496dfef
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/scripts/sidebar.js
@@ -0,0 +1,41 @@
+(() => {
+ const sidebar = document.getElementById("sidebar");
+ if (!sidebar) {
+ return;
+ }
+
+ const parent = sidebar.parentElement;
+ const footer = document.getElementById("footer");
+
+ const resizeSidebarWidth = () => {
+ const rect = parent.getBoundingClientRect();
+ const style = getComputedStyle(parent);
+ const width = rect.width - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);
+ sidebar.style.width = `${width}px`;
+ };
+
+ const resizeSidebarHeight = () => {
+ const parentRect = parent.getBoundingClientRect();
+ const parentStyle = getComputedStyle(parent);
+ const footerRect = footer.getBoundingClientRect();
+ const bodyRect = document.body.getBoundingClientRect();
+
+ const top = Math.max(parentRect.top + parseFloat(parentStyle.paddingTop), 0);
+ const bottom = Math.max(bodyRect.height - footerRect.top, 0);
+
+ sidebar.style.top = `${top}px`;
+ sidebar.style.bottom = `${bottom}px`;
+ }
+
+ const handleExpanderClick = (e) => {
+ e.currentTarget.classList.toggle("expanded");
+ e.currentTarget.closest("li").querySelector("ul").classList.toggle("is-hidden");
+ }
+
+ const sidebarResizeObserver = new ResizeObserver(resizeSidebarWidth);
+ sidebarResizeObserver.observe(parent);
+
+ window.addEventListener("load", resizeSidebarHeight);
+ document.addEventListener("scroll", resizeSidebarHeight);
+ document.querySelectorAll(".expander").forEach(el => el.addEventListener("click", handleExpanderClick));
+})();