2025-12-23 20:18:27 +00:00
|
|
|
import { setIcon } from "obsidian";
|
|
|
|
|
|
2025-12-20 01:34:41 +00:00
|
|
|
export function getOuterHeight(element: HTMLElement): number {
|
|
|
|
|
const marginTop = parseFloat(getComputedStyle(element).marginTop) || 0;
|
|
|
|
|
const marginBottom = parseFloat(getComputedStyle(element).marginBottom) || 0;
|
|
|
|
|
return element.offsetHeight + marginTop + marginBottom;
|
2025-12-23 20:18:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function setElementIcon(element: HTMLDivElement, iconName: string) {
|
|
|
|
|
if (element) {
|
|
|
|
|
setIcon(element, iconName);
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
update(newIconName: string) {
|
|
|
|
|
if (element) {
|
|
|
|
|
setIcon(element, newIconName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-04-25 20:13:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function hideDrawerElements() {
|
|
|
|
|
for (const element of getDrawerElements()) {
|
|
|
|
|
if ("vaultKeeperHidden" in element.dataset) continue;
|
|
|
|
|
|
|
|
|
|
const computed = getComputedStyle(element);
|
|
|
|
|
element.dataset.vaultKeeperHidden = String(element.scrollHeight);
|
|
|
|
|
element.dataset.vaultKeeperPaddingTop = computed.paddingTop;
|
|
|
|
|
element.dataset.vaultKeeperPaddingBottom = computed.paddingBottom;
|
|
|
|
|
|
|
|
|
|
element.setCssProps({
|
|
|
|
|
"--vaultKeeper-drawer-height": element.scrollHeight + "px",
|
|
|
|
|
"--vaultKeeper-drawer-padding-top": computed.paddingTop,
|
|
|
|
|
"--vaultKeeper-drawer-padding-bottom": computed.paddingBottom,
|
|
|
|
|
});
|
|
|
|
|
element.addClass("vaultKeeper-drawer-hiding");
|
|
|
|
|
|
Update dependencies and replace deprecated API calls
Replace activeDocument/activeWindow globals with Obsidian API equivalents (createFragment, createDiv, createSpan, window), update officeparser to use async API, switch diff2html import path and disable highlight option, prefix unused parameters with underscore, and update dependencies including @anthropic-ai/sdk, @google/genai, officeparser, and various dev dependencies
2026-05-17 11:42:09 +00:00
|
|
|
window.requestAnimationFrame(() => {
|
2026-04-25 20:13:59 +00:00
|
|
|
element.removeClass("vaultKeeper-drawer-hiding");
|
|
|
|
|
element.addClass("vaultKeeper-drawer-collapsed");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
element.addEventListener("transitionend", () => {
|
|
|
|
|
element.removeClass("vaultKeeper-drawer-collapsed");
|
|
|
|
|
element.addClass("vaultKeeper-drawer-hidden");
|
|
|
|
|
}, { once: true });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function restoreDrawerElements() {
|
|
|
|
|
for (const element of getDrawerElements()) {
|
|
|
|
|
if (!("vaultKeeperHidden" in element.dataset)) continue;
|
|
|
|
|
|
|
|
|
|
const targetHeight = element.dataset.vaultKeeperHidden ?? "0";
|
|
|
|
|
const paddingTop = element.dataset.vaultKeeperPaddingTop ?? "0";
|
|
|
|
|
const paddingBottom = element.dataset.vaultKeeperPaddingBottom ?? "0";
|
|
|
|
|
delete element.dataset.vaultKeeperHidden;
|
|
|
|
|
delete element.dataset.vaultKeeperPaddingTop;
|
|
|
|
|
delete element.dataset.vaultKeeperPaddingBottom;
|
|
|
|
|
|
|
|
|
|
element.setCssProps({
|
|
|
|
|
"--vaultKeeper-drawer-height": targetHeight + "px",
|
|
|
|
|
"--vaultKeeper-drawer-padding-top": paddingTop,
|
|
|
|
|
"--vaultKeeper-drawer-padding-bottom": paddingBottom,
|
|
|
|
|
});
|
|
|
|
|
element.removeClass("vaultKeeper-drawer-hidden");
|
|
|
|
|
element.addClass("vaultKeeper-drawer-restoring");
|
|
|
|
|
|
Update dependencies and replace deprecated API calls
Replace activeDocument/activeWindow globals with Obsidian API equivalents (createFragment, createDiv, createSpan, window), update officeparser to use async API, switch diff2html import path and disable highlight option, prefix unused parameters with underscore, and update dependencies including @anthropic-ai/sdk, @google/genai, officeparser, and various dev dependencies
2026-05-17 11:42:09 +00:00
|
|
|
window.requestAnimationFrame(() => {
|
2026-04-25 20:13:59 +00:00
|
|
|
element.removeClass("vaultKeeper-drawer-restoring");
|
|
|
|
|
element.addClass("vaultKeeper-drawer-expanding");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
element.addEventListener("transitionend", () => {
|
|
|
|
|
element.removeClass("vaultKeeper-drawer-expanding");
|
|
|
|
|
}, { once: true });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getDrawerElements(): NodeListOf<HTMLElement> {
|
|
|
|
|
return activeDocument.querySelectorAll<HTMLElement>(".workspace-drawer-header, .workspace-drawer-tab-options");
|
2025-12-20 01:34:41 +00:00
|
|
|
}
|