@sentry/feedback 11.0.0-alpha.1 → 11.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/npm/cjs/index.js +51 -41
- package/build/npm/cjs/index.js.map +1 -1
- package/build/npm/esm/index.js +52 -42
- package/build/npm/esm/index.js.map +1 -1
- package/build/npm/esm/package.json +1 -1
- package/build/npm/types/modal/components/Dialog.css.d.ts.map +1 -1
- package/build/npm/types/modal/components/Form.d.ts.map +1 -1
- package/build/npm/types/screenshot/components/ScreenshotEditor.d.ts.map +1 -1
- package/build/npm/types/screenshot/components/Toolbar.d.ts +1 -1
- package/build/npm/types/screenshot/components/Toolbar.d.ts.map +1 -1
- package/build/npm/types/util/createFeedbackError.d.ts +0 -1
- package/build/npm/types/util/createFeedbackError.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/constants/index.ts","../../../src/util/createFeedbackError.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 ERROR_EMPTY_MESSAGE_TEXT = 'Unable to submit feedback with empty message';\nexport const ERROR_NO_CLIENT_TEXT = 'No client setup, cannot send feedback.';\nexport const ERROR_TIMEOUT_TEXT = 'Unable to determine if Feedback was correctly sent.';\nexport const ERROR_FORBIDDEN_TEXT =\n 'Unable to send feedback. This could be because this domain is not in your list of allowed domains.';\nexport const ERROR_GENERIC_TEXT =\n 'Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\n\nexport const SUCCESS_MESSAGE_TIMEOUT = 5000;\n","import type { FeedbackErrorCode, FeedbackErrorMessages } from '@sentry/core';\nimport {\n ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC_TEXT,\n ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT_TEXT,\n} from '../constants';\n\nconst DEFAULT_MESSAGES: Record<FeedbackErrorCode, string> = {\n ERROR_EMPTY_MESSAGE: ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_NO_CLIENT: ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT: ERROR_TIMEOUT_TEXT,\n ERROR_FORBIDDEN: ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC: ERROR_GENERIC_TEXT,\n};\n\nexport function resolveFeedbackErrorMessage(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): string {\n return messages?.[code] ?? DEFAULT_MESSAGES[code];\n}\n\nexport function createFeedbackError(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): Error {\n return new Error(resolveFeedbackErrorMessage(code, messages));\n}\n","import type {\n Event,\n EventHint,\n FeedbackErrorMessages,\n SendFeedback,\n SendFeedbackParams,\n TransportMakeRequestResponse,\n} from '@sentry/core';\nimport { captureFeedback, getClient, getCurrentScope, getLocationHref } from '@sentry/core';\nimport { FEEDBACK_API_SOURCE } from '../constants';\nimport { createFeedbackError, resolveFeedbackErrorMessage } from '../util/createFeedbackError';\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; errorMessages?: FeedbackErrorMessages } = { includeReplay: true },\n): Promise<string> => {\n const errorMessages = hint.errorMessages;\n\n if (!params.message) {\n throw createFeedbackError('ERROR_EMPTY_MESSAGE', errorMessages);\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 createFeedbackError('ERROR_NO_CLIENT', errorMessages);\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(() => {\n cleanup();\n reject(resolveFeedbackErrorMessage('ERROR_TIMEOUT', errorMessages));\n }, 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(resolveFeedbackErrorMessage('ERROR_FORBIDDEN', errorMessages));\n }\n\n return reject(resolveFeedbackErrorMessage('ERROR_GENERIC', errorMessages));\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/* eslint-disable complexity */\n\nimport type {\n FeedbackErrorMessages,\n FeedbackInternalOptions,\n FeedbackModalIntegration,\n FeedbackScreenshotIntegration,\n Integration,\n IntegrationFn,\n SendFeedback,\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 ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC_TEXT,\n ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT_TEXT,\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 setTheme(colorScheme: 'light' | 'dark' | 'system'): void;\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 errorEmptyMessageText = ERROR_EMPTY_MESSAGE_TEXT,\n errorNoClientText = ERROR_NO_CLIENT_TEXT,\n errorTimeoutText = ERROR_TIMEOUT_TEXT,\n errorForbiddenText = ERROR_FORBIDDEN_TEXT,\n errorGenericText = ERROR_GENERIC_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 errorEmptyMessageText,\n errorNoClientText,\n errorTimeoutText,\n errorForbiddenText,\n errorGenericText,\n\n onFormClose,\n onFormOpen,\n onSubmitError,\n onSubmitSuccess,\n onFormSubmitted,\n };\n\n let _shadow: ShadowRoot | null = null;\n let _mainStyle: HTMLStyleElement | 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 _mainStyle = createMainStyles(options);\n _shadow.appendChild(_mainStyle);\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 errorMessages: FeedbackErrorMessages = {\n ERROR_EMPTY_MESSAGE: options.errorEmptyMessageText,\n ERROR_NO_CLIENT: options.errorNoClientText,\n ERROR_TIMEOUT: options.errorTimeoutText,\n ERROR_FORBIDDEN: options.errorForbiddenText,\n ERROR_GENERIC: options.errorGenericText,\n };\n const wrappedSendFeedback: SendFeedback = (params, hint) =>\n sendFeedback(params, { includeReplay: true, ...hint, errorMessages });\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: wrappedSendFeedback,\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' as const,\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 * Updates the color scheme of the feedback widget at runtime.\n */\n setTheme(colorScheme: 'light' | 'dark' | 'system'): void {\n _options.colorScheme = colorScheme;\n if (_shadow) {\n const newStyle = createMainStyles(_options);\n if (_mainStyle) {\n _shadow.replaceChild(newStyle, _mainStyle);\n } else {\n _shadow.prepend(newStyle);\n }\n _mainStyle = newStyle;\n }\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 _mainStyle = 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 const err = error instanceof Error ? error : new Error(String(error));\n setError(err.message);\n onSubmitError(err);\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' as const,\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 };\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' as const,\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":["XMLNS","colorScheme","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","error","Fragment","render","startingPoint","e"],"mappings":"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","x_google_ignoreList":[13,14]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/constants/index.ts","../../../src/util/createFeedbackError.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 ERROR_EMPTY_MESSAGE_TEXT = 'Unable to submit feedback with empty message';\nexport const ERROR_NO_CLIENT_TEXT = 'No client setup, cannot send feedback.';\nexport const ERROR_TIMEOUT_TEXT = 'Unable to determine if Feedback was correctly sent.';\nexport const ERROR_FORBIDDEN_TEXT =\n 'Unable to send feedback. This could be because this domain is not in your list of allowed domains.';\nexport const ERROR_GENERIC_TEXT =\n 'Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.';\n\nexport const FEEDBACK_WIDGET_SOURCE = 'widget';\nexport const FEEDBACK_API_SOURCE = 'api';\n\nexport const SUCCESS_MESSAGE_TIMEOUT = 5000;\n","import type { FeedbackErrorCode, FeedbackErrorMessages } from '@sentry/core';\nimport {\n ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC_TEXT,\n ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT_TEXT,\n} from '../constants';\n\nconst DEFAULT_MESSAGES: Record<FeedbackErrorCode, string> = {\n ERROR_EMPTY_MESSAGE: ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_NO_CLIENT: ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT: ERROR_TIMEOUT_TEXT,\n ERROR_FORBIDDEN: ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC: ERROR_GENERIC_TEXT,\n};\n\nfunction resolveFeedbackErrorMessage(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): string {\n return messages?.[code] ?? DEFAULT_MESSAGES[code];\n}\n\nexport function createFeedbackError(code: FeedbackErrorCode, messages?: FeedbackErrorMessages): Error {\n return new Error(resolveFeedbackErrorMessage(code, messages));\n}\n","import type {\n Event,\n EventHint,\n FeedbackErrorMessages,\n SendFeedback,\n SendFeedbackParams,\n TransportMakeRequestResponse,\n} from '@sentry/core';\nimport { captureFeedback, getClient, getCurrentScope } from '@sentry/core';\nimport { FEEDBACK_API_SOURCE, WINDOW } from '../constants';\nimport { createFeedbackError } from '../util/createFeedbackError';\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; errorMessages?: FeedbackErrorMessages } = { includeReplay: true },\n): Promise<string> => {\n const errorMessages = hint.errorMessages;\n\n if (!params.message) {\n throw createFeedbackError('ERROR_EMPTY_MESSAGE', errorMessages);\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 createFeedbackError('ERROR_NO_CLIENT', errorMessages);\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(() => {\n cleanup();\n reject(createFeedbackError('ERROR_TIMEOUT', errorMessages));\n }, 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(createFeedbackError('ERROR_FORBIDDEN', errorMessages));\n }\n\n return reject(createFeedbackError('ERROR_GENERIC', errorMessages));\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\n/**\n * A safe form of location.href.\n */\nfunction _getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch {\n return '';\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/* eslint-disable complexity */\n\nimport type {\n FeedbackErrorMessages,\n FeedbackInternalOptions,\n FeedbackModalIntegration,\n FeedbackScreenshotIntegration,\n Integration,\n IntegrationFn,\n SendFeedback,\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 ERROR_EMPTY_MESSAGE_TEXT,\n ERROR_FORBIDDEN_TEXT,\n ERROR_GENERIC_TEXT,\n ERROR_NO_CLIENT_TEXT,\n ERROR_TIMEOUT_TEXT,\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 setTheme(colorScheme: 'light' | 'dark' | 'system'): void;\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 errorEmptyMessageText = ERROR_EMPTY_MESSAGE_TEXT,\n errorNoClientText = ERROR_NO_CLIENT_TEXT,\n errorTimeoutText = ERROR_TIMEOUT_TEXT,\n errorForbiddenText = ERROR_FORBIDDEN_TEXT,\n errorGenericText = ERROR_GENERIC_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 errorEmptyMessageText,\n errorNoClientText,\n errorTimeoutText,\n errorForbiddenText,\n errorGenericText,\n\n onFormClose,\n onFormOpen,\n onSubmitError,\n onSubmitSuccess,\n onFormSubmitted,\n };\n\n let _shadow: ShadowRoot | null = null;\n let _mainStyle: HTMLStyleElement | 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 _mainStyle = createMainStyles(options);\n _shadow.appendChild(_mainStyle);\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 errorMessages: FeedbackErrorMessages = {\n ERROR_EMPTY_MESSAGE: options.errorEmptyMessageText,\n ERROR_NO_CLIENT: options.errorNoClientText,\n ERROR_TIMEOUT: options.errorTimeoutText,\n ERROR_FORBIDDEN: options.errorForbiddenText,\n ERROR_GENERIC: options.errorGenericText,\n };\n const wrappedSendFeedback: SendFeedback = (params, hint) =>\n sendFeedback(params, { includeReplay: true, ...hint, errorMessages });\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: wrappedSendFeedback,\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' as const,\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 * Updates the color scheme of the feedback widget at runtime.\n */\n setTheme(colorScheme: 'light' | 'dark' | 'system'): void {\n _options.colorScheme = colorScheme;\n if (_shadow) {\n const newStyle = createMainStyles(_options);\n if (_mainStyle) {\n _shadow.replaceChild(newStyle, _mainStyle);\n } else {\n _shadow.prepend(newStyle);\n }\n _mainStyle = newStyle;\n }\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 _mainStyle = 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,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(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?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g=t&&t.__k||w,m=l.length;for(f=T(u,l,g,f,m),s=0;s<m;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&g[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),4&p.__u?(f=j(p,f,n),h.__e&&(h.__e=null)):\"function\"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(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=j(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!l.parentNode&&(l=$(n)),l=u.insertBefore(n.__e,l||null));do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||_.test(l)?u:u+\"px\"}function N(n,l,u,t,i){var r,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||z(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(s,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);else{if(\"http://www.w3.org/2000/svg\"==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&&\"popover\"!=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,\"popover\"==l&&1==u?\"\":u))}}function V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,I,P,A,H,T,j,F=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if(\"function\"==typeof F){h=e.length;try{if(x=u.props,M=F.prototype&&F.prototype.render,I=(s=F.contextType)&&i[s.__c],P=s?I?I.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new F(x,P):(u.__c=p=new C(x,P),p.constructor=F,p.render=Q),I&&I.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=F.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,F.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==F.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==F.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,P),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,P)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p),f=$(t);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,P),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=P,p.props=x,p.__P=n,p.__e=!1,A=l.__r,H=0,M)p.state=p.__s,p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,A&&A(u),s=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=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),T=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(T)?T:[T],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(j=o.length;j--;)b(o[j])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(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 E(n){return\"object\"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&\"setAttribute\"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e=\"textarea\"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],\"dangerouslySetInnerHTML\"==s?p=y:\"children\"==s||s in k||\"value\"==s&&\"defaultValue\"in k||\"checked\"==s&&\"defaultChecked\"in k||N(u,s,null,y,o);for(s in k)y=k[s],\"children\"==s?v=y:\"dangerouslySetInnerHTML\"==s?h=y:\"value\"==s?w=y:\"checked\"==s?_=y:c&&\"function\"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=\"\"),L(\"template\"==t.type?u.content:u,g(v)?v:[v],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&\"textarea\"!=x||(s=\"value\",\"progress\"==x&&null==w?u.removeAttribute(\"value\"):null!=w&&(w!==u[s]||\"progress\"==x&&!w||\"option\"==x&&w!=m[s])&&N(u,s,w,m[s],o),s=\"checked\",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||\"function\"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),\"function\"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c=\"__d\"+f,a=\"__a\"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;export{C as Component,S as Fragment,W as cloneElement,X as createContext,k as createElement,M as createRef,k as h,U as hydrate,t as isValidElement,l as options,R as render,F as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,p=c.__;function s(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,y(D,n)}function y(n,u,i){var o=s(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.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};r.__f=!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 h(n,u){var i=s(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=s(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=s(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=s(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=s(t++,10),i=d();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=s(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();){var t=n.__H;if(n.__P&&t)try{t.__h.some(z),t.__h.some(B),t.__h=[]}catch(r){t.__h=[],c.__e(r,n.__v)}}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),p&&p(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(z),i.__h.some(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.some(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__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,35);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{q as useCallback,x as useContext,P as useDebugValue,h as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,y as useReducer,A as useRef,d 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 { TargetedSubmitEvent, 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: 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 const err = error as Error;\n setError(err.message);\n onSubmitError(err);\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 width: 0;\n min-width: 100%;\n overflow-wrap: break-word;\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' as const,\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.Dispatch<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, MouseEventHandler, 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 };\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): 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' as const,\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":["XMLNS","colorScheme","l","u","i","r","o","e","f","c","a","s","h","p","v","d","w","_","g","m","b","k","x","C","q","D","P","A","T","j","z","B","n","useMemo","useState","useCallback","error","Fragment","render","startingPoint"],"mappings":"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,EAAC,CAAC,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,EAAE,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,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,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,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;ACGn0G,MAAMhC,OAAA,GAAQ,4BAAA;AAKP,SAAS,UAAA,GAAyB;AACvC,EAAA,MAAM,kBAAkB,CAAuC,OAAA,KAC7D,QAAA,CAAS,eAAA,CAAgBA,SAAO,OAAO,CAAA;AACzC,EAAA,MAAM,GAAA,GAAM,eAAA,CAAgB,eAAA,CAAgB,KAAK,CAAA,EAAG;AAAA,IAClD,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ,IAAA;AAAA,IACR,OAAA,EAAS,WAAA;AAAA,IACT,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAAA,IACpD,SAAA,EAAW,mBAAA;AAAA,IACX,CAAA,EAAG;AAAA,GACJ,CAAA;AACD,EAAA,GAAA,CAAI,YAAY,IAAI,CAAA;AAEpB,EAAA,OAAO,GAAA;AACT;;ACfO,SAAS,YAAA,CAAa,EAAE,OAAA,EAAQ,EAAiB;AACtD,EAAA,MAAM,QAAA,GAAWiC,CAAA,CAAQ,OAAO,EAAE,MAAA,EAAQ,YAAW,CAAE,SAAA,EAAU,CAAA,EAAI,EAAE,CAAA;AAEvE,EAAA,uBACErB,GAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAM,gBAAA,EAAA,kBACRA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,eAAA,EAAA,EAAiB,OAAA,CAAQ,SAAU,CAAA,EAC9C,OAAA,CAAQ,YAAA,mBACPA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,YAAA;AAAA,MACN,MAAA,EAAO,QAAA;AAAA,MACP,IAAA,EAAK,4BAAA;AAAA,MACL,KAAA,EAAM,mBAAA;AAAA,MACN,GAAA,EAAI,qBAAA;AAAA,MACJ,uBAAA,EAAyB;AAAA;AAAA,MAEzB,IACN,CAAA;AAEJ;;AClBO,SAAS,gBAAA,CAAiB,UAA4B,KAAA,EAAwB;AACnF,EAAA,MAAM,cAAc,EAAC;AACrB,EAAA,IAAI,KAAA,CAAM,cAAA,IAAkB,CAAC,QAAA,CAAS,IAAA,EAAM;AAC1C,IAAA,WAAA,CAAY,IAAA,CAAK,MAAM,SAAS,CAAA;AAAA,EAClC;AACA,EAAA,IAAI,KAAA,CAAM,eAAA,IAAmB,CAAC,QAAA,CAAS,KAAA,EAAO;AAC5C,IAAA,WAAA,CAAY,IAAA,CAAK,MAAM,UAAU,CAAA;AAAA,EACnC;AACA,EAAA,IAAI,CAAC,SAAS,OAAA,EAAS;AACrB,IAAA,WAAA,CAAY,IAAA,CAAK,MAAM,YAAY,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,WAAA;AACT;;ACEA,SAAS,mBAAA,CAAoB,UAAoB,GAAA,EAAqB;AACpE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA;AAC9B,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,MAAM,IAAA,EAAK;AAAA,EACpB;AACA,EAAA,OAAO,EAAA;AACT;AAEO,SAAS,IAAA,CAAK;AAAA,EACnB,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EAEA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAiB;AACf,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,wBAAA;AAAA,IACA,2BAAA;AAAA,IACA,iBAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,IACA,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF,GAAI,OAAA;AACJ,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIsB,EAAkB,KAAK,CAAA;AAE/D,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,EAAwB,IAAI,CAAA;AAEtD,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIA,EAAS,KAAK,CAAA;AAEpE,EAAA,MAAM,2BAAgC,eAAA,EAAiB,KAAA;AAEvD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,EAAuB,IAAI,CAAA;AACzE,EAAA,MAAM,iBAAA,GAAoBC,CAAA,CAAY,CAACC,MAAAA,KAAiB;AACtD,IAAA,kBAAA,CAAmBA,MAAK,CAAA;AACxB,IAAA,sBAAA,CAAuB,KAAK,CAAA;AAAA,EAC9B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,oBAAA,GAAuBD,CAAA;AAAA,IAC3B,CAAC,IAAA,KAA2B;AAC1B,MAAA,MAAM,aAAA,GAAgB,iBAAiB,IAAA,EAAM;AAAA,QAC3C,UAAA;AAAA,QACA,eAAA;AAAA,QACA,cAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,IAAI,aAAA,CAAc,SAAS,CAAA,EAAG;AAC5B,QAAA,QAAA,CAAS,CAAA,+CAAA,EAAkD,aAAA,CAAc,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,MACvF,CAAA,MAAO;AACL,QAAA,QAAA,CAAS,IAAI,CAAA;AAAA,MACf;AAEA,MAAA,OAAO,cAAc,MAAA,KAAW,CAAA;AAAA,IAClC,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,eAAA,EAAiB,cAAA,EAAgB,cAAc,SAAS;AAAA,GACvE;AAEA,EAAA,MAAM,YAAA,GAAeA,CAAA;AAAA,IACnB,OAAO,CAAA,KAA4C;AACjD,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA,IAAI;AACF,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,IAAI,EAAE,CAAA,CAAE,MAAA,YAAkB,eAAA,CAAA,EAAkB;AAC1C,UAAA;AAAA,QACF;AACA,QAAA,MAAM,QAAA,GAAW,IAAI,QAAA,CAAS,CAAA,CAAE,MAAM,CAAA;AACtC,QAAA,MAAM,aAAa,OAAO,eAAA,IAAmB,mBAAA,GAAsB,eAAA,CAAgB,OAAM,GAAI,KAAA,CAAA,CAAA;AAE7F,QAAA,MAAM,IAAA,GAAyB;AAAA,UAC7B,IAAA,EAAM,mBAAA,CAAoB,QAAA,EAAU,MAAM,CAAA;AAAA,UAC1C,KAAA,EAAO,mBAAA,CAAoB,QAAA,EAAU,OAAO,CAAA;AAAA,UAC5C,OAAA,EAAS,mBAAA,CAAoB,QAAA,EAAU,SAAS,CAAA;AAAA,UAChD,WAAA,EAAa,UAAA,GAAa,CAAC,UAAU,CAAA,GAAI,KAAA;AAAA,SAC3C;AAEA,QAAA,IAAI,CAAC,oBAAA,CAAqB,IAAI,CAAA,EAAG;AAC/B,UAAA;AAAA,QACF;AAEA,QAAA,IAAI;AACF,UAAA,MAAM,UAAU,MAAM,QAAA;AAAA,YACpB;AAAA,cACE,MAAM,IAAA,CAAK,IAAA;AAAA,cACX,OAAO,IAAA,CAAK,KAAA;AAAA,cACZ,SAAS,IAAA,CAAK,OAAA;AAAA,cACd,MAAA,EAAQ,sBAAA;AAAA,cACR;AAAA,aACF;AAAA,YACA,EAAE,WAAA,EAAa,IAAA,CAAK,WAAA;AAAY,WAClC;AACA,UAAA,eAAA,CAAgB,MAAM,OAAO,CAAA;AAAA,QAC/B,SAASC,MAAAA,EAAO;AACd,UAAA,WAAA,IAAe,KAAA,CAAM,MAAMA,MAAK,CAAA;AAChC,UAAA,MAAM,GAAA,GAAMA,MAAAA;AACZ,UAAA,QAAA,CAAS,IAAI,OAAO,CAAA;AACpB,UAAA,aAAA,CAAc,GAAG,CAAA;AAAA,QACnB;AAAA,MACF,CAAA,SAAE;AACA,QAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,MACvB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAA,IAAmB,mBAAA,EAAqB,eAAA,EAAiB,aAAa;AAAA,GACzE;AAEA,EAAA,uBACExB,GAAA,CAAC,UAAK,KAAA,EAAM,MAAA,EAAO,UAAU,YAAA,EAAA,EAC1B,wBAAA,IAA4B,mBAAA,mBAC3BA,GAAA,CAAC,wBAAA,EAAA,EAAyB,OAAA,EAAS,mBAAmB,CAAA,GACpD,IAAA,sBAEH,UAAA,EAAA,EAAS,KAAA,EAAM,eAAc,sBAAA,EAAsB,IAAA,EAAM,QAAA,EAAU,YAAA,EAAA,kBAClEA,GAAA,CAAC,KAAA,EAAA,EAAI,OAAM,WAAA,EAAA,EACR,KAAA,uBAAS,KAAA,EAAA,EAAI,KAAA,EAAM,2BAAyB,KAAM,CAAA,GAAS,IAAA,EAE3D,QAAA,mBACCA,GAAA,CAAC,OAAA,EAAA,EAAM,KAAI,MAAA,EAAO,KAAA,EAAM,iCACtBA,GAAA,CAAC,SAAA,EAAA,EAAU,OAAO,SAAA,EAAW,eAAA,EAAkC,UAAA,EAAY,cAAA,EAAgB,CAAA,kBAC3FA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,aAAA;AAAA,MACN,YAAA,EAAc,WAAA;AAAA,MACd,EAAA,EAAG,MAAA;AAAA,MACH,IAAA,EAAK,MAAA;AAAA,MACL,WAAA,EAAa,eAAA;AAAA,MACb,QAAA,EAAU,cAAA;AAAA,MACV,IAAA,EAAK;AAAA;AAAA,GAET,CAAA,mBAEAA,GAAA,CAAC,OAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,KAAA,EAAO,WAAA,EAAa,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,QAAA,EAAS,CAAA,EAGlE,SAAA,mBACCA,GAAA,CAAC,OAAA,EAAA,EAAM,GAAA,EAAI,OAAA,EAAQ,KAAA,EAAM,aAAA,EAAA,kBACvBA,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,UAAA,EAAY,eAAA,EAAkC,UAAA,EAAY,eAAA,EAAiB,CAAA,kBAC7FA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,aAAA;AAAA,MACN,YAAA,EAAc,YAAA;AAAA,MACd,EAAA,EAAG,OAAA;AAAA,MACH,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAa,gBAAA;AAAA,MACb,QAAA,EAAU,eAAA;AAAA,MACV,IAAA,EAAK;AAAA;AAAA,GAET,CAAA,mBAEAA,GAAA,CAAC,OAAA,EAAA,EAAM,aAAA,EAAW,IAAA,EAAC,KAAA,EAAO,YAAA,EAAc,IAAA,EAAK,OAAA,EAAQ,IAAA,EAAK,QAAA,EAAS,CAAA,sBAGpE,OAAA,EAAA,EAAM,GAAA,EAAI,SAAA,EAAU,KAAA,EAAM,aAAA,EAAA,kBACzBA,GAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,YAAA,EAAc,eAAA,EAAkC,UAAA,EAAU,IAAA,EAAC,CAAA,kBAC7EA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAS,IAAA;AAAA,MACT,KAAA,EAAM,mCAAA;AAAA,MACN,EAAA,EAAG,SAAA;AAAA,MACH,IAAA,EAAK,SAAA;AAAA,MACL,WAAA,EAAa,kBAAA;AAAA,MACb,QAAA,EAAU,IAAA;AAAA,MACV,IAAA,EAAM;AAAA;AAAA,GAEV,GAEC,wBAAA,mBACCA,GAAA,CAAC,WAAM,GAAA,EAAI,YAAA,EAAa,OAAM,aAAA,EAAA,kBAC5BA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,kBAAA;AAAA,MACN,QAAA,EAAU,YAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,SAAS,MAAM;AACb,QAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,QAAA,sBAAA,CAAuB,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,MACtC;AAAA,KAAA;AAAA,IAEC,sBAAsB,2BAAA,GAA8B;AAAA,KAEtD,eAAA,mBAAkBA,GAAA,CAAC,SAAI,KAAA,EAAM,uBAAA,EAAA,EAAyB,gBAAgB,OAAQ,CAAA,GAAS,IAC1F,CAAA,GACE,IACN,CAAA,kBACAA,GAAA,CAAC,SAAI,KAAA,EAAM,WAAA,EAAA,sBACR,QAAA,EAAA,EAAO,KAAA,EAAM,kBAAA,EAAmB,QAAA,EAAU,cAAc,IAAA,EAAK,QAAA,EAAA,EAC3D,iBACH,CAAA,kBACAA,GAAA,CAAC,YAAO,KAAA,EAAM,kBAAA,EAAmB,QAAA,EAAU,YAAA,EAAc,MAAK,QAAA,EAAS,OAAA,EAAS,eAC7E,iBACH,CACF,CACF,CACF,CAAA;AAEJ;AAEA,SAAS,SAAA,CAAU;AAAA,EACjB,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAIU;AACR,EAAA,uBACEA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,mBAAA,EAAA,EACT,KAAA,EACA,UAAA,oBAAcA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,6BAAA,EAAA,EAA+B,eAAgB,CAC5E,CAAA;AAEJ;;ACnPA,MAAM,KAAA,GAAQ,EAAA;AACd,MAAM,MAAA,GAAS,EAAA;AACf,MAAM,KAAA,GAAQ,4BAAA;AAKP,SAAS,WAAA,GAA0B;AACxC,EAAA,MAAM,kBAAkB,CAAuC,OAAA,KAC7D,OAAO,QAAA,CAAS,eAAA,CAAgB,OAAO,OAAO,CAAA;AAChD,EAAA,MAAM,GAAA,GAAM,eAAA,CAAgB,eAAA,CAAgB,KAAK,CAAA,EAAG;AAAA,IAClD,KAAA,EAAO,GAAG,KAAK,CAAA,CAAA;AAAA,IACf,MAAA,EAAQ,GAAG,MAAM,CAAA,CAAA;AAAA,IACjB,OAAA,EAAS,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,IAC/B,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,CAAA,GAAI,eAAA,CAAgB,eAAA,CAAgB,GAAG,CAAA,EAAG;AAAA,IAC9C,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAAA,IACrD,CAAC,WAAW,GAAG,SAAA;AAAA,IACf,CAAC,WAAW,GAAG,SAAA;AAAA,IACf,CAAA,EAAG;AAAA,GACJ,CAAA;AACD,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAAA,IACpD,CAAA,EAAG;AAAA,GACJ,CAAA;AAED,EAAA,GAAA,CAAI,WAAA,CAAY,CAAC,CAAA,CAAE,MAAA,CAAO,MAAM,KAAK,CAAA;AAErC,EAAA,MAAM,WAAA,GAAc,gBAAgB,MAAM,CAAA;AAC1C,EAAA,MAAM,kBAAA,GAAqB,eAAA,CAAgB,eAAA,CAAgB,UAAU,CAAA,EAAG;AAAA,IACtE,EAAA,EAAI;AAAA,GACL,CAAA;AAED,EAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAAA,IAC3D,KAAA,EAAO,GAAG,KAAK,CAAA,CAAA;AAAA,IACf,MAAA,EAAQ,GAAG,KAAK,CAAA,CAAA;AAAA,IAChB,IAAA,EAAM,OAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACZ,CAAA;AAED,EAAA,kBAAA,CAAmB,YAAY,WAAW,CAAA;AAC1C,EAAA,WAAA,CAAY,YAAY,kBAAkB,CAAA;AAE1C,EAAA,GAAA,CAAI,YAAY,WAAW,CAAA,CAAE,YAAY,kBAAkB,CAAA,CAAE,YAAY,WAAW,CAAA;AAEpF,EAAA,OAAO,GAAA;AACT;;ACpCO,SAAS,OAAO,EAAE,IAAA,EAAM,eAAA,EAAiB,GAAG,OAAM,EAAiB;AACxE,EAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,EAAA,MAAM,eAAA,GAAkBqB,CAAA,CAAQ,OAAO,EAAE,MAAA,EAAQ,aAAY,CAAE,SAAA,EAAU,CAAA,EAAI,EAAE,CAAA;AAE/E,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,EAAgC,IAAI,CAAA;AAEtE,EAAA,MAAM,oBAAA,GAAuBC,EAAY,MAAM;AAC7C,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,YAAA,CAAa,SAAS,CAAA;AACtB,MAAA,YAAA,CAAa,IAAI,CAAA;AAAA,IACnB;AACA,IAAA,eAAA,EAAgB;AAAA,EAClB,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,eAAA,GAAkBA,CAAA;AAAA,IACtB,CAAC,MAAwB,OAAA,KAAoB;AAC3C,MAAA,KAAA,CAAM,eAAA,CAAgB,MAAM,OAAO,CAAA;AACnC,MAAA,YAAA;AAAA,QACE,WAAW,MAAM;AACf,UAAA,eAAA,EAAgB;AAChB,UAAA,YAAA,CAAa,IAAI,CAAA;AAAA,QACnB,GAAG,uBAAuB;AAAA,OAC5B;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,uBACEvB,GAAA,CAACyB,CAAA,EAAA,IAAA,EACE,SAAA,mBACCzB,GAAA,CAAC,SAAI,KAAA,EAAM,mBAAA,EAAoB,OAAA,EAAS,oBAAA,EAAA,sBACrC,KAAA,EAAA,EAAI,KAAA,EAAM,kBAAA,EAAA,EACR,OAAA,CAAQ,oCACTA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,eAAA,EAAgB,yBAAyB,eAAA,EAAiB,CACxE,CACF,CAAA,uBAEC,QAAA,EAAA,EAAO,KAAA,EAAM,QAAA,EAAS,OAAA,EAAS,QAAQ,WAAA,EAAa,IAAA,EAAA,kBACnDA,GAAA,CAAC,KAAA,EAAA,EAAI,OAAM,kBAAA,EAAA,kBACTA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,iBAAA;AAAA,MACN,SAAS,CAAA,CAAA,KAAK;AAEZ,QAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,MACpB;AAAA,KAAA;AAAA,oBAEAA,GAAA,CAAC,gBAAa,OAAA,EAAkB,CAAA;AAAA,oBAChCA,GAAA,CAAC,IAAA,EAAA,EAAM,GAAG,KAAA,EAAO,eAAA,EAAkC;AAAA,GAEvD,CACF,CAEJ,CAAA;AAEJ;;ACrEA,MAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,CAAA;AA0Ef,MAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAgCtB,MAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AA+Fb,MAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AA8Df,MAAM,OAAA,GAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,CAAA;AAiCT,SAAS,mBAAmB,UAAA,EAAuC;AACxE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAE5C,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA;AAAA;AAAA;;AAAA,EAKpB,MAAM;AAAA,EACN,aAAa;AAAA,EACb,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,CAAA;AAGP,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,KAAA,CAAM,YAAA,CAAa,SAAS,UAAU,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,KAAA;AACT;;ACtTA,SAAS,OAAA,GAA4B;AACnC,EAAA,MAAM,WAAA,GAAc,eAAA,EAAgB,CAAE,OAAA,EAAQ;AAC9C,EAAA,MAAM,aAAA,GAAgB,iBAAA,EAAkB,CAAE,OAAA,EAAQ;AAClD,EAAA,MAAM,UAAA,GAAa,cAAA,EAAe,CAAE,OAAA,EAAQ;AAC5C,EAAA,IAAI,WAAA,IAAe,MAAA,CAAO,IAAA,CAAK,WAAW,EAAE,MAAA,EAAQ;AAClD,IAAA,OAAO,WAAA;AAAA,EACT;AACA,EAAA,IAAI,aAAA,IAAiB,MAAA,CAAO,IAAA,CAAK,aAAa,EAAE,MAAA,EAAQ;AACtD,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,OAAO,UAAA;AACT;AAEO,MAAM,4BAA4B,MAAgC;AACvE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,GAAY;AAAA,IAAC,CAAA;AAAA,IACb,cAAc,CAAC,EAAE,SAAS,qBAAA,EAAuB,YAAA,EAAc,QAAO,KAAM;AAC1E,MAAA,MAAM,UAAA,GAAa,MAAA;AACnB,MAAA,MAAM,UAAU,OAAA,CAAQ,aAAA;AACxB,MAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACvC,MAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,OAAA,CAAQ,UAAU,CAAA;AAEnD,MAAA,IAAI,gBAAA,GAAmB,EAAA;AACvB,MAAA,MAAM,MAAA,GAA+D;AAAA,QACnE,IAAI,EAAA,GAAK;AACP,UAAA,OAAO,EAAA;AAAA,QACT,CAAA;AAAA,QACA,WAAA,GAAoB;AAClB,UAAA,IAAI,CAAC,WAAW,QAAA,CAAS,KAAK,KAAK,CAAC,UAAA,CAAW,QAAA,CAAS,EAAE,CAAA,EAAG;AAC3D,YAAA,UAAA,CAAW,YAAY,KAAK,CAAA;AAC5B,YAAA,UAAA,CAAW,YAAY,EAAE,CAAA;AAAA,UAC3B;AAAA,QACF,CAAA;AAAA,QACA,aAAA,GAAsB;AACpB,UAAA,EAAA,CAAG,MAAA,EAAO;AACV,UAAA,KAAA,CAAM,MAAA,EAAO;AACb,UAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,gBAAA;AAAA,QACjC,CAAA;AAAA,QACA,IAAA,GAAO;AACL,UAAA,aAAA,CAAc,IAAI,CAAA;AAClB,UAAA,OAAA,CAAQ,UAAA,IAAa;AACrB,UAAA,SAAA,EAAU,EAAG,KAAK,oBAAoB,CAAA;AACtC,UAAA,gBAAA,GAAmB,QAAA,CAAS,KAAK,KAAA,CAAM,QAAA;AACvC,UAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAAA,QACjC,CAAA;AAAA,QACA,KAAA,GAAQ;AACN,UAAA,aAAA,CAAc,KAAK,CAAA;AACnB,UAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,gBAAA;AAAA,QACjC;AAAA,OACF;AAEA,MAAA,MAAM,eAAA,GAAkB,uBAAuB,WAAA,CAAY,KAAEA,KAAG,KAAA,EAAO,MAAA,EAAQ,SAAS,CAAA;AAExF,MAAA,MAAM,aAAA,GAAgB,CAAC,IAAA,KAAwB;AAC7C,QAAA0B,CAAA;AAAA,0BACE1B,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,eAAA;AAAA,cACA,QAAA,EAAU,OAAA,CAAQ,QAAA,IAAY,OAAA,CAAQ,cAAA;AAAA,cACtC,SAAA,EAAW,OAAA,CAAQ,SAAA,IAAa,OAAA,CAAQ,eAAA;AAAA,cACxC,aAAa,MAAA,CAAQ,OAAA,IAAW,OAAO,OAAA,CAAQ,IAAI,KAAM,EAAE,CAAA;AAAA,cAC3D,cAAc,MAAA,CAAQ,OAAA,IAAW,OAAO,OAAA,CAAQ,KAAK,KAAM,EAAE,CAAA;AAAA,cAC7D,aAAa,MAAM;AACjB,gBAAA,aAAA,CAAc,KAAK,CAAA;AACnB,gBAAA,OAAA,CAAQ,WAAA,IAAc;AAAA,cACxB,CAAA;AAAA,cACA,QAAA,EAAU,YAAA;AAAA,cACV,eAAA,EAAiB,CAAC,IAAA,EAAwB,OAAA,KAAoB;AAC5D,gBAAA,aAAA,CAAc,KAAK,CAAA;AACnB,gBAAA,OAAA,CAAQ,eAAA,GAAkB,MAAM,OAAO,CAAA;AAAA,cACzC,CAAA;AAAA,cACA,aAAA,EAAe,CAAC,KAAA,KAAiB;AAC/B,gBAAA,OAAA,CAAQ,gBAAgB,KAAK,CAAA;AAAA,cAC/B,CAAA;AAAA,cACA,iBAAiB,MAAM;AACrB,gBAAA,OAAA,CAAQ,eAAA,IAAkB;AAAA,cAC5B,CAAA;AAAA,cACA;AAAA;AAAA,WACF;AAAA,UACA;AAAA,SACF;AAAA,MACF,CAAA;AAEA,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,GACF;AACF,CAAA;;AC3FA,SAAwB,gBAAA,CAAiB;AAAA,EACvC;AAAA;AACF,CAAA,EAAkB;AAChB,EAAA,OAAO,SAAS,SAAA,GAAmB;AACjC,IAAA,uBACE,CAAA,CAAC,SAAI,cAAA,EAAa,YAAA,EAAa,SAAQ,WAAA,EAAY,IAAA,EAAK,SAAA,EAAU,MAAA,EAAO,MAAA,EAAO,KAAA,EAAM,0BACpF,CAAA,CAAC,QAAA,EAAA,EAAO,GAAE,GAAA,EAAI,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,IAAA,EAAK,OAAA,EAAQ,CAAA,kBACzC,CAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAY,KAAA;AAAA,QACZ,CAAA,EAAE;AAAA;AAAA,KACH,kBACD,CAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAY,KAAA;AAAA,QACZ,CAAA,EAAE;AAAA;AAAA,KACH,kBACD,CAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAY,KAAA;AAAA,QACZ,CAAA,EAAE;AAAA;AAAA,KAEN,CAAA;AAAA,EAEJ,CAAA;AACF;;ACvBO,SAAS,4BAA4B,UAAA,EAAuC;AACjF,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAE5C,EAAA,MAAM,UAAA,GAAa,SAAA;AACnB,EAAA,MAAM,OAAA,GAAU,SAAA;AAEhB,EAAA,KAAA,CAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,oBAAA,EAcA,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAKxB,UAAU,CAAA;AAAA,MAAA,EACV,UAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMV,OAAO,CAAA;AAAA,MAAA,EACP,OAAO,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,CAAA;AAmEb,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,KAAA,CAAM,YAAA,CAAa,SAAS,UAAU,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,KAAA;AACT;;ACtGA,SAAwB,cAAA,CAAe;AAAA,EACrC;AAAA;AACF,CAAA,EAAkB;AAChB,EAAA,OAAO,SAAS,OAAA,CAAQ;AAAA,IACtB,MAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF,EAIU;AACR,IAAA,yBACG,KAAA,EAAA,EAAI,KAAA,EAAM,4CACT,CAAA,CAAC,KAAA,EAAA,EAAI,OAAM,kBAAA,EAAA,kBACT,CAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,KAAA,EAAO,CAAA,aAAA,EAAgB,MAAA,KAAW,WAAA,GAAc,yBAAyB,EAAE,CAAA,CAAA;AAAA,QAC3E,SAAS,MAAM;AACb,UAAA,SAAA,CAAU,MAAA,KAAW,WAAA,GAAc,EAAA,GAAK,WAAW,CAAA;AAAA,QACrD;AAAA,OAAA;AAAA,MAEC,OAAA,CAAQ;AAAA,KACX,kBACA,CAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,KAAA,EAAO,CAAA,aAAA,EAAgB,MAAA,KAAW,MAAA,GAAS,yBAAyB,EAAE,CAAA,CAAA;AAAA,QACtE,SAAS,MAAM;AACb,UAAA,SAAA,CAAU,MAAA,KAAW,MAAA,GAAS,EAAA,GAAK,MAAM,CAAA;AAAA,QAC3C;AAAA,OAAA;AAAA,MAEC,OAAA,CAAQ;AAAA,KAEb,CACF,CAAA;AAAA,EAEJ,CAAA;AACF;;AC7BO,SAAS,wBAAA,CAAyB,EAAE,KAAA,EAAM,EAAqC;AACpF,EAAA,SAAS,MAAA,GAAiB;AACxB,IAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAI,MAAM,QAAA,CAAiB,MAAA,CAAO,oBAAoB,CAAC,CAAA;AACzE,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,MAAM,WAAW,MAAY;AAC3B,QAAA,MAAA,CAAO,OAAO,gBAAgB,CAAA;AAAA,MAChC,CAAA;AACA,MAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,CAAA,aAAA,EAAgB,MAAA,CAAO,gBAAgB,CAAA,KAAA,CAAO,CAAA;AACvE,MAAA,KAAA,CAAM,gBAAA,CAAiB,UAAU,QAAQ,CAAA;AACzC,MAAA,OAAO,MAAM;AACX,QAAA,KAAA,CAAM,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,MAC9C,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,OAAO,SAAS,iBAAA,CAAkB,EAAE,oBAAoB,YAAA,EAAc,iBAAA,EAAmB,SAAQ,EAAU;AACzG,IAAA,MAAM,MAAM,MAAA,EAAO;AAEnB,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,MAAM,iBAAiB,YAA2B;AAChD,QAAA,kBAAA,EAAmB;AAMnB,QAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,YAAA,CAAa,eAAA,CAAgB;AAAA,UAC1D,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,OAAO,UAAA,GAAa,GAAA;AAAA,YAC3B,MAAA,EAAQ,OAAO,WAAA,GAAc;AAAA,WAC/B;AAAA,UACA,KAAA,EAAO,KAAA;AAAA;AAAA,UAEP,mBAAA,EAAqB,SAAA;AAAA,UACrB,gBAAA,EAAkB,IAAA;AAAA,UAClB,kBAAA,EAAoB,SAAA;AAAA,UACpB,gBAAA,EAAkB;AAAA,SACnB,CAAA;AAED,QAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,QAAA,MAAM,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAA,KAAW;AAC3C,UAAA,KAAA,CAAM,SAAA,GAAY,MAAA;AAClB,UAAA,KAAA,CAAM,mBAAmB,MAAM;AAC7B,YAAA,YAAA,CAAa,OAAO,GAAG,CAAA;AACvB,YAAA,MAAA,CAAO,WAAU,CAAE,OAAA,CAAQ,CAAA,KAAA,KAAS,KAAA,CAAM,MAAM,CAAA;AAChD,YAAA,OAAA,EAAQ;AAAA,UACV,CAAA;AACA,UAAA,KAAA,CAAM,IAAA,EAAK,CAAE,KAAA,CAAM,MAAM,CAAA;AAAA,QAC3B,CAAC,CAAA;AACD,QAAA,iBAAA,EAAkB;AAAA,MACpB,CAAA;AAEA,MAAA,cAAA,EAAe,CAAE,MAAM,OAAO,CAAA;AAAA,IAChC,CAAA,EAAG,EAAE,CAAA;AAAA,EACP,CAAA;AACF;;ACxBA,SAAS,QAAA,CAAS,OAAA,EAAsB,GAAA,EAA+B,KAAA,EAAqB;AAC1F,EAAA,QAAQ,QAAQ,IAAA;AAAM,IACpB,KAAK,WAAA,EAAa;AAEhB,MAAA,GAAA,CAAI,WAAA,GAAc,oBAAA;AAClB,MAAA,GAAA,CAAI,UAAA,GAAa,EAAA;AAGjB,MAAA,GAAA,CAAI,SAAA,GAAY,KAAA;AAChB,MAAA,GAAA,CAAI,QAAA,CAAS,OAAA,CAAQ,CAAA,GAAI,CAAA,EAAG,OAAA,CAAQ,CAAA,GAAI,CAAA,EAAG,OAAA,CAAQ,CAAA,GAAI,CAAA,EAAG,OAAA,CAAQ,CAAA,GAAI,CAAC,CAAA;AAGvE,MAAA,GAAA,CAAI,SAAA,CAAU,QAAQ,CAAA,EAAG,OAAA,CAAQ,GAAG,OAAA,CAAQ,CAAA,EAAG,QAAQ,CAAC,CAAA;AAExD,MAAA;AAAA,IACF;AAAA,IACA,KAAK,MAAA;AACH,MAAA,GAAA,CAAI,SAAA,GAAY,cAAA;AAChB,MAAA,GAAA,CAAI,QAAA,CAAS,QAAQ,CAAA,EAAG,OAAA,CAAQ,GAAG,OAAA,CAAQ,CAAA,EAAG,QAAQ,CAAC,CAAA;AAEvD,MAAA;AAEA;AAEN;AAEA,SAAS,aAAA,CACP,MAAA,EACA,OAAA,EACA,QAAA,EACM;AACN,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA;AAAA,EACF;AACA,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAA,EAAM,OAAO,CAAA;AAC3C,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA;AAAA,EACF;AACA,EAAA,QAAA,CAAS,QAAQ,GAAG,CAAA;AACtB;AAEA,SAAS,UAAA,CAAW,WAAwB,MAAA,EAAiC;AAC3E,EAAA,aAAA,CAAc,WAAW,EAAE,KAAA,EAAO,MAAK,EAAG,CAAC,YAAY,OAAA,KAAY;AACjE,IAAA,OAAA,CAAQ,SAAA,CAAU,MAAA,EAAQ,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,MAAA,CAAO,MAAA,EAAQ,CAAA,EAAG,CAAA,EAAG,UAAA,CAAW,KAAA,EAAO,WAAW,MAAM,CAAA;AAAA,EACxG,CAAC,CAAA;AACH;AAIA,SAAS,eAAA,CAAgB,WAAA,EAA0B,WAAA,EAAqB,YAAA,EAAmC;AACzG,EAAA,aAAA,CAAc,aAAa,EAAE,KAAA,EAAO,MAAK,EAAG,CAAC,QAAQ,GAAA,KAAQ;AAG3D,IAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,MAAA,GAAA,CAAI,SAAA,GAAY,qBAAA;AAChB,MAAA,GAAA,CAAI,SAAS,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,IAChD;AAEA,IAAA,YAAA,CAAa,QAAQ,CAAA,OAAA,KAAW;AAC9B,MAAA,QAAA,CAAS,OAAA,EAAS,KAAK,WAAW,CAAA;AAAA,IACpC,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAEO,SAAS,uBAAA,CAAwB;AAAA,EACtC,CAAA,EAAAA,EAAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAwC;AACtC,EAAA,MAAM,iBAAA,GAAoB,wBAAA,CAAyB,EAAE,KAAA,EAAO,CAAA;AAC5D,EAAA,MAAM,OAAA,GAAU,cAAA,CAAe,EAAE,CAAA,EAAAA,IAAG,CAAA;AACpC,EAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,EAAE,CAAA,EAAAA,IAAG,CAAA;AACxC,EAAA,MAAM,uBAAuB,EAAE,MAAA,EAAQ,4BAA4B,OAAA,CAAQ,UAAU,EAAE,SAAA,EAAU;AAEjG,EAAA,MAAM,WAAA,GAAe,OAAO,EAAA,CAAmB,KAAA;AAE/C,EAAA,MAAM,gBAAA,GAAmB,CAAC,EAAE,UAAA,EAAW,KAAyC;AAE9E,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,KAAA,CAAM,SAAmB,WAAW,CAAA;AAChE,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,IAAI,KAAA,CAAM,QAAA,CAAwB,EAAE,CAAA;AAGxE,IAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,MAAA,CAA8B,IAAI,CAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAoB,IAAI,CAAA;AACpD,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,MAAA,CAAoB,IAAI,CAAA;AACpD,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,CAA8B,IAAI,CAAA;AAGzD,IAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,KAAA,CAAM,SAAiB,CAAC,CAAA;AAE9D,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,OAAA,CAAQ,MAAc;AAC9C,MAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,cAAA,CAAe,OAAA,CAAQ,EAAE,CAAA;AACzD,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,OAAO,OAAA;AAAA,MACT;AACA,MAAA,MAAM,aAAA,GAAgB,iBAAiB,cAAc,CAAA;AACrD,MAAA,OACE,cAAc,gBAAA,CAAiB,6BAA6B,CAAA,IAC5D,aAAA,CAAc,iBAAiB,qBAAqB,CAAA;AAAA,IAExD,CAAA,EAAG,CAAC,OAAA,CAAQ,EAAE,CAAC,CAAA;AAGf,IAAA,KAAA,CAAM,gBAAgB,MAAM;AAC1B,MAAA,MAAM,eAAe,MAAY;AAC/B,QAAA,MAAM,iBAAiB,cAAA,CAAe,OAAA;AACtC,QAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,UAAA;AAAA,QACF;AAEA,QAAA,aAAA,CAAc,WAAW,MAAA,EAAQ,EAAE,KAAA,EAAO,KAAA,IAAS,CAAA,MAAA,KAAU;AAC3D,UAAA,MAAM,QAAQ,IAAA,CAAK,GAAA;AAAA,YACjB,cAAA,CAAe,cAAc,MAAA,CAAO,KAAA;AAAA,YACpC,cAAA,CAAe,eAAe,MAAA,CAAO;AAAA,WACvC;AACA,UAAA,cAAA,CAAe,KAAK,CAAA;AAAA,QACtB,CAAC,CAAA;AAGD,QAAA,IAAI,cAAA,CAAe,YAAA,KAAiB,CAAA,IAAK,cAAA,CAAe,gBAAgB,CAAA,EAAG;AACzE,UAAA,UAAA,CAAW,cAAc,CAAC,CAAA;AAAA,QAC5B;AAAA,MACF,CAAA;AAEA,MAAA,YAAA,EAAa;AACb,MAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAC9C,MAAA,OAAO,MAAM;AACX,QAAA,MAAA,CAAO,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAAA,MACnD,CAAA;AAAA,IACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAGf,IAAA,MAAM,gBAAgB,KAAA,CAAM,WAAA;AAAA,MAC1B,CAAC,aAA0B,KAAA,KAAwB;AACjD,QAAA,aAAA,CAAc,aAAa,EAAE,KAAA,EAAO,MAAK,EAAG,CAAC,QAAQ,GAAA,KAAQ;AAE3D,UAAA,GAAA,CAAI,KAAA,CAAM,OAAO,KAAK,CAAA;AACtB,UAAA,MAAA,CAAO,KAAA,GAAQ,WAAW,MAAA,CAAO,KAAA;AACjC,UAAA,MAAA,CAAO,MAAA,GAAS,WAAW,MAAA,CAAO,MAAA;AAAA,QACpC,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,CAAC,UAAU;AAAA,KACb;AAGA,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,aAAA,CAAc,aAAA,CAAc,OAAA,EAAS,UAAA,CAAW,GAAG,CAAA;AACnD,MAAA,UAAA,CAAW,aAAA,CAAc,OAAA,EAAS,UAAA,CAAW,MAAM,CAAA;AAAA,IACrD,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAGf,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,aAAA,CAAc,aAAA,CAAc,OAAA,EAAS,UAAA,CAAW,GAAG,CAAA;AACnD,MAAA,aAAA,CAAc,aAAA,CAAc,SAAS,EAAE,KAAA,EAAO,MAAK,EAAG,CAAC,QAAQ,GAAA,KAAQ;AACrE,QAAA,GAAA,CAAI,UAAU,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,MACjD,CAAC,CAAA;AACD,MAAA,eAAA,CAAgB,aAAA,CAAc,OAAA,EAAS,WAAA,EAAa,YAAY,CAAA;AAAA,IAClE,CAAA,EAAG,CAAC,YAAA,EAAc,WAAW,CAAC,CAAA;AAG9B,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,aAAA,CAAc,YAAA,EAAc,WAAW,GAAG,CAAA;AAC1C,MAAA,UAAA,CAAW,YAAA,EAAc,WAAW,MAAM,CAAA;AAC1C,MAAA,aAAA,CAAc,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,EAAG,EAAE,OAAO,IAAA,EAAK,EAAG,CAAC,UAAA,EAAY,GAAA,KAAQ;AACpF,QAAA,GAAA,CAAI,KAAA,CAAM,UAAA,CAAW,GAAA,EAAK,UAAA,CAAW,GAAG,CAAA;AACxC,QAAA,UAAA,CAAW,KAAA,GAAQ,WAAW,MAAA,CAAO,KAAA;AACrC,QAAA,UAAA,CAAW,MAAA,GAAS,WAAW,MAAA,CAAO,MAAA;AACtC,QAAA,eAAA,CAAgB,UAAA,EAAY,aAAa,YAAY,CAAA;AACrD,QAAA,UAAA,CAAW,cAAc,UAAU,CAAA;AAAA,MACrC,CAAC,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,YAAA,EAAc,UAAA,EAAY,WAAW,CAAC,CAAA;AAE1C,IAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAwB;AAC/C,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,QAAA,CAAS,OAAA,EAAS;AAChC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,qBAAA,EAAsB;AAC5D,MAAA,MAAM,aAAA,GAA6B;AAAA,QACjC,IAAA,EAAM,MAAA;AAAA,QACN,CAAA,EAAG,EAAE,OAAA,GAAU,WAAA;AAAA,QACf,CAAA,EAAG,EAAE,OAAA,GAAU,WAGjB,CAAA;AAEA,MAAA,MAAM,cAAA,GAAiB,CAAC2B,cAAAA,EAA4BhC,EAAAA,KAA+B;AACjF,QAAA,MAAM,CAAA,GAAA,CAAKA,EAAAA,CAAE,OAAA,GAAU,YAAA,CAAa,CAAA,IAAK,WAAA;AACzC,QAAA,MAAM,CAAA,GAAA,CAAKA,EAAAA,CAAE,OAAA,GAAU,YAAA,CAAa,CAAA,IAAK,WAAA;AACzC,QAAA,OAAO;AAAA,UACL,MAAMgC,cAAAA,CAAc,IAAA;AAAA,UACpB,CAAA,EAAG,IAAA,CAAK,GAAA,CAAIA,cAAAA,CAAc,GAAG,CAAC,CAAA;AAAA,UAC9B,CAAA,EAAG,IAAA,CAAK,GAAA,CAAIA,cAAAA,CAAc,GAAG,CAAC,CAAA;AAAA,UAC9B,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAA,GAAIA,eAAc,CAAC,CAAA;AAAA,UAC/B,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAA,GAAIA,eAAc,CAAC;AAAA,SACjC;AAAA,MACF,CAAA;AAEA,MAAA,MAAM,eAAA,GAAkB,CAAChC,EAAAA,KAAwB;AAC/C,QAAA,aAAA,CAAc,aAAA,CAAc,SAAS,EAAE,KAAA,EAAO,MAAK,EAAG,CAAC,QAAQ,GAAA,KAAQ;AACrE,UAAA,GAAA,CAAI,UAAU,CAAA,EAAG,CAAA,EAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,QACjD,CAAC,CAAA;AACD,QAAA,eAAA,CAAgB,aAAA,CAAc,OAAA,EAAS,WAAA,EAAa,CAAC,GAAG,cAAc,cAAA,CAAe,aAAA,EAAeA,EAAC,CAAC,CAAC,CAAA;AAAA,MACzG,CAAA;AAEA,MAAA,MAAM,aAAA,GAAgB,CAACA,EAAAA,KAAwB;AAC7C,QAAA,MAAM,WAAA,GAAc,cAAA,CAAe,aAAA,EAAeA,EAAC,CAAA;AAGnD,QAAA,IAAI,YAAY,CAAA,GAAI,WAAA,IAAe,KAAK,WAAA,CAAY,CAAA,GAAI,eAAe,CAAA,EAAG;AACxE,UAAA,eAAA,CAAgB,CAAA,IAAA,KAAQ,CAAC,GAAG,IAAA,EAAM,WAAW,CAAC,CAAA;AAAA,QAChD;AACA,QAAA,QAAA,CAAS,mBAAA,CAAoB,aAAa,eAAe,CAAA;AACzD,QAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,aAAa,CAAA;AAAA,MACvD,CAAA;AAEA,MAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,eAAe,CAAA;AACtD,MAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,aAAa,CAAA;AAAA,IACpD,CAAA;AAEA,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,WAAA,CAAY,CAAC,KAAA,KAAwD;AAC5F,MAAA,OAAO,CAAC,CAAA,KAAwB;AAC9B,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,eAAA,CAAgB,CAAA,IAAA,KAAQ;AACtB,UAAA,MAAM,YAAA,GAAe,CAAC,GAAG,IAAI,CAAA;AAC7B,UAAA,YAAA,CAAa,MAAA,CAAO,OAAO,CAAC,CAAA;AAC5B,UAAA,OAAO,YAAA;AAAA,QACT,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,KAAA,EAAO,CAAA,EAAG,UAAA,CAAW,MAAA,CAAO,QAAQ,WAAW,CAAA,EAAA,CAAA;AAAA,MAC/C,MAAA,EAAQ,CAAA,EAAG,UAAA,CAAW,MAAA,CAAO,SAAS,WAAW,CAAA,EAAA;AAAA,KACnD;AAEA,IAAA,MAAM,qBAAA,GAAwB,CAAC,CAAA,KAAwB;AACrD,MAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,IACpB,CAAA;AAEA,IAAA,uBACEK,EAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,QAAA,EAAA,kBACTA,EAAAA,CAAC,OAAA,EAAA,EAAM,KAAA,EAAO,OAAA,CAAQ,UAAA,EAAY,uBAAA,EAAyB,oBAAA,EAAsB,CAAA,kBACjFA,EAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,yBAAA,EAAA,kBACTA,EAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,0BAAA,EAA2B,GAAA,EAAK,cAAA,EAAA,kBACzCA,EAAAA,CAAC,QAAA,EAAA,EAAO,GAAA,EAAK,aAAA,EAAe,EAAA,EAAG,YAAA,EAAa,KAAA,EAAO,UAAA,EAAY,CAAA,kBAC/DA,EAAAA,CAAC,QAAA,EAAA,EAAO,GAAA,EAAK,aAAA,EAAe,EAAA,EAAG,YAAA,EAAa,KAAA,EAAO,UAAA,EAAY,CAAA,kBAC/DA,EAAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,QAAA,EAAU,WAAA,EAAa,eAAA,EAAiB,KAAA,EAAO,UAAA,EAAA,EACtD,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBACvBA,EAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,KAAA;AAAA,QACL,KAAA,EAAM,cAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL,GAAA,EAAK,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,WAAW,CAAA,EAAA,CAAA;AAAA,UAC5B,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,WAAW,CAAA,EAAA,CAAA;AAAA,UAC7B,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,WAAW,CAAA,EAAA,CAAA;AAAA,UAC9B,MAAA,EAAQ,CAAA,EAAG,IAAA,CAAK,CAAA,GAAI,WAAW,CAAA,EAAA;AAAA;AACjC,OAAA;AAAA,sBAEAA,EAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,cAAY,OAAA,CAAQ,mBAAA;AAAA,UACpB,OAAA,EAAS,WAAW,KAAK,CAAA;AAAA,UACzB,WAAA,EAAa,qBAAA;AAAA,UACb,SAAA,EAAW,qBAAA;AAAA,UACX,IAAA,EAAK;AAAA,SAAA;AAAA,wBAELA,GAAC,SAAA,EAAA,IAAU;AAAA;AACb,KAEH,CACH,CACF,CACF,CAAA,kBACAA,EAAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAkB,MAAA,EAAgB,SAAA,EAAsB,CACnE,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,OAAO,SAAS,OAAA,CAAQ,EAAE,OAAA,EAAQ,EAAiB;AACjD,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,MAAM,QAAA,EAAiC;AAE3E,IAAA,iBAAA,CAAkB;AAAA,MAChB,kBAAA,EAAoB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC1C,QAAA,WAAA,CAAY,OAAA,GAAU,MAAA;AAAA,MACxB,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,YAAA,EAAc,KAAA,CAAM,WAAA,CAAY,CAAC,iBAAmC,GAAA,KAAgB;AAElF,QAAA,aAAA,CAAc,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,EAAG,EAAE,OAAO,KAAA,EAAM,EAAG,CAAC,MAAA,EAAQ,GAAA,KAAQ;AACjF,UAAA,GAAA,CAAI,KAAA,CAAM,KAAK,GAAG,CAAA;AAClB,UAAA,MAAA,CAAO,QAAQ,eAAA,CAAgB,UAAA;AAC/B,UAAA,MAAA,CAAO,SAAS,eAAA,CAAgB,WAAA;AAChC,UAAA,GAAA,CAAI,UAAU,eAAA,EAAiB,CAAA,EAAG,GAAG,MAAA,CAAO,KAAA,EAAO,OAAO,MAAM,CAAA;AAEhE,UAAA,aAAA,CAAc,EAAE,MAAA,EAAQ,GAAA,EAAK,CAAA;AAAA,QAC/B,CAAC,CAAA;AAGD,QAAA,YAAA,CAAa,QAAQ,eAAA,CAAgB,UAAA;AACrC,QAAA,YAAA,CAAa,SAAS,eAAA,CAAgB,WAAA;AAAA,MACxC,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,iBAAA,EAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AACzC,QAAA,WAAA,CAAY,OAAA,GAAU,OAAA;AAAA,MACxB,CAAA,EAAG,EAAE,CAAA;AAAA,MACL,OAAA,EAAS,KAAA,CAAM,WAAA,CAAY,CAAA,KAAA,KAAS;AAClC,QAAA,WAAA,CAAY,OAAA,GAAU,OAAA;AACtB,QAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,MACf,CAAA,EAAG,EAAE;AAAA,KACN,CAAA;AAED,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,uBAAOA,EAAAA,CAAC,gBAAA,EAAA,EAAiB,UAAA,EAAwB,CAAA;AAAA,IACnD;AAEA,IAAA,uBAAOA,GAAC,KAAA,EAAA,IAAI,CAAA;AAAA,EACd,CAAA;AACF;;ACzWO,MAAM,iCAAiC,MAAqC;AACjF,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,oBAAA;AAAA,IACN,SAAA,GAAY;AAAA,IAAC,CAAA;AAAA,IACb,aAAa,CAAC,EAAE,GAAG,KAAA,EAAO,MAAA,EAAQ,SAAQ,KAAM;AAC9C,MAAA,MAAM,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAEpD,MAAA,OAAO;AAAA,QACL,OAAO,uBAAA,CAAwB;AAAA,UAC7B,CAAA;AAAA,UACA,KAAA;AAAA,UACA,YAAA;AAAA,UACA,MAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA;AAAA,QAED,OAAO,YAAY;AACjB,UAAA,MAAM,IAAA,GAAO,MAAM,IAAI,OAAA,CAAqC,CAAA,OAAA,KAAW;AACrE,YAAA,YAAA,CAAa,MAAA,CAAO,SAAS,WAAW,CAAA;AAAA,UAC1C,CAAC,CAAA;AACD,UAAA,IAAI,IAAA,EAAM;AACR,YAAA,MAAM,OAAO,IAAI,UAAA,CAAW,MAAM,IAAA,CAAK,aAAa,CAAA;AACpD,YAAA,MAAM,UAAA,GAAyB;AAAA,cAC7B,IAAA;AAAA,cACA,QAAA,EAAU,gBAAA;AAAA,cACV,WAAA,EAAa;AAAA;AAAA,aAEf;AACA,YAAA,OAAO,UAAA;AAAA,UACT;AACA,UAAA,OAAO,MAAA;AAAA,QACT;AAAA,OACF;AAAA,IACF;AAAA,GACF;AACF,CAAA;;;;","x_google_ignoreList":[13,14]}
|