html-pdf-chrome
Version:
HTML to PDF and image converter via Chrome/Chromium
40 lines • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Event = void 0;
const CompletionTrigger_1 = require("./CompletionTrigger");
/**
* Waits for an Event to fire.
*
* @export
* @class Event
* @extends {CompletionTrigger}
*/
class Event extends CompletionTrigger_1.CompletionTrigger {
/**
* Creates an instance of the Event CompletionTrigger.
* @param {string} event the name of the event to listen for.
* @param {string} [cssSelector] the CSS selector of the element to listen on.
* Defaults to body.
* @param {number} [timeout] ms to wait until timing out.
* @memberof Event
*/
constructor(event, cssSelector, timeout) {
super(timeout);
this.event = event;
this.cssSelector = cssSelector;
}
async wait(client) {
const { Runtime } = client;
const selector = this.cssSelector ? `querySelector('${this.cssSelector}')` : 'body';
return Runtime.evaluate({
awaitPromise: true,
expression: `
new Promise((resolve, reject) => {
document.${selector}.addEventListener('${this.event}', resolve, { once: true });
setTimeout(() => reject('${this.timeoutMessage}'), ${this.timeout});
})`,
});
}
}
exports.Event = Event;
//# sourceMappingURL=Event.js.map
;