@verdocs/web-sdk 6.3.2 → 6.5.0-beta.1
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.
- package/dist/cjs/index-CQ5bTnED.js +6 -6
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.cjs.js.map +1 -0
- package/dist/cjs/{verdocs-delegate-dialog_5.cjs.entry.js → verdocs-adopt-signature-dialog_6.cjs.entry.js} +443 -4
- package/dist/cjs/verdocs-button.verdocs-help-icon.verdocs-text-input.entry.cjs.js.map +1 -1
- package/dist/cjs/verdocs-button_3.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-dialog.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-dialog.entry.cjs.js.map +1 -1
- package/dist/cjs/verdocs-envelope-document-page_3.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-envelopes-list.cjs.entry.js +6 -6
- package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +7 -7
- package/dist/cjs/verdocs-ok-dialog.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-quick-functions.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-search-tabs.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-sign.cjs.entry.js +42 -4
- package/dist/cjs/verdocs-sign.entry.cjs.js.map +1 -1
- package/dist/cjs/verdocs-status-indicator.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-template-card.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-template-star.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-template-tags.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/controls/verdocs-button/verdocs-button.css +2 -2
- package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.css +225 -0
- package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js +515 -0
- package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-delegate-dialog/verdocs-delegate-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-dialog/verdocs-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-dialog/verdocs-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-disclosure-dialog/verdocs-disclosure-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-otp-dialog/verdocs-otp-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-question-dialog/verdocs-question-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js +1 -1
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js +1 -1
- package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.js +1 -1
- package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.js +1 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.css +11 -0
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +43 -3
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
- package/dist/collection/components/envelopes/verdocs-envelope-document-page/verdocs-envelope-document-page.js +1 -1
- package/dist/collection/components/envelopes/verdocs-envelopes-list/verdocs-envelopes-list.js +6 -6
- package/dist/collection/components/envelopes/verdocs-sign-footer/verdocs-sign-footer.js +1 -1
- package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.js +2 -2
- package/dist/collection/components/templates/verdocs-template-card/verdocs-template-card.js +1 -1
- package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +7 -7
- package/dist/collection/components/templates/verdocs-template-star/verdocs-template-star.js +1 -1
- package/dist/collection/components/templates/verdocs-template-tags/verdocs-template-tags.js +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/p--22mTpQu.js +492 -0
- package/dist/components/p--22mTpQu.js.map +1 -0
- package/dist/components/{p-xtoLmSCb.js → p--MAFwnYi.js} +4 -4
- package/dist/components/{p-xtoLmSCb.js.map → p--MAFwnYi.js.map} +1 -1
- package/dist/components/{p-DQZV5DpX.js → p-03-0JktC.js} +6 -6
- package/dist/components/{p-DQZV5DpX.js.map → p-03-0JktC.js.map} +1 -1
- package/dist/components/{p-5Fek5Wy9.js → p-B-Dy5ZZg.js} +3 -3
- package/dist/components/{p-5Fek5Wy9.js.map → p-B-Dy5ZZg.js.map} +1 -1
- package/dist/components/{p-ShTRLp1e.js → p-B2kqp9s3.js} +3 -3
- package/dist/components/{p-ShTRLp1e.js.map → p-B2kqp9s3.js.map} +1 -1
- package/dist/components/{p-BBgYkz_p.js → p-B8ZrxzPu.js} +4 -4
- package/dist/components/{p-BBgYkz_p.js.map → p-B8ZrxzPu.js.map} +1 -1
- package/dist/components/{p-ewRI_6tO.js → p-B9UsTlmn.js} +4 -4
- package/dist/components/{p-ewRI_6tO.js.map → p-B9UsTlmn.js.map} +1 -1
- package/dist/components/{p-tXZcbV3w.js → p-BL-JaC6f.js} +4 -4
- package/dist/components/{p-tXZcbV3w.js.map → p-BL-JaC6f.js.map} +1 -1
- package/dist/components/{p-foP05GI4.js → p-BMuFgZcf.js} +20 -20
- package/dist/components/{p-foP05GI4.js.map → p-BMuFgZcf.js.map} +1 -1
- package/dist/components/{p-DQ5Kf869.js → p-BPl-hwhm.js} +5 -5
- package/dist/components/{p-DQ5Kf869.js.map → p-BPl-hwhm.js.map} +1 -1
- package/dist/components/{p-DzDB_SyD.js → p-BRnBGYE7.js} +4 -4
- package/dist/components/{p-DzDB_SyD.js.map → p-BRnBGYE7.js.map} +1 -1
- package/dist/components/{p-DYfrJ4GD.js → p-BeOs-_Hc.js} +4 -4
- package/dist/components/{p-DYfrJ4GD.js.map → p-BeOs-_Hc.js.map} +1 -1
- package/dist/components/{p-DLRzhboq.js → p-BgdorSdl.js} +4 -4
- package/dist/components/{p-DLRzhboq.js.map → p-BgdorSdl.js.map} +1 -1
- package/dist/components/{p-Cxr-iSrc.js → p-ByN2xw3g.js} +3 -3
- package/dist/components/{p-Cxr-iSrc.js.map → p-ByN2xw3g.js.map} +1 -1
- package/dist/components/{p-DHYsT4bg.js → p-CAAXnAJc.js} +19 -19
- package/dist/components/{p-DHYsT4bg.js.map → p-CAAXnAJc.js.map} +1 -1
- package/dist/components/{p-D90w1eGV.js → p-CAXnLTMU.js} +6 -6
- package/dist/components/{p-D90w1eGV.js.map → p-CAXnLTMU.js.map} +1 -1
- package/dist/components/{p-B1xA5_lE.js → p-CGEus5vb.js} +4 -4
- package/dist/components/{p-B1xA5_lE.js.map → p-CGEus5vb.js.map} +1 -1
- package/dist/components/{p-D9PE4xz7.js → p-CVw3uIMa.js} +3 -3
- package/dist/components/{p-D9PE4xz7.js.map → p-CVw3uIMa.js.map} +1 -1
- package/dist/components/{p-CSxSI_ON.js → p-CWyDvAhW.js} +20 -20
- package/dist/components/{p-CSxSI_ON.js.map → p-CWyDvAhW.js.map} +1 -1
- package/dist/components/{p-DaISePSz.js → p-Cb2BVlCf.js} +3 -3
- package/dist/components/p-Cb2BVlCf.js.map +1 -0
- package/dist/components/{p-C74Z96Hx.js → p-CfteiEu5.js} +3 -3
- package/dist/components/{p-C74Z96Hx.js.map → p-CfteiEu5.js.map} +1 -1
- package/dist/components/{p-_8VAlOYF.js → p-CmNkNw68.js} +4 -4
- package/dist/components/{p-_8VAlOYF.js.map → p-CmNkNw68.js.map} +1 -1
- package/dist/components/{p-D-o8QR0Y.js → p-Crvz6jDy.js} +3 -3
- package/dist/components/{p-D-o8QR0Y.js.map → p-Crvz6jDy.js.map} +1 -1
- package/dist/components/{p-MbNTNztz.js → p-CvzTGqMO.js} +4 -4
- package/dist/components/{p-MbNTNztz.js.map → p-CvzTGqMO.js.map} +1 -1
- package/dist/components/{p-s5aulRbG.js → p-CxLl7FNM.js} +4 -4
- package/dist/components/{p-s5aulRbG.js.map → p-CxLl7FNM.js.map} +1 -1
- package/dist/components/{p-DMN-w8Ma.js → p-D-H-9KY8.js} +4 -4
- package/dist/components/{p-DMN-w8Ma.js.map → p-D-H-9KY8.js.map} +1 -1
- package/dist/components/{p-Dj0PabuK.js → p-D7__Pp00.js} +6 -6
- package/dist/components/{p-Dj0PabuK.js.map → p-D7__Pp00.js.map} +1 -1
- package/dist/components/{p-CmOvVqbw.js → p-D7a2wzo5.js} +4 -4
- package/dist/components/{p-CmOvVqbw.js.map → p-D7a2wzo5.js.map} +1 -1
- package/dist/components/{p-BQVsyF2B.js → p-DBAtkaK6.js} +4 -4
- package/dist/components/{p-BQVsyF2B.js.map → p-DBAtkaK6.js.map} +1 -1
- package/dist/components/{p-CcVkCmQi.js → p-DE0Pffxj.js} +4 -4
- package/dist/components/{p-CcVkCmQi.js.map → p-DE0Pffxj.js.map} +1 -1
- package/dist/components/p-DNljqkuf.js +55 -0
- package/dist/components/p-DNljqkuf.js.map +1 -0
- package/dist/components/{p-Be40bZ4S.js → p-DR2UE0Os.js} +7 -7
- package/dist/components/{p-Be40bZ4S.js.map → p-DR2UE0Os.js.map} +1 -1
- package/dist/components/{p-zln1sHDr.js → p-DaIaz1c1.js} +4 -4
- package/dist/components/{p-zln1sHDr.js.map → p-DaIaz1c1.js.map} +1 -1
- package/dist/components/{p-qGaFgS8W.js → p-DdW2wHj_.js} +4 -4
- package/dist/components/{p-qGaFgS8W.js.map → p-DdW2wHj_.js.map} +1 -1
- package/dist/components/{p-5cFBOeAO.js → p-DkrVyv_Q.js} +3 -3
- package/dist/components/{p-5cFBOeAO.js.map → p-DkrVyv_Q.js.map} +1 -1
- package/dist/components/{p-DZonUNfY.js → p-DngKAB2o.js} +10 -10
- package/dist/components/{p-DZonUNfY.js.map → p-DngKAB2o.js.map} +1 -1
- package/dist/components/{p-BJmkJ4bg.js → p-DsYzavXP.js} +3 -3
- package/dist/components/{p-BJmkJ4bg.js.map → p-DsYzavXP.js.map} +1 -1
- package/dist/components/{p-BjnLxewv.js → p-GiBzmfuf.js} +4 -4
- package/dist/components/{p-BjnLxewv.js.map → p-GiBzmfuf.js.map} +1 -1
- package/dist/components/{p-8N-Q0mJE.js → p-LWshb-T0.js} +5 -5
- package/dist/components/{p-8N-Q0mJE.js.map → p-LWshb-T0.js.map} +1 -1
- package/dist/components/{p-BukckV1k.js → p-YdjsfZWX.js} +7 -7
- package/dist/components/{p-BukckV1k.js.map → p-YdjsfZWX.js.map} +1 -1
- package/dist/components/p-j_Tq7bTq.js +66 -0
- package/dist/components/p-j_Tq7bTq.js.map +1 -0
- package/dist/components/verdocs-adopt-signature-dialog.d.ts +11 -0
- package/dist/components/verdocs-adopt-signature-dialog.js +9 -0
- package/dist/components/verdocs-adopt-signature-dialog.js.map +1 -0
- package/dist/components/verdocs-auth.js +1 -1
- package/dist/components/verdocs-build.js +27 -27
- package/dist/components/verdocs-button.js +1 -1
- package/dist/components/verdocs-contact-picker.js +1 -1
- package/dist/components/verdocs-delegate-dialog.js +1 -1
- package/dist/components/verdocs-dialog.js +1 -1
- package/dist/components/verdocs-disclosure-dialog.js +1 -1
- package/dist/components/verdocs-envelope-document-page.js +1 -1
- package/dist/components/verdocs-envelope-recipient-link.js +1 -1
- package/dist/components/verdocs-envelope-recipient-summary.js +1 -1
- package/dist/components/verdocs-envelope-sidebar.js +5 -5
- package/dist/components/verdocs-envelope-update-recipient.js +1 -1
- package/dist/components/verdocs-envelopes-list.js +8 -8
- package/dist/components/verdocs-field-attachment.js +1 -1
- package/dist/components/verdocs-field-checkbox.js +1 -1
- package/dist/components/verdocs-field-date.js +1 -1
- package/dist/components/verdocs-field-dropdown.js +1 -1
- package/dist/components/verdocs-field-initial.js +1 -1
- package/dist/components/verdocs-field-payment.js +2 -2
- package/dist/components/verdocs-field-radio.js +1 -1
- package/dist/components/verdocs-field-signature.js +1 -1
- package/dist/components/verdocs-field-textarea.js +1 -1
- package/dist/components/verdocs-field-textbox.js +1 -1
- package/dist/components/verdocs-field-timestamp.js +1 -1
- package/dist/components/verdocs-file-chooser.js +1 -1
- package/dist/components/verdocs-initial-dialog.js +1 -1
- package/dist/components/verdocs-kba-dialog.js +1 -1
- package/dist/components/verdocs-ok-dialog.js +1 -1
- package/dist/components/verdocs-otp-dialog.js +1 -1
- package/dist/components/verdocs-preview.js +1 -1
- package/dist/components/verdocs-question-dialog.js +1 -1
- package/dist/components/verdocs-quick-functions.js +1 -1
- package/dist/components/verdocs-radio-button.js +1 -50
- package/dist/components/verdocs-radio-button.js.map +1 -1
- package/dist/components/verdocs-search-tabs.js +1 -1
- package/dist/components/verdocs-send.js +1 -1
- package/dist/components/verdocs-sign-footer.js +1 -1
- package/dist/components/verdocs-sign.js +86 -34
- package/dist/components/verdocs-sign.js.map +1 -1
- package/dist/components/verdocs-signature-dialog.js +1 -1
- package/dist/components/verdocs-status-indicator.js +1 -1
- package/dist/components/verdocs-template-attachments.js +1 -1
- package/dist/components/verdocs-template-card.js +1 -1
- package/dist/components/verdocs-template-create.js +1 -1
- package/dist/components/verdocs-template-document-page.js +1 -1
- package/dist/components/verdocs-template-field-properties.js +1 -1
- package/dist/components/verdocs-template-fields.js +1 -1
- package/dist/components/verdocs-template-role-properties.js +1 -1
- package/dist/components/verdocs-template-roles.js +1 -1
- package/dist/components/verdocs-template-settings.js +1 -1
- package/dist/components/verdocs-template-star.js +1 -1
- package/dist/components/verdocs-template-tags.js +1 -1
- package/dist/components/verdocs-templates-list.js +3 -3
- package/dist/components/verdocs-upload-dialog.js +1 -1
- package/dist/components/verdocs-view.js +1 -1
- package/dist/esm/index-BIRwgFLv.js +6 -6
- package/dist/esm/loader.js +1 -1
- package/dist/esm/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -0
- package/dist/esm/{verdocs-delegate-dialog_5.entry.js → verdocs-adopt-signature-dialog_6.entry.js} +443 -5
- package/dist/esm/verdocs-button.verdocs-help-icon.verdocs-text-input.entry.js.map +1 -1
- package/dist/esm/verdocs-button_3.entry.js +1 -1
- package/dist/esm/verdocs-dialog.entry.js +1 -1
- package/dist/esm/verdocs-dialog.entry.js.map +1 -1
- package/dist/esm/verdocs-envelope-document-page_3.entry.js +3 -3
- package/dist/esm/verdocs-envelopes-list.entry.js +6 -6
- package/dist/esm/verdocs-field-attachment_13.entry.js +3 -3
- package/dist/esm/verdocs-menu-panel_2.entry.js +7 -7
- package/dist/esm/verdocs-ok-dialog.entry.js +1 -1
- package/dist/esm/verdocs-quick-functions.entry.js +1 -1
- package/dist/esm/verdocs-search-tabs.entry.js +1 -1
- package/dist/esm/verdocs-sign.entry.js +42 -4
- package/dist/esm/verdocs-sign.entry.js.map +1 -1
- package/dist/esm/verdocs-status-indicator.entry.js +2 -2
- package/dist/esm/verdocs-template-card.entry.js +1 -1
- package/dist/esm/verdocs-template-star.entry.js +1 -1
- package/dist/esm/verdocs-template-tags.entry.js +1 -1
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/index-BIRwgFLv.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-adopt-signature-dialog_6.entry.js +2 -0
- package/dist/esm-es5/verdocs-adopt-signature-dialog_6.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-button.verdocs-help-icon.verdocs-text-input.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-button_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-button_3.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-dialog.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-envelope-document-page_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelopes-list.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
- package/dist/esm-es5/verdocs-menu-panel_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-ok-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-quick-functions.entry.js +1 -1
- package/dist/esm-es5/verdocs-search-tabs.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-status-indicator.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-card.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-star.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-tags.entry.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/types/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.d.ts +72 -0
- package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +6 -0
- package/dist/types/components.d.ts +63 -0
- package/dist/verdocs-web-sdk/{p-314eebba.system.entry.js → p-00a4e7bb.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-0c0bc455.system.entry.js → p-04d12736.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-1deb700a.entry.js → p-08cc95f2.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-a59be807.system.entry.js → p-119a435b.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-11b7417a.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-11b7417a.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-18f123b0.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-18f123b0.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-f40ab4f5.entry.js → p-1a24cb02.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-57a4694c.system.entry.js → p-1b6e12fd.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-228e230f.entry.js → p-2b3b18d9.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-32fbbfa8.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-33daf816.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-33daf816.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-e4f0949d.system.entry.js → p-35bff3e8.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-ac9343dd.system.entry.js → p-360b6fe2.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-ac9343dd.system.entry.js.map → p-360b6fe2.system.entry.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-06063fe6.entry.js → p-40da805a.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-b976781d.system.entry.js → p-4c34cce1.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-no56iQU4.system.js.map → p-5QBnJPzZ.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-c061d0f7.system.entry.js → p-5b6a5423.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-63ab6794.entry.js → p-5caf5e89.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-ce3e9ace.entry.js → p-63a1cdc4.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-645ecdf2.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-645ecdf2.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-ed353630.entry.js → p-67f9303c.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-ed353630.entry.js.map → p-67f9303c.entry.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-59190e63.system.entry.js → p-76d415d8.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-7d0ad091.entry.js +2 -0
- package/dist/verdocs-web-sdk/{p-79dba586.entry.js.map → p-7d0ad091.entry.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-ea69720d.entry.js → p-8198f626.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-ffb4ee7b.system.entry.js → p-89253f22.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-6ac24714.entry.js → p-96c615c4.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-f51c7617.system.entry.js → p-9c6794e2.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-B8zpaHu-.system.js +1 -1
- package/dist/verdocs-web-sdk/{p-BK1P8OnR.system.js.map → p-BPADFnIx.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-BXWpJq0l.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-DjEDnCUT.system.js.map → p-BzzCPrH6.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-FCFl6lCt.system.js.map → p-C3zDhjUw.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-CjbrW449.system.js.map → p-CIBNz0ch.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-RthJMgT5.system.js.map → p-CObV00Q6.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-0YtsUAM2.system.js.map → p-CxMoZjwF.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-D-tqfMW2.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-CzugWljc.system.js.map → p-DYzIpql-.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-BOIq74fd.system.js.map → p-Db51eGCN.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-6cRdX3ws.system.js.map → p-DbIrKAuV.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-CD1Gqdjg.system.js.map → p-Dm8o0wRd.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-CPejf19w.system.js.map → p-U8PkMVAC.system.js.map} +1 -1
- package/dist/verdocs-web-sdk/p-aadc0955.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/{p-9fcc54f8.system.entry.js.map → p-aadc0955.system.entry.js.map} +1 -1
- package/dist/verdocs-web-sdk/{p-eee0e96c.entry.js → p-b6b216b2.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-a8582158.entry.js → p-c0a10c67.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-aa1f6673.entry.js → p-e4e3b8ce.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ipStHMZx.system.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-adopt-signature-dialog.verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.esm.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-button.verdocs-help-icon.verdocs-text-input.entry.esm.js.map +1 -1
- package/dist/verdocs-web-sdk/verdocs-dialog.entry.esm.js.map +1 -1
- package/dist/verdocs-web-sdk/verdocs-sign.entry.esm.js.map +1 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/package.json +4 -4
- package/dist/cjs/verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.cjs.js.map +0 -1
- package/dist/components/p-BLnFOrAj.js +0 -66
- package/dist/components/p-BLnFOrAj.js.map +0 -1
- package/dist/components/p-DaISePSz.js.map +0 -1
- package/dist/custom-elements.json +0 -2332
- package/dist/esm/verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +0 -1
- package/dist/esm-es5/verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.js.map +0 -1
- package/dist/esm-es5/verdocs-delegate-dialog_5.entry.js +0 -2
- package/dist/esm-es5/verdocs-delegate-dialog_5.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-0c77bf48.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-0c77bf48.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-11efcb36.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-11efcb36.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-2xwvEc_F.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-49122faa.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-49122faa.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-4bd8b685.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-79dba586.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-7ab4a24b.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-7ab4a24b.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-9fcc54f8.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-CTxgqZQn.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-D_YsBkfv.system.js.map +0 -1
- package/dist/verdocs-web-sdk/verdocs-delegate-dialog.verdocs-disclosure-dialog.verdocs-kba-dialog.verdocs-otp-dialog.verdocs-view.entry.esm.js.map +0 -1
- /package/dist/verdocs-web-sdk/{p-314eebba.system.entry.js.map → p-00a4e7bb.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-0c0bc455.system.entry.js.map → p-04d12736.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-1deb700a.entry.js.map → p-08cc95f2.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-a59be807.system.entry.js.map → p-119a435b.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-f40ab4f5.entry.js.map → p-1a24cb02.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-57a4694c.system.entry.js.map → p-1b6e12fd.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-228e230f.entry.js.map → p-2b3b18d9.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-4bd8b685.system.entry.js.map → p-32fbbfa8.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-e4f0949d.system.entry.js.map → p-35bff3e8.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-06063fe6.entry.js.map → p-40da805a.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-b976781d.system.entry.js.map → p-4c34cce1.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-c061d0f7.system.entry.js.map → p-5b6a5423.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-63ab6794.entry.js.map → p-5caf5e89.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-ce3e9ace.entry.js.map → p-63a1cdc4.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-59190e63.system.entry.js.map → p-76d415d8.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-ea69720d.entry.js.map → p-8198f626.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-ffb4ee7b.system.entry.js.map → p-89253f22.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-6ac24714.entry.js.map → p-96c615c4.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-f51c7617.system.entry.js.map → p-9c6794e2.system.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-eee0e96c.entry.js.map → p-b6b216b2.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-a8582158.entry.js.map → p-c0a10c67.entry.js.map} +0 -0
- /package/dist/verdocs-web-sdk/{p-aa1f6673.entry.js.map → p-e4e3b8ce.entry.js.map} +0 -0
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* Display a dialog that allows the user to specify a signature image, either by using a signature-font-generated image
|
|
4
|
+
* based on their full name, or by hand-drawing their signature with a mouse or tablet.
|
|
5
|
+
*/
|
|
6
|
+
export class VerdocsAdoptSignatureDialog {
|
|
7
|
+
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* Initial signature text
|
|
10
|
+
*/
|
|
11
|
+
this.name = '';
|
|
12
|
+
this.fontLoaded = false;
|
|
13
|
+
this.enteredName = '';
|
|
14
|
+
this.enteredInitials = '';
|
|
15
|
+
this.mode = 'type';
|
|
16
|
+
this.isDrawing = false;
|
|
17
|
+
this.hasDrawnSignature = false;
|
|
18
|
+
this.currentSigStroke = [];
|
|
19
|
+
this.allSigStrokes = [];
|
|
20
|
+
this.lastSigPoint = null;
|
|
21
|
+
this.currentInitialsStroke = [];
|
|
22
|
+
this.allInitialsStrokes = [];
|
|
23
|
+
this.lastInitialsPoint = null;
|
|
24
|
+
this.handleSigPointerDown = (e) => {
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
if (!this.signatureElement || !this.sigDrawingContext) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.isDrawing = true;
|
|
30
|
+
this.hasDrawnSignature = true;
|
|
31
|
+
const point = this.getSigCanvasCoordinates(e);
|
|
32
|
+
this.currentSigStroke = [point];
|
|
33
|
+
this.lastSigPoint = point;
|
|
34
|
+
// Start a new path
|
|
35
|
+
this.sigDrawingContext.beginPath();
|
|
36
|
+
this.sigDrawingContext.moveTo(point.x, point.y);
|
|
37
|
+
// Capture pointer to ensure we get all events even if pointer leaves canvas
|
|
38
|
+
this.signatureElement.setPointerCapture(e.pointerId);
|
|
39
|
+
};
|
|
40
|
+
this.handleSigPointerMove = (e) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
if (!this.isDrawing || !this.sigDrawingContext || !this.lastSigPoint) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const point = this.getSigCanvasCoordinates(e);
|
|
46
|
+
this.currentSigStroke.push(point);
|
|
47
|
+
// Use quadratic curves for smooth drawing
|
|
48
|
+
// The control point is the last point, and we draw to the midpoint
|
|
49
|
+
const midPoint = {
|
|
50
|
+
x: (this.lastSigPoint.x + point.x) / 2,
|
|
51
|
+
y: (this.lastSigPoint.y + point.y) / 2,
|
|
52
|
+
};
|
|
53
|
+
this.sigDrawingContext.quadraticCurveTo(this.lastSigPoint.x, this.lastSigPoint.y, midPoint.x, midPoint.y);
|
|
54
|
+
this.sigDrawingContext.stroke();
|
|
55
|
+
this.lastSigPoint = point;
|
|
56
|
+
};
|
|
57
|
+
this.handleSigPointerUp = (e) => {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
if (!this.isDrawing || !this.sigDrawingContext) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Complete the stroke
|
|
63
|
+
if (this.lastSigPoint && this.currentSigStroke.length > 0) {
|
|
64
|
+
this.sigDrawingContext.lineTo(this.lastSigPoint.x, this.lastSigPoint.y);
|
|
65
|
+
this.sigDrawingContext.stroke();
|
|
66
|
+
}
|
|
67
|
+
// Save the completed stroke
|
|
68
|
+
if (this.currentSigStroke.length > 0) {
|
|
69
|
+
this.allSigStrokes.push([...this.currentSigStroke]);
|
|
70
|
+
}
|
|
71
|
+
this.isDrawing = false;
|
|
72
|
+
this.currentSigStroke = [];
|
|
73
|
+
this.lastSigPoint = null;
|
|
74
|
+
// Release pointer capture
|
|
75
|
+
if (this.signatureElement) {
|
|
76
|
+
this.signatureElement.releasePointerCapture(e.pointerId);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
this.handleSigPointerCancel = (e) => {
|
|
80
|
+
// Handle cases where drawing is interrupted (e.g., phone call, notification)
|
|
81
|
+
this.isDrawing = false;
|
|
82
|
+
this.currentSigStroke = [];
|
|
83
|
+
this.lastSigPoint = null;
|
|
84
|
+
if (this.signatureElement) {
|
|
85
|
+
this.signatureElement.releasePointerCapture(e.pointerId);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
this.handleInitialsPointerDown = (e) => {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
if (!this.initialsElement || !this.initialsDrawingContext) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.isDrawing = true;
|
|
94
|
+
this.hasDrawnSignature = true;
|
|
95
|
+
const point = this.getInitialsCanvasCoordinates(e);
|
|
96
|
+
this.currentInitialsStroke = [point];
|
|
97
|
+
this.lastInitialsPoint = point;
|
|
98
|
+
// Start a new path
|
|
99
|
+
this.initialsDrawingContext.beginPath();
|
|
100
|
+
this.initialsDrawingContext.moveTo(point.x, point.y);
|
|
101
|
+
// Capture pointer to ensure we get all events even if pointer leaves canvas
|
|
102
|
+
this.initialsElement.setPointerCapture(e.pointerId);
|
|
103
|
+
};
|
|
104
|
+
this.handleInitialsPointerMove = (e) => {
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
if (!this.isDrawing || !this.initialsDrawingContext || !this.lastInitialsPoint) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const point = this.getInitialsCanvasCoordinates(e);
|
|
110
|
+
this.currentInitialsStroke.push(point);
|
|
111
|
+
// Use quadratic curves for smooth drawing
|
|
112
|
+
// The control point is the last point, and we draw to the midpoint
|
|
113
|
+
const midPoint = {
|
|
114
|
+
x: (this.lastInitialsPoint.x + point.x) / 2,
|
|
115
|
+
y: (this.lastInitialsPoint.y + point.y) / 2,
|
|
116
|
+
};
|
|
117
|
+
this.initialsDrawingContext.quadraticCurveTo(this.lastInitialsPoint.x, this.lastInitialsPoint.y, midPoint.x, midPoint.y);
|
|
118
|
+
this.initialsDrawingContext.stroke();
|
|
119
|
+
this.lastInitialsPoint = point;
|
|
120
|
+
};
|
|
121
|
+
this.handleInitialsPointerUp = (e) => {
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
if (!this.isDrawing || !this.initialsDrawingContext) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// Complete the stroke
|
|
127
|
+
if (this.lastInitialsPoint && this.currentInitialsStroke.length > 0) {
|
|
128
|
+
this.initialsDrawingContext.lineTo(this.lastInitialsPoint.x, this.lastInitialsPoint.y);
|
|
129
|
+
this.initialsDrawingContext.stroke();
|
|
130
|
+
}
|
|
131
|
+
// Save the completed stroke
|
|
132
|
+
if (this.currentInitialsStroke.length > 0) {
|
|
133
|
+
this.allInitialsStrokes.push([...this.currentInitialsStroke]);
|
|
134
|
+
}
|
|
135
|
+
this.isDrawing = false;
|
|
136
|
+
this.currentInitialsStroke = [];
|
|
137
|
+
this.lastInitialsPoint = null;
|
|
138
|
+
// Release pointer capture
|
|
139
|
+
if (this.initialsElement) {
|
|
140
|
+
this.initialsElement.releasePointerCapture(e.pointerId);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
this.handleInitialsPointerCancel = (e) => {
|
|
144
|
+
// Handle cases where drawing is interrupted (e.g., phone call, notification)
|
|
145
|
+
this.isDrawing = false;
|
|
146
|
+
this.currentInitialsStroke = [];
|
|
147
|
+
this.lastInitialsPoint = null;
|
|
148
|
+
if (this.initialsElement) {
|
|
149
|
+
this.initialsElement.releasePointerCapture(e.pointerId);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
componentWillLoad() {
|
|
154
|
+
this.enteredName = this.name;
|
|
155
|
+
this.enteredInitials = this.name
|
|
156
|
+
.split(' ')
|
|
157
|
+
.map(word => word.charAt(0).toUpperCase())
|
|
158
|
+
.join('');
|
|
159
|
+
const ds = new FontFace('Dancing Script', 'url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup6hNX6plRP.woff)');
|
|
160
|
+
ds.load().then(font => {
|
|
161
|
+
document.fonts.add(font);
|
|
162
|
+
this.fontLoaded = true;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
componentDidLoad() {
|
|
166
|
+
this.drawSignatureText();
|
|
167
|
+
this.drawInitialsText();
|
|
168
|
+
this.setupSignatureCanvas();
|
|
169
|
+
this.setupInitialsCanvas();
|
|
170
|
+
}
|
|
171
|
+
componentDidUpdate() {
|
|
172
|
+
this.drawSignatureText();
|
|
173
|
+
this.drawInitialsText();
|
|
174
|
+
this.setupSignatureCanvas();
|
|
175
|
+
this.setupInitialsCanvas();
|
|
176
|
+
// Redraw drawn signature when in draw mode
|
|
177
|
+
if (this.mode === 'draw' && this.allSigStrokes.length > 0) {
|
|
178
|
+
this.redrawDrawnSignature();
|
|
179
|
+
}
|
|
180
|
+
if (this.mode === 'draw' && this.allInitialsStrokes.length > 0) {
|
|
181
|
+
this.redrawDrawnInitials();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
drawSignatureText() {
|
|
185
|
+
if (!this.signatureElement || this.mode !== 'type') {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const sigCanvasWidth = this.signatureElement.width;
|
|
189
|
+
const sigCanvasHeight = this.signatureElement.height;
|
|
190
|
+
const sigContext = this.signatureElement.getContext('2d');
|
|
191
|
+
sigContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);
|
|
192
|
+
let fontSize = 100;
|
|
193
|
+
let metrics = sigContext.measureText(this.enteredName);
|
|
194
|
+
do {
|
|
195
|
+
fontSize -= 2;
|
|
196
|
+
sigContext.font = `${fontSize}px Dancing Script`;
|
|
197
|
+
metrics = sigContext.measureText(this.enteredName);
|
|
198
|
+
} while (metrics.width > sigCanvasWidth - 32 && metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent > sigCanvasHeight - 24);
|
|
199
|
+
sigContext.textAlign = 'center';
|
|
200
|
+
sigContext.textBaseline = 'middle';
|
|
201
|
+
sigContext.font = `${fontSize}px Dancing Script`;
|
|
202
|
+
sigContext.fillText(this.enteredName, this.signatureElement.width / 2, this.signatureElement.height / 2);
|
|
203
|
+
}
|
|
204
|
+
drawInitialsText() {
|
|
205
|
+
if (!this.initialsElement || this.mode !== 'type') {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const initialsCanvasWidth = this.initialsElement.width;
|
|
209
|
+
const initialsCanvasHeight = this.initialsElement.height;
|
|
210
|
+
const context = this.initialsElement.getContext('2d');
|
|
211
|
+
context.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);
|
|
212
|
+
let fontSize = 100;
|
|
213
|
+
let metrics = context.measureText(this.enteredInitials);
|
|
214
|
+
do {
|
|
215
|
+
fontSize -= 2;
|
|
216
|
+
context.font = `${fontSize}px Dancing Script`;
|
|
217
|
+
metrics = context.measureText(this.enteredInitials);
|
|
218
|
+
} while (metrics.width > initialsCanvasWidth - 32 && metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent > initialsCanvasHeight - 24);
|
|
219
|
+
context.textAlign = 'center';
|
|
220
|
+
context.textBaseline = 'middle';
|
|
221
|
+
context.font = `${fontSize}px Dancing Script`;
|
|
222
|
+
context.fillText(this.enteredInitials, this.initialsElement.width / 2, this.initialsElement.height / 2);
|
|
223
|
+
}
|
|
224
|
+
redrawDrawnSignature() {
|
|
225
|
+
if (!this.signatureElement || !this.sigDrawingContext || this.allSigStrokes.length === 0) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
// Clear the canvas first
|
|
229
|
+
this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);
|
|
230
|
+
// Redraw all strokes
|
|
231
|
+
for (const stroke of this.allSigStrokes) {
|
|
232
|
+
if (stroke.length === 0) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
// Start the path at the first point
|
|
236
|
+
this.sigDrawingContext.beginPath();
|
|
237
|
+
this.sigDrawingContext.moveTo(stroke[0].x, stroke[0].y);
|
|
238
|
+
// Draw smooth curves through all points in the stroke
|
|
239
|
+
for (let i = 1; i < stroke.length; i++) {
|
|
240
|
+
const currentPoint = stroke[i];
|
|
241
|
+
const previousPoint = stroke[i - 1];
|
|
242
|
+
// Use quadratic curves for smooth lines
|
|
243
|
+
const midPoint = {
|
|
244
|
+
x: (previousPoint.x + currentPoint.x) / 2,
|
|
245
|
+
y: (previousPoint.y + currentPoint.y) / 2,
|
|
246
|
+
};
|
|
247
|
+
this.sigDrawingContext.quadraticCurveTo(previousPoint.x, previousPoint.y, midPoint.x, midPoint.y);
|
|
248
|
+
}
|
|
249
|
+
// Draw to the last point
|
|
250
|
+
if (stroke.length > 1) {
|
|
251
|
+
const lastPoint = stroke[stroke.length - 1];
|
|
252
|
+
this.sigDrawingContext.lineTo(lastPoint.x, lastPoint.y);
|
|
253
|
+
}
|
|
254
|
+
this.sigDrawingContext.stroke();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
redrawDrawnInitials() {
|
|
258
|
+
if (!this.initialsElement || !this.initialsDrawingContext || this.allInitialsStrokes.length === 0) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
// Clear the canvas first
|
|
262
|
+
this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);
|
|
263
|
+
// Redraw all strokes
|
|
264
|
+
for (const stroke of this.allInitialsStrokes) {
|
|
265
|
+
if (stroke.length === 0) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
// Start the path at the first point
|
|
269
|
+
this.initialsDrawingContext.beginPath();
|
|
270
|
+
this.initialsDrawingContext.moveTo(stroke[0].x, stroke[0].y);
|
|
271
|
+
// Draw smooth curves through all points in the stroke
|
|
272
|
+
for (let i = 1; i < stroke.length; i++) {
|
|
273
|
+
const currentPoint = stroke[i];
|
|
274
|
+
const previousPoint = stroke[i - 1];
|
|
275
|
+
// Use quadratic curves for smooth lines
|
|
276
|
+
const midPoint = {
|
|
277
|
+
x: (previousPoint.x + currentPoint.x) / 2,
|
|
278
|
+
y: (previousPoint.y + currentPoint.y) / 2,
|
|
279
|
+
};
|
|
280
|
+
this.initialsDrawingContext.quadraticCurveTo(previousPoint.x, previousPoint.y, midPoint.x, midPoint.y);
|
|
281
|
+
}
|
|
282
|
+
// Draw to the last point
|
|
283
|
+
if (stroke.length > 1) {
|
|
284
|
+
const lastPoint = stroke[stroke.length - 1];
|
|
285
|
+
this.initialsDrawingContext.lineTo(lastPoint.x, lastPoint.y);
|
|
286
|
+
}
|
|
287
|
+
this.initialsDrawingContext.stroke();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
handleNameChange(e) {
|
|
291
|
+
this.enteredName = e.target.value;
|
|
292
|
+
this.enteredInitials = e.target.value
|
|
293
|
+
.split(' ')
|
|
294
|
+
.map(word => word.charAt(0).toUpperCase())
|
|
295
|
+
.join('');
|
|
296
|
+
}
|
|
297
|
+
handleCancel(e) {
|
|
298
|
+
e.stopPropagation();
|
|
299
|
+
e.preventDefault();
|
|
300
|
+
this.exit.emit();
|
|
301
|
+
}
|
|
302
|
+
handleAdopt(e) {
|
|
303
|
+
e.stopPropagation();
|
|
304
|
+
e.preventDefault();
|
|
305
|
+
const signature = this.signatureElement.toDataURL('image/png');
|
|
306
|
+
const initials = this.initialsElement.toDataURL('image/png');
|
|
307
|
+
this.next.emit({ signature, initials });
|
|
308
|
+
}
|
|
309
|
+
isAdoptButtonDisabled() {
|
|
310
|
+
switch (this.mode) {
|
|
311
|
+
case 'type':
|
|
312
|
+
// Disable if no name has been entered
|
|
313
|
+
return !this.enteredName || this.enteredName.trim().length === 0;
|
|
314
|
+
case 'draw':
|
|
315
|
+
// Disable if nothing has been drawn
|
|
316
|
+
return !this.hasDrawnSignature || this.allSigStrokes.length === 0 || this.allInitialsStrokes.length === 0;
|
|
317
|
+
default:
|
|
318
|
+
return true;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
setupSignatureCanvas() {
|
|
322
|
+
if (!this.signatureElement) {
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
// Set up drawing context when in draw mode
|
|
326
|
+
if (this.mode === 'draw') {
|
|
327
|
+
// Always get fresh context from the current canvas element
|
|
328
|
+
const sigContext = this.signatureElement.getContext('2d');
|
|
329
|
+
// Only initialize if we don't have a context or it's different
|
|
330
|
+
if (sigContext && sigContext !== this.sigDrawingContext) {
|
|
331
|
+
this.sigDrawingContext = sigContext;
|
|
332
|
+
// Configure drawing style for smooth signatures
|
|
333
|
+
this.sigDrawingContext.strokeStyle = '#000000';
|
|
334
|
+
this.sigDrawingContext.lineWidth = 2;
|
|
335
|
+
this.sigDrawingContext.lineCap = 'round';
|
|
336
|
+
this.sigDrawingContext.lineJoin = 'round';
|
|
337
|
+
// Clear canvas only if there are no existing strokes
|
|
338
|
+
if (this.allSigStrokes.length === 0) {
|
|
339
|
+
this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Reset drawing context when switching away from draw mode
|
|
344
|
+
// NOTE: We don't clear allStrokes here so drawing persists when returning to draw mode
|
|
345
|
+
if (this.mode !== 'draw' && this.sigDrawingContext) {
|
|
346
|
+
this.sigDrawingContext = null;
|
|
347
|
+
this.currentSigStroke = [];
|
|
348
|
+
this.lastSigPoint = null;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
setupInitialsCanvas() {
|
|
352
|
+
if (!this.initialsElement) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
// Set up drawing context when in draw mode
|
|
356
|
+
if (this.mode === 'draw') {
|
|
357
|
+
// Always get fresh context from the current canvas element
|
|
358
|
+
const initialsContext = this.initialsElement.getContext('2d');
|
|
359
|
+
// Only initialize if we don't have a context or it's different
|
|
360
|
+
if (initialsContext && initialsContext !== this.initialsDrawingContext) {
|
|
361
|
+
this.initialsDrawingContext = initialsContext;
|
|
362
|
+
// Configure drawing style for smooth signatures
|
|
363
|
+
this.initialsDrawingContext.strokeStyle = '#000000';
|
|
364
|
+
this.initialsDrawingContext.lineWidth = 2;
|
|
365
|
+
this.initialsDrawingContext.lineCap = 'round';
|
|
366
|
+
this.initialsDrawingContext.lineJoin = 'round';
|
|
367
|
+
// Clear canvas only if there are no existing strokes
|
|
368
|
+
if (this.allInitialsStrokes.length === 0) {
|
|
369
|
+
this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// Reset drawing context when switching away from draw mode
|
|
374
|
+
// NOTE: We don't clear allStrokes here so drawing persists when returning to draw mode
|
|
375
|
+
if (this.mode !== 'draw' && this.initialsDrawingContext) {
|
|
376
|
+
this.initialsDrawingContext = null;
|
|
377
|
+
this.currentInitialsStroke = [];
|
|
378
|
+
this.lastInitialsPoint = null;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
clearSignatureCanvas() {
|
|
382
|
+
if (!this.signatureElement || !this.sigDrawingContext) {
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
this.sigDrawingContext.clearRect(0, 0, this.signatureElement.width, this.signatureElement.height);
|
|
386
|
+
this.currentSigStroke = [];
|
|
387
|
+
this.allSigStrokes = [];
|
|
388
|
+
this.lastSigPoint = null;
|
|
389
|
+
this.hasDrawnSignature = false;
|
|
390
|
+
}
|
|
391
|
+
clearInitialsCanvas() {
|
|
392
|
+
if (!this.initialsElement || !this.initialsDrawingContext) {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
this.initialsDrawingContext.clearRect(0, 0, this.initialsElement.width, this.initialsElement.height);
|
|
396
|
+
this.currentInitialsStroke = [];
|
|
397
|
+
this.allInitialsStrokes = [];
|
|
398
|
+
this.lastInitialsPoint = null;
|
|
399
|
+
this.hasDrawnSignature = false;
|
|
400
|
+
}
|
|
401
|
+
handleClearDrawing(e) {
|
|
402
|
+
e.stopPropagation();
|
|
403
|
+
e.preventDefault();
|
|
404
|
+
this.clearSignatureCanvas();
|
|
405
|
+
this.clearInitialsCanvas();
|
|
406
|
+
}
|
|
407
|
+
getSigCanvasCoordinates(e) {
|
|
408
|
+
if (!this.signatureElement) {
|
|
409
|
+
return { x: 0, y: 0 };
|
|
410
|
+
}
|
|
411
|
+
const rect = this.signatureElement.getBoundingClientRect();
|
|
412
|
+
// Calculate the scale factor between canvas size and display size
|
|
413
|
+
const scaleX = this.signatureElement.width / rect.width;
|
|
414
|
+
const scaleY = this.signatureElement.height / rect.height;
|
|
415
|
+
return {
|
|
416
|
+
x: (e.clientX - rect.left) * scaleX,
|
|
417
|
+
y: (e.clientY - rect.top) * scaleY,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
getInitialsCanvasCoordinates(e) {
|
|
421
|
+
if (!this.initialsElement) {
|
|
422
|
+
return { x: 0, y: 0 };
|
|
423
|
+
}
|
|
424
|
+
const rect = this.initialsElement.getBoundingClientRect();
|
|
425
|
+
// Calculate the scale factor between canvas size and display size
|
|
426
|
+
const scaleX = this.initialsElement.width / rect.width;
|
|
427
|
+
const scaleY = this.initialsElement.height / rect.height;
|
|
428
|
+
return {
|
|
429
|
+
x: (e.clientX - rect.left) * scaleX,
|
|
430
|
+
y: (e.clientY - rect.top) * scaleY,
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
render() {
|
|
434
|
+
return (h("verdocs-dialog", { key: 'e0e6f91846971ced0a1110d70575d0328d1df7f2' }, h("div", { key: 'c43c511d79afa5fcdb8dc0e2f2c1b3c475dbb24c', slot: "heading", class: "heading" }, "Adopt Your Signature"), h("div", { key: '4d41a510e27c7ecf47015c5c78f12e3ace24dfe0', slot: "content", class: "content" }, h("div", { key: 'cbb0bb88d87d07a84eeb0f3c5889aa9191d1db46', style: { fontWeight: '300', color: '#242424', fontSize: '13px' } }, "Confirm your name, initials, and signature."), h("div", { key: '153019386dbce3681ca90a5878e8062d5ebd629f', class: { type: true, active: this.mode === 'type' } }, h("verdocs-text-input", { key: '21997a21554a74bf5f6664e18962e151b696977e', label: "Full Name", value: this.enteredName, onInput: e => this.handleNameChange(e), onClick: e => e.stopPropagation() })), h("div", { key: '74f5a84db5ae90e063f85a80e86d4b995e516a0c', style: { fontWeight: '400', color: '#242424', fontSize: '13px' } }, "Select a signature style"), h("div", { key: '05a83923186b180cc32a7060ddcf30e8f78aaeae', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: '2475dd5c213b45339996799282a1b650cd9f4416', checked: this.mode === 'type', value: "type", name: "mode", onClick: () => (this.mode = 'type') }), h("label", { key: '84426bebb6184f146a82ca3df75afb377d57dc1e' }, "Typed with a keyboard")), h("div", { key: '299feecf4b50ffaeb6bbac8349adc90872acb3d0', style: { display: 'flex', flexDirection: 'row', gap: '10px', marginBottom: '6px', alignItems: 'center', fontSize: '13px' } }, h("verdocs-radio-button", { key: '7fc2262551d100b509065e3e61cb2606c3ee3ce4', checked: this.mode === 'draw', value: "draw", name: "mode", onClick: () => (this.mode = 'draw') }), h("label", { key: '6f6c89fedb6fdbef092dd0300945bc0ba723ecc9' }, "Drawn with touch, mouse, or stylus")), h("div", { key: 'd46dfe69a754bb9db55798af1918426ee1ed41d0', style: { fontSize: '13px', fontWeight: '400', marginTop: '8px' } }, "Signature Preview"), h("canvas", { key: 'b32ad9debae275905b188f50c747fb9100dc6915', ref: el => (this.signatureElement = el), width: "300", height: "79", onPointerDown: this.handleSigPointerDown, onPointerMove: this.handleSigPointerMove, onPointerUp: this.handleSigPointerUp, onPointerCancel: this.handleSigPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } }), h("div", { key: 'f86ac5d3273319bc6dbd573e8fe203819c4b2f47', style: { fontSize: '13px', fontWeight: '400', marginTop: '8px' } }, "Initials Preview"), h("canvas", { key: 'e989b879e932fe17ef4263b887841fb57bbc2307', ref: el => (this.initialsElement = el), width: "300", height: "79", onPointerDown: this.handleInitialsPointerDown, onPointerMove: this.handleInitialsPointerMove, onPointerUp: this.handleInitialsPointerUp, onPointerCancel: this.handleInitialsPointerCancel, style: { touchAction: 'none', cursor: 'crosshair' } }), h("div", { key: 'a5245a28f5d9c2b75e8a6033ae0f43935af3d8ab', 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: 'ca0a22af2bcac343af88ccc2a1bac7785ee26213', class: "footer", slot: "footer" }, h("div", { key: '4aa605c10723fff6cc5589f4a602d89e9ecd4ec6', class: "buttons" }, h("button", { key: '18fff440c52c241cb6c17cb095ee7fdb805172a0', class: "cancel", onClick: e => this.handleCancel(e) }, "Cancel"), h("button", { key: '1375add10925435c0ad870e3eea330edc202fb24', class: "proceed", onClick: e => this.handleAdopt(e), disabled: this.isAdoptButtonDisabled() }, "Adopt & Sign")))));
|
|
435
|
+
}
|
|
436
|
+
static get is() { return "verdocs-adopt-signature-dialog"; }
|
|
437
|
+
static get originalStyleUrls() {
|
|
438
|
+
return {
|
|
439
|
+
"$": ["verdocs-adopt-signature-dialog.scss"]
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
static get styleUrls() {
|
|
443
|
+
return {
|
|
444
|
+
"$": ["verdocs-adopt-signature-dialog.css"]
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
static get properties() {
|
|
448
|
+
return {
|
|
449
|
+
"name": {
|
|
450
|
+
"type": "string",
|
|
451
|
+
"mutable": false,
|
|
452
|
+
"complexType": {
|
|
453
|
+
"original": "string",
|
|
454
|
+
"resolved": "string",
|
|
455
|
+
"references": {}
|
|
456
|
+
},
|
|
457
|
+
"required": false,
|
|
458
|
+
"optional": false,
|
|
459
|
+
"docs": {
|
|
460
|
+
"tags": [],
|
|
461
|
+
"text": "Initial signature text"
|
|
462
|
+
},
|
|
463
|
+
"getter": false,
|
|
464
|
+
"setter": false,
|
|
465
|
+
"reflect": false,
|
|
466
|
+
"attribute": "name",
|
|
467
|
+
"defaultValue": "''"
|
|
468
|
+
}
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
static get states() {
|
|
472
|
+
return {
|
|
473
|
+
"fontLoaded": {},
|
|
474
|
+
"enteredName": {},
|
|
475
|
+
"enteredInitials": {},
|
|
476
|
+
"mode": {},
|
|
477
|
+
"isDrawing": {},
|
|
478
|
+
"hasDrawnSignature": {}
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
static get events() {
|
|
482
|
+
return [{
|
|
483
|
+
"method": "next",
|
|
484
|
+
"name": "next",
|
|
485
|
+
"bubbles": true,
|
|
486
|
+
"cancelable": true,
|
|
487
|
+
"composed": true,
|
|
488
|
+
"docs": {
|
|
489
|
+
"tags": [],
|
|
490
|
+
"text": "Fired when the user completes the dialog and clicks Adopt. The event detail will contain a base64-encoded string\nrepresentation of the signature adopted."
|
|
491
|
+
},
|
|
492
|
+
"complexType": {
|
|
493
|
+
"original": "{signature: string; initials: string}",
|
|
494
|
+
"resolved": "{ signature: string; initials: string; }",
|
|
495
|
+
"references": {}
|
|
496
|
+
}
|
|
497
|
+
}, {
|
|
498
|
+
"method": "exit",
|
|
499
|
+
"name": "exit",
|
|
500
|
+
"bubbles": true,
|
|
501
|
+
"cancelable": true,
|
|
502
|
+
"composed": true,
|
|
503
|
+
"docs": {
|
|
504
|
+
"tags": [],
|
|
505
|
+
"text": "Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name."
|
|
506
|
+
},
|
|
507
|
+
"complexType": {
|
|
508
|
+
"original": "any",
|
|
509
|
+
"resolved": "any",
|
|
510
|
+
"references": {}
|
|
511
|
+
}
|
|
512
|
+
}];
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
//# sourceMappingURL=verdocs-adopt-signature-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdocs-adopt-signature-dialog.js","sourceRoot":"","sources":["../../../../src/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Prop, h, Event, EventEmitter, State} from '@stencil/core';\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 * Fired when the user completes the dialog and clicks Adopt. The event detail will contain a base64-encoded string\n * representation of the signature adopted.\n */\n @Event({composed: true}) next: EventEmitter<{signature: string; initials: string}>;\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\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.name;\n this.enteredInitials = this.name\n .split(' ')\n .map(word => word.charAt(0).toUpperCase())\n .join('');\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.drawSignatureText();\n this.drawInitialsText();\n this.setupSignatureCanvas();\n this.setupInitialsCanvas();\n }\n\n componentDidUpdate() {\n this.drawSignatureText();\n this.drawInitialsText();\n this.setupSignatureCanvas();\n this.setupInitialsCanvas();\n\n // Redraw drawn signature when in draw mode\n if (this.mode === 'draw' && this.allSigStrokes.length > 0) {\n this.redrawDrawnSignature();\n }\n if (this.mode === 'draw' && this.allInitialsStrokes.length > 0) {\n this.redrawDrawnInitials();\n }\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 - 32 && metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent > sigCanvasHeight - 24);\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 - 32 && metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent > initialsCanvasHeight - 24);\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.enteredInitials = e.target.value\n .split(' ')\n .map(word => word.charAt(0).toUpperCase())\n .join('');\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 this.next.emit({signature, initials});\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\n return !this.hasDrawnSignature || this.allSigStrokes.length === 0 || this.allInitialsStrokes.length === 0;\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\n if (this.allSigStrokes.length === 0) {\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\n if (this.allInitialsStrokes.length === 0) {\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.hasDrawnSignature = false;\n }\n\n handleClearDrawing(e: any) {\n e.stopPropagation();\n e.preventDefault();\n this.clearSignatureCanvas();\n 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.hasDrawnSignature = 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>\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 label=\"Full Name\" value={this.enteredName} onInput={e => this.handleNameChange(e)} onClick={e => e.stopPropagation()} />\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.mode = '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.mode = 'draw')} />\n <label>Drawn with touch, mouse, or stylus</label>\n </div>\n\n {/*<div class=\"draw-actions\">*/}\n {/* <button class=\"clear-button\" onClick={e => this.handleClearDrawing(e)} disabled={!this.hasDrawnSignature}>*/}\n {/* Clear*/}\n {/* </button>*/}\n {/*</div>*/}\n\n <div style={{fontSize: '13px', fontWeight: '400', marginTop: '8px'}}>Signature Preview</div>\n <canvas\n ref={el => (this.signatureElement = el as HTMLCanvasElement)}\n width=\"300\"\n height=\"79\"\n onPointerDown={this.handleSigPointerDown}\n onPointerMove={this.handleSigPointerMove}\n onPointerUp={this.handleSigPointerUp}\n onPointerCancel={this.handleSigPointerCancel}\n style={{touchAction: 'none', cursor: 'crosshair'}}\n />\n\n <div style={{fontSize: '13px', fontWeight: '400', marginTop: '8px'}}>Initials Preview</div>\n <canvas\n ref={el => (this.initialsElement = el as HTMLCanvasElement)}\n width=\"300\"\n height=\"79\"\n onPointerDown={this.handleInitialsPointerDown}\n onPointerMove={this.handleInitialsPointerMove}\n onPointerUp={this.handleInitialsPointerUp}\n onPointerCancel={this.handleInitialsPointerCancel}\n style={{touchAction: 'none', cursor: 'crosshair'}}\n />\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"]}
|
package/dist/collection/components/dialogs/verdocs-delegate-dialog/verdocs-delegate-dialog.js
CHANGED
|
@@ -40,7 +40,7 @@ export class VerdocsDelegateDialog {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
render() {
|
|
43
|
-
return (h("verdocs-dialog", { key: '
|
|
43
|
+
return (h("verdocs-dialog", { key: '3328c89a822e9da2717c024cbeb91b8342997975' }, h("div", { key: 'a5aa76bcc513d754d7ffed6367709926cb091d0d', slot: "heading", class: "heading" }, h("div", { key: '72f3af2e0fddef24046b5ee982fef0476f90b999', class: "icon" }, h("svg", { key: '7ec6730440063fb1e688af7d827d2118a4633a38', width: "22", height: "19", viewBox: "0 0 22 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("g", { key: '99f067a358fb9b320f7edc5243037ffb16ccb183', "clip-path": "url(#clip0_34208_4881)" }, h("path", { key: '79d97113c574b10a26b92b098246c9cdff08f5e9', d: "M3.125 0.75C1.88398 0.75 0.875 1.75898 0.875 3V16.5C0.875 17.741 1.88398 18.75 3.125 18.75H12.125C13.366 18.75 14.375 17.741 14.375 16.5V15.8215C14.2801 15.8602 14.1852 15.8918 14.0867 15.9164L11.9738 16.4437C11.8684 16.4684 11.7629 16.4859 11.6574 16.493C11.6258 16.4965 11.5941 16.5 11.5625 16.5H9.3125C9.09805 16.5 8.90469 16.3805 8.80977 16.1906L8.50039 15.5684C8.44062 15.4488 8.32109 15.375 8.19102 15.375C8.06094 15.375 7.93789 15.4488 7.88164 15.5684L7.57227 16.1906C7.47031 16.398 7.24883 16.5211 7.02031 16.5C6.7918 16.4789 6.59492 16.3207 6.53164 16.1027L5.9375 14.1445L5.59297 15.2977C5.37852 16.0113 4.72109 16.5 3.97578 16.5H3.6875C3.37812 16.5 3.125 16.2469 3.125 15.9375C3.125 15.6281 3.37812 15.375 3.6875 15.375H3.97578C4.22539 15.375 4.44336 15.2133 4.51367 14.9742L5.0375 13.234C5.15703 12.8367 5.52266 12.5625 5.9375 12.5625C6.35234 12.5625 6.71797 12.8367 6.8375 13.234L7.24531 14.591C7.50547 14.373 7.83594 14.25 8.1875 14.25C8.74648 14.25 9.25625 14.5664 9.50586 15.0656L9.66055 15.375H9.97344C9.86445 15.0656 9.84336 14.7281 9.92422 14.3977L10.4516 12.2848C10.55 11.8875 10.7539 11.5289 11.0422 11.2406L14.375 7.90781V6.375H9.875C9.25273 6.375 8.75 5.87227 8.75 5.25V0.75H3.125ZM9.875 0.75V5.25H14.375L9.875 0.75ZM20.2039 5.66133C19.6555 5.11289 18.766 5.11289 18.2141 5.66133L17.1805 6.69492L19.6766 9.19102L20.7102 8.15742C21.2586 7.60898 21.2586 6.71953 20.7102 6.16758L20.2039 5.66133ZM11.8402 12.0352C11.6961 12.1793 11.5941 12.3586 11.5449 12.559L11.0176 14.6719C10.9684 14.8652 11.0246 15.0656 11.1652 15.2063C11.3059 15.3469 11.5062 15.4031 11.6996 15.3539L13.8125 14.8266C14.0094 14.7773 14.1922 14.6754 14.3363 14.5312L18.8785 9.98555L16.3824 7.48945L11.8402 12.0352Z", fill: "white" })), h("defs", { key: '94509d6fa3844ec32dbd8b56f4ddf4a11afe4f63' }, h("clipPath", { key: '5f743336778d38082fd115e74dcd9f5ea3cf71d8', id: "clip0_34208_4881" }, h("path", { key: '970770328892624bde9e84575dafd82433e4ccff', d: "M0.875 0.75H21.125V18.75H0.875V0.75Z", fill: "white" }))))), h("div", { key: 'e685e5c8f56fae78158731c506a7fcb0302ddad4', class: "title" }, "Delegate \"", this.envelope.name, "\"")), h("div", { key: '43132cd8f62cac8d11661a93c82539006fcae4b3', slot: "content", class: "content" }, h("div", { key: '4fee7e46e5c610b183d257314af95630f036293e', class: "input names" }, h("label", { key: '1ee5d5a3225823b715ba93bc355d30370568733b', htmlFor: "verdocs-delegate-email" }, "New Recipient:"), h("input", { key: '4c81a854693de1df96883d7f9645a67ffa4808f4', type: "text", id: "verdocs-delegate-first", name: "verdocs-delegate-first", autocomplete: "blocked", placeholder: "First name...", value: this.first_name, onInput: (e) => (this.first_name = e.target.value) }), h("input", { key: 'b54b7b799e83167a40ae7d11425f86cb42e2b079', type: "text", id: "verdocs-delegate-last", name: "verdocs-delegate-last", autocomplete: "blocked", placeholder: "Last name...", value: this.last_name, onInput: (e) => (this.last_name = e.target.value) })), h("div", { key: '624732fa9a0644835db65588796ca624b0782e54', class: "input" }, h("label", { key: 'f43b8cb976c1401d88cf2e0280b18c60b0498f5e', htmlFor: "verdocs-delegate-email" }, "Email Address:"), h("input", { key: 'fa58d7704b3fc564c254647b01d45aa776f27c4a', type: "text", id: "verdocs-delegate-email", name: "verdocs-delegate-email", autocomplete: "blocked", placeholder: "New recipient email address...", value: this.email, onInput: (e) => (this.email = e.target.value) })), h("div", { key: 'e9671d105f1cc7e5ec1a883ccf3a88ca292479a4', class: "input" }, h("label", { key: '58970725efa4b5343ad9e6cd69c2e31f154334d9', htmlFor: "verdocs-delegate-phone" }, "Phone:"), h("input", { key: '45487a1386f79d326ae5498c2a03c63d3423e3f6', type: "text", id: "verdocs-delegate-phone", name: "verdocs-delegate-phone", autocomplete: "blocked", placeholder: "Optional phone number...", value: this.phone, onInput: (e) => (this.phone = e.target.value) })), h("div", { key: '15d95458921e3044e553d6df4fdf79863fa97a57', class: "input" }, h("label", { key: 'b24618ddfabb8792201d44002dbd27d18086bb7b', htmlFor: "verdocs-delegate-email" }, "Message:"), h("textarea", { key: '6f695d63955392c8e7af36c43b359b4ac26c6df8', id: "verdocs-delegate-message", name: "verdocs-delegate-message", rows: 3, autocomplete: "blocked", placeholder: "Optional message to include in the invitation...", onInput: (e) => (this.message = e.target.value) }, this.message))), h("div", { key: '0de8db55b0c724b4827c400cb710f36c7233c635', class: "footer", slot: "footer" }, h("div", { key: '8989a50706302829188145b7e0ce7bcfbb39b5ce', class: "buttons" }, h("button", { key: '3501cc234ab27a243bdef1ff1fece6c70da7111e', class: "cancel", onClick: () => this.handleCancel() }, "Cancel"), h("button", { key: '1de686e768e9720050db90d10e7330458ffefbf6', class: "proceed", onClick: () => this.handleDelegate(), disabled: !this.first_name || !this.last_name || !this.email }, "Proceed")))));
|
|
44
44
|
}
|
|
45
45
|
static get is() { return "verdocs-delegate-dialog"; }
|
|
46
46
|
static get originalStyleUrls() {
|