Files
klz-cables.com/.pnpm-store/v10/files/57/fcd48cb16e30d6fcd8e55d0c6ba25544750abc3bbcc41b2c51eaf2d2a7dfa1e1429f825bfc68e79ee6ab1a2b6971764811d9dc59a763d96c707213114f7251
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
172 KiB
Plaintext

{"version":3,"file":"index.js","sources":["../../../src/constants/index.ts","../../../src/core/sendFeedback.ts","../../../src/util/debug-build.ts","../../../src/util/isScreenshotSupported.ts","../../../src/util/mergeOptions.ts","../../../src/core/components/Actor.css.ts","../../../src/util/setAttributesNS.ts","../../../src/core/components/FeedbackIcon.ts","../../../src/core/components/Actor.ts","../../../src/core/createMainStyles.ts","../../../src/core/integration.ts","../../../src/core/getFeedback.ts","../../../../../node_modules/preact/dist/preact.mjs","../../../../../node_modules/preact/hooks/dist/hooks.mjs","../../../src/modal/components/SentryLogo.ts","../../../src/modal/components/DialogHeader.tsx","../../../src/util/validate.ts","../../../src/modal/components/Form.tsx","../../../src/modal/components/SuccessIcon.ts","../../../src/modal/components/Dialog.tsx","../../../src/modal/components/Dialog.css.ts","../../../src/modal/integration.tsx","../../../src/screenshot/components/IconClose.tsx","../../../src/screenshot/components/ScreenshotInput.css.ts","../../../src/screenshot/components/Toolbar.tsx","../../../src/screenshot/components/useTakeScreenshot.tsx","../../../src/screenshot/components/ScreenshotEditor.tsx","../../../src/screenshot/integration.ts"],"sourcesContent":["import { GLOBAL_OBJ } from '@sentry/core';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\nexport const DOCUMENT = WINDOW.document;\nexport const NAVIGATOR = WINDOW.navigator;\n\nexport const TRIGGER_LABEL = 'Report a Bug';\nexport const CANCEL_BUTTON_LABEL = 'Cancel';\nexport const SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nexport const CONFIRM_BUTTON_LABEL = 'Confirm';\nexport const FORM_TITLE = 'Report a Bug';\nexport const EMAIL_PLACEHOLDER = 'your.email@example.org';\nexport const EMAIL_LABEL = 'Email';\nexport const MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nexport const MESSAGE_LABEL = 'Description';\nexport const NAME_PLACEHOLDER = 'Your Name';\nexport const NAME_LABEL = 'Name';\nexport const SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nexport const IS_REQUIRED_LABEL = '(required)';\nexport const ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nexport const REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\nexport const HIGHLIGHT_TOOL_TEXT = 'Highlight';\nexport const HIDE_TOOL_TEXT = 'Hide';\nexport const REMOVE_HIGHLIGHT_TEXT = 'Remove';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\n\nexport const SUCCESS_MESSAGE_TIMEOUT = 5000;\n","import type { Event, EventHint, SendFeedback, SendFeedbackParams, TransportMakeRequestResponse } from '@sentry/core';\nimport { captureFeedback, getClient, getCurrentScope, getLocationHref } from '@sentry/core';\nimport { FEEDBACK_API_SOURCE } from '../constants';\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nexport const sendFeedback: SendFeedback = (\n params: SendFeedbackParams,\n hint: EventHint & { includeReplay?: boolean } = { includeReplay: true },\n): Promise<string> => {\n if (!params.message) {\n throw new Error('Unable to submit feedback with empty message');\n }\n\n // We want to wait for the feedback to be sent (or not)\n const client = getClient();\n\n if (!client) {\n throw new Error('No client setup, cannot send feedback.');\n }\n\n if (params.tags && Object.keys(params.tags).length) {\n getCurrentScope().setTags(params.tags);\n }\n const eventId = captureFeedback(\n {\n source: FEEDBACK_API_SOURCE,\n url: getLocationHref(),\n ...params,\n },\n hint,\n );\n\n // We want to wait for the feedback to be sent (or not)\n return new Promise<string>((resolve, reject) => {\n // After 30s, we want to clear anyhow\n const timeout = setTimeout(() => reject('Unable to determine if Feedback was correctly sent.'), 30_000);\n\n const cleanup = client.on('afterSendEvent', (event: Event, response: TransportMakeRequestResponse) => {\n if (event.event_id !== eventId) {\n return;\n }\n\n clearTimeout(timeout);\n cleanup();\n\n // Require valid status codes, otherwise can assume feedback was not sent successfully\n if (response?.statusCode && response.statusCode >= 200 && response.statusCode < 300) {\n return resolve(eventId);\n }\n\n if (response?.statusCode === 403) {\n return reject(\n 'Unable to send feedback. This could be because this domain is not in your list of allowed domains.',\n );\n }\n\n return reject(\n 'Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.',\n );\n });\n });\n};\n\n/*\n * For reference, the fully built event looks something like this:\n * {\n * \"type\": \"feedback\",\n * \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n * \"timestamp\": 1597977777.6189718,\n * \"dist\": \"1.12\",\n * \"platform\": \"javascript\",\n * \"environment\": \"production\",\n * \"release\": 42,\n * \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n * \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n * \"user\": {\n * \"id\": \"123\",\n * \"username\": \"user\",\n * \"email\": \"user@site.com\",\n * \"ip_address\": \"192.168.11.12\",\n * },\n * \"request\": {\n * \"url\": None,\n * \"headers\": {\n * \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n * },\n * },\n * \"contexts\": {\n * \"feedback\": {\n * \"message\": \"test message\",\n * \"contact_email\": \"test@example.com\",\n * \"type\": \"feedback\",\n * },\n * \"trace\": {\n * \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n * \"span_id\": \"FA90FDEAD5F74052\",\n * \"type\": \"trace\",\n * },\n * \"replay\": {\n * \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n * },\n * },\n * }\n */\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { NAVIGATOR } from '../constants';\n\n/**\n * Mobile browsers do not support `mediaDevices.getDisplayMedia` even though they have the api implemented\n * Instead they return things like `NotAllowedError` when called.\n *\n * It's simpler for us to browser sniff first, and avoid loading the integration if we can.\n *\n * https://stackoverflow.com/a/58879212\n * https://stackoverflow.com/a/3540295\n *\n * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n */\nexport function isScreenshotSupported(): boolean {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) {\n return false;\n }\n /**\n * User agent on iPads show as Macintosh, so we need extra checks\n *\n * https://forums.developer.apple.com/forums/thread/119186\n * https://stackoverflow.com/questions/60482650/how-to-detect-ipad-useragent-on-safari-browser\n */\n if (/Macintosh/i.test(NAVIGATOR.userAgent) && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 1) {\n return false;\n }\n if (!isSecureContext) {\n return false;\n }\n return true;\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\nimport type { OptionalFeedbackConfiguration } from '../core/types';\n\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nexport function mergeOptions(\n defaultOptions: FeedbackInternalOptions,\n optionOverrides: OptionalFeedbackConfiguration,\n): FeedbackInternalOptions {\n return {\n ...defaultOptions,\n ...optionOverrides,\n tags: {\n ...defaultOptions.tags,\n ...optionOverrides.tags,\n },\n onFormOpen: () => {\n optionOverrides.onFormOpen?.();\n defaultOptions.onFormOpen?.();\n },\n onFormClose: () => {\n optionOverrides.onFormClose?.();\n defaultOptions.onFormClose?.();\n },\n onSubmitSuccess: (data: FeedbackFormData, eventId: string) => {\n optionOverrides.onSubmitSuccess?.(data, eventId);\n defaultOptions.onSubmitSuccess?.(data, eventId);\n },\n onSubmitError: (error: Error) => {\n optionOverrides.onSubmitError?.(error);\n defaultOptions.onSubmitError?.(error);\n },\n onFormSubmitted: () => {\n optionOverrides.onFormSubmitted?.();\n defaultOptions.onFormSubmitted?.();\n },\n themeDark: {\n ...defaultOptions.themeDark,\n ...optionOverrides.themeDark,\n },\n themeLight: {\n ...defaultOptions.themeLight,\n ...optionOverrides.themeLight,\n },\n };\n}\n","import { DOCUMENT } from '../../constants';\n\n/**\n * Creates <style> element for widget actor (button that opens the dialog)\n */\nexport function createActorStyles(styleNonce?: string): HTMLStyleElement {\n const style = DOCUMENT.createElement('style');\n style.textContent = `\n.widget__actor {\n position: fixed;\n z-index: var(--z-index);\n margin: var(--page-margin);\n inset: var(--actor-inset);\n\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n line-height: 1.14em;\n text-decoration: none;\n\n background: var(--actor-background, var(--background));\n border-radius: var(--actor-border-radius, 1.7em/50%);\n border: var(--actor-border, var(--border));\n box-shadow: var(--actor-box-shadow, var(--box-shadow));\n color: var(--actor-color, var(--foreground));\n fill: var(--actor-color, var(--foreground));\n cursor: pointer;\n opacity: 1;\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n.widget__actor[aria-hidden=\"true\"] {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n transform: translate(0, 16px) scale(0.98);\n}\n\n.widget__actor:hover {\n background: var(--actor-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n\n.widget__actor svg {\n width: 1.14em;\n height: 1.14em;\n}\n\n@media (max-width: 600px) {\n .widget__actor span {\n display: none;\n }\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n","/**\n * Helper function to set a dict of attributes on element (w/ specified namespace)\n */\nexport function setAttributesNS<T extends SVGElement>(el: T, attributes: Record<string, string>): T {\n Object.entries(attributes).forEach(([key, val]) => {\n el.setAttributeNS(null, key, val);\n });\n return el;\n}\n","import { WINDOW } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst SIZE = 20;\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Feedback Icon\n */\nexport function FeedbackIcon(): SVGElement {\n const createElementNS = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\n WINDOW.document.createElementNS(XMLNS, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: `${SIZE}`,\n height: `${SIZE}`,\n viewBox: `0 0 ${SIZE} ${SIZE}`,\n fill: 'var(--actor-color, var(--foreground))',\n });\n\n const g = setAttributesNS(createElementNS('g'), {\n clipPath: 'url(#clip0_57_80)',\n });\n\n const path = setAttributesNS(createElementNS('path'), {\n ['fill-rule']: 'evenodd',\n ['clip-rule']: 'evenodd',\n d: 'M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z',\n });\n svg.appendChild(g).appendChild(path);\n\n const speakerDefs = createElementNS('defs');\n const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n id: 'clip0_57_80',\n });\n\n const speakerRect = setAttributesNS(createElementNS('rect'), {\n width: `${SIZE}`,\n height: `${SIZE}`,\n fill: 'white',\n });\n\n speakerClipPathDef.appendChild(speakerRect);\n speakerDefs.appendChild(speakerClipPathDef);\n\n svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n return svg;\n}\n","import { DOCUMENT, TRIGGER_LABEL } from '../../constants';\nimport { createActorStyles } from './Actor.css';\nimport { FeedbackIcon } from './FeedbackIcon';\n\nexport interface ActorProps {\n triggerLabel: string;\n triggerAriaLabel: string;\n shadow: ShadowRoot;\n styleNonce?: string;\n}\n\nexport interface ActorComponent {\n el: HTMLElement;\n\n appendToDom: () => void;\n\n removeFromDom: () => void;\n\n show: () => void;\n\n hide: () => void;\n}\n\n/**\n * The sentry-provided button to open the feedback modal\n */\nexport function Actor({ triggerLabel, triggerAriaLabel, shadow, styleNonce }: ActorProps): ActorComponent {\n const el = DOCUMENT.createElement('button');\n el.type = 'button';\n el.className = 'widget__actor';\n el.ariaHidden = 'false';\n el.ariaLabel = triggerAriaLabel || triggerLabel || TRIGGER_LABEL;\n el.appendChild(FeedbackIcon());\n if (triggerLabel) {\n const label = DOCUMENT.createElement('span');\n label.appendChild(DOCUMENT.createTextNode(triggerLabel));\n el.appendChild(label);\n }\n\n const style = createActorStyles(styleNonce);\n\n return {\n el,\n appendToDom(): void {\n shadow.appendChild(style);\n shadow.appendChild(el);\n },\n removeFromDom(): void {\n el.remove();\n style.remove();\n },\n show(): void {\n el.ariaHidden = 'false';\n },\n hide(): void {\n el.ariaHidden = 'true';\n },\n };\n}\n","import type { FeedbackInternalOptions } from '@sentry/core';\nimport { DOCUMENT } from '../constants';\n\nconst PURPLE = 'rgba(88, 74, 192, 1)';\n\ninterface InternalTheme extends NonNullable<FeedbackInternalOptions['themeLight']> {\n border: string;\n interactiveFilter: string;\n}\n\nconst DEFAULT_LIGHT: InternalTheme = {\n foreground: '#2b2233',\n background: '#ffffff',\n accentForeground: 'white',\n accentBackground: PURPLE,\n successColor: '#268d75',\n errorColor: '#df3338',\n border: '1.5px solid rgba(41, 35, 47, 0.13)',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n outline: '1px auto var(--accent-background)',\n interactiveFilter: 'brightness(95%)',\n};\nconst DEFAULT_DARK: InternalTheme = {\n foreground: '#ebe6ef',\n background: '#29232f',\n accentForeground: 'white',\n accentBackground: PURPLE,\n successColor: '#2da98c',\n errorColor: '#f55459',\n border: '1.5px solid rgba(235, 230, 239, 0.15)',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n outline: '1px auto var(--accent-background)',\n interactiveFilter: 'brightness(150%)',\n};\n\nfunction getThemedCssVariables(theme: InternalTheme): string {\n return `\n --foreground: ${theme.foreground};\n --background: ${theme.background};\n --accent-foreground: ${theme.accentForeground};\n --accent-background: ${theme.accentBackground};\n --success-color: ${theme.successColor};\n --error-color: ${theme.errorColor};\n --border: ${theme.border};\n --box-shadow: ${theme.boxShadow};\n --outline: ${theme.outline};\n --interactive-filter: ${theme.interactiveFilter};\n `;\n}\n\n/**\n * Creates <style> element for widget actor (button that opens the dialog)\n */\nexport function createMainStyles({\n colorScheme,\n themeDark,\n themeLight,\n styleNonce,\n}: FeedbackInternalOptions): HTMLStyleElement {\n const style = DOCUMENT.createElement('style');\n style.textContent = `\n:host {\n --font-family: system-ui, 'Helvetica Neue', Arial, sans-serif;\n --font-size: 14px;\n --z-index: 100000;\n\n --page-margin: 16px;\n --inset: auto 0 0 auto;\n --actor-inset: var(--inset);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${colorScheme !== 'system' ? `color-scheme: only ${colorScheme};` : ''}\n\n ${getThemedCssVariables(\n colorScheme === 'dark' ? { ...DEFAULT_DARK, ...themeDark } : { ...DEFAULT_LIGHT, ...themeLight },\n )}\n}\n\n${\n colorScheme === 'system'\n ? `\n@media (prefers-color-scheme: dark) {\n :host {\n color-scheme: only dark;\n\n ${getThemedCssVariables({ ...DEFAULT_DARK, ...themeDark })}\n }\n}`\n : ''\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n","/* eslint-disable max-lines */\n\nimport type {\n FeedbackInternalOptions,\n FeedbackModalIntegration,\n FeedbackScreenshotIntegration,\n Integration,\n IntegrationFn,\n} from '@sentry/core';\nimport { addIntegration, debug, isBrowser } from '@sentry/core';\nimport {\n ADD_SCREENSHOT_LABEL,\n CANCEL_BUTTON_LABEL,\n CONFIRM_BUTTON_LABEL,\n DOCUMENT,\n EMAIL_LABEL,\n EMAIL_PLACEHOLDER,\n FORM_TITLE,\n HIDE_TOOL_TEXT,\n HIGHLIGHT_TOOL_TEXT,\n IS_REQUIRED_LABEL,\n MESSAGE_LABEL,\n MESSAGE_PLACEHOLDER,\n NAME_LABEL,\n NAME_PLACEHOLDER,\n REMOVE_HIGHLIGHT_TEXT,\n REMOVE_SCREENSHOT_LABEL,\n SUBMIT_BUTTON_LABEL,\n SUCCESS_MESSAGE_TEXT,\n TRIGGER_LABEL,\n} from '../constants';\nimport { DEBUG_BUILD } from '../util/debug-build';\nimport { isScreenshotSupported } from '../util/isScreenshotSupported';\nimport { mergeOptions } from '../util/mergeOptions';\nimport type { ActorComponent } from './components/Actor';\nimport { Actor } from './components/Actor';\nimport { createMainStyles } from './createMainStyles';\nimport { sendFeedback } from './sendFeedback';\nimport type { OptionalFeedbackConfiguration, OverrideFeedbackConfiguration } from './types';\n\ntype Unsubscribe = () => void;\n\n/**\n * Allow users to capture user feedback and send it to Sentry.\n */\n\ntype BuilderOptions =\n | {\n lazyLoadIntegration?: never;\n getModalIntegration: () => IntegrationFn;\n getScreenshotIntegration: () => IntegrationFn;\n }\n | {\n // The type here should be `keyof typeof LazyLoadableIntegrations`, but that'll cause a cicrular\n // dependency with @sentry/core\n lazyLoadIntegration: (\n name: 'feedbackModalIntegration' | 'feedbackScreenshotIntegration',\n scriptNonce?: string,\n ) => Promise<IntegrationFn>;\n getModalIntegration?: never;\n getScreenshotIntegration?: never;\n };\n\nexport const buildFeedbackIntegration = ({\n lazyLoadIntegration,\n getModalIntegration,\n getScreenshotIntegration,\n}: BuilderOptions): IntegrationFn<\n Integration & {\n attachTo(el: Element | string, optionOverrides?: OverrideFeedbackConfiguration): Unsubscribe;\n createForm(\n optionOverrides?: OverrideFeedbackConfiguration,\n ): Promise<ReturnType<FeedbackModalIntegration['createDialog']>>;\n createWidget(optionOverrides?: OverrideFeedbackConfiguration): ActorComponent;\n remove(): void;\n }\n> => {\n const feedbackIntegration = (({\n // FeedbackGeneralConfiguration\n id = 'sentry-feedback',\n autoInject = true,\n showBranding = true,\n isEmailRequired = false,\n isNameRequired = false,\n showEmail = true,\n showName = true,\n enableScreenshot = true,\n useSentryUser = {\n email: 'email',\n name: 'username',\n },\n tags,\n styleNonce,\n scriptNonce,\n\n // FeedbackThemeConfiguration\n colorScheme = 'system',\n themeLight = {},\n themeDark = {},\n\n // FeedbackTextConfiguration\n addScreenshotButtonLabel = ADD_SCREENSHOT_LABEL,\n cancelButtonLabel = CANCEL_BUTTON_LABEL,\n confirmButtonLabel = CONFIRM_BUTTON_LABEL,\n emailLabel = EMAIL_LABEL,\n emailPlaceholder = EMAIL_PLACEHOLDER,\n formTitle = FORM_TITLE,\n isRequiredLabel = IS_REQUIRED_LABEL,\n messageLabel = MESSAGE_LABEL,\n messagePlaceholder = MESSAGE_PLACEHOLDER,\n nameLabel = NAME_LABEL,\n namePlaceholder = NAME_PLACEHOLDER,\n removeScreenshotButtonLabel = REMOVE_SCREENSHOT_LABEL,\n submitButtonLabel = SUBMIT_BUTTON_LABEL,\n successMessageText = SUCCESS_MESSAGE_TEXT,\n triggerLabel = TRIGGER_LABEL,\n triggerAriaLabel = '',\n highlightToolText = HIGHLIGHT_TOOL_TEXT,\n hideToolText = HIDE_TOOL_TEXT,\n removeHighlightText = REMOVE_HIGHLIGHT_TEXT,\n\n // FeedbackCallbacks\n onFormOpen,\n onFormClose,\n onSubmitSuccess,\n onSubmitError,\n onFormSubmitted,\n }: OptionalFeedbackConfiguration = {}) => {\n const _options = {\n id,\n autoInject,\n showBranding,\n isEmailRequired,\n isNameRequired,\n showEmail,\n showName,\n enableScreenshot,\n useSentryUser,\n tags,\n styleNonce,\n scriptNonce,\n\n colorScheme,\n themeDark,\n themeLight,\n\n triggerLabel,\n triggerAriaLabel,\n cancelButtonLabel,\n submitButtonLabel,\n confirmButtonLabel,\n formTitle,\n emailLabel,\n emailPlaceholder,\n messageLabel,\n messagePlaceholder,\n nameLabel,\n namePlaceholder,\n successMessageText,\n isRequiredLabel,\n addScreenshotButtonLabel,\n removeScreenshotButtonLabel,\n highlightToolText,\n hideToolText,\n removeHighlightText,\n\n onFormClose,\n onFormOpen,\n onSubmitError,\n onSubmitSuccess,\n onFormSubmitted,\n };\n\n let _shadow: ShadowRoot | null = null;\n let _subscriptions: Unsubscribe[] = [];\n\n /**\n * Get the shadow root where we will append css\n */\n const _createShadow = (options: FeedbackInternalOptions): ShadowRoot => {\n if (!_shadow) {\n const host = DOCUMENT.createElement('div');\n host.id = String(options.id);\n DOCUMENT.body.appendChild(host);\n\n _shadow = host.attachShadow({ mode: 'open' });\n _shadow.appendChild(createMainStyles(options));\n }\n return _shadow;\n };\n\n const _loadAndRenderDialog = async (\n options: FeedbackInternalOptions,\n ): Promise<ReturnType<FeedbackModalIntegration['createDialog']>> => {\n const screenshotRequired = options.enableScreenshot && isScreenshotSupported();\n\n let modalIntegration: FeedbackModalIntegration;\n let screenshotIntegration: FeedbackScreenshotIntegration | undefined;\n\n try {\n const modalIntegrationFn = getModalIntegration\n ? getModalIntegration()\n : await lazyLoadIntegration('feedbackModalIntegration', scriptNonce);\n modalIntegration = modalIntegrationFn() as FeedbackModalIntegration;\n addIntegration(modalIntegration);\n } catch {\n DEBUG_BUILD &&\n debug.error(\n '[Feedback] Error when trying to load feedback integrations. Try using `feedbackSyncIntegration` in your `Sentry.init`.',\n );\n throw new Error('[Feedback] Missing feedback modal integration!');\n }\n\n try {\n const screenshotIntegrationFn = screenshotRequired\n ? getScreenshotIntegration\n ? getScreenshotIntegration()\n : await lazyLoadIntegration('feedbackScreenshotIntegration', scriptNonce)\n : undefined;\n\n if (screenshotIntegrationFn) {\n screenshotIntegration = screenshotIntegrationFn() as FeedbackScreenshotIntegration;\n addIntegration(screenshotIntegration);\n }\n } catch {\n DEBUG_BUILD &&\n debug.error('[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.');\n }\n\n const dialog = modalIntegration.createDialog({\n options: {\n ...options,\n onFormClose: () => {\n dialog?.close();\n options.onFormClose?.();\n },\n onFormSubmitted: () => {\n dialog?.close();\n options.onFormSubmitted?.();\n },\n },\n screenshotIntegration,\n sendFeedback,\n shadow: _createShadow(options),\n });\n\n return dialog;\n };\n\n const _attachTo = (el: Element | string, optionOverrides: OverrideFeedbackConfiguration = {}): Unsubscribe => {\n const mergedOptions = mergeOptions(_options, optionOverrides);\n\n const targetEl =\n typeof el === 'string' ? DOCUMENT.querySelector(el) : typeof el.addEventListener === 'function' ? el : null;\n\n if (!targetEl) {\n DEBUG_BUILD && debug.error('[Feedback] Unable to attach to target element');\n throw new Error('Unable to attach to target element');\n }\n\n let dialog: ReturnType<FeedbackModalIntegration['createDialog']> | null = null;\n const handleClick = async (): Promise<void> => {\n if (!dialog) {\n dialog = await _loadAndRenderDialog({\n ...mergedOptions,\n onFormSubmitted: () => {\n dialog?.removeFromDom();\n mergedOptions.onFormSubmitted?.();\n },\n });\n }\n dialog.appendToDom();\n dialog.open();\n };\n targetEl.addEventListener('click', handleClick);\n const unsubscribe = (): void => {\n _subscriptions = _subscriptions.filter(sub => sub !== unsubscribe);\n dialog?.removeFromDom();\n dialog = null;\n targetEl.removeEventListener('click', handleClick);\n };\n _subscriptions.push(unsubscribe);\n return unsubscribe;\n };\n\n const _createActor = (optionOverrides: OverrideFeedbackConfiguration = {}): ActorComponent => {\n const mergedOptions = mergeOptions(_options, optionOverrides);\n const shadow = _createShadow(mergedOptions);\n const actor = Actor({\n triggerLabel: mergedOptions.triggerLabel,\n triggerAriaLabel: mergedOptions.triggerAriaLabel,\n shadow,\n styleNonce,\n });\n _attachTo(actor.el, {\n ...mergedOptions,\n onFormOpen() {\n actor.hide();\n },\n onFormClose() {\n actor.show();\n },\n onFormSubmitted() {\n actor.show();\n },\n });\n return actor;\n };\n\n return {\n name: 'Feedback',\n setupOnce() {\n if (!isBrowser() || !_options.autoInject) {\n return;\n }\n\n if (DOCUMENT.readyState === 'loading') {\n DOCUMENT.addEventListener('DOMContentLoaded', () => _createActor().appendToDom());\n } else {\n _createActor().appendToDom();\n }\n },\n\n /**\n * Adds click listener to the element to open a feedback dialog\n *\n * The returned function can be used to remove the click listener\n */\n attachTo: _attachTo,\n\n /**\n * Creates a new widget which is composed of a Button which triggers a Dialog.\n * Accepts partial options to override any options passed to constructor.\n */\n createWidget(optionOverrides: OverrideFeedbackConfiguration = {}): ActorComponent {\n const actor = _createActor(mergeOptions(_options, optionOverrides));\n actor.appendToDom();\n return actor;\n },\n\n /**\n * Creates a new Form which you can\n * Accepts partial options to override any options passed to constructor.\n */\n async createForm(\n optionOverrides: OverrideFeedbackConfiguration = {},\n ): Promise<ReturnType<FeedbackModalIntegration['createDialog']>> {\n return _loadAndRenderDialog(mergeOptions(_options, optionOverrides));\n },\n\n /**\n * Removes the Feedback integration (including host, shadow DOM, and all widgets)\n */\n remove(): void {\n if (_shadow) {\n _shadow.parentElement?.remove();\n _shadow = null;\n }\n // Remove any lingering subscriptions\n _subscriptions.forEach(sub => sub());\n _subscriptions = [];\n },\n };\n }) satisfies IntegrationFn;\n\n return feedbackIntegration;\n};\n","import { getClient } from '@sentry/core';\nimport type { buildFeedbackIntegration } from './integration';\n\ntype FeedbackIntegration = ReturnType<typeof buildFeedbackIntegration>;\n\n/**\n * This is a small utility to get a type-safe instance of the Feedback integration.\n */\nexport function getFeedback(): ReturnType<FeedbackIntegration> | undefined {\n const client = getClient();\n return client?.getIntegrationByName<ReturnType<FeedbackIntegration>>('Feedback');\n}\n","var n,l,u,t,i,o,r,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h=Array.isArray;function v(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d(l,f,i,o,null)}function d(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function _(){return{current:null}}function g(n){return n.children}function b(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?m(n):null}function w(n,u,t){var i,o=n.__v,r=o.__e,f=n.__P;if(f)return(i=v({},o)).__v=o.__v+1,l.vnode&&l.vnode(i),M(f,i,o,n.__n,void 0!==f.ownerSVGElement,32&o.__u?[r]:null,u,null==r?m(o):r,!!(32&o.__u),t),i.__.__k[i.__i]=i,i.__d=void 0,i.__e!=r&&k(i),i}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function x(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!C.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(C)}function C(){var n,u,t,o=[],r=[];for(i.sort(f);n=i.shift();)n.__d&&(t=i.length,u=w(n,o,r)||u,0===t||i.length>t?(j(o,u,r),r.length=o.length=0,u=void 0,i.sort(f)):u&&l.__c&&l.__c(u,s));u&&j(o,u,r),C.__r=0}function P(n,l,u,t,i,o,r,f,e,a,h){var v,p,y,d,_,g=t&&t.__k||s,b=l.length;for(u.__d=e,S(u,l,g),e=u.__d,v=0;v<b;v++)null!=(y=u.__k[v])&&\"boolean\"!=typeof y&&\"function\"!=typeof y&&(p=-1===y.__i?c:g[y.__i]||c,y.__i=v,M(n,y,p,i,o,r,f,e,a,h),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),h.push(y.ref,y.__c||d,y)),null==_&&null!=d&&(_=d),65536&y.__u||p.__k===y.__k?e=$(y,e,n):\"function\"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=_}function S(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=n.__k[t]=null==(i=l[t])||\"boolean\"==typeof i||\"function\"==typeof i?null:\"string\"==typeof i||\"number\"==typeof i||\"bigint\"==typeof i||i.constructor==String?d(null,i,null,null,i):h(i)?d(g,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?d(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=I(i,u,r=t+a,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:a=f<r&&f==r-1?f-r:0,f!==t+a&&(i.__u|=65536))):(o=u[t])&&null==o.key&&o.__e&&(o.__e==n.__d&&(n.__d=m(o)),O(o,o,!1),u[t]=null,s--);if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=m(o)),O(o,o))}function $(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=$(t[i],l,u));return l}n.__e!=l&&(u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(h(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function I(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type)return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}function T(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function A(n,l,u,t,i){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,\"$1\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=Date.now(),n.addEventListener(l,o?L:D,o)):n.removeEventListener(l,o?L:D,o);else{if(i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&\"rowSpan\"!==l&&\"colSpan\"!==l&&\"role\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u))}}function D(n){if(this.l){var u=this.l[n.type+!1];if(n.t){if(n.t<=u.u)return}else n.t=Date.now();return u(l.event?l.event(n):n)}}function L(n){if(this.l)return this.l[n.type+!0](l.event?l.event(n):n)}function M(n,u,t,i,o,r,f,e,c,s){var a,p,y,d,_,m,w,k,x,C,S,$,H,I,T,A=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof A)try{if(k=u.props,x=(a=A.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?w=(p=u.__c=t.__c).__=p.__E:(\"prototype\"in A&&A.prototype.render?u.__c=p=new A(k,C):(u.__c=p=new b(k,C),p.constructor=A,p.render=q),x&&x.sub(p),p.props=k,p.state||(p.state={}),p.context=C,p.__n=i,y=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=A.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=v({},p.__s)),v(p.__s,A.getDerivedStateFromProps(k,p.__s))),d=p.props,_=p.state,p.__v=u,y)null==A.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==A.getDerivedStateFromProps&&k!==d&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,C),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v&&(p.props=k,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u)}),S=0;S<p._sb.length;S++)p.__h.push(p._sb[S]);p._sb=[],p.__h.length&&f.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,C),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(d,_,m)})}if(p.context=C,p.props=k,p.__P=n,p.__e=!1,$=l.__r,H=0,\"prototype\"in A&&A.prototype.render){for(p.state=p.__s,p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),I=0;I<p._sb.length;I++)p.__h.push(p._sb[I]);p._sb=[]}else do{p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=v(v({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(d,_)),P(n,h(T=null!=a&&a.type===g&&null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__u&=-161,p.__h.length&&f.push(p),w&&(p.__E=p.__=null)}catch(n){u.__v=null,c||null!=r?(u.__e=e,u.__u|=c?160:32,r[r.indexOf(e)]=null):(u.__e=t.__e,u.__k=t.__k),l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}function j(n,u,t){for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(l,u,t,i,o,r,f,e,s){var a,v,y,d,_,g,b,w=t.props,k=u.props,x=u.type;if(\"svg\"===x&&(o=!0),null!=r)for(a=0;a<r.length;a++)if((_=r[a])&&\"setAttribute\"in _==!!x&&(x?_.localName===x:3===_.nodeType)){l=_,r[a]=null;break}if(null==l){if(null===x)return document.createTextNode(k);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",x):document.createElement(x,k.is&&k),r=null,e=!1}if(null===x)w===k||e&&l.data===k||(l.data=k);else{if(r=r&&n.call(l.childNodes),w=t.props||c,!e&&null!=r)for(w={},a=0;a<l.attributes.length;a++)w[(_=l.attributes[a]).name]=_.value;for(a in w)_=w[a],\"children\"==a||(\"dangerouslySetInnerHTML\"==a?y=_:\"key\"===a||a in k||A(l,a,null,_,o));for(a in k)_=k[a],\"children\"==a?d=_:\"dangerouslySetInnerHTML\"==a?v=_:\"value\"==a?g=_:\"checked\"==a?b=_:\"key\"===a||e&&\"function\"!=typeof _||w[a]===_||A(l,a,_,w[a],o);if(v)e||y&&(v.__html===y.__html||v.__html===l.innerHTML)||(l.innerHTML=v.__html),u.__k=[];else if(y&&(l.innerHTML=\"\"),P(l,h(d)?d:[d],u,t,i,o&&\"foreignObject\"!==x,r,f,r?r[0]:t.__k&&m(t,0),e,s),null!=r)for(a=r.length;a--;)null!=r[a]&&p(r[a]);e||(a=\"value\",void 0!==g&&(g!==l[a]||\"progress\"===x&&!g||\"option\"===x&&g!==w[a])&&A(l,a,g,w[a],!1),a=\"checked\",void 0!==b&&b!==l[a]&&A(l,a,b,w[a],!1))}return l}function N(n,u,t){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,t)}}function O(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null,n.__c=void 0}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&O(i[o],u,t||\"function\"!=typeof n.type);t||null==n.__e||p(n.__e),n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,t,i){var o,r,f,e;l.__&&l.__(u,t),r=(o=\"function\"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],M(t,u=(!o&&i||t).__k=y(g,null,[u]),r||c,c,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),u.__d=void 0,j(f,u,e)}function E(n,l){B(n,l,E)}function F(l,u,t){var i,o,r,f,e=v({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),d(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,x(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),x(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),x(this))},b.prototype.render=g,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},C.__r=0,e=0;export{b as Component,g as Fragment,F as cloneElement,G as createContext,y as createElement,_ as createRef,y as h,E as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function F(n){return o=5,q(function(){return{current:n}},[])}function T(n,t,r){o=6,A(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.useDebugValue(t?t(n):n)}function b(n){var u=h(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=h(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}}e.__b=function(n){r=null,a&&a(n)},e.__=function(n,t){t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t)},e.__r=function(n){v&&v(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},e.diffed=function(n){l&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m&&m(n,t)},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{x as useCallback,P as useContext,V as useDebugValue,_ as useEffect,b as useErrorBoundary,g as useId,T as useImperativeHandle,A as useLayoutEffect,q as useMemo,y as useReducer,F as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import { DOCUMENT } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Sentry Logo\n */\nexport function SentryLogo(): SVGElement {\n const createElementNS = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\n DOCUMENT.createElementNS(XMLNS, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: '32',\n height: '30',\n viewBox: '0 0 72 66',\n fill: 'inherit',\n });\n\n const path = setAttributesNS(createElementNS('path'), {\n transform: 'translate(11, 11)',\n d: 'M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z',\n });\n svg.appendChild(path);\n\n return svg;\n}\n","import type { FeedbackInternalOptions } from '@sentry/core';\nimport type { VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useMemo } from 'preact/hooks';\nimport { SentryLogo } from './SentryLogo';\n\nexport interface Props {\n options: FeedbackInternalOptions;\n}\n\nexport function DialogHeader({ options }: Props): VNode {\n const logoHtml = useMemo(() => ({ __html: SentryLogo().outerHTML }), []);\n\n return (\n <h2 class=\"dialog__header\">\n <span class=\"dialog__title\">{options.formTitle}</span>\n {options.showBranding ? (\n <a\n class=\"brand-link\"\n target=\"_blank\"\n href=\"https://sentry.io/welcome/\"\n title=\"Powered by Sentry\"\n rel=\"noopener noreferrer\"\n dangerouslySetInnerHTML={logoHtml}\n />\n ) : null}\n </h2>\n );\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\n\nexport type Props = Pick<\n FeedbackInternalOptions,\n 'emailLabel' | 'isEmailRequired' | 'isNameRequired' | 'messageLabel' | 'nameLabel'\n>;\n\n/**\n * Validate that a given feedback submission has the required fields\n */\nexport function getMissingFields(feedback: FeedbackFormData, props: Props): string[] {\n const emptyFields = [];\n if (props.isNameRequired && !feedback.name) {\n emptyFields.push(props.nameLabel);\n }\n if (props.isEmailRequired && !feedback.email) {\n emptyFields.push(props.emailLabel);\n }\n if (!feedback.message) {\n emptyFields.push(props.messageLabel);\n }\n\n return emptyFields;\n}\n","import type {\n FeedbackFormData,\n FeedbackInternalOptions,\n FeedbackScreenshotIntegration,\n SendFeedback,\n} from '@sentry/core';\nimport { debug } from '@sentry/core';\nimport type { JSX, VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useCallback, useState } from 'preact/hooks';\nimport { FEEDBACK_WIDGET_SOURCE } from '../../constants';\nimport { DEBUG_BUILD } from '../../util/debug-build';\nimport { getMissingFields } from '../../util/validate';\n\nexport interface Props extends Pick<FeedbackInternalOptions, 'showEmail' | 'showName'> {\n options: FeedbackInternalOptions;\n defaultEmail: string;\n defaultName: string;\n onFormClose: () => void;\n onSubmit: SendFeedback;\n onSubmitSuccess: (data: FeedbackFormData, eventId: string) => void;\n onSubmitError: (error: Error) => void;\n screenshotInput: ReturnType<FeedbackScreenshotIntegration['createInput']> | undefined;\n}\n\nfunction retrieveStringValue(formData: FormData, key: string): string {\n const value = formData.get(key);\n if (typeof value === 'string') {\n return value.trim();\n }\n return '';\n}\n\nexport function Form({\n options,\n defaultEmail,\n defaultName,\n\n onFormClose,\n onSubmit,\n onSubmitSuccess,\n onSubmitError,\n showEmail,\n showName,\n screenshotInput,\n}: Props): VNode {\n const {\n tags,\n addScreenshotButtonLabel,\n removeScreenshotButtonLabel,\n cancelButtonLabel,\n emailLabel,\n emailPlaceholder,\n isEmailRequired,\n isNameRequired,\n messageLabel,\n messagePlaceholder,\n nameLabel,\n namePlaceholder,\n submitButtonLabel,\n isRequiredLabel,\n } = options;\n const [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n // TODO: set a ref on the form, and whenever an input changes call processForm() and setError()\n const [error, setError] = useState<null | string>(null);\n\n const [showScreenshotInput, setShowScreenshotInput] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ScreenshotInputComponent: any = screenshotInput?.input;\n\n const [screenshotError, setScreenshotError] = useState<null | Error>(null);\n const onScreenshotError = useCallback((error: Error) => {\n setScreenshotError(error);\n setShowScreenshotInput(false);\n }, []);\n\n const hasAllRequiredFields = useCallback(\n (data: FeedbackFormData) => {\n const missingFields = getMissingFields(data, {\n emailLabel,\n isEmailRequired,\n isNameRequired,\n messageLabel,\n nameLabel,\n });\n\n if (missingFields.length > 0) {\n setError(`Please enter in the following required fields: ${missingFields.join(', ')}`);\n } else {\n setError(null);\n }\n\n return missingFields.length === 0;\n },\n [emailLabel, isEmailRequired, isNameRequired, messageLabel, nameLabel],\n );\n\n const handleSubmit = useCallback(\n async (e: JSX.TargetedSubmitEvent<HTMLFormElement>) => {\n setIsSubmitting(true);\n try {\n e.preventDefault();\n if (!(e.target instanceof HTMLFormElement)) {\n return;\n }\n const formData = new FormData(e.target);\n const attachment = await (screenshotInput && showScreenshotInput ? screenshotInput.value() : undefined);\n\n const data: FeedbackFormData = {\n name: retrieveStringValue(formData, 'name'),\n email: retrieveStringValue(formData, 'email'),\n message: retrieveStringValue(formData, 'message'),\n attachments: attachment ? [attachment] : undefined,\n };\n\n if (!hasAllRequiredFields(data)) {\n return;\n }\n\n try {\n const eventId = await onSubmit(\n {\n name: data.name,\n email: data.email,\n message: data.message,\n source: FEEDBACK_WIDGET_SOURCE,\n tags,\n },\n { attachments: data.attachments },\n );\n onSubmitSuccess(data, eventId);\n } catch (error) {\n DEBUG_BUILD && debug.error(error);\n setError(error as string);\n onSubmitError(error as Error);\n }\n } finally {\n setIsSubmitting(false);\n }\n },\n [screenshotInput && showScreenshotInput, onSubmitSuccess, onSubmitError],\n );\n\n return (\n <form class=\"form\" onSubmit={handleSubmit}>\n {ScreenshotInputComponent && showScreenshotInput ? (\n <ScreenshotInputComponent onError={onScreenshotError} />\n ) : null}\n\n <fieldset class=\"form__right\" data-sentry-feedback={true} disabled={isSubmitting}>\n <div class=\"form__top\">\n {error ? <div class=\"form__error-container\">{error}</div> : null}\n\n {showName ? (\n <label for=\"name\" class=\"form__label\">\n <LabelText label={nameLabel} isRequiredLabel={isRequiredLabel} isRequired={isNameRequired} />\n <input\n class=\"form__input\"\n defaultValue={defaultName}\n id=\"name\"\n name=\"name\"\n placeholder={namePlaceholder}\n required={isNameRequired}\n type=\"text\"\n />\n </label>\n ) : (\n <input aria-hidden value={defaultName} name=\"name\" type=\"hidden\" />\n )}\n\n {showEmail ? (\n <label for=\"email\" class=\"form__label\">\n <LabelText label={emailLabel} isRequiredLabel={isRequiredLabel} isRequired={isEmailRequired} />\n <input\n class=\"form__input\"\n defaultValue={defaultEmail}\n id=\"email\"\n name=\"email\"\n placeholder={emailPlaceholder}\n required={isEmailRequired}\n type=\"email\"\n ></input>\n </label>\n ) : (\n <input aria-hidden value={defaultEmail} name=\"email\" type=\"hidden\" />\n )}\n\n <label for=\"message\" class=\"form__label\">\n <LabelText label={messageLabel} isRequiredLabel={isRequiredLabel} isRequired />\n <textarea\n autoFocus\n class=\"form__input form__input--textarea\"\n id=\"message\"\n name=\"message\"\n placeholder={messagePlaceholder}\n required={true}\n rows={5}\n />\n </label>\n\n {ScreenshotInputComponent ? (\n <label for=\"screenshot\" class=\"form__label\">\n <button\n class=\"btn btn--default\"\n disabled={isSubmitting}\n type=\"button\"\n onClick={() => {\n setScreenshotError(null);\n setShowScreenshotInput(prev => !prev);\n }}\n >\n {showScreenshotInput ? removeScreenshotButtonLabel : addScreenshotButtonLabel}\n </button>\n {screenshotError ? <div class=\"form__error-container\">{screenshotError.message}</div> : null}\n </label>\n ) : null}\n </div>\n <div class=\"btn-group\">\n <button class=\"btn btn--primary\" disabled={isSubmitting} type=\"submit\">\n {submitButtonLabel}\n </button>\n <button class=\"btn btn--default\" disabled={isSubmitting} type=\"button\" onClick={onFormClose}>\n {cancelButtonLabel}\n </button>\n </div>\n </fieldset>\n </form>\n );\n}\n\nfunction LabelText({\n label,\n isRequired,\n isRequiredLabel,\n}: {\n label: string;\n isRequired: boolean;\n isRequiredLabel: string;\n}): VNode {\n return (\n <span class=\"form__label__text\">\n {label}\n {isRequired && <span class=\"form__label__text--required\">{isRequiredLabel}</span>}\n </span>\n );\n}\n","import { WINDOW } from '../../constants';\nimport { setAttributesNS } from '../../util/setAttributesNS';\n\nconst WIDTH = 16;\nconst HEIGHT = 17;\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Success Icon (checkmark)\n */\nexport function SuccessIcon(): SVGElement {\n const createElementNS = <K extends keyof SVGElementTagNameMap>(tagName: K): SVGElementTagNameMap[K] =>\n WINDOW.document.createElementNS(XMLNS, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: `${WIDTH}`,\n height: `${HEIGHT}`,\n viewBox: `0 0 ${WIDTH} ${HEIGHT}`,\n fill: 'inherit',\n });\n\n const g = setAttributesNS(createElementNS('g'), {\n clipPath: 'url(#clip0_57_156)',\n });\n\n const path2 = setAttributesNS(createElementNS('path'), {\n ['fill-rule']: 'evenodd',\n ['clip-rule']: 'evenodd',\n d: 'M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z',\n });\n const path = setAttributesNS(createElementNS('path'), {\n d: 'M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z',\n });\n\n svg.appendChild(g).append(path, path2);\n\n const speakerDefs = createElementNS('defs');\n const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n id: 'clip0_57_156',\n });\n\n const speakerRect = setAttributesNS(createElementNS('rect'), {\n width: `${WIDTH}`,\n height: `${WIDTH}`,\n fill: 'white',\n transform: 'translate(0 0.5)',\n });\n\n speakerClipPathDef.appendChild(speakerRect);\n speakerDefs.appendChild(speakerClipPathDef);\n\n svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n return svg;\n}\n","import type { FeedbackFormData, FeedbackInternalOptions } from '@sentry/core';\nimport type { VNode } from 'preact';\nimport { Fragment, h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { useCallback, useMemo, useState } from 'preact/hooks';\nimport { SUCCESS_MESSAGE_TIMEOUT } from '../../constants';\nimport type { Props as HeaderProps } from './DialogHeader';\nimport { DialogHeader } from './DialogHeader';\nimport type { Props as FormProps } from './Form';\nimport { Form } from './Form';\nimport { SuccessIcon } from './SuccessIcon';\n\ninterface Props extends HeaderProps, FormProps {\n onFormSubmitted: () => void;\n open: boolean;\n options: FeedbackInternalOptions;\n}\n\nexport function Dialog({ open, onFormSubmitted, ...props }: Props): VNode {\n const options = props.options;\n const successIconHtml = useMemo(() => ({ __html: SuccessIcon().outerHTML }), []);\n\n const [timeoutId, setTimeoutId] = useState<NodeJS.Timeout | null>(null);\n\n const handleOnSuccessClick = useCallback(() => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n setTimeoutId(null);\n }\n onFormSubmitted();\n }, [timeoutId]);\n\n const onSubmitSuccess = useCallback(\n (data: FeedbackFormData, eventId: string) => {\n props.onSubmitSuccess(data, eventId);\n setTimeoutId(\n setTimeout(() => {\n onFormSubmitted();\n setTimeoutId(null);\n }, SUCCESS_MESSAGE_TIMEOUT),\n );\n },\n [onFormSubmitted],\n );\n\n return (\n <Fragment>\n {timeoutId ? (\n <div class=\"success__position\" onClick={handleOnSuccessClick}>\n <div class=\"success__content\">\n {options.successMessageText}\n <span class=\"success__icon\" dangerouslySetInnerHTML={successIconHtml} />\n </div>\n </div>\n ) : (\n <dialog class=\"dialog\" onClick={options.onFormClose} open={open}>\n <div class=\"dialog__position\">\n <div\n class=\"dialog__content\"\n onClick={e => {\n // Stop event propagation so clicks on content modal do not propagate to dialog (which will close dialog)\n e.stopPropagation();\n }}\n >\n <DialogHeader options={options} />\n <Form {...props} onSubmitSuccess={onSubmitSuccess} />\n </div>\n </div>\n </dialog>\n )}\n </Fragment>\n );\n}\n","import { DOCUMENT } from '../../constants';\n\nconst DIALOG = `\n.dialog {\n position: fixed;\n z-index: var(--z-index);\n margin: 0;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n height: 100vh;\n width: 100vw;\n\n color: var(--dialog-color, var(--foreground));\n fill: var(--dialog-color, var(--foreground));\n line-height: 1.75em;\n\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n inset: 0;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog__position {\n position: fixed;\n z-index: var(--z-index);\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n display: flex;\n max-height: calc(100vh - (2 * var(--page-margin)));\n}\n@media (max-width: 600px) {\n .dialog__position {\n inset: var(--page-margin);\n padding: 0;\n }\n}\n\n.dialog__position:has(.editor) {\n inset: var(--page-margin);\n padding: 0;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: var(--dialog-padding, 24px);\n max-width: 100%;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n\n background: var(--dialog-background, var(--background));\n border-radius: var(--dialog-border-radius, 20px);\n border: var(--dialog-border, var(--border));\n box-shadow: var(--dialog-box-shadow, var(--box-shadow));\n transform: translate(0, 0) scale(1);\n transition: transform 0.2s ease-in-out;\n}\n\n`;\n\nconst DIALOG_HEADER = `\n.dialog__header {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n font-weight: var(--dialog-header-weight, 600);\n margin: 0;\n}\n.dialog__title {\n align-self: center;\n width: var(--form-width, 272px);\n}\n\n@media (max-width: 600px) {\n .dialog__title {\n width: auto;\n }\n}\n\n.dialog__position:has(.editor) .dialog__title {\n width: auto;\n}\n\n\n.brand-link {\n display: inline-flex;\n}\n.brand-link:focus-visible {\n outline: var(--outline);\n}\n`;\n\nconst FORM = `\n.form {\n display: flex;\n overflow: auto;\n flex-direction: row;\n gap: 16px;\n flex: 1 0;\n}\n\n.form fieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.form__right {\n flex: 0 0 auto;\n display: flex;\n overflow: auto;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n width: var(--form-width, 100%);\n}\n\n.dialog__position:has(.editor) .form__right {\n width: var(--form-width, 272px);\n}\n\n.form__top {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form__error-container {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n font-family: inherit;\n line-height: inherit;\n background: transparent;\n box-sizing: border-box;\n border: var(--input-border, var(--border));\n border-radius: var(--input-border-radius, 6px);\n color: var(--input-color, inherit);\n fill: var(--input-color, inherit);\n font-size: var(--input-font-size, inherit);\n font-weight: var(--input-font-weight, 500);\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n opacity: 0.65;\n color: var(--input-placeholder-color, inherit);\n filter: var(--interactive-filter);\n}\n\n.form__input:focus-visible {\n outline: var(--input-focus-outline, var(--outline));\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.error {\n color: var(--error-color);\n fill: var(--error-color);\n}\n`;\n\nconst BUTTON = `\n.btn-group {\n display: grid;\n gap: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--button-font-size, inherit);\n font-weight: var(--button-font-weight, 600);\n padding: var(--button-padding, 6px 16px);\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n color: var(--button-primary-color, var(--accent-foreground));\n fill: var(--button-primary-color, var(--accent-foreground));\n background: var(--button-primary-background, var(--accent-background));\n border: var(--button-primary-border, var(--border));\n border-radius: var(--button-primary-border-radius, 6px);\n font-weight: var(--button-primary-font-weight, 500);\n}\n.btn--primary:hover {\n color: var(--button-primary-hover-color, var(--accent-foreground));\n fill: var(--button-primary-hover-color, var(--accent-foreground));\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n}\n.btn--primary:focus-visible {\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n outline: var(--button-primary-focus-outline, var(--outline));\n}\n\n.btn--default {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-background, var(--background));\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n font-weight: var(--button-font-weight, 500);\n}\n.btn--default:hover {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n.btn--default:focus-visible {\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n outline: var(--button-focus-outline, var(--outline));\n}\n`;\n\nconst SUCCESS = `\n.success__position {\n position: fixed;\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n z-index: var(--z-index);\n}\n.success__content {\n background: var(--success-background, var(--background));\n border: var(--success-border, var(--border));\n border-radius: var(--success-border-radius, 1.7em/50%);\n box-shadow: var(--success-box-shadow, var(--box-shadow));\n font-weight: var(--success-font-weight, 600);\n color: var(--success-color);\n fill: var(--success-color);\n padding: 12px 24px;\n line-height: 1.75em;\n\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success__icon {\n display: flex;\n}\n`;\n\n/**\n * Creates <style> element for widget dialog\n */\nexport function createDialogStyles(styleNonce?: string): HTMLStyleElement {\n const style = DOCUMENT.createElement('style');\n\n style.textContent = `\n:host {\n --dialog-inset: var(--inset);\n}\n\n${DIALOG}\n${DIALOG_HEADER}\n${FORM}\n${BUTTON}\n${SUCCESS}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n","import type { FeedbackFormData, FeedbackModalIntegration, IntegrationFn, User } from '@sentry/core';\nimport { getClient, getCurrentScope, getGlobalScope, getIsolationScope } from '@sentry/core';\nimport { h, render } from 'preact';\nimport * as hooks from 'preact/hooks';\nimport { DOCUMENT } from '../constants';\nimport { Dialog } from './components/Dialog';\nimport { createDialogStyles } from './components/Dialog.css';\n\nfunction getUser(): User | undefined {\n const currentUser = getCurrentScope().getUser();\n const isolationUser = getIsolationScope().getUser();\n const globalUser = getGlobalScope().getUser();\n if (currentUser && Object.keys(currentUser).length) {\n return currentUser;\n }\n if (isolationUser && Object.keys(isolationUser).length) {\n return isolationUser;\n }\n return globalUser;\n}\n\nexport const feedbackModalIntegration = ((): FeedbackModalIntegration => {\n return {\n name: 'FeedbackModal',\n setupOnce() {},\n createDialog: ({ options, screenshotIntegration, sendFeedback, shadow }) => {\n const shadowRoot = shadow as ShadowRoot;\n const userKey = options.useSentryUser;\n const user = getUser();\n\n const el = DOCUMENT.createElement('div');\n const style = createDialogStyles(options.styleNonce);\n\n let originalOverflow = '';\n const dialog: ReturnType<FeedbackModalIntegration['createDialog']> = {\n get el() {\n return el;\n },\n appendToDom(): void {\n if (!shadowRoot.contains(style) && !shadowRoot.contains(el)) {\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(el);\n }\n },\n removeFromDom(): void {\n el.remove();\n style.remove();\n DOCUMENT.body.style.overflow = originalOverflow;\n },\n open() {\n renderContent(true);\n options.onFormOpen?.();\n getClient()?.emit('openFeedbackWidget');\n originalOverflow = DOCUMENT.body.style.overflow;\n DOCUMENT.body.style.overflow = 'hidden';\n },\n close() {\n renderContent(false);\n DOCUMENT.body.style.overflow = originalOverflow;\n },\n };\n\n const screenshotInput = screenshotIntegration?.createInput({ h, hooks, dialog, options });\n\n const renderContent = (open: boolean): void => {\n render(\n <Dialog\n options={options}\n screenshotInput={screenshotInput}\n showName={options.showName || options.isNameRequired}\n showEmail={options.showEmail || options.isEmailRequired}\n defaultName={String((userKey && user?.[userKey.name]) || '')}\n defaultEmail={String((userKey && user?.[userKey.email]) || '')}\n onFormClose={() => {\n renderContent(false);\n options.onFormClose?.();\n }}\n onSubmit={sendFeedback}\n onSubmitSuccess={(data: FeedbackFormData, eventId: string) => {\n renderContent(false);\n options.onSubmitSuccess?.(data, eventId);\n }}\n onSubmitError={(error: Error) => {\n options.onSubmitError?.(error);\n }}\n onFormSubmitted={() => {\n options.onFormSubmitted?.();\n }}\n open={open}\n />,\n el,\n );\n };\n\n return dialog;\n },\n };\n}) satisfies IntegrationFn;\n","import type { h as hType, VNode } from 'preact';\n\ninterface FactoryParams {\n h: typeof hType;\n}\n\nexport default function IconCloseFactory({\n h, // eslint-disable-line @typescript-eslint/no-unused-vars\n}: FactoryParams) {\n return function IconClose(): VNode {\n return (\n <svg data-test-id=\"icon-close\" viewBox=\"0 0 16 16\" fill=\"#2B2233\" height=\"25px\" width=\"25px\">\n <circle r=\"7\" cx=\"8\" cy=\"8\" fill=\"white\" />\n <path\n strokeWidth=\"1.5\"\n d=\"M8,16a8,8,0,1,1,8-8A8,8,0,0,1,8,16ZM8,1.53A6.47,6.47,0,1,0,14.47,8,6.47,6.47,0,0,0,8,1.53Z\"\n ></path>\n <path\n strokeWidth=\"1.5\"\n d=\"M5.34,11.41a.71.71,0,0,1-.53-.22.74.74,0,0,1,0-1.06l5.32-5.32a.75.75,0,0,1,1.06,1.06L5.87,11.19A.74.74,0,0,1,5.34,11.41Z\"\n ></path>\n <path\n strokeWidth=\"1.5\"\n d=\"M10.66,11.41a.74.74,0,0,1-.53-.22L4.81,5.87A.75.75,0,0,1,5.87,4.81l5.32,5.32a.74.74,0,0,1,0,1.06A.71.71,0,0,1,10.66,11.41Z\"\n ></path>\n </svg>\n );\n };\n}\n","import { DOCUMENT } from '../../constants';\n\n/**\n * Creates <style> element for widget dialog\n */\nexport function createScreenshotInputStyles(styleNonce?: string): HTMLStyleElement {\n const style = DOCUMENT.createElement('style');\n\n const surface200 = '#1A141F';\n const gray100 = '#302735';\n\n style.textContent = `\n.editor {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n\n.editor__image-container {\n justify-items: center;\n padding: 15px;\n position: relative;\n height: 100%;\n border-radius: var(--menu-border-radius, 6px);\n\n background-color: ${surface200};\n background-image: repeating-linear-gradient(\n -145deg,\n transparent,\n transparent 8px,\n ${surface200} 8px,\n ${surface200} 11px\n ),\n repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 15px,\n ${gray100} 15px,\n ${gray100} 16px\n );\n}\n\n.editor__canvas-container {\n width: 100%;\n height: 100%;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.editor__canvas-container > * {\n object-fit: contain;\n position: absolute;\n}\n\n.editor__tool-container {\n padding-top: 8px;\n display: flex;\n justify-content: center;\n}\n\n.editor__tool-bar {\n display: flex;\n gap: 8px;\n}\n\n.editor__tool {\n display: flex;\n padding: 8px 12px;\n justify-content: center;\n align-items: center;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n background: var(--button-background, var(--background));\n color: var(--button-color, var(--foreground));\n}\n\n.editor__tool--active {\n background: var(--button-primary-background, var(--accent-background));\n color: var(--button-primary-color, var(--accent-foreground));\n}\n\n.editor__rect {\n position: absolute;\n z-index: 2;\n}\n\n.editor__rect button {\n opacity: 0;\n position: absolute;\n top: -12px;\n right: -12px;\n cursor: pointer;\n padding: 0;\n z-index: 3;\n border: none;\n background: none;\n}\n\n.editor__rect:hover button {\n opacity: 1;\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n","import type { FeedbackInternalOptions } from '@sentry/core';\nimport type { h as hType, VNode } from 'preact';\nimport type * as Hooks from 'preact/hooks';\n\ninterface FactoryParams {\n h: typeof hType;\n}\n\nexport default function ToolbarFactory({\n h, // eslint-disable-line @typescript-eslint/no-unused-vars\n}: FactoryParams) {\n return function Toolbar({\n action,\n setAction,\n options,\n }: {\n action: 'highlight' | 'hide' | '';\n setAction: Hooks.StateUpdater<'highlight' | 'hide' | ''>;\n options: FeedbackInternalOptions;\n }): VNode {\n return (\n <div class=\"editor__tool-container\">\n <div class=\"editor__tool-bar\">\n <button\n type=\"button\"\n class={`editor__tool ${action === 'highlight' ? 'editor__tool--active' : ''}`}\n onClick={() => {\n setAction(action === 'highlight' ? '' : 'highlight');\n }}\n >\n {options.highlightToolText}\n </button>\n <button\n type=\"button\"\n class={`editor__tool ${action === 'hide' ? 'editor__tool--active' : ''}`}\n onClick={() => {\n setAction(action === 'hide' ? '' : 'hide');\n }}\n >\n {options.hideToolText}\n </button>\n </div>\n </div>\n );\n };\n}\n","import type * as Hooks from 'preact/hooks';\nimport { DOCUMENT, NAVIGATOR, WINDOW } from '../../constants';\n\ninterface FactoryParams {\n hooks: typeof Hooks;\n}\n\ninterface Props {\n onBeforeScreenshot: () => void;\n onScreenshot: (imageSource: HTMLVideoElement, dpi: number) => void;\n onAfterScreenshot: () => void;\n onError: (error: Error) => void;\n}\n\ntype UseTakeScreenshot = ({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }: Props) => void;\n\nexport function useTakeScreenshotFactory({ hooks }: FactoryParams): UseTakeScreenshot {\n function useDpi(): number {\n const [dpi, setDpi] = hooks.useState<number>(WINDOW.devicePixelRatio ?? 1);\n hooks.useEffect(() => {\n const onChange = (): void => {\n setDpi(WINDOW.devicePixelRatio);\n };\n const media = matchMedia(`(resolution: ${WINDOW.devicePixelRatio}dppx)`);\n media.addEventListener('change', onChange);\n return () => {\n media.removeEventListener('change', onChange);\n };\n }, []);\n\n return dpi;\n }\n\n return function useTakeScreenshot({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }: Props) {\n const dpi = useDpi();\n\n hooks.useEffect(() => {\n const takeScreenshot = async (): Promise<void> => {\n onBeforeScreenshot();\n\n // Chrome will animate a top-bar which can shrink the window height by a\n // few pixels. The exact amount depends on how fast it takes to exec\n // the onloadedmetadata callback.\n // https://stackoverflow.com/q/75833049\n const stream = await NAVIGATOR.mediaDevices.getDisplayMedia({\n video: {\n width: WINDOW.innerWidth * dpi,\n height: WINDOW.innerHeight * dpi,\n },\n audio: false,\n // @ts-expect-error experimental flags: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab\n monitorTypeSurfaces: 'exclude',\n preferCurrentTab: true,\n selfBrowserSurface: 'include',\n surfaceSwitching: 'exclude',\n });\n\n const video = DOCUMENT.createElement('video');\n await new Promise<void>((resolve, reject) => {\n video.srcObject = stream;\n video.onloadedmetadata = () => {\n onScreenshot(video, dpi);\n stream.getTracks().forEach(track => track.stop());\n resolve();\n };\n video.play().catch(reject);\n });\n onAfterScreenshot();\n };\n\n takeScreenshot().catch(onError);\n }, []);\n };\n}\n","import type { FeedbackInternalOptions, FeedbackModalIntegration } from '@sentry/core';\nimport type { ComponentType, h as hType, VNode } from 'preact';\nimport { h } from 'preact'; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport type * as Hooks from 'preact/hooks';\nimport { DOCUMENT, WINDOW } from '../../constants';\nimport IconCloseFactory from './IconClose';\nimport { createScreenshotInputStyles } from './ScreenshotInput.css';\nimport ToolbarFactory from './Toolbar';\nimport { useTakeScreenshotFactory } from './useTakeScreenshot';\n\ninterface FactoryParams {\n h: typeof hType;\n hooks: typeof Hooks;\n\n /**\n * A ref to a Canvas Element that serves as our \"value\" or image output.\n */\n outputBuffer: HTMLCanvasElement;\n\n /**\n * A reference to the whole dialog (the parent of this component) so that we\n * can show/hide it and take a clean screenshot of the webpage.\n */\n dialog: ReturnType<FeedbackModalIntegration['createDialog']>;\n\n /**\n * The whole options object.\n *\n * Needed to set nonce and id values for editor specific styles\n */\n options: FeedbackInternalOptions;\n}\n\ninterface Props {\n onError: (error: Error) => void;\n}\n\ntype MaybeCanvas = HTMLCanvasElement | null;\ntype Screenshot = { canvas: HTMLCanvasElement; dpi: number };\n\ntype DrawType = 'highlight' | 'hide' | '';\ninterface DrawCommand {\n type: DrawType;\n x: number;\n y: number;\n h: number;\n w: number;\n}\n\nfunction drawRect(command: DrawCommand, ctx: CanvasRenderingContext2D, color: string): void {\n switch (command.type) {\n case 'highlight': {\n // creates a shadow around\n ctx.shadowColor = 'rgba(0, 0, 0, 0.7)';\n ctx.shadowBlur = 50;\n\n // draws a rectangle first with a shadow\n ctx.fillStyle = color;\n ctx.fillRect(command.x - 1, command.y - 1, command.w + 2, command.h + 2);\n\n // cut out the inside of the rectangle\n ctx.clearRect(command.x, command.y, command.w, command.h);\n\n break;\n }\n case 'hide':\n ctx.fillStyle = 'rgb(0, 0, 0)';\n ctx.fillRect(command.x, command.y, command.w, command.h);\n\n break;\n default:\n break;\n }\n}\n\nfunction with2dContext(\n canvas: MaybeCanvas,\n options: CanvasRenderingContext2DSettings,\n callback: (canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => void,\n): void {\n if (!canvas) {\n return;\n }\n const ctx = canvas.getContext('2d', options);\n if (!ctx) {\n return;\n }\n callback(canvas, ctx);\n}\n\nfunction paintImage(maybeDest: MaybeCanvas, source: HTMLCanvasElement): void {\n with2dContext(maybeDest, { alpha: true }, (destCanvas, destCtx) => {\n destCtx.drawImage(source, 0, 0, source.width, source.height, 0, 0, destCanvas.width, destCanvas.height);\n });\n}\n\n// Paint the array of drawCommands into a canvas.\n// Assuming this is the canvas foreground, and the background is cleaned.\nfunction paintForeground(maybeCanvas: MaybeCanvas, strokeColor: string, drawCommands: DrawCommand[]): void {\n with2dContext(maybeCanvas, { alpha: true }, (canvas, ctx) => {\n // If there's anything to draw, then we'll first clear the canvas with\n // a transparent grey background\n if (drawCommands.length) {\n ctx.fillStyle = 'rgba(0, 0, 0, 0.25)';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n drawCommands.forEach(command => {\n drawRect(command, ctx, strokeColor);\n });\n });\n}\n\nexport function ScreenshotEditorFactory({\n h,\n hooks,\n outputBuffer,\n dialog,\n options,\n}: FactoryParams): ComponentType<Props> {\n const useTakeScreenshot = useTakeScreenshotFactory({ hooks });\n const Toolbar = ToolbarFactory({ h });\n const IconClose = IconCloseFactory({ h });\n const editorStyleInnerText = { __html: createScreenshotInputStyles(options.styleNonce).innerText };\n\n const dialogStyle = (dialog.el as HTMLElement).style;\n\n const ScreenshotEditor = ({ screenshot }: { screenshot: Screenshot }): VNode => {\n // Data for rendering:\n const [action, setAction] = hooks.useState<DrawType>('highlight');\n const [drawCommands, setDrawCommands] = hooks.useState<DrawCommand[]>([]);\n\n // Refs to our html components:\n const measurementRef = hooks.useRef<HTMLDivElement | null>(null);\n const backgroundRef = hooks.useRef<MaybeCanvas>(null);\n const foregroundRef = hooks.useRef<MaybeCanvas>(null);\n const mouseRef = hooks.useRef<HTMLDivElement | null>(null);\n\n // The size of our window, relative to the imageSource\n const [scaleFactor, setScaleFactor] = hooks.useState<number>(1);\n\n const strokeColor = hooks.useMemo((): string => {\n const sentryFeedback = DOCUMENT.getElementById(options.id);\n if (!sentryFeedback) {\n return 'white';\n }\n const computedStyle = getComputedStyle(sentryFeedback);\n return (\n computedStyle.getPropertyValue('--button-primary-background') ||\n computedStyle.getPropertyValue('--accent-background')\n );\n }, [options.id]);\n\n // The initial resize, to measure the area and set the children to the correct size\n hooks.useLayoutEffect(() => {\n const handleResize = (): void => {\n const measurementDiv = measurementRef.current;\n if (!measurementDiv) {\n return;\n }\n\n with2dContext(screenshot.canvas, { alpha: false }, canvas => {\n const scale = Math.min(\n measurementDiv.clientWidth / canvas.width,\n measurementDiv.clientHeight / canvas.height,\n );\n setScaleFactor(scale);\n });\n\n // For Firefox, the canvas is not yet measured, so we need to wait for it to get the correct size\n if (measurementDiv.clientHeight === 0 || measurementDiv.clientWidth === 0) {\n setTimeout(handleResize, 0);\n }\n };\n\n handleResize();\n WINDOW.addEventListener('resize', handleResize);\n return () => {\n WINDOW.removeEventListener('resize', handleResize);\n };\n }, [screenshot]);\n\n // Set the size of the canvas element to match our screenshot\n const setCanvasSize = hooks.useCallback(\n (maybeCanvas: MaybeCanvas, scale: number): void => {\n with2dContext(maybeCanvas, { alpha: true }, (canvas, ctx) => {\n // Must call `scale()` before setting `width` & `height`\n ctx.scale(scale, scale);\n canvas.width = screenshot.canvas.width;\n canvas.height = screenshot.canvas.height;\n });\n },\n [screenshot],\n );\n\n // Draw the screenshot into the background\n hooks.useEffect(() => {\n setCanvasSize(backgroundRef.current, screenshot.dpi);\n paintImage(backgroundRef.current, screenshot.canvas);\n }, [screenshot]);\n\n // Draw the commands into the foreground\n hooks.useEffect(() => {\n setCanvasSize(foregroundRef.current, screenshot.dpi);\n with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) => {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n });\n paintForeground(foregroundRef.current, strokeColor, drawCommands);\n }, [drawCommands, strokeColor]);\n\n // Draw into the output outputBuffer\n hooks.useEffect(() => {\n setCanvasSize(outputBuffer, screenshot.dpi);\n paintImage(outputBuffer, screenshot.canvas);\n with2dContext(DOCUMENT.createElement('canvas'), { alpha: true }, (foreground, ctx) => {\n ctx.scale(screenshot.dpi, screenshot.dpi); // The scale needs to be set before we set the width/height and paint\n foreground.width = screenshot.canvas.width;\n foreground.height = screenshot.canvas.height;\n paintForeground(foreground, strokeColor, drawCommands);\n paintImage(outputBuffer, foreground);\n });\n }, [drawCommands, screenshot, strokeColor]);\n\n const handleMouseDown = (e: MouseEvent): void => {\n if (!action || !mouseRef.current) {\n return;\n }\n\n const boundingRect = mouseRef.current.getBoundingClientRect();\n const startingPoint: DrawCommand = {\n type: action,\n x: e.offsetX / scaleFactor,\n y: e.offsetY / scaleFactor,\n w: 0,\n h: 0,\n };\n\n const getDrawCommand = (startingPoint: DrawCommand, e: MouseEvent): DrawCommand => {\n const x = (e.clientX - boundingRect.x) / scaleFactor;\n const y = (e.clientY - boundingRect.y) / scaleFactor;\n return {\n type: startingPoint.type,\n x: Math.min(startingPoint.x, x),\n y: Math.min(startingPoint.y, y),\n w: Math.abs(x - startingPoint.x),\n h: Math.abs(y - startingPoint.y),\n } as DrawCommand;\n };\n\n const handleMouseMove = (e: MouseEvent): void => {\n with2dContext(foregroundRef.current, { alpha: true }, (canvas, ctx) => {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n });\n paintForeground(foregroundRef.current, strokeColor, [...drawCommands, getDrawCommand(startingPoint, e)]);\n };\n\n const handleMouseUp = (e: MouseEvent): void => {\n const drawCommand = getDrawCommand(startingPoint, e);\n\n // Prevent just clicking onto the canvas, mouse has to move at least 1 pixel\n if (drawCommand.w * scaleFactor >= 1 && drawCommand.h * scaleFactor >= 1) {\n setDrawCommands(prev => [...prev, drawCommand]);\n }\n DOCUMENT.removeEventListener('mousemove', handleMouseMove);\n DOCUMENT.removeEventListener('mouseup', handleMouseUp);\n };\n\n DOCUMENT.addEventListener('mousemove', handleMouseMove);\n DOCUMENT.addEventListener('mouseup', handleMouseUp);\n };\n\n const deleteRect = hooks.useCallback((index: number): hType.JSX.MouseEventHandler<HTMLButtonElement> => {\n return (e: MouseEvent): void => {\n e.preventDefault();\n e.stopPropagation();\n setDrawCommands(prev => {\n const updatedRects = [...prev];\n updatedRects.splice(index, 1);\n return updatedRects;\n });\n };\n }, []);\n\n const dimensions = {\n width: `${screenshot.canvas.width * scaleFactor}px`,\n height: `${screenshot.canvas.height * scaleFactor}px`,\n };\n\n const handleStopPropagation = (e: MouseEvent): void => {\n e.stopPropagation();\n };\n\n return (\n <div class=\"editor\">\n <style nonce={options.styleNonce} dangerouslySetInnerHTML={editorStyleInnerText} />\n <div class=\"editor__image-container\">\n <div class=\"editor__canvas-container\" ref={measurementRef}>\n <canvas ref={backgroundRef} id=\"background\" style={dimensions} />\n <canvas ref={foregroundRef} id=\"foreground\" style={dimensions} />\n <div ref={mouseRef} onMouseDown={handleMouseDown} style={dimensions}>\n {drawCommands.map((rect, index) => (\n <div\n key={index}\n class=\"editor__rect\"\n style={{\n top: `${rect.y * scaleFactor}px`,\n left: `${rect.x * scaleFactor}px`,\n width: `${rect.w * scaleFactor}px`,\n height: `${rect.h * scaleFactor}px`,\n }}\n >\n <button\n aria-label={options.removeHighlightText}\n onClick={deleteRect(index)}\n onMouseDown={handleStopPropagation}\n onMouseUp={handleStopPropagation}\n type=\"button\"\n >\n <IconClose />\n </button>\n </div>\n ))}\n </div>\n </div>\n </div>\n <Toolbar options={options} action={action} setAction={setAction} />\n </div>\n );\n };\n\n return function Wrapper({ onError }: Props): VNode {\n const [screenshot, setScreenshot] = hooks.useState<undefined | Screenshot>();\n\n useTakeScreenshot({\n onBeforeScreenshot: hooks.useCallback(() => {\n dialogStyle.display = 'none';\n }, []),\n onScreenshot: hooks.useCallback((screenshotVideo: HTMLVideoElement, dpi: number) => {\n // Stash the original screenshot image so we can (re)draw it multiple times\n with2dContext(DOCUMENT.createElement('canvas'), { alpha: false }, (canvas, ctx) => {\n ctx.scale(dpi, dpi); // The scale needs to be set before we set the width/height and paint\n canvas.width = screenshotVideo.videoWidth;\n canvas.height = screenshotVideo.videoHeight;\n ctx.drawImage(screenshotVideo, 0, 0, canvas.width, canvas.height);\n\n setScreenshot({ canvas, dpi });\n });\n\n // The output buffer, we only need to set the width/height on this once, it stays the same forever\n outputBuffer.width = screenshotVideo.videoWidth;\n outputBuffer.height = screenshotVideo.videoHeight;\n }, []),\n onAfterScreenshot: hooks.useCallback(() => {\n dialogStyle.display = 'block';\n }, []),\n onError: hooks.useCallback(error => {\n dialogStyle.display = 'block';\n onError(error);\n }, []),\n });\n\n if (screenshot) {\n return <ScreenshotEditor screenshot={screenshot} />;\n }\n\n return <div />;\n };\n}\n","import type { Attachment, FeedbackScreenshotIntegration, IntegrationFn } from '@sentry/core';\nimport type { h as hType } from 'preact';\nimport type * as Hooks from 'preact/hooks';\nimport { DOCUMENT } from '../constants';\nimport { ScreenshotEditorFactory } from './components/ScreenshotEditor';\n\nexport const feedbackScreenshotIntegration = ((): FeedbackScreenshotIntegration => {\n return {\n name: 'FeedbackScreenshot',\n setupOnce() {},\n createInput: ({ h, hooks, dialog, options }) => {\n const outputBuffer = DOCUMENT.createElement('canvas');\n\n return {\n input: ScreenshotEditorFactory({\n h: h as typeof hType,\n hooks: hooks as typeof Hooks,\n outputBuffer,\n dialog,\n options,\n }) as any, // eslint-disable-line @typescript-eslint/no-explicit-any\n\n value: async () => {\n const blob = await new Promise<Parameters<BlobCallback>[0]>(resolve => {\n outputBuffer.toBlob(resolve, 'image/png');\n });\n if (blob) {\n const data = new Uint8Array(await blob.arrayBuffer());\n const attachment: Attachment = {\n data,\n filename: 'screenshot.png',\n contentType: 'application/png',\n // attachmentType?: string;\n };\n return attachment;\n }\n return undefined;\n },\n };\n },\n };\n}) satisfies IntegrationFn;\n"],"names":["GLOBAL_OBJ","getClient","getCurrentScope","captureFeedback","getLocationHref","XMLNS","addIntegration","debug","isBrowser","l","u","i","o","r","f","c","s","a","h","v","p","y","d","g","b","m","w","k","x","C","j","P","T","A","D","q","z","B","n","useMemo","useState","useCallback","Fragment","getIsolationScope","getGlobalScope","render"],"mappings":"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CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,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AAA,EAAA,EAAI,KAAK,EAAC,kBAAA;AACrB,cAAa,OAAO,CAAC;AACrB,cAAYA,GAAA,CAAC,UAAK,KAAK,EAAC,iBAAgB,uBAAuB,EAAC,eAAgB,EAAA;AAChF;AACA;AACA;AACA,QAAQA,GAAA,CAAC,QAAA,EAAA,EAAO,KAAK,EAAC,UAAS,OAAO,EAAC,OAAQ,CAAC,WAAW,EAAE,IAAI,EAAC,IAAK;AACvE,YAAUA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAK,EAAC,kBAAA;AACrB,cAAYA,GAAA,CAAC,KAAA,EAAA;AACb,cAAc,KAAK,EAAC,iBAAA;AACpB,cAAc,OAAO,EAAC,CAAA,IAAM;AAC5B;AACA,gBAAgB,CAAC,CAAC,eAAe,EAAE;AACnC,cAAc,CAAC;;AAEf,gBAAcA,IAAC,YAAA,EAAA,EAAa,OAAO,EAAC,OAAQ;AAC5C,gBAAcA,GAAA,CAAC,QAAK,GAAI,KAAK,EAAE,eAAe,EAAC,eAAgB,EAAA;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA,MAAM,MAAA,GAAS;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,MAAM,aAAA,GAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,IAAA,GAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,MAAA,GAAS;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,OAAA,GAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,UAAU,EAA6B;AAC1E,EAAE,MAAM,QAAQ,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;;AAE/C,EAAE,KAAK,CAAC,WAAA,GAAc;AACtB;AACA;AACA;;AAEA,EAAE,MAAM;AACR,EAAE,aAAa;AACf,EAAE,IAAI;AACN,EAAE,MAAM;AACR,EAAE,OAAO;AACT,CAAC;;AAED,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;AAC3C,EAAE;;AAEF,EAAE,OAAO,KAAK;AACd;;ACnTA,SAAS,OAAO,GAAqB;AACrC,EAAE,MAAM,cAAchB,oBAAe,EAAE,CAAC,OAAO,E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","x_google_ignoreList":[12,13]}