import type { WebViewerInstance } from '@pdftron/webviewer'; export type PageData = { iframeUrl: string; width: number; height: number; urlToProxy: string; scrollable?: boolean; disableLinkAnnotations?: boolean; }; export type HTMLViewerOptions = { license?: string; }; export type IFrame = HTMLIFrameElement; export type HTMLPage = { page: PageData; }; export type WebViewerHTMLInstance = { /** * @callback loadHTMLPage * @param {Object} options - The options objects containing page iframeUrl, width, height and urlToProxy. * @property {string} options.iframeUrl * URL of the page you are trying to load * @property {number} options.width * Width for the page to be loaded at. * @property {number} options.height * Height for the page to be loaded at. * @property {string} options.urlToProxy * URL that is being proxied * @property {boolean} [options.scrollable] * Boolean containing value for whether or not page should be scrolled. * @property {boolean} [options.disableLinkAnnotations] * Boolean containing value for disabling link annotations. */ loadHTMLPage: (options: PageData) => void; /** * Sets the WebViewer instance. Must be called if instance is not passed into initializeHTMLViewer * @callback setInstance * @param {Object} instance The WebViewer instance. */ setInstance: (instance: WebViewerInstance) => void; }; /** * This is an addon for WebViewer that allows loading HTML web pages so that HTML pages can be annotated. * See the npm package on {@link https://www.npmjs.com/package/@pdftron/webviewer-html @pdftron/webviewer-html} for more information. * @module @pdftron/webviewer-html */ /** * Event emitted when the proxy iframe finishes loading. * This event comes from the DOMContentLoaded event attached to the proxy website. * * @event proxyLoaded * @example WebViewer(...) .then((instance) => { const { docViewer } = instance; docViewer.addEventListener('proxyLoaded', listener); }); */ /** * @typedef {Object} HTMLFunctions * @property {function} loadHTMLPage * Loads an HTML page for the WebViewer instance passed into initializeHTMLViewer. * @property {function} setInstance * Sets the WebViewer instance. Must be called if instance is not passed into initializeHTMLViewer */ /** * Loads an HTML page for the WebViewer instance passed into initializeHTMLViewer. * @callback loadHTMLPage * @param {Object} options - The options objects containing page iframeUrl, width, height and urlToProxy. * @param {string} options.iframeUrl * URL of the page being displayed in webviewer. This should be the url of the proxy server. * @param {number} options.width * Width for the page to be loaded at. * @param {number} options.height * Height for the page to be loaded at. * @param {string} options.urlToProxy * Original URL of the page you are trying to load and that is being proxied by the server. * @param {boolean} [options.scrollable] * Boolean containing value for whether or not page should be scrolled. * @param {boolean} [options.disableLinkAnnotations] * Boolean containing value for disabling link annotations. * @returns {void} * @example WebViewer( { path: 'lib', }, document.getElementById('viewer') ).then(async (instance) => { // Extends WebViewer to allow loading HTML5 files from URL or static folder. const { loadHTMLPage } = await initializeHTMLViewer(instance, { license }); loadHTMLPage({ // Your webviewer-html-proxy-server url iframeUrl: 'http://localhost:3100/', // Original url that is being proxied urlToProxy: 'https://www.pdftron.com/', width: 500, height: 500, }); }); */ /** * Sets the WebViewer instance. Must be called if instance is not passed into initializeHTMLViewer * @callback setInstance * @param {Object} instance The WebViewer instance. * @returns {void} * @example WebViewer( { path: 'lib', }, document.getElementById('viewer') ).then(async (instance) => { // Extends WebViewer to allow loading HTML5 files from URL or static folder. const { loadHTMLPage, setInstance } = await initializeHTMLViewer(instance, { license }); // OR // setInstance(instance); }); */ /** * Initializes the HTML viewer so that webviewer can load HTMLs. * @static * @alias module:@pdftron/webviewer-html.initializeHTMLViewer * @param {Object} instance The WebViewer instance * @param {Object} [options] - The options objects containing license. * @param {string} [options.license] - A string containing a license key for WebViewer HTML Addon to remove the watermark. * @returns {HTMLFunctions} A promise that resolves to an object containing the functions needed to load HTML in WebViewer. */ declare const initializeHTMLViewer: (instance?: WebViewerInstance, options?: HTMLViewerOptions) => Promise; export { initializeHTMLViewer };