{"version":3,"file":"report-dialog.js","sources":["../../../../src/report-dialog.ts"],"sourcesContent":["import type { ReportDialogOptions } from '@sentry/core/browser';\nimport { debug, getClient, getCurrentScope, getReportDialogEndpoint, lastEventId } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from './debug-build';\nimport { WINDOW } from './helpers';\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the current scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n const optionalDocument = WINDOW.document as Document | undefined;\n const injectionPoint = optionalDocument?.head || optionalDocument?.body;\n\n // doesn't work without a document (React Native)\n if (!injectionPoint) {\n DEBUG_BUILD && debug.error('[showReportDialog] Global document not defined');\n return;\n }\n\n const scope = getCurrentScope();\n const client = getClient();\n const dsn = client?.getDsn();\n\n if (!dsn) {\n DEBUG_BUILD && debug.error('[showReportDialog] DSN not configured');\n return;\n }\n\n const mergedOptions = {\n ...options,\n user: {\n ...scope.getUser(),\n ...options.user,\n },\n eventId: options.eventId || lastEventId(),\n };\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, mergedOptions);\n\n const { onLoad, onClose } = mergedOptions;\n\n if (onLoad) {\n script.onload = onLoad;\n }\n\n if (onClose) {\n const reportDialogClosedMessageHandler = (event: MessageEvent): void => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n injectionPoint.appendChild(script);\n}\n"],"names":["WINDOW","DEBUG_BUILD","debug","getCurrentScope","getClient","lastEventId","getReportDialogEndpoint"],"mappings":";;;;;;AAUO,SAAS,gBAAA,CAAiB,OAAA,GAA+B,EAAC,EAAS;AACxE,EAAA,MAAM,mBAAmBA,cAAA,CAAO,QAAA;AAChC,EAAA,MAAM,cAAA,GAAiB,gBAAA,EAAkB,IAAA,IAAQ,gBAAA,EAAkB,IAAA;AAGnE,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAAC,sBAAA,IAAeC,aAAA,CAAM,MAAM,gDAAgD,CAAA;AAC3E,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAQC,uBAAA,EAAgB;AAC9B,EAAA,MAAM,SAASC,iBAAA,EAAU;AACzB,EAAA,MAAM,GAAA,GAAM,QAAQ,MAAA,EAAO;AAE3B,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAAH,sBAAA,IAAeC,aAAA,CAAM,MAAM,uCAAuC,CAAA;AAClE,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,OAAA;AAAA,IACH,IAAA,EAAM;AAAA,MACJ,GAAG,MAAM,OAAA,EAAQ;AAAA,MACjB,GAAG,OAAA,CAAQ;AAAA,KACb;AAAA,IACA,OAAA,EAAS,OAAA,CAAQ,OAAA,IAAWG,mBAAA;AAAY,GAC1C;AAEA,EAAA,MAAM,MAAA,GAASL,cAAA,CAAO,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AACrD,EAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AACf,EAAA,MAAA,CAAO,WAAA,GAAc,WAAA;AACrB,EAAA,MAAA,CAAO,GAAA,GAAMM,+BAAA,CAAwB,GAAA,EAAK,aAAa,CAAA;AAEvD,EAAA,MAAM,EAAE,MAAA,EAAQ,OAAA,EAAQ,GAAI,aAAA;AAE5B,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAA,CAAO,MAAA,GAAS,MAAA;AAAA,EAClB;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,gCAAA,GAAmC,CAAC,KAAA,KAA8B;AACtE,MAAA,IAAI,KAAA,CAAM,SAAS,gCAAA,EAAkC;AACnD,QAAA,IAAI;AACF,UAAA,OAAA,EAAQ;AAAA,QACV,CAAA,SAAE;AACA,UAAAN,cAAA,CAAO,mBAAA,CAAoB,WAAW,gCAAgC,CAAA;AAAA,QACxE;AAAA,MACF;AAAA,IACF,CAAA;AACA,IAAAA,cAAA,CAAO,gBAAA,CAAiB,WAAW,gCAAgC,CAAA;AAAA,EACrE;AAEA,EAAA,cAAA,CAAe,YAAY,MAAM,CAAA;AACnC;;;;"}