Last Sync: 2026-06-05 03:26 (Mobile)
This commit is contained in:
1 parent
7583b9e7d6
commit
97b79b8de6
27 files changed
+7728
-6659
No files matched your search
+93
-46
@@ -27,7 +27,7 @@ __export(main_exports, {
|
||||
default: () => AdvancedCanvasPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian19 = require("obsidian");
|
||||
var import_obsidian20 = require("obsidian");
|
||||
|
||||
// src/utils/icons-helper.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
@@ -1661,6 +1661,7 @@ var DEFAULT_SETTINGS_VALUES = {
|
||||
disableFontSizeRelativeToZoom: false,
|
||||
canvasMetadataCompatibilityEnabled: true,
|
||||
enableSingleNodeLinks: true,
|
||||
enableSingleNodePopupReferenceCopy: false,
|
||||
combineCustomStylesInDropdown: false,
|
||||
nodeStylingFeatureEnabled: true,
|
||||
customNodeStyleAttributes: [],
|
||||
@@ -1814,7 +1815,12 @@ var SETTINGS = {
|
||||
children: {
|
||||
enableSingleNodeLinks: {
|
||||
label: "Enable support for linking to a node using a [[wikilink]]",
|
||||
description: "When enabled, you can link and embed a node using [[canvas-file#node-id]].",
|
||||
description: 'When enabled, you can link and embed a node using [[canvas-file#node-id]] (Use the "Copy wikilink to node" command to get an id).',
|
||||
type: "boolean"
|
||||
},
|
||||
enableSingleNodePopupReferenceCopy: {
|
||||
label: "Show button to copy node [[wikilink]]",
|
||||
description: "When enabled, the node popup will show a button to copy the [[wikilink]] of the node for easy reference in other notes.",
|
||||
type: "boolean"
|
||||
}
|
||||
}
|
||||
@@ -2205,6 +2211,7 @@ var AdvancedCanvasPluginSettingTab = class extends import_obsidian4.PluginSettin
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
containerEl.classList.add("ac-settings");
|
||||
this.createKofiBanner(containerEl);
|
||||
for (const [headingId, heading] of Object.entries(SETTINGS)) {
|
||||
this.createFeatureHeading(
|
||||
@@ -2249,7 +2256,7 @@ var AdvancedCanvasPluginSettingTab = class extends import_obsidian4.PluginSettin
|
||||
const setting = new import_obsidian4.Setting(containerEl).setHeading().setClass("ac-settings-heading").setName(label).setDesc(description);
|
||||
if (infoSection !== void 0) {
|
||||
setting.addExtraButton(
|
||||
(button) => button.setTooltip("Open github documentation").setIcon("info").onClick(async () => {
|
||||
(button) => button.setTooltip("Open GitHub documentation").setIcon("info").onClick(async () => {
|
||||
const anchor = activeDocument.createElement("a");
|
||||
anchor.href = `${README_URL}#${infoSection}`;
|
||||
anchor.target = "_blank";
|
||||
@@ -3059,9 +3066,15 @@ var AdvancedCanvasEmbed = class extends import_obsidian7.Component {
|
||||
if (canvasNode.type === "text") nodeContent = canvasNode.text;
|
||||
else if (canvasNode.type === "group") nodeContent = `**Group Node:** ${canvasNode.label}`;
|
||||
else if (canvasNode.type === "file") nodeContent = `**File Node:** ${canvasNode.file}`;
|
||||
this.context.containerEl.classList.add("markdown-embed");
|
||||
this.context.containerEl.empty();
|
||||
await import_obsidian7.MarkdownRenderer.render(this.context.app, nodeContent, this.context.containerEl, this.file.path, this);
|
||||
this.context.containerEl.classList.add("ac-card-embed");
|
||||
if (canvasNode.color !== void 0) {
|
||||
this.context.containerEl.classList.add("is-themed");
|
||||
this.context.containerEl.classList.add(`mod-canvas-color-${canvasNode.color}`);
|
||||
}
|
||||
const markdownContainer = this.context.containerEl.createSpan();
|
||||
markdownContainer.classList.add("markdown-content");
|
||||
await import_obsidian7.MarkdownRenderer.render(this.context.app, nodeContent, markdownContainer, this.file.path, this);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4483,7 +4496,45 @@ var EncapsulateCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/commands-canvas-extension.ts
|
||||
var import_obsidian15 = require("obsidian");
|
||||
|
||||
// src/canvas-extensions/copy-node-reference-canvas-extension.ts
|
||||
var import_obsidian14 = require("obsidian");
|
||||
var CopyNodeReferenceCanvasExtension = class _CopyNodeReferenceCanvasExtension extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "enableSingleNodePopupReferenceCopy";
|
||||
}
|
||||
init() {
|
||||
this.plugin.registerEvent(this.plugin.app.workspace.on(
|
||||
"advanced-canvas:popup-menu-created",
|
||||
(canvas) => this.onPopupMenuCreated(canvas)
|
||||
));
|
||||
}
|
||||
onPopupMenuCreated(canvas) {
|
||||
var _a;
|
||||
const popupMenuEl = (_a = canvas == null ? void 0 : canvas.menu) == null ? void 0 : _a.menuEl;
|
||||
if (!popupMenuEl) return;
|
||||
const selectionData = canvas.getSelectionData();
|
||||
if (selectionData.nodes.length !== 1 && selectionData.edges.length === 0) return;
|
||||
const menuOption = {
|
||||
id: "node-popup-menu-option-copy-reference",
|
||||
label: "Copy wikilink to node",
|
||||
icon: "link",
|
||||
callback: () => _CopyNodeReferenceCanvasExtension.copyWikilinkToNode(canvas.view.file, selectionData.nodes[0])
|
||||
};
|
||||
const popupMenuOption = CanvasHelper.createPopupMenuOption(menuOption);
|
||||
CanvasHelper.addPopupMenuOption(canvas, popupMenuOption);
|
||||
}
|
||||
static copyWikilinkToNode(file, nodeData) {
|
||||
const nodeTypeString = TextHelper.toTitleCase(nodeData.type);
|
||||
const wikilink = `[[${file.path}#${nodeData.id}|${file.name} (${nodeTypeString} node)]]`;
|
||||
navigator.clipboard.writeText(wikilink).then(
|
||||
() => new import_obsidian14.Notice("Copied wikilink to node to clipboard.", 2e3)
|
||||
).catch(() => new import_obsidian14.Notice("Failed to copy wikilink to node to clipboard.", 2e3));
|
||||
}
|
||||
};
|
||||
|
||||
// src/canvas-extensions/commands-canvas-extension.ts
|
||||
var DIRECTIONS = ["up", "down", "left", "right"];
|
||||
var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
@@ -4655,10 +4706,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!file) return;
|
||||
const nodeData = canvas.getSelectionData().nodes[0];
|
||||
if (!nodeData) return;
|
||||
const wikilink = `[[${file.path}#${nodeData.id}|${file.name} (${TextHelper.toTitleCase(nodeData.type)} node)]]`;
|
||||
navigator.clipboard.writeText(wikilink).then(
|
||||
() => new import_obsidian14.Notice("Copied wikilink to node to clipboard.", 2e3)
|
||||
).catch(() => new import_obsidian14.Notice("Failed to copy wikilink to node to clipboard.", 2e3));
|
||||
CopyNodeReferenceCanvasExtension.copyWikilinkToNode(file, nodeData);
|
||||
}
|
||||
)
|
||||
});
|
||||
@@ -4690,7 +4738,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!nodeOutgoingLinks) continue;
|
||||
for (const nodeOutgoingLink of nodeOutgoingLinks) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(nodeOutgoingLink.link, relativeFile.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
outgoingLinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -4726,7 +4774,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!nodeBacklinks) continue;
|
||||
for (const nodeBacklink of nodeBacklinks.data.keys()) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(nodeBacklink, file.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
backlinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -4735,7 +4783,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!canvasBacklinks) return;
|
||||
for (const canvasBacklink of canvasBacklinks.data.keys()) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(canvasBacklink, canvasFile.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
backlinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -5011,7 +5059,7 @@ var AutoResizeNodeCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/portals-canvas-extension.ts
|
||||
var import_obsidian15 = require("obsidian");
|
||||
var import_obsidian16 = require("obsidian");
|
||||
var PORTAL_ID_DELIMITER = "||";
|
||||
var PORTAL_ID_PREFIX = `acportal${PORTAL_ID_DELIMITER}`;
|
||||
var PORTAL_PADDING = 50;
|
||||
@@ -5073,7 +5121,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
setData(newData);
|
||||
}).catch((error) => {
|
||||
console.error("Error loading portal data:", error);
|
||||
new import_obsidian15.Notice("An error occurred while loading portal data. Please check console for details.");
|
||||
new import_obsidian16.Notice("An error occurred while loading portal data. Please check console for details.");
|
||||
});
|
||||
}
|
||||
));
|
||||
@@ -5153,13 +5201,13 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
onEdgeConnectionTryDraggingBefore(_canvas, edge, _event, cancelRef) {
|
||||
if (!_PortalsCanvasExtension.isPortalElement(edge.id)) return;
|
||||
cancelRef.value = true;
|
||||
new import_obsidian15.Notice("Updating edges from portals is not supported yet.");
|
||||
new import_obsidian16.Notice("Updating edges from portals is not supported yet.");
|
||||
}
|
||||
onEdgeConnectionDraggingAfter(canvas, edge, _event, _newEdge, _side, _previousEnds) {
|
||||
if (_PortalsCanvasExtension.isPortalElement(edge.id)) return;
|
||||
if (!_PortalsCanvasExtension.isPortalElement(edge.from.node.id) || !_PortalsCanvasExtension.isPortalElement(edge.to.node.id)) return;
|
||||
canvas.removeEdge(edge);
|
||||
new import_obsidian15.Notice("Creating edges with both ends in portals are not supported yet.");
|
||||
new import_obsidian16.Notice("Creating edges with both ends in portals are not supported yet.");
|
||||
}
|
||||
onPopupMenu(canvas) {
|
||||
if (canvas.readonly) return;
|
||||
@@ -5246,7 +5294,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
if (nestedPortalFiles.has(portalNodeData.file)) return addedData;
|
||||
nestedPortalFiles.add(portalNodeData.file);
|
||||
const portalFile = this.plugin.app.vault.getAbstractFileByPath(portalNodeData.file);
|
||||
if (!(portalFile instanceof import_obsidian15.TFile) || portalFile.extension !== "canvas") return addedData;
|
||||
if (!(portalFile instanceof import_obsidian16.TFile) || portalFile.extension !== "canvas") return addedData;
|
||||
const portalFileDataString = await this.plugin.app.vault.cachedRead(portalFile);
|
||||
if (portalFileDataString === "") return addedData;
|
||||
const portalFileData = JSON.parse(portalFileDataString);
|
||||
@@ -5337,7 +5385,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
};
|
||||
|
||||
// src/canvas-extensions/frontmatter-control-button-canvas-extension.ts
|
||||
var import_obsidian16 = require("obsidian");
|
||||
var import_obsidian17 = require("obsidian");
|
||||
var FrontmatterControlButtonCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "canvasMetadataCompatibilityEnabled";
|
||||
@@ -5363,7 +5411,7 @@ var FrontmatterControlButtonCanvasExtension = class extends CanvasExtension {
|
||||
var _a2;
|
||||
const propertiesPlugin = this.plugin.app.internalPlugins.plugins["properties"];
|
||||
if (!(propertiesPlugin == null ? void 0 : propertiesPlugin._loaded)) {
|
||||
new import_obsidian16.Notice(`Core plugin "Properties view" was not found or isn't enabled. Enable it and restart Obsidian.`);
|
||||
new import_obsidian17.Notice(`Core plugin "Properties view" was not found or isn't enabled. Enable it and restart Obsidian.`);
|
||||
return;
|
||||
}
|
||||
let propertiesLeaf = (_a2 = this.plugin.app.workspace.getLeavesOfType("file-properties").first()) != null ? _a2 : null;
|
||||
@@ -5610,7 +5658,7 @@ var ColorPaletteCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/collapsible-groups-canvas-extension.ts
|
||||
var import_obsidian17 = require("obsidian");
|
||||
var import_obsidian18 = require("obsidian");
|
||||
var CollapsibleGroupsCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "collapsibleGroupsFeatureEnabled";
|
||||
@@ -5658,7 +5706,7 @@ var CollapsibleGroupsCanvasExtension = class extends CanvasExtension {
|
||||
(_a = groupNode.collapseEl) == null ? void 0 : _a.remove();
|
||||
const collapseEl = activeDocument.createElement("div");
|
||||
collapseEl.className = "collapse-button";
|
||||
(0, import_obsidian17.setIcon)(collapseEl, groupNodeData.collapsed ? "plus-circle" : "minus-circle");
|
||||
(0, import_obsidian18.setIcon)(collapseEl, groupNodeData.collapsed ? "plus-circle" : "minus-circle");
|
||||
collapseEl.onclick = () => this.toggleCollapseGroup(canvas, groupNode);
|
||||
groupNode.collapseEl = collapseEl;
|
||||
(_b = groupNode.labelEl) == null ? void 0 : _b.insertAdjacentElement("afterend", collapseEl);
|
||||
@@ -6746,7 +6794,7 @@ async function toPng(node, options = {}) {
|
||||
}
|
||||
|
||||
// src/canvas-extensions/export-canvas-extension.ts
|
||||
var import_obsidian18 = require("obsidian");
|
||||
var import_obsidian19 = require("obsidian");
|
||||
var MAX_ALLOWED_LOADING_TIME = 1e4;
|
||||
var ExportCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
@@ -6782,7 +6830,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
});
|
||||
}
|
||||
async showExportImageSettingsModal(canvas, nodesToExport) {
|
||||
const modal = new import_obsidian18.Modal(this.plugin.app);
|
||||
const modal = new import_obsidian19.Modal(this.plugin.app);
|
||||
modal.setTitle("Export image settings");
|
||||
let pixelRatioSetting = null;
|
||||
let noFontExportSetting = null;
|
||||
@@ -6800,7 +6848,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
}
|
||||
};
|
||||
let svg = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Export file format").setDesc("Choose the file format to export the canvas as.").addDropdown(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Export file format").setDesc("Choose the file format to export the canvas as.").addDropdown(
|
||||
(dropdown) => dropdown.addOptions({
|
||||
png: "PNG",
|
||||
svg: "SVG"
|
||||
@@ -6810,33 +6858,33 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
})
|
||||
);
|
||||
let pixelRatioFactor = 1;
|
||||
pixelRatioSetting = new import_obsidian18.Setting(modal.contentEl).setName("Pixel ratio").setDesc("Higher pixel ratios result in higher resolution images but also larger file sizes.").addSlider(
|
||||
pixelRatioSetting = new import_obsidian19.Setting(modal.contentEl).setName("Pixel ratio").setDesc("Higher pixel ratios result in higher resolution images but also larger file sizes.").addSlider(
|
||||
(slider) => slider.setDynamicTooltip().setLimits(0.2, 5, 0.1).setValue(pixelRatioFactor).onChange((value) => pixelRatioFactor = value)
|
||||
);
|
||||
let noFontExport = true;
|
||||
noFontExportSetting = new import_obsidian18.Setting(modal.contentEl).setName("Skip font export").setDesc("This will not include the fonts in the exported SVG. This will make the SVG file smaller.").addToggle(
|
||||
noFontExportSetting = new import_obsidian19.Setting(modal.contentEl).setName("Skip font export").setDesc("This will not include the fonts in the exported SVG. This will make the SVG file smaller.").addToggle(
|
||||
(toggle) => toggle.setValue(noFontExport).onChange((value) => noFontExport = value)
|
||||
);
|
||||
let theme = activeDocument.body.classList.contains("theme-dark") ? "dark" : "light";
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Theme").setDesc("The theme used for the export.").addDropdown(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Theme").setDesc("The theme used for the export.").addDropdown(
|
||||
(dropdown) => dropdown.addOptions({
|
||||
light: "Light",
|
||||
dark: "Dark"
|
||||
}).setValue(theme).onChange((value) => theme = value)
|
||||
);
|
||||
let watermark = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Show logo").setDesc("This will add an Obsidian + Advanced Canvas logo to the bottom left.").addToggle(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Show logo").setDesc("This will add an Obsidian + Advanced Canvas logo to the bottom left.").addToggle(
|
||||
(toggle) => toggle.setValue(watermark).onChange((value) => watermark = value)
|
||||
);
|
||||
let garbledText = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Privacy mode").setDesc("This will obscure any text on your canvas.").addToggle(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Privacy mode").setDesc("This will obscure any text on your canvas.").addToggle(
|
||||
(toggle) => toggle.setValue(garbledText).onChange((value) => garbledText = value)
|
||||
);
|
||||
let transparentBackground = false;
|
||||
transparentBackgroundSetting = new import_obsidian18.Setting(modal.contentEl).setName("Transparent background").setDesc("This will make the background of the image transparent.").addToggle(
|
||||
transparentBackgroundSetting = new import_obsidian19.Setting(modal.contentEl).setName("Transparent background").setDesc("This will make the background of the image transparent.").addToggle(
|
||||
(toggle) => toggle.setValue(transparentBackground).onChange((value) => transparentBackground = value)
|
||||
);
|
||||
new import_obsidian18.Setting(modal.contentEl).addButton(
|
||||
new import_obsidian19.Setting(modal.contentEl).addButton(
|
||||
(button) => button.setButtonText("Save").setCta().onClick(async () => {
|
||||
modal.close();
|
||||
await this.exportImage(
|
||||
@@ -6870,7 +6918,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
return nodesToExportIds.includes(edgeData.fromNode) && nodesToExportIds.includes(edgeData.toNode);
|
||||
});
|
||||
const backgroundColor = transparentBackground ? void 0 : window.getComputedStyle(canvas.canvasEl).getPropertyValue("--canvas-background");
|
||||
new import_obsidian18.Notice("Exporting the canvas. Please wait...");
|
||||
new import_obsidian19.Notice("Exporting the canvas. Please wait...");
|
||||
const interactionBlocker = this.getInteractionBlocker();
|
||||
activeDocument.body.appendChild(interactionBlocker);
|
||||
canvas.screenshotting = true;
|
||||
@@ -6971,7 +7019,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
downloadEl.click();
|
||||
} else {
|
||||
const ERROR_MESSAGE = "Export cancelled: Nodes did not finish loading in time";
|
||||
new import_obsidian18.Notice(ERROR_MESSAGE);
|
||||
new import_obsidian19.Notice(ERROR_MESSAGE);
|
||||
console.error(ERROR_MESSAGE);
|
||||
}
|
||||
} finally {
|
||||
@@ -7296,16 +7344,14 @@ var EdgeExposerExtension = class extends CanvasExtension {
|
||||
for (const exposedDataKey of getExposedEdgeData(this.plugin.settings)) {
|
||||
const datasetPairs = edgeData[exposedDataKey] && typeof edgeData[exposedDataKey] === "object" ? Object.entries(edgeData[exposedDataKey]) : [[exposedDataKey, edgeData[exposedDataKey]]];
|
||||
for (const [key, value] of datasetPairs) {
|
||||
const stringifiedKey = JSON.stringify(key);
|
||||
if (!stringifiedKey) continue;
|
||||
if (!value) {
|
||||
delete edge.path.display.dataset[stringifiedKey];
|
||||
if ((_a = edge.fromLineEnd) == null ? void 0 : _a.el) delete edge.fromLineEnd.el.dataset[stringifiedKey];
|
||||
if ((_b = edge.toLineEnd) == null ? void 0 : _b.el) delete edge.toLineEnd.el.dataset[stringifiedKey];
|
||||
delete edge.path.display.dataset[key];
|
||||
if ((_a = edge.fromLineEnd) == null ? void 0 : _a.el) delete edge.fromLineEnd.el.dataset[key];
|
||||
if ((_b = edge.toLineEnd) == null ? void 0 : _b.el) delete edge.toLineEnd.el.dataset[key];
|
||||
} else {
|
||||
edge.path.display.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
if ((_c = edge.fromLineEnd) == null ? void 0 : _c.el) edge.fromLineEnd.el.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
if ((_d = edge.toLineEnd) == null ? void 0 : _d.el) edge.toLineEnd.el.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
edge.path.display.dataset[key] = value;
|
||||
if ((_c = edge.fromLineEnd) == null ? void 0 : _c.el) edge.fromLineEnd.el.dataset[key] = value;
|
||||
if ((_d = edge.toLineEnd) == null ? void 0 : _d.el) edge.toLineEnd.el.dataset[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7423,10 +7469,10 @@ var PATCHERS = [
|
||||
FileManagerPatcher,
|
||||
// Direct metadata dependant patchers
|
||||
PropertiesPatcher,
|
||||
!(0, import_obsidian19.requireApiVersion)("1.12.0") && BacklinksPatcher,
|
||||
!(0, import_obsidian20.requireApiVersion)("1.12.0") && BacklinksPatcher,
|
||||
OutgoingLinksPatcher,
|
||||
// Metadata dependant patchers
|
||||
(0, import_obsidian19.requireApiVersion)("1.9.0") && BasesTableViewPatcher,
|
||||
(0, import_obsidian20.requireApiVersion)("1.9.0") && BasesTableViewPatcher,
|
||||
LinkSuggestionsPatcher,
|
||||
EmbedPatcher,
|
||||
SearchPatcher
|
||||
@@ -7462,9 +7508,10 @@ var CANVAS_EXTENSIONS = [
|
||||
ExportCanvasExtension,
|
||||
FocusModeCanvasExtension,
|
||||
EncapsulateCanvasExtension,
|
||||
EdgeSelectionCanvasExtension
|
||||
EdgeSelectionCanvasExtension,
|
||||
CopyNodeReferenceCanvasExtension
|
||||
];
|
||||
var AdvancedCanvasPlugin = class extends import_obsidian19.Plugin {
|
||||
var AdvancedCanvasPlugin = class extends import_obsidian20.Plugin {
|
||||
async onload() {
|
||||
IconsHelper.addIcons();
|
||||
this.settings = new SettingsManager(this);
|
||||
@@ -7496,7 +7543,7 @@ var AdvancedCanvasPlugin = class extends import_obsidian19.Plugin {
|
||||
}).filter((canvas) => canvas);
|
||||
}
|
||||
getCurrentCanvasView() {
|
||||
const canvasView = this.app.workspace.getActiveViewOfType(import_obsidian19.ItemView);
|
||||
const canvasView = this.app.workspace.getActiveViewOfType(import_obsidian20.ItemView);
|
||||
if ((canvasView == null ? void 0 : canvasView.getViewType()) !== "canvas") return null;
|
||||
return canvasView;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "advanced-canvas",
|
||||
"name": "Advanced Canvas",
|
||||
"version": "6.1.6",
|
||||
"version": "6.2.0",
|
||||
"minAppVersion": "1.7.2",
|
||||
"description": "Supercharge your canvas experience! Create presentations, flowcharts and more!",
|
||||
"author": "Developer-Mike",
|
||||
|
||||
+49
-17
@@ -1,55 +1,55 @@
|
||||
/* src/styles.scss */
|
||||
.properties-field > .setting-item-info {
|
||||
.ac-settings .properties-field > .setting-item-info {
|
||||
flex: 0;
|
||||
margin: 0;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
border: var(--input-border-width) solid var(--background-modifier-border);
|
||||
border-radius: var(--input-radius) 0 0 var(--input-radius);
|
||||
}
|
||||
.properties-field > .setting-item-control > input {
|
||||
.ac-settings .properties-field > .setting-item-control > input {
|
||||
width: 100%;
|
||||
border-radius: 0 var(--input-radius) var(--input-radius) 0;
|
||||
}
|
||||
.ac-settings-heading:not(:first-child) {
|
||||
.ac-settings .ac-settings-heading:not(:first-child) {
|
||||
margin-top: var(--size-4-10) !important;
|
||||
}
|
||||
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) {
|
||||
.ac-settings .ac-settings-heading:has(.checkbox-container:not(.is-enabled)) {
|
||||
border-bottom-color: var(--background-modifier-border-hover);
|
||||
}
|
||||
.ac-settings-heading .setting-item-description {
|
||||
.ac-settings .ac-settings-heading .setting-item-description {
|
||||
margin-inline-end: 20px;
|
||||
}
|
||||
.settings-header-children {
|
||||
.ac-settings .settings-header-children {
|
||||
transform-origin: top center;
|
||||
transform: scaleY(1);
|
||||
transition: transform 0.2s ease-in-out;
|
||||
}
|
||||
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
||||
.ac-settings .ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
||||
opacity: 0.5;
|
||||
pointer-events: none;
|
||||
height: 0;
|
||||
transform: scaleY(0);
|
||||
}
|
||||
.setting-item > .setting-item-control input[type=text] {
|
||||
.ac-settings .setting-item > .setting-item-control input[type=text] {
|
||||
width: 75px;
|
||||
}
|
||||
details.setting-item {
|
||||
.ac-settings details.setting-item {
|
||||
flex-direction: column;
|
||||
align-items: initial;
|
||||
}
|
||||
details.setting-item:not([open]) {
|
||||
.ac-settings details.setting-item:not([open]) {
|
||||
row-gap: 0;
|
||||
}
|
||||
details.setting-item[open] {
|
||||
.ac-settings details.setting-item[open] {
|
||||
padding-bottom: var(--size-4-2);
|
||||
}
|
||||
details.setting-item[open] > summary {
|
||||
.ac-settings details.setting-item[open] > summary {
|
||||
margin-bottom: var(--size-4-2);
|
||||
}
|
||||
details.setting-item > *:not(summary) {
|
||||
.ac-settings details.setting-item > *:not(summary) {
|
||||
border: 1px solid var(--background-primary);
|
||||
}
|
||||
.kofi-banner {
|
||||
.ac-settings .kofi-banner {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
@@ -58,17 +58,17 @@ details.setting-item > *:not(summary) {
|
||||
background-color: var(--background-primary-alt);
|
||||
border-radius: var(--radius-m);
|
||||
}
|
||||
.kofi-banner .ac-kofi-banner-title {
|
||||
.ac-settings .kofi-banner .ac-kofi-banner-title {
|
||||
margin: 0;
|
||||
font-size: var(--font-ui-small);
|
||||
font-weight: 600;
|
||||
}
|
||||
.kofi-banner .ac-kofi-button {
|
||||
.ac-settings .kofi-banner .ac-kofi-button {
|
||||
width: min-content;
|
||||
height: min-content;
|
||||
line-height: 0;
|
||||
}
|
||||
.kofi-banner .ac-kofi-button img {
|
||||
.ac-settings .kofi-banner .ac-kofi-button img {
|
||||
min-width: 75px;
|
||||
width: 25%;
|
||||
max-width: 100px;
|
||||
@@ -491,3 +491,35 @@ details.setting-item > *:not(summary) {
|
||||
.canvas-node-interaction-layer[data-is-from-portal=true] .canvas-node-resizer .canvas-node-connection-point {
|
||||
pointer-events: all;
|
||||
}
|
||||
.ac-card-embed {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
contain: strict;
|
||||
overflow: hidden;
|
||||
background-color: var(--background-primary);
|
||||
border: 1px solid rgb(var(--canvas-color));
|
||||
border-radius: var(--radius-m);
|
||||
box-shadow: var(--shadow-stationary);
|
||||
}
|
||||
.ac-card-embed.is-themed {
|
||||
background-color: rgba(var(--canvas-color), 0.07);
|
||||
border-color: rgba(var(--canvas-color), 0.7);
|
||||
box-shadow: inset 0 0 0 1px rgba(var(--canvas-color), 0.7), var(--shadow-stationary);
|
||||
}
|
||||
.ac-card-embed > .markdown-content {
|
||||
position: relative;
|
||||
overflow-y: auto;
|
||||
overflow-wrap: break-word;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0 var(--size-4-4);
|
||||
font-size: var(--font-text-size);
|
||||
font-family: var(--font-text);
|
||||
line-height: var(--line-height-normal);
|
||||
color: var(--text-normal);
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
scrollbar-gutter: stable;
|
||||
}
|
||||
Reference in new issue
Block a user