From 83636c1fd91fa3cb1ceb86884bf8df4a03109478 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 13 Dec 2025 15:41:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wwwroot/css/pdf_reader.css | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/components/BootstrapBlazor.PdfReader/wwwroot/css/pdf_reader.css b/src/components/BootstrapBlazor.PdfReader/wwwroot/css/pdf_reader.css index 6f6827d0..690dc668 100644 --- a/src/components/BootstrapBlazor.PdfReader/wwwroot/css/pdf_reader.css +++ b/src/components/BootstrapBlazor.PdfReader/wwwroot/css/pdf_reader.css @@ -8,6 +8,25 @@ height: calc(var(--bb-pdf-view-height) + var(--bb-pdf-toolbar-height)); } +.bb-view-progress { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 0.25rem; +} + + .bb-view-progress:not(.show) { + display: none; + } + +.bb-view-progress-bar { + height: 100%; + background-color: var(--bs-primary); + width: var(--bb-view-progress-val, 0); + transition: width .3s linear; +} + .bb-view-toolbar { height: var(--bb-pdf-toolbar-height); background-color: var(--bb-toolbar-background-color); From 92c1cba1b28f8f9325e21e6cc582d77bdf002036 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 13 Dec 2025 15:41:47 +0800 Subject: [PATCH 2/5] chore: bump version 10.0.14 --- .../BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj b/src/components/BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj index c56c856c..c0f89e1e 100644 --- a/src/components/BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj +++ b/src/components/BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj @@ -1,7 +1,7 @@  - 10.0.13 + 10.0.14 From 94870fd4d93c53235fe48ca3d2e12878799751ed Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 13 Dec 2025 15:42:03 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BootstrapBlazor.PdfReader/PdfReader.razor | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor index 35b21a76..58a81f25 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor @@ -3,6 +3,9 @@ @inherits BootstrapModuleComponentBase
+
+
+
@if (ShowToolbar) { From 4d4faab7231ee5e7d8f1148f28ada4e8fba71250 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 13 Dec 2025 15:42:21 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PdfReader.razor.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js index cd52db19..685deb21 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js @@ -125,8 +125,34 @@ export function resetThumbnails(id) { const loadPdf = async pdf => { const { el, invoke, options } = pdf; const loadingTask = pdfjsLib.getDocument(options); + + const progressEl = el.querySelector('.bb-view-progress'); + if (progressEl) { + progressEl.classList.add('show'); + } + const bar = el.querySelector('.bb-view-progress-bar'); + if (bar) { + bar.style.setProperty('--bb-view-progress-val', '0'); + } + + let progressHandler = null; loadingTask.onProgress = function (progressData) { + const { loaded, total } = progressData; + if (bar) { + const val = loaded / total * 100; + if (val > 100) { + val = 100; + } + bar.style.setProperty('--bb-view-progress-val', `${val}%`); + + if (progressHandler === null) { + progressHandler = setTimeout(() => { + clearTimeout(progressHandler); + progressEl.classList.remove('show'); + }, 300); + } + } }; loadingTask.onPassword = function (updatePassword, reason) { From 42203adaef9a8e80fc774d897ceff794d22c585f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 13 Dec 2025 15:43:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20revokeObjectUR?= =?UTF-8?q?L=20=E9=98=B2=E6=AD=A2=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BootstrapBlazor.PdfReader/PdfReader.razor.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js index 685deb21..acc5d0a2 100644 --- a/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js +++ b/src/components/BootstrapBlazor.PdfReader/PdfReader.razor.js @@ -47,14 +47,12 @@ export async function setData(id, data) { return; } - const { options, objectUrl } = pdf; - if (objectUrl) { - URL.revokeObjectURL(objectUrl); - } + const objectUrl = createObjectURLFromByte(data); + pdf.objectUrl = objectUrl; - options.url = createObjectURLFromByte(data); + const { options } = pdf; + options.url = objectUrl; options.data = null; - pdf.objectUrl = options.url; await loadPdf(pdf); } @@ -187,7 +185,11 @@ const loadPdf = async pdf => { } const disposePdf = pdf => { - const { el, observer, loadingTask } = pdf; + const { el, observer, loadingTask, objectUrl } = pdf; + if (objectUrl) { + URL.revokeObjectURL(objectUrl); + } + if (observer) { observer.disconnect(); }