{"version":3,"file":"img-eca19923bb6ea985ecd4.js","mappings":"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","sources":["webpack:///./assets/javascripts/render/constants.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:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","webpack:///./assets/javascripts/render/failbot.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/@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/classApplyDescriptorGet.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.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","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","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","// 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 (error1) {\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 (error) {\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 (error) {\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","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 const prefixedRelHref = relHref[0] === '/' ? relHref : `/${relHref}`\n const url = `//${rootUrl}${prefixedRelHref}`\n\n return this.navigateDirect(url)\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} from './utils'\nimport LinkNavigator from './link-navigator'\n\nclass InvalidProtocolError extends Error {\n constructor() {\n super('The client:// protocol is invalid.')\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 | null\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 (e) {\n this.set(STATUS_TYPES.fatal)\n }\n }\n\n return\n }\n\n async load(\n url: string,\n opts: RenderableLoaderOptions & Partial = renderableLoaderDefaults\n ) {\n const finalOptions = {...renderableLoaderDefaults, ...opts} as RenderableLoaderOptions & RenderableLoaderCallbacks\n\n if (isClientUrl(url)) {\n throw new InvalidProtocolError()\n }\n\n this.set(STATUS_TYPES.loading)\n\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 (e) {\n this.set(STATUS_TYPES.error)\n if (requestController.signal.aborted) {\n this.submitGiveup()\n }\n } finally {\n clearTimeout(abortTimeoutId)\n }\n\n finalOptions.attempts -= 1\n if (finalOptions.attempts > 0) {\n window.debug(`Couldn't load, 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 finalOptions.error(new Error('Failed to load content.'), new Response(null, {status: 500}))\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 let hostSuffix = this.githubHostname || '.github.com'\n if (hostSuffix.endsWith('.ghe.com')) {\n hostSuffix = '.ghe.com'\n } else if (hostSuffix.endsWith('.github.com')) {\n hostSuffix = '.github.com'\n }\n\n const {data, origin} = event\n if (!data || !origin) {\n return\n }\n\n if (!origin.endsWith(hostSuffix)) {\n return\n }\n\n const {type, identity, body} = (() => {\n try {\n return JSON.parse(data)\n } catch (error) {\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\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 */\nfunction isDefined(value?: T): value is NonNullable {\n return value !== null && value !== undefined && typeof value !== 'undefined'\n}\n\nfunction onDocumentReady(initializer: () => void) {\n if (document.readyState === 'complete') {\n initializer()\n } else {\n document.addEventListener('DOMContentLoaded', initializer)\n }\n}\n\nfunction 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\nfunction 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\nconst assertHTMLElement = (node: Element | ParentNode | HTMLElement | null): node is HTMLElement =>\n node instanceof HTMLElement\n\nconst assertSVGElement = (node: SVGElement | SVGSVGElement | null): node is SVGElement => node instanceof SVGElement\n\nconst getGitHubDocsHostname = () =>\n document.body.getAttribute('data-github-docs-hostname') || DEFAULT_DOCS_LINK_HOSTNAME\n\nexport {isDefined, onDocumentReady, decodeHTML, invariant, assertHTMLElement, assertSVGElement, getGitHubDocsHostname}\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 _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 _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\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}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\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 private callback: (mode: ModeType) => void,\n private identifier = '.js-view-modes',\n private childIdentifier = '.js-view-mode-item'\n ) {\n const menu = document.querySelector(this.identifier)\n\n if (!menu) {\n return\n }\n\n menu.addEventListener('click', e => {\n const target = e.target as HTMLElement\n\n if (!target) {\n return\n }\n\n this.callback(target.getAttribute('data-mode') as ModeType)\n const children = Array.from(menu.querySelectorAll(this.childIdentifier))\n\n for (const child of children) {\n child.classList.remove('active')\n }\n\n target.classList.add('active')\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(private callbacks: Callbacks, options: Options) {\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(private shell: HTMLElement, protected status: Status) {\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","logMessage","_len","arguments","length","messageArgs","Array","_key","args","time","Date","now","Logger","options","undefined","loggerFn","window","console","log","quiet","_classCallCheck","_defineProperty","this","_loggerFn","_createClass","key","value","storeMessage","apply","bufCopy","buffer","push","nextBuffer","slice","bufferSize","_step","arr","numMessages","_iterator","_createForOfIteratorHelper","s","n","done","message","concat","isArray","arrayLikeToArray","iter","Symbol","iterator","from","unsupportedIterableToArray","TypeError","err","e","f","Render","logger","_window$console","IS_QUIET_MODE","debug","bind","UNKNOWN_FUNCTION","chromeRe","chromeEvalRe","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","baseContext","originalHistoryState","JSON","stringify","history","state","ERROR_METADATA_KEYS","errorFallback","name","stack","failbotContext","loadTime","getTime","unloaded","errorsReported","reportable","event","lineno","error","filename","includes","isChromeExtension","extensionScripts","result","_i","_scripts","document","querySelectorAll","script","test","src","pushNavigation","loadType","info","navigations","getNavigations","type","url","location","href","sessionStorage","setItem","NAVIGATIONS_KEY","setNavigations","json","getItem","parse","addEventListener","oldURL","newURL","eventState","locationData","pathname","search","_pathParts$slice","_pathParts$slice2","action","format","urlParams","paramsMetadata","safeError","exceptionDetail","stacktrace","stackString","split","reduce","line","parseResult","parts","exec","isNative","indexOf","isEval","submatch","file","methodName","lineNumber","column","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","map","frame","function","String","toString","colno","reverse","context","_objectSpread","readyState","referrer","historyState","timeSinceLoad","Math","round","sort","platform","_slicedToArray","URLSearchParams","entries","memo","pair","logging","debugMessages","isDefined","error1","viewscreenUrl","body","getAttribute","fetch","method","headers","pjaxDirection","direction","pjaxState","LinkNavigator","_ref","_this","_ref$hasParent","hasParent","node","matches","target","match","preventDefault","navigateTo","failClass","classList","add","setTimeout","remove","navigateDirect","navigateRelative","relHref","rootUrl","prefixedRelHref","top","invariant","assertElement","isLinkableNode","handleLink","InvalidProtocolError","_Error","_inherits","_super","call","_wrapNativeSuper","Error","isClientUrl","renderableLoaderDefaults","setStatus","attempts","timeout","statusOptionDefaults","allowLinks","initialMessage","hello","_onSuccess","WeakMap","_onError","_onBeforeSend","WeakSet","_prepareFetchedData","_onBeforeSend2","_prepareFetchedData2","_x2","_x3","_prepareFetchedData3","_asyncToGenerator","_regeneratorRuntime","_callee2","maybeJson","_context2","prev","next","get","arrayBuffer","abrupt","sent","text","t0","unescape","t1","set","fatal","stop","Status","_document$body$getAtt","_document$body$getAtt2","opts","_classPrivateMethodInitSpec","initial","remaining","interval","initialStatusTimeout","acked","sendInitial","clearTimeout","_classPrivateFieldInitSpec","writable","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","_navigator$sendBeacon2","_navigator2","cmd","arg","branding","renderableContent","ack","onAck","markdown","trigger","data","width","containerSize","readyAck","hostSuffix","githubHostname","endsWith","identity","handleCmd","parent","githubEnv","haveParent","hash","substring","constructor","handleMessage","_load","filter","_callee","_finalOptions$attempt","_finalOptions$before","_finalOptions$success","_finalOptions$error","_finalOptions$before2","finalOptions","requestController","abortTimeoutId","settings","_response","_data","_this2","_args","_context","loading","clientTimeoutAttempts","before","_classPrivateMethodGet","success","_classPrivateFieldGet","AbortController","abort","signal","response","aborted","submitGiveup","finish","load","Response","_x","_msg$identity","postMessage","Number","CustomEvent","detail","dispatchEvent","onDocumentReady","initializer","InvariantViolationError","condition","Element","assertHTMLElement","HTMLElement","object","reEscapedHtml","reHasEscapedHtml","RegExp","source","freeGlobal","g","Object","freeSelf","self","root","Function","unescapeHtmlChar","objectToString","prototype","symbolProto","symbolToString","module","exports","string","isObjectLike","isSymbol","baseToString","replace","_typeof","__esModule","t","r","hasOwnProperty","o","defineProperty","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","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","_classApplyDescriptorGet","receiver","descriptor","instance","Constructor","_classExtractFieldDescriptor","privateMap","has","_construct","Parent","Class","Reflect","construct","_defineProperties","props","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","Wrapper","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","prop","ModeSwitcher","callback","identifier","childIdentifier","menu","querySelector","_children","_handleMouseMove2","_this$callbacks$slide","_this$callbacks2","dragging","trackBbox","track","getBoundingClientRect","draggerBbox","dragger","ownerWindow","ownerDocument","defaultView","max","left","clientX","scrollX","style","percentage","callbacks","slide","_handleMouseUp2","_this$callbacks$mouse2","_this$callbacks3","removeEventListener","_handleMouseMove","cursor","mouseUp","Slider","_handleMouseUp","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","URL","protocol","isValidSvg","temp","createElement","appendChild","svg64","encodeURIComponent","innerHTML","getSvgUrl","onSuccess","onError","_success","_image","handleSuccess","handleError","_error","_ImageLoader","ImageDiff","shell","_this$shell$getAttrib","_this$shell$getAttrib2","images","_loop","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":""}