{"version":3,"file":"img-a72eac494ce65a7ee317.js","mappings":"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","sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","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/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./assets/javascripts/render/status.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./assets/javascripts/render/failbot.ts","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/lodash.unescape/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///./assets/javascripts/render/utils.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./assets/javascripts/render/constants.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./assets/javascripts/render/link-navigator.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.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":["function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as 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}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","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\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as 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}\nexport { _nonIterableSpread as default };","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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import unescape from 'lodash.unescape'\nimport type {TopoJSON} from 'topojson-specification'\nimport {MESSAGE_RESPONSE_TYPES, RENDER_FORMATS, STATUS_TYPES} from './constants'\nimport {isDefined, isSameOrigin} from './utils'\nimport LinkNavigator from './link-navigator'\nimport reportErrors from './failbot'\n\nclass InvalidProtocolError extends Error {\n constructor() {\n super('The client:// protocol is invalid.')\n }\n}\n\nclass FailedError extends Error {\n constructor() {\n super('Failed to load content')\n this.message = 'Failed to load content'\n }\n}\n\nwindow.Render = window.Render || {}\n\nconst isClientUrl = (url: string) => /^client:\\/\\//i.exec(url)\n\ntype StatusOptions = {\n allowLinks?: boolean\n initialMessage?: STATUS_TYPES\n}\n\ntype RenderStatusMessage = {\n sent: boolean\n status: STATUS_TYPES\n when: number\n payload: Record | null\n}\n\ntype RenderableLoaderCallbacks = {\n before: (xhr?: XMLHttpRequest, settings?: Record) => void\n success: (data: Data, response: Response) => void\n error: (error: E, xhr: Response) => void\n}\n\ntype RenderableLoaderOptions = {\n attempts?: number\n timeout?: number\n json?: boolean\n}\n\ntype DataResponseTypes = string | ArrayBuffer | TopoJSON | JSON | undefined\n\nconst renderableLoaderDefaults = {\n setStatus: true,\n attempts: 3,\n timeout: 30_000,\n json: true,\n}\n\nconst statusOptionDefaults = {\n allowLinks: false,\n initialMessage: STATUS_TYPES.hello,\n}\n\n/**\n * Responsible for handling communication between the render DOM and it's parent iframe\n *\n * @param format Valid renderable file format @see RENDER_FORMATS\n * @param opts.allowLinks? Should this class allow redirects from link within the render area?\n * @param opts.initial? The initial status message to be communicated\n */\nclass Status {\n acked = false\n format: RENDER_FORMATS\n githubEnv: string | null\n githubHostname: string\n identity: string\n protocol: 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 this.protocol = window.location.protocol\n\n this.messages = [\n {status: STATUS_TYPES.constructor, payload: null, when: Date.now(), sent: true}, // Debugging ctor call timing\n ]\n\n window.addEventListener('message', this.handleMessage)\n\n if (this.haveParent()) {\n this.sendInitial(options.initialMessage, 10, 1000)\n }\n }\n\n /**\n * This function is responsible for communicating the initial status of the renderer back to the parent frame.\n * Necessary as the render JS functionality is embedded in an iframe. This function will attempt to\n * contact its parent frame until it receives a response or exhausts the pool of attempts.\n */\n sendInitial = (initial: STATUS_TYPES, remaining = 10, interval = 1000) => {\n if (this.initialStatusTimeout && (this.acked || remaining < 1)) {\n clearTimeout(this.initialStatusTimeout)\n return\n }\n\n this.initialStatusTimeout = setTimeout(() => this.sendInitial(initial, remaining - 1, interval), interval)\n window.debug(\n `Sending hello. Will try again ${remaining} more times in ${interval / 1000} second intervals until ack'd`,\n )\n return this.set(initial)\n }\n\n // Fired when content is loaded and ready to be displayed.\n #onSuccess = () => {\n this.set(STATUS_TYPES.loaded)\n }\n\n // Fires when requested content fails to load.\n #onError = () => {\n this.set(STATUS_TYPES.error)\n }\n\n #onBeforeSend() {\n return void 0\n }\n\n //# Raw status access\n // Handles whether or not to post a message to the parent window\n // TODO: Rename? The name set is incredibly generic and doesn't really encapsulate\n // what this method does. It also does two things, adding a message to the message list\n // and posting that message?\n set = (status: STATUS_TYPES, payload = {}) => {\n const sent = this.alreadySentStatus(status)\n\n if (isDefined(sent) && ![STATUS_TYPES.hello, STATUS_TYPES.resize].includes(status)) {\n const ago = Math.abs(Date.now() - sent.when)\n return window.debug(`Already set status '${status}' ${ago}ms ago`)\n }\n\n const message = {status, payload, when: Date.now(), sent: false}\n // Don't push duplicate hello messages into our message cache.\n // However, it seems that we do still send duplicate `hello` messages to dotcom.\n if (!sent || status !== STATUS_TYPES.hello) {\n this.messages.push(message)\n }\n\n if (status === STATUS_TYPES.ready) {\n this.onReady()\n }\n\n if (!this.requireAck(status)) {\n message.sent = true\n\n return this.post({\n type: 'render',\n body: status,\n payload,\n })\n }\n }\n\n alreadySentStatus(status: STATUS_TYPES) {\n const found = this.messages.filter(e => e.status === status)\n return found[0]\n }\n\n async #prepareFetchedData(result: Response, options: RenderableLoaderOptions): Promise {\n const contentType = result.headers.get('content-type')\n\n /**\n * using vanilla XMLHTTPRequest / jquery, we were able to force the response\n * header's content-type to a specific value. This was needed for stl files,\n * since they may be a binary file OR ASCII text.\n *\n * We can't force the header with `fetch`, so we need to check for a header that\n * indicates a response with an array buffer data type.\n *\n * This works in all major browsers for CORs requests.\n */\n if (contentType === 'application/octet-stream') {\n return await result.arrayBuffer()\n }\n\n if (!options.json) {\n return await result.text()\n }\n\n try {\n return await result.json()\n } catch (error) {\n // Apparently Mobile Safari requires this, though it is unclear why.\n // Google searches didn't yield fruit\n window.debug(`Error while trying to parse initial JSON: ${error}`)\n window.debug('Attempting to parse htmlDecoded JSON')\n try {\n const maybeJson = await result.text()\n return JSON.parse(unescape(maybeJson))\n } catch {\n this.set(STATUS_TYPES.fatal)\n this.reportStatusError(new FailedError())\n }\n }\n\n return\n }\n\n async load(\n url: string,\n opts: RenderableLoaderOptions & Partial = renderableLoaderDefaults,\n ) {\n if (isClientUrl(url)) {\n this.reportStatusError(new InvalidProtocolError())\n }\n\n this.set(STATUS_TYPES.loading)\n\n const finalOptions = {...renderableLoaderDefaults, ...opts} as RenderableLoaderOptions & RenderableLoaderCallbacks\n finalOptions.attempts = finalOptions.attempts ?? this.clientTimeoutAttempts()\n finalOptions.before = finalOptions.before ?? this.#onBeforeSend\n finalOptions.success = finalOptions.success ?? this.#onSuccess\n finalOptions.error = finalOptions.error ?? this.#onError\n\n finalOptions.before?.()\n\n const requestController = new AbortController()\n const abortTimeoutId = setTimeout(() => {\n requestController.abort()\n }, finalOptions.timeout)\n\n const settings = {\n method: 'GET',\n signal: requestController.signal,\n }\n\n try {\n const response = await fetch(url, settings)\n\n if (response.status < 400) {\n const data = await this.#prepareFetchedData(response, finalOptions)\n this.set(STATUS_TYPES.loaded)\n finalOptions.success(data, response)\n\n return\n }\n } catch {\n window.debug(\"Couldn't load\")\n } finally {\n clearTimeout(abortTimeoutId)\n }\n\n finalOptions.attempts -= 1\n if (finalOptions.attempts > 0) {\n window.debug(`Going to retry up to ${finalOptions.attempts} more times!`)\n setTimeout(() => {\n this.load(url, finalOptions)\n }, 1000)\n } else {\n this.set(STATUS_TYPES.error)\n this.submitGiveup()\n const error = new FailedError()\n finalOptions.error(error, new Response(null, {status: 500}))\n this.reportStatusError(error)\n }\n }\n\n post(msg: {identity?: string; type: string; body: STATUS_TYPES; payload?: Record | null}) {\n msg.identity = msg.identity ?? this.identity\n\n if (!this.haveParent()) {\n window.debug('WARNING: No window.parent: postMessage:', msg)\n return\n }\n\n const parentHostname = document.referrer ? new URL(document.referrer).hostname : ''\n const isSameDomain = isSameOrigin(this.githubHostname, parentHostname)\n\n const targetOrigin = isSameDomain && this.githubEnv !== 'development' ? `${this.protocol}//${parentHostname}` : '*'\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 case MESSAGE_RESPONSE_TYPES.sandboxReady:\n this.trigger(document, MESSAGE_RESPONSE_TYPES.sandboxReady, {\n content: renderableContent.content,\n scripts: renderableContent.scripts,\n styles: renderableContent.styles,\n })\n break\n default:\n window.debug(`Invalid command '${cmd}':`, arg)\n }\n }\n\n handleMessage = (event: MessageEvent) => {\n const {data, origin} = event\n if (!data || !origin || origin === 'null') {\n return\n }\n\n let originHostname = ''\n try {\n originHostname = new URL(origin).host\n } catch (e) {\n window.debug('Could not construct URL from origin', origin)\n if (e instanceof Error) this.reportStatusError(e)\n }\n\n if (\n !isSameOrigin(this.githubHostname, originHostname) &&\n // special case: allow local IP address for local development\n !(this.githubHostname === 'github.localhost' && isSameOrigin('127.0.0.1', originHostname))\n ) {\n return\n }\n\n const {type, identity, body} = (() => {\n try {\n return JSON.parse(data)\n } catch {\n return data\n }\n })()\n if (!type || !body) {\n return\n }\n if (identity && identity !== this.identity) {\n return window.debug(`Message has identity '${identity}', expected '${this.identity}'.`)\n }\n\n switch (type) {\n case 'render:timing': {\n const {timing, format} = body\n if (!timing || !format) {\n return window.debug('Malformed timing message:', body)\n }\n if (format !== this.format) {\n return window.debug(`Format mismatch: got '${format}' expected '${this.format}'`)\n }\n return this.submitTiming('remote', timing)\n }\n case 'render:cmd': {\n const {cmd} = body\n const arg = body[cmd]\n if (isDefined(cmd) && isDefined(arg)) {\n return this.handleCmd(cmd, arg)\n }\n break\n }\n default:\n return window.debug(`Unknown message type: ${type}`)\n }\n }\n\n // Is the viewscreen renderer running inside an iframe?\n haveParent = () => {\n return window.parent !== window\n }\n\n clientTimeoutAttempts() {\n return Number(document.body.getAttribute('data-client-timeout-attempts'))\n }\n\n trigger(target: Document | HTMLElement, name: string, data = {}) {\n const event = new CustomEvent(name, {detail: {...data}})\n target.dispatchEvent(event)\n }\n\n // Report a failed status error to Sentry\n reportStatusError(error: Error) {\n reportErrors(\n new ErrorEvent('status', {\n error,\n filename: 'status.ts',\n message: error.message,\n }),\n )\n }\n}\n\nexport default Status\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","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;","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","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","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","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 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 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 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;","// 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 occasionally 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 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 browser 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 filename\n * @returns boolean\n */\nfunction isBrowserExtension(filename: string = '') {\n return filename.includes('chrome-extension://') || filename.includes('moz-extension://')\n}\n\nconst loadTime = new Date().getTime()\n\n// Flag when page is unloaded\nlet unloaded = false\n\nfunction flagUnloaded() {\n unloaded = true\n}\n\nfunction flagLoaded() {\n unloaded = false\n}\n\nfunction reportErrors(event: ErrorEvent) {\n // Do this first so we can skip all the extra, unnecessary operations\n if (!reportable(event) && event.type !== 'submit') {\n return\n }\n const {message, filename, lineno, error} = event\n const safeError = error || errorFallback\n const {stack, name, failbotContext} = safeError\n const preprocessedStack = parse(stack ?? '')\n const stacktrace = preprocessedStack\n .map(frame => ({\n filename: frame.file || '',\n function: String(frame.methodName),\n lineno: (frame.lineNumber || 0).toString(),\n colno: (frame.column || 0).toString(),\n }))\n .reverse()\n const exceptionDetail = [\n {\n type: name,\n value: message,\n stacktrace,\n },\n ]\n\n const context = {\n message,\n filename,\n lineno,\n url: window.location.href,\n readyState: document.readyState,\n referrer: document.referrer,\n stack: safeError.stack,\n historyState: JSON.stringify(window.history.state),\n timeSinceLoad: Math.round(new Date().getTime() - loadTime),\n extensionScripts: JSON.stringify(extensionScripts().sort()),\n navigations: JSON.stringify(getNavigations()),\n exceptionDetail,\n platform: 'javascript',\n ...getErrorMetadata(window.location),\n ...failbotContext,\n ...baseContext,\n }\n\n // Attach any logging info we have\n context.logging = (() => {\n try {\n const debugMessages = (isDefined(window.debug) ? window.debug.buffer() : undefined) || []\n return JSON.stringify(debugMessages)\n } catch {\n return\n }\n })()\n\n // Report errors to app\n const viewscreenUrl = document.body.getAttribute('data-render-url')\n\n fetch(`${viewscreenUrl}/_errors`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json; charset=utf-8'},\n body: JSON.stringify(context),\n })\n}\n\nconst reportable = (function () {\n let errorsReported = 0\n\n return function (event: ErrorEvent) {\n const {lineno, error, filename, message} = event\n const errorStack = error ? error.stack : undefined\n\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 (isBrowserExtension(filename) || isBrowserExtension(errorStack)) {\n return false\n }\n\n if (message.includes('Failed to load content') || errorStack?.includes('Failed to load content')) {\n return false\n }\n\n // Report a max of 10 errors per user per page load. This way if something is\n // generating errors continuously, we won't flood Haystack with duplicates.\n if (errorsReported >= 10) {\n return false\n }\n errorsReported++\n\n return true\n }\n})()\n\nconst extensionScripts = () =>\n (() => {\n const result = []\n const scripts = Array.from(document.querySelectorAll('script'))\n for (const script of scripts) {\n if (/^(?:chrome-extension|file):/.test(script.src)) {\n result.push(script.src)\n }\n }\n return result\n })()\n\n// Add the just-completed navigation to session storage to be included in\n// needles for debugging.\nfunction pushNavigation(loadType: string, info: NavigationExtraInfo = {}) {\n const navigations = getNavigations()\n navigations.push({type: loadType, url: window.location.href, state: window.history.state, info})\n return setNavigations(navigations)\n}\n\nconst NAVIGATIONS_KEY = 'navigations'\n\n// Retrieve all past navigations from the current session.\nfunction getNavigations() {\n const json = (() => {\n try {\n return sessionStorage.getItem(NAVIGATIONS_KEY)\n } catch {\n return\n }\n })()\n if (json) {\n return JSON.parse(json)\n } else {\n return []\n }\n}\n\n// Store the current session's navigations.\nfunction setNavigations(navigations: NavigationDetails[]) {\n try {\n return sessionStorage.setItem(NAVIGATIONS_KEY, JSON.stringify(navigations))\n } catch {\n return\n }\n}\n\n// Record all navigations in this session for inclusion in needles.\npushNavigation('load')\n\nwindow.addEventListener('hashchange', event =>\n pushNavigation('hashchange', {oldURL: event.oldURL, newURL: event.newURL}),\n)\nwindow.addEventListener('popstate', event => pushNavigation('popstate', {eventState: event.state}))\nwindow.addEventListener('pageshow', flagLoaded)\nwindow.addEventListener('pagehide', flagUnloaded)\nwindow.addEventListener('error', reportErrors)\n\ndocument.addEventListener('pjax:success', () => pushNavigation('pjax:success'))\ndocument.addEventListener('pjax:popstate', (event: PJaxPopStateEvent) =>\n pushNavigation('pjax:popstate', {pjaxDirection: event.direction, pjaxState: event.state}),\n)\n\nexport default reportErrors\n","// 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","/**\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","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import {DEFAULT_DOCS_LINK_HOSTNAME} from './constants'\n\n/**\n * Determine if a value is nullish (undefined or null)\n * @param {*} value The value to check\n * @returns boolean\n */\nexport function isDefined(value?: T): value is NonNullable {\n return value !== null && value !== undefined && typeof value !== 'undefined'\n}\n\nexport function onDocumentReady(initializer: () => void) {\n if (document.readyState === 'complete') {\n initializer()\n } else {\n document.addEventListener('DOMContentLoaded', initializer)\n }\n}\n\nexport function decodeHTML(html: string) {\n // DOMParser won't run javascript and just returns text,\n // so this should be safe.\n const doc = new DOMParser().parseFromString(html, 'text/html')\n return doc.documentElement.textContent ?? ''\n}\n\nclass InvariantViolationError extends Error {}\n\nexport function invariant(condition: any, message?: string): asserts condition {\n if (condition) return\n\n throw new InvariantViolationError(message ?? 'Invariant violation')\n}\n\nexport const assertElement = (node: any): node is Element => node instanceof Element\n\nexport const assertHTMLElement = (node: Element | ParentNode | HTMLElement | null): node is HTMLElement =>\n node instanceof HTMLElement\n\nexport const assertSVGElement = (node: SVGElement | SVGSVGElement | null): node is SVGElement =>\n node instanceof SVGElement\n\nexport const getGitHubDocsHostname = () =>\n document.body.getAttribute('data-github-docs-hostname') || DEFAULT_DOCS_LINK_HOSTNAME\n\nconst getDomainName = (hostname: string) => hostname.split('.').slice(-2).join('.').toLowerCase()\n\n/**\n * Determine if the source domain has the same origin as the host domain. To match, the source domain must contain\n * have the same domain name (ignoring subdomains) as the host domain.\n */\nexport const isSameOrigin = (targetHostname: string, sourceHostname: string) =>\n getDomainName(targetHostname) === getDomainName(sourceHostname)\n\n/** Adds `target=\"_parent\"` (if not already set to something else) to all links in this node. */\nexport const openLinksInParent = (node: Element) => {\n for (const link of node.querySelectorAll('a'))\n if (!link.hasAttribute('_target')) link.setAttribute('target', '_parent')\n}\n","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as 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}\nexport { _nonIterableRest as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","/**\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 sandbox = 'sandbox',\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 sandboxReady = 'sandbox:data:ready',\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","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}\nexport { _iterableToArrayLimit as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import {assertElement, invariant} from './utils'\n\n/**\n * LinkNavigator handles linking to relative and absolute URLs from a rich file.\n * Mostly used in geojson pins or within mermaid charts\n *\n * @param hasParent boolean Is this class instantiated from within an iframe?\n */\nclass LinkNavigator {\n private hasParent!: boolean\n\n constructor({hasParent = false}) {\n this.hasParent = hasParent\n\n document.addEventListener('click', (event: MouseEvent) => {\n const target = event.target\n invariant(assertElement(target), `Expected click target to be an instance of Element. Got ${target} instead.`)\n\n if (this.isLinkableNode(target)) {\n this.handleLink(event)\n }\n })\n }\n\n private isLinkableNode = (node: Element) => {\n return node.matches('a') || node.matches('svg')\n }\n\n // Handle the clicking of a link in the document in the context-appropriate way\n public handleLink = (e: MouseEvent) => {\n const target = e.target as HTMLAnchorElement | SVGElement\n const href = target.getAttribute('href') || target.getAttribute('xlink:href') || ''\n\n // Don't bother processing nothing\n if (!href.length) {\n return\n }\n // anchors can just pass through\n if (href.match(/^#/)) {\n return true\n }\n\n e.preventDefault()\n try {\n return this.navigateTo(href)\n } catch (error) {\n window.debug(`Navigation to '${href}' failed:`, error)\n const failClass = 'failed'\n const failInterval = 500\n\n target.classList.add(failClass)\n return setTimeout(() => target.classList.remove(failClass), failInterval)\n }\n }\n\n // Navigate to `href` either by asking the parent for the move, or by\n // performing the navigation myself.\n public navigateTo = (href: string) => {\n if (href.match(/^https?:\\/\\//) || href.match(/^\\/\\//)) {\n this.navigateDirect(href)\n } else {\n this.navigateRelative(href)\n }\n }\n\n public navigateRelative = (relHref: string) => {\n const rootUrl = document.body.getAttribute('data-github-hostname')\n\n // Using the URL constructor to build a full URL to take advantage of the built-in sanitization.\n const baseUrl = new URL(`https://${rootUrl}`)\n const prefixedRelHref = relHref.startsWith('/') ? relHref : `/${relHref}`\n const fullUrl = new URL(prefixedRelHref, baseUrl)\n const protocolRelativeURL = fullUrl.toString().replace(/^https:/, '')\n return this.navigateDirect(protocolRelativeURL)\n }\n\n public navigateDirect = (href: string) => {\n if (this.hasParent) {\n window.top!.location.href = href\n } else {\n window.location.href = href\n }\n }\n}\n\nexport default LinkNavigator\n","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","class ModeSwitcher {\n constructor(\n callback: (mode: ModeType) => void,\n identifier = 'fieldset.js-view-modes',\n childIdentifier = '.js-view-mode-item input',\n ) {\n const menu = document.querySelector(identifier)\n\n if (!menu) {\n return\n }\n\n const options = menu.querySelectorAll(childIdentifier)\n\n for (const option of options)\n option.addEventListener('change', () => {\n for (const checked of menu.querySelectorAll('.selected')) checked.classList.remove('selected')\n option.parentElement?.classList.add('selected')\n callback(option.value as ModeType)\n })\n }\n}\n\nexport default ModeSwitcher\n","type Options = {\n /**\n * @default 50\n */\n percentage?: number\n\n /**\n * @default '.js-dragger'\n */\n identifier?: string\n}\n\ntype Callbacks = {\n slide?(percent: number): void\n mouseDown?(): void\n mouseUp?(): void\n}\n\nclass Slider {\n private dragger!: HTMLElement\n private track!: HTMLElement\n private container!: HTMLElement\n private dragging: boolean\n\n private percentage!: number\n\n constructor(\n private callbacks: Callbacks,\n options: Options,\n ) {\n this.dragger = document.querySelector(options.identifier || '.js-dragger')!\n this.track = this.dragger.parentNode! as HTMLElement\n this.container = this.track.parentNode! as HTMLElement\n this.dragging = false\n\n this.percentage = options.percentage || 50\n this.bindControls()\n }\n\n #handleMouseMove(event: MouseEvent) {\n event.preventDefault()\n\n if (!this.dragging) {\n return\n }\n\n const trackBbox = this.track.getBoundingClientRect()\n const draggerBbox = this.dragger.getBoundingClientRect()\n const ownerWindow = this.track.ownerDocument.defaultView!\n const min = 0\n const max = trackBbox.width - draggerBbox.width\n\n let left = event.clientX! - (trackBbox.left + ownerWindow.scrollX)\n\n if (left < min) {\n left = min\n }\n if (left > max) {\n left = max\n }\n this.dragger.style.left = `${left}px`\n\n this.percentage = (left / max) * 100\n window.debug(`Slider at ${this.percentage}%`)\n\n this.callbacks.slide?.(this.percentage)\n }\n\n #handleMouseUp() {\n if (!this.dragging) {\n return\n }\n\n document.removeEventListener('mousemove', this.#handleMouseMove)\n\n this.dragging = false\n document.body.style.cursor = 'auto'\n\n return this.callbacks.mouseUp?.()\n }\n\n public bindControls = () => {\n this.dragger.addEventListener('mousedown', mousedownEvent => {\n mousedownEvent.preventDefault()\n\n this.dragging = true\n document.body.style.cursor = 'pointer'\n this.callbacks.mouseDown?.()\n\n document.addEventListener('mousemove', this.#handleMouseMove.bind(this))\n document.addEventListener('mouseup', this.#handleMouseUp.bind(this), {once: true})\n })\n }\n\n public value = () => {\n return this.percentage\n }\n\n public setDragger = () => {\n const trackBbox = this.track.getBoundingClientRect()\n const draggerBbox = this.dragger.getBoundingClientRect()\n const max = trackBbox.width - draggerBbox.width\n const left = (this.percentage / 100) * max\n\n this.dragger.style.left = `${left}px`\n }\n\n public show = () => {\n this.container.style.display = 'block'\n this.setDragger()\n }\n\n public hide = () => {\n this.container.style.display = 'none'\n }\n}\n\nexport default Slider\n","import {assertHTMLElement, invariant} from '../../render/utils'\n\ntype ImageBox = {height: number; width: number}\ntype ScalingFn = {\n (imgBox: ImageBox): number\n}\n\n/**\n * The ImageDiffDimensioner resizes image nodes and their parent nodes to the largest\n * height and width of the two images being diffed.\n * Then, we determine and apply a scaling factor produced from the scalingFn argument.\n *\n * The Dimensioner returns references to the image and parent nodes, their dimensions, and\n * image box sizing.\n */\nexport const ImageDiffDimensioner = (added: HTMLImageElement, deleted: HTMLImageElement, scalingFn: ScalingFn) => {\n const getDimensions = (element: HTMLImageElement) => {\n return {\n height: element.clientHeight || 0,\n width: element.clientWidth || 0,\n }\n }\n invariant(assertHTMLElement(added))\n invariant(assertHTMLElement(deleted))\n\n const addedImageFrame = added.parentNode\n const deletedImageFrame = deleted.parentNode\n\n invariant(assertHTMLElement(addedImageFrame))\n invariant(assertHTMLElement(deletedImageFrame))\n\n const addedDimensions = getDimensions(added)\n const deletedDimensions = getDimensions(deleted)\n\n const imageBox = {\n height: Math.max(deletedDimensions.height, addedDimensions.height),\n width: Math.max(deletedDimensions.width, addedDimensions.width),\n }\n const imageMargins = {\n addedHorizMargin: Math.floor(imageBox.width - addedDimensions.width) / 2,\n addedVertMargin: Math.floor(imageBox.height - addedDimensions.height) / 2,\n deletedHorizMargin: Math.floor(imageBox.width - deletedDimensions.width) / 2,\n deletedVertMargin: Math.floor(imageBox.height - deletedDimensions.height) / 2,\n }\n\n const scale = scalingFn(imageBox)\n\n added.style.width = `${addedDimensions.width * scale}px`\n added.style.height = `${addedDimensions.height * scale}px`\n\n deleted.style.width = `${deletedDimensions.width * scale}px`\n deleted.style.height = `${deletedDimensions.height * scale}px`\n\n addedImageFrame.setAttribute(\n 'style',\n `margin: ${imageMargins.addedVertMargin * scale}px ${imageMargins.addedHorizMargin * scale}px;\n width: ${addedDimensions.width * scale + 2}px;\n height: ${addedDimensions.height * scale + 2}px;`,\n )\n\n deletedImageFrame.setAttribute(\n 'style',\n `margin: ${imageMargins.deletedVertMargin * scale}px ${imageMargins.deletedHorizMargin * scale}px;\n width: ${deletedDimensions.width * scale + 2}px;\n height: ${deletedDimensions.height * scale + 2}px;`,\n )\n\n return {\n added: addedDimensions,\n deleted: deletedDimensions,\n imageMargins,\n scale,\n imageBox,\n addedImage: added,\n deletedImage: deleted,\n addedParent: addedImageFrame,\n deletedParent: deletedImageFrame,\n }\n}\n","// Just a single number here, since we default to a square image\nconst DEFAULT_SIZE = 300\n\n// loadImage creates a new image object and attempts to load\n// the supplied source url. It returns a promise that resolves the\n// image object.\nfunction loadImage(url = '') {\n const image = new Image()\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image)\n }\n\n image.onerror = e => {\n reject(e)\n }\n\n image.src = url\n })\n}\n\n// loadSvg attempts to load an svg image, and resizes it if necessary, returning the image object.\nasync function loadSvg(url = '', data) {\n const image = await loadImage(url)\n const dimensions = svgDefaultSizeIfUndefinedData(data, image)\n\n if (dimensions) {\n image.height = dimensions.height\n image.width = dimensions.width\n }\n\n return image\n}\n\n// isSvgRequest determines if an HTTP request contains an SVG content-type header.\nfunction isSvgRequest(xhr) {\n return xhr.headers.get('content-type') === 'image/svg+xml'\n}\n\n/**\n * For our purposes, we consider an SVG to be 'valid' if it has\n * a valid xmlns namespace attribute.\n */\nfunction isValidSvg(svg) {\n const xmlnsAddress = svg.getAttribute('xmlns')\n const hasNameSpace = Boolean(xmlnsAddress)\n\n if (!hasNameSpace) {\n return false\n }\n\n if (new URL(xmlnsAddress).protocol === 'http:') return true\n\n return false\n}\n\n/**\n * getSvgUrl returns either the srcUrl if the svg is valid, or a base64 encoded\n * url of the SVG contents.\n */\nfunction getSvgUrl(svg, srcUrl) {\n if (isValidSvg(svg)) {\n return srcUrl\n }\n\n // svgs without a valid namespace will fail to load correctly\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg')\n\n /**\n * This is the most reliable way to stringify the svg element\n * Calling .outerHTML on the node works in Chrome, but not in Firefox.\n * Likewise, serializing the node using an XMLSerializer object strips\n * the `xmlns` namespace attribute in Firefox.\n */\n const temp = document.createElement('p')\n temp.appendChild(svg)\n\n const svg64 = encodeURIComponent(temp.innerHTML)\n const b64Header = 'data:image/svg+xml;charset=utf-8,'\n\n return `${b64Header}${svg64}`\n}\n\nfunction svgDefaults() {\n // Still haven't given any default height & width? Lets give them arbitrary\n // values since SVGs are scalable and they gave us nothing to work with\n window.debug('Returning arbitrary SVG dimensions')\n return {height: DEFAULT_SIZE, width: DEFAULT_SIZE}\n}\n\nfunction svgDefaultSizeIfUndefinedData(svgDoc, image) {\n // When a document has no children, we know that the SVG didn't have a valid\n // namespace and was loaded from a base64 url. Therefore, we should either return\n // the browser-computed height and width of the image, or else the image size defaults.\n if (!svgDoc.children.length) {\n // Firefox likes to return huge image sizes that make no sense, so if its huge,\n // lets just ignore it and use another means of guessing the SVG size.\n const firefoxBuggySize = Math.pow(2, 32) - 1\n if (image.height > 1 && image.width > 1 && image.height < firefoxBuggySize && image.width < firefoxBuggySize) {\n window.debug(`Returning browser based SVG dimensions: ${image.height} by ${image.width}`)\n return {height: image.height, width: image.width}\n }\n\n return svgDefaults()\n }\n\n // SVGs may have a root element, if they are a document, or they may be an actual\n // instance of an svg node. Both of these conform to the Node interface.\n const maybeSvg = svgDoc?.rootElement ?? svgDoc\n\n // If we don't have a valid node, fall back to an empty object so checks below don't fail.\n const svg = maybeSvg instanceof Node ? maybeSvg : {}\n\n // If the SVG has a defined height & width that isn't a % we don't need to do\n // anything. Percentages can be explicitly passed in or computed when\n // specifying a viewBox\n const height = svg?.height?.baseVal\n const width = svg?.width?.baseVal\n\n if (\n height?.unitType !== SVGLength.SVG_LENGTHTYPE_PERCENTAGE &&\n width.unitType !== SVGLength.SVG_LENGTHTYPE_PERCENTAGE\n ) {\n return\n }\n\n // If the browser doesn't help us, lets try to determine the aspect ratio from\n // the viewbox and use an arbitrary height of 300px\n if ('hasAttribute' in svg && svg.hasAttribute('viewBox')) {\n const vb = svg.viewBox.baseVal\n const aspectRatio = vb.width / vb.height\n window.debug(`Returning viewbox based SVG dimensions with aspectRatio ${aspectRatio}`)\n return {height: DEFAULT_SIZE, width: DEFAULT_SIZE * aspectRatio}\n }\n\n return svgDefaults()\n}\n\nexport {svgDefaultSizeIfUndefinedData, getSvgUrl, isSvgRequest, loadImage, loadSvg}\n","import {STATUS_TYPES} from '../../render/constants'\nimport type Status from '../../render/status'\nimport {isSvgRequest, getSvgUrl, loadImage, loadSvg} from './utils'\n\n/**\n * This function is somewhat complex because we want to try and support\n * svgs that should be valid but are malformed due to a missing xmlns namespace\n * attribute.\n *\n * Previously, we parsed this using 'text/xml' but this depends on a valid namespace\n * existing. So, we instead parse the string as an html tag, and attempt to find the\n * svg element.\n *\n * Throwing an error here feels best, since it indicates we recieved a response from\n * the server that was expected to be an SVG, but wasn't.\n */\nfunction parseSVG(data: string) {\n const parser = new DOMParser()\n const svg = parser.parseFromString(data, 'text/html')\n const svgElement = svg?.children?.[0]?.querySelector('svg')\n\n if (svgElement?.nodeName !== 'svg') {\n throw new Error('Invalid element, not an SVG node.')\n }\n return svgElement\n}\n\nclass ImageLoader {\n constructor(protected status: Status) {\n this.status = status\n }\n\n handleError(error: Error) {\n window.debug('Error loading image: ', error.message)\n this.status.set(STATUS_TYPES.fatal, {error: 'Invalid image source.'})\n }\n\n handleSuccess = (url: string, data: string, xhr: Response): Promise => {\n const didLoadSvg = isSvgRequest(xhr)\n\n if (!didLoadSvg) {\n return loadImage(url)\n }\n\n const svgElement = parseSVG(data)\n\n return loadSvg(getSvgUrl(svgElement, url), svgElement)\n }\n\n fetch = (url: string, onSuccess?: (image: HTMLImageElement) => void, onError?: (error: Error) => void) => {\n window.debug(`Attempting to load image URL: [${url}]`)\n this.status.load(url, {\n json: false,\n success: async (document, xhr: Response) => {\n try {\n const image = await this.handleSuccess(url, document as string, xhr)\n onSuccess?.(image)\n } catch (error: unknown) {\n onError?.(error as Error)\n this.handleError(error as Error)\n }\n },\n error: (error: Error) => {\n onError?.(error)\n this.handleError(error)\n },\n })\n }\n}\n\nexport {ImageLoader}\n","import type {DiffModes} from 'img'\nimport {STATUS_TYPES} from '../../render/constants'\nimport ModeSwitcher from '../../render/mode-switcher'\nimport Slider from '../../render/slider'\nimport type Status from '../../render/status'\nimport {assertHTMLElement, invariant} from '../../render/utils'\nimport {ImageDiffDimensioner} from './diff-image-dimensioner'\nimport {ImageLoader} from './image-loader'\n\ntype FileState = 'added' | 'deleted'\ntype TwoUpMetaInfo = {\n addedHeight: HTMLElement\n addedWidth: HTMLElement\n deletedHeight: HTMLElement\n deletedWidth: HTMLElement\n}\n\nconst MAX_SHELL_WIDTH = 858\n\nclass ImageDiff extends ImageLoader {\n private clicked = false\n private loaded: Record = {\n added: false,\n deleted: false,\n }\n private slider: null | Slider = null\n\n constructor(\n private shell: HTMLElement,\n protected status: Status,\n ) {\n super(status)\n\n const deleted = this.shell.getAttribute('data-file1') ?? ''\n const added = this.shell.getAttribute('data-file2') ?? ''\n\n this.fetch(deleted, image => this.onImageLoad('deleted', image))\n this.fetch(added, image => this.onImageLoad('added', image))\n\n new ModeSwitcher(this.switchMode)\n this.shell.addEventListener(\n 'click',\n () => {\n this.clicked = true\n },\n {once: true},\n )\n }\n\n onImageLoad = (type: FileState, image: HTMLImageElement) => {\n const images = Array.from(document.querySelectorAll(`img.${type}`))\n\n let loaded = 0\n for (const img of images) {\n const attrs = img.attributes\n for (const attr of attrs) {\n image.setAttribute(attr.name, attr.value)\n }\n const clone = image.cloneNode() as HTMLImageElement\n clone.onload = () => {\n img.parentNode?.replaceChild(clone, img)\n loaded += 1\n this.loaded[type] = loaded === images.length\n this.setReadyIfLoaded()\n }\n }\n }\n\n setReadyIfLoaded = () => {\n let allLoaded = true\n for (const type in this.loaded) {\n const imgLoaded = this.loaded[type as FileState]\n allLoaded = allLoaded && imgLoaded\n }\n if (allLoaded) {\n this.initViews()\n }\n }\n\n reInit = (timeout = 100) => {\n if (!this.clicked) {\n this.switchMode('two-up')\n if (timeout < 10000) {\n setTimeout(() => this.reInit(timeout * 2), timeout * 2)\n }\n }\n }\n\n initViews = () => {\n const added = Array.from(document.querySelectorAll('img.added'))\n const deleted = Array.from(document.querySelectorAll('img.deleted'))\n\n this.initTwoUp(added[0], deleted[0])\n this.initSwipe(added[1], deleted[1])\n this.initOnion(added[2], deleted[2])\n\n this.status.set(STATUS_TYPES.ready)\n setTimeout(this.reInit, 100)\n }\n\n initTwoUp = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const twoUp = ImageDiffDimensioner(added, deleted, imageBox => {\n let twoUpScale = 1\n if (imageBox.width > (MAX_SHELL_WIDTH - 30) / 2) {\n twoUpScale = (MAX_SHELL_WIDTH - 30) / 2 / imageBox.width\n }\n return twoUpScale\n })\n\n const metaTextEls = ['added', 'deleted'].reduce((memo, type) => {\n for (const attr of ['height', 'width']) {\n const capital = `${attr.slice(0, 1).toUpperCase()}${attr.slice(1)}`\n const element = document.querySelector(`.${type}-meta .${attr}`)\n if (element) {\n memo = {...memo, [`${type}${capital}`]: element}\n }\n }\n return memo\n }, {} as TwoUpMetaInfo)\n\n if (Object.values(metaTextEls).length !== 4) {\n throw new Error('Invalid DOM structure')\n }\n\n metaTextEls.addedHeight.textContent = `${twoUp.addedImage.naturalHeight}px`\n metaTextEls.addedWidth.textContent = `${twoUp.addedImage.naturalWidth}px`\n metaTextEls.deletedHeight.textContent = `${twoUp.deletedImage.naturalHeight}px`\n metaTextEls.deletedWidth.textContent = `${twoUp.deletedImage.naturalWidth}px`\n\n const deletedLabel = document.querySelector('.label-deleted')\n\n if (deletedLabel && twoUp.added.width < 30 && twoUp.deleted.width < 30) {\n deletedLabel.style.right = '25%'\n }\n }\n\n initSwipe = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const swipe = ImageDiffDimensioner(added, deleted, imageBox => {\n let swipeScale = 1\n if (imageBox.width > MAX_SHELL_WIDTH - 12) {\n swipeScale = (MAX_SHELL_WIDTH - 12) / imageBox.width\n }\n return swipeScale\n })\n\n const deletedSwipeFrame = swipe.deletedParent.parentNode\n const addedSwipeFrame = swipe.addedParent.parentNode\n\n invariant(assertHTMLElement(deletedSwipeFrame))\n invariant(assertHTMLElement(addedSwipeFrame))\n\n deletedSwipeFrame.setAttribute(\n 'style',\n `width: ${swipe.imageBox.width * swipe.scale + 2}px; height: ${swipe.imageBox.height * swipe.scale + 2}px`,\n )\n\n addedSwipeFrame.setAttribute(\n 'style',\n `padding: ${swipe.imageMargins.addedVertMargin * swipe.scale}px 0 0 0;width: ${\n swipe.imageBox.width * swipe.scale + 2\n }px;height: ${swipe.imageBox.height * swipe.scale - swipe.imageMargins.addedVertMargin * swipe.scale + 4}px`,\n )\n\n const swipeContainerEl = document.querySelector('.swipe')\n\n invariant(assertHTMLElement(swipeContainerEl))\n swipeContainerEl.setAttribute(\n 'style',\n `width: ${swipe.imageBox.width * swipe.scale + 2}px;\n height: ${swipe.imageBox.height * swipe.scale + 4}px`,\n )\n\n const swipeBar = document.querySelector('.swipe-bar')\n invariant(assertHTMLElement(swipeBar))\n\n swipeBar.addEventListener('mousedown', event => {\n event.preventDefault()\n\n const container = swipeBar.parentNode\n invariant(assertHTMLElement(container))\n\n const max = container.clientWidth - swipeBar.clientWidth\n const containerEl = container\n\n function handleMouseUp() {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'auto'\n }\n\n function handleMouseMove(swipeMoveEvent: MouseEvent) {\n swipeMoveEvent.preventDefault()\n\n let left = swipeMoveEvent.clientX - containerEl.getBoundingClientRect().left\n if (left < 0) {\n left = 0\n }\n if (left > max) {\n left = max\n }\n\n if (swipeBar) {\n swipeBar.style.left = `${left}px`\n }\n\n const swipeShell = document.querySelector('.swipe-shell')\n const swipeFrame = document.querySelector('.swipe-frame')\n\n if (swipeFrame && swipeShell) {\n swipeShell.style.width = `${swipeFrame.clientWidth - left}px`\n }\n\n document.addEventListener('mouseup', handleMouseUp)\n }\n\n document.body.style.cursor = 'pointer'\n document.addEventListener('mousemove', handleMouseMove)\n })\n }\n\n initOnion = (added: HTMLImageElement, deleted: HTMLImageElement) => {\n const onion = ImageDiffDimensioner(added, deleted, imageBox => {\n let onionScale = 1\n if (imageBox.width > MAX_SHELL_WIDTH - 12) {\n onionScale = (MAX_SHELL_WIDTH - 12) / imageBox.width\n }\n return onionScale\n })\n\n const onionFrameShell = onion.deletedParent.parentNode\n invariant(assertHTMLElement(onionFrameShell))\n\n onionFrameShell.setAttribute(\n 'style',\n `width: ${onion.imageBox.width * onion.scale + 2}px;\n height: ${onion.imageBox.height * onion.scale + 2}px`,\n )\n\n const onionSkinEl = document.querySelector('.onion-skin')!\n invariant(assertHTMLElement(onionFrameShell))\n onionSkinEl.setAttribute(\n 'style',\n `width: ${onion.imageBox.width * onion.scale + 2}px;\n height: ${onion.imageBox.height * onion.scale + 4}px`,\n )\n\n this.slider = new Slider(\n {\n slide: percentage => {\n if (onion.addedParent) {\n onion.addedParent.style.opacity = `${percentage / 100}`\n }\n },\n },\n {percentage: 100},\n )\n }\n\n switchMode = (mode: DiffModes) => {\n const viewEls = Array.from(document.querySelectorAll('.view'))\n\n const modeView = viewEls.find(view => view.classList.contains(mode))\n\n if (!modeView) {\n window.debug('Unknown mode!')\n return\n }\n\n for (const view of viewEls) {\n view.style.display = 'none'\n }\n\n const renderBarEl = document.querySelector('.render-bar')\n let padding = (renderBarEl?.getBoundingClientRect().height ?? 0) + 40\n\n if (mode === 'swipe') {\n padding += 14 // Height of drag handle\n } else if (mode === 'onion-skin') {\n padding += 45 // Includes bottom slider\n }\n\n modeView.style.display = 'block'\n this.status.set(STATUS_TYPES.resize, {height: modeView.getBoundingClientRect().height + padding})\n if (this.slider && mode === 'onion-skin') {\n this.slider.setDragger()\n }\n }\n}\n\nexport default ImageDiff\n","import {STATUS_TYPES} from '../../render/constants'\nimport {ImageLoader} from './image-loader'\n\nclass ImageViewer extends ImageLoader {\n constructor(shell, status) {\n super(status)\n\n this.onImageLoad = this.onImageLoad.bind(this)\n\n // 30 px on each side\n this.imagePadding = 60\n this.shell = shell\n this.status.set(STATUS_TYPES.loading)\n\n const url = this.shell.getAttribute('data-image')\n this.fetch(url, this.onImageLoad)\n }\n\n onImageLoad(image) {\n this.shell.appendChild(image)\n this.status.set(STATUS_TYPES.ready, {height: this.imageHeightAfterResize(image) + this.imagePadding})\n }\n\n documentWidth() {\n try {\n const renderShell = document.querySelector('.render-shell')\n /**\n * We use this over boundingClientRect because the original jquery implementation\n * was consistently returning 0. This was due to the .width method being called on\n * a hidden div. boundClientRect seems to be able to correctly resolve the true\n * width of the image, which led to the image being incorrectly scaled.\n */\n const shellStyles = window.getComputedStyle(renderShell)\n\n return parseInt(shellStyles.width)\n } catch (error) {\n window.debug('Failed to parse iframe document width', error.message)\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":["_isNativeFunction","t","Function","toString","call","indexOf","n","asyncGeneratorStep","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","this","arguments","apply","_next","_throw","_isNativeReflectConstruct","Boolean","prototype","valueOf","Reflect","construct","_typeof","Symbol","iterator","constructor","toPrimitive","TypeError","String","Number","_defineProperties","length","enumerable","configurable","writable","Object","defineProperty","key","_createClass","_classCallCheck","logMessage","_len","messageArgs","Array","_key","args","time","Date","now","Logger","options","undefined","loggerFn","window","console","log","quiet","_defineProperty","_loggerFn","storeMessage","bufCopy","buffer","push","nextBuffer","slice","bufferSize","_step","numMessages","_iterator","_createForOfIteratorHelper","s","message","concat","isArray","arrayLikeToArray","from","unsupportedIterableToArray","err","f","Render","logger","_window$console","IS_QUIET_MODE","debug","bind","_arrayLikeToArray","InvalidProtocolError","_Error","_callSuper","_inherits","_wrapNativeSuper","Error","FailedError","_Error2","_this","isClientUrl","url","exec","renderableLoaderDefaults","setStatus","attempts","timeout","json","statusOptionDefaults","allowLinks","initialMessage","STATUS_TYPES","hello","_onSuccess","WeakMap","_onError","_Status_brand","WeakSet","_onBeforeSend","_prepareFetchedData","_x2","_x3","_prepareFetchedData2","_regeneratorRuntime","_callee2","result","maybeJson","_context2","prev","next","headers","get","arrayBuffer","abrupt","sent","text","t0","JSON","parse","unescape","t1","set","fatal","reportStatusError","stop","Status","format","_document$body$getAtt","_document$body$getAtt2","_this2","opts","initial","remaining","interval","initialStatusTimeout","acked","setTimeout","sendInitial","clearTimeout","_classPrivateFieldInitSpec","loaded","error","status","payload","alreadySentStatus","isDefined","resize","includes","ago","Math","abs","when","messages","ready","onReady","requireAck","post","type","body","localTiming","submitTiming","_step2","_iterator2","msg","origin","timing","_navigator$sendBeacon","_navigator","stringify","baseRenderUrl","document","getAttribute","navigator","sendBeacon","_navigator$sendBeacon2","_navigator2","cmd","arg","MESSAGE_RESPONSE_TYPES","branding","renderableContent","ack","onAck","markdown","trigger","data","width","containerSize","readyAck","sandboxReady","content","scripts","styles","classList","remove","event","originHostname","URL","host","isSameOrigin","githubHostname","_ref","_unused","identity","handleCmd","parent","_objectSpread","githubEnv","LinkNavigator","hasParent","haveParent","location","hash","substring","protocol","addEventListener","handleMessage","filter","_load","_callee","_finalOptions$attempt","_finalOptions$before","_finalOptions$success","_finalOptions$error","_finalOptions$before2","finalOptions","requestController","abortTimeoutId","settings","response","_this3","_args","_context","loading","clientTimeoutAttempts","before","_assertClassBrand","success","_classPrivateFieldGet","AbortController","abort","method","signal","fetch","finish","load","submitGiveup","Response","_x","_msg$identity","parentHostname","referrer","hostname","targetOrigin","postMessage","target","name","CustomEvent","detail","dispatchEvent","reportErrors","ErrorEvent","filename","_slicedToArray","_setPrototypeOf","setPrototypeOf","__proto__","module","exports","__esModule","_getPrototypeOf","getPrototypeOf","UNKNOWN_FUNCTION","stackString","split","reduce","stack","line","parseResult","parts","chromeRe","isNative","isEval","submatch","chromeEvalRe","file","methodName","lineNumber","column","parseChrome","winjsRe","parseWinjs","geckoRe","geckoEvalRe","parseGecko","nodeRe","parseNode","javaScriptCoreRe","parseJSC","hasOwnProperty","asyncIterator","toStringTag","define","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","awrap","async","keys","reverse","pop","charAt","rval","handle","complete","delegateYield","baseContext","originalHistoryState","history","state","ERROR_METADATA_KEYS","errorFallback","failbotContext","isBrowserExtension","loadTime","getTime","unloaded","reportable","locationData","pathname","search","_pathParts$slice","_pathParts$slice2","action","urlParams","paramsMetadata","lineno","safeError","exceptionDetail","stacktrace","map","frame","function","colno","context","href","readyState","historyState","timeSinceLoad","round","extensionScripts","sort","navigations","getNavigations","platform","URLSearchParams","entries","memo","pair","logging","debugMessages","viewscreenUrl","errorsReported","errorStack","_i","_scripts","querySelectorAll","script","test","src","pushNavigation","loadType","info","sessionStorage","setItem","NAVIGATIONS_KEY","_unused3","setNavigations","getItem","_unused2","oldURL","newURL","eventState","pjaxDirection","direction","pjaxState","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","object","reEscapedHtml","reHasEscapedHtml","RegExp","source","freeGlobal","freeSelf","self","root","unescapeHtmlChar","objectToString","symbolProto","symbolToString","string","isObjectLike","isSymbol","baseToString","replace","Map","has","Wrapper","onDocumentReady","initializer","InvariantViolationError","invariant","condition","assertElement","node","Element","assertHTMLElement","HTMLElement","getDomainName","join","toLowerCase","targetHostname","sourceHostname","_construct","_arrayWithHoles","_nonIterableRest","_possibleConstructorReturn","RENDER_FORMATS","_iterableToArrayLimit","_unsupportedIterableToArray","_assertThisInitialized","ReferenceError","_ref$hasParent","matches","match","preventDefault","navigateTo","failClass","add","navigateDirect","navigateRelative","relHref","rootUrl","baseUrl","prefixedRelHref","startsWith","protocolRelativeURL","top","isLinkableNode","handleLink","toPropertyKey","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","obj","prop","ModeSwitcher","callback","identifier","childIdentifier","menu","querySelector","_loop","option","_option$parentElement","parentElement","_handleMouseMove","_this$callbacks$slide","_this$callbacks2","dragging","trackBbox","track","getBoundingClientRect","draggerBbox","dragger","ownerWindow","ownerDocument","defaultView","max","left","clientX","scrollX","style","percentage","callbacks","slide","_handleMouseUp","_this$callbacks$mouse2","_this$callbacks3","removeEventListener","_Slider_brand","cursor","mouseUp","Slider","mousedownEvent","_this$callbacks$mouse","_this$callbacks","mouseDown","once","container","display","setDragger","parentNode","bindControls","ImageDiffDimensioner","added","deleted","scalingFn","getDimensions","element","height","clientHeight","clientWidth","addedImageFrame","deletedImageFrame","addedDimensions","deletedDimensions","imageBox","imageMargins","addedHorizMargin","floor","addedVertMargin","deletedHorizMargin","deletedVertMargin","scale","setAttribute","addedImage","deletedImage","addedParent","deletedParent","DEFAULT_SIZE","loadImage","image","Image","reject","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","isValidSvg","temp","createElement","appendChild","svg64","encodeURIComponent","innerHTML","getSvgUrl","onSuccess","onError","_success","handleSuccess","handleError","_ImageLoader","ImageDiff","shell","_this$shell$getAttrib","_this$shell$getAttrib2","images","img","_images","attributes","attr","clone","cloneNode","_img$parentNode","replaceChild","setReadyIfLoaded","allLoaded","imgLoaded","initViews","clicked","switchMode","reInit","initTwoUp","initSwipe","initOnion","twoUp","twoUpScale","metaTextEls","_i2","_arr","capital","toUpperCase","addedHeight","textContent","naturalHeight","addedWidth","naturalWidth","deletedHeight","deletedWidth","deletedLabel","right","swipe","swipeScale","MAX_SHELL_WIDTH","deletedSwipeFrame","addedSwipeFrame","swipeContainerEl","swipeBar","containerEl","handleMouseUp","handleMouseMove","swipeMoveEvent","swipeShell","swipeFrame","onion","onionScale","onionFrameShell","onionSkinEl","slider","opacity","mode","_renderBarEl$getBound","viewEls","modeView","find","view","contains","_i3","_viewEls","renderBarEl","padding","onImageLoad","ImageViewer","imagePadding","imageHeightAfterResize","renderShell","shellStyles","getComputedStyle","parseInt","fallback","docWidth","documentWidth","cssWidth","imageCssWidth","parsedWidth","minWidth","min","maxWidth","computeMaxWidth","scalingFactor"],"sourceRoot":""}