@hubsync/esign-web-sdk 6.9.43 → 6.9.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-passcode-dialog.verdocs-signing-progress.verdocs-view.entry.cjs.js.map +1 -1
  3. package/dist/cjs/verdocs-adopt-signature-dialog_8.cjs.entry.js +35 -8
  4. package/dist/cjs/verdocs-sign.cjs.entry.js +106 -6
  5. package/dist/cjs/verdocs-sign.entry.cjs.js.map +1 -1
  6. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  7. package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js +108 -13
  8. package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js.map +1 -1
  9. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +109 -6
  10. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  11. package/dist/components/{p-BUE7R0tf.js → p-DFsjkMkI.js} +40 -10
  12. package/dist/components/p-DFsjkMkI.js.map +1 -0
  13. package/dist/components/verdocs-adopt-signature-dialog.js +1 -1
  14. package/dist/components/verdocs-sign.js +110 -7
  15. package/dist/components/verdocs-sign.js.map +1 -1
  16. package/dist/custom-elements.json +5 -1
  17. package/dist/esm/loader.js +1 -1
  18. package/dist/esm/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-passcode-dialog.verdocs-signing-progress.verdocs-view.entry.js.map +1 -1
  19. package/dist/esm/verdocs-adopt-signature-dialog_8.entry.js +35 -8
  20. package/dist/esm/verdocs-sign.entry.js +106 -6
  21. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  22. package/dist/esm/verdocs-web-sdk.js +1 -1
  23. package/dist/esm-es5/loader.js +1 -1
  24. package/dist/esm-es5/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-passcode-dialog.verdocs-signing-progress.verdocs-view.entry.js.map +1 -1
  25. package/dist/esm-es5/verdocs-adopt-signature-dialog_8.entry.js +1 -1
  26. package/dist/esm-es5/verdocs-adopt-signature-dialog_8.entry.js.map +1 -1
  27. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  28. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  29. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  30. package/dist/types/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.d.ts +35 -3
  31. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +22 -0
  32. package/dist/types/components.d.ts +43 -5
  33. package/dist/verdocs-web-sdk/p-3832868c.entry.js +2 -0
  34. package/dist/verdocs-web-sdk/p-3832868c.entry.js.map +1 -0
  35. package/dist/verdocs-web-sdk/p-B8zpaHu-.system.js +1 -1
  36. package/dist/verdocs-web-sdk/p-BEzGtFgy.system.js.map +1 -0
  37. package/dist/verdocs-web-sdk/p-CCpu7MXO.system.js.map +1 -0
  38. package/dist/verdocs-web-sdk/p-c67b23fc.system.entry.js +2 -0
  39. package/dist/verdocs-web-sdk/p-c67b23fc.system.entry.js.map +1 -0
  40. package/dist/verdocs-web-sdk/p-ec29782b.entry.js +2 -0
  41. package/dist/verdocs-web-sdk/p-ec29782b.entry.js.map +1 -0
  42. package/dist/verdocs-web-sdk/p-fe804f97.system.entry.js +2 -0
  43. package/dist/verdocs-web-sdk/p-fe804f97.system.entry.js.map +1 -0
  44. package/dist/verdocs-web-sdk/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-passcode-dialog.verdocs-signing-progress.verdocs-view.entry.esm.js.map +1 -1
  45. package/dist/verdocs-web-sdk/verdocs-sign.entry.esm.js.map +1 -1
  46. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  47. package/package.json +1 -1
  48. package/dist/components/p-BUE7R0tf.js.map +0 -1
  49. package/dist/verdocs-web-sdk/p-32af0c78.entry.js +0 -2
  50. package/dist/verdocs-web-sdk/p-32af0c78.entry.js.map +0 -1
  51. package/dist/verdocs-web-sdk/p-64c0f4e1.system.entry.js +0 -2
  52. package/dist/verdocs-web-sdk/p-64c0f4e1.system.entry.js.map +0 -1
  53. package/dist/verdocs-web-sdk/p-DL_q7a6L.system.js.map +0 -1
  54. package/dist/verdocs-web-sdk/p-DyUrM6Ex.system.js.map +0 -1
  55. package/dist/verdocs-web-sdk/p-b8966f51.entry.js +0 -2
  56. package/dist/verdocs-web-sdk/p-b8966f51.entry.js.map +0 -1
  57. package/dist/verdocs-web-sdk/p-e13491c4.system.entry.js +0 -2
  58. package/dist/verdocs-web-sdk/p-e13491c4.system.entry.js.map +0 -1
@@ -166,8 +166,8 @@ const VerdocsAdoptSignatureDialog = /*@__PURE__*/ proxyCustomElement(class Verdo
166
166
  };
167
167
  }
168
168
  componentWillLoad() {
169
- this.enteredName = this.name;
170
- this.computeEnteredInitials(this.name);
169
+ this.enteredName = this.initialEnteredName || this.name;
170
+ this.computeEnteredInitials(this.enteredName);
171
171
  if (this.initialMode) {
172
172
  this.mode = this.initialMode;
173
173
  }
@@ -232,17 +232,30 @@ const VerdocsAdoptSignatureDialog = /*@__PURE__*/ proxyCustomElement(class Verdo
232
232
  }
233
233
  }
234
234
  async restoreDrawnPreviewsIfNeeded() {
235
+ var _a, _b;
235
236
  // Preserve in-session stroke edits; only restore saved previews when there are no strokes yet.
236
237
  if (this.allSigStrokes.length > 0 || this.allInitialsStrokes.length > 0) {
237
238
  return;
238
239
  }
239
240
  const tasks = [];
240
- if (this.initialSignature && this.signatureElement) {
241
+ // Prefer replaying the saved strokes (faithful + editable). Fall back to the rasterized preview only when no
242
+ // strokes are available, e.g. resuming from a server-stored bitmap in a fresh browser session.
243
+ if (((_a = this.initialSignatureStrokes) === null || _a === void 0 ? void 0 : _a.length) && this.signatureElement) {
244
+ this.allSigStrokes = this.denormalizeStrokes(this.initialSignatureStrokes, this.signatureElement);
245
+ this.hasDrawnSignature = true;
246
+ this.redrawDrawnSignature();
247
+ }
248
+ else if (this.initialSignature && this.signatureElement) {
241
249
  tasks.push(this.drawImageOnCanvas(this.signatureElement, this.initialSignature).then(() => {
242
250
  this.hasDrawnSignature = true;
243
251
  }));
244
252
  }
245
- if (this.initialInitials && this.initialsElement) {
253
+ if (((_b = this.initialInitialsStrokes) === null || _b === void 0 ? void 0 : _b.length) && this.initialsElement) {
254
+ this.allInitialsStrokes = this.denormalizeStrokes(this.initialInitialsStrokes, this.initialsElement);
255
+ this.hasDrawnInitials = true;
256
+ this.redrawDrawnInitials();
257
+ }
258
+ else if (this.initialInitials && this.initialsElement) {
246
259
  tasks.push(this.drawImageOnCanvas(this.initialsElement, this.initialInitials).then(() => {
247
260
  this.hasDrawnInitials = true;
248
261
  }));
@@ -381,7 +394,21 @@ const VerdocsAdoptSignatureDialog = /*@__PURE__*/ proxyCustomElement(class Verdo
381
394
  e.preventDefault();
382
395
  const signature = this.signatureElement.toDataURL('image/png');
383
396
  const initials = this.initialsElement.toDataURL('image/png');
384
- this.next.emit({ signature, initials, mode: this.mode });
397
+ // Persist the editable source for drawn signatures so a future Edit can replay the exact strokes natively rather
398
+ // than reconstructing them from the bitmap. Typed signatures need no strokes — they re-render from the name.
399
+ const signatureStrokes = this.mode === 'draw' ? this.normalizeStrokes(this.allSigStrokes, this.signatureElement) : [];
400
+ const initialsStrokes = this.mode === 'draw' ? this.normalizeStrokes(this.allInitialsStrokes, this.initialsElement) : [];
401
+ this.next.emit({ signature, initials, mode: this.mode, name: this.enteredName, signatureStrokes, initialsStrokes });
402
+ }
403
+ normalizeStrokes(strokes, canvas) {
404
+ const width = (canvas === null || canvas === void 0 ? void 0 : canvas.width) || 1;
405
+ const height = (canvas === null || canvas === void 0 ? void 0 : canvas.height) || 1;
406
+ return strokes.map(stroke => stroke.map(point => ({ x: point.x / width, y: point.y / height })));
407
+ }
408
+ denormalizeStrokes(strokes, canvas) {
409
+ const width = canvas.width || 1;
410
+ const height = canvas.height || 1;
411
+ return strokes.map(stroke => stroke.map(point => ({ x: point.x * width, y: point.y * height })));
385
412
  }
386
413
  isAdoptButtonDisabled() {
387
414
  switch (this.mode) {
@@ -510,19 +537,22 @@ const VerdocsAdoptSignatureDialog = /*@__PURE__*/ proxyCustomElement(class Verdo
510
537
  };
511
538
  }
512
539
  render() {
513
- return (h("verdocs-dialog", { key: '43e4a40803e7cf511bed41328fd48a54da571f23', persistent: true, onExit: () => this.exit.emit() }, h("div", { key: '462e271fe1390006727a0daa1a47de9b359af39c', slot: "heading", class: "heading" }, "Adopt Your Signature"), h("div", { key: '3617b310cba6e6defdd6a01bb3c16dd08db81c29', slot: "content", class: "content" }, h("div", { key: '4365227155f52f36c6421b1ff1cc6dcb2ea4fa6e', style: { fontWeight: '300', color: '#242424', fontSize: '13px' } }, "Confirm your name, initials, and signature."), h("div", { key: 'a768ae444c23e06b58a477e7f3654d128e5d1a6a', class: { type: true, active: this.mode === 'type' } }, h("verdocs-text-input", { key: 'dd3ba8e3b0994ed84148d890b6fba81c8554f70e', label: "Full Name", value: this.enteredName, disabled: this.nameLocked, onInput: e => this.handleNameChange(e), onClick: e => e.stopPropagation() }), this.nameLocked && h("div", { key: '45875c35eeaf050b2de2cc313f6275460fd96e0a', class: "name-locked-hint" }, "Your name has been set by the sender and cannot be changed.")), h("div", { key: 'cc6b9a9072ab0069fbf58ff0395311c93283fb7e', style: { fontWeight: '400', color: '#242424', fontSize: '13px' } }, "Select a signature style"), h("div", { key: '19034c3e2232c832ad4b0032d47e0940fa52c8d2', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: 'c2f084d61633dbbd8aed7b6e3b941e19a953ccab', checked: this.mode === 'type', value: "type", name: "mode", onClick: () => this.setMode('type') }), h("label", { key: 'e1f22d03c316ad2c9fae0d80f81965557c0fbce6' }, "Typed with a keyboard")), h("div", { key: '9c343a3b9a3a551806d86f7c33496f856e50fe99', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: '7e411e25456464390b028237cce9dcace361b7cf', checked: this.mode === 'draw', value: "draw", name: "mode", onClick: () => this.setMode('draw') }), h("label", { key: '9a707c87cf4229a6a8831adfeced815ce098180b' }, "Drawn with touch, mouse, or stylus")), h("div", { key: 'aa35cc9591db961dbff6cd26127ccfff96f225d0', class: "preview-header" }, h("div", { key: '4144d977477a558f1785d8f77072d83e8832841b', style: { fontSize: '13px', fontWeight: '400' } }, "Signature Preview"), this.mode === 'draw' && (h("button", { key: '3b687ce578839aefc9447357f61c46ecf783500a', class: "clear-button-text", onClick: e => this.handleClearDrawing(e, 'signature'), disabled: !this.hasDrawnSignature }, "Clear"))), h("div", { key: '306bad99deb8abf8c071d45146f6bbb63c8ca8f4', class: "canvas-container signature-container" }, h("div", { key: 'e5538c0694e4c32d63d0d2169938aa55f0a282c1', class: "signing-indicator" }, h("div", { key: 'd1b5f38019d723b90d95c5ad23219ed4f38a4248', class: "x-icon", innerHTML: SignatureXIcon }), h("div", { key: 'd2f2693b3fdd9feeb6ce7ab8ef006ede715217ab', class: "signing-line" })), h("canvas", { key: '59aa5a8bc5a588bd7fe08bafd43f06394ed35128', ref: el => (this.signatureElement = el),
540
+ return (h("verdocs-dialog", { key: 'ddc22647c01547a474b875c409358e3af2f24e3c', persistent: true, onExit: () => this.exit.emit() }, h("div", { key: 'e8a0089ee73a51008d0aeec9dcc7fca1576104ac', slot: "heading", class: "heading" }, "Adopt Your Signature"), h("div", { key: '2d7c449062e88b4bc25d6762cd6c793992f47f4d', slot: "content", class: "content" }, h("div", { key: 'e8d4ec00383967dc9fe30d773ec2212d93b82975', style: { fontWeight: '300', color: '#242424', fontSize: '13px' } }, "Confirm your name, initials, and signature."), h("div", { key: '0f694d93d6f00feb519841870c0fc6a71194d2ca', class: { type: true, active: this.mode === 'type' } }, h("verdocs-text-input", { key: '0d5513fef5e5572b7f4abf1cbac0a1ca3440463f', label: "Full Name", value: this.enteredName, disabled: this.nameLocked, onInput: e => this.handleNameChange(e), onClick: e => e.stopPropagation() }), this.nameLocked && h("div", { key: 'e89a2f87dcfad2fe8f8f4d48a24223e6ea17383d', class: "name-locked-hint" }, "Your name has been set by the sender and cannot be changed.")), h("div", { key: 'd11ea670ee76e772a38455f30f18cbec98fb395a', style: { fontWeight: '400', color: '#242424', fontSize: '13px' } }, "Select a signature style"), h("div", { key: '3bf1e22f0a9e3bbadd0bf4f0b8a3f1b3896d7315', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: '99eef6a79eea724f2ad8e66b9394dd40bc9acfe0', checked: this.mode === 'type', value: "type", name: "mode", onClick: () => this.setMode('type') }), h("label", { key: '04194fdf3a502ffd95b696ed9078ab3982a0caf9' }, "Typed with a keyboard")), h("div", { key: '4e122b72fe041edaf499c5ce9ebabaa5c0883a61', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: '4a4f2b7492cdb8118184347613cd27ab4994b4dd', checked: this.mode === 'draw', value: "draw", name: "mode", onClick: () => this.setMode('draw') }), h("label", { key: '86824cda2d7968e30d26426e40f336797776ced2' }, "Drawn with touch, mouse, or stylus")), h("div", { key: '94993f0f41b5099d2e86703e711041939c98eda9', class: "preview-header" }, h("div", { key: '55bad19f2cf23ef7ecb4793f76b95feab654b940', style: { fontSize: '13px', fontWeight: '400' } }, "Signature Preview"), this.mode === 'draw' && (h("button", { key: 'ef4713146fca813bef48f537190c438819ff84a2', class: "clear-button-text", onClick: e => this.handleClearDrawing(e, 'signature'), disabled: !this.hasDrawnSignature }, "Clear"))), h("div", { key: '1e58344a555fe2e224f159f3ef830d46ef362086', class: "canvas-container signature-container" }, h("div", { key: '16fac93400bd3f53e7420222c6ba062d49b5d665', class: "signing-indicator" }, h("div", { key: 'e094b7097e905fd438cebc0d897faf1746eefcc7', class: "x-icon", innerHTML: SignatureXIcon }), h("div", { key: 'a67e3effd1f6db780c8a20d31dedd1940e874062', class: "signing-line" })), h("canvas", { key: '5d6c807b860ac53af851dd85cc655aa797ece1ae', ref: el => (this.signatureElement = el),
514
541
  // width="300"
515
- height: "79", class: "signature-canvas", onPointerDown: this.handleSigPointerDown, onPointerMove: this.handleSigPointerMove, onPointerUp: this.handleSigPointerUp, onPointerCancel: this.handleSigPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } })), h("div", { key: '86a97be28c467678bd34e455412877ff55de26c2', class: "preview-header" }, h("div", { key: '0a605a59765dbb1f7ee15aa17bc3b4547983c747', style: { fontSize: '13px', fontWeight: '400' } }, "Initials Preview"), this.mode === 'draw' && (h("button", { key: '2426ed63c75312a999a9c12653dd75afe844fa07', class: "clear-button-text", onClick: e => this.handleClearDrawing(e, 'initials'), disabled: !this.hasDrawnInitials }, "Clear"))), h("div", { key: 'fa2c72403a43dfdd6a5f237fa3a21f048ceb517b', class: "canvas-container initials-container" }, h("div", { key: '4e1fbf7d941fcb46c363a35cd238c03d5cc75491', class: "signing-indicator" }, h("div", { key: 'c52486f29337d6b9027b32ea103e86c45904749e', class: "x-icon", innerHTML: SignatureXIcon }), h("div", { key: '6fa97d0d887d543f696de750db82b1a034bcb2b6', class: "signing-line" })), h("canvas", { key: '062e4e8da832b9d0f1a5af24a76188d3a9164ad4', ref: el => (this.initialsElement = el),
542
+ height: "79", class: "signature-canvas", onPointerDown: this.handleSigPointerDown, onPointerMove: this.handleSigPointerMove, onPointerUp: this.handleSigPointerUp, onPointerCancel: this.handleSigPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } })), h("div", { key: '53953056fcc62dc29bc780400bda01c668d8fc48', class: "preview-header" }, h("div", { key: '554d920b0814e1ada74a0a88310d91b93ac08a5a', style: { fontSize: '13px', fontWeight: '400' } }, "Initials Preview"), this.mode === 'draw' && (h("button", { key: '16db130dd8bdd452e55269ed0670b3ad4b7520f4', class: "clear-button-text", onClick: e => this.handleClearDrawing(e, 'initials'), disabled: !this.hasDrawnInitials }, "Clear"))), h("div", { key: '0e8555d834f009e73b4527b92588d61c4ec20516', class: "canvas-container initials-container" }, h("div", { key: '95292eee946791cc24699d4da2af7df556fd9b34', class: "signing-indicator" }, h("div", { key: 'baba2bc70666d290a93d8c858397da0fa378e65a', class: "x-icon", innerHTML: SignatureXIcon }), h("div", { key: 'ad97b82227759ec6aeaa6735d4ed6355d2ee62e5', class: "signing-line" })), h("canvas", { key: '988f27616ab5bdf37bfba869c612ce75bcde4bd8', ref: el => (this.initialsElement = el),
516
543
  // width="300"
517
- height: "79", class: "initials-canvas", onPointerDown: this.handleInitialsPointerDown, onPointerMove: this.handleInitialsPointerMove, onPointerUp: this.handleInitialsPointerUp, onPointerCancel: this.handleInitialsPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } })), h("div", { key: 'f589d9624ff808b4179c55fad6ca1ef27b79f553', class: "disclaimer" }, "By clicking \u00ABAdopt Signature\u00BB, I agree that the signature and initials above will be the electronic representation of my signature and initials for all purposes when I use them to sign documents. Applying them to a document is legally equivalent to signing with a pen on paper.")), h("div", { key: '33058008d0000a073a43abae0246effa3970a52d', class: "footer", slot: "footer" }, h("div", { key: '3f6ea8bbca9a5eb9fab950a2a4d3d2e135698f56', class: "buttons" }, h("button", { key: '94512ed74ce791505f8e949f818ab7cac907271f', class: "cancel", onClick: e => this.handleCancel(e) }, "Cancel"), h("button", { key: '085af06c8d1671b0533a6f2b49891fcefe3697a9', class: "proceed", onClick: e => this.handleAdopt(e), disabled: this.isAdoptButtonDisabled() }, "Adopt & Sign")))));
544
+ height: "79", class: "initials-canvas", onPointerDown: this.handleInitialsPointerDown, onPointerMove: this.handleInitialsPointerMove, onPointerUp: this.handleInitialsPointerUp, onPointerCancel: this.handleInitialsPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } })), h("div", { key: 'e1f78a82f1f4418d081efa92a9ddb0440b7c410a', class: "disclaimer" }, "By clicking \u00ABAdopt Signature\u00BB, I agree that the signature and initials above will be the electronic representation of my signature and initials for all purposes when I use them to sign documents. Applying them to a document is legally equivalent to signing with a pen on paper.")), h("div", { key: 'a715ffeab244a8f4c68eeab7e4d605a4b0858139', class: "footer", slot: "footer" }, h("div", { key: 'bd07769e1cb702ee6884c72f5d0a005b1844feea', class: "buttons" }, h("button", { key: 'd2905afb693781de51e0e2131368802284a534df', class: "cancel", onClick: e => this.handleCancel(e) }, "Cancel"), h("button", { key: 'a6a5a42a123357c85c9cea004643e33de9caec05', class: "proceed", onClick: e => this.handleAdopt(e), disabled: this.isAdoptButtonDisabled() }, "Adopt & Sign")))));
518
545
  }
519
546
  static get style() { return verdocsAdoptSignatureDialogCss; }
520
547
  }, [256, "verdocs-adopt-signature-dialog", {
521
548
  "name": [1],
522
549
  "nameLocked": [4, "name-locked"],
550
+ "initialEnteredName": [1, "initial-entered-name"],
523
551
  "initialMode": [1, "initial-mode"],
524
552
  "initialSignature": [1, "initial-signature"],
525
553
  "initialInitials": [1, "initial-initials"],
554
+ "initialSignatureStrokes": [16],
555
+ "initialInitialsStrokes": [16],
526
556
  "fontLoaded": [32],
527
557
  "enteredName": [32],
528
558
  "enteredInitials": [32],
@@ -566,6 +596,6 @@ function defineCustomElement() {
566
596
  }
567
597
 
568
598
  export { VerdocsAdoptSignatureDialog as V, defineCustomElement as d };
569
- //# sourceMappingURL=p-BUE7R0tf.js.map
599
+ //# sourceMappingURL=p-DFsjkMkI.js.map
570
600
 
571
- //# sourceMappingURL=p-BUE7R0tf.js.map
601
+ //# sourceMappingURL=p-DFsjkMkI.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-DFsjkMkI.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.scss?tag=verdocs-adopt-signature-dialog","src/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-adopt-signature-dialog {\n font-family: $primary-font;\n box-sizing: border-box;\n\n verdocs-dialog {\n border-radius: 4px;\n }\n\n .heading {\n color: #201f1e;\n font-weight: 400;\n padding-bottom: 0;\n border-bottom: none;\n }\n\n .content {\n display: flex;\n padding: 12px 24px 0;\n flex-direction: column;\n }\n\n .name-locked-hint {\n font-size: 12px;\n color: #6b7280;\n margin-top: 4px;\n }\n\n verdocs-text-input .input-label {\n color: #242424;\n font-size: 13px;\n font-weight: 400;\n }\n\n verdocs-text-input .input-element {\n border: 1px solid #e0e0e0;\n }\n\n verdocs-radio-button {\n transform: scale(0.9);\n }\n\n .canvas-container {\n position: relative;\n width: 100%;\n margin: 10px 0;\n border-radius: 4px;\n background: #fafafa;\n border: 1px solid #d1d1d1;\n box-sizing: border-box;\n\n &.initials-container {\n max-width: 50%;\n }\n\n canvas {\n width: 100%;\n height: 79px;\n border-radius: 4px;\n /* Background must be transparent to show the guide */\n background: transparent;\n box-sizing: border-box;\n /* Border is handled by container */\n border: none;\n position: relative;\n z-index: 2;\n }\n\n .signing-indicator {\n position: absolute;\n bottom: 9px;\n left: 9px;\n right: 9px;\n height: 28px;\n display: flex;\n flex-direction: row;\n align-items: flex-end;\n gap: 2px;\n z-index: 1;\n pointer-events: none;\n\n .x-icon {\n width: 25px;\n height: 28px;\n display: flex;\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n\n .signing-line {\n flex: 1;\n /* \"The line is a 1px dashed (8px dash 8px space) #d1d1d1 line\". This works in SOME browsers. */\n border-bottom: 1px dashed #d1d1d1;\n background-position: bottom;\n background-size: 16px 1px;\n /* 8px dash + 8px space = 16px repeat */\n background-repeat: repeat-x;\n margin-bottom: 0;\n /* Since standard border-style: dashed doesn't allow custom spacing, we use a background gradient\n trick or just rely on standard dashed if acceptable.\n */\n height: 1px;\n border: none;\n background-image: linear-gradient(to right, #d1d1d1 50%, transparent 50%);\n }\n }\n }\n\n .disclaimer {\n padding: 8px 0;\n font-size: 11px;\n line-height: 14px;\n text-align: justify;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .tabs {\n display: flex;\n flex-direction: row;\n margin: -20px -20px 0 -20px;\n border-bottom: 1px solid #eeeeee;\n\n .tab {\n flex: 1;\n gap: 4px;\n display: flex;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n padding: 6px 10px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n &.active {\n background: #f9f5fe;\n border-bottom: 2px solid $border-color;\n }\n\n &:hover {\n color: $primary-color;\n }\n\n .icon {\n width: 16px;\n height: 16px;\n }\n }\n }\n\n // We use fixed heights for these sections to avoid layout shifts when switching tabs.\n .type {\n display: none;\n flex-direction: column;\n\n &.active {\n display: flex;\n }\n }\n\n .draw {\n height: 100px;\n display: none;\n margin-top: 20px;\n flex-direction: column;\n\n &.active {\n display: flex;\n }\n\n .draw-instructions {\n font-size: 13px;\n color: rgba(0, 0, 0, 0.6);\n margin-bottom: 8px;\n text-align: center;\n }\n\n canvas {\n cursor: crosshair;\n touch-action: none;\n }\n }\n\n .preview-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 10px;\n\n .clear-button-text {\n background: none;\n border: none;\n color: var(--verdocs-primary-color, #{$verdocs-green});\n cursor: pointer;\n font-size: 13px;\n padding: 0;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:disabled {\n color: #9ca3af;\n text-decoration: none;\n cursor: not-allowed;\n }\n }\n }\n\n .upload {\n height: 100px;\n display: none;\n margin-top: 20px;\n flex-direction: column;\n\n &.active {\n display: flex;\n }\n\n .upload-instructions {\n font-size: 13px;\n color: rgba(0, 0, 0, 0.6);\n margin-bottom: 8px;\n text-align: center;\n }\n\n .upload-actions {\n display: flex;\n justify-content: center;\n gap: 12px;\n margin-top: 8px;\n\n .upload-button {\n border: 1px solid var(--verdocs-primary-color, #{$verdocs-green});\n background-color: var(--verdocs-primary-color, #{$verdocs-green});\n color: #ffffff;\n padding: 8px 20px;\n font-size: 13px;\n cursor: pointer;\n border-radius: var(--verdocs-button-radius, 4px);\n transition: all 0.2s ease;\n\n &:hover {\n filter: brightness(0.9);\n }\n }\n\n .clear-button {\n border: 1px solid #d0d0d0;\n background-color: #ffffff;\n color: #333333;\n padding: 8px 16px;\n font-size: 13px;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.2s ease;\n\n &:hover:not(:disabled) {\n background-color: #f5f5f5;\n border-color: #b0b0b0;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n }\n\n .upload-filename {\n font-size: 12px;\n color: rgba(0, 0, 0, 0.6);\n text-align: center;\n margin-top: 8px;\n font-style: italic;\n }\n }\n\n /* TODO: We're getting positive feedback. Add this as a formal button variant. */\n .buttons {\n gap: 20px;\n display: flex;\n margin-top: 14px;\n flex-direction: row;\n justify-content: flex-end;\n\n button {\n flex: 1;\n border: 0;\n height: 38px;\n display: flex;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n align-items: center;\n border-radius: var(--verdocs-button-radius, 6px);\n justify-content: center;\n transition: all 0.2s ease;\n\n &.cancel {\n background-color: transparent;\n border: 1px solid #d1d5db;\n color: #374151;\n\n &:hover {\n background-color: #f9fafb;\n }\n }\n\n &.proceed {\n background-color: var(--verdocs-primary-color, #{$verdocs-green});\n border: 1px solid transparent;\n color: #ffffff;\n\n &:hover {\n background-color: var(--verdocs-primary-color-hover, #{$verdocs-green-shade});\n filter: brightness(0.95);\n }\n }\n\n &:disabled {\n background-color: #e5e7eb;\n color: #9ca3af;\n cursor: not-allowed;\n }\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, State} from '@stencil/core';\nimport {SignatureXIcon} from '../../../utils/Icons';\n\n/**\n * A single drawn stroke is an ordered list of points. Coordinates are stored normalized (0..1) relative to the canvas\n * size so a saved signature can be replayed faithfully regardless of the canvas' pixel dimensions.\n */\ntype TStroke = Array<{x: number; y: number}>;\ntype TStrokes = TStroke[];\n\n/**\n * Display a dialog that allows the user to specify a signature image, either by using a signature-font-generated image\n * based on their full name, or by hand-drawing their signature with a mouse or tablet.\n */\n@Component({\n tag: 'verdocs-adopt-signature-dialog',\n styleUrl: 'verdocs-adopt-signature-dialog.scss',\n})\nexport class VerdocsAdoptSignatureDialog {\n private signatureElement?: HTMLCanvasElement;\n private initialsElement?: HTMLCanvasElement;\n private sigDrawingContext?: CanvasRenderingContext2D;\n private initialsDrawingContext?: CanvasRenderingContext2D;\n\n /**\n * Initial signature text\n */\n @Prop() name: string = '';\n\n /**\n * If true, the name fields will be read-only. Used when the sender has locked the recipient's name.\n */\n @Prop() nameLocked: boolean = false;\n\n /**\n * If set, restores the name last used when adopting (e.g. after Edit).\n */\n @Prop() initialEnteredName?: string;\n\n /**\n * If set, restores the signature style tab when reopening the dialog (e.g. after Edit).\n */\n @Prop() initialMode?: 'type' | 'draw';\n\n /**\n * If set, restores the previously adopted signature preview (base64 data URL).\n */\n @Prop() initialSignature?: string;\n\n /**\n * If set, restores the previously adopted initials preview (base64 data URL). Used only as a fallback when no saved\n * strokes are available (e.g. resuming from a server-stored bitmap in a fresh browser session).\n */\n @Prop() initialInitials?: string;\n\n /**\n * If set, restores the exact strokes of a previously hand-drawn signature so it can be replayed and edited natively\n * instead of being reconstructed from a bitmap. Coordinates are normalized (0..1) relative to the canvas.\n */\n @Prop() initialSignatureStrokes?: Array<Array<{x: number; y: number}>>;\n\n /**\n * If set, restores the exact strokes of previously hand-drawn initials. See initialSignatureStrokes.\n */\n @Prop() initialInitialsStrokes?: Array<Array<{x: number; y: number}>>;\n\n /**\n * Fired when the user completes the dialog and clicks Adopt. The event detail contains base64-encoded previews of the\n * signature and initials, plus the editable source (mode, name, and — for drawn signatures — the normalized strokes)\n * so the adoption can be reopened and edited faithfully later.\n */\n @Event({composed: true}) next: EventEmitter<{\n signature: string;\n initials: string;\n mode: 'type' | 'draw';\n name: string;\n signatureStrokes: Array<Array<{x: number; y: number}>>;\n initialsStrokes: Array<Array<{x: number; y: number}>>;\n }>;\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n @State() fontLoaded = false;\n @State() enteredName: string = '';\n @State() enteredInitials: string = '';\n @State() mode: 'type' | 'draw' = 'type';\n @State() isDrawing = false;\n @State() hasDrawnSignature = false;\n @State() hasDrawnInitials = false;\n\n private currentSigStroke: Array<{x: number; y: number}> = [];\n private allSigStrokes: Array<Array<{x: number; y: number}>> = [];\n private lastSigPoint: {x: number; y: number} | null = null;\n\n private currentInitialsStroke: Array<{x: number; y: number}> = [];\n private allInitialsStrokes: Array<Array<{x: number; y: number}>> = [];\n private lastInitialsPoint: {x: number; y: number} | null = null;\n\n componentWillLoad() {\n this.enteredName = this.initialEnteredName || this.name;\n this.computeEnteredInitials(this.enteredName);\n\n if (this.initialMode) {\n this.mode = this.initialMode;\n }\n\n const ds = new FontFace('Dancing Script', 'url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup6hNX6plRP.woff)');\n ds.load().then(font => {\n document.fonts.add(font);\n this.fontLoaded = true;\n });\n }\n\n componentDidLoad() {\n this.setupSignatureCanvas();\n this.setupInitialsCanvas();\n void this.loadExistingPreviews();\n }\n\n componentDidUpdate() {\n this.setupSignatureCanvas();\n this.setupInitialsCanvas();\n\n if (this.mode === 'type') {\n this.drawSignatureText();\n this.drawInitialsText();\n return;\n }\n\n // Redraw drawn signature when in draw mode\n if (this.allSigStrokes.length > 0) {\n this.redrawDrawnSignature();\n }\n if (this.allInitialsStrokes.length > 0) {\n this.redrawDrawnInitials();\n }\n }\n\n private drawImageOnCanvas(canvas: HTMLCanvasElement, dataUrl: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => {\n const context = canvas.getContext('2d');\n context.clearRect(0, 0, canvas.width, canvas.height);\n\n const padding = 24;\n const scale = Math.min((canvas.width - padding) / image.width, (canvas.height - padding) / image.height, 1);\n const width = image.width * scale;\n const height = image.height * scale;\n const x = (canvas.width - width) / 2;\n const y = (canvas.height - height) / 2;\n\n context.drawImage(image, x, y, width, height);\n resolve();\n };\n image.onerror = () => reject(new Error('Unable to load signature preview'));\n image.src = dataUrl;\n });\n }\n\n private async loadExistingPreviews() {\n if (this.mode === 'draw') {\n await this.restoreDrawnPreviewsIfNeeded();\n return;\n }\n\n this.drawSignatureText();\n this.drawInitialsText();\n }\n\n private setMode(mode: 'type' | 'draw') {\n this.mode = mode;\n\n if (mode === 'draw') {\n void this.restoreDrawnPreviewsIfNeeded();\n }\n }\n\n private async restoreDrawnPreviewsIfNeeded() {\n // Preserve in-session stroke edits; only restore saved previews when there are no strokes yet.\n if (this.allSigStrokes.length > 0 || this.allInitialsStrokes.length > 0) {\n return;\n }\n\n const tasks: Promise<void>[] = [];\n\n // Prefer replaying the saved strokes (faithful + editable). Fall back to the rasterized preview only when no\n // strokes are available, e.g. resuming from a server-stored bitmap in a fresh browser session.\n if (this.initialSignatureStrokes?.length && this.signatureElement) {\n this.allSigStrokes = this.denormalizeStrokes(this.initialSignatureStrokes, this.signatureElement);\n this.hasDrawnSignature = true;\n this.redrawDrawnSignature();\n } else if (this.initialSignature && this.signatureElement) {\n tasks.push(\n this.drawImageOnCanvas(this.signatureElement, this.initialSignature).then(() => {\n this.hasDrawnSignature = true;\n }),\n );\n }\n\n if (this.initialInitialsStrokes?.length && this.initialsElement) {\n this.allInitialsStrokes = this.denormalizeStrokes(this.initialInitialsStrokes, this.initialsElement);\n this.hasDrawnInitials = true;\n this.redrawDrawnInitials();\n } else if (this.initialInitials && this.initialsElement) {\n tasks.push(\n this.drawImageOnCanvas(this.initialsElement, this.initialInitials).then(() => {\n this.hasDrawnInitials = true;\n }),\n );\n }\n\n if (tasks.length === 0) {\n return;\n }\n\n await Promise.all(tasks);\n this.setupSignatureCanvas();\n this.setupInitialsCanvas();\n }\n\n drawSignatureText() {\n if (!this.signatureElement || this.mode !== 'type') {\n return;\n }\n\n const sigCanvasWidth = this.signatureElement.width;\n const sigCanvasHeight = this.signatureElement.height;\n const sigContext = this.signatureElement.getContext('2d');\n sigContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);\n\n let fontSize = 100;\n let metrics: TextMetrics = sigContext.measureText(this.enteredName);\n do {\n fontSize -= 2;\n sigContext.font = `${fontSize}px Dancing Script`;\n metrics = sigContext.measureText(this.enteredName);\n } while (metrics.width > sigCanvasWidth - 24 || metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 24 > sigCanvasHeight);\n\n sigContext.textAlign = 'center';\n sigContext.textBaseline = 'middle';\n sigContext.font = `${fontSize}px Dancing Script`;\n sigContext.fillText(this.enteredName, this.signatureElement.width / 2, this.signatureElement.height / 2);\n }\n\n drawInitialsText() {\n if (!this.initialsElement || this.mode !== 'type') {\n return;\n }\n\n const initialsCanvasWidth = this.initialsElement.width;\n const initialsCanvasHeight = this.initialsElement.height;\n const context = this.initialsElement.getContext('2d');\n context.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);\n\n let fontSize = 100;\n let metrics: TextMetrics = context.measureText(this.enteredInitials);\n do {\n fontSize -= 2;\n context.font = `${fontSize}px Dancing Script`;\n metrics = context.measureText(this.enteredInitials);\n } while (metrics.width > initialsCanvasWidth - 24 || metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 24 > initialsCanvasHeight);\n\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.font = `${fontSize}px Dancing Script`;\n context.fillText(this.enteredInitials, this.initialsElement.width / 2, this.initialsElement.height / 2);\n }\n\n redrawDrawnSignature() {\n if (!this.signatureElement || !this.sigDrawingContext || this.allSigStrokes.length === 0) {\n return;\n }\n\n // Clear the canvas first\n this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);\n\n // Redraw all strokes\n for (const stroke of this.allSigStrokes) {\n if (stroke.length === 0) {\n continue;\n }\n\n // Start the path at the first point\n this.sigDrawingContext.beginPath();\n this.sigDrawingContext.moveTo(stroke[0].x, stroke[0].y);\n\n // Draw smooth curves through all points in the stroke\n for (let i = 1; i < stroke.length; i++) {\n const currentPoint = stroke[i];\n const previousPoint = stroke[i - 1];\n\n // Use quadratic curves for smooth lines\n const midPoint = {\n x: (previousPoint.x + currentPoint.x) / 2,\n y: (previousPoint.y + currentPoint.y) / 2,\n };\n\n this.sigDrawingContext.quadraticCurveTo(previousPoint.x, previousPoint.y, midPoint.x, midPoint.y);\n }\n\n // Draw to the last point\n if (stroke.length > 1) {\n const lastPoint = stroke[stroke.length - 1];\n this.sigDrawingContext.lineTo(lastPoint.x, lastPoint.y);\n }\n\n this.sigDrawingContext.stroke();\n }\n }\n\n redrawDrawnInitials() {\n if (!this.initialsElement || !this.initialsDrawingContext || this.allInitialsStrokes.length === 0) {\n return;\n }\n\n // Clear the canvas first\n this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);\n\n // Redraw all strokes\n for (const stroke of this.allInitialsStrokes) {\n if (stroke.length === 0) {\n continue;\n }\n\n // Start the path at the first point\n this.initialsDrawingContext.beginPath();\n this.initialsDrawingContext.moveTo(stroke[0].x, stroke[0].y);\n\n // Draw smooth curves through all points in the stroke\n for (let i = 1; i < stroke.length; i++) {\n const currentPoint = stroke[i];\n const previousPoint = stroke[i - 1];\n\n // Use quadratic curves for smooth lines\n const midPoint = {\n x: (previousPoint.x + currentPoint.x) / 2,\n y: (previousPoint.y + currentPoint.y) / 2,\n };\n\n this.initialsDrawingContext.quadraticCurveTo(previousPoint.x, previousPoint.y, midPoint.x, midPoint.y);\n }\n\n // Draw to the last point\n if (stroke.length > 1) {\n const lastPoint = stroke[stroke.length - 1];\n this.initialsDrawingContext.lineTo(lastPoint.x, lastPoint.y);\n }\n\n this.initialsDrawingContext.stroke();\n }\n }\n\n handleNameChange(e: any) {\n this.enteredName = e.target.value;\n this.computeEnteredInitials(e.target.value);\n }\n\n computeEnteredInitials(name: string) {\n const nameComponents = name\n .trim()\n .split(' ')\n .filter(part => part.length > 0);\n\n this.enteredInitials = nameComponents.length > 1 ? nameComponents.map(word => word.charAt(0).toUpperCase()).join('') : nameComponents[0].toUpperCase();\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n e.preventDefault();\n this.exit.emit();\n }\n\n handleAdopt(e: any) {\n e.stopPropagation();\n e.preventDefault();\n const signature = this.signatureElement.toDataURL('image/png');\n const initials = this.initialsElement.toDataURL('image/png');\n\n // Persist the editable source for drawn signatures so a future Edit can replay the exact strokes natively rather\n // than reconstructing them from the bitmap. Typed signatures need no strokes — they re-render from the name.\n const signatureStrokes = this.mode === 'draw' ? this.normalizeStrokes(this.allSigStrokes, this.signatureElement) : [];\n const initialsStrokes = this.mode === 'draw' ? this.normalizeStrokes(this.allInitialsStrokes, this.initialsElement) : [];\n\n this.next.emit({signature, initials, mode: this.mode, name: this.enteredName, signatureStrokes, initialsStrokes});\n }\n\n private normalizeStrokes(strokes: TStrokes, canvas?: HTMLCanvasElement): TStrokes {\n const width = canvas?.width || 1;\n const height = canvas?.height || 1;\n return strokes.map(stroke => stroke.map(point => ({x: point.x / width, y: point.y / height})));\n }\n\n private denormalizeStrokes(strokes: TStrokes, canvas: HTMLCanvasElement): TStrokes {\n const width = canvas.width || 1;\n const height = canvas.height || 1;\n return strokes.map(stroke => stroke.map(point => ({x: point.x * width, y: point.y * height})));\n }\n\n isAdoptButtonDisabled(): boolean {\n switch (this.mode) {\n case 'type':\n // Disable if no name has been entered\n return !this.enteredName || this.enteredName.trim().length === 0;\n case 'draw':\n // Disable if nothing has been drawn or restored from a previous adoption\n return !this.hasDrawnSignature || !this.hasDrawnInitials;\n default:\n return true;\n }\n }\n\n setupSignatureCanvas() {\n if (!this.signatureElement) {\n return;\n }\n\n // Set up drawing context when in draw mode\n if (this.mode === 'draw') {\n // Always get fresh context from the current canvas element\n const sigContext = this.signatureElement.getContext('2d');\n\n // Only initialize if we don't have a context or it's different\n if (sigContext && sigContext !== this.sigDrawingContext) {\n this.sigDrawingContext = sigContext;\n\n // Configure drawing style for smooth signatures\n this.sigDrawingContext.strokeStyle = '#000000';\n this.sigDrawingContext.lineWidth = 2;\n this.sigDrawingContext.lineCap = 'round';\n this.sigDrawingContext.lineJoin = 'round';\n\n // Clear canvas only if there are no existing strokes or restored previews\n if (this.allSigStrokes.length === 0 && !this.hasDrawnSignature) {\n this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);\n }\n }\n }\n\n // Reset drawing context when switching away from draw mode\n // NOTE: We don't clear allStrokes here so drawing persists when returning to draw mode\n if (this.mode !== 'draw' && this.sigDrawingContext) {\n this.sigDrawingContext = null;\n this.currentSigStroke = [];\n this.lastSigPoint = null;\n }\n }\n\n setupInitialsCanvas() {\n if (!this.initialsElement) {\n return;\n }\n\n // Set up drawing context when in draw mode\n if (this.mode === 'draw') {\n // Always get fresh context from the current canvas element\n const initialsContext = this.initialsElement.getContext('2d');\n\n // Only initialize if we don't have a context or it's different\n if (initialsContext && initialsContext !== this.initialsDrawingContext) {\n this.initialsDrawingContext = initialsContext;\n\n // Configure drawing style for smooth signatures\n this.initialsDrawingContext.strokeStyle = '#000000';\n this.initialsDrawingContext.lineWidth = 2;\n this.initialsDrawingContext.lineCap = 'round';\n this.initialsDrawingContext.lineJoin = 'round';\n\n // Clear canvas only if there are no existing strokes or restored previews\n if (this.allInitialsStrokes.length === 0 && !this.hasDrawnInitials) {\n this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);\n }\n }\n }\n\n // Reset drawing context when switching away from draw mode\n // NOTE: We don't clear allStrokes here so drawing persists when returning to draw mode\n if (this.mode !== 'draw' && this.initialsDrawingContext) {\n this.initialsDrawingContext = null;\n this.currentInitialsStroke = [];\n this.lastInitialsPoint = null;\n }\n }\n\n clearSignatureCanvas() {\n if (!this.signatureElement || !this.sigDrawingContext) {\n return;\n }\n\n this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);\n this.currentSigStroke = [];\n this.allSigStrokes = [];\n this.lastSigPoint = null;\n this.hasDrawnSignature = false;\n }\n\n clearInitialsCanvas() {\n if (!this.initialsElement || !this.initialsDrawingContext) {\n return;\n }\n\n this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);\n this.currentInitialsStroke = [];\n this.allInitialsStrokes = [];\n this.lastInitialsPoint = null;\n this.hasDrawnInitials = false;\n }\n\n handleClearDrawing(e: any, type: 'signature' | 'initials' | 'all' = 'all') {\n e.stopPropagation();\n e.preventDefault();\n if (type === 'all' || type === 'signature') this.clearSignatureCanvas();\n if (type === 'all' || type === 'initials') this.clearInitialsCanvas();\n }\n\n getSigCanvasCoordinates(e: PointerEvent): {x: number; y: number} {\n if (!this.signatureElement) {\n return {x: 0, y: 0};\n }\n\n const rect = this.signatureElement.getBoundingClientRect();\n\n // Calculate the scale factor between canvas size and display size\n const scaleX = this.signatureElement.width / rect.width;\n const scaleY = this.signatureElement.height / rect.height;\n\n return {\n x: (e.clientX - rect.left) * scaleX,\n y: (e.clientY - rect.top) * scaleY,\n };\n }\n\n getInitialsCanvasCoordinates(e: PointerEvent): {x: number; y: number} {\n if (!this.initialsElement) {\n return {x: 0, y: 0};\n }\n\n const rect = this.initialsElement.getBoundingClientRect();\n\n // Calculate the scale factor between canvas size and display size\n const scaleX = this.initialsElement.width / rect.width;\n const scaleY = this.initialsElement.height / rect.height;\n\n return {\n x: (e.clientX - rect.left) * scaleX,\n y: (e.clientY - rect.top) * scaleY,\n };\n }\n\n handleSigPointerDown = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.signatureElement || !this.sigDrawingContext) {\n return;\n }\n\n this.isDrawing = true;\n this.hasDrawnSignature = true;\n\n const point = this.getSigCanvasCoordinates(e);\n this.currentSigStroke = [point];\n this.lastSigPoint = point;\n\n // Start a new path\n this.sigDrawingContext.beginPath();\n this.sigDrawingContext.moveTo(point.x, point.y);\n\n // Capture pointer to ensure we get all events even if pointer leaves canvas\n this.signatureElement.setPointerCapture(e.pointerId);\n };\n\n handleSigPointerMove = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.isDrawing || !this.sigDrawingContext || !this.lastSigPoint) {\n return;\n }\n\n const point = this.getSigCanvasCoordinates(e);\n this.currentSigStroke.push(point);\n\n // Use quadratic curves for smooth drawing\n // The control point is the last point, and we draw to the midpoint\n const midPoint = {\n x: (this.lastSigPoint.x + point.x) / 2,\n y: (this.lastSigPoint.y + point.y) / 2,\n };\n\n this.sigDrawingContext.quadraticCurveTo(this.lastSigPoint.x, this.lastSigPoint.y, midPoint.x, midPoint.y);\n this.sigDrawingContext.stroke();\n\n this.lastSigPoint = point;\n };\n\n handleSigPointerUp = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.isDrawing || !this.sigDrawingContext) {\n return;\n }\n\n // Complete the stroke\n if (this.lastSigPoint && this.currentSigStroke.length > 0) {\n this.sigDrawingContext.lineTo(this.lastSigPoint.x, this.lastSigPoint.y);\n this.sigDrawingContext.stroke();\n }\n\n // Save the completed stroke\n if (this.currentSigStroke.length > 0) {\n this.allSigStrokes.push([...this.currentSigStroke]);\n }\n\n this.isDrawing = false;\n this.currentSigStroke = [];\n this.lastSigPoint = null;\n\n // Release pointer capture\n if (this.signatureElement) {\n this.signatureElement.releasePointerCapture(e.pointerId);\n }\n };\n\n handleSigPointerCancel = (e: PointerEvent) => {\n // Handle cases where drawing is interrupted (e.g., phone call, notification)\n this.isDrawing = false;\n this.currentSigStroke = [];\n this.lastSigPoint = null;\n\n if (this.signatureElement) {\n this.signatureElement.releasePointerCapture(e.pointerId);\n }\n };\n\n handleInitialsPointerDown = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.initialsElement || !this.initialsDrawingContext) {\n return;\n }\n\n this.isDrawing = true;\n this.hasDrawnInitials = true;\n\n const point = this.getInitialsCanvasCoordinates(e);\n this.currentInitialsStroke = [point];\n this.lastInitialsPoint = point;\n\n // Start a new path\n this.initialsDrawingContext.beginPath();\n this.initialsDrawingContext.moveTo(point.x, point.y);\n\n // Capture pointer to ensure we get all events even if pointer leaves canvas\n this.initialsElement.setPointerCapture(e.pointerId);\n };\n\n handleInitialsPointerMove = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.isDrawing || !this.initialsDrawingContext || !this.lastInitialsPoint) {\n return;\n }\n\n const point = this.getInitialsCanvasCoordinates(e);\n this.currentInitialsStroke.push(point);\n\n // Use quadratic curves for smooth drawing\n // The control point is the last point, and we draw to the midpoint\n const midPoint = {\n x: (this.lastInitialsPoint.x + point.x) / 2,\n y: (this.lastInitialsPoint.y + point.y) / 2,\n };\n\n this.initialsDrawingContext.quadraticCurveTo(this.lastInitialsPoint.x, this.lastInitialsPoint.y, midPoint.x, midPoint.y);\n this.initialsDrawingContext.stroke();\n\n this.lastInitialsPoint = point;\n };\n\n handleInitialsPointerUp = (e: PointerEvent) => {\n e.preventDefault();\n\n if (!this.isDrawing || !this.initialsDrawingContext) {\n return;\n }\n\n // Complete the stroke\n if (this.lastInitialsPoint && this.currentInitialsStroke.length > 0) {\n this.initialsDrawingContext.lineTo(this.lastInitialsPoint.x, this.lastInitialsPoint.y);\n this.initialsDrawingContext.stroke();\n }\n\n // Save the completed stroke\n if (this.currentInitialsStroke.length > 0) {\n this.allInitialsStrokes.push([...this.currentInitialsStroke]);\n }\n\n this.isDrawing = false;\n this.currentInitialsStroke = [];\n this.lastInitialsPoint = null;\n\n // Release pointer capture\n if (this.initialsElement) {\n this.initialsElement.releasePointerCapture(e.pointerId);\n }\n };\n\n handleInitialsPointerCancel = (e: PointerEvent) => {\n // Handle cases where drawing is interrupted (e.g., phone call, notification)\n this.isDrawing = false;\n this.currentInitialsStroke = [];\n this.lastInitialsPoint = null;\n\n if (this.initialsElement) {\n this.initialsElement.releasePointerCapture(e.pointerId);\n }\n };\n\n render() {\n return (\n <verdocs-dialog persistent onExit={() => this.exit.emit()}>\n <div slot=\"heading\" class=\"heading\">\n Adopt Your Signature\n </div>\n\n <div slot=\"content\" class=\"content\">\n <div style={{fontWeight: '300', color: '#242424', fontSize: '13px'}}>Confirm your name, initials, and signature.</div>\n\n <div class={{type: true, active: this.mode === 'type'}}>\n <verdocs-text-input\n label=\"Full Name\"\n value={this.enteredName}\n disabled={this.nameLocked}\n onInput={e => this.handleNameChange(e)}\n onClick={e => e.stopPropagation()}\n />\n {this.nameLocked && <div class=\"name-locked-hint\">Your name has been set by the sender and cannot be changed.</div>}\n </div>\n\n <div style={{fontWeight: '400', color: '#242424', fontSize: '13px'}}>Select a signature style</div>\n\n <div style={{display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px'}}>\n <verdocs-radio-button checked={this.mode === 'type'} value=\"type\" name=\"mode\" onClick={() => this.setMode('type')} />\n <label>Typed with a keyboard</label>\n </div>\n <div style={{display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px'}}>\n <verdocs-radio-button checked={this.mode === 'draw'} value=\"draw\" name=\"mode\" onClick={() => this.setMode('draw')} />\n <label>Drawn with touch, mouse, or stylus</label>\n </div>\n\n <div class=\"preview-header\">\n <div style={{fontSize: '13px', fontWeight: '400'}}>Signature Preview</div>\n {this.mode === 'draw' && (\n <button class=\"clear-button-text\" onClick={e => this.handleClearDrawing(e, 'signature')} disabled={!this.hasDrawnSignature}>\n Clear\n </button>\n )}\n </div>\n <div class=\"canvas-container signature-container\">\n <div class=\"signing-indicator\">\n <div class=\"x-icon\" innerHTML={SignatureXIcon}></div>\n <div class=\"signing-line\"></div>\n </div>\n <canvas\n ref={el => (this.signatureElement = el as HTMLCanvasElement)}\n // width=\"300\"\n height=\"79\"\n class=\"signature-canvas\"\n onPointerDown={this.handleSigPointerDown}\n onPointerMove={this.handleSigPointerMove}\n onPointerUp={this.handleSigPointerUp}\n onPointerCancel={this.handleSigPointerCancel}\n style={{touchAction: 'none', cursor: 'crosshair'}}\n />\n </div>\n\n <div class=\"preview-header\">\n <div style={{fontSize: '13px', fontWeight: '400'}}>Initials Preview</div>\n {this.mode === 'draw' && (\n <button class=\"clear-button-text\" onClick={e => this.handleClearDrawing(e, 'initials')} disabled={!this.hasDrawnInitials}>\n Clear\n </button>\n )}\n </div>\n <div class=\"canvas-container initials-container\">\n <div class=\"signing-indicator\">\n <div class=\"x-icon\" innerHTML={SignatureXIcon}></div>\n <div class=\"signing-line\"></div>\n </div>\n <canvas\n ref={el => (this.initialsElement = el as HTMLCanvasElement)}\n // width=\"300\"\n height=\"79\"\n class=\"initials-canvas\"\n onPointerDown={this.handleInitialsPointerDown}\n onPointerMove={this.handleInitialsPointerMove}\n onPointerUp={this.handleInitialsPointerUp}\n onPointerCancel={this.handleInitialsPointerCancel}\n style={{touchAction: 'none', cursor: 'crosshair'}}\n />\n </div>\n\n <div class=\"disclaimer\">\n By clicking «Adopt Signature», I agree that the signature and initials above will be the electronic representation of my signature and initials for all purposes when I\n use them to sign documents. Applying them to a document is legally equivalent to signing with a pen on paper.\n </div>\n </div>\n\n <div class=\"footer\" slot=\"footer\">\n <div class=\"buttons\">\n <button class=\"cancel\" onClick={e => this.handleCancel(e)}>\n Cancel\n </button>\n <button class=\"proceed\" onClick={e => this.handleAdopt(e)} disabled={this.isAdoptButtonDisabled()}>\n Adopt & Sign\n </button>\n </div>\n </div>\n </verdocs-dialog>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { V as VerdocsAdoptSignatureDialog$1, d as defineCustomElement$1 } from './p-BUE7R0tf.js';
1
+ import { V as VerdocsAdoptSignatureDialog$1, d as defineCustomElement$1 } from './p-DFsjkMkI.js';
2
2
 
3
3
  const VerdocsAdoptSignatureDialog = VerdocsAdoptSignatureDialog$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -6,7 +6,7 @@ import { D as DocumentPageIcon, C as CheckCircleIcon } from './p-BDv5kBUR.js';
6
6
  import { V as VerdocsToast } from './p-D97GxsI-.js';
7
7
  import { S as SDKError } from './p-C1sRVZWv.js';
8
8
  import { S as Store } from './p-C7hFgM52.js';
9
- import { d as defineCustomElement$q } from './p-BUE7R0tf.js';
9
+ import { d as defineCustomElement$q } from './p-DFsjkMkI.js';
10
10
  import { d as defineCustomElement$p } from './p-C_yyK5xE.js';
11
11
  import { d as defineCustomElement$o } from './p-BvV9rOTP.js';
12
12
  import { d as defineCustomElement$n } from './p-BzspxU-o.js';
@@ -105,6 +105,9 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
105
105
  this.signatureAdoptMode = 'type';
106
106
  this.adoptedSignaturePreview = null;
107
107
  this.adoptedInitialsPreview = null;
108
+ this.adoptedSignatureStrokes = null;
109
+ this.adoptedInitialsStrokes = null;
110
+ this.adoptedName = null;
108
111
  this.skippedFields = [];
109
112
  this.documentsSingularPlural = 'document';
110
113
  this.authStep = null;
@@ -259,6 +262,9 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
259
262
  this.signatureAdoptMode = 'type';
260
263
  this.adoptedSignaturePreview = null;
261
264
  this.adoptedInitialsPreview = null;
265
+ this.adoptedSignatureStrokes = null;
266
+ this.adoptedInitialsStrokes = null;
267
+ this.adoptedName = null;
262
268
  this.submitted = recipient.status === 'submitted';
263
269
  this.loading = false;
264
270
  this.isDone = this.submitted;
@@ -429,6 +435,91 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
429
435
  }
430
436
  });
431
437
  }
438
+ toDataUrl(value) {
439
+ return value.startsWith('data:') ? value : `data:image/png;base64,${value}`;
440
+ }
441
+ getAdoptModeStorageKey(signatureBlockId) {
442
+ return `verdocs-adopt-mode:${signatureBlockId}`;
443
+ }
444
+ getAdoptNameStorageKey(signatureBlockId) {
445
+ return `verdocs-adopt-name:${signatureBlockId}`;
446
+ }
447
+ getAdoptStrokesStorageKey(signatureBlockId) {
448
+ return `verdocs-adopt-strokes:${signatureBlockId}`;
449
+ }
450
+ /** Save (or clear) the drawn strokes (normalized 0..1) for a signature/initial block so a later Edit can replay them. */
451
+ persistStrokes(signatureBlockId, strokes) {
452
+ const key = this.getAdoptStrokesStorageKey(signatureBlockId);
453
+ if (strokes && strokes.length > 0) {
454
+ sessionStorage.setItem(key, JSON.stringify(strokes));
455
+ }
456
+ else {
457
+ // Typed signatures (or cleared drawings) have no strokes — make sure a stale entry doesn't linger.
458
+ sessionStorage.removeItem(key);
459
+ }
460
+ }
461
+ /** Read previously saved drawn strokes (normalized 0..1) for a signature/initial block, if any. */
462
+ readStoredStrokes(signatureBlockId) {
463
+ if (!signatureBlockId) {
464
+ return null;
465
+ }
466
+ const raw = sessionStorage.getItem(this.getAdoptStrokesStorageKey(signatureBlockId));
467
+ if (!raw) {
468
+ return null;
469
+ }
470
+ try {
471
+ const parsed = JSON.parse(raw);
472
+ return Array.isArray(parsed) ? parsed : null;
473
+ }
474
+ catch (_a) {
475
+ return null;
476
+ }
477
+ }
478
+ /**
479
+ * Restore adopted signature/initial previews and mode from applied fields or session storage.
480
+ * Clearing a field only removes the stamp from that field — the adopted block still exists.
481
+ */
482
+ hydrateAdoptedSignatureState(triggerField) {
483
+ var _a, _b, _c, _d, _e;
484
+ const fields = this.getRecipientFields();
485
+ const signatureField = (triggerField === null || triggerField === void 0 ? void 0 : triggerField.type) === 'signature'
486
+ ? triggerField
487
+ : fields.find(f => { var _a, _b; return f.type === 'signature' && ((_a = f.settings) === null || _a === void 0 ? void 0 : _a.base64) && ((_b = f.settings) === null || _b === void 0 ? void 0 : _b.signature_id); });
488
+ const initialsField = fields.find(f => { var _a, _b; return f.type === 'initial' && ((_a = f.settings) === null || _a === void 0 ? void 0 : _a.base64) && ((_b = f.settings) === null || _b === void 0 ? void 0 : _b.initial_id); });
489
+ if ((_a = signatureField === null || signatureField === void 0 ? void 0 : signatureField.settings) === null || _a === void 0 ? void 0 : _a.base64) {
490
+ this.adoptedSignaturePreview = this.toDataUrl(signatureField.settings.base64);
491
+ }
492
+ if ((_b = initialsField === null || initialsField === void 0 ? void 0 : initialsField.settings) === null || _b === void 0 ? void 0 : _b.base64) {
493
+ this.adoptedInitialsPreview = this.toDataUrl(initialsField.settings.base64);
494
+ }
495
+ if ((_c = signatureField === null || signatureField === void 0 ? void 0 : signatureField.settings) === null || _c === void 0 ? void 0 : _c.signature_id) {
496
+ this.signatureId = signatureField.settings.signature_id;
497
+ }
498
+ if ((_d = initialsField === null || initialsField === void 0 ? void 0 : initialsField.settings) === null || _d === void 0 ? void 0 : _d.initial_id) {
499
+ this.initialId = initialsField.settings.initial_id;
500
+ }
501
+ // Restore the editable stroke source (if previously saved this session) so re-opening the dialog replays the exact
502
+ // hand-drawn signature/initials instead of falling back to the rasterized bitmap.
503
+ const storedSignatureStrokes = this.readStoredStrokes(this.signatureId);
504
+ if (storedSignatureStrokes) {
505
+ this.adoptedSignatureStrokes = storedSignatureStrokes;
506
+ }
507
+ const storedInitialsStrokes = this.readStoredStrokes(this.initialId);
508
+ if (storedInitialsStrokes) {
509
+ this.adoptedInitialsStrokes = storedInitialsStrokes;
510
+ }
511
+ const modeSourceId = this.signatureId || ((_e = signatureField === null || signatureField === void 0 ? void 0 : signatureField.settings) === null || _e === void 0 ? void 0 : _e.signature_id);
512
+ if (modeSourceId && this.adoptedSignaturePreview) {
513
+ const storedMode = sessionStorage.getItem(this.getAdoptModeStorageKey(modeSourceId));
514
+ if (storedMode === 'draw' || storedMode === 'type') {
515
+ this.signatureAdoptMode = storedMode;
516
+ }
517
+ const storedName = sessionStorage.getItem(this.getAdoptNameStorageKey(modeSourceId));
518
+ if (storedName) {
519
+ this.adoptedName = storedName;
520
+ }
521
+ }
522
+ }
432
523
  getStartedKey() {
433
524
  var _a;
434
525
  return `${this.envelopeId}:${((_a = this.recipient) === null || _a === void 0 ? void 0 : _a.role_name) || ''}`;
@@ -593,10 +684,6 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
593
684
  }
594
685
  if (e.detail === null) {
595
686
  console.log('[SIGN] Clearing signature');
596
- this.signatureId = null;
597
- this.adoptedSignaturePreview = null;
598
- this.adoptedInitialsPreview = null;
599
- this.signatureAdoptMode = 'type';
600
687
  const updateResult = await updateEnvelopeField(this.endpoint, this.envelopeId, this.roleId, field.name, null, false);
601
688
  this.updateRecipientFieldValue(field.name, updateResult);
602
689
  if (field.required)
@@ -608,6 +695,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
608
695
  console.log('[SIGN] Reusing signature', this.signatureId);
609
696
  const updateResult = await updateEnvelopeField(this.endpoint, this.envelopeId, this.roleId, field.name, this.signatureId, false);
610
697
  this.updateRecipientFieldValue(field.name, updateResult);
698
+ this.hydrateAdoptedSignatureState(field);
611
699
  this.focusNextFieldAfter(field);
612
700
  return;
613
701
  }
@@ -617,6 +705,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
617
705
  const updateResult = await updateEnvelopeField(this.endpoint, this.envelopeId, this.roleId, field.name, e.detail, false);
618
706
  this.signatureId = e.detail;
619
707
  this.updateRecipientFieldValue(field.name, updateResult);
708
+ this.hydrateAdoptedSignatureState(field);
620
709
  this.focusNextFieldAfter(field);
621
710
  return;
622
711
  }
@@ -974,6 +1063,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
974
1063
  });
975
1064
  el.addEventListener('adopt', () => {
976
1065
  this.focusedField = field.name;
1066
+ this.hydrateAdoptedSignatureState(field);
977
1067
  this.updateAllFlags();
978
1068
  this.adoptingSignature = true;
979
1069
  });
@@ -1059,7 +1149,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
1059
1149
  });
1060
1150
  }
1061
1151
  render() {
1062
- var _a, _b, _c;
1152
+ var _a, _b, _c, _d, _e, _f;
1063
1153
  if (this.showLoadError) {
1064
1154
  return (h(Host, null, h("verdocs-ok-dialog", { heading: "Unable to Start Signing", message: `Sorry, your invite code is invalid or has expired. Please check your email for an updated invitation, or contact the sender.`, buttonLabel: "OK", onNext: () => {
1065
1155
  window.location.reload();
@@ -1209,21 +1299,31 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
1209
1299
  } })), this.showDone && (h("verdocs-ok-dialog", { heading: "You're Done!", message: `You can access the ${this.documentsSingularPlural} at any time by clicking on the link from the invitation email.<br /><br />After all recipients have completed their actions, you will receive an email with the completed document and certificate attached.`, hideCloseButton: true, onNext: () => {
1210
1300
  this.showDone = false;
1211
1301
  this.isDone = true;
1212
- } })), this.adoptingSignature && (h("verdocs-adopt-signature-dialog", { name: formatFullName(this.recipient), nameLocked: !!((_a = this.recipient) === null || _a === void 0 ? void 0 : _a.name_locked), initialMode: this.adoptedSignaturePreview ? this.signatureAdoptMode : undefined, initialSignature: (_b = this.adoptedSignaturePreview) !== null && _b !== void 0 ? _b : undefined, initialInitials: (_c = this.adoptedInitialsPreview) !== null && _c !== void 0 ? _c : undefined, onNext: async (e) => {
1302
+ } })), this.adoptingSignature && (h("verdocs-adopt-signature-dialog", { name: formatFullName(this.recipient), nameLocked: !!((_a = this.recipient) === null || _a === void 0 ? void 0 : _a.name_locked), initialEnteredName: (_b = this.adoptedName) !== null && _b !== void 0 ? _b : undefined, initialMode: this.adoptedSignaturePreview ? this.signatureAdoptMode : undefined, initialSignature: (_c = this.adoptedSignaturePreview) !== null && _c !== void 0 ? _c : undefined, initialInitials: (_d = this.adoptedInitialsPreview) !== null && _d !== void 0 ? _d : undefined, initialSignatureStrokes: (_e = this.adoptedSignatureStrokes) !== null && _e !== void 0 ? _e : undefined, initialInitialsStrokes: (_f = this.adoptedInitialsStrokes) !== null && _f !== void 0 ? _f : undefined, onNext: async (e) => {
1303
+ var _a, _b;
1213
1304
  console.log('[SIGN] Adopting signature/initials block', e.detail);
1214
1305
  this.showSpinner = true;
1215
1306
  this.signatureAdoptMode = e.detail.mode;
1216
1307
  this.adoptedSignaturePreview = e.detail.signature;
1217
1308
  this.adoptedInitialsPreview = e.detail.initials;
1309
+ this.adoptedSignatureStrokes = ((_a = e.detail.signatureStrokes) === null || _a === void 0 ? void 0 : _a.length) ? e.detail.signatureStrokes : null;
1310
+ this.adoptedInitialsStrokes = ((_b = e.detail.initialsStrokes) === null || _b === void 0 ? void 0 : _b.length) ? e.detail.initialsStrokes : null;
1311
+ this.adoptedName = e.detail.name;
1218
1312
  // These arrive as base-64 encoded data URLs
1219
1313
  const signatureBlob = await (await fetch(e.detail.signature)).blob();
1220
1314
  const initialsBlob = await (await fetch(e.detail.initials)).blob();
1221
1315
  const sigResult = await createSignature(this.endpoint, 'signature', signatureBlob);
1222
1316
  console.log('[SIGN] Created signature', sigResult);
1223
1317
  this.signatureId = sigResult.id;
1318
+ sessionStorage.setItem(this.getAdoptModeStorageKey(sigResult.id), e.detail.mode);
1319
+ sessionStorage.setItem(this.getAdoptNameStorageKey(sigResult.id), e.detail.name);
1320
+ this.persistStrokes(sigResult.id, e.detail.signatureStrokes);
1224
1321
  const initResult = await createInitials(this.endpoint, 'initial', initialsBlob);
1225
1322
  console.log('[SIGN] Created initials', initResult);
1226
1323
  this.initialId = initResult.id;
1324
+ sessionStorage.setItem(this.getAdoptModeStorageKey(initResult.id), e.detail.mode);
1325
+ sessionStorage.setItem(this.getAdoptNameStorageKey(initResult.id), e.detail.name);
1326
+ this.persistStrokes(initResult.id, e.detail.initialsStrokes);
1227
1327
  this.showSpinner = false;
1228
1328
  this.adoptingSignature = false;
1229
1329
  this.markEnvelopeStarted();
@@ -1340,6 +1440,9 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class VerdocsSign extends
1340
1440
  "signatureAdoptMode": [32],
1341
1441
  "adoptedSignaturePreview": [32],
1342
1442
  "adoptedInitialsPreview": [32],
1443
+ "adoptedSignatureStrokes": [32],
1444
+ "adoptedInitialsStrokes": [32],
1445
+ "adoptedName": [32],
1343
1446
  "skippedFields": [32],
1344
1447
  "documentsSingularPlural": [32],
1345
1448
  "authStep": [32],