Fix FirmaEC stamp preview borderless layout and bump to 1.2.33
This commit is contained in:
+5
-1
@@ -2,10 +2,14 @@
|
|||||||
|
|
||||||
## Versión actual
|
## Versión actual
|
||||||
|
|
||||||
- Versión base: `1.2.32`
|
- Versión base: `1.2.33`
|
||||||
|
|
||||||
## Historial
|
## Historial
|
||||||
|
|
||||||
|
### 1.2.33 - 2026-05-22
|
||||||
|
|
||||||
|
- El estampado web de `FirmaEC` ya no muestra recuadro cuando está en `Sin borde` y parte el nombre en `2 + 2` desde la vista de colocación.
|
||||||
|
|
||||||
### 1.2.32 - 2026-05-22
|
### 1.2.32 - 2026-05-22
|
||||||
|
|
||||||
- `FirmaEC` agrega la marca `0` al inicio de ambas líneas superiores del sello PDF para validar la ruta real de impresión.
|
- `FirmaEC` agrega la marca `0` al inicio de ambas líneas superiores del sello PDF para validar la ruta real de impresión.
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Versión actual
|
## Versión actual
|
||||||
|
|
||||||
- Base actual: `1.2.32`
|
- Base actual: `1.2.33`
|
||||||
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
||||||
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Versión actual
|
## Versión actual
|
||||||
|
|
||||||
- Base actual: `1.2.32`
|
- Base actual: `1.2.33`
|
||||||
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
||||||
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Versión actual
|
## Versión actual
|
||||||
|
|
||||||
- Base actual: `1.2.32`
|
- Base actual: `1.2.33`
|
||||||
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
- Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION)
|
||||||
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
- Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md)
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ android {
|
|||||||
applicationId "net.linkedcorp.linkedsign"
|
applicationId "net.linkedcorp.linkedsign"
|
||||||
minSdk 26
|
minSdk 26
|
||||||
targetSdk 35
|
targetSdk 35
|
||||||
versionCode 10232
|
versionCode 10233
|
||||||
versionName "1.2.32"
|
versionName "1.2.33"
|
||||||
|
|
||||||
buildConfigField "String", "API_BASE_URL", "\"${apiBaseUrl}\""
|
buildConfigField "String", "API_BASE_URL", "\"${apiBaseUrl}\""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "linkedsign-backend",
|
"name": "linkedsign-backend",
|
||||||
"version": "1.2.32",
|
"version": "1.2.33",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Initial backend for LinkedSign",
|
"description": "Initial backend for LinkedSign",
|
||||||
"main": "src/server.js",
|
"main": "src/server.js",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "frontend",
|
"name": "frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.2.32",
|
"version": "1.2.33",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -19,6 +19,14 @@ const getSignatureWidth = (style, signerName = '') => {
|
|||||||
return Math.max(170, Math.min(270, Math.round(calculatedWidth)));
|
return Math.max(170, Math.min(270, Math.round(calculatedWidth)));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getFirmaEcPreviewLines = (signerName = '') => {
|
||||||
|
const words = String(signerName).trim().toUpperCase().split(/\s+/).filter(Boolean);
|
||||||
|
if (words.length >= 4) {
|
||||||
|
return [words.slice(0, 2).join(' '), words.slice(2).join(' ')];
|
||||||
|
}
|
||||||
|
return [words.join(' ')];
|
||||||
|
};
|
||||||
|
|
||||||
export default function PdfSignaturePlacer({
|
export default function PdfSignaturePlacer({
|
||||||
pdfBlob,
|
pdfBlob,
|
||||||
signerName,
|
signerName,
|
||||||
@@ -163,6 +171,7 @@ export default function PdfSignaturePlacer({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (signatureStyle === 'firmaec') {
|
if (signatureStyle === 'firmaec') {
|
||||||
|
const nameLines = getFirmaEcPreviewLines(signerName);
|
||||||
return (
|
return (
|
||||||
<div className="sig-preview-body sig-preview-body--firmaec">
|
<div className="sig-preview-body sig-preview-body--firmaec">
|
||||||
{qrPosition === 'left' && (
|
{qrPosition === 'left' && (
|
||||||
@@ -176,7 +185,11 @@ export default function PdfSignaturePlacer({
|
|||||||
<div className="sig-preview-text sig-preview-text--firmaec">
|
<div className="sig-preview-text sig-preview-text--firmaec">
|
||||||
<small>Validar unicamente en FirmaEC.</small>
|
<small>Validar unicamente en FirmaEC.</small>
|
||||||
<small>Firmado electronicamente por:</small>
|
<small>Firmado electronicamente por:</small>
|
||||||
<strong>{String(signerName).toUpperCase()}</strong>
|
<strong>
|
||||||
|
{nameLines.map((line, index) => (
|
||||||
|
<span key={`${line}-${index}`}>{line}</span>
|
||||||
|
))}
|
||||||
|
</strong>
|
||||||
</div>
|
</div>
|
||||||
{qrPosition === 'right' && (
|
{qrPosition === 'right' && (
|
||||||
<>
|
<>
|
||||||
@@ -253,8 +266,8 @@ export default function PdfSignaturePlacer({
|
|||||||
{sigBox && (
|
{sigBox && (
|
||||||
<div
|
<div
|
||||||
className={`sig-preview-box sig-preview-box--${signatureStyle}`}
|
className={`sig-preview-box sig-preview-box--${signatureStyle}`}
|
||||||
data-background={signatureStyle === 'qr' ? qrBackground : undefined}
|
data-background={signatureStyle === 'qr' || signatureStyle === 'firmaec' ? qrBackground : undefined}
|
||||||
data-border={signatureStyle === 'qr' ? qrBorder : undefined}
|
data-border={signatureStyle === 'qr' || signatureStyle === 'firmaec' ? qrBorder : undefined}
|
||||||
style={{ left: sigBox.x, top: sigBox.y, width: signatureWidth, height: SIG_H }}
|
style={{ left: sigBox.x, top: sigBox.y, width: signatureWidth, height: SIG_H }}
|
||||||
onPointerDown={(e) => e.stopPropagation()}
|
onPointerDown={(e) => e.stopPropagation()}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1514,6 +1514,18 @@ select {
|
|||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
.sig-preview-box--firmaec {
|
||||||
|
background: transparent;
|
||||||
|
border-color: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.sig-preview-box--firmaec[data-background='soft'] {
|
||||||
|
background: rgba(242, 244, 255, 0.96);
|
||||||
|
}
|
||||||
|
.sig-preview-box--firmaec[data-border='line'] {
|
||||||
|
border-color: rgba(55, 65, 81, 0.7);
|
||||||
|
box-shadow: 0 2px 8px rgba(31, 41, 55, 0.16);
|
||||||
|
}
|
||||||
.sig-preview-box--qr[data-background='soft'] {
|
.sig-preview-box--qr[data-background='soft'] {
|
||||||
background: rgba(242, 244, 255, 0.96);
|
background: rgba(242, 244, 255, 0.96);
|
||||||
}
|
}
|
||||||
@@ -1948,6 +1960,12 @@ select {
|
|||||||
}
|
}
|
||||||
.sig-preview-text--firmaec strong {
|
.sig-preview-text--firmaec strong {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
line-height: 1.15;
|
||||||
|
}
|
||||||
|
.sig-preview-text--firmaec strong span {
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
.sig-preview-divider {
|
.sig-preview-divider {
|
||||||
width: 1px;
|
width: 1px;
|
||||||
|
|||||||
Reference in New Issue
Block a user