@verdocs/web-sdk 1.6.0 → 1.6.3
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/loader.cjs.js +1 -1
- package/dist/cjs/verdocs-auth.cjs.entry.js +13 -19
- package/dist/cjs/verdocs-auth.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-dropdown_12.cjs.entry.js +71 -53
- package/dist/cjs/verdocs-dropdown_12.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
- package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +16 -22
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +71 -53
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js.map +1 -1
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.stories.js +2 -1
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.stories.js.map +1 -1
- package/dist/components/verdocs-auth.js +14 -21
- package/dist/components/verdocs-auth.js.map +1 -1
- package/dist/components/verdocs-sign.js.map +1 -1
- package/dist/components/verdocs-view2.js +71 -53
- package/dist/components/verdocs-view2.js.map +1 -1
- package/dist/docs.json +2 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/verdocs-auth.entry.js +13 -19
- package/dist/esm/verdocs-auth.entry.js.map +1 -1
- package/dist/esm/verdocs-dropdown_12.entry.js +71 -53
- package/dist/esm/verdocs-dropdown_12.entry.js.map +1 -1
- package/dist/esm/verdocs-sign.entry.js.map +1 -1
- package/dist/esm/verdocs-web-sdk.js +1 -1
- 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-dropdown_12.entry.js +2 -2
- package/dist/esm-es5/verdocs-dropdown_12.entry.js.map +1 -1
- package/dist/esm-es5/verdocs-sign.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/embeds/verdocs-auth/verdocs-auth.d.ts +0 -2
- package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +3 -1
- package/dist/verdocs-web-sdk/p-10e49d23.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/p-1dd229a2.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-1dd229a2.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-545eb938.system.entry.js.map +1 -1
- package/dist/verdocs-web-sdk/{p-ec757dab.entry.js → p-5c6bbb6c.entry.js} +2 -2
- package/dist/verdocs-web-sdk/p-5c6bbb6c.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-8f198f11.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-8f198f11.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-bb08e079.system.js +1 -1
- package/dist/verdocs-web-sdk/p-bb08e079.system.js.map +1 -1
- package/dist/verdocs-web-sdk/{p-85cd7ebf.system.entry.js → p-f3aee0fc.system.entry.js} +3 -3
- package/dist/verdocs-web-sdk/{p-ec757dab.entry.js.map → p-f3aee0fc.system.entry.js.map} +1 -1
- 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/fixup-pdfjs.js +77 -0
- package/package.json +3 -3
- package/dist/verdocs-web-sdk/p-654d98ea.system.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-654d98ea.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-85cd7ebf.system.entry.js.map +0 -1
- package/dist/verdocs-web-sdk/p-bdcc8115.entry.js +0 -2
- package/dist/verdocs-web-sdk/p-bdcc8115.entry.js.map +0 -1
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["verdocs-sign.cjs",[[0,"verdocs-sign",{"endpoint":[16],"documentid":[1],"roleid":[1],"invitecode":[1],"recipient":[32],"signerToken":[32],"pdfUrl":[32],"recipientIndex":[32],"document":[32],"fields":[32],"pdfPageInfo":[32],"hasSignature":[32],"nextButtonLabel":[32],"focusedField":[32]}]]],["verdocs-auth.cjs",[[0,"verdocs-auth",{"endpoint":[16],"visible":[4],"logo":[1],"debug":[4],"isAuthenticated":[32],"displayMode":[32],"username":[32],"password":[32],"loggingIn":[32],"activeSession":[32],"loginError":[32]
|
|
17
|
+
return index.bootstrapLazy([["verdocs-sign.cjs",[[0,"verdocs-sign",{"endpoint":[16],"documentid":[1],"roleid":[1],"invitecode":[1],"recipient":[32],"signerToken":[32],"pdfUrl":[32],"recipientIndex":[32],"document":[32],"fields":[32],"pdfPageInfo":[32],"hasSignature":[32],"nextButtonLabel":[32],"focusedField":[32]}]]],["verdocs-auth.cjs",[[0,"verdocs-auth",{"endpoint":[16],"visible":[4],"logo":[1],"debug":[4],"isAuthenticated":[32],"displayMode":[32],"username":[32],"password":[32],"loggingIn":[32],"activeSession":[32],"loginError":[32]}]]],["verdocs-search.cjs",[[0,"verdocs-search",{"endpoint":[16]}]]],["verdocs-kba-dialog.cjs",[[0,"verdocs-kba-dialog",{"step":[2],"steps":[2],"helptitle":[1],"helptext":[1],"mode":[1],"label":[1],"placeholder":[1],"choices":[16],"open":[4],"response":[32]}]]],["verdocs-organization-card.cjs",[[0,"verdocs-organization-card",{"organization":[16]}]]],["verdocs-quick-functions.cjs",[[0,"verdocs-quick-functions",{"endpoint":[16]}]]],["verdocs-search-tabs.cjs",[[0,"verdocs-search-tabs",{"selected":[32]}]]],["verdocs-status-indicator.cjs",[[0,"verdocs-status-indicator",{"size":[1],"theme":[1],"status":[1],"document":[16],"isOpen":[32],"recipientStatusIcons":[32]}]]],["verdocs-template-card.cjs",[[0,"verdocs-template-card",{"template":[16]}]]],["verdocs-template-tags.cjs",[[0,"verdocs-template-tags",{"tags":[16]}]]],["verdocs-toggle.cjs",[[0,"verdocs-toggle",{"options":[16],"theme":[1]},[[6,"click","handleClick"]]]]],["verdocs-button_2.cjs",[[0,"verdocs-text-input",{"value":[1],"label":[1],"placeholder":[1],"autocomplete":[1],"type":[1],"disabled":[4],"_value":[32]}],[0,"verdocs-button",{"label":[1],"startIcon":[1,"start-icon"],"endIcon":[1,"end-icon"],"size":[1],"type":[1],"variant":[1],"disabled":[4]}]]],["verdocs-ok-dialog.cjs",[[0,"verdocs-ok-dialog",{"heading":[1],"message":[1],"open":[4],"cancel":[4]}]]],["verdocs-initial-dialog.cjs",[[0,"verdocs-initial-dialog",{"fullname":[1],"open":[4],"fontLoaded":[32],"enteredInitials":[32],"mode":[32]}]]],["verdocs-signature-dialog.cjs",[[0,"verdocs-signature-dialog",{"fullname":[1],"open":[4],"fontLoaded":[32],"enteredName":[32],"mode":[32]}]]],["verdocs-upload-dialog.cjs",[[0,"verdocs-upload-dialog",{"open":[4],"draggingOver":[32],"decodedFiles":[32]}]]],["verdocs-search-activity_2.cjs",[[0,"verdocs-search-activity",{"endpoint":[16],"type":[1],"options":[8],"emptyMessage":[32],"authFailure":[32],"title":[32],"recent":[32],"saved":[32],"starred":[32]}],[0,"verdocs-search-box",{"endpoint":[16],"placeholder":[1],"type":[1],"query":[1]}]]],["verdocs-loader.cjs",[[0,"verdocs-loader"]]],["verdocs-dropdown_12.cjs",[[0,"verdocs-field-initial",{"required":[4],"fullName":[1,"full-name"],"value":[1],"focusField":[64]}],[0,"verdocs-field-signature",{"required":[4],"fullName":[1,"full-name"],"value":[1],"focusField":[64]}],[0,"verdocs-field-attachment",{"order":[2],"value":[1],"required":[4],"disabled":[4],"focusField":[64]}],[0,"verdocs-view",{"endpoint":[16],"rotation":[2],"source":[1],"loadProgress":[32]}],[0,"verdocs-dropdown",{"options":[16],"open":[4],"isOpen":[32]}],[0,"verdocs-field-checkbox",{"order":[2],"value":[4],"required":[4],"disabled":[4]}],[0,"verdocs-field-date",{"placeholder":[1],"order":[2],"value":[1],"required":[4],"disabled":[4],"focused":[32],"focusField":[64]}],[0,"verdocs-field-dropdown",{"options":[16],"required":[4],"order":[2],"disabled":[4],"value":[1],"focused":[32],"focusField":[64]}],[0,"verdocs-field-payment",{"field":[16],"fields":[16],"pageNum":[2,"page-num"],"roleName":[1,"role-name"],"fieldId":[1,"field-id"],"recipients":[8],"selectedRoleName":[1,"selected-role-name"],"pdfPages":[16],"currentSignature":[1,"current-signature"],"currentSignatureId":[1,"current-signature-id"],"currentInitial":[1,"current-initial"],"currentInitialId":[1,"current-initial-id"],"focused":[4],"signed":[4],"preparedMessage":[32],"signatureUrl":[32]}],[0,"verdocs-field-radio-button",{"order":[2],"checked":[4],"value":[1],"name":[1],"required":[4],"disabled":[4]}],[0,"verdocs-field-textarea",{"placeholder":[1],"order":[2],"value":[1],"required":[4],"disabled":[4],"focused":[32],"focusField":[64]}],[0,"verdocs-field-textbox",{"placeholder":[1],"order":[2],"value":[1],"required":[4],"disabled":[4],"focused":[32],"focusField":[64]}]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -28,6 +28,10 @@ const VerdocsAuth = class {
|
|
|
28
28
|
constructor(hostRef) {
|
|
29
29
|
index.registerInstance(this, hostRef);
|
|
30
30
|
this.authenticated = index.createEvent(this, "authenticated", 7);
|
|
31
|
+
/**
|
|
32
|
+
* The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.
|
|
33
|
+
*/
|
|
34
|
+
this.endpoint = VerdocsEndpoint.VerdocsEndpoint.getDefault();
|
|
31
35
|
/**
|
|
32
36
|
* Normally, if the user has a valid session, this embed will be invisible, otherwise it will display
|
|
33
37
|
* login / signup forms. If this is set to false, this embed will be invisible in both cases. Apps may
|
|
@@ -53,24 +57,14 @@ const VerdocsAuth = class {
|
|
|
53
57
|
this.loggingIn = false;
|
|
54
58
|
this.activeSession = null;
|
|
55
59
|
this.loginError = null;
|
|
56
|
-
this._endpoint = VerdocsEndpoint.VerdocsEndpoint.getDefault();
|
|
57
|
-
}
|
|
58
|
-
componentWillLoad() {
|
|
59
|
-
if (this.endpoint) {
|
|
60
|
-
console.log('Using user-supplied endpoint', this.endpoint);
|
|
61
|
-
this._endpoint = this.endpoint;
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
console.log('Using default endpoint', this._endpoint);
|
|
65
|
-
}
|
|
66
60
|
}
|
|
67
61
|
componentDidLoad() {
|
|
68
62
|
console.log('loaded', this);
|
|
69
|
-
this.
|
|
70
|
-
if (this.
|
|
63
|
+
this.endpoint.loadSession();
|
|
64
|
+
if (this.endpoint.session) {
|
|
71
65
|
this.isAuthenticated = true;
|
|
72
|
-
this.activeSession = this.
|
|
73
|
-
this.authenticated.emit({ authenticated: true, session: this.
|
|
66
|
+
this.activeSession = this.endpoint.session;
|
|
67
|
+
this.authenticated.emit({ authenticated: true, session: this.endpoint.session });
|
|
74
68
|
}
|
|
75
69
|
else {
|
|
76
70
|
this.authenticated.emit({ authenticated: false, session: null });
|
|
@@ -82,13 +76,13 @@ const VerdocsAuth = class {
|
|
|
82
76
|
// }
|
|
83
77
|
handleLogin() {
|
|
84
78
|
this.loggingIn = true;
|
|
85
|
-
authenticateUser(this.
|
|
79
|
+
authenticateUser(this.endpoint, { username: this.username, password: this.password })
|
|
86
80
|
.then(r => {
|
|
87
81
|
this.loggingIn = false;
|
|
88
|
-
this.
|
|
89
|
-
this.activeSession = this.
|
|
82
|
+
this.endpoint.setToken(r.accessToken);
|
|
83
|
+
this.activeSession = this.endpoint.session;
|
|
90
84
|
this.isAuthenticated = true;
|
|
91
|
-
this.authenticated.emit({ authenticated: true, session: this.
|
|
85
|
+
this.authenticated.emit({ authenticated: true, session: this.endpoint.session });
|
|
92
86
|
})
|
|
93
87
|
.catch(e => {
|
|
94
88
|
var _a;
|
|
@@ -102,7 +96,7 @@ const VerdocsAuth = class {
|
|
|
102
96
|
});
|
|
103
97
|
}
|
|
104
98
|
handleLogout() {
|
|
105
|
-
this.
|
|
99
|
+
this.endpoint.clearSession();
|
|
106
100
|
this.isAuthenticated = false;
|
|
107
101
|
this.authenticated.emit({ authenticated: false, session: null });
|
|
108
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"verdocs-auth.entry.cjs.js","mappings":"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","names":["VerdocsEndpoint","Auth.authenticateUser","h"],"sources":["./node_modules/@verdocs/js-sdk/Users/Auth.js","./src/components/embeds/verdocs-auth/verdocs-auth.scss?tag=verdocs-auth","./src/components/embeds/verdocs-auth/verdocs-auth.tsx"],"sourcesContent":["/**\n * Authenticate to Verdocs via user/password authentication\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.authenticateUser({ username: 'test@test.com', password: 'PASSWORD' });\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var authenticateUser = function (endpoint, params) {\n return endpoint.api //\n .post('/authentication/login', params)\n .then(function (r) { return r.data; });\n};\n/**\n * Authenticate to Verdocs via client ID / Secret authentication. **NOTE: This is only suitable for\n * NodeJS server-side applications. Never expose your Client Secret in a Web or Mobile app!** Also note\n * that access tokens may be cached by server-side apps (and this is recommended) but do expire after 2\n * hours. This expiration may change based on future security needs. Application developers are encouraged\n * to check the `exp` expiration field in the response accessToken and renew tokens after they expire.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.authenticateApp({ client_id: 'CLIENTID', client_secret: 'SECRET' });\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var authenticateApp = function (endpoint, params) {\n return endpoint.api //\n .post('/authentication/login_client', {}, { headers: params })\n .then(function (r) { return r.data; });\n};\n/**\n * Validate a token. Only Verdocs tokens will be accepted. Most applications can decode tokens locally,\n * because tokens will be validated when API calls are made anyway. However, high-security applications\n * may use this endpoint to check if a token has been revoked.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {valid} = await Auth.validateToken({ token });\n * if (!valid) {\n * window.alert('Session invalid or expired. Please re-authenticate.');\n * }\n * ```\n */\nexport var validateToken = function (endpoint, params) {\n return endpoint.api //\n .post('/token/isValid', params)\n .then(function (r) { return r.data; });\n};\n/**\n * If called before the session expires, this will refresh the caller's session and tokens.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.refreshTokens();\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var refreshTokens = function (endpoint) {\n return endpoint.api //\n .get('/token')\n .then(function (r) { return r.data; });\n};\n/**\n * Update the caller's password. To help prevent CSRF attack vectors, the user's old password and email address are required.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {status, message} = await Auth.updatePassword({ email, oldPassword, newPassword });\n * if (status !== 'OK') {\n * window.alert(`Password reset error: ${message}`);\n * }\n * ```\n */\nexport var updatePassword = function (endpoint, params) {\n return endpoint.api //\n .put('/user/update_password', params)\n .then(function (r) { return r.data; });\n};\n/**\n * Update the caller's email address.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {profiles} = await Auth.updateEmail({ email: newEmail });\n * ```\n */\nexport var updateEmail = function (endpoint, params) {\n return endpoint.api //\n .put('/user/update_email', params)\n .then(function (r) { return r.data; });\n};\n","@import '../../../theme.scss';\n\nverdocs-auth {\n font-family: $verdocs-primary-font;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n .login-form,\n .signup-form {\n background: $verdocs-grey-4;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n display: flex;\n padding: 20px;\n width: 300px;\n max-width: 100%;\n }\n\n .logo {\n margin: 20px 0 30px;\n width: 128px;\n max-width: 100%;\n }\n\n h3 {\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 1.75;\n margin: 0;\n }\n\n h4 {\n text-align: center;\n font-weight: 400;\n font-size: 14px;\n line-height: 1.43;\n margin: 0;\n }\n\n .status-result {\n display: none;\n\n &.debug {\n white-space: pre-wrap;\n font-size: 14px;\n background: #fff;\n padding: 10px;\n display: block;\n flex-direction: row;\n justify-content: center;\n }\n }\n\n form {\n width: 100%;\n }\n\n verdocs-text-input {\n margin-bottom: 10px;\n }\n}\n","import {Auth} from '@verdocs/js-sdk/Users';\nimport {Component, Prop, State, h, Event, EventEmitter} from '@stencil/core';\nimport {VerdocsEndpoint, TSession} from '@verdocs/js-sdk';\n\nexport interface IAuthStatus {\n authenticated: boolean;\n session: TSession;\n}\n\n/**\n * Display an authentication dialog that allows the user to login or sign up. Callbacks are provided for events that\n * occur during the process (especially successful completion). The success callback will be fired immediately if the\n * user is already authenticated with a valid session, so this component may not always display visibly.\n *\n * To simplify some types of authentication flows, a visibility flag can force this component to never display. This\n * allows you to susbcribe to notifications from the\n *\n * This embed is responsive / mobile-friendly, but the calling application should provide at least a 300px wide\n * container to allow sufficient space for the required forms.\n *\n * As noted below, the primary event is `authenticated`. This will always be fired at least once, immediately after\n * the widget is rendered and the user's status has been checked. It may be fired again as the user completes (or\n * cancels) authentication steps.\n *\n * Authentication is required to demonstrate this Element. You may do this in Storybook by using the Auth\n * embed. This Element will reuse the same session produced by logging in via that Embed.\n *\n * ```typescript\n * interface IAuthStatus {\n * // If true, the user is authenticated with a valid session\n * authenticated: boolean;\n *\n * // Details for the user's session\n * session: IActiveSession | null;\n * }\n * ```\n */\n@Component({\n tag: 'verdocs-auth',\n styleUrl: 'verdocs-auth.scss',\n})\nexport class VerdocsAuth {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint;\n\n /**\n * Normally, if the user has a valid session, this embed will be invisible, otherwise it will display\n * login / signup forms. If this is set to false, this embed will be invisible in both cases. Apps may\n * use this to verify if a user has a valid session without needing a separate call to Verdocs JS SDK.\n */\n @Prop() visible: boolean = true;\n\n /**\n * By default, a Verdocs logo will be displayed above the login/signup forms. This may be used to\n * override its source. (Alternatively, you may simply hide it via CSS overrides.) Logos should be\n * in SVG format for best results.\n */\n @Prop() logo: string = 'https://verdocs.com/assets/blue-logo.svg';\n\n /**\n * If the user is authenticated, this embed will normally render invisibly. If debug is set true, a summary\n * if the user's session details will be displayed instead. This may be useful while debugging authentication\n * flows in new applications.\n */\n @Prop() debug: boolean = false;\n\n /**\n * Event fired when session authentication process has completed. Check the event contents for completion status.\n */\n @Event({composed: true}) authenticated: EventEmitter<IAuthStatus>;\n\n @State() isAuthenticated: boolean = false;\n @State() displayMode: string = 'login';\n @State() username: string = '';\n @State() password: string = '';\n @State() loggingIn: boolean = false;\n @State() activeSession: TSession = null;\n @State() loginError: string | null = null;\n @State() _endpoint = VerdocsEndpoint.getDefault();\n\n componentWillLoad() {\n if (this.endpoint) {\n console.log('Using user-supplied endpoint', this.endpoint);\n this._endpoint = this.endpoint;\n } else {\n console.log('Using default endpoint', this._endpoint);\n }\n }\n\n componentDidLoad() {\n console.log('loaded', this);\n this._endpoint.loadSession();\n if (this._endpoint.session) {\n this.isAuthenticated = true;\n this.activeSession = this._endpoint.session;\n this.authenticated.emit({authenticated: true, session: this._endpoint.session});\n } else {\n this.authenticated.emit({authenticated: false, session: null});\n }\n }\n\n // handleSelectOption(option: IMenuOption) {\n // this.isAuthenticated = false;\n // this.authenticated.emit(option);\n // }\n\n handleLogin() {\n this.loggingIn = true;\n Auth.authenticateUser(this._endpoint, {username: this.username, password: this.password})\n .then(r => {\n this.loggingIn = false;\n this._endpoint.setToken(r.accessToken);\n this.activeSession = this._endpoint.session;\n this.isAuthenticated = true;\n this.authenticated.emit({authenticated: true, session: this._endpoint.session});\n })\n .catch(e => {\n console.log('[VERDOCS] Login error', e.response, JSON.stringify(e));\n this.loggingIn = false;\n this.activeSession = null;\n this.authenticated.emit({authenticated: false, session: null});\n\n if (e?.response?.status === 403) {\n this.loginError = 'Please check your username and password and try again.';\n }\n });\n }\n\n handleLogout() {\n this._endpoint.clearSession();\n this.isAuthenticated = false;\n this.authenticated.emit({authenticated: false, session: null});\n }\n\n handleClearError() {\n this.loginError = null;\n }\n\n render() {\n if (!this.visible) {\n return <div style={{display: 'none'}}>Verdocs Auth Placeholder</div>;\n }\n\n if (this.isAuthenticated) {\n if (this.debug) {\n return (\n <div class=\"status-result debug\">\n <verdocs-button label=\"Logout\" disabled={this.loggingIn} onPress={() => this.handleLogout()} />\n </div>\n );\n }\n\n return <div class=\"status-result\">Authenticated</div>;\n }\n\n if (this.displayMode === 'signup') {\n return (\n <div class=\"signup-form\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n\n <h3>Sign up for an account</h3>\n <h4>\n Already have an account?\n <verdocs-button label=\"Log In\" variant=\"text\" onClick={() => (this.displayMode = 'login')} disabled={this.loggingIn} />\n </h4>\n\n <form onSubmit={() => this.handleLogin()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.username} onFieldInput={e => (this.username = e.detail)} disabled={this.loggingIn} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onFieldInput={e => (this.password = e.detail)}\n disabled={this.loggingIn}\n />\n\n <verdocs-button\n label=\"Signup\"\n disabled={this.loggingIn}\n onPress={() => this.handleLogin()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n </form>\n </div>\n );\n }\n\n return (\n <div class=\"login-form\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n\n <h3>Log in to your account</h3>\n <h4>\n Don't have an account?\n <verdocs-button label=\"Sign Up\" variant=\"text\" onClick={() => (this.displayMode = 'signup')} disabled={this.loggingIn} />\n </h4>\n\n <form onSubmit={() => this.handleLogin()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.username} onFieldInput={e => (this.username = e.detail)} disabled={this.loggingIn} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onFieldInput={e => (this.password = e.detail)}\n disabled={this.loggingIn}\n />\n\n <verdocs-button\n label=\"Forgot Your Password?\"\n variant=\"text\"\n onClick={() => (this.displayMode = 'signup')}\n disabled={this.loggingIn}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 20px'}}\n />\n\n <verdocs-button label=\"Login\" disabled={this.loggingIn} onPress={() => this.handleLogin()} style={{display: 'flex', justifyContent: 'center', margin: '10px auto 0'}} />\n </form>\n\n {this.loginError ? <verdocs-ok-dialog open={true} heading=\"Login Error\" message={this.loginError} onClosed={() => this.handleClearError()} /> : <div />}\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"verdocs-auth.entry.cjs.js","mappings":"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","names":["VerdocsEndpoint","Auth.authenticateUser","h"],"sources":["./node_modules/@verdocs/js-sdk/Users/Auth.js","./src/components/embeds/verdocs-auth/verdocs-auth.scss?tag=verdocs-auth","./src/components/embeds/verdocs-auth/verdocs-auth.tsx"],"sourcesContent":["/**\n * Authenticate to Verdocs via user/password authentication\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.authenticateUser({ username: 'test@test.com', password: 'PASSWORD' });\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var authenticateUser = function (endpoint, params) {\n return endpoint.api //\n .post('/authentication/login', params)\n .then(function (r) { return r.data; });\n};\n/**\n * Authenticate to Verdocs via client ID / Secret authentication. **NOTE: This is only suitable for\n * NodeJS server-side applications. Never expose your Client Secret in a Web or Mobile app!** Also note\n * that access tokens may be cached by server-side apps (and this is recommended) but do expire after 2\n * hours. This expiration may change based on future security needs. Application developers are encouraged\n * to check the `exp` expiration field in the response accessToken and renew tokens after they expire.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.authenticateApp({ client_id: 'CLIENTID', client_secret: 'SECRET' });\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var authenticateApp = function (endpoint, params) {\n return endpoint.api //\n .post('/authentication/login_client', {}, { headers: params })\n .then(function (r) { return r.data; });\n};\n/**\n * Validate a token. Only Verdocs tokens will be accepted. Most applications can decode tokens locally,\n * because tokens will be validated when API calls are made anyway. However, high-security applications\n * may use this endpoint to check if a token has been revoked.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {valid} = await Auth.validateToken({ token });\n * if (!valid) {\n * window.alert('Session invalid or expired. Please re-authenticate.');\n * }\n * ```\n */\nexport var validateToken = function (endpoint, params) {\n return endpoint.api //\n .post('/token/isValid', params)\n .then(function (r) { return r.data; });\n};\n/**\n * If called before the session expires, this will refresh the caller's session and tokens.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n * import {Transport} from '@verdocs/js-sdk/HTTP';\n *\n * const {accessToken} = await Auth.refreshTokens();\n * Transport.setAuthToken(accessToken);\n * ```\n */\nexport var refreshTokens = function (endpoint) {\n return endpoint.api //\n .get('/token')\n .then(function (r) { return r.data; });\n};\n/**\n * Update the caller's password. To help prevent CSRF attack vectors, the user's old password and email address are required.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {status, message} = await Auth.updatePassword({ email, oldPassword, newPassword });\n * if (status !== 'OK') {\n * window.alert(`Password reset error: ${message}`);\n * }\n * ```\n */\nexport var updatePassword = function (endpoint, params) {\n return endpoint.api //\n .put('/user/update_password', params)\n .then(function (r) { return r.data; });\n};\n/**\n * Update the caller's email address.\n *\n * ```typescript\n * import {Auth} from '@verdocs/js-sdk/Auth';\n *\n * const {profiles} = await Auth.updateEmail({ email: newEmail });\n * ```\n */\nexport var updateEmail = function (endpoint, params) {\n return endpoint.api //\n .put('/user/update_email', params)\n .then(function (r) { return r.data; });\n};\n","@import '../../../theme.scss';\n\nverdocs-auth {\n font-family: $verdocs-primary-font;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n .login-form,\n .signup-form {\n background: $verdocs-grey-4;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n display: flex;\n padding: 20px;\n width: 300px;\n max-width: 100%;\n }\n\n .logo {\n margin: 20px 0 30px;\n width: 128px;\n max-width: 100%;\n }\n\n h3 {\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 1.75;\n margin: 0;\n }\n\n h4 {\n text-align: center;\n font-weight: 400;\n font-size: 14px;\n line-height: 1.43;\n margin: 0;\n }\n\n .status-result {\n display: none;\n\n &.debug {\n white-space: pre-wrap;\n font-size: 14px;\n background: #fff;\n padding: 10px;\n display: block;\n flex-direction: row;\n justify-content: center;\n }\n }\n\n form {\n width: 100%;\n }\n\n verdocs-text-input {\n margin-bottom: 10px;\n }\n}\n","import {Auth} from '@verdocs/js-sdk/Users';\nimport {Component, Prop, State, h, Event, EventEmitter} from '@stencil/core';\nimport {VerdocsEndpoint, TSession} from '@verdocs/js-sdk';\n\nexport interface IAuthStatus {\n authenticated: boolean;\n session: TSession;\n}\n\n/**\n * Display an authentication dialog that allows the user to login or sign up. Callbacks are provided for events that\n * occur during the process (especially successful completion). The success callback will be fired immediately if the\n * user is already authenticated with a valid session, so this component may not always display visibly.\n *\n * To simplify some types of authentication flows, a visibility flag can force this component to never display. This\n * allows you to susbcribe to notifications from the\n *\n * This embed is responsive / mobile-friendly, but the calling application should provide at least a 300px wide\n * container to allow sufficient space for the required forms.\n *\n * As noted below, the primary event is `authenticated`. This will always be fired at least once, immediately after\n * the widget is rendered and the user's status has been checked. It may be fired again as the user completes (or\n * cancels) authentication steps.\n *\n * Authentication is required to demonstrate this Element. You may do this in Storybook by using the Auth\n * embed. This Element will reuse the same session produced by logging in via that Embed.\n *\n * ```typescript\n * interface IAuthStatus {\n * // If true, the user is authenticated with a valid session\n * authenticated: boolean;\n *\n * // Details for the user's session\n * session: IActiveSession | null;\n * }\n * ```\n */\n@Component({\n tag: 'verdocs-auth',\n styleUrl: 'verdocs-auth.scss',\n shadow: false,\n})\nexport class VerdocsAuth {\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 * Normally, if the user has a valid session, this embed will be invisible, otherwise it will display\n * login / signup forms. If this is set to false, this embed will be invisible in both cases. Apps may\n * use this to verify if a user has a valid session without needing a separate call to Verdocs JS SDK.\n */\n @Prop() visible: boolean = true;\n\n /**\n * By default, a Verdocs logo will be displayed above the login/signup forms. This may be used to\n * override its source. (Alternatively, you may simply hide it via CSS overrides.) Logos should be\n * in SVG format for best results.\n */\n @Prop() logo: string = 'https://verdocs.com/assets/blue-logo.svg';\n\n /**\n * If the user is authenticated, this embed will normally render invisibly. If debug is set true, a summary\n * if the user's session details will be displayed instead. This may be useful while debugging authentication\n * flows in new applications.\n */\n @Prop() debug: boolean = false;\n\n /**\n * Event fired when session authentication process has completed. Check the event contents for completion status.\n */\n @Event({composed: true}) authenticated: EventEmitter<IAuthStatus>;\n\n @State() isAuthenticated: boolean = false;\n @State() displayMode: string = 'login';\n @State() username: string = '';\n @State() password: string = '';\n @State() loggingIn: boolean = false;\n @State() activeSession: TSession = null;\n @State() loginError: string | null = null;\n\n componentDidLoad() {\n console.log('loaded', this);\n this.endpoint.loadSession();\n if (this.endpoint.session) {\n this.isAuthenticated = true;\n this.activeSession = this.endpoint.session;\n this.authenticated.emit({authenticated: true, session: this.endpoint.session});\n } else {\n this.authenticated.emit({authenticated: false, session: null});\n }\n }\n\n // handleSelectOption(option: IMenuOption) {\n // this.isAuthenticated = false;\n // this.authenticated.emit(option);\n // }\n\n handleLogin() {\n this.loggingIn = true;\n Auth.authenticateUser(this.endpoint, {username: this.username, password: this.password})\n .then(r => {\n this.loggingIn = false;\n this.endpoint.setToken(r.accessToken);\n this.activeSession = this.endpoint.session;\n this.isAuthenticated = true;\n this.authenticated.emit({authenticated: true, session: this.endpoint.session});\n })\n .catch(e => {\n console.log('[VERDOCS] Login error', e.response, JSON.stringify(e));\n this.loggingIn = false;\n this.activeSession = null;\n this.authenticated.emit({authenticated: false, session: null});\n\n if (e?.response?.status === 403) {\n this.loginError = 'Please check your username and password and try again.';\n }\n });\n }\n\n handleLogout() {\n this.endpoint.clearSession();\n this.isAuthenticated = false;\n this.authenticated.emit({authenticated: false, session: null});\n }\n\n handleClearError() {\n this.loginError = null;\n }\n\n render() {\n if (!this.visible) {\n return <div style={{display: 'none'}}>Verdocs Auth Placeholder</div>;\n }\n\n if (this.isAuthenticated) {\n if (this.debug) {\n return (\n <div class=\"status-result debug\">\n <verdocs-button label=\"Logout\" disabled={this.loggingIn} onPress={() => this.handleLogout()} />\n </div>\n );\n }\n\n return <div class=\"status-result\">Authenticated</div>;\n }\n\n if (this.displayMode === 'signup') {\n return (\n <div class=\"signup-form\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n\n <h3>Sign up for an account</h3>\n <h4>\n Already have an account?\n <verdocs-button label=\"Log In\" variant=\"text\" onClick={() => (this.displayMode = 'login')} disabled={this.loggingIn} />\n </h4>\n\n <form onSubmit={() => this.handleLogin()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.username} onFieldInput={e => (this.username = e.detail)} disabled={this.loggingIn} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onFieldInput={e => (this.password = e.detail)}\n disabled={this.loggingIn}\n />\n\n <verdocs-button\n label=\"Signup\"\n disabled={this.loggingIn}\n onPress={() => this.handleLogin()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n </form>\n </div>\n );\n }\n\n return (\n <div class=\"login-form\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n\n <h3>Log in to your account</h3>\n <h4>\n Don't have an account?\n <verdocs-button label=\"Sign Up\" variant=\"text\" onClick={() => (this.displayMode = 'signup')} disabled={this.loggingIn} />\n </h4>\n\n <form onSubmit={() => this.handleLogin()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.username} onFieldInput={e => (this.username = e.detail)} disabled={this.loggingIn} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onFieldInput={e => (this.password = e.detail)}\n disabled={this.loggingIn}\n />\n\n <verdocs-button\n label=\"Forgot Your Password?\"\n variant=\"text\"\n onClick={() => (this.displayMode = 'signup')}\n disabled={this.loggingIn}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 20px'}}\n />\n\n <verdocs-button label=\"Login\" disabled={this.loggingIn} onPress={() => this.handleLogin()} style={{display: 'flex', justifyContent: 'center', margin: '10px auto 0'}} />\n </form>\n\n {this.loginError ? <verdocs-ok-dialog open={true} heading=\"Login Error\" message={this.loginError} onClosed={() => this.handleClearError()} /> : <div />}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -23332,9 +23332,7 @@ const verdocsViewCss = "verdocs-view{font-family:\"Inter\", -apple-system, \"Seg
|
|
|
23332
23332
|
const CANVAS_MARGIN = 15;
|
|
23333
23333
|
const PDF_WORKER_URL = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdf.version}/pdf.worker.min.js`;
|
|
23334
23334
|
const CMAPS_URL = `https://unpkg.com/pdfjs-dist@${pdf.version}/cmaps/`;
|
|
23335
|
-
// https://unpkg.com/pdfjs-dist@2.0.550/cmaps/78-EUC-H.bcmap
|
|
23336
23335
|
console.log('[VIEW] Loading PDF-JS', { PDF_WORKER_URL, CMAPS_URL });
|
|
23337
|
-
// pdf.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min.js';
|
|
23338
23336
|
pdf$1.GlobalWorkerOptions.workerSrc = PDF_WORKER_URL;
|
|
23339
23337
|
const VerdocsView = class {
|
|
23340
23338
|
constructor(hostRef) {
|
|
@@ -23346,7 +23344,7 @@ const VerdocsView = class {
|
|
|
23346
23344
|
this.scaleChange = index.createEvent(this, "scaleChange", 7);
|
|
23347
23345
|
this.documentRendered = index.createEvent(this, "documentRendered", 7);
|
|
23348
23346
|
this.numPages = 1;
|
|
23349
|
-
this.
|
|
23347
|
+
this.fingerprints = [];
|
|
23350
23348
|
/**
|
|
23351
23349
|
* The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.
|
|
23352
23350
|
*/
|
|
@@ -23373,54 +23371,68 @@ const VerdocsView = class {
|
|
|
23373
23371
|
async renderPages() {
|
|
23374
23372
|
const pageNumbersToRender = integerSequence(1, this.numPages);
|
|
23375
23373
|
for await (let pageNumber of pageNumbersToRender) {
|
|
23376
|
-
|
|
23377
|
-
|
|
23378
|
-
|
|
23379
|
-
|
|
23380
|
-
|
|
23381
|
-
|
|
23382
|
-
|
|
23383
|
-
|
|
23384
|
-
|
|
23385
|
-
|
|
23386
|
-
|
|
23387
|
-
|
|
23388
|
-
|
|
23389
|
-
|
|
23390
|
-
|
|
23391
|
-
|
|
23392
|
-
|
|
23393
|
-
|
|
23394
|
-
const previousSibling = this.pagesRendered.filter(page => page.pageNumber < pageNumber).pop();
|
|
23395
|
-
const canvasTop = ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.canvasBottom) || 0) + CANVAS_MARGIN;
|
|
23396
|
-
const pageDetails = {
|
|
23397
|
-
pageNumber,
|
|
23398
|
-
width: canvasWidth,
|
|
23399
|
-
height: canvasHeight,
|
|
23400
|
-
originalWidth: this.isRotated(rotation) ? pageHeight : pageWidth,
|
|
23401
|
-
originalHeight: this.isRotated(rotation) ? pageWidth : pageHeight,
|
|
23402
|
-
xRatio: canvasWidth / pageWidth,
|
|
23403
|
-
yRatio: canvasHeight / pageHeight,
|
|
23404
|
-
canvasTop: canvasTop,
|
|
23405
|
-
canvasLeft: CANVAS_MARGIN,
|
|
23406
|
-
canvasRight: CANVAS_MARGIN + canvasWidth,
|
|
23407
|
-
canvasBottom: canvasTop + canvasHeight,
|
|
23408
|
-
};
|
|
23409
|
-
if (this.pagesRendered[index]) {
|
|
23410
|
-
this.pagesRendered[index] = pageDetails;
|
|
23411
|
-
}
|
|
23412
|
-
else {
|
|
23413
|
-
this.pagesRendered.push(pageDetails);
|
|
23414
|
-
}
|
|
23415
|
-
const eventData = { pages: this.pagesRendered, numPages: this.numPages, numRendered: this.pagesRendered.length, canvasContainer: this.pdfContainer };
|
|
23416
|
-
this.pageRendered.emit(eventData);
|
|
23417
|
-
if (pageNumber >= this.numPages) {
|
|
23418
|
-
console.log('[VIEW] Done rendering');
|
|
23374
|
+
try {
|
|
23375
|
+
const index = pageNumber - 1;
|
|
23376
|
+
console.log('[VIEW] Rendering page', pageNumber);
|
|
23377
|
+
const page = await this.pdfDocument.getPage(pageNumber);
|
|
23378
|
+
const [pageX0, pageY0, pageX1, pageY1] = page.view;
|
|
23379
|
+
const rotation = page.rotate;
|
|
23380
|
+
const viewport = page.getViewport({ scale: 1 / 0.75 });
|
|
23381
|
+
// const viewport = page.getViewport({scale: 1.5});
|
|
23382
|
+
const canvas = document.createElement('canvas');
|
|
23383
|
+
canvas.height = viewport.height;
|
|
23384
|
+
canvas.width = viewport.width;
|
|
23385
|
+
const canvasContext = canvas.getContext('2d');
|
|
23386
|
+
await page.render({ canvasContext, viewport });
|
|
23387
|
+
this.pdfContainer.appendChild(canvas);
|
|
23388
|
+
const canvasWidth = canvas.width;
|
|
23389
|
+
const canvasHeight = canvas.height;
|
|
23390
|
+
const pageWidth = pageX1 - pageX0;
|
|
23391
|
+
const pageHeight = pageY1 - pageY0;
|
|
23419
23392
|
this.pagesRendered.sort((a, b) => a.pageNumber - b.pageNumber);
|
|
23420
|
-
this.
|
|
23393
|
+
const previousSibling = this.pagesRendered.filter(page => page.pageNumber < pageNumber).pop();
|
|
23394
|
+
const canvasTop = ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.canvasBottom) || 0) + CANVAS_MARGIN;
|
|
23395
|
+
const pageDetails = {
|
|
23396
|
+
pageNumber,
|
|
23397
|
+
width: canvasWidth,
|
|
23398
|
+
height: canvasHeight,
|
|
23399
|
+
originalWidth: this.isRotated(rotation) ? pageHeight : pageWidth,
|
|
23400
|
+
originalHeight: this.isRotated(rotation) ? pageWidth : pageHeight,
|
|
23401
|
+
xRatio: canvasWidth / pageWidth,
|
|
23402
|
+
yRatio: canvasHeight / pageHeight,
|
|
23403
|
+
canvasTop: canvasTop,
|
|
23404
|
+
canvasLeft: CANVAS_MARGIN,
|
|
23405
|
+
canvasRight: CANVAS_MARGIN + canvasWidth,
|
|
23406
|
+
canvasBottom: canvasTop + canvasHeight,
|
|
23407
|
+
};
|
|
23408
|
+
if (this.pagesRendered[index]) {
|
|
23409
|
+
this.pagesRendered[index] = pageDetails;
|
|
23410
|
+
}
|
|
23411
|
+
else {
|
|
23412
|
+
this.pagesRendered.push(pageDetails);
|
|
23413
|
+
}
|
|
23414
|
+
const eventData = {
|
|
23415
|
+
pages: this.pagesRendered,
|
|
23416
|
+
numPages: this.numPages,
|
|
23417
|
+
numRendered: this.pagesRendered.length,
|
|
23418
|
+
canvasContainer: this.pdfContainer,
|
|
23419
|
+
renderedPage: pageDetails,
|
|
23420
|
+
};
|
|
23421
|
+
this.pageRendered.emit(eventData);
|
|
23422
|
+
if (pageNumber >= this.numPages) {
|
|
23423
|
+
console.log('[VIEW] Done rendering');
|
|
23424
|
+
this.pagesRendered.sort((a, b) => a.pageNumber - b.pageNumber);
|
|
23425
|
+
this.documentRendered.emit(eventData);
|
|
23426
|
+
}
|
|
23427
|
+
}
|
|
23428
|
+
catch (e) {
|
|
23429
|
+
console.warn('[VIEW] Rendering error', e);
|
|
23421
23430
|
}
|
|
23422
23431
|
}
|
|
23423
23432
|
}
|
|
23433
|
+
componentWillLoad() {
|
|
23434
|
+
this.endpoint.loadSession();
|
|
23435
|
+
}
|
|
23424
23436
|
componentDidLoad() {
|
|
23425
23437
|
this.pdfContainer = document.getElementById('verdocs-pdf-viewer-container');
|
|
23426
23438
|
if (this.source) {
|
|
@@ -23428,31 +23440,37 @@ const VerdocsView = class {
|
|
|
23428
23440
|
}
|
|
23429
23441
|
}
|
|
23430
23442
|
onProgress(progress) {
|
|
23443
|
+
console.log(`[VIEW] Progress ${Math.floor((progress.loaded / progress.total) * 100)} (${progress.loaded} / ${progress.total})`);
|
|
23431
23444
|
this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);
|
|
23432
23445
|
}
|
|
23433
23446
|
loadAndRender(src) {
|
|
23434
23447
|
console.log('[VIEW] Loading', src);
|
|
23435
|
-
console.log('this', this);
|
|
23436
23448
|
const token = this.endpoint.getToken();
|
|
23437
23449
|
const httpHeaders = token ? { Authorization: `Bearer ${token}` } : {};
|
|
23438
23450
|
const source = {
|
|
23439
23451
|
url: src,
|
|
23440
|
-
withCredentials: true,
|
|
23441
23452
|
cMapUrl: CMAPS_URL,
|
|
23442
23453
|
cMapPacked: true,
|
|
23443
|
-
verbosity: pdf.VerbosityLevel.WARNINGS,
|
|
23444
23454
|
httpHeaders,
|
|
23455
|
+
withCredentials: true,
|
|
23456
|
+
verbosity: pdf.VerbosityLevel.INFOS,
|
|
23457
|
+
// TODO
|
|
23458
|
+
stopAtErrors: true,
|
|
23445
23459
|
};
|
|
23446
23460
|
// @ts-ignore
|
|
23447
23461
|
const loadingTask = pdf$1.getDocument(source, null, null, this.onProgress);
|
|
23448
23462
|
loadingTask.onProgress = this.onProgress;
|
|
23449
|
-
loadingTask.promise
|
|
23463
|
+
loadingTask.promise
|
|
23464
|
+
.then((pdfDocument) => {
|
|
23450
23465
|
this.loadProgress = 100;
|
|
23451
23466
|
this.numPages = pdfDocument.numPages;
|
|
23452
|
-
this.
|
|
23453
|
-
console.log(`[VIEW] Got PDF document
|
|
23467
|
+
this.fingerprints = pdfDocument.fingerprints;
|
|
23468
|
+
console.log(`[VIEW] Got PDF document fingerprints "${this.fingerprints.join(', ')}", ${this.numPages} pages`);
|
|
23454
23469
|
this.pdfDocument = pdfDocument;
|
|
23455
23470
|
this.renderPages().catch(e => console.log('Rendering error', e));
|
|
23471
|
+
})
|
|
23472
|
+
.catch(e => {
|
|
23473
|
+
console.log('[VIEW] Loading error', e);
|
|
23456
23474
|
});
|
|
23457
23475
|
}
|
|
23458
23476
|
render() {
|