@verdocs/web-sdk 1.14.8 → 1.14.10
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/EnvelopeStore-a4231cf7.js +83 -0
- package/dist/cjs/{Recipients-2b21fdea.js → Recipients-f3d6cf10.js} +9 -0
- package/dist/cjs/{index-6528b430.js → index-7c19ba1d.js} +63 -219
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{utils-f4efefe3.js → utils-618c13f1.js} +1 -1
- package/dist/cjs/verdocs-auth.cjs.entry.js +5 -10
- package/dist/cjs/verdocs-checkbox_4.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +15 -91
- package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +101 -45
- package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-date.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js +58 -6
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js +28 -21
- package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-organization-card.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-preview.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-send.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-sign.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-status-indicator.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-template-reminders.cjs.entry.js +47 -17
- package/dist/cjs/verdocs-view.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.css +3 -4
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +6 -12
- package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.css +8 -0
- package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +101 -48
- package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.stories.js +1 -1
- package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.css +2 -3
- package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.css +13 -8
- package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +111 -2
- package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +62 -19
- package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.stories.js +1 -1
- package/dist/collection/components/templates/verdocs-template-reminders/verdocs-template-reminders.js +37 -17
- package/dist/collection/components/templates/verdocs-template-reminders/verdocs-template-reminders.stories.js +1 -1
- package/dist/components/Envelopes.js +1 -1
- package/dist/{esm/Recipients-198b2531.js → components/Recipients.js} +9 -1
- package/dist/components/Toast.js +1 -74
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index2.js +63 -219
- package/dist/components/verdocs-auth.js +10 -22
- package/dist/components/verdocs-checkbox2.js +1 -1
- package/dist/components/verdocs-envelope-document-page2.js +1 -1
- package/dist/components/verdocs-envelope-recipient-summary2.js +4 -3
- package/dist/components/verdocs-envelope-sidebar.js +112 -54
- package/dist/components/verdocs-field-textarea.js +59 -3
- package/dist/components/verdocs-field-textbox.js +29 -20
- package/dist/components/verdocs-sign.js +2 -1
- package/dist/components/verdocs-status-indicator.js +1 -1
- package/dist/components/verdocs-template-reminders.js +47 -17
- package/dist/components/verdocs-view2.js +1 -1
- package/dist/custom-elements.json +16 -13
- package/dist/docs.json +96 -129
- package/dist/esm/EnvelopeStore-28f5d8f5.js +81 -0
- package/dist/esm/{Envelopes-c3d471e5.js → Envelopes-105a4a8f.js} +1 -1
- package/dist/esm/Recipients-4ec2138c.js +82 -0
- package/dist/esm/{index-d264c496.js → index-914ed6f7.js} +63 -219
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{utils-9da23ba1.js → utils-60683446.js} +2 -2
- package/dist/esm/verdocs-auth.entry.js +5 -10
- package/dist/esm/verdocs-checkbox_4.entry.js +1 -1
- package/dist/esm/verdocs-dropdown_2.entry.js +3 -3
- package/dist/esm/verdocs-envelope-recipient-summary.entry.js +4 -80
- package/dist/esm/verdocs-envelope-sidebar.entry.js +102 -46
- package/dist/esm/verdocs-field-checkbox.entry.js +3 -3
- package/dist/esm/verdocs-field-date.entry.js +3 -3
- package/dist/esm/verdocs-field-dropdown.entry.js +3 -3
- package/dist/esm/verdocs-field-initial.entry.js +3 -3
- package/dist/esm/verdocs-field-payment.entry.js +3 -3
- package/dist/esm/verdocs-field-radio-button.entry.js +3 -3
- package/dist/esm/verdocs-field-signature.entry.js +3 -3
- package/dist/esm/verdocs-field-textarea.entry.js +60 -8
- package/dist/esm/verdocs-field-textbox.entry.js +29 -22
- package/dist/esm/verdocs-field-timestamp.entry.js +3 -3
- package/dist/esm/verdocs-organization-card.entry.js +1 -1
- package/dist/esm/verdocs-preview.entry.js +3 -3
- package/dist/esm/verdocs-send.entry.js +3 -3
- package/dist/esm/verdocs-sign.entry.js +4 -4
- package/dist/esm/verdocs-status-indicator.entry.js +1 -1
- package/dist/esm/verdocs-template-document-page_2.entry.js +3 -3
- package/dist/esm/verdocs-template-fields_4.entry.js +3 -3
- package/dist/esm/verdocs-template-reminders.entry.js +47 -17
- package/dist/esm/verdocs-view.entry.js +3 -3
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/EnvelopeStore-28f5d8f5.js +1 -0
- package/dist/esm-es5/{Envelopes-c3d471e5.js → Envelopes-105a4a8f.js} +1 -1
- package/dist/esm-es5/Recipients-4ec2138c.js +1 -0
- package/dist/esm-es5/index-914ed6f7.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{utils-9da23ba1.js → utils-60683446.js} +1 -1
- package/dist/esm-es5/verdocs-auth.entry.js +1 -1
- package/dist/esm-es5/verdocs-checkbox_4.entry.js +1 -1
- package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
- package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
- package/dist/esm-es5/verdocs-organization-card.entry.js +1 -1
- package/dist/esm-es5/verdocs-preview.entry.js +1 -1
- package/dist/esm-es5/verdocs-send.entry.js +1 -1
- package/dist/esm-es5/verdocs-sign.entry.js +1 -1
- package/dist/esm-es5/verdocs-status-indicator.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
- package/dist/esm-es5/verdocs-view.entry.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/types/components/embeds/verdocs-auth/verdocs-auth.d.ts +0 -2
- package/dist/types/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +7 -5
- package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +23 -3
- package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +10 -2
- package/dist/types/components.d.ts +40 -45
- package/dist/verdocs-web-sdk/{p-4a39c1a4.system.entry.js → p-02a70b8e.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-eb3beb29.system.entry.js → p-095a3eba.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-592e9e12.entry.js → p-0aee25b9.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-0e381c36.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-13959c36.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-18ee4fd5.js +1 -0
- package/dist/verdocs-web-sdk/{p-886461cd.system.entry.js → p-1a0cccea.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-1cf38cea.system.js +1 -1
- package/dist/verdocs-web-sdk/{p-2cf70fcd.entry.js → p-1f561c42.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-be729608.system.entry.js → p-2a5b951c.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-afe91637.system.entry.js → p-2c0d7838.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-74dd0569.entry.js → p-33640d84.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-7b215f9d.system.entry.js → p-380efff2.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-3cd894ff.js +1 -0
- package/dist/verdocs-web-sdk/{p-aebd2d02.system.entry.js → p-3fe24d0c.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-44ec0583.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-2631bdd9.entry.js → p-49b3ac56.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-4a3b037b.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-3601cc11.entry.js → p-59243dec.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-5cff98bd.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-1402ff01.system.entry.js → p-6a44fb56.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-cfec9914.entry.js → p-717c9fe1.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-e7da2f5c.entry.js → p-73ea1ea3.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-b898c99b.system.entry.js → p-7850f739.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-7a23c2c8.system.js +1 -0
- package/dist/verdocs-web-sdk/{p-7baf2c02.system.entry.js → p-813c2fae.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-8aba7c0a.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-8e181e8c.entry.js → p-8b85f402.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-00f8400e.system.entry.js → p-8c5ffa7b.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-38ac3807.entry.js → p-8e386265.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-973ebb54.system.js → p-8fd812f4.system.js} +1 -1
- package/dist/verdocs-web-sdk/p-94365585.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-b8d94f4c.system.entry.js → p-9c87f6f8.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-9d7fa51d.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-a3c06b62.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-10fe89ab.entry.js → p-a4cbba4a.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-ee53ee29.system.entry.js → p-afa1f20b.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-b18c293a.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/p-b772cdb5.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-b00a49aa.entry.js → p-be6d3848.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-c220af42.js +1 -0
- package/dist/verdocs-web-sdk/{p-c0b1ace5.entry.js → p-c3ef7b4f.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-10444734.system.entry.js → p-c59f1a0a.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-c841a530.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-9b73909f.js → p-cf790f4f.js} +1 -1
- package/dist/verdocs-web-sdk/{p-7dda316b.entry.js → p-d4c8f358.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-dc9c4361.system.js +1 -0
- package/dist/verdocs-web-sdk/{p-64897a63.entry.js → p-decf6a56.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-e2635788.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-f1940c85.system.entry.js → p-e727af9c.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-d146b48e.entry.js → p-e72c075e.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-eaf0b189.system.js +1 -0
- package/dist/verdocs-web-sdk/p-ebca6188.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-ca2ed07e.system.entry.js → p-f0db17e6.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/p-f37f1ebc.system.entry.js +1 -0
- package/dist/verdocs-web-sdk/{p-73155c52.js → p-f9bea98a.js} +1 -1
- package/dist/verdocs-web-sdk/{p-da31f940.system.js → p-fa6b1145.system.js} +1 -1
- package/dist/verdocs-web-sdk/{p-05fc6555.system.entry.js → p-fcfd3193.system.entry.js} +1 -1
- package/dist/verdocs-web-sdk/{p-4dec0879.entry.js → p-fdda1309.entry.js} +1 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/package.json +5 -5
- package/dist/cjs/verdocs-template-properties.cjs.entry.js +0 -75
- package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.css +0 -102
- package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.js +0 -177
- package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.stories.js +0 -13
- package/dist/components/verdocs-template-properties.d.ts +0 -11
- package/dist/components/verdocs-template-properties.js +0 -131
- package/dist/esm/verdocs-template-properties.entry.js +0 -71
- package/dist/esm-es5/Recipients-198b2531.js +0 -1
- package/dist/esm-es5/index-d264c496.js +0 -1
- package/dist/esm-es5/verdocs-template-properties.entry.js +0 -1
- package/dist/types/components/templates/verdocs-template-properties/verdocs-template-properties.d.ts +0 -45
- package/dist/types/components/templates/verdocs-template-properties/verdocs-template-properties.stories.d.ts +0 -8
- package/dist/verdocs-web-sdk/p-0e4fe8f9.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-10ec9a96.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-12e54f39.js +0 -1
- package/dist/verdocs-web-sdk/p-1d14ae9c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-23292d40.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-381f2a5f.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-4157aa74.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-494d4276.system.js +0 -1
- package/dist/verdocs-web-sdk/p-4a9a3134.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-4d1f3ddb.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-51a3ea62.system.js +0 -1
- package/dist/verdocs-web-sdk/p-71976828.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-73717726.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-77cd3ac5.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-7bd5422e.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-9c87a748.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-ab01f71e.js +0 -1
- package/dist/verdocs-web-sdk/p-b3a8928b.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-b6016e12.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-d2bcbce0.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e7058963.system.entry.js +0 -1
package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
import { format } from 'date-fns';
|
2
2
|
import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
3
|
-
import { throttledGetEnvelope } from '@verdocs/js-sdk/Envelopes/Envelopes';
|
4
|
-
import { h, Host } from '@stencil/core';
|
5
3
|
import { userIsEnvelopeOwner } from '@verdocs/js-sdk/Envelopes/Permissions';
|
4
|
+
import { h, Host } from '@stencil/core';
|
5
|
+
import { getInPersonLink, resendInvitation } from '@verdocs/js-sdk/Envelopes/Recipients';
|
6
|
+
import { getEnvelopeStore } from '../../../utils/EnvelopeStore';
|
6
7
|
import { FORMAT_TIMESTAMP } from '../../../utils/Types';
|
7
8
|
import { VerdocsToast } from '../../../utils/Toast';
|
8
9
|
import { SDKError } from '../../../utils/errors';
|
10
|
+
import { cancelEnvelope } from '@verdocs/js-sdk/Envelopes/Envelopes';
|
9
11
|
const InformationCircle = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" /></svg>`;
|
10
12
|
const Users = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" /></svg>`;
|
11
13
|
const ClipboardDocuments = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25zM6.75 12h.008v.008H6.75V12zm0 3h.008v.008H6.75V15zm0 3h.008v.008H6.75V18z" /></svg>`;
|
@@ -36,40 +38,42 @@ const ActivityIcons = {
|
|
36
38
|
*/
|
37
39
|
export class VerdocsEnvelopeSidebar {
|
38
40
|
constructor() {
|
41
|
+
this.store = null;
|
39
42
|
this.endpoint = VerdocsEndpoint.getDefault();
|
40
43
|
this.envelopeId = '';
|
41
|
-
this.envelope = null;
|
42
|
-
this.sortedRecipients = [];
|
43
|
-
this.roleNames = [];
|
44
44
|
this.activeTab = 1;
|
45
45
|
this.panelOpen = false;
|
46
46
|
this.showManageDialog = false;
|
47
|
+
this.showCancelDialog = false;
|
47
48
|
this.loading = true;
|
48
49
|
}
|
49
|
-
componentWillLoad() {
|
50
|
-
this.endpoint.loadSession();
|
51
|
-
}
|
52
|
-
// TODO: Handling signing vs preview-as-user cases
|
53
|
-
// TODO: Handle anonymous case and failure to load due to not being logged in
|
54
|
-
async componentWillRender() {
|
50
|
+
async componentWillLoad() {
|
55
51
|
var _a, _b, _c;
|
56
|
-
if (!this.envelopeId) {
|
57
|
-
console.error(`[SIDEBAR] Missing required envelopeId`);
|
58
|
-
return;
|
59
|
-
}
|
60
52
|
try {
|
61
|
-
this.
|
62
|
-
this.
|
63
|
-
|
64
|
-
return
|
65
|
-
}
|
66
|
-
|
53
|
+
this.endpoint.loadSession();
|
54
|
+
if (!this.envelopeId) {
|
55
|
+
console.log(`[SIDEBAR] Missing required envelope ID ${this.envelopeId}`);
|
56
|
+
return;
|
57
|
+
}
|
58
|
+
if (!this.endpoint.session) {
|
59
|
+
console.log('[SIDEBAR] Unable to start session, must be authenticated');
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
this.store = await getEnvelopeStore(this.endpoint, this.envelopeId, true);
|
63
|
+
this.sortEnvelopeRecipients();
|
67
64
|
this.loading = false;
|
68
65
|
}
|
69
66
|
catch (e) {
|
67
|
+
console.log('[SIDEBAR] Error loading envelope', e);
|
70
68
|
(_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
|
71
69
|
}
|
72
70
|
}
|
71
|
+
sortEnvelopeRecipients() {
|
72
|
+
var _a, _b;
|
73
|
+
(_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.recipients.sort((a, b) => {
|
74
|
+
return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
|
75
|
+
});
|
76
|
+
}
|
73
77
|
setTab(tab) {
|
74
78
|
var _a;
|
75
79
|
this.panelOpen = tab !== this.activeTab || !this.panelOpen;
|
@@ -78,20 +82,38 @@ export class VerdocsEnvelopeSidebar {
|
|
78
82
|
}
|
79
83
|
// TODO: Refactor to a common library?
|
80
84
|
canResendRecipient(recipient) {
|
85
|
+
var _a, _b;
|
81
86
|
return (!['pending', 'declined', 'submitted', 'canceled'].includes(recipient.status) && //
|
82
|
-
!['complete', 'declined', 'canceled'].includes(this.
|
87
|
+
!['complete', 'declined', 'canceled'].includes((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status));
|
83
88
|
}
|
84
89
|
canModifyRecipient(recipient) {
|
90
|
+
var _a, _b;
|
85
91
|
return (!recipient.claimed && //
|
86
92
|
!['declined', 'signed', 'submitted', 'canceled'].includes(recipient.status) &&
|
87
|
-
!['complete', 'declined', 'canceled'].includes(this.
|
93
|
+
!['complete', 'declined', 'canceled'].includes((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status));
|
88
94
|
}
|
89
95
|
handleRecipientAction(recipient, id) {
|
90
|
-
var _a;
|
96
|
+
var _a, _b;
|
91
97
|
console.log('[SIDEBAR] Recipient action', id, recipient);
|
92
98
|
switch (id) {
|
93
99
|
case 'reminder':
|
94
|
-
|
100
|
+
resendInvitation(this.endpoint, this.envelopeId, recipient.role_name)
|
101
|
+
.then(() => {
|
102
|
+
VerdocsToast('Reminder Sent', { style: 'success' });
|
103
|
+
})
|
104
|
+
.catch(e => {
|
105
|
+
console.log('[SIDEBAR] Error resending invitation', e);
|
106
|
+
VerdocsToast('Error resending invitation: ' + e.message, { style: 'error' });
|
107
|
+
});
|
108
|
+
break;
|
109
|
+
case 'inperson':
|
110
|
+
getInPersonLink(this.endpoint, recipient.envelope_id, recipient.role_name)
|
111
|
+
.then(({ link }) => navigator.clipboard.writeText(link))
|
112
|
+
.then(() => VerdocsToast('Link copied to clipboard.', { style: 'success', duration: 2000 }))
|
113
|
+
.catch(e => {
|
114
|
+
console.log('[RECIPIENTS] Error getting link', e);
|
115
|
+
VerdocsToast('Unable to get link: ' + e.message, { style: 'error' });
|
116
|
+
});
|
95
117
|
break;
|
96
118
|
case 'modify':
|
97
119
|
VerdocsToast('This feature will be enabled in a future release. Please try again later.', { style: 'info' });
|
@@ -100,21 +122,38 @@ export class VerdocsEnvelopeSidebar {
|
|
100
122
|
VerdocsToast('This feature will be enabled in a future release. Please try again later.', { style: 'info' });
|
101
123
|
break;
|
102
124
|
}
|
103
|
-
(_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.
|
125
|
+
(_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: (_b = this.store) === null || _b === void 0 ? void 0 : _b.state, event: id });
|
126
|
+
}
|
127
|
+
cancelEnvelope() {
|
128
|
+
cancelEnvelope(this.endpoint, this.envelopeId)
|
129
|
+
.then(async (r) => {
|
130
|
+
var _a, _b;
|
131
|
+
console.log('[SIDEBAR] Envelope canceled', r);
|
132
|
+
VerdocsToast('Envelope canceled', { style: 'success' });
|
133
|
+
this.store = await getEnvelopeStore(this.endpoint, this.envelopeId, true);
|
134
|
+
this.sortEnvelopeRecipients();
|
135
|
+
(_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: (_b = this.store) === null || _b === void 0 ? void 0 : _b.state, event: 'canceled' });
|
136
|
+
})
|
137
|
+
.catch(e => {
|
138
|
+
console.log('[SIDEBAR] Error canceling envelope', e);
|
139
|
+
VerdocsToast('Error canceling envelope: ' + e.message, { style: 'error' });
|
140
|
+
});
|
104
141
|
}
|
105
142
|
prepareHistoryEntries() {
|
143
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
106
144
|
const entries = [];
|
107
|
-
const histories = this.
|
108
|
-
entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(this.
|
109
|
-
if (this.
|
110
|
-
entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(this.
|
145
|
+
const histories = ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.histories) || [];
|
146
|
+
entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date((_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.created_at) });
|
147
|
+
if (((_f = (_e = this.store) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.status) === 'complete') {
|
148
|
+
entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date((_h = (_g = this.store) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.updated_at) });
|
111
149
|
}
|
112
150
|
const ownerCanceled = histories.some(history => history.event === 'owner:canceled');
|
113
|
-
if (this.
|
114
|
-
entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(this.
|
151
|
+
if (((_k = (_j = this.store) === null || _j === void 0 ? void 0 : _j.state) === null || _k === void 0 ? void 0 : _k.status) === 'canceled' && !ownerCanceled) {
|
152
|
+
entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date((_m = (_l = this.store) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.canceled_at) });
|
115
153
|
}
|
116
154
|
histories.forEach(history => {
|
117
|
-
|
155
|
+
var _a;
|
156
|
+
const user = (_a = this.store.state) === null || _a === void 0 ? void 0 : _a.recipients.find(recipient => recipient.role_name === history.role_name);
|
118
157
|
const name = (user === null || user === void 0 ? void 0 : user.full_name) || '';
|
119
158
|
switch (history.event.toLowerCase()) {
|
120
159
|
case 'recipient:signed':
|
@@ -216,27 +255,43 @@ export class VerdocsEnvelopeSidebar {
|
|
216
255
|
entries.sort((a, b) => b.date.getTime() - a.date.getTime());
|
217
256
|
return entries;
|
218
257
|
}
|
258
|
+
canModify(recipient) {
|
259
|
+
var _a, _b;
|
260
|
+
const invalidRecipientStatus = ['declined', 'signed', 'submitted', 'canceled'];
|
261
|
+
const invalidEnvelopeStatus = ['complete', 'declined', 'canceled'];
|
262
|
+
return recipient.claimed !== true && invalidRecipientStatus.indexOf(recipient.status) === -1 && invalidEnvelopeStatus.indexOf((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status) === -1;
|
263
|
+
}
|
219
264
|
render() {
|
220
|
-
var _a, _b, _c;
|
221
|
-
if (!this.
|
265
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
266
|
+
if (!this.store.state) {
|
222
267
|
return h(Host, null);
|
223
268
|
}
|
224
269
|
const session = this.endpoint.getSession();
|
225
|
-
const isEnvelopeOwner = userIsEnvelopeOwner(session, this.
|
270
|
+
const isEnvelopeOwner = userIsEnvelopeOwner(session, this.store.state);
|
226
271
|
const historyEntries = this.prepareHistoryEntries();
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
272
|
+
const functionsDisabled = ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status) !== 'pending' && ((_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.status) !== 'in progress';
|
273
|
+
return (h(Host, { class: this.panelOpen ? 'open' : '' }, h("div", { class: "side-buttons" }, h("button", { class: this.activeTab === 1 ? 'active' : '', onClick: () => this.setTab(1), innerHTML: InformationCircle }), h("button", { class: this.activeTab === 2 ? 'active' : '', onClick: () => this.setTab(2), innerHTML: Users }), h("button", { class: this.activeTab === 3 ? 'active' : '', onClick: () => this.setTab(3), innerHTML: ClipboardDocuments })), this.activeTab === 1 && (h("div", { class: "content" }, h("div", { class: "title" }, "Details"), h("div", { class: "label" }, "Envelope ID"), h("div", { class: "value" }, (_f = (_e = this.store) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.id), h("div", { class: "label" }, "Date Created"), h("div", { class: "value" }, format(new Date((_h = (_g = this.store) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.created_at), FORMAT_TIMESTAMP)), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date((_k = (_j = this.store) === null || _j === void 0 ? void 0 : _j.state) === null || _k === void 0 ? void 0 : _k.updated_at), FORMAT_TIMESTAMP)), h("div", { class: "label" }, "Status"), h("div", { class: "value" }, (_m = (_l = this.store) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.status), h("div", { class: "label" }, "Verdoc Owner ID"), h("div", { class: "value" }, (_p = (_o = this.store) === null || _o === void 0 ? void 0 : _o.state) === null || _p === void 0 ? void 0 : _p.profile_id), h("div", { class: "label" }, "Verdoc Owner Name"), h("div", { class: "value" }, (_s = (_r = (_q = this.store) === null || _q === void 0 ? void 0 : _q.state) === null || _r === void 0 ? void 0 : _r.profile) === null || _s === void 0 ? void 0 :
|
274
|
+
_s.first_name, " ", (_v = (_u = (_t = this.store) === null || _t === void 0 ? void 0 : _t.state) === null || _u === void 0 ? void 0 : _u.profile) === null || _v === void 0 ? void 0 :
|
275
|
+
_v.last_name), h("div", { class: "label" }, "Verdoc Owner Email"), h("div", { class: "value" }, (_y = (_x = (_w = this.store) === null || _w === void 0 ? void 0 : _w.state) === null || _x === void 0 ? void 0 : _x.profile) === null || _y === void 0 ? void 0 : _y.email))), this.activeTab === 2 && (h("div", { class: "content" }, h("div", { class: "title" }, "Recipients"), (_0 = (_z = this.store) === null || _z === void 0 ? void 0 : _z.state) === null || _0 === void 0 ? void 0 :
|
276
|
+
_0.recipients.map((recipient, index) => {
|
277
|
+
const canGetInPersonLink = !this.canModify(recipient) || (recipient.status !== 'invited' && recipient.status !== 'opened');
|
278
|
+
const canSendReminder = this.canResendRecipient(recipient);
|
279
|
+
return (h("div", { class: "recipient-detail" }, h("div", { class: "recipient-header" }, h("div", { class: "recipient-number" }, index + 1), h("div", { class: "recipient-type" }, recipient.role_name), h("div", { class: { 'recipient-status': true, [recipient.status]: true } }, recipient.status), isEnvelopeOwner && !functionsDisabled && (h("verdocs-dropdown", { onOptionSelected: item => this.handleRecipientAction(recipient, item.detail.id), options: [
|
280
|
+
{ id: 'reminder', label: 'Send Reminder', disabled: !canSendReminder },
|
281
|
+
{ id: 'inperson', label: 'Get In-Person Link', disabled: !canGetInPersonLink },
|
282
|
+
// {id: 'modify', label: 'Modify Recipient', disabled: !this.canModifyRecipient(recipient)},
|
283
|
+
// TODO: Details dialog
|
284
|
+
// {id:'details',label: 'View Details'},
|
285
|
+
] }))), h("dic", { class: "recipient-content" }, h("div", { class: "recipient-name" }, recipient.full_name), h("div", { class: "recipient-name" }, recipient.email), h("div", { class: "recipient-name" }, recipient.phone))));
|
286
|
+
}), isEnvelopeOwner && (h("verdocs-button", { class: "manage-recipients-button", variant: "standard", label: "Turn On Reminders", onClick: () => (this.showManageDialog = !functionsDisabled), disabled: functionsDisabled })), isEnvelopeOwner && (h("verdocs-button", { class: "manage-recipients-button", variant: "standard", label: "Cancel Verdoc", onClick: () => (this.showCancelDialog = !functionsDisabled), disabled: functionsDisabled })))), this.activeTab === 3 && (h("div", { class: "content" }, h("div", { class: "title" }, "History"), historyEntries.map(entry => (h("div", { class: "history-entry" }, h("div", { class: "activity-icon", innerHTML: ActivityIcons[entry.icon] || entry.icon }), h("div", { class: "activity-details" }, h("div", { class: "activity-text" }, entry.message), h("div", { class: "activity-date" }, format(entry.date, FORMAT_TIMESTAMP)))))))), this.showManageDialog && (h("verdocs-envelope-recipient-summary", { envelopeId: this.envelopeId, canView: false, onAnother: () => {
|
235
287
|
var _a;
|
236
288
|
this.showManageDialog = false;
|
237
|
-
(_a = this.another) === null || _a === void 0 ? void 0 : _a.emit({ envelope: this.
|
289
|
+
(_a = this.another) === null || _a === void 0 ? void 0 : _a.emit({ envelope: this.store.state });
|
238
290
|
}, onNext: () => {
|
239
291
|
this.showManageDialog = false;
|
292
|
+
} })), this.showCancelDialog && (h("verdocs-ok-dialog", { heading: "Cancel Envelope?", message: 'Are you sure you want to cancel this Envelope? This action cannot be undone.', onNext: () => {
|
293
|
+
this.showCancelDialog = false;
|
294
|
+
this.cancelEnvelope();
|
240
295
|
} }))));
|
241
296
|
}
|
242
297
|
static get is() { return "verdocs-envelope-sidebar"; }
|
@@ -295,12 +350,10 @@ export class VerdocsEnvelopeSidebar {
|
|
295
350
|
}
|
296
351
|
static get states() {
|
297
352
|
return {
|
298
|
-
"envelope": {},
|
299
|
-
"sortedRecipients": {},
|
300
|
-
"roleNames": {},
|
301
353
|
"activeTab": {},
|
302
354
|
"panelOpen": {},
|
303
355
|
"showManageDialog": {},
|
356
|
+
"showCancelDialog": {},
|
304
357
|
"loading": {}
|
305
358
|
};
|
306
359
|
}
|
@@ -3,7 +3,7 @@ export default {
|
|
3
3
|
title: 'Envelopes/Envelope Sidebar',
|
4
4
|
component: 'verdocs-envelope-sidebar',
|
5
5
|
args: {
|
6
|
-
envelopeId: '
|
6
|
+
envelopeId: '98126d3a-b6b0-4041-93a7-5cbd9daf5afa',
|
7
7
|
},
|
8
8
|
argTypes: {
|
9
9
|
envelopeId: { name: 'envelopeId' },
|
package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.css
CHANGED
@@ -2,7 +2,6 @@ verdocs-status-indicator {
|
|
2
2
|
display: flex;
|
3
3
|
font-size: 18px;
|
4
4
|
flex-wrap: nowrap;
|
5
|
-
padding: 4px 12px;
|
6
5
|
border-radius: 6px;
|
7
6
|
color: #33364b;
|
8
7
|
align-items: center;
|
@@ -16,7 +15,7 @@ verdocs-status-indicator.has-document:hover {
|
|
16
15
|
verdocs-status-indicator .icon {
|
17
16
|
width: 25px;
|
18
17
|
height: 25px;
|
19
|
-
margin: 0 10px
|
18
|
+
margin: 0 10px 0 0;
|
20
19
|
}
|
21
20
|
verdocs-status-indicator.dark {
|
22
21
|
color: #ffffff;
|
@@ -27,7 +26,7 @@ verdocs-status-indicator.small {
|
|
27
26
|
verdocs-status-indicator.small .icon {
|
28
27
|
width: 20px;
|
29
28
|
height: 20px;
|
30
|
-
margin: 0 8px
|
29
|
+
margin: 0 8px 0 0;
|
31
30
|
}
|
32
31
|
verdocs-status-indicator .detail-panel {
|
33
32
|
display: none;
|
@@ -1,26 +1,31 @@
|
|
1
1
|
verdocs-field-textarea {
|
2
|
-
font-family: "Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;
|
3
2
|
width: 150px;
|
4
3
|
height: 15px;
|
5
4
|
display: block;
|
6
5
|
font-size: 11px;
|
7
6
|
position: relative;
|
7
|
+
box-sizing: border-box;
|
8
8
|
background-color: transparent;
|
9
9
|
transform-origin: bottom left;
|
10
|
+
font-family: "Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;
|
11
|
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
10
12
|
}
|
11
13
|
verdocs-field-textarea.disabled {
|
12
14
|
opacity: 0.5;
|
13
15
|
}
|
14
16
|
verdocs-field-textarea textarea {
|
15
|
-
box-sizing: border-box;
|
16
|
-
color: rgba(0, 0, 0, 0.87);
|
17
|
-
font-weight: 500;
|
18
|
-
transform-origin: 0 0;
|
19
|
-
height: 100%;
|
20
17
|
width: 100%;
|
21
|
-
|
18
|
+
height: 100%;
|
19
|
+
resize: none;
|
20
|
+
border: none;
|
21
|
+
outline: none;
|
22
|
+
padding: 0 3px;
|
22
23
|
font-size: 11px;
|
23
|
-
|
24
|
+
background: none;
|
25
|
+
font-weight: 500;
|
26
|
+
transform-origin: 0 0;
|
27
|
+
box-sizing: border-box;
|
28
|
+
color: rgba(0, 0, 0, 0.87);
|
24
29
|
}
|
25
30
|
verdocs-field-textarea textarea.hide {
|
26
31
|
display: none;
|
@@ -1,4 +1,7 @@
|
|
1
|
+
import interact from 'interactjs';
|
2
|
+
import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
1
3
|
import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
|
4
|
+
import { updateField } from '@verdocs/js-sdk/Templates/Fields';
|
2
5
|
import { h, Host } from '@stencil/core';
|
3
6
|
import { getFieldSettings } from '../../../utils/utils';
|
4
7
|
const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z"/></svg>';
|
@@ -7,6 +10,7 @@ const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width=
|
|
7
10
|
*/
|
8
11
|
export class VerdocsFieldTextarea {
|
9
12
|
constructor() {
|
13
|
+
this.endpoint = VerdocsEndpoint.getDefault();
|
10
14
|
this.templateid = '';
|
11
15
|
this.field = null;
|
12
16
|
this.disabled = false;
|
@@ -14,10 +18,12 @@ export class VerdocsFieldTextarea {
|
|
14
18
|
this.moveable = false;
|
15
19
|
this.done = false;
|
16
20
|
this.roleindex = 0;
|
21
|
+
this.xscale = 1;
|
22
|
+
this.yscale = 1;
|
17
23
|
this.rerender = 0;
|
18
24
|
}
|
19
25
|
async focusField() {
|
20
|
-
this.
|
26
|
+
this.inputEl.focus();
|
21
27
|
}
|
22
28
|
async showSettingsPanel() {
|
23
29
|
const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
|
@@ -32,6 +38,51 @@ export class VerdocsFieldTextarea {
|
|
32
38
|
}
|
33
39
|
// TemplateStore.updateCount++;
|
34
40
|
}
|
41
|
+
componentDidRender() {
|
42
|
+
interact.dynamicDrop(true);
|
43
|
+
if (this.editable) {
|
44
|
+
interact(this.el).resizable({
|
45
|
+
edges: { top: true, bottom: true, left: true, right: true },
|
46
|
+
listeners: {
|
47
|
+
start: this.handleResizeStart.bind(this),
|
48
|
+
move: this.handleResize.bind(this),
|
49
|
+
end: this.handleResizeEnd.bind(this),
|
50
|
+
},
|
51
|
+
});
|
52
|
+
}
|
53
|
+
}
|
54
|
+
handleResizeStart(e) {
|
55
|
+
e.preventDefault();
|
56
|
+
e.stopPropagation();
|
57
|
+
}
|
58
|
+
handleResize(e) {
|
59
|
+
let { x = 0, y = 0, h = 0 } = e.target.dataset;
|
60
|
+
let { width, height } = e.rect;
|
61
|
+
x = (parseFloat(x) || 0) + e.deltaRect.left;
|
62
|
+
y = (parseFloat(y) || 0) + e.deltaRect.top;
|
63
|
+
h = (parseFloat(h) || 0) + e.deltaRect.height;
|
64
|
+
Object.assign(e.target.style, {
|
65
|
+
width: `${width}px`,
|
66
|
+
height: `${height}px`,
|
67
|
+
transform: `translate(${x}px, ${y + h}px)`,
|
68
|
+
});
|
69
|
+
Object.assign(e.target.dataset, { x, y, h });
|
70
|
+
}
|
71
|
+
handleResizeEnd(e) {
|
72
|
+
const newSettings = { ...getFieldSettings(this.field) };
|
73
|
+
const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
|
74
|
+
newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
|
75
|
+
newSettings.height = Math.round(parseFloat(e.target.style.height) / this.yscale);
|
76
|
+
newSettings.x = Math.round(newSettings.x + translateX / this.xscale);
|
77
|
+
newSettings.y = Math.round(newSettings.y - translateY / this.yscale);
|
78
|
+
updateField(this.endpoint, this.templateid, this.field.name, { setting: newSettings })
|
79
|
+
.then(() => {
|
80
|
+
var _a;
|
81
|
+
(_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name, settings: newSettings });
|
82
|
+
Object.assign(e.target.dataset, { x: 0, y: 0, h: 0 });
|
83
|
+
})
|
84
|
+
.catch(e => console.log('Field update failed', e));
|
85
|
+
}
|
35
86
|
render() {
|
36
87
|
var _a, _b;
|
37
88
|
const settings = getFieldSettings(this.field);
|
@@ -40,7 +91,7 @@ export class VerdocsFieldTextarea {
|
|
40
91
|
if (this.done) {
|
41
92
|
return h(Host, { class: { done: this.done } }, settings.value);
|
42
93
|
}
|
43
|
-
return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, name: this.field.name, required: settings.required, ref: el => (this.
|
94
|
+
return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, name: this.field.name, required: settings.required, ref: el => (this.inputEl = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
|
44
95
|
var _a;
|
45
96
|
(_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
|
46
97
|
return this.hideSettingsPanel();
|
@@ -63,6 +114,27 @@ export class VerdocsFieldTextarea {
|
|
63
114
|
}
|
64
115
|
static get properties() {
|
65
116
|
return {
|
117
|
+
"endpoint": {
|
118
|
+
"type": "unknown",
|
119
|
+
"mutable": false,
|
120
|
+
"complexType": {
|
121
|
+
"original": "VerdocsEndpoint",
|
122
|
+
"resolved": "VerdocsEndpoint",
|
123
|
+
"references": {
|
124
|
+
"VerdocsEndpoint": {
|
125
|
+
"location": "import",
|
126
|
+
"path": "@verdocs/js-sdk"
|
127
|
+
}
|
128
|
+
}
|
129
|
+
},
|
130
|
+
"required": false,
|
131
|
+
"optional": false,
|
132
|
+
"docs": {
|
133
|
+
"tags": [],
|
134
|
+
"text": "The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\nThis component self-manages its resize (width) behavior when in edit-template mode, and uses\nthis endpoint to save changes."
|
135
|
+
},
|
136
|
+
"defaultValue": "VerdocsEndpoint.getDefault()"
|
137
|
+
},
|
66
138
|
"templateid": {
|
67
139
|
"type": "string",
|
68
140
|
"mutable": false,
|
@@ -196,6 +268,42 @@ export class VerdocsFieldTextarea {
|
|
196
268
|
"reflect": false,
|
197
269
|
"defaultValue": "0"
|
198
270
|
},
|
271
|
+
"xscale": {
|
272
|
+
"type": "number",
|
273
|
+
"mutable": false,
|
274
|
+
"complexType": {
|
275
|
+
"original": "number",
|
276
|
+
"resolved": "number",
|
277
|
+
"references": {}
|
278
|
+
},
|
279
|
+
"required": false,
|
280
|
+
"optional": true,
|
281
|
+
"docs": {
|
282
|
+
"tags": [],
|
283
|
+
"text": "If set, the field will be be scaled horizontally by this factor."
|
284
|
+
},
|
285
|
+
"attribute": "xscale",
|
286
|
+
"reflect": false,
|
287
|
+
"defaultValue": "1"
|
288
|
+
},
|
289
|
+
"yscale": {
|
290
|
+
"type": "number",
|
291
|
+
"mutable": false,
|
292
|
+
"complexType": {
|
293
|
+
"original": "number",
|
294
|
+
"resolved": "number",
|
295
|
+
"references": {}
|
296
|
+
},
|
297
|
+
"required": false,
|
298
|
+
"optional": true,
|
299
|
+
"docs": {
|
300
|
+
"tags": [],
|
301
|
+
"text": "If set, the field will be be scaled vertically by this factor."
|
302
|
+
},
|
303
|
+
"attribute": "yscale",
|
304
|
+
"reflect": false,
|
305
|
+
"defaultValue": "1"
|
306
|
+
},
|
199
307
|
"rerender": {
|
200
308
|
"type": "number",
|
201
309
|
"mutable": false,
|
@@ -306,4 +414,5 @@ export class VerdocsFieldTextarea {
|
|
306
414
|
}
|
307
415
|
};
|
308
416
|
}
|
417
|
+
static get elementRef() { return "el"; }
|
309
418
|
}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import interact from 'interactjs';
|
2
|
+
import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
2
3
|
import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
|
4
|
+
import { updateField } from '@verdocs/js-sdk/Templates/Fields';
|
3
5
|
import { h, Host } from '@stencil/core';
|
4
6
|
import { getFieldSettings } from '../../../utils/utils';
|
5
|
-
import { updateField } from '@verdocs/js-sdk/Templates/Fields';
|
6
|
-
import { VerdocsEndpoint } from '@verdocs/js-sdk';
|
7
7
|
const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z"/></svg>';
|
8
8
|
/**
|
9
9
|
* Display a text input field.
|
@@ -18,6 +18,8 @@ export class VerdocsFieldTextbox {
|
|
18
18
|
this.moveable = false;
|
19
19
|
this.done = false;
|
20
20
|
this.roleindex = 0;
|
21
|
+
this.xscale = 1;
|
22
|
+
this.yscale = 1;
|
21
23
|
this.rerender = 0;
|
22
24
|
}
|
23
25
|
async focusField() {
|
@@ -54,26 +56,31 @@ export class VerdocsFieldTextbox {
|
|
54
56
|
e.stopPropagation();
|
55
57
|
}
|
56
58
|
handleResize(e) {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
59
|
+
let { x = 0, y = 0, h = 0 } = e.target.dataset;
|
60
|
+
let { width, height } = e.rect;
|
61
|
+
x = (parseFloat(x) || 0) + e.deltaRect.left;
|
62
|
+
y = (parseFloat(y) || 0) + e.deltaRect.top;
|
63
|
+
h = (parseFloat(h) || 0) + e.deltaRect.height;
|
64
|
+
Object.assign(e.target.style, {
|
65
|
+
width: `${width}px`,
|
66
|
+
height: `${height}px`,
|
67
|
+
transform: `translate(${x}px, ${y + h}px)`,
|
68
|
+
});
|
69
|
+
Object.assign(e.target.dataset, { x, y, h });
|
67
70
|
}
|
68
71
|
handleResizeEnd(e) {
|
69
|
-
|
70
|
-
const
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
72
|
+
const newSettings = { ...getFieldSettings(this.field) };
|
73
|
+
const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
|
74
|
+
newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
|
75
|
+
newSettings.height = Math.round(parseFloat(e.target.style.height) / this.yscale);
|
76
|
+
newSettings.x = Math.round(newSettings.x + translateX / this.xscale);
|
77
|
+
newSettings.y = Math.round(newSettings.y - translateY / this.yscale);
|
75
78
|
updateField(this.endpoint, this.templateid, this.field.name, { setting: newSettings })
|
76
|
-
.then(() => {
|
79
|
+
.then(() => {
|
80
|
+
var _a;
|
81
|
+
(_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name, settings: newSettings });
|
82
|
+
Object.assign(e.target.dataset, { x: 0, y: 0, h: 0 });
|
83
|
+
})
|
77
84
|
.catch(e => console.log('Field update failed', e));
|
78
85
|
}
|
79
86
|
render() {
|
@@ -265,6 +272,42 @@ export class VerdocsFieldTextbox {
|
|
265
272
|
"reflect": false,
|
266
273
|
"defaultValue": "0"
|
267
274
|
},
|
275
|
+
"xscale": {
|
276
|
+
"type": "number",
|
277
|
+
"mutable": false,
|
278
|
+
"complexType": {
|
279
|
+
"original": "number",
|
280
|
+
"resolved": "number",
|
281
|
+
"references": {}
|
282
|
+
},
|
283
|
+
"required": false,
|
284
|
+
"optional": true,
|
285
|
+
"docs": {
|
286
|
+
"tags": [],
|
287
|
+
"text": "If set, the field will be be scaled horizontally by this factor."
|
288
|
+
},
|
289
|
+
"attribute": "xscale",
|
290
|
+
"reflect": false,
|
291
|
+
"defaultValue": "1"
|
292
|
+
},
|
293
|
+
"yscale": {
|
294
|
+
"type": "number",
|
295
|
+
"mutable": false,
|
296
|
+
"complexType": {
|
297
|
+
"original": "number",
|
298
|
+
"resolved": "number",
|
299
|
+
"references": {}
|
300
|
+
},
|
301
|
+
"required": false,
|
302
|
+
"optional": true,
|
303
|
+
"docs": {
|
304
|
+
"tags": [],
|
305
|
+
"text": "If set, the field will be be scaled vertically by this factor."
|
306
|
+
},
|
307
|
+
"attribute": "yscale",
|
308
|
+
"reflect": false,
|
309
|
+
"defaultValue": "1"
|
310
|
+
},
|
268
311
|
"rerender": {
|
269
312
|
"type": "number",
|
270
313
|
"mutable": false,
|