@verdocs/web-sdk 1.9.32 → 1.9.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/verdocs-dropdown.cjs.entry.js +91 -0
  3. package/dist/cjs/verdocs-dropdown.cjs.entry.js.map +1 -0
  4. package/dist/cjs/verdocs-field-date.cjs.entry.js +1 -1
  5. package/dist/cjs/verdocs-field-date.cjs.entry.js.map +1 -1
  6. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -1
  7. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js.map +1 -1
  8. package/dist/cjs/verdocs-sign.cjs.entry.js +21 -15
  9. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  10. package/dist/cjs/verdocs-view.cjs.entry.js +89 -0
  11. package/dist/cjs/verdocs-view.cjs.entry.js.map +1 -0
  12. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  13. package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.css +3 -0
  14. package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.js +2 -1
  15. package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.js.map +1 -1
  16. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.css +3 -2
  17. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +23 -16
  18. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  19. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js +2 -2
  20. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js.map +1 -1
  21. package/dist/collection/components/embeds/verdocs-view/verdocs-view.css +10 -26
  22. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +19 -3
  23. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js.map +1 -1
  24. package/dist/components/verdocs-field-date.js +1 -1
  25. package/dist/components/verdocs-field-date.js.map +1 -1
  26. package/dist/components/verdocs-field-radio-button.js +2 -1
  27. package/dist/components/verdocs-field-radio-button.js.map +1 -1
  28. package/dist/components/verdocs-sign.js +24 -17
  29. package/dist/components/verdocs-sign.js.map +1 -1
  30. package/dist/components/verdocs-view2.js +28 -6
  31. package/dist/components/verdocs-view2.js.map +1 -1
  32. package/dist/docs.json +11 -4
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/esm/verdocs-dropdown.entry.js +87 -0
  35. package/dist/esm/verdocs-dropdown.entry.js.map +1 -0
  36. package/dist/esm/verdocs-field-date.entry.js +1 -1
  37. package/dist/esm/verdocs-field-date.entry.js.map +1 -1
  38. package/dist/esm/verdocs-field-radio-button.entry.js +2 -1
  39. package/dist/esm/verdocs-field-radio-button.entry.js.map +1 -1
  40. package/dist/esm/verdocs-sign.entry.js +22 -16
  41. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  42. package/dist/esm/verdocs-view.entry.js +85 -0
  43. package/dist/esm/verdocs-view.entry.js.map +1 -0
  44. package/dist/esm/verdocs-web-sdk.js +1 -1
  45. package/dist/esm-es5/loader.js +1 -1
  46. package/dist/esm-es5/loader.js.map +1 -1
  47. package/dist/esm-es5/verdocs-dropdown.entry.js +2 -0
  48. package/dist/esm-es5/verdocs-dropdown.entry.js.map +1 -0
  49. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  50. package/dist/esm-es5/verdocs-field-date.entry.js.map +1 -1
  51. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  52. package/dist/esm-es5/verdocs-field-radio-button.entry.js.map +1 -1
  53. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  54. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  55. package/dist/esm-es5/verdocs-view.entry.js +2 -0
  56. package/dist/esm-es5/verdocs-view.entry.js.map +1 -0
  57. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  58. package/dist/esm-es5/verdocs-web-sdk.js.map +1 -1
  59. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +1 -0
  60. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +1 -0
  61. package/dist/verdocs-web-sdk/p-05433ef8.entry.js +2 -0
  62. package/dist/verdocs-web-sdk/p-05433ef8.entry.js.map +1 -0
  63. package/dist/verdocs-web-sdk/p-05b15286.system.entry.js +2 -0
  64. package/dist/verdocs-web-sdk/p-05b15286.system.entry.js.map +1 -0
  65. package/dist/verdocs-web-sdk/{p-893d6bfb.entry.js → p-32a83aa5.entry.js} +2 -2
  66. package/dist/verdocs-web-sdk/{p-893d6bfb.entry.js.map → p-32a83aa5.entry.js.map} +1 -1
  67. package/dist/verdocs-web-sdk/{p-a3820c7f.entry.js → p-37a198be.entry.js} +2 -2
  68. package/dist/verdocs-web-sdk/p-37a198be.entry.js.map +1 -0
  69. package/dist/verdocs-web-sdk/p-53011513.entry.js +2 -0
  70. package/dist/verdocs-web-sdk/p-53011513.entry.js.map +1 -0
  71. package/dist/verdocs-web-sdk/{p-c0f5116c.system.entry.js → p-63fc3d17.system.entry.js} +2 -2
  72. package/dist/verdocs-web-sdk/{p-c0f5116c.system.entry.js.map → p-63fc3d17.system.entry.js.map} +1 -1
  73. package/dist/verdocs-web-sdk/p-77fdef53.entry.js +2 -0
  74. package/dist/verdocs-web-sdk/p-77fdef53.entry.js.map +1 -0
  75. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  76. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js.map +1 -1
  77. package/dist/verdocs-web-sdk/p-d942510c.system.entry.js +2 -0
  78. package/dist/verdocs-web-sdk/p-d942510c.system.entry.js.map +1 -0
  79. package/dist/verdocs-web-sdk/{p-b94cdaea.system.entry.js → p-fa2ef80d.system.entry.js} +2 -2
  80. package/dist/verdocs-web-sdk/p-fa2ef80d.system.entry.js.map +1 -0
  81. package/dist/verdocs-web-sdk/p-ff3f1b98.system.entry.js +2 -0
  82. package/dist/verdocs-web-sdk/p-ff3f1b98.system.entry.js.map +1 -0
  83. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  84. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -1
  85. package/package.json +2 -2
  86. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +0 -156
  87. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js.map +0 -1
  88. package/dist/custom-elements.json +0 -1123
  89. package/dist/esm/verdocs-dropdown_2.entry.js +0 -151
  90. package/dist/esm/verdocs-dropdown_2.entry.js.map +0 -1
  91. package/dist/esm-es5/verdocs-dropdown_2.entry.js +0 -2
  92. package/dist/esm-es5/verdocs-dropdown_2.entry.js.map +0 -1
  93. package/dist/verdocs-web-sdk/p-851f5c2b.system.entry.js +0 -2
  94. package/dist/verdocs-web-sdk/p-851f5c2b.system.entry.js.map +0 -1
  95. package/dist/verdocs-web-sdk/p-977ccc81.entry.js +0 -2
  96. package/dist/verdocs-web-sdk/p-977ccc81.entry.js.map +0 -1
  97. package/dist/verdocs-web-sdk/p-9f1225bf.entry.js +0 -2
  98. package/dist/verdocs-web-sdk/p-9f1225bf.entry.js.map +0 -1
  99. package/dist/verdocs-web-sdk/p-a3820c7f.entry.js.map +0 -1
  100. package/dist/verdocs-web-sdk/p-b122f5c7.system.entry.js +0 -2
  101. package/dist/verdocs-web-sdk/p-b122f5c7.system.entry.js.map +0 -1
  102. package/dist/verdocs-web-sdk/p-b94cdaea.system.entry.js.map +0 -1
@@ -1,156 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-1329d89c.js');
6
- const popper = require('./popper-11d5f714.js');
7
- require('./Types-da57ce69.js');
8
- const VerdocsEndpoint = require('./VerdocsEndpoint-257ebdb3.js');
9
- const Envelopes = require('./Envelopes-019e8a9f.js');
10
- const errors = require('./errors-0396da3d.js');
11
- const utils = require('./utils-787b2115.js');
12
- require('./Token-576f0e8a.js');
13
- require('./index-eb130f52.js');
14
- require('./Templates-8ef16e3d.js');
15
- require('./Files-4bdc0c0f.js');
16
-
17
- const SortDown = `<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#50BE80"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7 10l5 5 5-5H7z"/></svg>
18
- `;
19
-
20
- const verdocsDropdownCss = "verdocs-dropdown{font-family:\"Barlow\", sans-serif;display:block}verdocs-dropdown .arrow{width:32px;height:26px;background:#fff;cursor:pointer;border-radius:4px;-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;border:1px solid #cccccc;-ms-flex-pack:center;justify-content:center}verdocs-dropdown .arrow svg{fill:#55bc81;-webkit-transition:0.3s;transition:0.3s}verdocs-dropdown .items{width:200px;display:none;z-index:10000;border-radius:5px;background:#33354c;border:1px solid #654dcb}verdocs-dropdown .items[data-show]{display:block}verdocs-dropdown .option{width:100%;color:#fff;border:none;display:block;text-align:left;background:none;padding:10px 20px}verdocs-dropdown .option:hover{cursor:pointer;background:#55bc81}verdocs-dropdown .option[disabled]{color:#aaaaaa}verdocs-dropdown .option[disabled]:hover{color:#aaaaaa;cursor:inherit;background:transparent}verdocs-dropdown.open .items{display:block}verdocs-dropdown.open .arrow{background:#4c56cb;border:1px solid #707ae5}verdocs-dropdown.open .arrow svg{-webkit-transform:scaleY(-1);transform:scaleY(-1);fill:#fff}";
21
-
22
- const VerdocsDropdown = class {
23
- constructor(hostRef) {
24
- index.registerInstance(this, hostRef);
25
- this.optionSelected = index.createEvent(this, "optionSelected", 7);
26
- // We need to do this to reliably disconnect the click-away listener
27
- this.clickListenerSymbol = new AbortController();
28
- this.options = [];
29
- this.open = undefined;
30
- }
31
- componentDidLoad() {
32
- this.popper = popper.createPopper(this.dropdownButton, this.dropdownMenu, { placement: 'bottom-start', modifiers: [{ name: 'offset', options: { offset: [0, 6] } }] });
33
- window.addEventListener('click', this.clickListener.bind(this), { signal: this.clickListenerSymbol.signal });
34
- }
35
- disconnectedCallback() {
36
- this.clickListenerSymbol.abort();
37
- }
38
- clickListener(e) {
39
- const outside = !(e.target == this.el || this.el.contains(e.target));
40
- if (outside) {
41
- this.hide();
42
- }
43
- }
44
- handleSelectOption(e, option) {
45
- e.stopPropagation();
46
- // this.isOpen = false;
47
- this.optionSelected.emit(option);
48
- this.hide();
49
- }
50
- // See https://popper.js.org/docs/v2/tutorial/
51
- // What we're doing here is clearing event listeners when they aren't needed, to increase performance in lists
52
- showDropdown() {
53
- var _a, _b;
54
- // this.isOpen = true;
55
- this.dropdownMenu.setAttribute('data-show', '');
56
- this.dropdownMenu.removeAttribute('aria-hidden');
57
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions(options => ({
58
- ...options,
59
- modifiers: [...options.modifiers, { name: 'eventListeners', enabled: true }],
60
- })).catch(() => { });
61
- (_b = this.popper) === null || _b === void 0 ? void 0 : _b.update().catch(() => { });
62
- }
63
- handleHideDropdown(e) {
64
- var _a, _b;
65
- if (((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.localName) === 'button' && ((_b = e === null || e === void 0 ? void 0 : e.target) === null || _b === void 0 ? void 0 : _b.className) === 'arrow') {
66
- // This event is fired when a menu element is clicked because the button "loses focus" then too
67
- return;
68
- }
69
- this.hide();
70
- }
71
- toggleDropdown(e) {
72
- e.stopPropagation();
73
- if (this.open) {
74
- this.hide();
75
- }
76
- else {
77
- this.showDropdown();
78
- }
79
- }
80
- hide() {
81
- var _a;
82
- this.open = false;
83
- this.dropdownMenu.removeAttribute('data-show');
84
- this.dropdownMenu.setAttribute('aria-hidden', 'true');
85
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions(options => ({
86
- ...options,
87
- modifiers: [...options.modifiers, { name: 'eventListeners', enabled: false }],
88
- })).catch(() => { });
89
- }
90
- render() {
91
- var _a;
92
- return (index.h(index.Host, { class: { open: !!this.open } }, index.h("button", { class: "arrow", innerHTML: SortDown, "aria-label": "Open Menu", onClick: e => this.toggleDropdown(e), onBlur: e => this.handleHideDropdown(e), ref: el => (this.dropdownButton = el) }), index.h("div", { class: "items", "aria-hidden": !this.open, ref: el => (this.dropdownMenu = el) }, (_a = this.options) === null || _a === void 0 ? void 0 : _a.map(option => (index.h("button", { onClick: e => this.handleSelectOption(e, option), class: "option", disabled: option.disabled }, option.label))))));
93
- }
94
- get el() { return index.getElement(this); }
95
- };
96
- VerdocsDropdown.style = verdocsDropdownCss;
97
-
98
- const verdocsViewCss = "verdocs-view{display:-ms-flexbox;display:flex;overflow:hidden;position:relative;min-height:600px;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-view div,verdocs-view canvas{-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-view .header{-ms-flex:0;flex:0;display:-ms-flexbox;display:flex;z-index:1000;-ms-flex-align:center;align-items:center;-webkit-transition:all 0.25s;transition:all 0.25s;-ms-flex-pack:center;justify-content:center;background-color:#33354c;-webkit-box-shadow:0 4px 4px 0 rgba(0, 0, 0, 0.24), 0 0 4px 0 rgba(0, 0, 0, 0.12);box-shadow:0 4px 4px 0 rgba(0, 0, 0, 0.24), 0 0 4px 0 rgba(0, 0, 0, 0.12)}verdocs-view .header .inner{width:100%;max-width:1028px}verdocs-view .toolbar{width:100%;margin:0 auto;padding:0 14px;position:relative}verdocs-view .tools{width:100%;color:#fff;height:56px;display:-ms-flexbox;display:flex;font-size:12px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;background-color:#33354c}verdocs-view .tools .logo{width:77.5px;margin:-6px 0 0 5px}verdocs-view .tools .title{padding-left:16px;font-size:18px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}verdocs-view .document{-ms-flex:1;flex:1;height:100%;display:-ms-flexbox;display:flex;padding:15px;row-gap:15px;min-height:200px;position:relative;overflow-y:scroll;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}verdocs-view .document .inner{width:100%;max-width:1028px}";
99
-
100
- const PrintIcon = `<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></svg>`;
101
- const DownloadIcon = `<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24"><path d="M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z"></path></svg>`;
102
- const VerdocsView = class {
103
- constructor(hostRef) {
104
- index.registerInstance(this, hostRef);
105
- this.sdkError = index.createEvent(this, "sdkError", 7);
106
- this.endpoint = VerdocsEndpoint.VerdocsEndpoint.getDefault();
107
- this.envelopeId = '';
108
- }
109
- componentWillLoad() {
110
- this.endpoint.loadSession();
111
- }
112
- // TODO: Handling signing vs preview-as-user cases
113
- // TODO: Handle anonymous case and failure to load due to not being logged in
114
- async componentDidLoad() {
115
- var _a, _b, _c;
116
- if (!this.envelopeId) {
117
- console.error(`[VIEW] Missing required envelopeId`);
118
- return;
119
- }
120
- try {
121
- await Envelopes.getEnvelopeById(this.endpoint, this.envelopeId);
122
- }
123
- catch (e) {
124
- (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new errors.SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
125
- }
126
- }
127
- handlePageRendered(e) {
128
- const pageInfo = e.detail;
129
- console.log('[SIGN] Page rendered', pageInfo);
130
- }
131
- render() {
132
- var _a;
133
- console.log('[VIEW] Rendering', Envelopes.state.error, Envelopes.state.loading, Envelopes.state.envelope);
134
- if (Envelopes.state.loading || !Envelopes.state.envelope) {
135
- return (index.h(index.Host, null, index.h("verdocs-loader", null)));
136
- }
137
- if (Envelopes.state.error) {
138
- return (index.h(index.Host, null, index.h("div", null, Envelopes.state.error)));
139
- }
140
- return (index.h(index.Host, null, index.h("div", { class: "header" }, index.h("div", { class: "inner" }, index.h("div", { class: "toolbar" }, index.h("div", { class: "tools" }, index.h(index.Fragment, null, index.h("img", { src: "https://verdocs.com/assets/white-logo.svg", alt: "Verdocs Logo", class: "logo" }), index.h("div", { class: "title" }, Envelopes.state.envelope.name), index.h("div", { style: { flex: '1' } }), index.h("div", { innerHTML: PrintIcon, style: { width: '24px', height: '24px', fill: '#ffffff', cursor: 'pointer' }, onClick: () => window.print() }), index.h("div", { innerHTML: DownloadIcon, style: { width: '24px', height: '24px', fill: '#ffffff', cursor: 'pointer', marginLeft: '16px', maginRight: '30px' }, onClick: () => utils.savePDF(this.endpoint, Envelopes.state.envelope, Envelopes.state.envelope.envelope_document_id).catch(() => { }) })))))), index.h("div", { class: "document" }, (((_a = Envelopes.state.envelope) === null || _a === void 0 ? void 0 : _a.documents) || []).map(envelopeDocument => {
141
- const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
142
- pages.sort((a, b) => a.sequence - b.sequence);
143
- return (index.h(index.Fragment, null, pages.map(page => (index.h("verdocs-document-page", { pageImageUri: page.display_uri, virtualWidth: 612, virtualHeight: 792, pageNumber: page.sequence, onPageRendered: e => this.handlePageRendered(e), layers: [
144
- { name: 'page', type: 'canvas' },
145
- { name: 'controls', type: 'div' },
146
- ] })))));
147
- }))));
148
- }
149
- get component() { return index.getElement(this); }
150
- };
151
- VerdocsView.style = verdocsViewCss;
152
-
153
- exports.verdocs_dropdown = VerdocsDropdown;
154
- exports.verdocs_view = VerdocsView;
155
-
156
- //# sourceMappingURL=verdocs-dropdown_2.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"verdocs-dropdown.verdocs-view.entry.cjs.js","mappings":"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","names":["createPopper","h","Host","VerdocsEndpoint","getEnvelopeById","SDKError","EnvelopeStore","Fragment","savePDF"],"sources":["./src/components/controls/verdocs-dropdown/verdocs-dropdown.scss?tag=verdocs-dropdown","./src/components/controls/verdocs-dropdown/verdocs-dropdown.tsx","./src/components/embeds/verdocs-view/verdocs-view.scss?tag=verdocs-view","./src/components/embeds/verdocs-view/verdocs-view.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-dropdown {\n font-family: $primary-font;\n display: block;\n\n .arrow {\n width: 32px;\n height: 26px;\n background: #fff;\n cursor: pointer;\n border-radius: 4px;\n align-items: center;\n display: inline-flex;\n border: 1px solid $light-border-color;\n justify-content: center;\n }\n\n .arrow svg {\n fill: $primary-color;\n transition: 0.3s;\n }\n\n .items {\n width: 200px;\n display: none;\n z-index: 10000;\n border-radius: 5px;\n background: $medium-bg;\n border: 1px solid $item-border-color;\n }\n\n .items[data-show] {\n display: block;\n }\n\n .option {\n width: 100%;\n color: #fff;\n border: none;\n display: block;\n text-align: left;\n background: none;\n padding: 10px 20px;\n }\n\n .option:hover {\n cursor: pointer;\n background: $primary-color;\n }\n\n .option[disabled] {\n color: $light-disabled-color;\n }\n\n .option[disabled]:hover {\n color: $light-disabled-color;\n cursor: inherit;\n background: transparent;\n }\n\n &.open {\n .items {\n display: block;\n }\n\n .arrow {\n background: $secondary-color;\n border: 1px solid $border-color;\n }\n\n .arrow svg {\n transform: scaleY(-1);\n fill: #fff;\n }\n }\n}\n","import {Host} from '@stencil/core';\nimport {createPopper, Instance} from '@popperjs/core';\nimport {Component, Prop, Element, State, h, Event, EventEmitter} from '@stencil/core';\nimport SortDown from './down-arrow.svg';\n\nexport interface IMenuOption {\n label: string;\n id?: any;\n faIcon?: any;\n disabled?: boolean;\n}\n\n/**\n * Display a drop-down menu button. A menu of the specified options will be displayed when the button is pressed. The menu will be hidden\n * when the button is pressed again, or an option is selected.\n *\n * ```html\n * <verdocs-dropdown\n * options={[\n * {label: 'Option 1', disabled: true},\n * {label: 'Option 2', id: '2'}\n * ]}\n * label=\"OK\" onClick={() => (console.log('OK clicked'))}\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-dropdown',\n styleUrl: 'verdocs-dropdown.scss',\n})\nexport class VerdocsDropdown {\n @Element()\n el: HTMLElement;\n\n private dropdownButton?: HTMLButtonElement;\n private dropdownMenu?: HTMLDivElement;\n private popper?: Instance;\n\n /**\n * The menu options to display.\n */\n @Prop() options: IMenuOption[] = [];\n\n /**\n * Event fired when a menu option is clicked.\n * Web Component events need to be \"composed\" to cross the Shadow DOM and be received by parent frameworks.\n */\n @Event({composed: true}) optionSelected: EventEmitter<IMenuOption>;\n\n @State() open: boolean;\n\n // We need to do this to reliably disconnect the click-away listener\n clickListenerSymbol = new AbortController();\n componentDidLoad() {\n this.popper = createPopper(this.dropdownButton, this.dropdownMenu, {placement: 'bottom-start', modifiers: [{name: 'offset', options: {offset: [0, 6]}}]});\n\n window.addEventListener('click', this.clickListener.bind(this), {signal: this.clickListenerSymbol.signal});\n }\n\n disconnectedCallback() {\n this.clickListenerSymbol.abort();\n }\n\n clickListener(e: any) {\n const outside = !(e.target == this.el || this.el.contains(e.target));\n if (outside) {\n this.hide();\n }\n }\n\n handleSelectOption(e: any, option: IMenuOption) {\n e.stopPropagation();\n // this.isOpen = false;\n this.optionSelected.emit(option);\n this.hide();\n }\n\n // See https://popper.js.org/docs/v2/tutorial/\n // What we're doing here is clearing event listeners when they aren't needed, to increase performance in lists\n showDropdown() {\n // this.isOpen = true;\n this.dropdownMenu.setAttribute('data-show', '');\n this.dropdownMenu.removeAttribute('aria-hidden');\n\n this.popper\n ?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: true}],\n }))\n .catch(() => {});\n\n this.popper?.update().catch(() => {});\n }\n\n handleHideDropdown(e: any) {\n if (e?.target?.localName === 'button' && e?.target?.className === 'arrow') {\n // This event is fired when a menu element is clicked because the button \"loses focus\" then too\n return;\n }\n\n this.hide();\n }\n\n toggleDropdown(e: any) {\n e.stopPropagation();\n\n if (this.open) {\n this.hide();\n } else {\n this.showDropdown();\n }\n }\n\n hide() {\n this.open = false;\n this.dropdownMenu.removeAttribute('data-show');\n this.dropdownMenu.setAttribute('aria-hidden', 'true');\n this.popper\n ?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: false}],\n }))\n .catch(() => {});\n }\n\n render() {\n return (\n <Host class={{open: !!this.open}}>\n <button\n class=\"arrow\"\n innerHTML={SortDown}\n aria-label=\"Open Menu\"\n onClick={e => this.toggleDropdown(e)}\n onBlur={e => this.handleHideDropdown(e)}\n ref={el => (this.dropdownButton = el as HTMLButtonElement)}\n />\n\n <div class=\"items\" aria-hidden={!this.open} ref={el => (this.dropdownMenu = el as HTMLDivElement)}>\n {this.options?.map(option => (\n <button onClick={e => this.handleSelectOption(e, option)} class=\"option\" disabled={option.disabled}>\n {option.label}\n </button>\n ))}\n </div>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-view {\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 600px;\n flex-direction: column;\n box-sizing: border-box;\n font-family: $verdocs-primary-font;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n\n .header {\n flex: 0;\n display: flex;\n z-index: 1000;\n align-items: center;\n transition: all 0.25s;\n justify-content: center;\n background-color: $medium-bg;\n box-shadow: 0 4px 4px 0 rgb(0 0 0 / 24%), 0 0 4px 0 rgb(0 0 0 / 12%);\n\n .inner {\n width: 100%;\n max-width: 1028px;\n }\n }\n\n .toolbar {\n width: 100%;\n margin: 0 auto;\n padding: 0 14px;\n position: relative;\n }\n\n .tools {\n width: 100%;\n color: #fff;\n height: 56px;\n display: flex;\n font-size: 12px;\n align-items: center;\n flex-direction: row;\n background-color: $medium-bg;\n\n .logo {\n width: 77.5px;\n margin: -6px 0 0 5px;\n }\n\n .title {\n padding-left: 16px;\n font-size: 18px;\n font-weight: 500;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .document {\n flex: 1;\n height: 100%;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n overflow-y: scroll;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n justify-content: center;\n\n .inner {\n width: 100%;\n max-width: 1028px;\n }\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Component, h, Element, Event, Host, Prop, EventEmitter, Fragment} from '@stencil/core';\nimport {getEnvelopeById} from '../../../utils/Envelopes';\nimport EnvelopeStore from '../../../utils/envelopeStore';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\nimport {savePDF} from '../../../utils/utils';\n\nconst PrintIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\"></path></svg>`;\n\nconst DownloadIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z\"></path></svg>`;\n\n/**\n * Render the documents attached to an envelope in read-only (view) mode. All documents are displayed in order.\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 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 * 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 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) {\n console.error(`[VIEW] Missing required envelopeId`);\n return;\n }\n\n try {\n await getEnvelopeById(this.endpoint, this.envelopeId);\n } catch (e) {\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handlePageRendered(e) {\n const pageInfo = e.detail as IDocumentPageInfo;\n console.log('[SIGN] Page rendered', pageInfo);\n }\n\n render() {\n console.log('[VIEW] Rendering', EnvelopeStore.error, EnvelopeStore.loading, EnvelopeStore.envelope);\n if (EnvelopeStore.loading || !EnvelopeStore.envelope) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n if (EnvelopeStore.error) {\n return (\n <Host>\n <div>{EnvelopeStore.error}</div>\n </Host>\n );\n }\n\n return (\n <Host>\n <div class=\"header\">\n <div class=\"inner\">\n <div class=\"toolbar\">\n <div class=\"tools\">\n <Fragment>\n <img src=\"https://verdocs.com/assets/white-logo.svg\" alt=\"Verdocs Logo\" class=\"logo\" />\n <div class=\"title\">{EnvelopeStore.envelope.name}</div>\n <div style={{flex: '1'}} />\n <div innerHTML={PrintIcon} style={{width: '24px', height: '24px', fill: '#ffffff', cursor: 'pointer'}} onClick={() => window.print()} />\n <div\n innerHTML={DownloadIcon}\n style={{width: '24px', height: '24px', fill: '#ffffff', cursor: 'pointer', marginLeft: '16px', maginRight: '30px'}}\n onClick={() => savePDF(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(() => {})}\n />\n </Fragment>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"document\">\n {(EnvelopeStore.envelope?.documents || []).map(envelopeDocument => {\n const pages = [...(envelopeDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n return (\n <Fragment>\n {pages.map(page => (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n pageNumber={page.sequence}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n ))}\n </Fragment>\n );\n })}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}