{"version":3,"sources":["src/CompletionTriggers/Event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;GAMG;AACH,qBAAa,KAAM,SAAQ,iBAAiB;IAU9B,SAAS,CAAC,KAAK,EAAE,MAAM;IAAE,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM;IARnE;;;;;;;OAOG;gBACmB,KAAK,EAAE,MAAM,EAAY,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAIxE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAa7C","file":"Event.d.ts","sourcesContent":["'use strict';\n\nimport { CompletionTrigger } from './CompletionTrigger';\n\n/**\n * Waits for an Event to fire.\n *\n * @export\n * @class Event\n * @extends {CompletionTrigger}\n */\nexport class Event extends CompletionTrigger {\n\n  /**\n   * Creates an instance of the Event CompletionTrigger.\n   * @param {string} event the name of the event to listen for.\n   * @param {string} [cssSelector] the CSS selector of the element to listen on.\n   *  Defaults to body.\n   * @param {number} [timeout] ms to wait until timing out.\n   * @memberof Event\n   */\n  constructor(protected event: string, protected cssSelector?: string, timeout?: number) {\n    super(timeout);\n  }\n\n  public async wait(client: any): Promise<any> {\n    const {Runtime} = client;\n    const selector = this.cssSelector ? `querySelector('${this.cssSelector}')` : 'body';\n    return Runtime.evaluate({\n      awaitPromise: true,\n      expression: `\n        new Promise((resolve, reject) => {\n          document.${selector}.addEventListener('${this.event}', resolve, { once: true });\n          setTimeout(() => reject('${this.timeoutMessage}'), ${this.timeout});\n        })`,\n    });\n  }\n\n}\n"],"sourceRoot":"../../.."}