From cc06a122accffa7e4c003c30793ef589ade40d3e Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 18 Oct 2026 14:30:07 +0800 Subject: [PATCH 1/3] fix(SVGEditor): fingerprint CSS asset Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Components/SvgEditor/SvgEditor.razor.cs | 10 +++++++++- .../Components/SvgEditor/SvgEditor.razor.js | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.cs b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.cs index 0a4b23ad1..0851e3328 100644 --- a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.cs +++ b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.cs @@ -11,6 +11,14 @@ namespace BootstrapBlazor.Components; /// public partial class SvgEditor { + private const string StylePath = "_content/BootstrapBlazor.SvgEditor/svgedit.bundle.css"; + +#if NET9_0_OR_GREATER + private string StyleUrl => Assets[StylePath]; +#else + private static string StyleUrl => StylePath; +#endif + /// /// 获得/设置 首次加载内容 /// @@ -29,7 +37,7 @@ public partial class SvgEditor /// /// /// - protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, new { Interop, Preload = PreContent, Callback = nameof(GetContent) }); + protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, new { Interop, Preload = PreContent, Callback = nameof(GetContent) }, StyleUrl); /// /// 更新内容方法 diff --git a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js index 0d3e0e9c9..7dfb0a238 100644 --- a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js +++ b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js @@ -2,10 +2,10 @@ import Data from '../../../BootstrapBlazor/modules/data.js' import Editor from "../../editor/Editor.js" -export async function init(id, options) { +export async function init(id, options, styleUrl) { const { preload, interop, callback } = options; - await addLink('_content/BootstrapBlazor.SvgEditor/svgedit.bundle.css'); + await addLink(styleUrl) /* for available options see the file `docs/tutorials/ConfigOptions.md */ const svgEditor = new Editor(document.getElementById(id)) From 9f15bf5fc8fade23324181eb9748f491880435ca Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 24 Oct 2026 08:56:31 +0800 Subject: [PATCH 2/3] chore: bump version 11.0.0-rc.2.1 --- .../BootstrapBlazor.SvgEditor.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/BootstrapBlazor.SVGEditor/BootstrapBlazor.SvgEditor.csproj b/src/components/BootstrapBlazor.SVGEditor/BootstrapBlazor.SvgEditor.csproj index 915957a98..e64d5d432 100644 --- a/src/components/BootstrapBlazor.SVGEditor/BootstrapBlazor.SvgEditor.csproj +++ b/src/components/BootstrapBlazor.SVGEditor/BootstrapBlazor.SvgEditor.csproj @@ -1,5 +1,9 @@ + + 11.0.0-rc.2.1 + + Bootstrap Blazor WebAssembly wasm UI Components Editor SvgEditor Bootstrap UI components extensions of Editor From ef35e806d237cc75b1b087c949b9a56396d58c10 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 24 Oct 2026 08:59:14 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=94=AF=E6=8C=81=E5=BC=82=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/SvgEditor/SvgEditor.razor.js | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js index 7dfb0a238..e7aef0824 100644 --- a/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js +++ b/src/components/BootstrapBlazor.SVGEditor/Components/SvgEditor/SvgEditor.razor.js @@ -1,4 +1,4 @@ -import { addLink } from '../../../BootstrapBlazor/modules/utility.js' +import { addLink } from '../../../BootstrapBlazor/modules/utility.js' import Data from '../../../BootstrapBlazor/modules/data.js' import Editor from "../../editor/Editor.js" @@ -7,8 +7,8 @@ export async function init(id, options, styleUrl) { await addLink(styleUrl) - /* for available options see the file `docs/tutorials/ConfigOptions.md */ - const svgEditor = new Editor(document.getElementById(id)) + const container = document.getElementById(id) + const svgEditor = new Editor(container) svgEditor.setConfig({ canvasName: id, lang: "en", @@ -18,31 +18,28 @@ export async function init(id, options, styleUrl) { extPath: "/_content/BootstrapBlazor.SvgEditor/editor/extensions/", noDefaultExtensions: false }) - svgEditor.init() + await svgEditor.init() svgEditor.topPanel.showSourceEditor = async (e, forceSaving) => { const origSource = svgEditor.svgCanvas.getSvgString() await interop.invokeMethodAsync(callback, origSource); } if (preload != null) { - svgEditor.loadFromString(preload) + await svgEditor.loadFromString(preload) } Data.set(id, { svgEditor, interop }) - var timer = setTimeout(() => { - svgEditor.zoomChanged(window, "canvas", true); - document.querySelector("#zoom").value = "canvas" - clearTimeout(timer) - }, 800) + svgEditor.zoomChanged(window, "canvas", true) + container.querySelector("#zoom").value = "canvas" } -export function updateContent(id, contenet) { +export async function update(id, content) { var editor = Data.get(id) if (editor) { - editor.svgEditor.loadFromString(contenet); + await editor.svgEditor.loadFromString(content); } }