{"version":3,"sources":["src/CompletionTriggers/Element.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,iBAAiB;IAQhC,SAAS,CAAC,WAAW,EAAE,MAAM;IANzC;;;;;OAKG;gBACmB,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAI9C,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAmB7C","file":"Element.d.ts","sourcesContent":["'use strict';\n\nimport { CompletionTrigger } from './CompletionTrigger';\n\n/**\n * Waits for a DOM element to appear.\n *\n * @export\n * @class Element\n * @extends {CompletionTrigger}\n */\nexport class Element extends CompletionTrigger {\n\n  /**\n   * Creates an instance of the Element CompletionTrigger.\n   * @param {string} cssSelector the element to listen for.\n   * @param {number} [timeout] ms to wait until timing out.\n   * @memberof Element\n   */\n  constructor(protected cssSelector: string, timeout?: number) {\n    super(timeout);\n  }\n\n  public async wait(client: any): Promise<any> {\n    const {Runtime} = client;\n    return Runtime.evaluate({\n      awaitPromise: true,\n      expression: `\n        new Promise((resolve, reject) => {\n          new MutationObserver((mutations, observer) => {\n            mutations.forEach((mutation) => {\n              if ([...mutation.addedNodes].find((node) => node.matches('${this.cssSelector}'))) {\n                observer.disconnect();\n                resolve();\n              }\n            });\n          }).observe(document.body, { childList: true });\n          setTimeout(() => reject('${this.timeoutMessage}'), ${this.timeout});\n        })`,\n    });\n  }\n\n}\n"],"sourceRoot":"../../.."}