From 5c5ba2c65ade2432beef3771998b34e17ed6e09b Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Sun, 12 Nov 2023 10:21:32 +0100 Subject: [PATCH 1/3] Docs: change users to developers --- .../Blazorise.Docs/Components/Commercial/Pricing.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/Blazorise.Docs/Components/Commercial/Pricing.razor b/Documentation/Blazorise.Docs/Components/Commercial/Pricing.razor index d8151d456f..8dbc638113 100644 --- a/Documentation/Blazorise.Docs/Components/Commercial/Pricing.razor +++ b/Documentation/Blazorise.Docs/Components/Commercial/Pricing.razor @@ -19,7 +19,7 @@ - users + developers From 385b5881dc7551c52ff7ab929e67595add91c0fb Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Sun, 12 Nov 2023 10:24:21 +0100 Subject: [PATCH 2/3] Docs: change main heading --- Documentation/Blazorise.Docs/Pages/Home/Index.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/Blazorise.Docs/Pages/Home/Index.razor b/Documentation/Blazorise.Docs/Pages/Home/Index.razor index 7d3e4f0d25..29f2781d92 100644 --- a/Documentation/Blazorise.Docs/Pages/Home/Index.razor +++ b/Documentation/Blazorise.Docs/Pages/Home/Index.razor @@ -4,7 +4,7 @@ - Dev Focused <Span Class="gradient-commercial">Blazor Component</Span> Library + Developer Focused <Span Class="gradient-commercial">Blazor Component</Span> Library Build Blazor web applications from scratch with a set of 80+ native Blazor UI components. From ece5c9f11082434257c3dae1caec4b780baf23e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mladen=20Macanovi=C4=87?= Date: Sun, 12 Nov 2023 16:37:04 +0100 Subject: [PATCH 3/3] SignaturePad: fix scaling on smaller screens (#5138) * Add resizeCanvas calculation * Revert styles in the demo * Assign styles based on canvas size * Inline two if checks * Fix naming --- .../wwwroot/signaturepad.js | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/Source/Extensions/Blazorise.SignaturePad/wwwroot/signaturepad.js b/Source/Extensions/Blazorise.SignaturePad/wwwroot/signaturepad.js index b20212f131..09417341a5 100644 --- a/Source/Extensions/Blazorise.SignaturePad/wwwroot/signaturepad.js +++ b/Source/Extensions/Blazorise.SignaturePad/wwwroot/signaturepad.js @@ -9,6 +9,12 @@ export function initialize(dotNetAdapter, element, elementId, options) { if (!element) return; + // we need to match the canvas size ans size in styles so that we can properly calculate scaling based on screen size + if (element.width && element.height) { + element.style.width = `${element.width}px`; + element.style.height = `${element.height}px`; + } + const sigpad = new SignaturePad(element, { minWidth: options.minLineWidth || 0.5, maxWidth: options.maxLineWidth || 2.5, @@ -31,11 +37,14 @@ export function initialize(dotNetAdapter, element, elementId, options) { const instance = { options: options, sigpad: sigpad, - dotNetAdapter: dotNetAdapter + dotNetAdapter: dotNetAdapter, + element: element }; registerToEvents(dotNetAdapter, instance); + resizeCanvas(sigpad, element); + _instances[elementId] = instance; } @@ -176,4 +185,38 @@ function getImageDataURL(sigpad, options) { } return sigpad.toDataURL("image/png", options.imageQuality || 1); +} + +window.onresize = resizeAllCanvas; + +function resizeAllCanvas() { + if (_instances) { + for (let i = 0; i < _instances.length; i++) { + const instance = _instances[i]; + + if (instance) { + resizeCanvas(instance.sigpad, instance.element); + } + } + } +} + +function resizeCanvas(sigpad, canvas) { + if (!sigpad || !canvas) { + return null; + } + + // When zoomed out to less than 100%, for some very strange reason, + // some browsers report devicePixelRatio as less than 1 + // and only part of the canvas is cleared then. + const ratio = Math.max(window.devicePixelRatio || 1, 1); + + const context = canvas.getContext("2d"); + + // This part causes the canvas to be cleared + canvas.width = canvas.offsetWidth * ratio; + canvas.height = canvas.offsetHeight * ratio; + context.scale(ratio, ratio); + + sigpad.fromData(sigpad.toData()); } \ No newline at end of file