@verdocs/web-sdk 1.9.9 → 1.9.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/Templates-399073ea.js +31 -0
- package/dist/cjs/Templates-399073ea.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/verdocs-auth.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-auth.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-build.cjs.entry.js +28 -2
- package/dist/cjs/verdocs-build.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-button-panel_3.cjs.entry.js +1 -20
- package/dist/cjs/verdocs-button-panel_3.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-button.cjs.entry.js +1 -7
- package/dist/cjs/verdocs-button.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-checkbox.cjs.entry.js +1 -6
- package/dist/cjs/verdocs-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-contact-picker.cjs.entry.js +3 -3
- package/dist/cjs/verdocs-contact-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-dropdown_3.cjs.entry.js +5 -10
- package/dist/cjs/verdocs-dropdown_3.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-field-attachment.cjs.entry.js +2 -7
- package/dist/cjs/verdocs-field-attachment.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-field-date.cjs.entry.js +1 -14
- package/dist/cjs/verdocs-field-date.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-field-signature_3.cjs.entry.js +8 -10
- package/dist/cjs/verdocs-field-signature_3.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-field-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-field-textbox.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-help-icon_2.cjs.entry.js +4 -7
- package/dist/cjs/verdocs-help-icon_2.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-initial-dialog.cjs.entry.js +3 -6
- package/dist/cjs/verdocs-initial-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-kba-dialog.cjs.entry.js +4 -7
- package/dist/cjs/verdocs-kba-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-loader_4.cjs.entry.js +0 -24
- package/dist/cjs/verdocs-loader_4.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-ok-dialog.cjs.entry.js +10 -8
- package/dist/cjs/verdocs-ok-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-preview.cjs.entry.js +1 -1
- package/dist/cjs/verdocs-radio-button.cjs.entry.js +1 -6
- package/dist/cjs/verdocs-radio-button.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-send.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-send.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-sign.cjs.entry.js +2 -2
- package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-template-create_4.cjs.entry.js +23 -43
- package/dist/cjs/verdocs-template-create_4.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-toggle.cjs.entry.js +0 -22
- package/dist/cjs/verdocs-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-upload-dialog.cjs.entry.js +9 -22
- package/dist/cjs/verdocs-upload-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/components/controls/verdocs-button/verdocs-button.js +7 -26
- package/dist/collection/components/controls/verdocs-button/verdocs-button.js.map +1 -1
- package/dist/collection/components/controls/verdocs-button/verdocs-button.stories.js +8 -9
- package/dist/collection/components/controls/verdocs-button/verdocs-button.stories.js.map +1 -1
- package/dist/collection/components/controls/verdocs-button-panel/verdocs-button-panel.js +9 -1
- package/dist/collection/components/controls/verdocs-button-panel/verdocs-button-panel.js.map +1 -1
- package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js +15 -25
- package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js.map +1 -1
- package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.stories.js +7 -2
- package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.stories.js.map +1 -1
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js +14 -22
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js.map +1 -1
- package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.js +17 -26
- package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.js.map +1 -1
- package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.stories.js +7 -2
- package/dist/collection/components/controls/verdocs-radio-button/verdocs-radio-button.stories.js.map +1 -1
- package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.js +1 -34
- package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.js.map +1 -1
- package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.stories.js +4 -6
- package/dist/collection/components/controls/verdocs-select-input/verdocs-select-input.stories.js.map +1 -1
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js +0 -13
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js.map +1 -1
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.stories.js +3 -5
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.stories.js.map +1 -1
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js +0 -26
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js.map +1 -1
- package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.js +5 -23
- package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js +4 -25
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.stories.js +8 -7
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.stories.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js +6 -27
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.stories.js +10 -9
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.stories.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js +30 -32
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.stories.js +9 -8
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.stories.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js +7 -25
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.stories.js +8 -7
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.stories.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.css +2 -1
- package/dist/collection/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.js +7 -28
- package/dist/collection/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.stories.js +35 -7
- package/dist/collection/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.stories.js.map +1 -1
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js +15 -40
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js.map +1 -1
- package/dist/collection/components/elements/verdocs-contact-picker/verdocs-contact-picker.js +4 -4
- package/dist/collection/components/elements/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
- package/dist/collection/components/elements/verdocs-contact-picker/verdocs-contact-picker.stories.js +3 -9
- package/dist/collection/components/elements/verdocs-contact-picker/verdocs-contact-picker.stories.js.map +1 -1
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.js +2 -20
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.js.map +1 -1
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.js +2 -24
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.js.map +1 -1
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.js +1 -70
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.js.map +1 -1
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.js +1 -1
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.js.map +1 -1
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.js +1 -1
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-create/verdocs-template-create.js +18 -19
- package/dist/collection/components/elements/verdocs-template-create/verdocs-template-create.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.js +11 -6
- package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.stories.js +4 -4
- package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.stories.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-properties/verdocs-template-properties.js +4 -25
- package/dist/collection/components/elements/verdocs-template-properties/verdocs-template-properties.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-properties/verdocs-template-properties.stories.js +3 -3
- package/dist/collection/components/elements/verdocs-template-properties/verdocs-template-properties.stories.js.map +1 -1
- package/dist/collection/components/elements/verdocs-template-recipients/verdocs-template-recipients.js +7 -23
- package/dist/collection/components/elements/verdocs-template-recipients/verdocs-template-recipients.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +3 -3
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-build/verdocs-build.js +26 -4
- package/dist/collection/components/embeds/verdocs-build/verdocs-build.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +2 -2
- package/dist/collection/components/embeds/verdocs-send/verdocs-send.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +2 -2
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +0 -24
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js.map +1 -1
- package/dist/collection/utils/Templates.js +0 -15
- package/dist/collection/utils/Templates.js.map +1 -1
- package/dist/components/Templates.js +0 -15
- package/dist/components/Templates.js.map +1 -1
- package/dist/components/verdocs-auth.js +3 -3
- package/dist/components/verdocs-auth.js.map +1 -1
- package/dist/components/verdocs-build.js +25 -2
- package/dist/components/verdocs-build.js.map +1 -1
- package/dist/components/verdocs-button-panel2.js.map +1 -1
- package/dist/components/verdocs-button2.js +2 -8
- package/dist/components/verdocs-button2.js.map +1 -1
- package/dist/components/verdocs-checkbox2.js +2 -7
- package/dist/components/verdocs-checkbox2.js.map +1 -1
- package/dist/components/verdocs-contact-picker2.js +3 -3
- package/dist/components/verdocs-contact-picker2.js.map +1 -1
- package/dist/components/verdocs-dropdown2.js +4 -6
- package/dist/components/verdocs-dropdown2.js.map +1 -1
- package/dist/components/verdocs-field-attachment.js +3 -8
- package/dist/components/verdocs-field-attachment.js.map +1 -1
- package/dist/components/verdocs-field-checkbox2.js +2 -6
- package/dist/components/verdocs-field-checkbox2.js.map +1 -1
- package/dist/components/verdocs-field-date.js +1 -14
- package/dist/components/verdocs-field-date.js.map +1 -1
- package/dist/components/verdocs-field-textarea.js +1 -1
- package/dist/components/verdocs-field-textarea.js.map +1 -1
- package/dist/components/verdocs-field-textbox.js +1 -1
- package/dist/components/verdocs-field-textbox.js.map +1 -1
- package/dist/components/verdocs-initial-dialog2.js +3 -7
- package/dist/components/verdocs-initial-dialog2.js.map +1 -1
- package/dist/components/verdocs-kba-dialog.js +4 -8
- package/dist/components/verdocs-kba-dialog.js.map +1 -1
- package/dist/components/verdocs-ok-dialog2.js +11 -10
- package/dist/components/verdocs-ok-dialog2.js.map +1 -1
- package/dist/components/verdocs-radio-button2.js +2 -7
- package/dist/components/verdocs-radio-button2.js.map +1 -1
- package/dist/components/verdocs-select-input2.js +3 -15
- package/dist/components/verdocs-select-input2.js.map +1 -1
- package/dist/components/verdocs-send.js +2 -2
- package/dist/components/verdocs-send.js.map +1 -1
- package/dist/components/verdocs-sign.js +2 -2
- package/dist/components/verdocs-sign.js.map +1 -1
- package/dist/components/verdocs-signature-dialog2.js +4 -5
- package/dist/components/verdocs-signature-dialog2.js.map +1 -1
- package/dist/components/verdocs-template-create2.js +13 -11
- package/dist/components/verdocs-template-create2.js.map +1 -1
- package/dist/components/verdocs-template-fields2.js +2 -2
- package/dist/components/verdocs-template-fields2.js.map +1 -1
- package/dist/components/verdocs-template-properties2.js +3 -24
- package/dist/components/verdocs-template-properties2.js.map +1 -1
- package/dist/components/verdocs-template-recipients2.js +5 -7
- package/dist/components/verdocs-template-recipients2.js.map +1 -1
- package/dist/components/verdocs-template-sender-dialog2.js +4 -8
- package/dist/components/verdocs-template-sender-dialog2.js.map +1 -1
- package/dist/components/verdocs-text-input2.js +1 -10
- package/dist/components/verdocs-text-input2.js.map +1 -1
- package/dist/components/verdocs-toggle.js +0 -22
- package/dist/components/verdocs-toggle.js.map +1 -1
- package/dist/components/verdocs-toolbar-icon2.js +5 -7
- package/dist/components/verdocs-toolbar-icon2.js.map +1 -1
- package/dist/components/verdocs-upload-dialog2.js +9 -23
- package/dist/components/verdocs-upload-dialog2.js.map +1 -1
- package/dist/components/verdocs-view2.js +0 -24
- package/dist/components/verdocs-view2.js.map +1 -1
- package/dist/docs.json +76 -301
- package/dist/esm/Templates-91922342.js +29 -0
- package/dist/esm/Templates-91922342.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/verdocs-auth.entry.js +3 -3
- package/dist/esm/verdocs-auth.entry.js.map +1 -1
- package/dist/esm/verdocs-build.entry.js +28 -2
- package/dist/esm/verdocs-build.entry.js.map +1 -1
- package/dist/esm/verdocs-button-panel_3.entry.js +2 -21
- package/dist/esm/verdocs-button-panel_3.entry.js.map +1 -1
- package/dist/esm/verdocs-button.entry.js +2 -8
- package/dist/esm/verdocs-button.entry.js.map +1 -1
- package/dist/esm/verdocs-checkbox.entry.js +2 -7
- package/dist/esm/verdocs-checkbox.entry.js.map +1 -1
- package/dist/esm/verdocs-contact-picker.entry.js +3 -3
- package/dist/esm/verdocs-contact-picker.entry.js.map +1 -1
- package/dist/esm/verdocs-dropdown_3.entry.js +5 -10
- package/dist/esm/verdocs-dropdown_3.entry.js.map +1 -1
- package/dist/esm/verdocs-field-attachment.entry.js +3 -8
- package/dist/esm/verdocs-field-attachment.entry.js.map +1 -1
- package/dist/esm/verdocs-field-date.entry.js +1 -14
- package/dist/esm/verdocs-field-date.entry.js.map +1 -1
- package/dist/esm/verdocs-field-signature_3.entry.js +8 -10
- package/dist/esm/verdocs-field-signature_3.entry.js.map +1 -1
- package/dist/esm/verdocs-field-textarea.entry.js +1 -1
- package/dist/esm/verdocs-field-textarea.entry.js.map +1 -1
- package/dist/esm/verdocs-field-textbox.entry.js +1 -1
- package/dist/esm/verdocs-field-textbox.entry.js.map +1 -1
- package/dist/esm/verdocs-help-icon_2.entry.js +4 -7
- package/dist/esm/verdocs-help-icon_2.entry.js.map +1 -1
- package/dist/esm/verdocs-initial-dialog.entry.js +3 -6
- package/dist/esm/verdocs-initial-dialog.entry.js.map +1 -1
- package/dist/esm/verdocs-kba-dialog.entry.js +4 -7
- package/dist/esm/verdocs-kba-dialog.entry.js.map +1 -1
- package/dist/esm/verdocs-loader_4.entry.js +0 -24
- package/dist/esm/verdocs-loader_4.entry.js.map +1 -1
- package/dist/esm/verdocs-ok-dialog.entry.js +10 -8
- package/dist/esm/verdocs-ok-dialog.entry.js.map +1 -1
- package/dist/esm/verdocs-preview.entry.js +1 -1
- package/dist/esm/verdocs-radio-button.entry.js +2 -7
- package/dist/esm/verdocs-radio-button.entry.js.map +1 -1
- package/dist/esm/verdocs-send.entry.js +2 -2
- package/dist/esm/verdocs-send.entry.js.map +1 -1
- package/dist/esm/verdocs-sign.entry.js +2 -2
- package/dist/esm/verdocs-sign.entry.js.map +1 -1
- package/dist/esm/verdocs-template-create_4.entry.js +23 -43
- package/dist/esm/verdocs-template-create_4.entry.js.map +1 -1
- package/dist/esm/verdocs-toggle.entry.js +0 -22
- package/dist/esm/verdocs-toggle.entry.js.map +1 -1
- package/dist/esm/verdocs-upload-dialog.entry.js +9 -22
- package/dist/esm/verdocs-upload-dialog.entry.js.map +1 -1
- package/dist/esm/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/Templates-91922342.js +2 -0
- package/dist/esm-es5/Templates-91922342.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/verdocs-auth.entry.js +1 -1
- package/dist/esm-es5/verdocs-auth.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-build.entry.js +1 -1
- package/dist/esm-es5/verdocs-build.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-button-panel_3.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-button.entry.js +1 -1
- package/dist/esm-es5/verdocs-button.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-checkbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-contact-picker.entry.js +1 -1
- package/dist/esm-es5/verdocs-contact-picker.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-dropdown_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-dropdown_3.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-attachment.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-date.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-field-signature_3.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-signature_3.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textarea.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
- package/dist/esm-es5/verdocs-field-textbox.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-help-icon_2.entry.js +1 -1
- package/dist/esm-es5/verdocs-help-icon_2.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-initial-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-initial-dialog.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-kba-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-kba-dialog.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-loader_4.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-ok-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-ok-dialog.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-preview.entry.js +1 -1
- package/dist/esm-es5/verdocs-radio-button.entry.js +1 -1
- package/dist/esm-es5/verdocs-radio-button.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-send.entry.js +1 -1
- package/dist/esm-es5/verdocs-send.entry.js.map +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-template-create_4.entry.js +1 -1
- package/dist/esm-es5/verdocs-template-create_4.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-toggle.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-upload-dialog.entry.js +1 -1
- package/dist/esm-es5/verdocs-upload-dialog.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js +1 -1
- package/dist/esm-es5/verdocs-web-sdk.js.map +1 -1
- package/dist/types/components/controls/verdocs-button/verdocs-button.d.ts +6 -8
- package/dist/types/components/controls/verdocs-button/verdocs-button.stories.d.ts +2 -2
- package/dist/types/components/controls/verdocs-button-panel/verdocs-button-panel.d.ts +9 -1
- package/dist/types/components/controls/verdocs-checkbox/verdocs-checkbox.d.ts +14 -12
- package/dist/types/components/controls/verdocs-checkbox/verdocs-checkbox.stories.d.ts +2 -1
- package/dist/types/components/controls/verdocs-dropdown/verdocs-dropdown.d.ts +10 -1
- package/dist/types/components/controls/verdocs-radio-button/verdocs-radio-button.d.ts +16 -13
- package/dist/types/components/controls/verdocs-radio-button/verdocs-radio-button.stories.d.ts +2 -1
- package/dist/types/components/controls/verdocs-select-input/verdocs-select-input.d.ts +0 -9
- package/dist/types/components/controls/verdocs-select-input/verdocs-select-input.stories.d.ts +2 -2
- package/dist/types/components/controls/verdocs-text-input/verdocs-text-input.d.ts +0 -3
- package/dist/types/components/controls/verdocs-text-input/verdocs-text-input.stories.d.ts +2 -2
- package/dist/types/components/controls/verdocs-toggle/verdocs-toggle.d.ts +0 -4
- package/dist/types/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.d.ts +0 -3
- package/dist/types/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.d.ts +1 -5
- package/dist/types/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.stories.d.ts +3 -3
- package/dist/types/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.d.ts +2 -6
- package/dist/types/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.stories.d.ts +3 -3
- package/dist/types/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.d.ts +9 -8
- package/dist/types/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.stories.d.ts +4 -4
- package/dist/types/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.d.ts +4 -7
- package/dist/types/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.stories.d.ts +3 -3
- package/dist/types/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.d.ts +2 -8
- package/dist/types/components/dialogs/verdocs-template-sender-dialog/verdocs-template-sender-dialog.stories.d.ts +4 -4
- package/dist/types/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.d.ts +7 -9
- package/dist/types/components/elements/verdocs-contact-picker/verdocs-contact-picker.d.ts +1 -1
- package/dist/types/components/elements/verdocs-contact-picker/verdocs-contact-picker.stories.d.ts +3 -3
- package/dist/types/components/elements/verdocs-field-attachment/verdocs-field-attachment.d.ts +0 -7
- package/dist/types/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.d.ts +1 -13
- package/dist/types/components/elements/verdocs-field-date/verdocs-field-date.d.ts +0 -20
- package/dist/types/components/elements/verdocs-template-create/verdocs-template-create.d.ts +3 -5
- package/dist/types/components/elements/verdocs-template-fields/verdocs-template-fields.d.ts +2 -2
- package/dist/types/components/elements/verdocs-template-fields/verdocs-template-fields.stories.d.ts +3 -3
- package/dist/types/components/elements/verdocs-template-properties/verdocs-template-properties.d.ts +1 -2
- package/dist/types/components/elements/verdocs-template-properties/verdocs-template-properties.stories.d.ts +3 -3
- package/dist/types/components/elements/verdocs-template-recipients/verdocs-template-recipients.d.ts +2 -6
- package/dist/types/components/embeds/verdocs-build/verdocs-build.d.ts +2 -2
- package/dist/types/components.d.ts +42 -170
- package/dist/verdocs-web-sdk/{p-f5a5e049.system.entry.js → p-0b2290c6.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-0b2290c6.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-a8699c5d.system.entry.js → p-142295dd.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-a8699c5d.system.entry.js.map → p-142295dd.system.entry.js.map} +0 -0
- package/dist/verdocs-web-sdk/p-15584ecb.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-15584ecb.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-202a569e.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-202a569e.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-259fd8de.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-259fd8de.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-2b822750.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-2b822750.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-2bb98709.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-2bb98709.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-7a476918.entry.js → p-2fbd4e25.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-2fbd4e25.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-36700fe4.js +2 -0
- package/dist/verdocs-web-sdk/p-36700fe4.js.map +1 -0
- package/dist/verdocs-web-sdk/p-37a75b0e.system.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/p-3a4126d5.system.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/{p-4425de92.system.entry.js → p-473165ae.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-473165ae.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-82df4878.entry.js → p-48d9e0d6.entry.js} +2 -2
- package/dist/verdocs-web-sdk/{p-82df4878.entry.js.map → p-48d9e0d6.entry.js.map} +0 -0
- package/dist/verdocs-web-sdk/p-508192bb.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-508192bb.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-5bfc608d.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/p-5e6134d8.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-5e6134d8.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-6121f103.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-6121f103.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-63d01d16.system.js +2 -0
- package/dist/verdocs-web-sdk/p-63d01d16.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-650e0b71.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-650e0b71.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-71f1e3c9.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-71f1e3c9.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-7e7b1a27.system.entry.js → p-78468adf.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-78468adf.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-60f92123.system.entry.js → p-7a5c37cd.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-7a5c37cd.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-1935d358.system.entry.js → p-8574c48b.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-8574c48b.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-f5482845.entry.js → p-8ef53023.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-8ef53023.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-4226119d.entry.js → p-932571a1.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-932571a1.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-aa3a42a4.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-aa3a42a4.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-bdc40f6e.entry.js → p-ab23a9d1.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ab23a9d1.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-acfdfb92.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-acfdfb92.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-b77e5b39.entry.js → p-b2dea632.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-b2dea632.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-b95cb372.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-b95cb372.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-b9cdae44.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-b9cdae44.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-bcae2278.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-bcae2278.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
- package/dist/verdocs-web-sdk/p-c16b6ca4.system.js.map +1 -1
- package/dist/verdocs-web-sdk/p-c2ad9de3.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-c2ad9de3.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-62ffe7a3.system.entry.js → p-c37ea778.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-c37ea778.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-ca6a1398.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-ca6a1398.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-a43e5fb3.system.entry.js → p-ccf983c7.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ccf983c7.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-b5b9d603.entry.js → p-ce27dc71.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ce27dc71.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-d5f48c21.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-d5f48c21.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-5a9ad57d.entry.js → p-d6390915.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-d6390915.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-f972b493.system.entry.js → p-dee9037d.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-dee9037d.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-df44cc61.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-df44cc61.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-9f8576e1.entry.js → p-e47e3154.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-e47e3154.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-e96a04c2.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-e96a04c2.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-ed71080a.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-ed71080a.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-48321abf.system.entry.js → p-ed8e3256.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ed8e3256.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-f06218ed.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-f06218ed.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-f5eb353f.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-f5eb353f.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-152dd2f0.system.entry.js → p-fc3a0e2d.system.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-fc3a0e2d.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-fe512c19.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/{p-3bc4c242.entry.js → p-ffff808d.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-ffff808d.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/Templates-3e6d5043.js +0 -63
- package/dist/cjs/Templates-3e6d5043.js.map +0 -1
- package/dist/collection/components/dialogs/verdocs-upload-dialog/paperclip.svg +0 -3
- package/dist/collection/components/dialogs/verdocs-upload-dialog/trash.svg +0 -3
- package/dist/collection/components/elements/verdocs-field-attachment/paperclip.svg +0 -3
- package/dist/components/Pages.js +0 -20
- package/dist/components/Pages.js.map +0 -1
- package/dist/esm/Templates-035e0ea2.js +0 -60
- package/dist/esm/Templates-035e0ea2.js.map +0 -1
- package/dist/esm-es5/Templates-035e0ea2.js +0 -2
- package/dist/esm-es5/Templates-035e0ea2.js.map +0 -1
- package/dist/verdocs-web-sdk/p-03677b65.system.js +0 -2
- package/dist/verdocs-web-sdk/p-03677b65.system.js.map +0 -1
- package/dist/verdocs-web-sdk/p-04373c06.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-04373c06.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-0824553f.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-0824553f.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-152dd2f0.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-16c77fbb.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-16c77fbb.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-1935d358.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-3bc4c242.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-4226119d.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-4425de92.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-48321abf.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-52179311.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-52179311.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-5713fea6.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-5713fea6.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-5a9ad57d.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-5c40246d.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-5c40246d.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-60f92123.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-6258ec3f.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-6258ec3f.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-62ffe7a3.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-656369a3.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-656369a3.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-6d0c6604.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-6d0c6604.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-7a476918.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-7e7b1a27.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-824da7e4.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-824da7e4.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-9727d90b.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-9727d90b.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-98a23073.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-98a23073.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-9e1dda0b.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-9e1dda0b.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-9f8576e1.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-a43e5fb3.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-a717d591.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-a717d591.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-b5b9d603.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-b77e5b39.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-b8e6a9b6.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-b8e6a9b6.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-bdc40f6e.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-bf8a6175.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-bf8a6175.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-c0c61629.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-c0c61629.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-c1a9eb1f.js +0 -2
- package/dist/verdocs-web-sdk/p-c1a9eb1f.js.map +0 -1
- package/dist/verdocs-web-sdk/p-c51715f2.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-c51715f2.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-d2b22759.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-d2b22759.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-f29b8035.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-f29b8035.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-f5482845.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-f5a5e049.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-f972b493.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-fb13e1ce.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-fb13e1ce.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-fc2d6d85.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-fc2d6d85.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-ff1e07ee.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-ff1e07ee.system.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["src/components/controls/verdocs-loader/verdocs-loader.scss?tag=verdocs-loader","src/components/controls/verdocs-loader/verdocs-loader.tsx","src/components/embeds/verdocs-view/verdocs-view.scss?tag=verdocs-view","src/components/embeds/verdocs-view/verdocs-view.tsx","src/components/elements/verdocs-view-envelope-document/verdocs-view-envelope-document.scss?tag=verdocs-view-envelope-document","src/components/elements/verdocs-view-envelope-document/verdocs-view-envelope-document.tsx","src/components/elements/verdocs-view-template-document/verdocs-view-template-document.scss?tag=verdocs-view-template-document","src/components/elements/verdocs-view-template-document/verdocs-view-template-document.tsx"],"names":["verdocsLoaderCss","VerdocsLoader","exports","class_1","prototype","render","h","Host","verdocsViewCss","VerdocsView","VerdocsEndpoint","getDefault","name","type","class_2","componentWillLoad","this","endpoint","loadSession","componentDidLoad","templateId","envelopeId","console","error","warn","log","_d","getTemplate","template","_f","sent","_e","getEnvelope","envelope","e_1","_a","sdkError","emit","SDKError","message","_b","response","status","_c","data","_this","documentId","template_document","id","onPageRendered","p","pageRendered","detail","envelope_document_id","verdocsViewEnvelopeDocumentCss","VerdocsViewEnvelopeDocument","domPages","sourcePageMetrics","class_3","concat","getEnvelopeDocument","envelopeDocument","e_2","renderPage","pageNumber","domPage","pageMetrics","renderedPage","pages","e","handlePageRendered","stopPropagation","__spreadArray","sort","a","b","sequence","map","page","pageImageUri","display_uri","virtualWidth","virtualHeight","layers","pageLayers","verdocsViewTemplateDocumentCss","VerdocsViewTemplateDocument","class_4","getTemplateDocument","templateDocument","e_3"],"mappings":"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","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-loader {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n text-indent: -9999em;\n -webkit-animation: load5 1.1s infinite ease;\n animation: verdocs-loader-kf 1.1s infinite ease;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n}\n\n@keyframes verdocs-loader-kf {\n 0%,\n 100% {\n box-shadow: 0em -2.6em 0em 0em $verdocs-bg-2, 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.3), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.4);\n }\n 12.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.4), 1.8em -1.8em 0 0em $verdocs-bg-2, 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.3);\n }\n 25% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.3), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.4), 2.5em 0em 0 0em $verdocs-bg-2, 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 37.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.3), 2.5em 0em 0 0em rgba(0, 0, 0, 0.4), 1.75em 1.75em 0 0em $verdocs-bg-2,\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 50% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.3), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.4),\n 0em 2.5em 0 0em $verdocs-bg-2, -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 62.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.3),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.4), -1.8em 1.8em 0 0em $verdocs-bg-2, -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 75% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.3), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.4), -2.6em 0em 0 0em $verdocs-bg-2, -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 87.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.3), -2.6em 0em 0 0em rgba(0, 0, 0, 0.4), -1.8em -1.8em 0 0em $verdocs-bg-2;\n }\n}\n","import {Component, h, Host} from '@stencil/core';\n\n/**\n * Animated loader placeholder. There are currently no configuration options for this control.\n */\n@Component({\n tag: 'verdocs-loader',\n styleUrl: 'verdocs-loader.scss',\n shadow: false,\n})\nexport class VerdocsLoader {\n render() {\n return <Host />;\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {IEnvelope} from '@verdocs/js-sdk/Envelopes/Types';\nimport {ITemplate} from '@verdocs/js-sdk/Templates/Types';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport {getEnvelope} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View all of the documents attached to a template or envelope. All documents are displayed, in order. This embed wraps\n * verdocs-view-envelope-document or verdocs-view-template-document, as appropriate, and those controls may be used if\n * fine-grained control over which documents are displayed (or their order) is required.\n */\n@Component({\n tag: 'verdocs-view',\n styleUrl: 'verdocs-view.scss',\n shadow: false,\n})\nexport class VerdocsView {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to render. Set ONE OF templateId or envelopeId.\n */\n @Prop() templateId: string = '';\n\n /**\n * The envelope ID to render. Set ONE OF templateId or envelopeId. If both are set, envelopeId will be ignored.\n */\n @Prop() envelopeId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() template?: ITemplate = null;\n @State() envelope?: IEnvelope = null;\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.templateId && !this.envelopeId) {\n console.error(`[VIEW] Must specify one of templateId or envelopeId`);\n return;\n }\n\n if (this.templateId && this.envelopeId) {\n console.warn(`[VIEW] Both templateId and envelopeId specified, using templateId`);\n }\n\n try {\n if (this.templateId) {\n console.log('[VIEW] Loading template', this.templateId);\n this.template = await getTemplate(this.endpoint, this.templateId);\n console.log('[VIEW] Loaded template', this.template);\n } else if (this.envelopeId) {\n console.log('[VIEW] Loading envelope', this.envelopeId);\n this.envelope = await getEnvelope(this.endpoint, this.envelopeId);\n console.log('[VIEW] Loaded envelope', this.envelope);\n }\n\n // console.log(`[VIEW] Loading template ${this.templateId}`);\n // const template = await getTemplate(this.endpoint, this.templateId);\n //\n // console.log('[VIEW] Got template', this.template);\n // this.template = template;\n // this.pageNumbers = integerSequence(1, template.pages.length);\n //\n // const pageUris: Record<number, string> = {};\n // for await (let page of template.pages) {\n // console.log('[VIEW] Loading page', page);\n // // TODO: Make an endpoint to get all of the pages for a template\n // // TODO: When uploading a new template, pre-process its pages into images and comment that the individual page-loader is a utility,\n // // not the primary mechanism.\n // const image = await getPageImage(this.endpoint, this.templateId, page.sequence);\n // // TODO: Make this uri to match the rest of the terminology?\n // pageUris[page.sequence] = image.url;\n // console.log('[VIEW] Got image Uri', image.url);\n // this.loadProgress = page.sequence / template.pages.length;\n // }\n //\n // this.pageUris = pageUris;\n // this.loadProgress = 100;\n //\n // // this.pdfUrl = `${this.endpoint.getBaseURL()}/templates/${this.templateId}/documents/${template.template_document?.id}?file=true`;\n } catch (e) {\n console.log('[VIEW] Error loading data', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Determine whether a page is \"rotated\" (in either direction)\n // isRotated(rotation) {\n // return rotation !== 0 && rotation % 180 !== 0;\n // }\n\n // Render one document page. Note that pageNumber is 1-based.\n // async renderPage(pageNumber: number): Promise<void> {\n // const domPage = this.domPages[pageNumber];\n //\n // // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n // if (!domPage) {\n // console.log('[VIEW] Skipping rendering page not yet in DOM', {pageNumber});\n // return;\n // }\n //\n // const pageMetrics = this.sourcePageMetrics[pageNumber];\n //\n // console.log('[VIEW] Rendering page', {pageNumber, pageMetrics, domPage});\n // try {\n // // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // // console.log('[VIEW] Page viewport', domPage.xScale, viewport);\n //\n // // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // // if (!canvas) {\n // // console.log('[VIEW] Unable to find canvas element');\n // // return;\n // // }\n // //\n // // canvas.width = domPage.renderedWidth;\n // // canvas.height = domPage.renderedHeight;\n // // const canvasContext = canvas.getContext('2d');\n // // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // // await pdfPage.render({canvasContext, viewport});\n //\n // this.pageRendered.emit({\n // renderedPage: domPage,\n // sourcePageMetrics: pageMetrics,\n // pages: this.domPages,\n // });\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW] Error rendering page', e);\n // }\n // }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW] Loading error', e);\n // });\n // }\n\n // async handlePageRendered(e: any) {\n // e.stopPropagation();\n //\n // const domPage = e.detail as IDocumentPageInfo;\n // this.domPages[domPage.pageNumber] = domPage;\n // await this.renderPage(domPage.pageNumber);\n // }\n\n render() {\n console.log('[VIEW] Rendering', this.templateId, this.envelopeId);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {this.template && (\n <verdocs-view-template-document\n endpoint={this.endpoint}\n templateId={this.templateId}\n documentId={this.template.template_document?.id}\n onPageRendered={p => this.pageRendered?.emit(p.detail)}\n />\n )}\n {this.envelope && (\n <verdocs-view-envelope-document\n endpoint={this.endpoint}\n envelopeId={this.envelopeId}\n documentId={this.envelope.envelope_document_id}\n onPageRendered={p => this.pageRendered?.emit(p.detail)}\n />\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view-envelope-document {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n width: 100%;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {IEnvelopeDocument} from '@verdocs/js-sdk/Envelopes/Types';\nimport {getEnvelopeDocument} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View a single document attached to an envelope. Note that envelopes always require authentication to access them. If you are viewing\n * this component in Storybook, visit Embeds > Auth first to log in, then paste a valid envelopeId and documentId in the properties\n * below from your account to view that envelope. If you want to see an anonymous-access use case, this component is functionally similar\n * to ViewTemplateDocument, which is pre-configured to display a public template.\n */\n@Component({\n tag: 'verdocs-view-envelope-document',\n styleUrl: 'verdocs-view-envelope-document.scss',\n shadow: false,\n})\nexport class VerdocsViewEnvelopeDocument {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The envelope ID to render\n */\n @Prop() envelopeId: string = '';\n\n /**\n * The document ID to render\n */\n @Prop() documentId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() envelopeDocument: IEnvelopeDocument | null = null;\n\n domPages: Record<number, IDocumentPageInfo> = {};\n\n sourcePageMetrics: Record<number, {width: number; height: number}> = {};\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.envelopeId || !this.documentId) {\n console.log(`[VIEW-ENVELOPE] Missing required envelope ID ${this.envelopeId}`);\n return;\n }\n\n try {\n console.log(`[VIEW-ENVELOPE] Loading envelope ${this.envelopeId}`);\n this.envelopeDocument = await getEnvelopeDocument(this.endpoint, this.envelopeId, this.documentId);\n if (!this.envelopeDocument) {\n console.error('[VIEW-ENVELOPE] Unable to load envelope document', this.envelopeId, this.documentId);\n }\n\n console.log('[VIEW-ENVELOPE] Got envelope document', this.envelopeDocument);\n } catch (e) {\n console.log('[VIEW-ENVELOPE] Error loading envelope', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Render one document page. Note that pageNumber is 1-based.\n async renderPage(pageNumber: number): Promise<void> {\n const domPage = this.domPages[pageNumber];\n\n // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n if (!domPage) {\n console.log('[VIEW-ENVELOPE] Skipping rendering page not yet in DOM', {pageNumber});\n return;\n }\n\n const pageMetrics = this.sourcePageMetrics[pageNumber];\n\n console.log('[VIEW-ENVELOPE] Rendering page', {pageNumber, pageMetrics, domPage});\n try {\n // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // console.log('[VIEW-TEMPLATE] Page viewport', domPage.xScale, viewport);\n\n // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // if (!canvas) {\n // console.log('[VIEW-TEMPLATE] Unable to find canvas element');\n // return;\n // }\n //\n // canvas.width = domPage.renderedWidth;\n // canvas.height = domPage.renderedHeight;\n // const canvasContext = canvas.getContext('2d');\n // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // await pdfPage.render({canvasContext, viewport});\n\n this.pageRendered.emit({\n renderedPage: domPage,\n sourcePageMetrics: pageMetrics,\n pages: this.domPages,\n });\n } catch (e) {\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n console.warn('[VIEW-ENVELOPE] Error rendering page', e);\n }\n }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW-TEMPLATE] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW-TEMPLATE] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW-TEMPLATE] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW-TEMPLATE] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW-TEMPLATE] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW-TEMPLATE] Loading error', e);\n // });\n // }\n\n async handlePageRendered(e: any) {\n e.stopPropagation();\n\n const domPage = e.detail as IDocumentPageInfo;\n this.domPages[domPage.pageNumber] = domPage;\n await this.renderPage(domPage.pageNumber);\n }\n\n render() {\n console.log('[VIEW-ENVELOPE] Rendering pages', this.envelopeDocument?.pages);\n\n // TODO: The API is supposed to always return these sorted...\n const pages = [...(this.envelopeDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {pages.map(page => (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n // TODO: Store image dimensions in the DB rows and pass them to clients with the page data\n // virtualWidth={this.sourcePageMetrics[pageNumber]?.width || 612}\n // virtualHeight={this.sourcePageMetrics[pageNumber]?.height || 792}\n pageNumber={page.sequence}\n layers={this.pageLayers}\n onPageRendered={p => this.handlePageRendered(p)}\n />\n ))}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view-template-document {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n width: 100%;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {getTemplateDocument} from '@verdocs/js-sdk/Templates/TemplateDocuments';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {ITemplateDocument} from '@verdocs/js-sdk/Templates/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View a single document attached to a template. Note that if you are accessing a template that is not public, you must be authenticated.\n * You can authenticate within this Storybook via the Embeds > Auth control.\n */\n@Component({\n tag: 'verdocs-view-template-document',\n styleUrl: 'verdocs-view-template-document.scss',\n shadow: false,\n})\nexport class VerdocsViewTemplateDocument {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to render\n */\n @Prop() templateId: string = '';\n\n /**\n * The document ID to render within the template\n */\n @Prop() documentId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() templateDocument: ITemplateDocument | null = null;\n\n domPages: Record<number, IDocumentPageInfo> = {};\n\n sourcePageMetrics: Record<number, {width: number; height: number}> = {};\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.templateId || !this.documentId) {\n console.log(`[VIEW-TEMPLATE] Missing required template ID ${this.templateId}`);\n return;\n }\n\n try {\n console.log(`[VIEW-TEMPLATE] Loading template ${this.templateId}`);\n this.templateDocument = await getTemplateDocument(this.endpoint, this.templateId, this.documentId);\n if (!this.templateDocument) {\n console.error('[VIEW-TEMPLATE] Unable to load template document', this.templateId, this.documentId);\n }\n\n console.log('[VIEW-TEMPLATE] Got template', this.templateDocument);\n } catch (e) {\n console.log('[VIEW-TEMPLATE] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Render one document page. Note that pageNumber is 1-based.\n async renderPage(pageNumber: number): Promise<void> {\n const domPage = this.domPages[pageNumber];\n\n // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n if (!domPage) {\n console.log('[VIEW-TEMPLATE] Skipping rendering page not yet in DOM', {pageNumber});\n return;\n }\n\n const pageMetrics = this.sourcePageMetrics[pageNumber];\n\n // console.log('[VIEW-TEMPLATE] Rendering page', {pageNumber, pageMetrics, domPage});\n try {\n // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // console.log('[VIEW-TEMPLATE] Page viewport', domPage.xScale, viewport);\n\n // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // if (!canvas) {\n // console.log('[VIEW-TEMPLATE] Unable to find canvas element');\n // return;\n // }\n //\n // canvas.width = domPage.renderedWidth;\n // canvas.height = domPage.renderedHeight;\n // const canvasContext = canvas.getContext('2d');\n // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // await pdfPage.render({canvasContext, viewport});\n\n this.pageRendered.emit({\n renderedPage: domPage,\n sourcePageMetrics: pageMetrics,\n pages: this.domPages,\n });\n } catch (e) {\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n console.warn('[VIEW-TEMPLATE] Error rendering page', e);\n }\n }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW-TEMPLATE] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW-TEMPLATE] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW-TEMPLATE] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW-TEMPLATE] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW-TEMPLATE] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW-TEMPLATE] Loading error', e);\n // });\n // }\n\n async handlePageRendered(e: any) {\n e.stopPropagation();\n\n const domPage = e.detail as IDocumentPageInfo;\n this.domPages[domPage.pageNumber] = domPage;\n await this.renderPage(domPage.pageNumber);\n }\n\n render() {\n console.log('[VIEW-TEMPLATE] Rendering pages', this.templateDocument?.pages);\n\n // TODO: The API is supposed to always return these sorted...\n const pages = [...(this.templateDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {pages.map(page => (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n // TODO: Store image dimensions in the DB rows and pass them to clients with the page data\n // virtualWidth={this.sourcePageMetrics[pageNumber]?.width || 612}\n // virtualHeight={this.sourcePageMetrics[pageNumber]?.height || 792}\n pageNumber={page.sequence}\n layers={this.pageLayers}\n onPageRendered={p => this.handlePageRendered(p)}\n />\n ))}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["src/components/controls/verdocs-loader/verdocs-loader.scss?tag=verdocs-loader","src/components/controls/verdocs-loader/verdocs-loader.tsx","src/components/embeds/verdocs-view/verdocs-view.scss?tag=verdocs-view","src/components/embeds/verdocs-view/verdocs-view.tsx","src/components/elements/verdocs-view-envelope-document/verdocs-view-envelope-document.scss?tag=verdocs-view-envelope-document","src/components/elements/verdocs-view-envelope-document/verdocs-view-envelope-document.tsx","src/components/elements/verdocs-view-template-document/verdocs-view-template-document.scss?tag=verdocs-view-template-document","src/components/elements/verdocs-view-template-document/verdocs-view-template-document.tsx"],"names":["verdocsLoaderCss","VerdocsLoader","exports","class_1","prototype","render","h","Host","verdocsViewCss","VerdocsView","VerdocsEndpoint","getDefault","name","type","class_2","componentWillLoad","this","endpoint","loadSession","componentDidLoad","templateId","envelopeId","console","error","warn","log","_d","getTemplate","template","_f","sent","_e","getEnvelope","envelope","e_1","_a","sdkError","emit","SDKError","message","_b","response","status","_c","data","_this","documentId","template_document","id","onPageRendered","p","pageRendered","detail","envelope_document_id","verdocsViewEnvelopeDocumentCss","VerdocsViewEnvelopeDocument","domPages","sourcePageMetrics","class_3","concat","getEnvelopeDocument","envelopeDocument","e_2","renderPage","pageNumber","domPage","pageMetrics","renderedPage","pages","e","handlePageRendered","stopPropagation","__spreadArray","sort","a","b","sequence","map","page","pageImageUri","display_uri","virtualWidth","virtualHeight","layers","pageLayers","verdocsViewTemplateDocumentCss","VerdocsViewTemplateDocument","class_4","getTemplateDocument","templateDocument","e_3"],"mappings":"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","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-loader {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -20px;\n margin-top: -20px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n text-indent: -9999em;\n -webkit-animation: load5 1.1s infinite ease;\n animation: verdocs-loader-kf 1.1s infinite ease;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n}\n\n@keyframes verdocs-loader-kf {\n 0%,\n 100% {\n box-shadow: 0em -2.6em 0em 0em $verdocs-bg-2, 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.3), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.4);\n }\n 12.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.4), 1.8em -1.8em 0 0em $verdocs-bg-2, 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.3);\n }\n 25% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.3), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.4), 2.5em 0em 0 0em $verdocs-bg-2, 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 37.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.3), 2.5em 0em 0 0em rgba(0, 0, 0, 0.4), 1.75em 1.75em 0 0em $verdocs-bg-2,\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 50% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.3), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.4),\n 0em 2.5em 0 0em $verdocs-bg-2, -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.2), -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 62.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.3),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.4), -1.8em 1.8em 0 0em $verdocs-bg-2, -2.6em 0em 0 0em rgba(0, 0, 0, 0.2), -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 75% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.3), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.4), -2.6em 0em 0 0em $verdocs-bg-2, -1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2);\n }\n 87.5% {\n box-shadow: 0em -2.6em 0em 0em rgba(0, 0, 0, 0.2), 1.8em -1.8em 0 0em rgba(0, 0, 0, 0.2), 2.5em 0em 0 0em rgba(0, 0, 0, 0.2), 1.75em 1.75em 0 0em rgba(0, 0, 0, 0.2),\n 0em 2.5em 0 0em rgba(0, 0, 0, 0.2), -1.8em 1.8em 0 0em rgba(0, 0, 0, 0.3), -2.6em 0em 0 0em rgba(0, 0, 0, 0.4), -1.8em -1.8em 0 0em $verdocs-bg-2;\n }\n}\n","import {Component, h, Host} from '@stencil/core';\n\n/**\n * Animated loader placeholder. There are currently no configuration options for this control.\n */\n@Component({\n tag: 'verdocs-loader',\n styleUrl: 'verdocs-loader.scss',\n shadow: false,\n})\nexport class VerdocsLoader {\n render() {\n return <Host />;\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {IEnvelope} from '@verdocs/js-sdk/Envelopes/Types';\nimport {ITemplate} from '@verdocs/js-sdk/Templates/Types';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport {getEnvelope} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View all of the documents attached to a template or envelope. All documents are displayed, in order. This embed wraps\n * verdocs-view-envelope-document or verdocs-view-template-document, as appropriate, and those controls may be used if\n * fine-grained control over which documents are displayed (or their order) is required.\n */\n@Component({\n tag: 'verdocs-view',\n styleUrl: 'verdocs-view.scss',\n shadow: false,\n})\nexport class VerdocsView {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to render. Set ONE OF templateId or envelopeId.\n */\n @Prop() templateId: string = '';\n\n /**\n * The envelope ID to render. Set ONE OF templateId or envelopeId. If both are set, envelopeId will be ignored.\n */\n @Prop() envelopeId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() template?: ITemplate = null;\n @State() envelope?: IEnvelope = null;\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.templateId && !this.envelopeId) {\n console.error(`[VIEW] Must specify one of templateId or envelopeId`);\n return;\n }\n\n if (this.templateId && this.envelopeId) {\n console.warn(`[VIEW] Both templateId and envelopeId specified, using templateId`);\n }\n\n try {\n if (this.templateId) {\n console.log('[VIEW] Loading template', this.templateId);\n this.template = await getTemplate(this.endpoint, this.templateId);\n console.log('[VIEW] Loaded template', this.template);\n } else if (this.envelopeId) {\n console.log('[VIEW] Loading envelope', this.envelopeId);\n this.envelope = await getEnvelope(this.endpoint, this.envelopeId);\n console.log('[VIEW] Loaded envelope', this.envelope);\n }\n } catch (e) {\n console.log('[VIEW] Error loading data', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Determine whether a page is \"rotated\" (in either direction)\n // isRotated(rotation) {\n // return rotation !== 0 && rotation % 180 !== 0;\n // }\n\n // Render one document page. Note that pageNumber is 1-based.\n // async renderPage(pageNumber: number): Promise<void> {\n // const domPage = this.domPages[pageNumber];\n //\n // // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n // if (!domPage) {\n // console.log('[VIEW] Skipping rendering page not yet in DOM', {pageNumber});\n // return;\n // }\n //\n // const pageMetrics = this.sourcePageMetrics[pageNumber];\n //\n // console.log('[VIEW] Rendering page', {pageNumber, pageMetrics, domPage});\n // try {\n // // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // // console.log('[VIEW] Page viewport', domPage.xScale, viewport);\n //\n // // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // // if (!canvas) {\n // // console.log('[VIEW] Unable to find canvas element');\n // // return;\n // // }\n // //\n // // canvas.width = domPage.renderedWidth;\n // // canvas.height = domPage.renderedHeight;\n // // const canvasContext = canvas.getContext('2d');\n // // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // // await pdfPage.render({canvasContext, viewport});\n //\n // this.pageRendered.emit({\n // renderedPage: domPage,\n // sourcePageMetrics: pageMetrics,\n // pages: this.domPages,\n // });\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW] Error rendering page', e);\n // }\n // }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW] Loading error', e);\n // });\n // }\n\n // async handlePageRendered(e: any) {\n // e.stopPropagation();\n //\n // const domPage = e.detail as IDocumentPageInfo;\n // this.domPages[domPage.pageNumber] = domPage;\n // await this.renderPage(domPage.pageNumber);\n // }\n\n render() {\n console.log('[VIEW] Rendering', this.templateId, this.envelopeId);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {this.template && (\n <verdocs-view-template-document\n endpoint={this.endpoint}\n templateId={this.templateId}\n documentId={this.template.template_document?.id}\n onPageRendered={p => this.pageRendered?.emit(p.detail)}\n />\n )}\n {this.envelope && (\n <verdocs-view-envelope-document\n endpoint={this.endpoint}\n envelopeId={this.envelopeId}\n documentId={this.envelope.envelope_document_id}\n onPageRendered={p => this.pageRendered?.emit(p.detail)}\n />\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view-envelope-document {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n width: 100%;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {IEnvelopeDocument} from '@verdocs/js-sdk/Envelopes/Types';\nimport {getEnvelopeDocument} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View a single document attached to an envelope. Note that envelopes always require authentication to access them. If you are viewing\n * this component in Storybook, visit Embeds > Auth first to log in, then paste a valid envelopeId and documentId in the properties\n * below from your account to view that envelope. If you want to see an anonymous-access use case, this component is functionally similar\n * to ViewTemplateDocument, which is pre-configured to display a public template.\n */\n@Component({\n tag: 'verdocs-view-envelope-document',\n styleUrl: 'verdocs-view-envelope-document.scss',\n shadow: false,\n})\nexport class VerdocsViewEnvelopeDocument {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The envelope ID to render\n */\n @Prop() envelopeId: string = '';\n\n /**\n * The document ID to render\n */\n @Prop() documentId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() envelopeDocument: IEnvelopeDocument | null = null;\n\n domPages: Record<number, IDocumentPageInfo> = {};\n\n sourcePageMetrics: Record<number, {width: number; height: number}> = {};\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.envelopeId || !this.documentId) {\n console.log(`[VIEW-ENVELOPE] Missing required envelope ID ${this.envelopeId}`);\n return;\n }\n\n try {\n console.log(`[VIEW-ENVELOPE] Loading envelope ${this.envelopeId}`);\n this.envelopeDocument = await getEnvelopeDocument(this.endpoint, this.envelopeId, this.documentId);\n if (!this.envelopeDocument) {\n console.error('[VIEW-ENVELOPE] Unable to load envelope document', this.envelopeId, this.documentId);\n }\n\n console.log('[VIEW-ENVELOPE] Got envelope document', this.envelopeDocument);\n } catch (e) {\n console.log('[VIEW-ENVELOPE] Error loading envelope', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Render one document page. Note that pageNumber is 1-based.\n async renderPage(pageNumber: number): Promise<void> {\n const domPage = this.domPages[pageNumber];\n\n // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n if (!domPage) {\n console.log('[VIEW-ENVELOPE] Skipping rendering page not yet in DOM', {pageNumber});\n return;\n }\n\n const pageMetrics = this.sourcePageMetrics[pageNumber];\n\n console.log('[VIEW-ENVELOPE] Rendering page', {pageNumber, pageMetrics, domPage});\n try {\n // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // console.log('[VIEW-TEMPLATE] Page viewport', domPage.xScale, viewport);\n\n // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // if (!canvas) {\n // console.log('[VIEW-TEMPLATE] Unable to find canvas element');\n // return;\n // }\n //\n // canvas.width = domPage.renderedWidth;\n // canvas.height = domPage.renderedHeight;\n // const canvasContext = canvas.getContext('2d');\n // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // await pdfPage.render({canvasContext, viewport});\n\n this.pageRendered.emit({\n renderedPage: domPage,\n sourcePageMetrics: pageMetrics,\n pages: this.domPages,\n });\n } catch (e) {\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n console.warn('[VIEW-ENVELOPE] Error rendering page', e);\n }\n }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW-TEMPLATE] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW-TEMPLATE] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW-TEMPLATE] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW-TEMPLATE] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW-TEMPLATE] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW-TEMPLATE] Loading error', e);\n // });\n // }\n\n async handlePageRendered(e: any) {\n e.stopPropagation();\n\n const domPage = e.detail as IDocumentPageInfo;\n this.domPages[domPage.pageNumber] = domPage;\n await this.renderPage(domPage.pageNumber);\n }\n\n render() {\n console.log('[VIEW-ENVELOPE] Rendering pages', this.envelopeDocument?.pages);\n\n // TODO: The API is supposed to always return these sorted...\n const pages = [...(this.envelopeDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {pages.map(page => (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n // TODO: Store image dimensions in the DB rows and pass them to clients with the page data\n // virtualWidth={this.sourcePageMetrics[pageNumber]?.width || 612}\n // virtualHeight={this.sourcePageMetrics[pageNumber]?.height || 792}\n pageNumber={page.sequence}\n layers={this.pageLayers}\n onPageRendered={p => this.handlePageRendered(p)}\n />\n ))}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view-template-document {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n width: 100%;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, State} from '@stencil/core';\nimport {getTemplateDocument} from '@verdocs/js-sdk/Templates/TemplateDocuments';\nimport {IDocumentPageInfo, IPageLayer} from '../../../utils/Types';\nimport {ITemplateDocument} from '@verdocs/js-sdk/Templates/Types';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface ISourcePageMetrics {\n width: number;\n height: number;\n}\n\nexport interface IPageRenderEvent {\n renderedPage: IDocumentPageInfo;\n sourcePageMetrics: ISourcePageMetrics;\n pages: Record<number, IDocumentPageInfo>;\n}\n\n/**\n * View a single document attached to a template. Note that if you are accessing a template that is not public, you must be authenticated.\n * You can authenticate within this Storybook via the Embeds > Auth control.\n */\n@Component({\n tag: 'verdocs-view-template-document',\n styleUrl: 'verdocs-view-template-document.scss',\n shadow: false,\n})\nexport class VerdocsViewTemplateDocument {\n @Element() component: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to render\n */\n @Prop() templateId: string = '';\n\n /**\n * The document ID to render within the template\n */\n @Prop() documentId: string = '';\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Layers will be passed through to the individual pages inside this component.\n */\n @Prop() pageLayers: IPageLayer[] = [\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ];\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPageRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() templateDocument: ITemplateDocument | null = null;\n\n domPages: Record<number, IDocumentPageInfo> = {};\n\n sourcePageMetrics: Record<number, {width: number; height: number}> = {};\n\n componentWillLoad() {\n this.endpoint.loadSession();\n }\n\n // TODO: Handling signing vs preview-as-user cases\n // TODO: Handle anonymous case and failure to load due to not being logged in\n async componentDidLoad() {\n if (!this.templateId || !this.documentId) {\n console.log(`[VIEW-TEMPLATE] Missing required template ID ${this.templateId}`);\n return;\n }\n\n try {\n console.log(`[VIEW-TEMPLATE] Loading template ${this.templateId}`);\n this.templateDocument = await getTemplateDocument(this.endpoint, this.templateId, this.documentId);\n if (!this.templateDocument) {\n console.error('[VIEW-TEMPLATE] Unable to load template document', this.templateId, this.documentId);\n }\n\n console.log('[VIEW-TEMPLATE] Got template', this.templateDocument);\n } catch (e) {\n console.log('[VIEW-TEMPLATE] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n // Render one document page. Note that pageNumber is 1-based.\n async renderPage(pageNumber: number): Promise<void> {\n const domPage = this.domPages[pageNumber];\n\n // Two async operations happen here, loading the PDF and rendering the DOM div/canvas placeholders to draw the pages on.\n if (!domPage) {\n console.log('[VIEW-TEMPLATE] Skipping rendering page not yet in DOM', {pageNumber});\n return;\n }\n\n const pageMetrics = this.sourcePageMetrics[pageNumber];\n\n // console.log('[VIEW-TEMPLATE] Rendering page', {pageNumber, pageMetrics, domPage});\n try {\n // const pdfPage = await this.pdfDocument.getPage(pageNumber);\n // const viewport = pdfPage.getViewport({scale: domPage.xScale});\n // console.log('[VIEW-TEMPLATE] Page viewport', domPage.xScale, viewport);\n\n // const canvas = document.getElementById(`${domPage.containerId}-page`) as HTMLCanvasElement | null;\n // if (!canvas) {\n // console.log('[VIEW-TEMPLATE] Unable to find canvas element');\n // return;\n // }\n //\n // canvas.width = domPage.renderedWidth;\n // canvas.height = domPage.renderedHeight;\n // const canvasContext = canvas.getContext('2d');\n // canvasContext.clearRect(0, 0, domPage.renderedWidth, domPage.renderedHeight);\n // await pdfPage.render({canvasContext, viewport});\n\n this.pageRendered.emit({\n renderedPage: domPage,\n sourcePageMetrics: pageMetrics,\n pages: this.domPages,\n });\n } catch (e) {\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n console.warn('[VIEW-TEMPLATE] Error rendering page', e);\n }\n }\n\n // async renderPages(): Promise<void> {\n // const pageNumbersToRender = integerSequence(1, this.numPages);\n // for await (let pageNumber of pageNumbersToRender) {\n // try {\n // await this.renderPage(pageNumber);\n // } catch (e) {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.warn('[VIEW-TEMPLATE] Error rendering pages', e);\n // }\n // }\n // }\n\n // onProgress(progress: OnProgressParameters) {\n // console.log(`[VIEW-TEMPLATE] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);\n // this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n // }\n\n // After a document is done loading, go through its pages to get their dimensions\n // async parsePageMetrics(pdfDocument: pdfjsLib.PDFDocumentProxy) {\n // const pageNumbersToRender = integerSequence(1, pdfDocument.numPages);\n //\n // for await (let pageNumber of pageNumbersToRender) {\n // const pdfPage = await pdfDocument.getPage(1);\n // const [pageX0, pageY0, pageX1, pageY1] = pdfPage.view;\n // this.sourcePageMetrics[pageNumber] = {width: pageX1 - pageX0, height: pageY1 - pageY0};\n // }\n //\n // console.log('[VIEW-TEMPLATE] Parsed page metrics', this.sourcePageMetrics);\n // }\n\n // loadAndRender(src: string): void {\n // console.log('[VIEW-TEMPLATE] Loading', src);\n //\n // const token = this.endpoint.getToken();\n // const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n //\n // const source = {\n // url: src,\n // cMapUrl: CMAPS_URL,\n // cMapPacked: true,\n // httpHeaders,\n // withCredentials: true,\n // stopAtErrors: true,\n // verbosity: pdfjsLib.VerbosityLevel.WARNINGS,\n // // verbosity: pdfjsLib.VerbosityLevel.INFOS,\n // } as DocumentInitParameters;\n //\n // // @ts-ignore\n // const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n // loadingTask.onProgress = this.onProgress;\n // loadingTask.promise\n // .then(async (pdfDocument: pdfjsLib.PDFDocumentProxy) => {\n // await this.parsePageMetrics(pdfDocument);\n //\n // this.pdfDocument = pdfDocument;\n // this.numPages = pdfDocument.numPages;\n // this.fingerprints = pdfDocument.fingerprints;\n // console.log(`[VIEW-TEMPLATE] Got PDF document fingerprints \"${this.fingerprints.join(', ')}\", ${this.numPages} page(s)`);\n //\n // // We don't try to render the pages here, setting loadProtress triggers that by adding the individual page entries in\n // // DOM in render() below. Each page then fires onPageRendered when it is ready to receive content.\n // this.loadProgress = 100;\n // })\n // .catch(e => {\n // this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n // console.log('[VIEW-TEMPLATE] Loading error', e);\n // });\n // }\n\n async handlePageRendered(e: any) {\n e.stopPropagation();\n\n const domPage = e.detail as IDocumentPageInfo;\n this.domPages[domPage.pageNumber] = domPage;\n await this.renderPage(domPage.pageNumber);\n }\n\n render() {\n console.log('[VIEW-TEMPLATE] Rendering pages', this.templateDocument?.pages);\n\n // TODO: The API is supposed to always return these sorted...\n const pages = [...(this.templateDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n // TODO: Error handling for missing pages. Is it better to skip the page or show a placeholder?\n return (\n <Host>\n {pages.map(page => (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n // TODO: Store image dimensions in the DB rows and pass them to clients with the page data\n // virtualWidth={this.sourcePageMetrics[pageNumber]?.width || 612}\n // virtualHeight={this.sourcePageMetrics[pageNumber]?.height || 792}\n pageNumber={page.sequence}\n layers={this.pageLayers}\n onPageRendered={p => this.handlePageRendered(p)}\n />\n ))}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var __assign=this&&this.__assign||function(){__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(e,t,n,i){function s(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,o){function l(e){try{a(i.next(e))}catch(e){o(e)}}function r(e){try{a(i["throw"](e))}catch(e){o(e)}}function a(e){e.done?n(e.value):s(e.value).then(l,r)}a((i=i.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,s,o,l;return l={next:r(0),throw:r(1),return:r(2)},typeof Symbol==="function"&&(l[Symbol.iterator]=function(){return this}),l;function r(e){return function(t){return a([e,t])}}function a(l){if(i)throw new TypeError("Generator is already executing.");while(n)try{if(i=1,s&&(o=l[0]&2?s["return"]:l[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,l[1])).done)return o;if(s=0,o)l=[l[0]&2,o.value];switch(l[0]){case 0:case 1:o=l;break;case 4:n.label++;return{value:l[1],done:false};case 5:n.label++;s=l[1];l=[0];continue;case 7:l=n.ops.pop();n.trys.pop();continue;default:if(!(o=n.trys,o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1];o=l;break}if(o&&n.label<o[2]){n.label=o[2];n.ops.push(l);break}if(o[2])n.ops.pop();n.trys.pop();continue}l=t.call(e,n)}catch(e){l=[6,e];s=0}finally{i=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};System.register(["./p-97329951.system.js","./p-df878df9.system.js","./p-a7433630.system.js","./p-7efdefa3.system.js","./p-05eb4fed.system.js","./p-6e1ada33.system.js","./p-a4041773.system.js"],(function(e){"use strict";var t,n,i,s,o,l,r,a,c,d;return{setters:[function(e){t=e.r;n=e.c;i=e.h;s=e.H},function(e){o=e.g},function(){},function(e){l=e.i;r=e.a},function(e){a=e.g},function(e){c=e.V},function(e){d=e.a}],execute:function(){var p='verdocs-send{display:-ms-flexbox;display:flex;padding:10px;position:relative;background:#ffffff;-ms-flex-direction:column;flex-direction:column;font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif}verdocs-send .recipients{position:relative}verdocs-send .left-line{top:32px;left:20px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-send .level{display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;margin-left:50px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:8px 0 4px 0;border-bottom:1px solid #97979744}verdocs-send .level .level-icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-send .level .level-icon svg{fill:#00000089}verdocs-send .level .recipient{height:30px;display:-ms-flexbox;display:flex;-ms-flex:0 0 30px;flex:0 0 30px;color:#000000;cursor:pointer;font-size:14px;-ms-flex-align:center;align-items:center;border-radius:30px;-ms-flex-direction:row;flex-direction:row;background:#dddddd;white-space:nowrap;padding:2px 10px 2px 14px}verdocs-send .level .recipient .icon{width:22px;height:22px;-ms-flex:0 0 22px;flex:0 0 22px;margin:0 0 0 10px}verdocs-send .level .recipient .icon svg{width:22px;height:22px;fill:#333333;outline:none}verdocs-send .level .complete{-ms-flex:1;flex:1;height:30px;display:-ms-flexbox;display:flex;color:#000000;font-size:14px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:3px 10px 3px 2px}verdocs-send .buttons{display:-ms-flexbox;display:flex;margin-top:10px;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;-ms-flex-direction:row;flex-direction:row}verdocs-send verdocs-contact-picker{left:0;top:41px;z-index:10;position:absolute;border:1px solid #dddddd;-webkit-box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1);box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1)}';var u='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></svg>';var f='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z"></path></svg>';var h='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg>';var v='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z"></path></svg>';var x=e("verdocs_send",function(){function e(e){t(this,e);this.send=n(this,"send",7);this.cancel=n(this,"cancel",7);this.sdkError=n(this,"sdkError",7);this.levels=[];this.endpoint=c.getDefault();this.templateId=null;this.template=null;this.pdfUrl=null;this.containerId="verdocs-send-".concat(Math.random().toString(36).substring(2,11));this.rolesAtLevel={};this.showPickerForId="";this.sessionContacts=[];this.recipientsAssigned={}}e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n;return __generator(this,(function(i){switch(i.label){case 0:this.sessionContacts=[];i.label=1;case 1:i.trys.push([1,3,,4]);return[4,this.endpoint.loadSession()];case 2:t=i.sent();if((e=t.session)===null||e===void 0?void 0:e.profile){this.sessionContacts.push({id:t.session.profile.id,name:"".concat(t.session.profile.first_name," ").concat(t.session.profile.last_name),email:t.session.profile.email,phone:t.session.profile.phone})}return[3,4];case 3:n=i.sent();console.log("Error loading session",n);return[3,4];case 4:return[2]}}))}))};e.prototype.componentDidLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n;return __generator(this,(function(i){switch(i.label){case 0:console.log("[SEND] Showing template",this.templateId);i.label=1;case 1:i.trys.push([1,3,,4]);console.log("[SEND] Loading template ".concat(this.templateId));return[4,o(this.endpoint,this.templateId)];case 2:e=i.sent();console.log("[SEND] Got template",e);this.template=e;if(e===null||e===void 0?void 0:e.roles){t={};e.roles.forEach((function(e){var n=e.sequence-1;t[n]||(t[n]=[]);var i="r-".concat(n,"-").concat(t[n].length);t[n].push(__assign(__assign({},e),{id:i}))}));this.rolesAtLevel=t;this.levels=Object.keys(t).map((function(e){return+e}));this.levels.sort((function(e,t){return e-t}))}return[3,4];case 3:n=i.sent();console.log("[SEND] Error getting template",n);return[3,4];case 4:return[2]}}))}))};e.prototype.getLevelIcon=function(e){if(e<0){return i("div",{class:"level-icon",innerHTML:f})}else if(e>=this.levels.length){return i("div",{class:"level-icon",innerHTML:v})}else{return i("div",{class:"level-icon",innerHTML:h})}};e.prototype.handleSelectContact=function(e,t){e.preventDefault();this.recipientsAssigned[t.id]=__assign(__assign({},t),e.detail);this.showPickerForId=""};e.prototype.handleClickRole=function(e,t){e.stopPropagation();this.showPickerForId=t.id};e.prototype.handleSend=function(e){var t;e.stopPropagation();(t=this.send)===null||t===void 0?void 0:t.emit({recipientsAssigned:Object.values(this.recipientsAssigned)})};e.prototype.handleCancel=function(e){var t;e.stopPropagation();(t=this.cancel)===null||t===void 0?void 0:t.emit()};e.prototype.render=function(){var e=this;var t,n,o;var c=((n=(t=this.template)===null||t===void 0?void 0:t.roles)===null||n===void 0?void 0:n.map((function(e){return e.name})))||[];var p=Object.values(this.recipientsAssigned).filter((function(e){console.log("valid email",l(e.email),e.email);console.log("valid phone",r(e.phone),e.phone);return l(e.email)||r(e.phone)})).length>=((o=this.template)===null||o===void 0?void 0:o.roles.length);console.log("assigned",p);return i(s,{class:{}},i("div",{class:"recipients"},i("div",{class:"left-line"}),i("div",{class:"level level-start"},this.getLevelIcon(-1),i("div",{class:"complete"},"Send Document")),this.levels.map((function(t){return i("div",{class:"level level-".concat(t)},e.getLevelIcon(t),e.rolesAtLevel[t].map((function(t){var n,s,o;return i("div",{class:"recipient",style:{backgroundColor:a(d(c,t.name))},onClick:function(n){return e.handleClickRole(n,t)}},(s=(n=e.recipientsAssigned[t.id])===null||n===void 0?void 0:n.full_name)!==null&&s!==void 0?s:t.name,i("div",{class:"icon",innerHTML:u}),e.showPickerForId===t.id&&i("verdocs-contact-picker",{onCancel:function(){return e.showPickerForId=""},contactSuggestions:e.sessionContacts,templateRole:(o=e.recipientsAssigned[t.id])!==null&&o!==void 0?o:t,onSearchContacts:function(e){return console.log("Search",e.detail)}
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
var __assign=this&&this.__assign||function(){__assign=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s))e[s]=t[s]}return e};return __assign.apply(this,arguments)};var __awaiter=this&&this.__awaiter||function(e,t,n,i){function s(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,o){function l(e){try{a(i.next(e))}catch(e){o(e)}}function r(e){try{a(i["throw"](e))}catch(e){o(e)}}function a(e){e.done?n(e.value):s(e.value).then(l,r)}a((i=i.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,s,o,l;return l={next:r(0),throw:r(1),return:r(2)},typeof Symbol==="function"&&(l[Symbol.iterator]=function(){return this}),l;function r(e){return function(t){return a([e,t])}}function a(l){if(i)throw new TypeError("Generator is already executing.");while(n)try{if(i=1,s&&(o=l[0]&2?s["return"]:l[0]?s["throw"]||((o=s["return"])&&o.call(s),0):s.next)&&!(o=o.call(s,l[1])).done)return o;if(s=0,o)l=[l[0]&2,o.value];switch(l[0]){case 0:case 1:o=l;break;case 4:n.label++;return{value:l[1],done:false};case 5:n.label++;s=l[1];l=[0];continue;case 7:l=n.ops.pop();n.trys.pop();continue;default:if(!(o=n.trys,o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1];o=l;break}if(o&&n.label<o[2]){n.label=o[2];n.ops.push(l);break}if(o[2])n.ops.pop();n.trys.pop();continue}l=t.call(e,n)}catch(e){l=[6,e];s=0}finally{i=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};System.register(["./p-97329951.system.js","./p-df878df9.system.js","./p-a7433630.system.js","./p-7efdefa3.system.js","./p-05eb4fed.system.js","./p-6e1ada33.system.js","./p-a4041773.system.js"],(function(e){"use strict";var t,n,i,s,o,l,r,a,c,d;return{setters:[function(e){t=e.r;n=e.c;i=e.h;s=e.H},function(e){o=e.g},function(){},function(e){l=e.i;r=e.a},function(e){a=e.g},function(e){c=e.V},function(e){d=e.a}],execute:function(){var p='verdocs-send{display:-ms-flexbox;display:flex;padding:10px;position:relative;background:#ffffff;-ms-flex-direction:column;flex-direction:column;font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif}verdocs-send .recipients{position:relative}verdocs-send .left-line{top:32px;left:20px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-send .level{display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;margin-left:50px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:8px 0 4px 0;border-bottom:1px solid #97979744}verdocs-send .level .level-icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-send .level .level-icon svg{fill:#00000089}verdocs-send .level .recipient{height:30px;display:-ms-flexbox;display:flex;-ms-flex:0 0 30px;flex:0 0 30px;color:#000000;cursor:pointer;font-size:14px;-ms-flex-align:center;align-items:center;border-radius:30px;-ms-flex-direction:row;flex-direction:row;background:#dddddd;white-space:nowrap;padding:2px 10px 2px 14px}verdocs-send .level .recipient .icon{width:22px;height:22px;-ms-flex:0 0 22px;flex:0 0 22px;margin:0 0 0 10px}verdocs-send .level .recipient .icon svg{width:22px;height:22px;fill:#333333;outline:none}verdocs-send .level .complete{-ms-flex:1;flex:1;height:30px;display:-ms-flexbox;display:flex;color:#000000;font-size:14px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:3px 10px 3px 2px}verdocs-send .buttons{display:-ms-flexbox;display:flex;margin-top:10px;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;-ms-flex-direction:row;flex-direction:row}verdocs-send verdocs-contact-picker{left:0;top:41px;z-index:10;position:absolute;border:1px solid #dddddd;-webkit-box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1);box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1)}';var u='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"></path></svg>';var f='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z"></path></svg>';var h='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg>';var v='<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" tabindex="-1"><path d="m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z"></path></svg>';var x=e("verdocs_send",function(){function e(e){t(this,e);this.send=n(this,"send",7);this.cancel=n(this,"cancel",7);this.sdkError=n(this,"sdkError",7);this.levels=[];this.endpoint=c.getDefault();this.templateId=null;this.template=null;this.pdfUrl=null;this.containerId="verdocs-send-".concat(Math.random().toString(36).substring(2,11));this.rolesAtLevel={};this.showPickerForId="";this.sessionContacts=[];this.recipientsAssigned={}}e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n;return __generator(this,(function(i){switch(i.label){case 0:this.sessionContacts=[];i.label=1;case 1:i.trys.push([1,3,,4]);return[4,this.endpoint.loadSession()];case 2:t=i.sent();if((e=t.session)===null||e===void 0?void 0:e.profile){this.sessionContacts.push({id:t.session.profile.id,name:"".concat(t.session.profile.first_name," ").concat(t.session.profile.last_name),email:t.session.profile.email,phone:t.session.profile.phone})}return[3,4];case 3:n=i.sent();console.log("Error loading session",n);return[3,4];case 4:return[2]}}))}))};e.prototype.componentDidLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n;return __generator(this,(function(i){switch(i.label){case 0:console.log("[SEND] Showing template",this.templateId);i.label=1;case 1:i.trys.push([1,3,,4]);console.log("[SEND] Loading template ".concat(this.templateId));return[4,o(this.endpoint,this.templateId)];case 2:e=i.sent();console.log("[SEND] Got template",e);this.template=e;if(e===null||e===void 0?void 0:e.roles){t={};e.roles.forEach((function(e){var n=e.sequence-1;t[n]||(t[n]=[]);var i="r-".concat(n,"-").concat(t[n].length);t[n].push(__assign(__assign({},e),{id:i}))}));this.rolesAtLevel=t;this.levels=Object.keys(t).map((function(e){return+e}));this.levels.sort((function(e,t){return e-t}))}return[3,4];case 3:n=i.sent();console.log("[SEND] Error getting template",n);return[3,4];case 4:return[2]}}))}))};e.prototype.getLevelIcon=function(e){if(e<0){return i("div",{class:"level-icon",innerHTML:f})}else if(e>=this.levels.length){return i("div",{class:"level-icon",innerHTML:v})}else{return i("div",{class:"level-icon",innerHTML:h})}};e.prototype.handleSelectContact=function(e,t){e.preventDefault();this.recipientsAssigned[t.id]=__assign(__assign({},t),e.detail);this.showPickerForId=""};e.prototype.handleClickRole=function(e,t){e.stopPropagation();this.showPickerForId=t.id};e.prototype.handleSend=function(e){var t;e.stopPropagation();(t=this.send)===null||t===void 0?void 0:t.emit({recipientsAssigned:Object.values(this.recipientsAssigned)})};e.prototype.handleCancel=function(e){var t;e.stopPropagation();(t=this.cancel)===null||t===void 0?void 0:t.emit()};e.prototype.render=function(){var e=this;var t,n,o;var c=((n=(t=this.template)===null||t===void 0?void 0:t.roles)===null||n===void 0?void 0:n.map((function(e){return e.name})))||[];var p=Object.values(this.recipientsAssigned).filter((function(e){console.log("valid email",l(e.email),e.email);console.log("valid phone",r(e.phone),e.phone);return l(e.email)||r(e.phone)})).length>=((o=this.template)===null||o===void 0?void 0:o.roles.length);console.log("assigned",p);return i(s,{class:{}},i("div",{class:"recipients"},i("div",{class:"left-line"}),i("div",{class:"level level-start"},this.getLevelIcon(-1),i("div",{class:"complete"},"Send Document")),this.levels.map((function(t){return i("div",{class:"level level-".concat(t)},e.getLevelIcon(t),e.rolesAtLevel[t].map((function(t){var n,s,o;return i("div",{class:"recipient",style:{backgroundColor:a(d(c,t.name))},onClick:function(n){return e.handleClickRole(n,t)}},(s=(n=e.recipientsAssigned[t.id])===null||n===void 0?void 0:n.full_name)!==null&&s!==void 0?s:t.name,i("div",{class:"icon",innerHTML:u}),e.showPickerForId===t.id&&i("verdocs-contact-picker",{onCancel:function(){return e.showPickerForId=""},onNext:function(n){return e.handleSelectContact(n,t)},contactSuggestions:e.sessionContacts,templateRole:(o=e.recipientsAssigned[t.id])!==null&&o!==void 0?o:t,onSearchContacts:function(e){return console.log("Search",e.detail)}}))})))})),i("div",{class:"level level-done"},this.getLevelIcon(this.levels.length),i("div",{class:"complete"},"Document Complete"))),i("div",{class:"buttons"},i("verdocs-button",{label:"Cancel",size:"small",variant:"outline",onClick:function(t){return e.handleCancel(t)}}),i("verdocs-button",{label:"Send",size:"small",disabled:!p,onClick:function(t){return e.handleSend(t)}})))};return e}());x.style=p}}}));
|
|
2
|
+
//# sourceMappingURL=p-473165ae.system.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/embeds/verdocs-send/verdocs-send.scss?tag=verdocs-send","src/components/embeds/verdocs-send/verdocs-send.tsx"],"names":["verdocsSendCss","editIcon","startIcon","stepIcon","doneIcon","VerdocsSend","exports","this","levels","VerdocsEndpoint","getDefault","concat","Math","random","toString","substring","class_1","prototype","componentWillLoad","sessionContacts","endpoint","loadSession","result","_d","sent","_a","session","profile","push","id","name","first_name","last_name","email","phone","console","log","e_1","componentDidLoad","templateId","getTemplate","template","roles","rolesAtLevel_1","forEach","role","level","sequence","length","__assign","rolesAtLevel","Object","keys","map","levelStr","sort","a","b","e_2","getLevelIcon","h","class","innerHTML","handleSelectContact","e","preventDefault","recipientsAssigned","detail","showPickerForId","handleClickRole","stopPropagation","handleSend","send","emit","values","handleCancel","cancel","render","_this","roleNames","_b","allRecipientsAssigned","filter","recipient","isValidEmail","isValidPhone","_c","Host","style","backgroundColor","getRGBA","getRoleIndex","onClick","full_name","onCancel","onNext","contactSuggestions","templateRole","onSearchContacts","label","size","variant","disabled"],"mappings":"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","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-send {\n display: flex;\n padding: 10px;\n position: relative;\n background: #ffffff;\n flex-direction: column;\n font-family: $verdocs-primary-font;\n\n .recipients {\n position: relative;\n }\n\n // To avoid the need to compute things like heights, this layer is simply displayed \"on top\" of all the level rows. Its\n // background obscures the horizontal lines.\n .left-line {\n top: 32px;\n left: 20px;\n z-index: 1;\n width: 12px;\n bottom: 30px;\n position: absolute;\n background: #ffffff;\n border-left: 3px dotted #9b9b9b;\n }\n\n .level {\n display: flex;\n column-gap: 10px;\n margin-left: 50px;\n position: relative;\n flex-direction: row;\n padding: 8px 0 4px 0;\n border-bottom: 1px solid #97979744;\n\n .level-icon {\n top: 14px;\n z-index: 2;\n left: -40px;\n width: 24px;\n height: 24px;\n position: absolute;\n background: #ffffff;\n\n svg {\n fill: #00000089;\n }\n }\n\n .recipient {\n height: 30px;\n display: flex;\n flex: 0 0 30px;\n color: #000000;\n cursor: pointer;\n font-size: 14px;\n align-items: center;\n border-radius: 30px;\n flex-direction: row;\n background: #dddddd;\n white-space: nowrap;\n padding: 2px 10px 2px 14px;\n\n .icon {\n width: 22px;\n height: 22px;\n flex: 0 0 22px;\n margin: 0 0 0 10px;\n\n svg {\n width: 22px;\n height: 22px;\n fill: #333333;\n outline: none;\n }\n }\n }\n\n .complete {\n flex: 1;\n height: 30px;\n display: flex;\n color: #000000;\n font-size: 14px;\n align-items: center;\n flex-direction: row;\n padding: 3px 10px 3px 2px;\n }\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n column-gap: 15px;\n flex-direction: row;\n }\n\n verdocs-contact-picker {\n left: 0;\n top: 41px;\n z-index: 10;\n position: absolute;\n border: 1px solid #dddddd;\n box-shadow: 0 0 6px 3px rgb(0 0 0 / 10%);\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport {IRole, ITemplate} from '@verdocs/js-sdk/Templates/Types';\nimport {isValidEmail, isValidPhone} from '@verdocs/js-sdk/Templates/Validators';\nimport {Component, Prop, State, h, Event, EventEmitter, Host} from '@stencil/core';\nimport {getRoleIndex} from '../../../utils/utils';\nimport {SDKError} from '../../../utils/errors';\n\n// TODO: Evaluating this pattern for simple icons vs. importing external SVG files. Try to standardize on an approach soon.\nconst editIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"></path></svg>';\n\nconst startIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"></path></svg>';\n\nconst stepIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"></path></svg>';\n\nconst doneIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z\"></path></svg>';\n\ntype TAnnotatedRole = IRole & {id: string};\n\n/**\n * Display a form to collect recipient information for a new Document. If used anonymously, the specified `templateId` must be public.\n * If the user is authenticated\n */\n@Component({\n tag: 'verdocs-send',\n styleUrl: 'verdocs-send.scss',\n shadow: false,\n})\nexport class VerdocsSend {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * The user completed the form and clicked send.\n */\n @Event({composed: true}) send: EventEmitter<{recipientsAssigned: IRole[]}>;\n\n /**\n * The user canceled the process.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() template: ITemplate | null = null;\n\n @State() pdfUrl = null;\n\n @State() containerId = `verdocs-send-${Math.random().toString(36).substring(2, 11)}`;\n\n @State() rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n @State() showPickerForId = '';\n\n @State() sessionContacts = [];\n\n @State() recipientsAssigned: Record<string, TAnnotatedRole> = {};\n\n levels: number[] = [];\n\n async componentWillLoad() {\n this.sessionContacts = [];\n try {\n const result = await this.endpoint.loadSession();\n\n if (result.session?.profile) {\n this.sessionContacts.push({\n id: result.session.profile.id,\n name: `${result.session.profile.first_name} ${result.session.profile.last_name}`,\n email: result.session.profile.email,\n phone: result.session.profile.phone,\n });\n }\n } catch (e) {\n console.log('Error loading session', e);\n }\n }\n\n async componentDidLoad() {\n console.log('[SEND] Showing template', this.templateId);\n\n try {\n console.log(`[SEND] Loading template ${this.templateId}`);\n const template = await getTemplate(this.endpoint, this.templateId);\n\n console.log('[SEND] Got template', template);\n this.template = template;\n\n if (template?.roles) {\n const rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n template.roles.forEach(role => {\n const level = role.sequence - 1;\n rolesAtLevel[level] ||= [];\n const id = `r-${level}-${rolesAtLevel[level].length}`;\n rolesAtLevel[level].push({...role, id});\n });\n\n this.rolesAtLevel = rolesAtLevel;\n this.levels = Object.keys(rolesAtLevel).map(levelStr => +levelStr);\n this.levels.sort((a, b) => a - b);\n }\n } catch (e) {\n console.log('[SEND] Error getting template', e);\n }\n }\n\n getLevelIcon(level: number) {\n if (level < 0) {\n return <div class=\"level-icon\" innerHTML={startIcon} />;\n } else if (level >= this.levels.length) {\n return <div class=\"level-icon\" innerHTML={doneIcon} />;\n } else {\n return <div class=\"level-icon\" innerHTML={stepIcon} />;\n }\n }\n\n handleSelectContact(e: any, role: TAnnotatedRole) {\n e.preventDefault();\n e.detail; // IContactSelectEvent\n this.recipientsAssigned[role.id] = {...role, ...e.detail};\n this.showPickerForId = '';\n }\n\n handleClickRole(e: any, role: TAnnotatedRole) {\n e.stopPropagation();\n this.showPickerForId = role.id;\n }\n\n handleSend(e) {\n e.stopPropagation();\n this.send?.emit({recipientsAssigned: Object.values(this.recipientsAssigned)});\n }\n\n handleCancel(e) {\n e.stopPropagation();\n this.cancel?.emit();\n }\n\n render() {\n const roleNames = this.template?.roles?.map(role => role.name) || [];\n const allRecipientsAssigned =\n Object.values(this.recipientsAssigned).filter(recipient => {\n console.log('valid email', isValidEmail(recipient.email), recipient.email);\n console.log('valid phone', isValidPhone(recipient.phone), recipient.phone);\n return isValidEmail(recipient.email) || isValidPhone(recipient.phone);\n }).length >= this.template?.roles.length;\n console.log('assigned', allRecipientsAssigned);\n\n return (\n <Host class={{}}>\n <div class=\"recipients\">\n <div class=\"left-line\" />\n <div class={`level level-start`}>\n {this.getLevelIcon(-1)}\n <div class=\"complete\">Send Document</div>\n </div>\n\n {this.levels.map(level => (\n <div class={`level level-${level}`}>\n {this.getLevelIcon(level)}\n\n {this.rolesAtLevel[level].map(role => (\n <div class=\"recipient\" style={{backgroundColor: getRGBA(getRoleIndex(roleNames, role.name))}} onClick={e => this.handleClickRole(e, role)}>\n {this.recipientsAssigned[role.id]?.full_name ?? role.name}\n <div class=\"icon\" innerHTML={editIcon} />\n {this.showPickerForId === role.id && (\n <verdocs-contact-picker\n onCancel={() => (this.showPickerForId = '')}\n onNext={e => this.handleSelectContact(e, role)}\n contactSuggestions={this.sessionContacts}\n templateRole={this.recipientsAssigned[role.id] ?? role}\n onSearchContacts={e => console.log('Search', e.detail)}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n\n <div class={`level level-done`}>\n {this.getLevelIcon(this.levels.length)}\n <div class=\"complete\">Document Complete</div>\n </div>\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" size=\"small\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Send\" size=\"small\" disabled={!allRecipientsAssigned} onClick={e => this.handleSend(e)} />\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as s,h as o,H as r}from"./p-ff1278ed.js";import"./p-8efc9749.js";import{V as t}from"./p-629237fc.js";import{r as a,a as i}from"./p-7ce27ce2.js";import{s as n}from"./p-8fd9dc5a.js";import{l}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as s,h as o,H as r}from"./p-ff1278ed.js";import"./p-8efc9749.js";import{V as t}from"./p-629237fc.js";import{r as a,a as i}from"./p-7ce27ce2.js";import{s as n}from"./p-8fd9dc5a.js";import{l}from"./p-36700fe4.js";import{S as d}from"./p-7a1b2643.js";import"./p-d534fffb.js";const c="";const p=class{constructor(o){e(this,o);this.sdkError=s(this,"sdkError",7);this.endpoint=t.getDefault();this.templateId=null}async componentDidLoad(){var e,s,o;this.endpoint.loadSession();if(!this.templateId){console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);return}try{console.log(`[PREVIEW] Loading template ${this.templateId}`);await l(this.endpoint,this.templateId)}catch(r){console.log("[PREVIEW] Error loading template",r);(e=this.sdkError)===null||e===void 0?void 0:e.emit(new d(r.message,(s=r.response)===null||s===void 0?void 0:s.status,(o=r.response)===null||o===void 0?void 0:o.data))}}async handleFieldChange(e,s,o){console.log("[PREVIEW] handleFieldChange",e,s,o)}handlePageRendered(e){const s=e.detail;console.log("[PREVIEW] Page rendered",s);const o=n.fields.filter((e=>e.page_sequence===s.renderedPage.pageNumber));console.log("[PREVIEW] Fields on page",o);o.forEach((e=>a(e,s.renderedPage,i(n.roleNames,e.role_name),this.handleFieldChange,true)))}render(){if(n.loading){return o(r,null,o("verdocs-loader",null))}return o(r,null,n.template?o("div",{class:"inner"},o("verdocs-view",{templateId:this.templateId,endpoint:this.endpoint,onPageRendered:e=>this.handlePageRendered(e),pageLayers:[{name:"page",type:"canvas"},{name:"controls",type:"div"}]})):o("div",null,"Error loading Template. Please try again later."))}};p.style=c;export{p as verdocs_preview};
|
|
2
|
+
//# sourceMappingURL=p-48d9e0d6.entry.js.map
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,n,o){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,s){function i(e){try{l(o.next(e))}catch(e){s(e)}}function a(e){try{l(o["throw"](e))}catch(e){s(e)}}function l(e){e.done?n(e.value):r(e.value).then(i,a)}l((o=o.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},o,r,s,i;return i={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function a(e){return function(t){return l([e,t])}}function l(i){if(o)throw new TypeError("Generator is already executing.");while(n)try{if(o=1,r&&(s=i[0]&2?r["return"]:i[0]?r["throw"]||((s=r["return"])&&s.call(r),0):r.next)&&!(s=s.call(r,i[1])).done)return s;if(r=0,s)i=[i[0]&2,s.value];switch(i[0]){case 0:case 1:s=i;break;case 4:n.label++;return{value:i[1],done:false};case 5:n.label++;r=i[1];i=[0];continue;case 7:i=n.ops.pop();n.trys.pop();continue;default:if(!(s=n.trys,s=s.length>0&&s[s.length-1])&&(i[0]===6||i[0]===2)){n=0;continue}if(i[0]===3&&(!s||i[1]>s[0]&&i[1]<s[3])){n.label=i[1];break}if(i[0]===6&&n.label<s[1]){n.label=s[1];s=i;break}if(s&&n.label<s[2]){n.label=s[2];n.ops.push(i);break}if(s[2])n.ops.pop();n.trys.pop();continue}i=t.call(e,n)}catch(e){i=[6,e];r=0}finally{o=s=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}};System.register(["./p-97329951.system.js","./p-a7433630.system.js","./p-6e1ada33.system.js","./p-63d01d16.system.js","./p-187b20b7.system.js","./p-df878df9.system.js","./p-3035b6c5.system.js","./p-a4041773.system.js"],(function(e){"use strict";var t,n,o,r,s,i,a;return{setters:[function(e){t=e.r;n=e.c;o=e.h;r=e.H},function(){},function(e){s=e.V},function(e){i=e.l},function(e){a=e.S},function(){},function(){},function(){}],execute:function(){var l='verdocs-build{display:-ms-flexbox;display:flex;font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}';var c=e("verdocs_build",function(){function e(e){t(this,e);this.sdkError=n(this,"sdkError",7);this.fields=[];this.endpoint=s.getDefault();this.templateId=null;this.step="create";this.pdfUrl=null;this.template=null}e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,n,o;return __generator(this,(function(r){switch(r.label){case 0:this.endpoint.loadSession();if(!this.endpoint.session){console.log("[BUILD] Unable to start builder session, must be authenticated");return[2]}if(!this.templateId){console.log("[BUILD] No template ID specified, showing upload option");this.step="create";return[2]}r.label=1;case 1:r.trys.push([1,3,,4]);console.log("[BUILD] Loading template ".concat(this.templateId));return[4,i(this.endpoint,this.templateId)];case 2:r.sent();this.step="fields";return[3,4];case 3:o=r.sent();console.log("[BUILD] Error loading template",o);(e=this.sdkError)===null||e===void 0?void 0:e.emit(new a(o.message,(t=o.response)===null||t===void 0?void 0:t.status,(n=o.response)===null||n===void 0?void 0:n.data));return[3,4];case 4:return[2]}}))}))};e.prototype.handleCancel=function(e){console.log("Cancel",e.detail);this.step=""};e.prototype.handleTemplateCreated=function(e){console.log("Created",e.detail);this.step="properties"};e.prototype.handlePropertiesUpdated=function(e){console.log("updated",e.detail);this.step="recipients"};e.prototype.handleRecipientsUpdated=function(e){console.log("updated",e.detail);this.step="fields"};e.prototype.render=function(){var e=this;return o(r,null,this.step==="create"&&o("verdocs-template-create",{onCancel:function(t){return e.handleCancel(t)},onNext:function(t){return e.handleTemplateCreated(t)}}),this.step==="properties"&&o("verdocs-template-properties",{onCancel:function(t){return e.handleCancel(t)},onNext:function(t){return e.handlePropertiesUpdated(t)}}),this.step==="recipients"&&o("verdocs-template-recipients",{onCancel:function(t){return e.handleCancel(t)},onNext:function(t){return e.handleRecipientsUpdated(t)}}),this.step==="fields"&&o("verdocs-template-fields",{onCancel:function(t){return e.handleCancel(t)},onNext:function(t){return e.handleCancel(t)}}))};return e}());c.style=l}}}));
|
|
2
|
+
//# sourceMappingURL=p-508192bb.system.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/embeds/verdocs-build/verdocs-build.scss?tag=verdocs-build","src/components/embeds/verdocs-build/verdocs-build.tsx"],"names":["verdocsBuildCss","VerdocsBuild","exports","this","fields","VerdocsEndpoint","getDefault","class_1","prototype","componentWillLoad","endpoint","loadSession","session","console","log","templateId","step","concat","loadTemplate","_d","sent","e_1","_a","sdkError","emit","SDKError","message","_b","response","status","_c","data","handleCancel","e","detail","handleTemplateCreated","handlePropertiesUpdated","handleRecipientsUpdated","render","_this","h","Host","onCancel","onNext"],"mappings":"q3DAAA,IAAMA,EAAkB,kOCcXC,EAAYC,EAAA,gBAAA,sEAqBvBC,KAAAC,OAA2B,iBAjBSC,EAAgBC,6BAKhB,eAQpB,qBACE,mBACoB,KAIhCC,EAAAC,UAAAC,kBAAN,mIACEN,KAAKO,SAASC,cACd,IAAKR,KAAKO,SAASE,QAAS,CAC1BC,QAAQC,IAAI,kEACZ,MAAA,CAAA,GAGF,IAAKX,KAAKY,WAAY,CACpBF,QAAQC,IAAI,2DACZX,KAAKa,KAAO,SACZ,MAAA,CAAA,0CAIAH,QAAQC,IAAI,4BAAAG,OAA4Bd,KAAKY,aAC7C,MAAA,CAAA,EAAMG,EAAaf,KAAKO,SAAUP,KAAKY,oBAAvCI,EAAAC,OACAjB,KAAKa,KAAO,uCAEZH,QAAQC,IAAI,iCAAkCO,IAC9CC,EAAAnB,KAAKoB,YAAQ,MAAAD,SAAA,OAAA,EAAAA,EAAEE,KAAK,IAAIC,EAASJ,EAAEK,SAASC,EAAAN,EAAEO,YAAQ,MAAAD,SAAA,OAAA,EAAAA,EAAEE,QAAQC,EAAAT,EAAEO,YAAQ,MAAAE,SAAA,OAAA,EAAAA,EAAEC,4CAIhFxB,EAAAC,UAAAwB,aAAA,SAAaC,GACXpB,QAAQC,IAAI,SAAUmB,EAAEC,QACxB/B,KAAKa,KAAO,IAGdT,EAAAC,UAAA2B,sBAAA,SAAsBF,GACpBpB,QAAQC,IAAI,UAAWmB,EAAEC,QACzB/B,KAAKa,KAAO,cAGdT,EAAAC,UAAA4B,wBAAA,SAAwBH,GACtBpB,QAAQC,IAAI,UAAWmB,EAAEC,QACzB/B,KAAKa,KAAO,cAGdT,EAAAC,UAAA6B,wBAAA,SAAwBJ,GACtBpB,QAAQC,IAAI,UAAWmB,EAAEC,QACzB/B,KAAKa,KAAO,UAGdT,EAAAC,UAAA8B,OAAA,WAAA,IAAAC,EAAApC,KACE,OACEqC,EAACC,EAAI,KACFtC,KAAKa,OAAS,UAAYwB,EAAA,0BAAA,CAAyBE,SAAU,SAAAT,GAAK,OAAAM,EAAKP,aAAaC,IAAIU,OAAQ,SAAAV,GAAK,OAAAM,EAAKJ,sBAAsBF,MAChI9B,KAAKa,OAAS,cAAgBwB,EAAA,8BAAA,CAA6BE,SAAU,SAAAT,GAAK,OAAAM,EAAKP,aAAaC,IAAIU,OAAQ,SAAAV,GAAK,OAAAM,EAAKH,wBAAwBH,MAC1I9B,KAAKa,OAAS,cAAgBwB,EAAA,8BAAA,CAA6BE,SAAU,SAAAT,GAAK,OAAAM,EAAKP,aAAaC,IAAIU,OAAQ,SAAAV,GAAK,OAAAM,EAAKF,wBAAwBJ,MAC1I9B,KAAKa,OAAS,UAAYwB,EAAA,0BAAA,CAAyBE,SAAU,SAAAT,GAAK,OAAAM,EAAKP,aAAaC,IAAIU,OAAQ,SAAAV,GAAK,OAAAM,EAAKP,aAAaC,iBAxEvG","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-build {\n display: flex;\n font-family: $verdocs-primary-font;\n justify-content: center;\n align-items: center;\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {ITemplate, ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {Component, Prop, State, h, Event, EventEmitter, Host} from '@stencil/core';\nimport {loadTemplate} from '../../../utils/Templates';\nimport {SDKError} from '../../../utils/errors';\n\n/**\n * Display a template building experience.\n */\n@Component({\n tag: 'verdocs-build',\n styleUrl: 'verdocs-build.scss',\n shadow: false,\n})\nexport class VerdocsBuild {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() step = 'create';\n @State() pdfUrl = null;\n @State() template: ITemplate | null = null;\n\n fields: ITemplateField[] = [];\n\n async componentWillLoad() {\n this.endpoint.loadSession();\n if (!this.endpoint.session) {\n console.log('[BUILD] Unable to start builder session, must be authenticated');\n return;\n }\n\n if (!this.templateId) {\n console.log(`[BUILD] No template ID specified, showing upload option`);\n this.step = 'create';\n return;\n }\n\n try {\n console.log(`[BUILD] Loading template ${this.templateId}`);\n await loadTemplate(this.endpoint, this.templateId);\n this.step = 'fields';\n } catch (e) {\n console.log('[BUILD] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handleCancel(e: any) {\n console.log('Cancel', e.detail);\n this.step = '';\n }\n\n handleTemplateCreated(e: any) {\n console.log('Created', e.detail);\n this.step = 'properties';\n }\n\n handlePropertiesUpdated(e: any) {\n console.log('updated', e.detail);\n this.step = 'recipients';\n }\n\n handleRecipientsUpdated(e: any) {\n console.log('updated', e.detail);\n this.step = 'fields';\n }\n\n render() {\n return (\n <Host>\n {this.step === 'create' && <verdocs-template-create onCancel={e => this.handleCancel(e)} onNext={e => this.handleTemplateCreated(e)} />}\n {this.step === 'properties' && <verdocs-template-properties onCancel={e => this.handleCancel(e)} onNext={e => this.handlePropertiesUpdated(e)} />}\n {this.step === 'recipients' && <verdocs-template-recipients onCancel={e => this.handleCancel(e)} onNext={e => this.handleRecipientsUpdated(e)} />}\n {this.step === 'fields' && <verdocs-template-fields onCancel={e => this.handleCancel(e)} onNext={e => this.handleCancel(e)} />}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["src/components/controls/verdocs-toggle/verdocs-toggle.scss?tag=verdocs-toggle","src/components/controls/verdocs-toggle/verdocs-toggle.tsx"],"names":["verdocsToggleCss","VerdocsToggle","[object Object]","this","selectedOption","_a","options","defaultSelection","h","class","label","buttons","map","button","index","id","key","innerHTML","icon","onClick","console","log"],"mappings":"2CAAA,MAAMA,EAAmB,
|
|
1
|
+
{"version":3,"sources":["src/components/controls/verdocs-toggle/verdocs-toggle.scss?tag=verdocs-toggle","src/components/controls/verdocs-toggle/verdocs-toggle.tsx"],"names":["verdocsToggleCss","VerdocsToggle","[object Object]","this","selectedOption","_a","options","defaultSelection","h","class","label","buttons","map","button","index","id","key","innerHTML","icon","onClick","console","log"],"mappings":"2CAAA,MAAMA,EAAmB,4lCCoBZC,EAAa,+FAWU,EAElCC,0BACEC,KAAKC,iBAAiBC,EAAAF,KAAKG,WAAO,MAAAD,SAAA,OAAA,EAAAA,EAAEE,mBAAoB,EAG1DL,SACE,OACEM,EAAA,MAAA,CAAKC,MAAM,aACTD,EAAA,OAAA,CAAMC,MAAM,SAAS,GAAGN,KAAKG,QAAQI,UACrCF,EAAA,MAAA,CAAKC,MAAM,WACRN,KAAKG,QAAQK,QAAQC,KAAI,CAACC,EAAkBC,IAC3CN,EAAA,SAAA,CACEO,GAAIF,EAAOE,GACXC,IAAKH,EAAOE,GACZE,UAAWJ,EAAOK,KAClBT,MAAOK,IAAUX,KAAKC,eAAiB,WAAa,GACpDe,QAAS,KACPC,QAAQC,IAAI,UAAWP,GACvBX,KAAKC,eAAiBU","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-toggle {\n font-family: $primary-font;\n\n .container {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n background-color: $container-bg;\n }\n\n .label {\n font-size: 24px;\n font-weight: 700;\n color: $medium-bg;\n align-self: center;\n margin-right: 27px;\n font-family: sans-serif;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n }\n\n .buttons button {\n width: 60px;\n height: 60px;\n border: 2px solid $item-border-color;\n border-radius: 5px;\n cursor: pointer;\n }\n\n .buttons button:not(:last-child) {\n margin-right: 11px;\n }\n\n .buttons svg {\n width: 30px;\n height: 30px;\n }\n\n .buttons button:hover {\n background-color: $item-border-color;\n transition: 0.25s;\n }\n\n .buttons button:hover svg {\n fill: $container-bg;\n transition: 0.25s;\n }\n\n .selected {\n background-color: $border-color;\n transition: 0.25s;\n }\n\n .selected svg {\n fill: #ffffff;\n transition: 0.25s;\n }\n}\n","import {Component, Prop, h, State} from '@stencil/core';\n\nexport interface IButtons {\n id: string;\n icon: string;\n}\n\nexport interface IToggleIconButtons {\n label: string;\n defaultSelection: number;\n buttons: IButtons[];\n}\n\n/**\n * Displays a label and a set of buttons, also allowing a default selection of a button\n */\n@Component({\n tag: 'verdocs-toggle',\n styleUrl: 'verdocs-toggle.scss',\n})\nexport class VerdocsToggle {\n /**\n * The tags to display\n */\n @Prop() options: IToggleIconButtons;\n\n /**\n * The \"theme\" to be used\n */\n @Prop() theme: 'light' | 'dark';\n\n @State() selectedOption: number = 0;\n\n componentWillLoad() {\n this.selectedOption = this.options?.defaultSelection || 0;\n }\n\n render() {\n return (\n <div class=\"container\">\n <span class=\"label\">{`${this.options.label}:`}</span>\n <div class=\"buttons\">\n {this.options.buttons.map((button: IButtons, index: number) => (\n <button\n id={button.id}\n key={button.id}\n innerHTML={button.icon}\n class={index === this.selectedOption ? 'selected' : ''}\n onClick={() => {\n console.log('clicked', index);\n this.selectedOption = index;\n }}\n />\n ))}\n </div>\n </div>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,h as o}from"./p-ff1278ed.js";const n='verdocs-button button{font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;text-transform:uppercase;-ms-flex-pack:center;justify-content:center;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;font-weight:700;cursor:pointer;margin:0}verdocs-button button .icon{margin:0 12px}verdocs-button button .icon svg{fill:#ffffff;display:block}verdocs-button button .label{padding:0 12px}verdocs-button button:disabled{cursor:none}verdocs-button button.small{height:34px;font-size:13px}verdocs-button button.small .icon{margin:0 4px}verdocs-button button.small .icon svg{margin:2px 0 0 0;height:20px}verdocs-button button.small .label{padding:0 4px}verdocs-button button.normal{height:44px;font-size:14px}verdocs-button button.normal .icon.start{margin:0 4px 0 8px}verdocs-button button.normal .icon.end{margin:0 8px 0 4px}verdocs-button button.normal .icon svg{margin:2px 0 0 0;height:22px}verdocs-button button.normal .label{padding:0 10px}verdocs-button button.medium{height:52px;font-size:16px}verdocs-button button.medium .icon.start{margin:0 0 0 18px}verdocs-button button.medium .icon.end{margin:0 18px 0 0}verdocs-button button.medium .icon svg{margin:2px 0 0 0;height:26px}verdocs-button button.medium .label{padding:0 20px}verdocs-button button.large{height:60px;font-size:20px}verdocs-button button.large .icon.start{margin:0 0 0 24px}verdocs-button button.large .icon.end{margin:0 24px 0 0}verdocs-button button.large .icon svg{margin:2px 0 0 0;height:32px}verdocs-button button.large .label{padding:0 34px}verdocs-button button.standard{background:#55bc81;border-radius:4px;outline:none;border:none;color:white}verdocs-button button.standard:disabled{background-color:#999999;cursor:default}verdocs-button button.standard:active:not([disabled]){-webkit-filter:brightness(110%);filter:brightness(110%)}verdocs-button button.text{color:#4c56cb;background:transparent;font-weight:500;padding:0 4px;outline:none;border:none}verdocs-button button.text:disabled{color:#999999;cursor:none}verdocs-button button.text:active:not([disabled]){-webkit-filter:brightness(130%);filter:brightness(130%)}verdocs-button button.text .icon svg{fill:#4c56cb}verdocs-button button.outline{border:1px solid #4c56cb;color:#4c56cb;outline:none;background:transparent;border-radius:4px;padding:0 20px}verdocs-button button.outline:disabled{color:#999999;cursor:none;border:1px solid #999999}verdocs-button button.outline:active{background:#4c56cb;color:white}verdocs-button button.outline .icon svg{fill:#4c56cb}';const e=class{constructor(o){t(this,o);this.label=undefined;this.startIcon=null;this.endIcon=null;this.size="normal";this.type="button";this.variant="standard";this.disabled=false}render(){return o("button",{disabled:this.disabled,type:this.type,class:`${this.variant} ${this.size} ${this.type}`},this.startIcon?o("span",{class:"icon start",innerHTML:this.startIcon}):null,o("span",{class:"label"},this.label),this.endIcon?o("span",{class:"icon end",innerHTML:this.endIcon}):null)}};e.style=n;export{e as verdocs_button};
|
|
2
|
+
//# sourceMappingURL=p-5e6134d8.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/controls/verdocs-button/verdocs-button.scss?tag=verdocs-button","src/components/controls/verdocs-button/verdocs-button.tsx"],"names":["verdocsButtonCss","VerdocsButton","[object Object]","h","disabled","this","type","class","variant","size","startIcon","innerHTML","label","endIcon"],"mappings":"2CAAA,MAAMA,EAAmB,4gFCyBZC,EAAa,mEASW,kBAKF,eAKuB,mBAKV,sBAKK,yBAKvB,MAE5BC,SACE,OACEC,EAAA,SAAA,CAAQC,SAAUC,KAAKD,SAAUE,KAAMD,KAAKC,KAAMC,MAAO,GAAGF,KAAKG,WAAWH,KAAKI,QAAQJ,KAAKC,QAC3FD,KAAKK,UAAYP,EAAA,OAAA,CAAMI,MAAM,aAAaI,UAAWN,KAAKK,YAAgB,KAC3EP,EAAA,OAAA,CAAMI,MAAM,SAASF,KAAKO,OACzBP,KAAKQ,QAAUV,EAAA,OAAA,CAAMI,MAAM,WAAWI,UAAWN,KAAKQ,UAAc","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-button {\n button {\n font-family: $verdocs-primary-font;\n text-transform: uppercase;\n justify-content: center;\n display: inline-flex;\n align-items: center;\n font-weight: 700;\n cursor: pointer;\n margin: 0;\n\n .icon {\n margin: 0 12px;\n\n svg {\n fill: $verdocs-grey-4;\n display: block;\n }\n }\n\n .label {\n padding: 0 12px;\n }\n\n &:disabled {\n cursor: none;\n }\n\n // Small-sized button size adjustments\n &.small {\n height: 34px;\n font-size: 13px;\n\n .icon {\n margin: 0 4px;\n\n svg {\n margin: 2px 0 0 0;\n height: 20px;\n }\n }\n\n .label {\n padding: 0 4px;\n }\n }\n\n // Normal-sized button size adjustments\n &.normal {\n height: 44px;\n font-size: 14px;\n\n .icon.start {\n margin: 0 4px 0 8px;\n }\n\n .icon.end {\n margin: 0 8px 0 4px;\n }\n\n .icon {\n svg {\n margin: 2px 0 0 0;\n height: 22px;\n }\n }\n\n .label {\n padding: 0 10px;\n }\n }\n\n // Medium-sized button size adjustments\n &.medium {\n height: 52px;\n font-size: 16px;\n\n .icon.start {\n margin: 0 0 0 18px;\n }\n\n .icon.end {\n margin: 0 18px 0 0;\n }\n\n .icon {\n svg {\n margin: 2px 0 0 0;\n height: 26px;\n }\n }\n\n .label {\n padding: 0 20px;\n }\n }\n\n // Large-sized button size adjustments\n &.large {\n height: 60px;\n font-size: 20px;\n\n .icon.start {\n margin: 0 0 0 24px;\n }\n\n .icon.end {\n margin: 0 24px 0 0;\n }\n\n .icon {\n svg {\n margin: 2px 0 0 0;\n height: 32px;\n }\n }\n\n .label {\n padding: 0 34px;\n }\n }\n\n // Standard variant is a solid color\n &.standard {\n background: $verdocs-green;\n border-radius: 4px;\n outline: none;\n border: none;\n color: white;\n\n &:disabled {\n background-color: $disabled-color;\n cursor: default;\n }\n\n &:active:not([disabled]) {\n filter: brightness(110%);\n }\n }\n\n // Text variant is just a label\n &.text {\n color: $secondary-color;\n background: transparent;\n font-weight: 500;\n padding: 0 4px;\n outline: none;\n border: none;\n\n &:disabled {\n color: $disabled-color;\n cursor: none;\n }\n\n &:active:not([disabled]) {\n filter: brightness(130%);\n }\n\n .icon {\n svg {\n fill: $secondary-color;\n }\n }\n }\n\n // Standard variant is a solid color\n &.outline {\n border: 1px solid $secondary-color;\n color: $secondary-color;\n outline: none;\n background: transparent;\n border-radius: 4px;\n padding: 0 20px;\n\n &:disabled {\n color: $disabled-color;\n cursor: none;\n border: 1px solid $disabled-color;\n }\n\n &:active {\n background: $secondary-color;\n color: white;\n }\n\n .icon {\n svg {\n fill: $secondary-color;\n }\n }\n }\n }\n}\n","import {Component, Prop, h} from '@stencil/core';\n\n/**\n * Display a simple button.\n *\n * Three variants are supported. `standard` and `outline` buttons look like traditional form buttons and are ideal candidates for 'Ok' and\n * 'Cancel' options in most cases. `text` buttons are intended to be used inline in content blocks or for more subtle button options.\n * (Auth uses text buttons for the Forgot Password and Sign Up options.)\n *\n * Four sizes are also supported. Most use cases will call for the `normal` size, but a `small` size is ideal for more subtle controls, such\n * as pagination or other secondary functions. `medium` buttons are slightly larger to provide balance in forms where other items are also\n * bigger, and `large` buttons are for cases where the page has mostly white-space and the buttons need to fill more space.\n *\n * Icons may be placed either before (\"start\") or after (\"end\") the button label. Icons should be SVG objects passed as strings and will\n * be rendered as HTML inside the button label area. It is important that the root <SVG> tag contains a default `fill=\"#ffffff\"` setting\n * for the base color, and that child elements below it do not. This allows the button color to carry into the icon properly.\n *\n * ```html\n * <verdocs-button label=\"OK\" onClick={() => (console.log('OK clicked'))} />\n * ```\n */\n@Component({\n tag: 'verdocs-button',\n styleUrl: 'verdocs-button.scss',\n})\nexport class VerdocsButton {\n /**\n * The label for the button.\n */\n @Prop() label!: string;\n\n /**\n * If desired, a prefix icon for the button.\n */\n @Prop() startIcon: string | null = null;\n\n /**\n * If desired, a suffix icon for the button.\n */\n @Prop() endIcon: string | null = null;\n\n /**\n * The size (height) of the button.\n */\n @Prop() size: 'small' | 'normal' | 'medium' | 'large' = 'normal';\n\n /**\n * The type of the button.\n */\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * The display variant of the button.\n */\n @Prop() variant: 'standard' | 'text' | 'outline' = 'standard';\n\n /**\n * Whether the button should be disabled.\n */\n @Prop() disabled: boolean = false;\n\n render() {\n return (\n <button disabled={this.disabled} type={this.type} class={`${this.variant} ${this.size} ${this.type}`}>\n {this.startIcon ? <span class=\"icon start\" innerHTML={this.startIcon} /> : null}\n <span class=\"label\">{this.label}</span>\n {this.endIcon ? <span class=\"icon end\" innerHTML={this.endIcon} /> : null}\n </button>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
System.register(["./p-97329951.system.js"],(function(e){"use strict";var o,t,i;return{setters:[function(e){o=e.r;t=e.h;i=e.H}],execute:function(){var r='verdocs-radio-button{font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;width:20px;height:20px;display:block;font-size:11px;position:relative;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left;border-radius:100%}verdocs-radio-button.disabled{opacity:0.5}verdocs-radio-button input[type=radio]{position:absolute;opacity:0}verdocs-radio-button input[type=radio]+label:before{content:"";background:#f5f5fa;border-radius:100%;border:1px solid rgba(0, 0, 0, 0.6);display:inline-block;width:16px;height:16px;position:absolute;left:1px;top:1px;cursor:pointer;text-align:center;-webkit-transition:all 250ms ease;transition:all 250ms ease}verdocs-radio-button input[type=radio]:checked+label:before{background-color:#55bc81;-webkit-box-shadow:inset 0 0 0 2px #f5f5fa;box-shadow:inset 0 0 0 2px #f5f5fa}verdocs-radio-button input[type=radio]:focus+label:before{outline:none;border-color:#55bc81}verdocs-radio-button input[type=radio]:disabled+label:before{-webkit-box-shadow:inset 0 0 0 4px #f5f5fa;box-shadow:inset 0 0 0 4px #f5f5fa;border-color:#a0a0d0;background:#a0a0d0}verdocs-radio-button input[type=radio]+label:empty:before{margin-right:0}verdocs-radio-button.required input[type=radio]+label:before{border:1px solid #cc0000}verdocs-radio-button.hide{display:none}verdocs-radio-button.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}';var a=e("verdocs_radio_button",function(){function e(e){o(this,e);this.checked=false;this.name="";this.value="";this.disabled=false}e.prototype.render=function(){return t(i,{class:{disabled:this.disabled}},t("input",{type:"radio",value:this.value,name:this.name,id:"verdocs-radio-button-".concat(this.name,"-").concat(this.value),checked:this.checked,disabled:this.disabled}),t("label",{htmlFor:"verdocs-radio-button-".concat(this.name,"-").concat(this.value)}))};return e}());a.style=r}}}));
|
|
2
|
+
//# sourceMappingURL=p-6121f103.system.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/controls/verdocs-radio-button/verdocs-radio-button.scss?tag=verdocs-radio-button","src/components/controls/verdocs-radio-button/verdocs-radio-button.tsx"],"names":["verdocsRadioButtonCss","VerdocsRadioButton","exports","class_1","prototype","render","h","Host","class","disabled","this","type","value","name","id","concat","checked","htmlFor"],"mappings":"kJAAA,IAAMA,EAAwB,s7CCyBjBC,EAAkBC,EAAA,uBAAA,gDAIF,gBAKJ,cAKC,iBAKK,MAE7BC,EAAAC,UAAAC,OAAA,WACE,OACEC,EAACC,EAAI,CAACC,MAAO,CAACC,SAAUC,KAAKD,WAC3BH,EAAA,QAAA,CACEK,KAAK,QACLC,MAAOF,KAAKE,MACZC,KAAMH,KAAKG,KACXC,GAAI,wBAAAC,OAAwBL,KAAKG,KAAI,KAAAE,OAAIL,KAAKE,OAC9CI,QAASN,KAAKM,QACdP,SAAUC,KAAKD,WAGjBH,EAAA,QAAA,CAAOW,QAAS,wBAAAF,OAAwBL,KAAKG,KAAI,KAAAE,OAAIL,KAAKE,oBAjCnC","sourcesContent":["@import '../../../theme.scss';\n\n// See https://www.sliderrevolution.com/resources/styling-radio-buttons/\nverdocs-radio-button {\n font-family: $verdocs-primary-font;\n width: 20px;\n height: 20px;\n display: block;\n font-size: 11px;\n position: relative;\n background-color: transparent;\n transform-origin: bottom left;\n border-radius: 100%;\n\n &.disabled {\n opacity: 0.5;\n }\n\n input[type='radio'] {\n position: absolute;\n opacity: 0;\n\n + label {\n &:before {\n content: '';\n background: $verdocs-grey-3;\n border-radius: 100%;\n border: 1px solid rgba(0, 0, 0, 0.6);\n display: inline-block;\n width: 16px;\n height: 16px;\n position: absolute;\n left: 1px;\n top: 1px;\n cursor: pointer;\n text-align: center;\n transition: all 250ms ease;\n }\n }\n\n &:checked {\n + label {\n &:before {\n background-color: $verdocs-green;\n box-shadow: inset 0 0 0 2px $verdocs-grey-3;\n }\n }\n }\n\n &:focus {\n + label {\n &:before {\n outline: none;\n border-color: $verdocs-green;\n }\n }\n }\n\n &:disabled {\n + label {\n &:before {\n box-shadow: inset 0 0 0 4px $verdocs-grey-3;\n border-color: darken($verdocs-grey-3, 25%);\n background: darken($verdocs-grey-3, 25%);\n }\n }\n }\n\n + label {\n &:empty {\n &:before {\n margin-right: 0;\n }\n }\n }\n }\n\n &.required {\n input[type='radio'] {\n + label {\n &:before {\n border: 1px solid $verdocs-red-1;\n }\n }\n }\n }\n\n &.hide {\n display: none;\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop} from '@stencil/core';\n\n/**\n * Displays a radio button. Note that this is different from the `verdocs-field-radio-button` component, which is\n * designed to be used in signing experiences and contains settings that connect to template fields. This is just a\n * simple radio button for UI displays e.g. dialog boxes.\n *\n * This control encapsulates a standard HTML radio button. To subscribe to change events, connect an `onChange`\n * handler. Sample usage:\n *\n * ```html\n * <verdocs-radio-button\n * value=\"val1\"\n * name=\"someProperty\"\n * checked={this.someProperty === 'val1'}\n * onInput={(e: any) => { this.someProperty = 'val1' }}\n * disabled={false}\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-radio-button',\n styleUrl: 'verdocs-radio-button.scss',\n shadow: false,\n})\nexport class VerdocsRadioButton {\n /**\n * Whether the radio button is currently selected.\n */\n @Prop() checked: boolean = false;\n\n /**\n * HTML form field name for the input.\n */\n @Prop() name: string = '';\n\n /**\n * Value to track with the input.\n */\n @Prop() value: string = '';\n\n /**\n * If set, the button will still be displayed but not selectable.\n */\n @Prop() disabled?: boolean = false;\n\n render() {\n return (\n <Host class={{disabled: this.disabled}}>\n <input\n type=\"radio\"\n value={this.value}\n name={this.name}\n id={`verdocs-radio-button-${this.name}-${this.value}`}\n checked={this.checked}\n disabled={this.disabled}\n // onChange={e => this.handleChange(e)}\n />\n <label htmlFor={`verdocs-radio-button-${this.name}-${this.value}`} />\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(e,t,n,r){function o(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,a){function i(e){try{u(r.next(e))}catch(e){a(e)}}function l(e){try{u(r["throw"](e))}catch(e){a(e)}}function u(e){e.done?n(e.value):o(e.value).then(i,l)}u((r=r.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,o,a,i;return i={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function l(e){return function(t){return u([e,t])}}function u(i){if(r)throw new TypeError("Generator is already executing.");while(n)try{if(r=1,o&&(a=i[0]&2?o["return"]:i[0]?o["throw"]||((a=o["return"])&&a.call(o),0):o.next)&&!(a=a.call(o,i[1])).done)return a;if(o=0,a)i=[i[0]&2,a.value];switch(i[0]){case 0:case 1:a=i;break;case 4:n.label++;return{value:i[1],done:false};case 5:n.label++;o=i[1];i=[0];continue;case 7:i=n.ops.pop();n.trys.pop();continue;default:if(!(a=n.trys,a=a.length>0&&a[a.length-1])&&(i[0]===6||i[0]===2)){n=0;continue}if(i[0]===3&&(!a||i[1]>a[0]&&i[1]<a[3])){n.label=i[1];break}if(i[0]===6&&n.label<a[1]){n.label=a[1];a=i;break}if(a&&n.label<a[2]){n.label=a[2];n.ops.push(i);break}if(a[2])n.ops.pop();n.trys.pop();continue}i=t.call(e,n)}catch(e){i=[6,e];o=0}finally{r=a=0}if(i[0]&5)throw i[1];return{value:i[0]?i[1]:void 0,done:true}}};System.register(["./p-df878df9.system.js","./p-3035b6c5.system.js"],(function(e){"use strict";var t,n;return{setters:[function(e){t=e.g},function(e){n=e.s}],execute:function(){var r=this;var o=e("l",(function(e,o){return __awaiter(r,void 0,void 0,(function(){var r,a;return __generator(this,(function(i){switch(i.label){case 0:n.template=null;if(!o){console.log("[TEMPLATES] Missing required template ID");return[2]}n.loading=true;i.label=1;case 1:i.trys.push([1,3,,4]);console.log("[TEMPLATES] Loading template ".concat(o));return[4,t(e,o)];case 2:r=i.sent();if(!r){console.log("[TEMPLATES] Unable to load template");return[2]}n.template=r;n.loading=false;return[3,4];case 3:a=i.sent();console.log("[TEMPLATES] Error loading template",a);throw a;case 4:return[2]}}))}))}))}}}));
|
|
2
|
+
//# sourceMappingURL=p-63d01d16.system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/utils/Templates.ts"],"names":["loadTemplate","exports","endpoint","templateId","__awaiter","_this","TemplateStore","template","console","log","loading","concat","getTemplate","_a","sent","e_1"],"mappings":"wnDAIaA,EAAYC,EAAA,KAAG,SAAOC,EAA2BC,GAAkB,OAAAC,UAAAC,OAAA,OAAA,GAAA,+EAC9EC,EAAcC,SAAW,KAEzB,IAAKJ,EAAY,CACfK,QAAQC,IAAI,4CACZ,MAAA,CAAA,GAGFH,EAAcI,QAAU,4CAGtBF,QAAQC,IAAI,gCAAAE,OAAgCR,IAC3B,MAAA,CAAA,EAAMS,EAAYV,EAAUC,WAAvCI,EAAWM,EAAAC,OACjB,IAAKP,EAAU,CACbC,QAAQC,IAAI,uCACZ,MAAA,CAAA,GAGFH,EAAcC,SAAWA,EACzBD,EAAcI,QAAU,oCAExBF,QAAQC,IAAI,qCAAsCM,GAClD,MAAMA","sourcesContent":["import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport TemplateStore from './templateStore';\n\nexport const loadTemplate = async (endpoint: VerdocsEndpoint, templateId: string) => {\n TemplateStore.template = null;\n\n if (!templateId) {\n console.log(`[TEMPLATES] Missing required template ID`);\n return;\n }\n\n TemplateStore.loading = true;\n\n try {\n console.log(`[TEMPLATES] Loading template ${templateId}`);\n const template = await getTemplate(endpoint, templateId);\n if (!template) {\n console.log('[TEMPLATES] Unable to load template');\n return;\n }\n\n TemplateStore.template = template;\n TemplateStore.loading = false;\n } catch (e) {\n console.log('[TEMPLATES] Error loading template', e);\n throw e;\n }\n};\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,c as t,h as i,H as e}from"./p-ff1278ed.js";import{g as s}from"./p-7ce27ce2.js";import{g as r}from"./p-6de76553.js";import{c as n}from"./p-ec26fc38.js";const a='verdocs-field-signature{font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;width:83px;height:36px;display:block;font-size:11px;position:relative;letter-spacing:0.3px;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left;border:1px solid rgba(0, 0, 0, 0.2)}verdocs-field-signature.disabled{opacity:0.5}verdocs-field-signature img{display:block;max-width:100%;max-height:100%}verdocs-field-signature button{-webkit-box-sizing:border-box;box-sizing:border-box;border:none;color:rgba(0, 0, 0, 0.87);font-weight:500;-webkit-transform-origin:0 0;transform-origin:0 0;height:100%;width:100%;background:none;font-size:11px}verdocs-field-signature button.hide{display:none}verdocs-field-signature.required{border:1px solid #cc0000}verdocs-field-signature.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}verdocs-field-signature verdocs-button-panel{top:-3px;left:-2px;opacity:0.5;z-index:1000;cursor:pointer;position:absolute;-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-field-signature verdocs-button-panel[data-active],verdocs-field-signature verdocs-button-panel:hover{opacity:1}verdocs-field-signature verdocs-button-panel .icon svg{fill:#333333}verdocs-field-signature verdocs-button-panel .icon:hover svg{fill:#000000}';const l='<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>';const d=class{constructor(i){o(this,i);this.fieldChange=t(this,"fieldChange",7);this.settingsPress=t(this,"settingsPress",7);this.field=null;this.name="";this.recipient=undefined;this.disabled=false;this.editable=false;this.moveable=false;this.roleindex=0;this.tempSignature=""}async focusField(){this.handleShow();console.log("focused",this)}hideDialog(){var o;(o=this.dialog)===null||o===void 0?void 0:o.remove();this.dialog=null}handleAdopt(o){var t;console.log("[SIGNATURE] Adopted signature");this.tempSignature=o.detail;(t=this.fieldChange)===null||t===void 0?void 0:t.emit(this.tempSignature);this.hideDialog()}handleShow(){var o;this.dialog=document.createElement("verdocs-signature-dialog");this.dialog.open=true;this.dialog.fullName=((o=this.recipient)===null||o===void 0?void 0:o.full_name)||this.name;this.dialog.addEventListener("cancel",(()=>this.hideDialog()));this.dialog.addEventListener("adopt",(o=>this.handleAdopt(o)));document.body.append(this.dialog)}render(){var o,t,n;const a=s(this.field);const d=this.tempSignature||a.base64;const c=(t=(o=this.disabled)!==null&&o!==void 0?o:a.disabled)!==null&&t!==void 0?t:false;const p=this.field["rgba"]||r(this.roleindex);return i(e,{class:{required:(n=this.field)===null||n===void 0?void 0:n.required,disabled:c},style:{backgroundColor:p}},d?i("img",{src:this.tempSignature||a.base64,alt:"Signature"}):i("button",{onClick:()=>!c&&this.handleShow()},"Signature"),this.editable&&i("verdocs-button-panel",{icon:l},i("h6",null,"Field Settings"),i("form",null,i("verdocs-select-input",{label:"Recipient",options:[{label:"Buyer",value:"Buyer"},{label:"Seller",value:"Seller"}]}),i("verdocs-text-input",{label:"Field Name",value:"",placeholder:"Stored field name...",onInput:o=>console.log("ipt",o)}),i("verdocs-text-input",{label:"Placeholder",value:"",placeholder:"Placeholder text...",onInput:o=>console.log("ipt",o)}))))}};d.style=a;const c='verdocs-signature-dialog{font-family:"Barlow", sans-serif;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;z-index:10000;top:0;left:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:#0000007f}verdocs-signature-dialog .dialog{width:100%;max-width:340px;border-radius:4px;overflow:hidden;-webkit-box-shadow:3px 3px 5px 1px rgba(40, 40, 40, 0.4);box-shadow:3px 3px 5px 1px rgba(40, 40, 40, 0.4);background:#f5f5fa}verdocs-signature-dialog .heading{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;padding:20px 20px 0 20px;line-height:28px;font-size:20px;font-weight:500}verdocs-signature-dialog .content{font-size:14px;padding:20px}verdocs-signature-dialog .buttons{display:-ms-flexbox;display:flex;margin:20px 0 0 0;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:center;align-items:center}verdocs-signature-dialog .buttons verdocs-button{margin-left:16px}verdocs-signature-dialog canvas{background:#ffffff;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto;width:300px;height:79px;max-width:100%;-webkit-box-shadow:0 0 6px 0 #0000001f;box-shadow:0 0 6px 0 #0000001f}verdocs-signature-dialog .disclaimer{text-align:justify;padding:8px 0;font-size:11px;line-height:14px;color:rgba(0, 0, 0, 0.54)}verdocs-signature-dialog .as-shown{font-size:11px;margin:4px 0 20px 4px;color:rgba(0, 0, 0, 0.54)}verdocs-signature-dialog .tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}verdocs-signature-dialog .tabs .tab{padding:8px 15px;cursor:pointer}verdocs-signature-dialog .tabs .tab.active{border-bottom:2px solid #cccccc}verdocs-signature-dialog .tabs .tab:hover{color:#55bc81}';const p=class{constructor(i){o(this,i);this.next=t(this,"next",7);this.cancel=t(this,"cancel",7);this.name="";this.fontLoaded=false;this.enteredName="";this.mode="type"}componentWillLoad(){this.enteredName=this.name;const o=new FontFace("Dancing Script","url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup6hNX6plRP.woff)");o.load().then((o=>{document.fonts.add(o);this.fontLoaded=true}))}componentDidLoad(){this.redrawSignature()}componentDidUpdate(){this.redrawSignature()}redrawSignature(){if(!this.canvasElement){return}const o=this.canvasElement.width;const t=this.canvasElement.getContext("2d");t.clearRect(0,0,this.canvasElement.width,this.canvasElement.height);let i=100;do{i-=2;t.font=`${i}px Dancing Script`}while(t.measureText(this.enteredName).width>o-32);t.textAlign="center";t.textBaseline="middle";t.font=`${i}px Dancing Script`;t.fillText(this.enteredName,this.canvasElement.width/2,this.canvasElement.height/2)}handleCancel(o){o.stopPropagation();o.preventDefault();this.cancel.emit()}handleNameChange(o){this.enteredName=o.target.value}handleAdopt(o){o.stopPropagation();o.preventDefault();const t=this.canvasElement.toDataURL("image/png");this.next.emit(t)}render(){return i(e,{onClick:o=>this.handleCancel(o)},i("div",{class:"dialog"},i("div",{class:"heading"},"Create Your Signature"),i("div",{class:"content"},i("verdocs-text-input",{placeholder:"Full Name...",label:"Full Name",value:this.enteredName,onInput:o=>this.handleNameChange(o),onClick:o=>o.stopPropagation()}),i("div",{class:"as-shown"},"As shown on driver's license or govt. ID card."),this.fontLoaded?i("canvas",{ref:o=>this.canvasElement=o}):i("div",{style:{display:"none"}}),i("div",{class:"disclaimer"},"By clicking Adopt, I agree that the signature will be the electronic representation of my signature for all purposes when I (or my agent) use them on documents, including legally binding contracts — just the same as a pen-and-paper signature or initial."),i("div",{class:"buttons"},i("verdocs-button",{label:"CANCEL",size:"normal",variant:"outline",onClick:o=>this.handleCancel(o)}),i("verdocs-button",{label:"Adopt & Sign",size:"normal",onClick:o=>this.handleAdopt(o)})))))}};p.style=c;const h='verdocs-toolbar-icon{font-family:"Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;display:inline-block}verdocs-toolbar-icon .icon{display:inline-block;cursor:pointer}verdocs-toolbar-icon .icon svg{fill:#5c6575}verdocs-toolbar-icon .tooltip{display:none;-webkit-box-shadow:0 0 10px 1px #999999;box-shadow:0 0 10px 1px #999999;background:#ffffff;color:#33364b;max-width:240px;font-weight:bold;padding:5px 10px;font-size:13px;position:relative;border-radius:4px;z-index:10000}verdocs-toolbar-icon .tooltip .arrow,verdocs-toolbar-icon .tooltip .arrow::before{position:absolute;width:8px;height:8px;background:inherit}verdocs-toolbar-icon .tooltip .arrow{visibility:hidden;top:-4px}verdocs-toolbar-icon .tooltip .arrow::before{visibility:visible;content:"";-webkit-transform:rotate(45deg);transform:rotate(45deg)}verdocs-toolbar-icon .tooltip[data-show]{display:block}verdocs-toolbar-icon .tooltip[data-popper-placement^=top]>.arrow{bottom:-4px}verdocs-toolbar-icon .tooltip[data-popper-placement^=bottom]>.arrow{top:-4px}verdocs-toolbar-icon .tooltip[data-popper-placement^=left]>.arrow{right:-4px}verdocs-toolbar-icon .tooltip[data-popper-placement^=right]>.arrow{left:-4px}';const g=class{constructor(t){o(this,t);this.text="";this.icon="";this.containerId=`verdocs-toolbar-icon-${Math.random().toString(36).substring(2,11)}`}componentDidLoad(){this.popperInstance=n(this.iconEl,this.tooltip,{})}disconnectedCallback(){if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}show(){var o,t;(o=this.tooltip)===null||o===void 0?void 0:o.setAttribute("data-show","");(t=this.popperInstance)===null||t===void 0?void 0:t.update().catch((()=>{}))}hide(){var o;(o=this.tooltip)===null||o===void 0?void 0:o.removeAttribute("data-show")}render(){return i(e,{class:{}},i("div",{"aria-describedby":this.containerId,class:"icon",innerHTML:this.icon,onMouseEnter:()=>this.show(),onFocus:()=>this.show(),onMouseLeave:()=>this.hide(),onBlur:()=>this.hide(),ref:o=>this.iconEl=o}),i("div",{id:this.containerId,role:"tooltip",class:"tooltip","data-popper-placement":"bottom",ref:o=>this.tooltip=o},this.text,i("div",{"data-popper-arrow":"true",class:"arrow"})))}};g.style=h;export{d as verdocs_field_signature,p as verdocs_signature_dialog,g as verdocs_toolbar_icon};
|
|
2
|
+
//# sourceMappingURL=p-650e0b71.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/elements/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","src/components/elements/verdocs-field-signature/verdocs-field-signature.tsx","src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.scss?tag=verdocs-signature-dialog","src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.tsx","src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.scss?tag=verdocs-toolbar-icon","src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.tsx"],"names":["verdocsFieldSignatureCss","settingsIcon","VerdocsFieldSignature","[object Object]","this","handleShow","console","log","_a","dialog","remove","e","tempSignature","detail","fieldChange","emit","hideDialog","document","createElement","open","fullName","recipient","full_name","name","addEventListener","handleAdopt","body","append","settings","getFieldSettings","field","value","base64","disabled","_b","backgroundColor","getRGBA","roleindex","h","Host","class","required","_c","style","src","alt","onClick","editable","icon","label","options","placeholder","onInput","verdocsSignatureDialogCss","VerdocsSignatureDialog","enteredName","ds","FontFace","load","then","font","fonts","add","fontLoaded","redrawSignature","canvasElement","canvasWidth","width","context","getContext","clearRect","height","fontSize","measureText","textAlign","textBaseline","fillText","stopPropagation","preventDefault","cancel","target","data","toDataURL","next","handleCancel","handleNameChange","ref","el","display","size","variant","verdocsToolbarIconCss","VerdocsToolbarIcon","Math","random","toString","substring","popperInstance","createPopper","iconEl","tooltip","destroy","setAttribute","update","catch","removeAttribute","aria-describedby","containerId","innerHTML","onMouseEnter","show","onFocus","onMouseLeave","hide","onBlur","id","role","data-popper-placement","text","data-popper-arrow"],"mappings":"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","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-field-signature {\n font-family: $verdocs-primary-font;\n width: 83px;\n height: 36px;\n display: block;\n font-size: 11px;\n position: relative;\n letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &.disabled {\n opacity: 0.5;\n }\n\n img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n }\n\n button {\n box-sizing: border-box;\n border: none;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid rgb(204, 0, 0);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n\n verdocs-button-panel {\n top: -3px;\n left: -2px;\n opacity: 0.5;\n z-index: 1000;\n cursor: pointer;\n position: absolute;\n transform: scale(0.6);\n\n &[data-active],\n &:hover {\n opacity: 1;\n }\n\n .icon {\n svg {\n fill: #333333;\n }\n\n &:hover {\n svg {\n fill: #000000;\n }\n }\n }\n }\n}\n","import {ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {IDocumentField, IRecipient} from '@verdocs/js-sdk/Envelopes/Types';\nimport {Component, h, Host, Prop, Event, EventEmitter, Method, State} from '@stencil/core';\nimport {getFieldSettings} from '../../../utils/utils';\nimport {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\n\nconst settingsIcon =\n '<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>';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field will be disabled. Otherwise, a placeholder\n * button will be shown. Clicking the button will show a dialog to adopt a signature.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n /**\n * The document or template field to display.\n */\n @Prop() field: IDocumentField | ITemplateField | null = null;\n\n /**\n * If set, the signature creation dialog will be initialized with this text.\n */\n @Prop() name?: string = '';\n\n /**\n * If set, the signature creation dialog will be initialized from this object.\n */\n @Prop() recipient?: IRecipient;\n\n /**\n * If set, overrides the field's settings object. Primarily used to support \"preview\" modes where all fields are disabled.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be\n * changed, so it should typically only be enabled in the Builder.\n */\n @Prop() editable?: boolean = false;\n\n /**\n * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.\n */\n @Prop() moveable?: boolean = false;\n\n /**\n * If set, the field will be colored using this index value to select the background color.\n */\n @Prop() roleindex?: number = 0;\n\n /**\n * Event emitted when the field has changed.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) settingsPress: EventEmitter;\n\n @Method() async focusField() {\n this.handleShow();\n console.log('focused', this);\n }\n\n @State()\n tempSignature: string = '';\n\n private dialog?: any;\n\n hideDialog() {\n this.dialog?.remove();\n this.dialog = null;\n }\n\n handleAdopt(e: any) {\n console.log('[SIGNATURE] Adopted signature');\n this.tempSignature = e.detail;\n this.fieldChange?.emit(this.tempSignature);\n this.hideDialog();\n }\n\n handleShow() {\n this.dialog = document.createElement('verdocs-signature-dialog');\n this.dialog.open = true;\n this.dialog.fullName = this.recipient?.full_name || this.name;\n this.dialog.addEventListener('cancel', () => this.hideDialog());\n this.dialog.addEventListener('adopt', e => this.handleAdopt(e));\n document.body.append(this.dialog);\n }\n\n render() {\n const settings = getFieldSettings(this.field);\n const value = this.tempSignature || settings.base64;\n const disabled = this.disabled ?? settings.disabled ?? false;\n const backgroundColor = this.field['rgba'] || getRGBA(this.roleindex);\n\n return (\n <Host class={{required: this.field?.required, disabled}} style={{backgroundColor}}>\n {value ? <img src={this.tempSignature || settings.base64} alt=\"Signature\" /> : <button onClick={() => !disabled && this.handleShow()}>Signature</button>}\n\n {this.editable && (\n <verdocs-button-panel icon={settingsIcon}>\n <h6>Field Settings</h6>\n <form>\n <verdocs-select-input\n label=\"Recipient\"\n options={[\n {label: 'Buyer', value: 'Buyer'},\n {label: 'Seller', value: 'Seller'},\n ]}\n />\n\n <verdocs-text-input label=\"Field Name\" value=\"\" placeholder=\"Stored field name...\" onInput={e => console.log('ipt', e)} />\n <verdocs-text-input label=\"Placeholder\" value=\"\" placeholder=\"Placeholder text...\" onInput={e => console.log('ipt', e)} />\n </form>\n </verdocs-button-panel>\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-signature-dialog {\n font-family: $primary-font;\n box-sizing: border-box;\n position: absolute;\n z-index: 10000;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #0000007f;\n\n .dialog {\n width: 100%;\n max-width: 340px;\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 3px 3px 5px 1px rgba(40, 40, 40, 0.4);\n background: $verdocs-grey-3;\n }\n\n .heading {\n display: flex;\n flex-direction: row;\n padding: 20px 20px 0 20px;\n line-height: 28px;\n font-size: 20px;\n font-weight: 500;\n }\n\n .content {\n font-size: 14px;\n padding: 20px;\n }\n\n .buttons {\n display: flex;\n margin: 20px 0 0 0;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n\n verdocs-button {\n margin-left: 16px;\n }\n }\n\n canvas {\n background: $verdocs-grey-4;\n box-sizing: border-box;\n margin: 0 auto;\n width: 300px;\n // TODO: The original app had an aspect ratio of (80 / 305) * (signatureBodyWidth - 20)\n height: 79px;\n max-width: 100%;\n box-shadow: 0 0 6px 0 #0000001f;\n }\n\n .disclaimer {\n text-align: justify;\n padding: 8px 0;\n font-size: 11px;\n line-height: 14px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .as-shown {\n font-size: 11px;\n margin: 4px 0 20px 4px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .tabs {\n display: flex;\n flex-direction: row;\n\n .tab {\n padding: 8px 15px;\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid $light-border-color;\n }\n\n &:hover {\n color: $primary-color;\n }\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, State, Host} 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-signature-dialog',\n styleUrl: 'verdocs-signature-dialog.scss',\n})\nexport class VerdocsSignatureDialog {\n private canvasElement?: HTMLCanvasElement;\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<string>;\n\n /**\n * Fired if the user cancels the dialog.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n @State() fontLoaded = false;\n\n @State() enteredName: string = '';\n\n @State() mode: string = 'type';\n\n componentWillLoad() {\n this.enteredName = this.name;\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.redrawSignature();\n }\n\n componentDidUpdate() {\n this.redrawSignature();\n }\n\n redrawSignature() {\n if (!this.canvasElement) {\n return;\n }\n\n const canvasWidth = this.canvasElement.width;\n\n const context = this.canvasElement.getContext('2d');\n context.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height);\n\n let fontSize = 100;\n do {\n fontSize -= 2;\n context.font = `${fontSize}px Dancing Script`;\n } while (context.measureText(this.enteredName).width > canvasWidth - 32); // 32px padding each side\n\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.font = `${fontSize}px Dancing Script`;\n context.fillText(this.enteredName, this.canvasElement.width / 2, this.canvasElement.height / 2);\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n e.preventDefault();\n this.cancel.emit();\n }\n\n handleNameChange(e: any) {\n this.enteredName = e.target.value;\n }\n\n handleAdopt(e: any) {\n e.stopPropagation();\n e.preventDefault();\n const data = this.canvasElement.toDataURL('image/png');\n this.next.emit(data);\n }\n\n /*\n selColor(hex: string) {\n this.color = hex;\n this.animateDraw();\n }\n\n stopDraw() {\n this.paint = false;\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n draw(e) {\n this.paint = true;\n this.addPoints(e, false);\n this.animateDraw();\n }\n\n recordPoints(e) {\n if (this.paint) {\n this.addPoints(e, true);\n this.animateDraw();\n }\n }\n\n animateDraw() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n\n this.canvas.strokeStyle = this.color || '#000000';\n this.canvas.lineJoin = 'round';\n this.canvas.lineWidth = 3;\n\n for (let i = 0; i < this.points.length; i++) {\n this.canvas.beginPath();\n if (this.points[i].drag && i) {\n this.canvas.moveTo(this.points[i - 1].x, this.points[i - 1].y);\n // this.canvas.arc(this.points[i - 1].x, this.points[i - 1].y, 2, 0, 2 * Math.PI, false);\n } else {\n this.canvas.moveTo(this.points[i].x - 1, this.points[i].y);\n // this.canvas.arc(this.points[i].x, this.points[i].y, 2, 0, 2 * Math.PI, false);\n }\n\n this.canvas.lineTo(this.points[i].x, this.points[i].y);\n this.canvas.closePath();\n this.canvas.stroke();\n }\n }\n\n drawCurve(color: string, curve: number) {\n this.canvas.beginPath();\n }\n\n\n\n addPoints(e, drag: boolean) {\n if (window) {\n let x;\n let y;\n e.preventDefault();\n if (e.touches && e.touches.length > 0) {\n x = e.touches[0].clientX;\n } else {\n x = e.clientX;\n }\n\n if (e.touches && e.touches.length > 0) {\n y = e.touches[0].clientY;\n } else {\n y = e.clientY;\n }\n const rect = this.signatureCanvas.nativeElement.getBoundingClientRect();\n this.points.push({\n x: x - rect.left,\n y: y - rect.top,\n drag: drag\n });\n }\n }\n\n clearPad() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n this.points = [];\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n async adoptAndSign() {\n try {\n this.adoptedAndSigned = true;\n await this.updateFullName();\n await this.captureSignatureFromCanvas();\n const message = this.signatureMode === 'Signature' ? 'Saving Signature' : 'Saving Initial';\n this.snackbarService.open(message, 'OK', this.snackbarService.initConfig(null, 'bottom'));\n this.handleMode();\n } catch (err) {\n this.snackbarService.open('Failed to apply signature', 'OK', this.snackbarService.initConfig(null, 'bottom'));\n }\n }\n\n handleMode() {\n let currentField;\n switch (this.mode) {\n case 'signerview':\n if (this.signatureMode === 'Signature') {\n this.signatureService.postSignatureBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateSigned(currentField.fName, true);\n this.signatureService.toggleSig(false);\n this.signatureService.setSignatureId(result.id);\n this.signatureService.putSignatureField(this.envelopeId, this.fieldName, result.id).then(res => {\n this.eventTracker.createEvent({\n category: 'verdoc',\n action: 'verdoc signed',\n label: `verdoc id: ${this.envelopeId}`\n })\n if (res && res.settings) {\n this.signatureService.setSignatureData(res.settings.base64);\n this.signatureService.setSignatureId(res.settings.signature_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_sig: res.settings.base64, sig_id: res.settings.signature_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save signature. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n } else {\n this.signatureService.postInitialBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateInitialed(currentField.fName, true);\n this.signatureService.setInitialId(result.id);\n this.signatureService.toggleSig(false);\n this.signatureService.putInitialField(this.envelopeId, this.fieldName, result.id).then(res => {\n if (res && res.settings) {\n this.signatureService.setInitialData(res.settings.base64);\n this.signatureService.setInitialId(res.settings.initial_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_int: res.settings.base64, int_id: res.settings.initial_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save initial. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n }\n break;\n }\n }\n */\n\n render() {\n return (\n <Host onClick={e => this.handleCancel(e)}>\n <div class=\"dialog\">\n <div class=\"heading\">Create Your Signature</div>\n\n <div class=\"content\">\n <verdocs-text-input placeholder=\"Full Name...\" label=\"Full Name\" value={this.enteredName} onInput={e => this.handleNameChange(e)} onClick={e => e.stopPropagation()} />\n <div class=\"as-shown\">As shown on driver's license or govt. ID card.</div>\n\n {/*<div class=\"tabs\">*/}\n {/* <div class={{tab: true, active: this.mode === 'type'}} onClick={() => (this.mode = 'type')}>*/}\n {/* Type*/}\n {/* </div>*/}\n {/*<div class={{tab: true, active: this.mode === 'draw'}} onClick={() => (this.mode = 'draw')}>*/}\n {/* Draw*/}\n {/*</div>*/}\n {/*</div>*/}\n\n {this.fontLoaded ? <canvas ref={el => (this.canvasElement = el as HTMLCanvasElement)} /> : <div style={{display: 'none'}} />}\n\n <div class=\"disclaimer\">\n By clicking Adopt, I agree that the signature will be the electronic representation of my signature for all purposes when I (or my agent) use them on documents,\n including legally binding contracts — just the same as a pen-and-paper signature or initial.\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"CANCEL\" size=\"normal\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Adopt & Sign\" size=\"normal\" onClick={e => this.handleAdopt(e)} />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-toolbar-icon {\n font-family: $verdocs-primary-font;\n display: inline-block;\n\n .icon {\n display: inline-block;\n cursor: pointer;\n\n svg {\n fill: $choice-available-color;\n }\n }\n\n .tooltip {\n display: none;\n box-shadow: 0 0 10px 1px #999999;\n background: #ffffff;\n color: $label-color;\n max-width: 240px;\n font-weight: bold;\n padding: 5px 10px;\n font-size: 13px;\n position: relative;\n border-radius: 4px;\n z-index: 10000;\n\n .arrow,\n .arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n }\n\n .arrow {\n visibility: hidden;\n top: -4px;\n }\n\n .arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n }\n\n &[data-show] {\n display: block;\n }\n\n &[data-popper-placement^='top'] > .arrow {\n bottom: -4px;\n }\n\n &[data-popper-placement^='bottom'] > .arrow {\n top: -4px;\n }\n\n &[data-popper-placement^='left'] > .arrow {\n right: -4px;\n }\n\n &[data-popper-placement^='right'] > .arrow {\n left: -4px;\n }\n }\n}\n","import {createPopper, Instance} from '@popperjs/core';\nimport {Component, h, Host, Prop, State} from '@stencil/core';\n// import {Component, Event, EventEmitter, h, Host, Prop, State} from '@stencil/core';\n\n/**\n * Displays a simple help icon. Upon hover or focus, a tooltip will be displayed with help text.\n */\n@Component({\n tag: 'verdocs-toolbar-icon',\n styleUrl: 'verdocs-toolbar-icon.scss',\n shadow: false,\n})\nexport class VerdocsToolbarIcon {\n iconEl: HTMLDivElement;\n tooltip: HTMLDivElement;\n popperInstance: Instance;\n\n /**\n * Help text to display on hover/focus\n */\n @Prop() text: string = '';\n\n /**\n * SVG icon to display\n */\n @Prop() icon: string = '';\n\n /**\n * Triggered when the icon is pressed\n */\n // @Event({composed: true}) press: EventEmitter;\n\n @State() containerId = `verdocs-toolbar-icon-${Math.random().toString(36).substring(2, 11)}`;\n\n componentDidLoad() {\n this.popperInstance = createPopper(this.iconEl, this.tooltip, {\n // placement: 'top-end',\n // modifiers: [{name: 'offset', options: {offset: [0, 10]}}],\n });\n }\n\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n show() {\n this.tooltip?.setAttribute('data-show', '');\n this.popperInstance?.update().catch(() => {});\n }\n\n hide() {\n this.tooltip?.removeAttribute('data-show');\n }\n\n // handlePress() {\n // this.press?.emit();\n // }\n\n render() {\n return (\n <Host class={{}}>\n <div\n aria-describedby={this.containerId}\n class=\"icon\"\n innerHTML={this.icon}\n onMouseEnter={() => this.show()}\n onFocus={() => this.show()}\n onMouseLeave={() => this.hide()}\n onBlur={() => this.hide()}\n ref={el => (this.iconEl = el as HTMLDivElement)}\n />\n <div id={this.containerId} role=\"tooltip\" class=\"tooltip\" data-popper-placement=\"bottom\" ref={el => (this.tooltip = el as HTMLDivElement)}>\n {this.text}\n <div data-popper-arrow=\"true\" class=\"arrow\" />\n </div>\n </Host>\n );\n }\n}\n"]}
|