{"version":3,"file":"img-bfc3f83462441bf9d192.js","mappings":"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","sources":["webpack:///./assets/javascripts/render/constants.ts","webpack:///./assets/javascripts/render/failbot.ts","webpack:///./assets/javascripts/render/logger.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./assets/javascripts/render/setup-globals.ts","webpack:///./assets/javascripts/render/config.ts","webpack:///./assets/javascripts/render/link-navigator.ts","webpack:///./assets/javascripts/render/status.ts","webpack:///./assets/javascripts/render/utils.ts","webpack:///./node_modules/lodash.unescape/index.js","webpack:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./assets/javascripts/render/mode-switcher.ts","webpack:///./assets/javascripts/render/slider.ts","webpack:///./assets/javascripts/img/lib/diff-image-dimensioner.ts","webpack:///./assets/javascripts/img/lib/utils.js","webpack:///./assets/javascripts/img/lib/image-loader.ts","webpack:///./assets/javascripts/img/lib/diff.ts","webpack:///./assets/javascripts/img/lib/viewer.js","webpack:///./assets/javascripts/img/index.ts"],"sourcesContent":["/**\n * Map of supported render types\n * These correspond to the supported formats outlined in formats.go, and should\n * be kept in sync with those.\n * Certain formats when rendered, for example, the geojson code in this repo\n * handles both geojson and topojson files.\n */\nexport const enum RENDER_FORMATS {\n solid = 'solid',\n geojson = 'geojson',\n image = 'img',\n pdf = 'pdf',\n psd = 'psd',\n mermaid = 'mermaid',\n}\n\n/**\n * Map of supported states for the Status class\n * Enumerates the status message types accepted by the rails app\n */\nexport enum STATUS_TYPES {\n constructor = 'constructor',\n hello = 'hello',\n resize = 'resize',\n loading = 'loading',\n loaded = 'loaded',\n error = 'error',\n fatal = 'error:fatal',\n invalid = 'error:invalid',\n ready = 'ready',\n // these need to match the strings in github/github/app/assets/modules/github/behaviors/render-editor.ts\n markdown = 'code_rendering_service:markdown:get_data',\n getContainerSize = 'code_rendering_service:container:get_size',\n}\n\nexport const enum MESSAGE_RESPONSE_TYPES {\n ack = 'ack',\n branding = 'branding',\n markdown = 'code_rendering_service:data:ready',\n containerSize = 'code_rendering_service:container:size',\n readyAck = 'code_rendering_service:ready:ack',\n}\n\n/**\n * This is set within the github css. However, because we need to manually\n * update the render container's height during pjax nav events, we also need to ensure that\n * every renderable type fires a resize event some height; this is a fallback for types\n * that did not previously report their height. For now, those types are `geojson` and `stl`\n */\nexport const DEFAULT_CONTAINER_HEIGHT = 500\n\nexport const DEFAULT_DOCS_LINK_HOSTNAME = 'https://docs.github.com'\n","// Reports uncaught JS errors to Sentry\nimport {isDefined} from './utils'\nimport {parse} from 'stacktrace-parser'\n\ntype NavigationExtraInfo = Record\ntype NavigationDetails = {\n type: string\n url: string\n state: History['state']\n info: NavigationExtraInfo\n}\n\nconst baseContext = {originalHistoryState: JSON.stringify(window.history.state)}\nconst ERROR_METADATA_KEYS = ['commit', 'repository_id', 'repository_type', 'browser', 'version']\n\n/**\n * Firefox (and perhaps other browsers) will ocassionally return a null\n * value for the error property on an error event.\n * It is unclear why this would happen, but it leads to some confusing error reporting\n * in Sentry\n *\n * @link https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n */\nconst errorFallback = {\n name: 'NullErrorEvent',\n stack: '',\n failbotContext: {},\n}\n\n/**\n * Parses the url of the renderable being displayed for metadata that can help us\n * troubleshoot client JS errors without exposing PII.\n * This data is currently being proxied to failbotg from the go server.\n *\n * @param {Object} locationData object adhering to the Location interface\n * @returns Map of additional error data we want to supply to sentry\n */\nfunction getErrorMetadata(locationData: Location) {\n const {pathname, search} = locationData\n const pathParts = pathname.split('/')\n const [action, format] = pathParts.slice(1)\n const urlParams = new URLSearchParams(search)\n\n const paramsMetadata = Array.from(urlParams.entries()).reduce((memo, pair) => {\n if (ERROR_METADATA_KEYS.includes(pair[0])) {\n memo = {\n ...memo,\n [pair[0]]: pair[1],\n }\n }\n\n return memo\n }, {})\n\n return {...paramsMetadata, format, action}\n}\n\n/**\n * Many errors are emitted from chrome extensions, e.g. users\n * with TexAllTheThings, which attempts to load a version of mathjax.\n * That extension doesn't handle load failures and results in errors\n * being reported to us that we:\n * * cannot control\n * * do not affect the rendering of the notebook\n * So, we ignore them when detected.\n * @param {string} filename\n * @returns boolean\n */\nfunction isChromeExtension(filename = '') {\n return filename.includes('chrome-extension://')\n}\n\nconst loadTime = new Date().getTime()\n\n// Flag when page is unloaded\nlet unloaded = false\n\nfunction flagUnloaded() {\n unloaded = true\n}\n\nfunction flagLoaded() {\n unloaded = false\n}\n\nfunction reportErrors(event: ErrorEvent) {\n // Do this first so we can skip all the extra, unnecessary operations\n if (!reportable(event) && event.type !== 'submit') {\n return\n }\n const {message, filename, lineno, error} = event\n const safeError = error || errorFallback\n const {stack, name, failbotContext} = safeError\n const preprocessedStack = parse(stack)\n const stacktrace = preprocessedStack\n .map(frame => ({\n filename: frame.file || '',\n function: String(frame.methodName),\n lineno: (frame.lineNumber || 0).toString(),\n colno: (frame.column || 0).toString(),\n }))\n .reverse()\n const exceptionDetail = [\n {\n type: name,\n value: message,\n stacktrace,\n },\n ]\n\n const context = {\n message,\n filename,\n lineno,\n url: window.location.href,\n readyState: document.readyState,\n referrer: document.referrer,\n stack: safeError.stack,\n historyState: JSON.stringify(window.history.state),\n timeSinceLoad: Math.round(new Date().getTime() - loadTime),\n extensionScripts: JSON.stringify(extensionScripts().sort()),\n navigations: JSON.stringify(getNavigations()),\n exceptionDetail,\n platform: 'javascript',\n ...getErrorMetadata(window.location),\n ...failbotContext,\n ...baseContext,\n }\n\n // Attach any logging info we have\n context.logging = (() => {\n try {\n const debugMessages = (isDefined(window.debug) ? window.debug.buffer() : undefined) || []\n return JSON.stringify(debugMessages)\n } catch {\n return\n }\n })()\n\n // Report errors to app\n const viewscreenUrl = document.body.getAttribute('data-render-url')\n\n fetch(`${viewscreenUrl}/_errors`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json; charset=utf-8'},\n body: JSON.stringify(context),\n })\n}\n\nconst reportable = (function () {\n let errorsReported = 0\n\n return function (event: ErrorEvent) {\n const {lineno, error, filename} = event\n const errorStack = error ? error.stack : undefined\n // Only report errors if we can get backtraces & line numbers\n if (!errorStack || !lineno) {\n return false\n }\n\n // Ignore errors raised when browsers cancel loading resources after\n // links are clicked or the page is stopped.\n if (unloaded) {\n return false\n }\n\n if (isChromeExtension(filename)) {\n return false\n }\n\n // Report a max of 10 errors per user per page load. This way if something is\n // generating errors continuously, we won't flood Haystack with duplicates.\n if (errorsReported >= 10) {\n return false\n }\n errorsReported++\n\n return true\n }\n})()\n\nconst extensionScripts = () =>\n (() => {\n const result = []\n const scripts = Array.from(document.querySelectorAll('script'))\n for (const script of scripts) {\n if (/^(?:chrome-extension|file):/.test(script.src)) {\n result.push(script.src)\n }\n }\n return result\n })()\n\n// Add the just-completed navigation to session storage to be included in\n// needles for debugging.\nfunction pushNavigation(loadType: string, info: NavigationExtraInfo = {}) {\n const navigations = getNavigations()\n navigations.push({type: loadType, url: window.location.href, state: window.history.state, info})\n return setNavigations(navigations)\n}\n\nconst NAVIGATIONS_KEY = 'navigations'\n\n// Retrieve all past navigations from the current session.\nfunction getNavigations() {\n const json = (() => {\n try {\n return sessionStorage.getItem(NAVIGATIONS_KEY)\n } catch {\n return\n }\n })()\n if (json) {\n return JSON.parse(json)\n } else {\n return []\n }\n}\n\n// Store the current session's navigations.\nfunction setNavigations(navigations: NavigationDetails[]) {\n try {\n return sessionStorage.setItem(NAVIGATIONS_KEY, JSON.stringify(navigations))\n } catch {\n return\n }\n}\n\n// Record all navigations in this session for inclusion in needles.\npushNavigation('load')\n\nwindow.addEventListener('hashchange', event =>\n pushNavigation('hashchange', {oldURL: event.oldURL, newURL: event.newURL}),\n)\nwindow.addEventListener('popstate', event => pushNavigation('popstate', {eventState: event.state}))\nwindow.addEventListener('pageshow', flagLoaded)\nwindow.addEventListener('pagehide', flagUnloaded)\nwindow.addEventListener('error', reportErrors)\n\ndocument.addEventListener('pjax:success', () => pushNavigation('pjax:success'))\ndocument.addEventListener('pjax:popstate', (event: PJaxPopStateEvent) =>\n pushNavigation('pjax:popstate', {pjaxDirection: event.direction, pjaxState: event.state}),\n)\n\nexport default reportErrors\n","type LogMessage = {\n args: any[]\n time: number\n}\n\nexport type LoggerFn = (message?: any, ...data: any[]) => void\n\nfunction logMessage(...messageArgs: any[]): LogMessage {\n return {\n args: messageArgs,\n time: Date.now(),\n }\n}\n\nclass Logger {\n private _loggerFn: LoggerFn\n public buffer: LogMessage[] = []\n private bufferSize = 50\n private quiet = false\n\n constructor(options = {loggerFn: window.console.log, quiet: false}) {\n this._loggerFn = options.loggerFn\n this.quiet = options.quiet\n }\n\n debug(...args: any[]) {\n this.storeMessage(...args)\n\n if (!this.quiet) {\n this._loggerFn(...args)\n }\n }\n\n /**\n * Store the most recent log message at the end of the message buffer.\n * Resizes the buffer to bufferSize, removing older messages.\n * All operations performed on copies of the buffer array\n * @param {*} Any\n */\n storeMessage(...args: any[]) {\n const bufCopy = this.buffer\n bufCopy.push(logMessage(...args))\n const nextBuffer = bufCopy.slice(-this.bufferSize)\n\n this.buffer = nextBuffer\n }\n\n /**\n * Helper to replay the most recent numMessages in the log buffer\n * @param {number} numMessages? The number of debug / log messages to replay. Defaults to 1\n * @returns the total number of messages in the buffer\n */\n replayMessages(numMessages = 1) {\n const messagesToRead = this.buffer.slice(-numMessages)\n for (const message of messagesToRead) {\n this._loggerFn(`${new Date(message.time)}: `, ...message.args)\n }\n\n return this.buffer.length\n }\n}\n\nexport default Logger\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import Logger from './logger'\nimport config from './config'\n\nwindow.Render = window.Render || {}\n\n// Try to call `console.log`, if possible, in the way\n// most likely to invoke pretty-printing\nfunction safeLog(...args: Parameters) {\n if (!('log' in window.console)) {\n return\n }\n\n return window.console.log(...args)\n}\n\nconst logger = new Logger({\n loggerFn: safeLog,\n quiet: config.quiet,\n})\n\nexport {logger}\n\n// @ts-expect-error TS2322 `logger.debug` doesn't fully satisfy the type of\n// `window.debug`, seeing as we need `.buffer` to exist as a static property\n// as well. That despite that being added later here, ts cannot guarantee that\n// this line is safe if it relied on other lines. Type narrowing is a newish\n// concept to typescript, so maybe one day we'll get it — but not today. So lets\n// expect an error than ignore it.\nwindow.debug = logger.debug.bind(logger)\nwindow.debug.buffer = () => logger.buffer\n","export default {\n // Controls whether debug messages display in the console\n quiet: IS_QUIET_MODE,\n}\n","import {assertElement, invariant} from './utils'\n\n/**\n * LinkNavigator handles linking to relative and absolute URLs from a rich file.\n * Mostly used in geojson pins or within mermaid charts\n *\n * @param hasParent boolean Is this class instantiated from within an iframe?\n */\nclass LinkNavigator {\n private hasParent!: boolean\n\n constructor({hasParent = false}) {\n this.hasParent = hasParent\n\n document.addEventListener('click', (event: MouseEvent) => {\n const target = event.target\n invariant(assertElement(target), `Expected click target to be an instance of Element. Got ${target} instead.`)\n\n if (this.isLinkableNode(target)) {\n this.handleLink(event)\n }\n })\n }\n\n private isLinkableNode = (node: Element) => {\n return node.matches('a') || node.matches('svg')\n }\n\n // Handle the clicking of a link in the document in the context-appropriate way\n public handleLink = (e: MouseEvent) => {\n const target = e.target as HTMLAnchorElement | SVGElement\n const href = target.getAttribute('href') || target.getAttribute('xlink:href') || ''\n\n // Don't bother processing nothing\n if (!href.length) {\n return\n }\n // anchors can just pass through\n if (href.match(/^#/)) {\n return true\n }\n\n e.preventDefault()\n try {\n return this.navigateTo(href)\n } catch (error) {\n window.debug(`Navigation to '${href}' failed:`, error)\n const failClass = 'failed'\n const failInterval = 500\n\n target.classList.add(failClass)\n return setTimeout(() => target.classList.remove(failClass), failInterval)\n }\n }\n\n // Navigate to `href` either by asking the parent for the move, or by\n // performing the navigation myself.\n public navigateTo = (href: string) => {\n if (href.match(/^https?:\\/\\//) || href.match(/^\\/\\//)) {\n this.navigateDirect(href)\n } else {\n this.navigateRelative(href)\n }\n }\n\n public navigateRelative = (relHref: string) => {\n const rootUrl = document.body.getAttribute('data-github-hostname')\n\n // Using the URL constructor to build a full URL to take advantage of the built-in sanitization.\n const baseUrl = new URL(`https://${rootUrl}`)\n const prefixedRelHref = relHref.startsWith('/') ? relHref : `/${relHref}`\n const fullUrl = new URL(prefixedRelHref, baseUrl)\n const protocolRelativeURL = fullUrl.toString().replace(/^https:/, '')\n return this.navigateDirect(protocolRelativeURL)\n }\n\n public navigateDirect = (href: string) => {\n if (this.hasParent) {\n window.top!.location.href = href\n } else {\n window.location.href = href\n }\n }\n}\n\nexport default LinkNavigator\n","import unescape from 'lodash.unescape'\nimport type {TopoJSON} from 'topojson-specification'\nimport {MESSAGE_RESPONSE_TYPES, RENDER_FORMATS, STATUS_TYPES} from './constants'\nimport {isDefined, isSameOrigin} from './utils'\nimport LinkNavigator from './link-navigator'\nimport reportErrors from './failbot'\n\nclass InvalidProtocolError extends Error {\n constructor() {\n super('The client:// protocol is invalid.')\n }\n}\n\nclass FailedError extends Error {\n constructor() {\n super('Failed to load content')\n this.message = 'Failed to load content'\n }\n}\n\nwindow.Render = window.Render || {}\n\nconst isClientUrl = (url: string) => /^client:\\/\\//i.exec(url)\n\ntype StatusOptions = {\n allowLinks?: boolean\n initialMessage?: STATUS_TYPES\n}\n\ntype RenderStatusMessage = {\n sent: boolean\n status: STATUS_TYPES\n when: number\n payload: Record | null\n}\n\ntype RenderableLoaderCallbacks = {\n before: (xhr?: XMLHttpRequest, settings?: Record) => void\n success: (data: Data, response: Response) => void\n error: (error: E, xhr: Response) => void\n}\n\ntype RenderableLoaderOptions = {\n attempts?: number\n timeout?: number\n json?: boolean\n}\n\ntype DataResponseTypes = string | ArrayBuffer | TopoJSON | JSON | undefined\n\nconst renderableLoaderDefaults = {\n setStatus: true,\n attempts: 3,\n timeout: 30_000,\n json: true,\n}\n\nconst statusOptionDefaults = {\n allowLinks: false,\n initialMessage: STATUS_TYPES.hello,\n}\n\n/**\n * Responsible for handling communication between the render DOM and it's parent iframe\n *\n * @param format Valid renderable file format @see RENDER_FORMATS\n * @param opts.allowLinks? Should this class allow redirects from link within the render area?\n * @param opts.initial? The initial status message to be communicated\n */\nclass Status {\n acked = false\n format: RENDER_FORMATS\n githubEnv: string | null\n githubHostname: string\n identity: string\n initialStatusTimeout: NodeJS.Timeout | null\n messages: RenderStatusMessage[]\n\n constructor(format: RENDER_FORMATS, opts: StatusOptions = {}) {\n const options = {...statusOptionDefaults, ...opts}\n\n this.githubHostname = document.body.getAttribute('data-github-hostname') ?? 'github.localhost'\n this.githubEnv = document.body.getAttribute('data-deploy-env') ?? 'development'\n this.format = format\n this.initialStatusTimeout = null\n\n if (options.allowLinks) {\n new LinkNavigator({hasParent: this.haveParent()})\n }\n\n this.identity = window.location.hash.substring(1)\n\n this.messages = [\n {status: STATUS_TYPES.constructor, payload: null, when: Date.now(), sent: true}, // Debugging ctor call timing\n ]\n\n window.addEventListener('message', this.handleMessage)\n\n if (this.haveParent()) {\n this.sendInitial(options.initialMessage, 10, 1000)\n }\n }\n\n /**\n * This function is responsible for communicating the initial status of the renderer back to the parent frame.\n * Necessary as the render JS functionality is embedded in an iframe. This function will attempt to\n * contact its parent frame until it receives a response or exhausts the pool of attempts.\n */\n sendInitial = (initial: STATUS_TYPES, remaining = 10, interval = 1000) => {\n if (this.initialStatusTimeout && (this.acked || remaining < 1)) {\n clearTimeout(this.initialStatusTimeout)\n return\n }\n\n this.initialStatusTimeout = setTimeout(() => this.sendInitial(initial, remaining - 1, interval), interval)\n window.debug(\n `Sending hello. Will try again ${remaining} more times in ${interval / 1000} second intervals until ack'd`,\n )\n return this.set(initial)\n }\n\n // Fired when content is loaded and ready to be displayed.\n #onSuccess = () => {\n this.set(STATUS_TYPES.loaded)\n }\n\n // Fires when requested content fails to load.\n #onError = () => {\n this.set(STATUS_TYPES.error)\n }\n\n #onBeforeSend() {\n return void 0\n }\n\n //# Raw status access\n // Handles whether or not to post a message to the parent window\n // TODO: Rename? The name set is incredibly generic and doesn't really encapsulate\n // what this method does. It also does two things, adding a message to the message list\n // and posting that message?\n set = (status: STATUS_TYPES, payload = {}) => {\n const sent = this.alreadySentStatus(status)\n\n if (isDefined(sent) && ![STATUS_TYPES.hello, STATUS_TYPES.resize].includes(status)) {\n const ago = Math.abs(Date.now() - sent.when)\n return window.debug(`Already set status '${status}' ${ago}ms ago`)\n }\n\n const message = {status, payload, when: Date.now(), sent: false}\n // Don't push duplicate hello messages into our message cache.\n // However, it seems that we do still send duplicate `hello` messages to dotcom.\n if (!sent || status !== STATUS_TYPES.hello) {\n this.messages.push(message)\n }\n\n if (status === STATUS_TYPES.ready) {\n this.onReady()\n }\n\n if (!this.requireAck(status)) {\n message.sent = true\n\n return this.post({\n type: 'render',\n body: status,\n payload,\n })\n }\n }\n\n alreadySentStatus(status: STATUS_TYPES) {\n const found = this.messages.filter(e => e.status === status)\n return found[0]\n }\n\n async #prepareFetchedData(result: Response, options: RenderableLoaderOptions): Promise {\n const contentType = result.headers.get('content-type')\n\n /**\n * using vanilla XMLHTTPRequest / jquery, we were able to force the response\n * header's content-type to a specific value. This was needed for stl files,\n * since they may be a binary file OR ASCII text.\n *\n * We can't force the header with `fetch`, so we need to check for a header that\n * indicates a response with an array buffer data type.\n *\n * This works in all major browsers for CORs requests.\n */\n if (contentType === 'application/octet-stream') {\n return await result.arrayBuffer()\n }\n\n if (!options.json) {\n return await result.text()\n }\n\n try {\n return await result.json()\n } catch (error) {\n // Apparently Mobile Safari requires this, though it is unclear why.\n // Google searches didn't yield fruit\n window.debug(`Error while trying to parse initial JSON: ${error}`)\n window.debug('Attempting to parse htmlDecoded JSON')\n try {\n const maybeJson = await result.text()\n return JSON.parse(unescape(maybeJson))\n } catch {\n this.set(STATUS_TYPES.fatal)\n this.reportStatusError(new FailedError())\n }\n }\n\n return\n }\n\n async load(\n url: string,\n opts: RenderableLoaderOptions & Partial = renderableLoaderDefaults,\n ) {\n if (isClientUrl(url)) {\n this.reportStatusError(new InvalidProtocolError())\n }\n\n this.set(STATUS_TYPES.loading)\n\n const finalOptions = {...renderableLoaderDefaults, ...opts} as RenderableLoaderOptions & RenderableLoaderCallbacks\n finalOptions.attempts = finalOptions.attempts ?? this.clientTimeoutAttempts()\n finalOptions.before = finalOptions.before ?? this.#onBeforeSend\n finalOptions.success = finalOptions.success ?? this.#onSuccess\n finalOptions.error = finalOptions.error ?? this.#onError\n\n finalOptions.before?.()\n\n const requestController = new AbortController()\n const abortTimeoutId = setTimeout(() => {\n requestController.abort()\n }, finalOptions.timeout)\n\n const settings = {\n method: 'GET',\n signal: requestController.signal,\n }\n\n try {\n const response = await fetch(url, settings)\n\n if (response.status < 400) {\n const data = await this.#prepareFetchedData(response, finalOptions)\n this.set(STATUS_TYPES.loaded)\n finalOptions.success(data, response)\n\n return\n }\n } catch {\n window.debug(\"Couldn't load\")\n } finally {\n clearTimeout(abortTimeoutId)\n }\n\n finalOptions.attempts -= 1\n if (finalOptions.attempts > 0) {\n window.debug(`Going to retry up to ${finalOptions.attempts} more times!`)\n setTimeout(() => {\n this.load(url, finalOptions)\n }, 1000)\n } else {\n this.set(STATUS_TYPES.error)\n this.submitGiveup()\n const error = new FailedError()\n finalOptions.error(error, new Response(null, {status: 500}))\n this.reportStatusError(error)\n }\n }\n\n post(msg: {identity?: string; type: string; body: STATUS_TYPES; payload?: Record | null}) {\n msg.identity = msg.identity ?? this.identity\n\n if (!this.haveParent()) {\n window.debug('WARNING: No window.parent: postMessage:', msg)\n return\n }\n\n const targetOrigin = '*'\n\n window.debug('Render Status:', msg)\n window.parent.postMessage(msg, targetOrigin)\n }\n\n // Called when a status of \"ready\" is set for the first time\n onReady = () => {\n const localTiming: Partial> = {}\n for (const message of this.messages) {\n localTiming[message.status] = message.when\n }\n\n return this.submitTiming('local', localTiming)\n }\n\n onAck = () => {\n window.debug(\"Ack'd, sending saved messages\")\n this.acked = true\n for (const msg of this.messages) {\n if (msg.sent) {\n continue\n }\n\n msg.sent = true\n this.post({\n type: 'render',\n body: msg.status,\n payload: msg.payload,\n })\n }\n }\n\n /**\n * Determines whether the render iframe has sent its initial status message to the\n * parent window\n */\n requireAck = (status = '') => {\n return !this.acked && status !== 'hello'\n }\n\n submitTiming = (origin: string, timing: Record) => {\n window.debug(`Got ${origin} timing: ${this.format} => ${JSON.stringify(timing)}`)\n const baseRenderUrl = document.body.getAttribute('data-render-url')\n const didQueue = navigator.sendBeacon?.(\n `${baseRenderUrl}/stats/timing/${origin}/${this.format}/`,\n JSON.stringify(timing),\n )\n\n if (!didQueue) {\n window.debug('Failed to send remote timing info')\n } else {\n window.debug(`Sent ${origin} timing info:`, timing)\n }\n }\n\n submitGiveup = () => {\n const baseRenderUrl = document.body.getAttribute('data-render-url')\n\n const didQueue = navigator.sendBeacon?.(`${baseRenderUrl}/stats/${this.format}/gave_up`)\n\n if (!didQueue) {\n window.debug('Failed to send give up info')\n } else {\n window.debug('Sent give up status info.')\n }\n }\n\n handleCmd = (cmd: MESSAGE_RESPONSE_TYPES, arg: Record | boolean) => {\n if (cmd === MESSAGE_RESPONSE_TYPES.branding) {\n document.body.classList.remove('is-embedded')\n\n return\n }\n\n const renderableContent = arg as Record\n\n switch (cmd) {\n case MESSAGE_RESPONSE_TYPES.ack:\n if (this.requireAck()) {\n this.onAck()\n }\n\n break\n // this has to match the string in github/github/app/assets/modules/github/behaviors/render-editor.ts\n case MESSAGE_RESPONSE_TYPES.markdown:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.markdown, {\n data: renderableContent.data,\n width: renderableContent.width,\n })\n break\n case MESSAGE_RESPONSE_TYPES.containerSize:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.containerSize, {width: renderableContent.width})\n break\n case MESSAGE_RESPONSE_TYPES.readyAck:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.readyAck)\n break\n default:\n window.debug(`Invalid command '${cmd}':`, arg)\n }\n }\n\n handleMessage = (event: MessageEvent) => {\n const {data, origin} = event\n if (!data || !origin || origin === 'null') {\n return\n }\n\n let originHostname = ''\n try {\n originHostname = new URL(origin).host\n } catch (e) {\n window.debug('Could not construct URL from origin', origin)\n if (e instanceof Error) this.reportStatusError(e)\n }\n\n if (\n !isSameOrigin(this.githubHostname, originHostname) &&\n // special case: allow local IP address for local development\n !(this.githubHostname === 'github.localhost' && isSameOrigin('127.0.0.1', originHostname))\n ) {\n return\n }\n\n const {type, identity, body} = (() => {\n try {\n return JSON.parse(data)\n } catch {\n return data\n }\n })()\n if (!type || !body) {\n return\n }\n if (identity && identity !== this.identity) {\n return window.debug(`Message has identity '${identity}', expected '${this.identity}'.`)\n }\n\n switch (type) {\n case 'render:timing': {\n const {timing, format} = body\n if (!timing || !format) {\n return window.debug('Malformed timing message:', body)\n }\n if (format !== this.format) {\n return window.debug(`Format mismatch: got '${format}' expected '${this.format}'`)\n }\n return this.submitTiming('remote', timing)\n }\n case 'render:cmd': {\n const {cmd} = body\n const arg = body[cmd]\n if (isDefined(cmd) && isDefined(arg)) {\n return this.handleCmd(cmd, arg)\n }\n break\n }\n default:\n return window.debug(`Unknown message type: ${type}`)\n }\n }\n\n // Is the viewscreen renderer running inside an iframe?\n haveParent = () => {\n return window.parent !== window\n }\n\n clientTimeoutAttempts() {\n return Number(document.body.getAttribute('data-client-timeout-attempts'))\n }\n\n trigger(target: Document | HTMLElement, name: string, data = {}) {\n const event = new CustomEvent(name, {detail: {...data}})\n target.dispatchEvent(event)\n }\n\n // Report a failed status error to Sentry\n reportStatusError(error: Error) {\n reportErrors(\n new ErrorEvent('error', {\n error,\n filename: 'status.ts',\n message: error.message,\n }),\n )\n }\n}\n\nexport default Status\n","import {DEFAULT_DOCS_LINK_HOSTNAME} from './constants'\n\n/**\n * Determine if a value is nullish (undefined or null)\n * @param {*} value The value to check\n * @returns boolean\n */\nexport function isDefined(value?: T): value is NonNullable {\n return value !== null && value !== undefined && typeof value !== 'undefined'\n}\n\nexport function onDocumentReady(initializer: () => void) {\n if (document.readyState === 'complete') {\n initializer()\n } else {\n document.addEventListener('DOMContentLoaded', initializer)\n }\n}\n\nexport function decodeHTML(html: string) {\n // DOMParser won't run javascript and just returns text,\n // so this should be safe.\n const doc = new DOMParser().parseFromString(html, 'text/html')\n return doc.documentElement.textContent ?? ''\n}\n\nclass InvariantViolationError extends Error {}\n\nexport function invariant(condition: any, message?: string): asserts condition {\n if (condition) return\n\n throw new InvariantViolationError(message ?? 'Invariant violation')\n}\n\nexport const assertElement = (node: any): node is Element => node instanceof Element\n\nexport const assertHTMLElement = (node: Element | ParentNode | HTMLElement | null): node is HTMLElement =>\n node instanceof HTMLElement\n\nexport const assertSVGElement = (node: SVGElement | SVGSVGElement | null): node is SVGElement =>\n node instanceof SVGElement\n\nexport const getGitHubDocsHostname = () =>\n document.body.getAttribute('data-github-docs-hostname') || DEFAULT_DOCS_LINK_HOSTNAME\n\nconst getDomainName = (hostname: string) => hostname.split('.').slice(-2).join('.').toLowerCase()\n\n/**\n * Determine if the source domain has the same origin as the host domain. To match, the source domain must contain\n * have the same domain name (ignoring subdomains) as the host domain.\n */\nexport const isSameOrigin = (targetHostname: string, sourceHostname: string) =>\n getDomainName(targetHostname) === getDomainName(sourceHostname)\n\n/** Adds `target=\"_parent\"` (if not already set to something else) to all links in this node. */\nexport const openLinksInParent = (node: Element) => {\n for (const link of node.querySelectorAll('a'))\n if (!link.hasAttribute('_target')) link.setAttribute('target', '_parent')\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match HTML entities and HTML characters. */\nvar reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source);\n\n/** Used to map HTML entities to characters. */\nvar htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n '`': '`'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\nvar unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * The inverse of `_.escape`; this method converts the HTML entities\n * `&`, `<`, `>`, `"`, `'`, and ``` in `string` to\n * their corresponding characters.\n *\n * **Note:** No other HTML entities are unescaped. To unescape additional\n * HTML entities use a third-party library like [_he_](https://mths.be/he).\n *\n * @static\n * @memberOf _\n * @since 0.6.0\n * @category String\n * @param {string} [string=''] The string to unescape.\n * @returns {string} Returns the unescaped string.\n * @example\n *\n * _.unescape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction unescape(string) {\n string = toString(string);\n return (string && reHasEscapedHtml.test(string))\n ? string.replace(reEscapedHtml, unescapeHtmlChar)\n : string;\n}\n\nmodule.exports = unescape;\n","var UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexport { parse };\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","class ModeSwitcher {\n constructor(\n callback: (mode: ModeType) => void,\n identifier = 'fieldset.js-view-modes',\n childIdentifier = '.js-view-mode-item input',\n ) {\n const menu = document.querySelector(identifier)\n\n if (!menu) {\n return\n }\n\n const options = menu.querySelectorAll(childIdentifier)\n\n for (const option of options)\n option.addEventListener('change', () => {\n for (const checked of menu.querySelectorAll('.selected')) checked.classList.remove('selected')\n option.parentElement?.classList.add('selected')\n callback(option.value as ModeType)\n })\n }\n}\n\nexport default ModeSwitcher\n","type Options = {\n /**\n * @default 50\n */\n percentage?: number\n\n /**\n * @default '.js-dragger'\n */\n identifier?: string\n}\n\ntype Callbacks = {\n slide?(percent: number): void\n mouseDown?(): void\n mouseUp?(): void\n}\n\nclass Slider {\n private dragger!: HTMLElement\n private track!: HTMLElement\n private container!: HTMLElement\n private dragging: boolean\n\n private percentage!: number\n\n constructor(\n private callbacks: Callbacks,\n options: Options,\n ) {\n this.dragger = document.querySelector(options.identifier || '.js-dragger')!\n this.track = this.dragger.parentNode! as HTMLElement\n this.container = this.track.parentNode! as HTMLElement\n this.dragging = false\n\n this.percentage = options.percentage || 50\n this.bindControls()\n }\n\n #handleMouseMove(event: MouseEvent) {\n event.preventDefault()\n\n if (!this.dragging) {\n return\n }\n\n const trackBbox = this.track.getBoundingClientRect()\n const draggerBbox = this.dragger.getBoundingClientRect()\n const ownerWindow = this.track.ownerDocument.defaultView!\n const min = 0\n const max = trackBbox.width - draggerBbox.width\n\n let left = event.clientX! - (trackBbox.left + ownerWindow.scrollX)\n\n if (left < min) {\n left = min\n }\n if (left > max) {\n left = max\n }\n this.dragger.style.left = `${left}px`\n\n this.percentage = (left / max) * 100\n window.debug(`Slider at ${this.percentage}%`)\n\n this.callbacks.slide?.(this.percentage)\n }\n\n #handleMouseUp() {\n if (!this.dragging) {\n return\n }\n\n document.removeEventListener('mousemove', this.#handleMouseMove)\n\n this.dragging = false\n document.body.style.cursor = 'auto'\n\n return this.callbacks.mouseUp?.()\n }\n\n public bindControls = () => {\n this.dragger.addEventListener('mousedown', mousedownEvent => {\n mousedownEvent.preventDefault()\n\n this.dragging = true\n document.body.style.cursor = 'pointer'\n this.callbacks.mouseDown?.()\n\n document.addEventListener('mousemove', this.#handleMouseMove.bind(this))\n document.addEventListener('mouseup', this.#handleMouseUp.bind(this), {once: true})\n })\n }\n\n public value = () => {\n return this.percentage\n }\n\n public setDragger = () => {\n const trackBbox = this.track.getBoundingClientRect()\n const draggerBbox = this.dragger.getBoundingClientRect()\n const max = trackBbox.width - draggerBbox.width\n const left = (this.percentage / 100) * max\n\n this.dragger.style.left = `${left}px`\n }\n\n public show = () => {\n this.container.style.display = 'block'\n this.setDragger()\n }\n\n public hide = () => {\n this.container.style.display = 'none'\n }\n}\n\nexport default Slider\n","import {assertHTMLElement, invariant} from '../../render/utils'\n\ntype ImageBox = {height: number; width: number}\ntype ScalingFn = {\n (imgBox: ImageBox): number\n}\n\n/**\n * The ImageDiffDimensioner resizes image nodes and their parent nodes to the largest\n * height and width of the two images being diffed.\n * Then, we determine and apply a scaling factor produced from the scalingFn argument.\n *\n * The Dimensioner returns references to the image and parent nodes, their dimensions, and\n * image box sizing.\n */\nexport const ImageDiffDimensioner = (added: HTMLImageElement, deleted: HTMLImageElement, scalingFn: ScalingFn) => {\n const getDimensions = (element: HTMLImageElement) => {\n return {\n height: element.clientHeight || 0,\n width: element.clientWidth || 0,\n }\n }\n invariant(assertHTMLElement(added))\n invariant(assertHTMLElement(deleted))\n\n const addedImageFrame = added.parentNode\n const deletedImageFrame = deleted.parentNode\n\n invariant(assertHTMLElement(addedImageFrame))\n invariant(assertHTMLElement(deletedImageFrame))\n\n const addedDimensions = getDimensions(added)\n const deletedDimensions = getDimensions(deleted)\n\n const imageBox = {\n height: Math.max(deletedDimensions.height, addedDimensions.height),\n width: Math.max(deletedDimensions.width, addedDimensions.width),\n }\n const imageMargins = {\n addedHorizMargin: Math.floor(imageBox.width - addedDimensions.width) / 2,\n addedVertMargin: Math.floor(imageBox.height - addedDimensions.height) / 2,\n deletedHorizMargin: Math.floor(imageBox.width - deletedDimensions.width) / 2,\n deletedVertMargin: Math.floor(imageBox.height - deletedDimensions.height) / 2,\n }\n\n const scale = scalingFn(imageBox)\n\n added.style.width = `${addedDimensions.width * scale}px`\n added.style.height = `${addedDimensions.height * scale}px`\n\n deleted.style.width = `${deletedDimensions.width * scale}px`\n deleted.style.height = `${deletedDimensions.height * scale}px`\n\n addedImageFrame.setAttribute(\n 'style',\n `margin: ${imageMargins.addedVertMargin * scale}px ${imageMargins.addedHorizMargin * scale}px;\n width: ${addedDimensions.width * scale + 2}px;\n height: ${addedDimensions.height * scale + 2}px;`,\n )\n\n deletedImageFrame.setAttribute(\n 'style',\n `margin: ${imageMargins.deletedVertMargin * scale}px ${imageMargins.deletedHorizMargin * scale}px;\n width: ${deletedDimensions.width * scale + 2}px;\n height: ${deletedDimensions.height * scale + 2}px;`,\n )\n\n return {\n added: addedDimensions,\n deleted: deletedDimensions,\n imageMargins,\n scale,\n imageBox,\n addedImage: added,\n deletedImage: deleted,\n addedParent: addedImageFrame,\n deletedParent: deletedImageFrame,\n }\n}\n","// Just a single number here, since we default to a square image\nconst DEFAULT_SIZE = 300\n\n// loadImage creates a new image object and attempts to load\n// the supplied source url. It returns a promise that resolves the\n// image object.\nfunction loadImage(url = '') {\n const image = new Image()\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image)\n }\n\n image.onerror = e => {\n reject(e)\n }\n\n image.src = url\n })\n}\n\n// loadSvg attempts to load an svg image, and resizes it if necessary, returning the image object.\nasync function loadSvg(url = '', data) {\n const image = await loadImage(url)\n const dimensions = svgDefaultSizeIfUndefinedData(data, image)\n\n if (dimensions) {\n image.height = dimensions.height\n image.width = dimensions.width\n }\n\n return image\n}\n\n// isSvgRequest determines if an HTTP request contains an SVG content-type header.\nfunction isSvgRequest(xhr) {\n return xhr.headers.get('content-type') === 'image/svg+xml'\n}\n\n/**\n * For our purposes, we consider an SVG to be 'valid' if it has\n * a valid xmlns namespace attribute.\n */\nfunction isValidSvg(svg) {\n const xmlnsAddress = svg.getAttribute('xmlns')\n const hasNameSpace = Boolean(xmlnsAddress)\n\n if (!hasNameSpace) {\n return false\n }\n\n if (new URL(xmlnsAddress).protocol === 'http:') return true\n\n return false\n}\n\n/**\n * getSvgUrl returns either the srcUrl if the svg is valid, or a base64 encoded\n * url of the SVG contents.\n */\nfunction getSvgUrl(svg, srcUrl) {\n if (isValidSvg(svg)) {\n return srcUrl\n }\n\n // svgs without a valid namespace will fail to load correctly\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg')\n\n /**\n * This is the most reliable way to stringify the svg element\n * Calling .outerHTML on the node works in Chrome, but not in Firefox.\n * Likewise, serializing the node using an XMLSerializer object strips\n * the `xmlns` namespace attribute in Firefox.\n */\n const temp = document.createElement('p')\n temp.appendChild(svg)\n\n const svg64 = encodeURIComponent(temp.innerHTML)\n const b64Header = 'data:image/svg+xml;charset=utf-8,'\n\n return `${b64Header}${svg64}`\n}\n\nfunction svgDefaults() {\n // Still haven't given any default height & width? Lets give them arbitrary\n // values since SVGs are scalable and they gave us nothing to work with\n window.debug('Returning arbitrary SVG dimensions')\n return {height: DEFAULT_SIZE, width: DEFAULT_SIZE}\n}\n\nfunction svgDefaultSizeIfUndefinedData(svgDoc, image) {\n // When a document has no children, we know that the SVG didn't have a valid\n // namespace and was loaded from a base64 url. Therefore, we should either return\n // the browser-computed height and width of the image, or else the image size defaults.\n if (!svgDoc.children.length) {\n // Firefox likes to return huge image sizes that make no sense, so if its huge,\n // lets just ignore it and use another means of guessing the SVG size.\n const firefoxBuggySize = Math.pow(2, 32) - 1\n if (image.height > 1 && image.width > 1 && image.height < firefoxBuggySize && image.width < firefoxBuggySize) {\n window.debug(`Returning browser based SVG dimensions: ${image.height} by ${image.width}`)\n return {height: image.height, width: image.width}\n }\n\n return svgDefaults()\n }\n\n // SVGs may have a root element, if they are a document, or they may be an actual\n // instance of an svg node. Both of these conform to the Node interface.\n const maybeSvg = svgDoc?.rootElement ?? svgDoc\n\n // If we don't have a valid node, fall back to an empty object so checks below don't fail.\n const svg = maybeSvg instanceof Node ? maybeSvg : {}\n\n // If the SVG has a defined height & width that isn't a % we don't need to do\n // anything. Percentages can be explicitly passed in or computed when\n // specifying a viewBox\n const height = svg?.height?.baseVal\n const width = svg?.width?.baseVal\n\n if (\n height?.unitType !== SVGLength.SVG_LENGTHTYPE_PERCENTAGE &&\n width.unitType !== SVGLength.SVG_LENGTHTYPE_PERCENTAGE\n ) {\n return\n }\n\n // If the browser doesn't help us, lets try to determine the aspect ratio from\n // the viewbox and use an arbitrary height of 300px\n if ('hasAttribute' in svg && svg.hasAttribute('viewBox')) {\n const vb = svg.viewBox.baseVal\n const aspectRatio = vb.width / vb.height\n window.debug(`Returning viewbox based SVG dimensions with aspectRatio ${aspectRatio}`)\n return {height: DEFAULT_SIZE, width: DEFAULT_SIZE * aspectRatio}\n }\n\n return svgDefaults()\n}\n\nexport {svgDefaultSizeIfUndefinedData, getSvgUrl, isSvgRequest, loadImage, loadSvg}\n","import {STATUS_TYPES} from '../../render/constants'\nimport type Status from '../../render/status'\nimport {isSvgRequest, getSvgUrl, loadImage, loadSvg} from './utils'\n\n/**\n * This function is somewhat complex because we want to try and support\n * svgs that should be valid but are malformed due to a missing xmlns namespace\n * attribute.\n *\n * Previously, we parsed this using 'text/xml' but this depends on a valid namespace\n * existing. So, we instead parse the string as an html tag, and attempt to find the\n * svg element.\n *\n * Throwing an error here feels best, since it indicates we recieved a response from\n * the server that was expected to be an SVG, but wasn't.\n */\nfunction parseSVG(data: string) {\n const parser = new DOMParser()\n const svg = parser.parseFromString(data, 'text/html')\n const svgElement = svg?.children?.[0]?.querySelector('svg')\n\n if (svgElement?.nodeName !== 'svg') {\n throw new Error('Invalid element, not an SVG node.')\n }\n return svgElement\n}\n\nclass ImageLoader {\n constructor(protected status: Status) {\n this.status = status\n }\n\n handleError(error: Error) {\n window.debug('Error loading image: ', error.message)\n this.status.set(STATUS_TYPES.fatal, {error: 'Invalid image source.'})\n }\n\n handleSuccess = (url: string, data: string, xhr: Response): Promise => {\n const didLoadSvg = isSvgRequest(xhr)\n\n if (!didLoadSvg) {\n return loadImage(url)\n }\n\n const svgElement = parseSVG(data)\n\n return loadSvg(getSvgUrl(svgElement, url), svgElement)\n }\n\n fetch = (url: string, onSuccess?: (image: HTMLImageElement) => void, onError?: (error: Error) => void) => {\n window.debug(`Attempting to load image URL: [${url}]`)\n this.status.load(url, {\n json: false,\n success: async (document, xhr: Response) => {\n try {\n const image = await this.handleSuccess(url, document as string, xhr)\n onSuccess?.(image)\n } catch (error: unknown) {\n onError?.(error as Error)\n this.handleError(error as Error)\n }\n },\n error: (error: Error) => {\n onError?.(error)\n this.handleError(error)\n },\n })\n }\n}\n\nexport {ImageLoader}\n","import type {DiffModes} from 'img'\nimport {STATUS_TYPES} from '../../render/constants'\nimport ModeSwitcher from '../../render/mode-switcher'\nimport Slider from '../../render/slider'\nimport type Status from '../../render/status'\nimport {assertHTMLElement, invariant} from '../../render/utils'\nimport {ImageDiffDimensioner} from './diff-image-dimensioner'\nimport {ImageLoader} from './image-loader'\n\ntype FileState = 'added' | 'deleted'\ntype TwoUpMetaInfo = {\n addedHeight: HTMLElement\n addedWidth: HTMLElement\n deletedHeight: HTMLElement\n deletedWidth: HTMLElement\n}\n\nconst MAX_SHELL_WIDTH = 858\n\nclass ImageDiff extends ImageLoader {\n private clicked = false\n private loaded: Record = {\n added: false,\n deleted: false,\n }\n private slider: null | Slider = null\n\n constructor(\n private shell: HTMLElement,\n protected status: Status,\n ) {\n super(status)\n\n const deleted = this.shell.getAttribute('data-file1') ?? ''\n const added = this.shell.getAttribute('data-file2') ?? ''\n\n this.fetch(deleted, image => this.onImageLoad('deleted', image))\n this.fetch(added, image => this.onImageLoad('added', image))\n\n new ModeSwitcher(this.switchMode)\n this.shell.addEventListener(\n 'click',\n () => {\n this.clicked = true\n },\n {once: true},\n )\n }\n\n onImageLoad = (type: FileState, image: HTMLImageElement) => {\n const images = Array.from(document.querySelectorAll(`img.${type}`))\n\n let loaded = 0\n for (const img of images) {\n const attrs = img.attributes\n for (const attr of attrs) {\n image.setAttribute(attr.name, attr.value)\n }\n const clone = image.cloneNode() as HTMLImageElement\n clone.onload = () => {\n img.parentNode?.replaceChild(clone, img)\n loaded += 1\n this.loaded[type] = loaded === images.length\n this.setReadyIfLoaded()\n }\n }\n }\n\n setReadyIfLoaded = () => {\n let allLoaded = true\n for (const type in this.loaded) {\n const imgLoaded = this.loaded[type as FileState]\n allLoaded = allLoaded && imgLoaded\n }\n if (allLoaded) {\n this.initViews()\n }\n }\n\n reInit = (timeout = 100) => {\n if (!this.clicked) {\n this.switchMode('two-up')\n if (timeout < 10000) {\n setTimeout(() => this.reInit(timeout * 2), timeout * 2)\n }\n }\n }\n\n initViews = () => {\n const added = Array.from(document.querySelectorAll('img.added'))\n const deleted = Array.from(document.querySelectorAll('img.deleted'))\n\n this.initTwoUp(added[0], deleted[0])\n this.initSwipe(added[1], deleted[1])\n this.initOnion(added[2], deleted[2])\n\n this.status.set(STATUS_TYPES.ready)\n setTimeout(this.reInit, 100)\n }\n\n initTwoUp = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const twoUp = ImageDiffDimensioner(added, deleted, imageBox => {\n let twoUpScale = 1\n if (imageBox.width > (MAX_SHELL_WIDTH - 30) / 2) {\n twoUpScale = (MAX_SHELL_WIDTH - 30) / 2 / imageBox.width\n }\n return twoUpScale\n })\n\n const metaTextEls = ['added', 'deleted'].reduce((memo, type) => {\n for (const attr of ['height', 'width']) {\n const capital = `${attr.slice(0, 1).toUpperCase()}${attr.slice(1)}`\n const element = document.querySelector(`.${type}-meta .${attr}`)\n if (element) {\n memo = {...memo, [`${type}${capital}`]: element}\n }\n }\n return memo\n }, {} as TwoUpMetaInfo)\n\n if (Object.values(metaTextEls).length !== 4) {\n throw new Error('Invalid DOM structure')\n }\n\n metaTextEls.addedHeight.textContent = `${twoUp.addedImage.naturalHeight}px`\n metaTextEls.addedWidth.textContent = `${twoUp.addedImage.naturalWidth}px`\n metaTextEls.deletedHeight.textContent = `${twoUp.deletedImage.naturalHeight}px`\n metaTextEls.deletedWidth.textContent = `${twoUp.deletedImage.naturalWidth}px`\n\n const deletedLabel = document.querySelector('.label-deleted')\n\n if (deletedLabel && twoUp.added.width < 30 && twoUp.deleted.width < 30) {\n deletedLabel.style.right = '25%'\n }\n }\n\n initSwipe = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const swipe = ImageDiffDimensioner(added, deleted, imageBox => {\n let swipeScale = 1\n if (imageBox.width > MAX_SHELL_WIDTH - 12) {\n swipeScale = (MAX_SHELL_WIDTH - 12) / imageBox.width\n }\n return swipeScale\n })\n\n const deletedSwipeFrame = swipe.deletedParent.parentNode\n const addedSwipeFrame = swipe.addedParent.parentNode\n\n invariant(assertHTMLElement(deletedSwipeFrame))\n invariant(assertHTMLElement(addedSwipeFrame))\n\n deletedSwipeFrame.setAttribute(\n 'style',\n `width: ${swipe.imageBox.width * swipe.scale + 2}px; height: ${swipe.imageBox.height * swipe.scale + 2}px`,\n )\n\n addedSwipeFrame.setAttribute(\n 'style',\n `padding: ${swipe.imageMargins.addedVertMargin * swipe.scale}px 0 0 0;width: ${\n swipe.imageBox.width * swipe.scale + 2\n }px;height: ${swipe.imageBox.height * swipe.scale - swipe.imageMargins.addedVertMargin * swipe.scale + 4}px`,\n )\n\n const swipeContainerEl = document.querySelector('.swipe')\n\n invariant(assertHTMLElement(swipeContainerEl))\n swipeContainerEl.setAttribute(\n 'style',\n `width: ${swipe.imageBox.width * swipe.scale + 2}px;\n height: ${swipe.imageBox.height * swipe.scale + 4}px`,\n )\n\n const swipeBar = document.querySelector('.swipe-bar')\n invariant(assertHTMLElement(swipeBar))\n\n swipeBar.addEventListener('mousedown', event => {\n event.preventDefault()\n\n const container = swipeBar.parentNode\n invariant(assertHTMLElement(container))\n\n const max = container.clientWidth - swipeBar.clientWidth\n const containerEl = container\n\n function handleMouseUp() {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'auto'\n }\n\n function handleMouseMove(swipeMoveEvent: MouseEvent) {\n swipeMoveEvent.preventDefault()\n\n let left = swipeMoveEvent.clientX - containerEl.getBoundingClientRect().left\n if (left < 0) {\n left = 0\n }\n if (left > max) {\n left = max\n }\n\n if (swipeBar) {\n swipeBar.style.left = `${left}px`\n }\n\n const swipeShell = document.querySelector('.swipe-shell')\n const swipeFrame = document.querySelector('.swipe-frame')\n\n if (swipeFrame && swipeShell) {\n swipeShell.style.width = `${swipeFrame.clientWidth - left}px`\n }\n\n document.addEventListener('mouseup', handleMouseUp)\n }\n\n document.body.style.cursor = 'pointer'\n document.addEventListener('mousemove', handleMouseMove)\n })\n }\n\n initOnion = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const onion = ImageDiffDimensioner(added, deleted, imageBox => {\n let onionScale = 1\n if (imageBox.width > MAX_SHELL_WIDTH - 12) {\n onionScale = (MAX_SHELL_WIDTH - 12) / imageBox.width\n }\n return onionScale\n })\n\n const onionFrameShell = onion.deletedParent.parentNode\n invariant(assertHTMLElement(onionFrameShell))\n\n onionFrameShell.setAttribute(\n 'style',\n `width: ${onion.imageBox.width * onion.scale + 2}px;\n height: ${onion.imageBox.height * onion.scale + 2}px`,\n )\n\n const onionSkinEl = document.querySelector('.onion-skin')!\n invariant(assertHTMLElement(onionFrameShell))\n onionSkinEl.setAttribute(\n 'style',\n `width: ${onion.imageBox.width * onion.scale + 2}px;\n height: ${onion.imageBox.height * onion.scale + 4}px`,\n )\n\n this.slider = new Slider(\n {\n slide: percentage => {\n if (onion.addedParent) {\n onion.addedParent.style.opacity = `${percentage / 100}`\n }\n },\n },\n {percentage: 100},\n )\n }\n\n switchMode = (mode: DiffModes) => {\n const viewEls = Array.from(document.querySelectorAll('.view'))\n\n const modeView = viewEls.find(view => view.classList.contains(mode))\n\n if (!modeView) {\n window.debug('Unknown mode!')\n return\n }\n\n for (const view of viewEls) {\n view.style.display = 'none'\n }\n\n const renderBarEl = document.querySelector('.render-bar')\n let padding = (renderBarEl?.getBoundingClientRect().height ?? 0) + 40\n\n if (mode === 'swipe') {\n padding += 14 // Height of drag handle\n } else if (mode === 'onion-skin') {\n padding += 45 // Includes bottom slider\n }\n\n modeView.style.display = 'block'\n this.status.set(STATUS_TYPES.resize, {height: modeView.getBoundingClientRect().height + padding})\n if (this.slider && mode === 'onion-skin') {\n this.slider.setDragger()\n }\n }\n}\n\nexport default ImageDiff\n","import {STATUS_TYPES} from '../../render/constants'\nimport {ImageLoader} from './image-loader'\n\nclass ImageViewer extends ImageLoader {\n constructor(shell, status) {\n super(status)\n\n this.onImageLoad = this.onImageLoad.bind(this)\n\n // 30 px on each side\n this.imagePadding = 60\n this.shell = shell\n this.status.set(STATUS_TYPES.loading)\n\n const url = this.shell.getAttribute('data-image')\n this.fetch(url, this.onImageLoad)\n }\n\n onImageLoad(image) {\n this.shell.appendChild(image)\n this.status.set(STATUS_TYPES.ready, {height: this.imageHeightAfterResize(image) + this.imagePadding})\n }\n\n documentWidth() {\n try {\n const renderShell = document.querySelector('.render-shell')\n /**\n * We use this over boundingClientRect because the original jquery implementation\n * was consistently returning 0. This was due to the .width method being called on\n * a hidden div. boundClientRect seems to be able to correctly resolve the true\n * width of the image, which led to the image being incorrectly scaled.\n */\n const shellStyles = window.getComputedStyle(renderShell)\n\n return parseInt(shellStyles.width)\n } catch (error) {\n window.debug('Failed to parse iframe document width')\n }\n }\n\n imageCssWidth(image) {\n try {\n return window.getComputedStyle(image).width\n } catch (error) {\n window.debug('Failed to parse image width', error.message)\n }\n }\n\n computeMaxWidth(image, fallback = 600) {\n const docWidth = this.documentWidth()\n const cssWidth = this.imageCssWidth(image)\n const parsedWidth = parseInt(cssWidth)\n\n window.debug(`imageHeightAfterResize: cssWidth:[${cssWidth}] parsedWidth:[${parsedWidth}]`)\n\n if (!cssWidth || isNaN(parsedWidth)) {\n return fallback\n }\n\n const minWidth = Math.min(docWidth, parsedWidth)\n\n if (cssWidth.slice(-1) === '%') {\n window.debug(`imageHeightAfterResize: Using a %: ${parsedWidth} of ${docWidth}`)\n if (!docWidth) {\n return fallback\n }\n return docWidth * (parsedWidth / 100.0)\n } else if (minWidth <= 0) {\n return fallback\n } else {\n return minWidth\n }\n }\n\n imageHeightAfterResize(img) {\n const {naturalHeight, naturalWidth} = img\n const maxWidth = this.computeMaxWidth(img)\n\n window.debug(`imageHeightAfterResize: maxWidth: ${maxWidth} vs width: ${naturalWidth} height: ${naturalHeight}`)\n\n if (img.height === 0) {\n img.height = naturalHeight\n }\n\n if (img.width === 0) {\n img.width = naturalWidth\n }\n\n // If we don't have a height, set the height to the maxWidth and hope for the best\n if (!naturalHeight) {\n img.height = maxWidth\n }\n\n // Return if the image is already resized\n if (naturalWidth <= maxWidth) {\n window.debug('Already resized, returning current height')\n return img.height || naturalHeight\n }\n\n const scalingFactor = maxWidth / naturalWidth\n window.debug(`Scaling height by ${scalingFactor} to ${naturalHeight} & ${scalingFactor}`)\n\n return naturalHeight * scalingFactor\n }\n}\n\nexport default ImageViewer\n","import '../render'\nimport '../../stylesheets/img.scss'\n\nimport ImageDiff from './lib/diff'\nimport ImageViewer from './lib/viewer'\nimport {onDocumentReady} from '../render/utils'\nimport Status from '../render/status'\nimport {RENDER_FORMATS} from '../render/constants'\n\nfunction ImgRenderer() {\n const status = new Status(RENDER_FORMATS.image)\n const shell = document.querySelector('.js-render-shell div')!\n\n const isDiffing = shell.getAttribute('data-type') === 'diff'\n\n if (isDiffing) {\n new ImageDiff(shell, status)\n } else {\n new ImageViewer(shell, status)\n }\n}\n\nonDocumentReady(() => ImgRenderer())\n"],"names":["RENDER_FORMATS","STATUS_TYPES","MESSAGE_RESPONSE_TYPES","baseContext","originalHistoryState","JSON","stringify","window","history","state","ERROR_METADATA_KEYS","errorFallback","name","stack","failbotContext","loadTime","Date","getTime","unloaded","reportErrors","event","reportable","type","locationData","pathname","search","_pathParts$slice","_pathParts$slice2","action","format","urlParams","paramsMetadata","message","filename","lineno","safeError","error","exceptionDetail","value","stacktrace","parse","map","frame","file","function","String","methodName","lineNumber","toString","colno","column","reverse","context","_objectSpread","url","location","href","readyState","document","referrer","historyState","timeSinceLoad","Math","round","extensionScripts","sort","navigations","getNavigations","platform","split","slice","_slicedToArray","URLSearchParams","Array","from","entries","reduce","memo","pair","includes","_defineProperty","logging","debugMessages","isDefined","debug","buffer","undefined","_unused","viewscreenUrl","body","getAttribute","fetch","concat","method","headers","errorsReported","arguments","length","isChromeExtension","result","_i","_scripts","querySelectorAll","script","test","src","push","pushNavigation","loadType","info","sessionStorage","setItem","NAVIGATIONS_KEY","_unused3","setNavigations","json","getItem","_unused2","addEventListener","oldURL","newURL","eventState","pjaxDirection","direction","pjaxState","logMessage","_len","messageArgs","_key","args","time","now","_createClass","Logger","options","loggerFn","console","log","quiet","_classCallCheck","this","_loggerFn","key","storeMessage","apply","bufCopy","nextBuffer","bufferSize","_step","arr","numMessages","_iterator","_createForOfIteratorHelper","s","n","done","isArray","arrayLikeToArray","iter","Symbol","iterator","unsupportedIterableToArray","TypeError","err","e","f","Render","logger","_window$console","IS_QUIET_MODE","bind","LinkNavigator","_ref","_this","_ref$hasParent","hasParent","node","matches","target","match","preventDefault","navigateTo","failClass","classList","add","setTimeout","remove","navigateDirect","navigateRelative","relHref","rootUrl","baseUrl","URL","prefixedRelHref","startsWith","protocolRelativeURL","replace","top","invariant","assertElement","isLinkableNode","handleLink","InvalidProtocolError","_Error","_callSuper","_inherits","_wrapNativeSuper","Error","FailedError","_Error2","isClientUrl","exec","renderableLoaderDefaults","setStatus","attempts","timeout","statusOptionDefaults","allowLinks","initialMessage","hello","_onSuccess","WeakMap","_onError","_Status_brand","WeakSet","_onBeforeSend","_prepareFetchedData","_x2","_x3","_prepareFetchedData2","_asyncToGenerator","_regeneratorRuntime","_callee2","maybeJson","_context2","prev","next","get","arrayBuffer","abrupt","sent","text","t0","unescape","t1","set","fatal","reportStatusError","stop","Status","_document$body$getAtt","_document$body$getAtt2","_this2","opts","initial","remaining","interval","initialStatusTimeout","acked","sendInitial","clearTimeout","_classPrivateFieldInitSpec","loaded","status","payload","alreadySentStatus","resize","ago","abs","when","messages","ready","onReady","requireAck","post","localTiming","submitTiming","_step2","_iterator2","msg","origin","timing","_navigator$sendBeacon","_navigator","baseRenderUrl","navigator","sendBeacon","call","_navigator$sendBeacon2","_navigator2","cmd","arg","branding","renderableContent","ack","onAck","markdown","trigger","data","width","containerSize","readyAck","originHostname","host","isSameOrigin","githubHostname","identity","handleCmd","parent","githubEnv","haveParent","hash","substring","constructor","handleMessage","filter","_load","_callee","_finalOptions$attempt","_finalOptions$before","_finalOptions$success","_finalOptions$error","_finalOptions$before2","finalOptions","requestController","abortTimeoutId","settings","response","_this3","_args","_context","loading","clientTimeoutAttempts","before","_assertClassBrand","success","_classPrivateFieldGet","AbortController","abort","signal","finish","load","submitGiveup","Response","_x","_msg$identity","postMessage","Number","CustomEvent","detail","dispatchEvent","ErrorEvent","onDocumentReady","initializer","InvariantViolationError","condition","Element","assertHTMLElement","HTMLElement","getDomainName","hostname","join","toLowerCase","targetHostname","sourceHostname","object","reEscapedHtml","reHasEscapedHtml","RegExp","source","freeGlobal","g","Object","freeSelf","self","root","Function","unescapeHtmlChar","objectToString","prototype","symbolProto","symbolToString","module","exports","string","isObjectLike","isSymbol","baseToString","UNKNOWN_FUNCTION","stackString","line","parseResult","parts","chromeRe","isNative","indexOf","isEval","submatch","chromeEvalRe","parseChrome","winjsRe","parseWinjs","geckoRe","geckoEvalRe","parseGecko","nodeRe","parseNode","javaScriptCoreRe","parseJSC","_typeof","__esModule","t","r","hasOwnProperty","o","defineProperty","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","pop","charAt","rval","handle","complete","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","_arrayLikeToArray","len","arr2","_arrayWithHoles","_assertThisInitialized","ReferenceError","asyncGeneratorStep","gen","reject","_next","_throw","fn","instance","Constructor","_construct","Parent","Class","Reflect","construct","_defineProperties","props","descriptor","protoProps","staticProps","obj","_getPrototypeOf","subClass","superClass","_isNativeFunction","_isNativeReflectConstruct","sham","Proxy","Boolean","valueOf","_iterableToArrayLimit","_nonIterableRest","_possibleConstructorReturn","_setPrototypeOf","_toPrimitive","input","hint","prim","toPrimitive","res","_toPropertyKey","_unsupportedIterableToArray","minLen","_cache","Map","has","Wrapper","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","prop","ModeSwitcher","callback","identifier","childIdentifier","menu","querySelector","_loop","option","_option$parentElement","parentElement","_handleMouseMove","_this$callbacks$slide","_this$callbacks2","dragging","trackBbox","track","getBoundingClientRect","draggerBbox","dragger","ownerWindow","ownerDocument","defaultView","max","left","clientX","scrollX","style","percentage","callbacks","slide","_handleMouseUp","_this$callbacks$mouse2","_this$callbacks3","removeEventListener","_Slider_brand","cursor","mouseUp","Slider","mousedownEvent","_this$callbacks$mouse","_this$callbacks","mouseDown","once","container","display","setDragger","parentNode","bindControls","ImageDiffDimensioner","added","deleted","scalingFn","getDimensions","element","height","clientHeight","clientWidth","addedImageFrame","deletedImageFrame","addedDimensions","deletedDimensions","imageBox","imageMargins","addedHorizMargin","floor","addedVertMargin","deletedHorizMargin","deletedVertMargin","scale","setAttribute","addedImage","deletedImage","addedParent","deletedParent","DEFAULT_SIZE","loadImage","image","Image","onload","onerror","_loadSvg","dimensions","svgDefaultSizeIfUndefinedData","svgDefaults","svgDoc","_svgDoc$rootElement","_svg$height","_svg$width","children","firefoxBuggySize","pow","maybeSvg","rootElement","svg","Node","baseVal","unitType","SVGLength","SVG_LENGTHTYPE_PERCENTAGE","hasAttribute","vb","viewBox","aspectRatio","ImageLoader","xhr","didLoadSvg","isSvgRequest","svgElement","_svg$children","DOMParser","parseFromString","nodeName","parseSVG","loadSvg","srcUrl","xmlnsAddress","protocol","isValidSvg","temp","createElement","appendChild","svg64","encodeURIComponent","innerHTML","getSvgUrl","onSuccess","onError","_success","handleSuccess","handleError","_ImageLoader","ImageDiff","shell","_this$shell$getAttrib","_this$shell$getAttrib2","images","img","_images","attributes","attr","clone","cloneNode","_img$parentNode","replaceChild","setReadyIfLoaded","allLoaded","imgLoaded","initViews","clicked","switchMode","reInit","initTwoUp","initSwipe","initOnion","twoUp","twoUpScale","metaTextEls","_i2","_arr","capital","toUpperCase","addedHeight","textContent","naturalHeight","addedWidth","naturalWidth","deletedHeight","deletedWidth","deletedLabel","right","swipe","swipeScale","MAX_SHELL_WIDTH","deletedSwipeFrame","addedSwipeFrame","swipeContainerEl","swipeBar","containerEl","handleMouseUp","handleMouseMove","swipeMoveEvent","swipeShell","swipeFrame","onion","onionScale","onionFrameShell","onionSkinEl","slider","opacity","mode","_renderBarEl$getBound","viewEls","modeView","find","view","contains","_i3","_viewEls","renderBarEl","padding","onImageLoad","ImageViewer","imagePadding","imageHeightAfterResize","renderShell","shellStyles","getComputedStyle","parseInt","fallback","docWidth","documentWidth","cssWidth","imageCssWidth","parsedWidth","minWidth","min","maxWidth","computeMaxWidth","scalingFactor"],"sourceRoot":""}