{"version":3,"file":"tabs/dialog.mjs","sources":["webpack://@agent-infra/browser/./src/tabs/dialog.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Dialog, CDPSession } from 'puppeteer-core';\n\nimport type { Tab } from './tab';\nimport { TabEvents } from '../types';\nimport { DialogMetaInfo } from '../types/dialog';\n\nexport class TabDialog {\n  #tab: Tab;\n  #dialog: Dialog | null = null;\n\n  constructor(tab: Tab) {\n    this.#tab = tab;\n\n    this.#handleEvent();\n  }\n\n  get isOpen(): boolean {\n    return this.#dialog !== null;\n  }\n\n  get meta(): DialogMetaInfo | null {\n    if (this.#dialog) {\n      return {\n        type: this.#dialog.type(),\n        message: this.#dialog.message(),\n        defaultValue: this.#dialog.defaultValue(),\n      };\n    }\n\n    return null;\n  }\n\n  setDialog(dialog: Dialog | null) {\n    this.#dialog = dialog;\n  }\n\n  #handleEvent() {\n    this.#tab.page.on('dialog', this.#openHandler);\n    // @ts-ignore\n    (this.#tab.page._client() as CDPSession).on(\n      'Page.javascriptDialogClosed',\n      this.#closeHandler,\n    );\n  }\n\n  #openHandler = (dialog: Dialog) => {\n    this.#dialog = dialog;\n\n    this.#tab.emit(TabEvents.TabDialogChanged, {\n      tabId: this.#tab.tabId,\n      isOpen: true,\n      type: dialog.type(),\n      message: dialog.message(),\n      defaultValue: dialog.defaultValue(),\n    });\n  };\n\n  #closeHandler = () => {\n    if (this.#dialog) {\n      this.#tab.emit(TabEvents.TabDialogChanged, {\n        tabId: this.#tab.tabId,\n        isOpen: false,\n      });\n      this.#dialog = null;\n    }\n  };\n\n  cleanup() {\n    this.#tab.page.off('dialog', this.#openHandler);\n    // @ts-ignore\n    (this.#tab.page._client() as CDPSession).off(\n      'Page.javascriptDialogClosed',\n      this.#closeHandler,\n    );\n\n    this.#dialog = null;\n  }\n\n  async accept(promptText?: string): Promise<boolean> {\n    if (!this.#dialog) {\n      return false;\n    }\n\n    try {\n      await this.#dialog.accept(promptText);\n      this.#tab.emit(TabEvents.TabDialogChanged, {\n        tabId: this.#tab.tabId,\n        isOpen: false,\n      });\n\n      this.#dialog = null;\n      return true;\n    } catch (error) {\n      console.error('Failed to accept dialog:', error);\n      return false;\n    }\n  }\n\n  async dismiss(): Promise<boolean> {\n    if (!this.#dialog) {\n      return false;\n    }\n\n    try {\n      await this.#dialog.dismiss();\n      this.#tab.emit(TabEvents.TabDialogChanged, {\n        tabId: this.#tab.tabId,\n        isOpen: false,\n      });\n\n      this.#dialog = null;\n      return true;\n    } catch (error) {\n      console.error('Failed to dismiss dialog:', error);\n      return false;\n    }\n  }\n}\n"],"names":["_tab","_dialog","handleEvent","_openHandler","_closeHandler","TabDialog","dialog","promptText","TabEvents","error","console","tab"],"mappings":"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"}