{"version":3,"sources":["/w/extensions/Popups/webpack/bootstrap","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/defineProperty.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/iterableToArray.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/nonIterableRest.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/slicedToArray.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/toConsumableArray.js","/w/extensions/Popups/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","/w/extensions/Popups/./node_modules/redux-thunk/dist/redux-thunk.min.js","/w/extensions/Popups/./node_modules/redux/dist/redux.min.js","/w/extensions/Popups/(webpack)/buildin/global.js","/w/extensions/Popups/(webpack)/buildin/module.js","/w/extensions/Popups/./src/canSaveToUserPreferences.js","/w/extensions/Popups/./src/constants.js","/w/extensions/Popups/./src/bracketedPixelRatio.js","/w/extensions/Popups/./src/preview/model.js","/w/extensions/Popups/./src/formatter.js","/w/extensions/Popups/./src/gateway/index.js","/w/extensions/Popups/./src/gateway/mediawiki.js","/w/extensions/Popups/./src/gateway/rest.js","/w/extensions/Popups/./src/gateway/restFormatters.js","/w/extensions/Popups/./src/gateway/page.js","/w/extensions/Popups/./src/gateway/reference.js","/w/extensions/Popups/./src/previewBehavior.js","/w/extensions/Popups/./src/ui/templates/templateUtil.js","/w/extensions/Popups/./src/ui/templates/settingsDialog/settingsDialog.js","/w/extensions/Popups/./src/ui/settingsDialogRenderer.js","/w/extensions/Popups/./src/ui/settingsDialog.js","/w/extensions/Popups/./src/changeListener.js","/w/extensions/Popups/./src/isPagePreviewsEnabled.js","/w/extensions/Popups/./src/title.js","/w/extensions/Popups/./src/wait.js","/w/extensions/Popups/./src/ui/thumbnail.js","/w/extensions/Popups/./src/ui/templates/popup/popup.js","/w/extensions/Popups/./src/ui/templates/preview/preview.js","/w/extensions/Popups/./src/instrumentation/referencePreviews.js","/w/extensions/Popups/./src/ui/templates/referencePreview/referencePreview.js","/w/extensions/Popups/./src/ui/templates/pagePreview/pagePreview.js","/w/extensions/Popups/./src/ui/renderer.js","/w/extensions/Popups/./src/changeListeners/syncUserSettings.js","/w/extensions/Popups/./src/changeListeners/index.js","/w/extensions/Popups/./src/changeListeners/footerLink.js","/w/extensions/Popups/./src/changeListeners/linkTitle.js","/w/extensions/Popups/./src/changeListeners/pageviews.js","/w/extensions/Popups/./src/changeListeners/render.js","/w/extensions/Popups/./src/changeListeners/settings.js","/w/extensions/Popups/./src/changeListeners/statsv.js","/w/extensions/Popups/./src/actionTypes.js","/w/extensions/Popups/./src/actions.js","/w/extensions/Popups/./src/reducers/nextState.js","/w/extensions/Popups/./src/reducers/index.js","/w/extensions/Popups/./src/reducers/pageviews.js","/w/extensions/Popups/./src/reducers/preview.js","/w/extensions/Popups/./src/reducers/settings.js","/w/extensions/Popups/./src/reducers/statsv.js","/w/extensions/Popups/./src/isReferencePreviewsEnabled.js","/w/extensions/Popups/./src/index.js","/w/extensions/Popups/./src/setUserConfigFlags.js","/w/extensions/Popups/./src/experiments.js","/w/extensions/Popups/./src/userSettings.js","/w/extensions/Popups/./src/instrumentation/statsv.js","/w/extensions/Popups/./src/integrations/mwpopups.js","/w/extensions/Popups/./src/ui/pointer-mask.svg"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arr","len","length","arr2","Array","isArray","arrayLikeToArray","obj","configurable","writable","iter","iterator","from","_i","_s","_e","_arr","_n","_d","next","done","push","err","TypeError","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","minLen","toString","slice","constructor","test","e","id","loaded","dispatch","getState","withExtraArgument","default","observable","self","window","global","Math","random","substring","split","join","INIT","REPLACE","PROBE_UNKNOWN_ACTION","type","apply","this","arguments","u","a","reduce","createStore","Error","f","h","indexOf","splice","y","getPrototypeOf","subscribe","replaceReducer","unsubscribe","combineReducers","keys","forEach","bindActionCreators","applyMiddleware","map","getOwnPropertySymbols","concat","filter","getOwnPropertyDescriptor","compose","__DO_NOT_USE__ActionTypes","g","Function","webpackPolyfill","deprecate","paths","children","user","isAnon","isNamed","bpr","dpr","devicePixelRatio","bracketedPixelRatio","BRACKETED_DEVICE_PIXEL_RATIO","THUMBNAIL_SIZE","max","EXTRACT_LENGTH","previewTypes","TYPE_GENERIC","TYPE_PAGE","TYPE_DISAMBIGUATION","TYPE_REFERENCE","createModel","title","url","languageCode","languageDirection","extract","thumbnail","pageId","processedExtract","processExtract","undefined","getPagePreviewType","createNullModel","registeredPreviewTypes","getPreviewType","el","candidates","element","selector","matches","selectors","dwellDelay","getDwellDelay","registerModel","delay","setDwellTime","formatPlainTextExtract","plainTextExtract","elements","boldIdentifier","snip","replace","trim","escapedTitle","mw","util","escapeRegExp","regExp","RegExp","part","highlightNode","document","createElement","textContent","createTextNode","makeTitleInExtractBold","abortablePromise","promise","abort","gatewayMap","registerGatewayForPreviewType","gateway","extractPageFromResponse","data","query","pages","result","assign","formatter","convertPageToModel","page","canonicalurl","pagelanguagehtmlcode","pagelanguagedir","pageid","createRESTBaseGateway","ajax","config","extractParser","fetch","endpoint","encodeURIComponent","headers","Accept","acceptLanguage","fetchPreviewForTitle","titleText","getPrefixedDb","xhr","then","catch","jqXHR","textStatus","errorThrown","Promise","reject","exception","generateThumbnailData","original","thumbSize","parts","source","lastPart","originalIsSafe","filename","isSafeImgFormat","filenamePxIndex","width","height","floor","Title","getUrl","lang","dir","originalimage","parseHTMLResponse","extract_html","extractNode","innerHTML","childNodes","parsePlainTextResponse","options","controller","AbortController","signal","resp","json","createPagePreviewGateway","gatewayConfig","constants","restConfig","api","action","prop","formatversion","redirects","exintro","exchars","explaintext","exsectionformat","piprop","pithumbsize","pilicense","rvprop","inprop","titles","smaxage","maxage","uselang","createMediaWikiApiGateway","Api","formatters","createReferenceGateway","getFragment","referenceNode","idSelector","CSS","escape","querySelector","scrapeReferenceText","textContext","readyState","referenceText","KNOWN_TYPES","citeTags","model","referenceType","querySelectorAll","classNames","className","sourceElementId","parentNode","resolve","canSaveToUserPreferences","require","escapeHTML","str","html","templates","createNodeFromTemplate","div","firstElementChild","cloneNode","renderSettingsDialog","heading","saveLabel","closeLabel","helpText","okLabel","choices","description","isChecked","escapeChoices","node","createSettingsDialogRenderer","referencePreviewsAvaliable","dialog","overlay","boundActions","msg","createSettingsDialog","classList","add","addEventListener","enabled","saveSettings","hideSettings","appendTo","appendChild","show","style","display","hide","toggleHelp","visible","hideAll","showAll","setEnabled","checked","nodes","registerChangeListener","store","callback","previousState","state","fromElement","dataset","newFromText","hash","host","location","pathname","search","isOwnPageAnchorLink","decodeURIComponent","contentNamespaces","mwTitle","namespace","isValid","href","linkHref","Uri","hostname","queryLength","pattern","exec","path","fragment","getTitle","wait","setTimeout","SIZES","w","createThumbnail","rawThumbnail","useCSSClipPath","thumbWidth","thumbHeight","tall","x","aspectRatio","isSquare","img","isNarrow","src","thumbnailWidth","thumbnailHeight","nsSvg","line","createElementNS","points","setAttribute","thumbnailSVGImage","setAttributeNS","addAttributes","xmlns","createThumbnailSVG","isTall","offset","attrs","renderPopup","container","renderPreview","message","linkMsg","popup","messageElement","remove","readLink","isTracking","LOGGING_SCHEMA","isTrackingEnabled","replaceWith","htmlOrOtherNode","insertAdjacentHTML","renderReferencePreview","titleMsg","exists","text","target","rel","otherNode","icon","label","undoHeaderSort","headerSort","removeAttribute","settingsButton","settingsIcon","settingsButtonLabel","append","ev","track","scrolledToBottom","scrollTop","scrollHeight","clientHeight","isOpenRecorded","scrollbarsPresent","isScrollRecorded","isScrolling","hasHorizontalScroll","scrollWidth","clientWidth","scrollbarHeight","offsetHeight","hasVerticalScroll","scrollbarWidth","offsetWidth","fade","bottom","right","toggle","renderPagePreview","withCSSClipPath","linkTitle","linkDiscreet","labelText","extractWidth","getExtractWidth","init","supportsCSSClipPath","body","pointerMaskSVG","render","preview","renderers","createEmptyPreview","createPreviewWithType","event","token","measures","_link","behavior","layout","isPreviewTall","pointerSpaceSize","offsetLeft","flippedX","flippedY","offsetTop","pageY","getClosestYPosition","clientRects","top","clientTop","clientY","pageX","left","windowWidth","windowHeight","createLayout","classes","predefinedLandscapeImageHeight","hasThumbnail","marginTop","maskID","getThumbnailClipPathID","matrix","scaleX","translateX","min","getElementById","setThumbnailClipPath","layoutPreview","hasPointerOnImage","getClasses","contains","dispatchEvent","Event","previewDwell","previewAbandon","click","button","settingsUrl","stopPropagation","showSettings","bindBehavior","previewShow","documentElement","getAttribute","fadeInClass","fadeOutClass","registerPreviewUI","previewFn","createPagePreview","supports","createDisambiguationPreview","createReferencePreview","rects","isTop","minY","rect","deltaY","abs","ceil","syncIfChanged","oldState","newState","sync","current","footerLink","footerLinkElement","footerListItem","footer","footerLegacy","createFooterLink","preventDefault","settings","shouldShowFooterLink","savedTitle","oldLink","activeLink","previewType","destroyTitleAttr","pageviews","pageviewTracker","pageview","source_page_id","source_namespace","namespaceId","source_title","source_url","page_id","page_namespace","page_title","pageviewLogged","previewBehavior","shouldShow","renderer","fetchResponse","activeToken","settingsObj","showHelp","statsv","statsvObj","statsvLogged","syncUserSettings","userSettings","storePagePreviewsEnabled","storeReferencePreviewsEnabled","timedAction","baseAction","timestamp","now","boot","initiallyEnabled","editCount","types","isNavPopupsEnabled","sessionToken","sessionId","pageToken","getPageviewToken","isTemp","chain","fetchType","all","ex","showNullPreview","linkDwell","generateToken","isNewInteraction","enabledValue","abandon","linkClick","currentToken","validType","oldValue","newValue","nextState","updates","hasOwn","clone","actionTypes","isUserDwelling","wasClicked","nothingChanged","every","userOptedOut","some","anyDisabled","fetchStartedAt","linkDwellStartedAt","EXCLUDED_LINK_SELECTORS","handleDOMEventIfEligible","handler","nodeType","closest","titleFromElement","tagName","errorLogger","logError","popupsFlags","parseInt","set","mwExperiments","storage","Redux","generateRandomSessionId","pagePreviewGateway","referenceGateway","isPagePreviewsEnabled","isReferencePreviewsEnabled","referencePreviewsState","settingsDialog","experiments","weightedBoolean","trueWeight","getBucket","buckets","true","false","statsvTracker","bucketingRate","isStatsvEnabled","getStatsvTracker","getPageviewTracker","createIsPagePreviewsEnabled","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","onHover","onHoverOut","onClick","reducers","ReduxThunk","actions","createPreviewBehavior","registerActions","changeListeners","registerChangeListeners","popups","isEnabled","register","renderFn","subTypes","subTypePreview","createMediaWikiPopupsObject","excludedLinksSelector","FETCH_COMPLETE_TARGET_DELAY","navigator","sendBeacon","rendererInit","getGatewayForPreviewType","scrollY","bbox","getBoundingClientRect","scrollX","getClientRects","innerWidth","innerHeight","log","warn"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.ReduxThunk=e():t.ReduxThunk=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return t[o].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p=\"\",e(0)}([function(t,e,n){t.exports=n(1)},function(t,e){\"use strict\";function n(t){return function(e){var n=e.dispatch,o=e.getState;return function(e){return function(r){return\"function\"==typeof r?r(n,o,t):e(r)}}}}e.__esModule=!0;var o=n();o.withExtraArgument=n,e.default=o}])});","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.Redux={})}(this,function(e){\"use strict\";var t=function(e){var t,r=e.Symbol;return\"function\"==typeof r?r.observable?t=r.observable:(t=r(\"observable\"),r.observable=t):t=\"@@observable\",t}(\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof module?module:Function(\"return this\")()),r=function(){return Math.random().toString(36).substring(7).split(\"\").join(\".\")},n={INIT:\"@@redux/INIT\"+r(),REPLACE:\"@@redux/REPLACE\"+r(),PROBE_UNKNOWN_ACTION:function(){return\"@@redux/PROBE_UNKNOWN_ACTION\"+r()}};function o(e,t){var r=t&&t.type;return\"Given \"+(r&&'action \"'+r+'\"'||\"an action\")+', reducer \"'+e+'\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function i(e,t){return function(){return t(e.apply(this,arguments))}}function u(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}e.createStore=function e(r,o,i){var u;if(\"function\"==typeof o&&\"function\"==typeof i||\"function\"==typeof i&&\"function\"==typeof arguments[3])throw Error(\"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function\");if(\"function\"==typeof o&&void 0===i&&(i=o,o=void 0),void 0!==i){if(\"function\"!=typeof i)throw Error(\"Expected the enhancer to be a function.\");return i(e)(r,o)}if(\"function\"!=typeof r)throw Error(\"Expected the reducer to be a function.\");var a=r,c=o,f=[],s=f,d=!1;function l(){s===f&&(s=f.slice())}function p(){if(d)throw Error(\"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");return c}function h(e){if(\"function\"!=typeof e)throw Error(\"Expected the listener to be a function.\");if(d)throw Error(\"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.\");var t=!0;return l(),s.push(e),function(){if(t){if(d)throw Error(\"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.\");t=!1,l();var r=s.indexOf(e);s.splice(r,1)}}}function y(e){if(!function(e){if(\"object\"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw Error(\"Actions must be plain objects. Use custom middleware for async actions.\");if(void 0===e.type)throw Error('Actions may not have an undefined \"type\" property. Have you misspelled a constant?');if(d)throw Error(\"Reducers may not dispatch actions.\");try{d=!0,c=a(c,e)}finally{d=!1}for(var t=f=s,r=0;t.length>r;r++)(0,t[r])();return e}return y({type:n.INIT}),(u={dispatch:y,subscribe:h,getState:p,replaceReducer:function(e){if(\"function\"!=typeof e)throw Error(\"Expected the nextReducer to be a function.\");a=e,y({type:n.REPLACE})}})[t]=function(){var e,r=h;return(e={subscribe:function(e){if(\"object\"!=typeof e||null===e)throw new TypeError(\"Expected the observer to be an object.\");function t(){e.next&&e.next(p())}return t(),{unsubscribe:r(t)}}})[t]=function(){return this},e},u},e.combineReducers=function(e){for(var t=Object.keys(e),r={},i=0;t.length>i;i++){var u=t[i];\"function\"==typeof e[u]&&(r[u]=e[u])}var a,c=Object.keys(r);try{!function(e){Object.keys(e).forEach(function(t){var r=e[t];if(void 0===r(void 0,{type:n.INIT}))throw Error('Reducer \"'+t+\"\\\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.\");if(void 0===r(void 0,{type:n.PROBE_UNKNOWN_ACTION()}))throw Error('Reducer \"'+t+\"\\\" returned undefined when probed with a random type. Don't try to handle \"+n.INIT+' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(r)}catch(e){a=e}return function(e,t){if(void 0===e&&(e={}),a)throw a;for(var n=!1,i={},u=0;c.length>u;u++){var f=c[u],s=e[f],d=(0,r[f])(s,t);if(void 0===d){var l=o(f,t);throw Error(l)}i[f]=d,n=n||d!==s}return n?i:e}},e.bindActionCreators=function(e,t){if(\"function\"==typeof e)return i(e,t);if(\"object\"!=typeof e||null===e)throw Error(\"bindActionCreators expected an object or a function, instead received \"+(null===e?\"null\":typeof e)+'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');for(var r=Object.keys(e),n={},o=0;r.length>o;o++){var u=r[o],a=e[u];\"function\"==typeof a&&(n[u]=i(a,t))}return n},e.applyMiddleware=function(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw Error(\"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\")},o={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},i=t.map(function(e){return e(o)});return function(e){for(var t=1;arguments.length>t;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);\"function\"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){u(e,t,r[t])})}return e}({},r,{dispatch:n=a.apply(void 0,i)(r.dispatch)})}}},e.compose=a,e.__DO_NOT_USE__ActionTypes=n,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Can the current user save to user preferences?\n *\n * @param {User} user\n * @return {boolean}\n */\nconst canSaveToUserPreferences = ( user ) => {\n\treturn !user.isAnon() && user.isNamed();\n};\n\nmodule.exports = canSaveToUserPreferences;\n","import bracketedPixelRatio from './bracketedPixelRatio';\n\nconst bpr = bracketedPixelRatio();\n\n// See the following for context around this value.\n//\n// * https://phabricator.wikimedia.org/T161284\n// * https://phabricator.wikimedia.org/T70861#3129780\nexport const FETCH_START_DELAY = 150; // ms.\n// The delay after which a FETCH_COMPLETE action should be dispatched.\n//\n// If the API endpoint responds faster than 350 ms (or, say, the API\n// response is served from the UA's cache), then we introduce a delay of\n// 350 ms - t to make the preview delay consistent to the user. The total\n// delay from start to finish is 500 ms.\nexport const FETCH_COMPLETE_TARGET_DELAY = 350 + FETCH_START_DELAY; // ms.\n// The minimum time a preview must be open before we judge it\n// has been seen.\n// See https://phabricator.wikimedia.org/T184793\nexport const PREVIEW_SEEN_DURATION = 1000; // ms\nexport const ABANDON_END_DELAY = 300;\n\n//\n// Reference previews specific config\n//\nexport const FETCH_DELAY_REFERENCE_TYPE = 150; // ms.\n\nexport default {\n\tBRACKETED_DEVICE_PIXEL_RATIO: bpr,\n\t// See https://phabricator.wikimedia.org/T272169: requesting a larger thumbnail to avoid bluriness\n\tTHUMBNAIL_SIZE: 320 * Math.max( bpr, 1.5 ),\n\tEXTRACT_LENGTH: 525\n};\n","/**\n * @module bracketedPixelRatio\n */\n\n/**\n * Normalizes a user's device pixel ratio to either 1, 1.5, or 2.\n *\n * This is important when the server resizes images on the fly in order to\n * reduce the work it has to do for device pixel ratios that deviate from a\n * set of common ratios.\n *\n * Adapted from mediawiki/core /resources/src/jquery/jquery.hidpi.js\n *\n * @param {number} [dpr=window.devicePixelRatio]\n * @return {number} The bracketed device pixel ratio\n */\nexport default function ( dpr = window.devicePixelRatio ) {\n\tif ( !dpr ) {\n\t\t// Probably legacy browser so assume 1\n\t\treturn 1;\n\t}\n\n\tif ( dpr > 1.5 ) {\n\t\treturn 2;\n\t}\n\n\tif ( dpr > 1 ) {\n\t\treturn 1.5;\n\t}\n\n\treturn 1;\n}\n","/**\n * @module preview/model\n */\n\n/**\n * Page Preview types as defined in Schema:Popups\n * https://meta.wikimedia.org/wiki/Schema:Popups\n *\n * @constant {Object}\n */\nconst previewTypes = {\n\t/** Empty preview used in error situations */\n\tTYPE_GENERIC: 'generic',\n\t/** Standard page preview with or without thumbnail */\n\tTYPE_PAGE: 'page',\n\t/** Disambiguation page preview */\n\tTYPE_DISAMBIGUATION: 'disambiguation',\n\t/** Reference preview */\n\tTYPE_REFERENCE: 'reference'\n};\n\nexport { previewTypes };\n\n/**\n * Preview Model\n *\n * @typedef {Object} PreviewModel\n * @property {string} url The canonical URL of the page being previewed\n * @property {string} type One of the previewTypes.TYPE_… constants.\n *\n * @global\n */\n\n/**\n * @typedef {Object} PagePreviewModel\n * @extends PreviewModel\n * @property {string} title\n * @property {Array|undefined} extract `undefined` if the extract isn't\n * viable, e.g. if it's empty after having ellipsis and parentheticals\n * removed; this can be used to present default or error states\n * @property {string} languageCode\n * @property {string} languageDirection Either \"ltr\" or \"rtl\", or an empty string if undefined.\n * @property {{source: string, width: number, height: number}|undefined} thumbnail\n * @property {number} pageId Currently not used by any known popup type.\n *\n * @global\n */\n\n/**\n * @typedef {Object} ReferencePreviewModel\n * @extends PreviewModel\n * @property {string} extract An HTML snippet, not necessarily with a single top-level node\n * @property {string} referenceType A type identifier, e.g. \"web\"\n * @property {string} sourceElementId ID of the parent element that triggered the preview\n *\n * @global\n */\n\n/**\n * Creates a page preview model.\n *\n * @param {string} title\n * @param {string} url The canonical URL of the page being previewed\n * @param {string} languageCode\n * @param {string} languageDirection Either \"ltr\" or \"rtl\"\n * @param {Array|undefined|null} extract\n * @param {string} type\n * @param {{source: string, width: number, height: number}|undefined} [thumbnail]\n * @param {number} [pageId]\n * @return {PagePreviewModel}\n */\nexport function createModel(\n\ttitle,\n\turl,\n\tlanguageCode,\n\tlanguageDirection,\n\textract,\n\ttype,\n\tthumbnail,\n\tpageId\n) {\n\tconst processedExtract = processExtract( extract ),\n\t\tpreviewType = getPagePreviewType( type, processedExtract );\n\n\treturn {\n\t\ttitle,\n\t\turl,\n\t\tlanguageCode,\n\t\tlanguageDirection,\n\t\textract: processedExtract,\n\t\ttype: previewType,\n\t\tthumbnail,\n\t\tpageId\n\t};\n}\n\n/**\n * Creates an empty page preview model.\n *\n * @param {string} title\n * @param {string} url\n * @return {PagePreviewModel}\n */\nexport function createNullModel( title, url ) {\n\treturn createModel( title, url, '', '', [], '' );\n}\n\n/**\n * @param {Element} element\n * @param {string} selector\n * @return {boolean}\n */\nconst elementMatchesSelector = ( element, selector ) => {\n\treturn element.matches( selector );\n};\n\n/**\n * Recursively checks the element and its parents.\n *\n * @param {Element} element\n * @return {Element|null}\n */\nexport function findNearestEligibleTarget( element ) {\n\tconst selector = selectors.join( ', ' );\n\treturn element.closest( selector );\n}\n\n/**\n * @typedef {Object} PreviewType\n * @property {string} name identifier for preview type\n * @property {string} selector a CSS selector\n * @type {PreviewType[]}\n */\nconst registeredPreviewTypes = [];\n\n/**\n * Determines the applicable popup type based on title and link element.\n *\n * @param {HTMLAnchorElement} el\n * @return {string|null} One of the previewTypes.TYPE_… constants\n */\nexport function getPreviewType( el ) {\n\tconst candidates = registeredPreviewTypes.filter( ( type ) => elementMatchesSelector( el, type.selector ) );\n\n\t// If the filter returned some possibilities, use the last registered one.\n\tif ( candidates.length > 0 ) {\n\t\treturn candidates[ candidates.length - 1 ].name;\n\t}\n\n\treturn null;\n}\n\n/**\n * Processes the extract returned by the TextExtracts MediaWiki API query\n * module.\n *\n * If the extract is `undefined`, `null`, or empty, then `undefined` is\n * returned.\n *\n * @param {Array|undefined|null} extract\n * @return {Array|undefined} Array when extract is an not empty array, undefined\n * otherwise\n */\nfunction processExtract( extract ) {\n\tif ( extract === undefined || extract === null || extract.length === 0 ) {\n\t\treturn undefined;\n\t}\n\treturn extract;\n}\n\n/**\n * Determines the page preview type based on whether or not:\n * a. Is the preview empty.\n * b. The preview type matches one of previewTypes.\n * c. Assume standard page preview if both above are false\n *\n * @param {string} type\n * @param {Array|undefined} [processedExtract]\n * @return {string} One of the previewTypes.TYPE_… constants.\n */\n\nfunction getPagePreviewType( type, processedExtract ) {\n\tif ( processedExtract === undefined ) {\n\t\treturn previewTypes.TYPE_GENERIC;\n\t}\n\n\tswitch ( type ) {\n\t\tcase previewTypes.TYPE_GENERIC:\n\t\tcase previewTypes.TYPE_DISAMBIGUATION:\n\t\tcase previewTypes.TYPE_PAGE:\n\t\t\treturn type;\n\t\tdefault:\n\t\t\t/**\n\t\t\t * Assume type=\"page\" if extract exists & not one of previewTypes.\n\t\t\t * Note:\n\t\t\t * - Restbase response includes \"type\" prop but other gateways don't.\n\t\t\t * - event-logging Schema:Popups requires type=\"page\" but restbase\n\t\t\t * provides type=\"standard\". Model must conform to event-logging schema.\n\t\t\t */\n\t\t\treturn previewTypes.TYPE_PAGE;\n\t}\n}\n\nconst selectors = [];\n\nconst dwellDelay = {};\n\n/**\n * Determines the delay before showing the preview when dwelling a link.\n *\n * @param {string} type\n * @return {number}\n */\nexport function getDwellDelay( type ) {\n\treturn dwellDelay[ type ] || 0;\n}\n\n/***\n * Set the delay before showing the preview when dwelling a link.\n *\n * @param {string} type\n * @param {number} delay\n */\nexport function setDwellTime( type, delay ) {\n\tdwellDelay[ type ] = delay;\n}\n\n/**\n * Allows extensions to register their own page previews.\n *\n * @stable\n * @param {string} type\n * @param {string} selector A valid CSS selector to associate preview with\n * @param {number} [delay] optional delay between hovering and displaying preview.\n * If not defined, delay will be zero.\n */\nexport function registerModel( type, selector, delay ) {\n\tselectors.push( selector );\n\tregisteredPreviewTypes.push( {\n\t\tname: type,\n\t\tselector\n\t} );\n\tif ( delay ) {\n\t\tsetDwellTime( type, delay );\n\t}\n}\n\n/**\n * Check whether any kind of preview is enabled.\n *\n * @return {boolean}\n */\nexport function isAnythingEligible() {\n\treturn !!selectors.length;\n}\n\nexport const test = {\n\t/** For testing only */\n\treset: () => {\n\t\twhile ( registeredPreviewTypes.length ) {\n\t\t\tregisteredPreviewTypes.pop();\n\t\t}\n\t}\n};\n","/**\n * Improves the plain text extracts\n *\n * @param {string} plainTextExtract\n * @param {string} title\n * @return {Array}\n */\nexport function formatPlainTextExtract( plainTextExtract, title ) {\n\tlet extract = plainTextExtract;\n\tif ( plainTextExtract === undefined ) {\n\t\treturn [];\n\t}\n\n\t// After cleaning the extract it may have been blanked\n\tif ( extract.length === 0 ) {\n\t\treturn [];\n\t}\n\n\textract = makeTitleInExtractBold( extract, title );\n\treturn extract;\n}\n\n/**\n * Converts the extract into a list of elements, which correspond to fragments\n * of the extract. Fragments that match the title verbatim are wrapped in a\n * `` element.\n *\n * Using the bolded elements of the extract of the page directly is covered by\n * [T141651](https://phabricator.wikimedia.org/T141651).\n *\n * Extracted from `mw.popups.renderer.article.getProcessedElements`.\n *\n * @param {string} extract\n * @param {string} title\n * @return {Array} A set of HTML Elements\n */\nfunction makeTitleInExtractBold( extract, title ) {\n\tconst elements = [],\n\t\tboldIdentifier = ``,\n\t\tsnip = ``;\n\n\ttitle = title.replace( /\\s+/g, ' ' ).trim(); // Remove extra white spaces\n\tconst escapedTitle = mw.util.escapeRegExp( title );\n\tconst regExp = new RegExp( `(^|\\\\s)(${escapedTitle})(|$)`, 'i' );\n\n\t// Remove text in parentheses along with the parentheses\n\textract = extract.replace( /\\s+/, ' ' ); // Remove extra white spaces\n\n\t// Make title bold in the extract text\n\t// As the extract is html escaped there can be no such string in it\n\t// Also, the title is escaped of RegExp elements thus can't have \"*\"\n\textract = extract.replace(\n\t\tregExp,\n\t\t`$1${snip}${boldIdentifier}$2${snip}$3`\n\t);\n\textract = extract.split( snip );\n\n\textract.forEach( ( part ) => {\n\t\tif ( part.indexOf( boldIdentifier ) === 0 ) {\n\t\t\tconst highlightNode = document.createElement( 'b' );\n\t\t\thighlightNode.textContent = part.slice( boldIdentifier.length );\n\t\t\telements.push( highlightNode );\n\t\t} else {\n\t\t\telements.push( document.createTextNode( part ) );\n\t\t}\n\t} );\n\n\treturn elements;\n}\n","/**\n * @module gateway\n */\n\n/**\n * The interface implemented by all preview gateways.\n *\n * @typedef Gateway\n * @property {function(string): JQuery.jqXHR} fetch\n * @property {FetchPreviewForTitle} fetchPreviewForTitle\n * @property {ConvertPageToModel} convertPageToModel\n */\n\n/**\n * A Promise, usually for a long running or costly task such as an HTTP request,\n * that is abortable.\n *\n * @template T\n * @typedef {Promise} AbortPromise\n * @property {function(): void} abort\n */\n\n/**\n * @param {Promise|jQuery.Promise} promise\n * @param {function(): void} [abort]\n * @return {AbortPromise}\n */\nexport function abortablePromise( promise, abort = () => {} ) {\n\t// JQuery provided.\n\tif ( promise.promise ) {\n\t\treturn promise.promise( {\n\t\t\tabort\n\t\t} );\n\t}\n\tpromise.abort = abort;\n\treturn promise;\n}\n\n/**\n * Fetches a preview for a page or reference.\n *\n * If the underlying request is successful and contains data for the requested title,\n * then the resulting promise will resolve. If not, then it will reject.\n *\n * @typedef {function(mw.Title, HTMLAnchorElement): AbortPromise} FetchPreviewForTitle\n */\n\n/**\n * Converts the API response to a preview model. Exposed for testing only.\n *\n * @typedef {function(Object, ...any): PagePreviewModel} ConvertPageToModel\n */\n\nconst gatewayMap = {};\n\n/**\n * @param {string} type Type of preview we are handling\n * @return {Gateway|undefined}\n */\nexport function getGatewayForPreviewType( type ) {\n\treturn gatewayMap[ type ];\n}\n\n/**\n * Register a gateway for a given preview type.\n *\n * @param {string} type preview type\n * @param {Gateway} gateway\n */\nexport function registerGatewayForPreviewType( type, gateway ) {\n\tgatewayMap[ type ] = gateway;\n}\n","/**\n * @module gateway/mediawiki\n */\n\nimport { createModel } from '../preview/model';\nimport * as formatter from '../formatter';\nimport { abortablePromise } from './index.js';\n\n// Public and private cache lifetime (5 minutes)\n//\n// FIXME: Move this to src/constants.js.\nconst CACHE_LIFETIME = 300;\n\n/**\n * @typedef {Gateway} MediaWikiGateway\n * @property {function(Object): Object} extractPageFromResponse\n * @property {function(Object): Object} formatPlainTextExtract\n */\n\n/**\n * Creates an instance of the MediaWiki API gateway.\n *\n * @param {mw.Api} api\n * @param {Object} config Configuration that affects the major behavior of the\n * gateway.\n * @param {number} config.THUMBNAIL_SIZE The length of the major dimension of\n * the thumbnail.\n * @param {number} config.EXTRACT_LENGTH The maximum length, in characters,\n * of the extract.\n * @param {string} config.acceptLanguage The accepted language sent in the\n * header\n * @return {MediaWikiGateway}\n */\nexport default function createMediaWikiApiGateway( api, config ) {\n\tfunction fetch( title ) {\n\t\treturn api.get( {\n\t\t\taction: 'query',\n\t\t\tprop: 'info|extracts|pageimages|revisions|info',\n\t\t\tformatversion: 2,\n\t\t\tredirects: true,\n\t\t\texintro: mw.config.get( 'wgPopupsTextExtractsIntroOnly', true ),\n\t\t\texchars: config.EXTRACT_LENGTH,\n\n\t\t\t// There is an added geometric limit on .mwe-popups-extract\n\t\t\t// so that text does not overflow from the card.\n\t\t\texplaintext: true,\n\t\t\texsectionformat: 'plain',\n\n\t\t\tpiprop: 'thumbnail',\n\t\t\tpithumbsize: config.THUMBNAIL_SIZE,\n\t\t\tpilicense: 'any',\n\t\t\trvprop: 'timestamp',\n\t\t\tinprop: 'url',\n\t\t\ttitles: title,\n\t\t\tsmaxage: CACHE_LIFETIME,\n\t\t\tmaxage: CACHE_LIFETIME,\n\t\t\tuselang: 'content'\n\t\t}, {\n\t\t\theaders: {\n\t\t\t\t'X-Analytics': 'preview=1',\n\t\t\t\t'Accept-Language': config.acceptLanguage\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @param {mw.Title} title\n\t * @return {AbortPromise}\n\t */\n\tfunction fetchPreviewForTitle( title ) {\n\t\tconst xhr = fetch( title.getPrefixedDb() );\n\t\treturn abortablePromise( xhr.then( ( data ) => {\n\t\t\tconst page = extractPageFromResponse( data );\n\t\t\tconst plainTextExtract = formatPlainTextExtract( page );\n\t\t\treturn convertPageToModel( plainTextExtract );\n\t\t} ), () => xhr.abort() );\n\t}\n\n\treturn {\n\t\tfetch,\n\t\textractPageFromResponse,\n\t\tconvertPageToModel,\n\t\tfetchPreviewForTitle,\n\t\tformatPlainTextExtract\n\t};\n}\n\n/**\n * Extracts page data from the API response.\n *\n * @method\n * @name MediaWikiGateway#extractPageFromResponse\n * @param {Object} data The response\n * @throws {Error} If the response is empty or doesn't contain data about the\n * page\n * @return {Object}\n */\nfunction extractPageFromResponse( data ) {\n\tif (\n\t\tdata.query &&\n\t\tdata.query.pages &&\n\t\tdata.query.pages.length\n\t) {\n\t\treturn data.query.pages[ 0 ];\n\t}\n\n\tthrow new Error( 'API response `query.pages` is empty.' );\n}\n\n/**\n * Make plain text nicer by applying formatter.\n *\n * @method\n * @name MediaWikiGateway#formatPlainTextExtract\n * @param {Object} data The response\n * @return {Object}\n */\nfunction formatPlainTextExtract( data ) {\n\tconst result = Object.assign( {}, data );\n\tresult.extract = formatter.formatPlainTextExtract( data.extract, data.title );\n\treturn result;\n}\n\n/**\n * Converts the API response to a preview model.\n *\n * @method\n * @name MediaWikiGateway#convertPageToModel\n * @param {Object} page\n * @return {PagePreviewModel}\n */\nfunction convertPageToModel( page ) {\n\treturn createModel(\n\t\tpage.title,\n\t\tpage.canonicalurl,\n\t\tpage.pagelanguagehtmlcode,\n\t\tpage.pagelanguagedir,\n\t\tpage.extract,\n\t\tpage.type,\n\t\tpage.thumbnail,\n\t\tpage.pageid\n\t);\n}\n","/**\n * @module gateway/rest\n */\n\nimport { createModel } from '../preview/model';\nimport { abortablePromise } from './index.js';\n\nconst RESTBASE_PROFILE = 'https://www.mediawiki.org/wiki/Specs/Summary/1.2.0';\n\n/** @typedef {function(JQuery.AjaxSettings=): JQuery.jqXHR} Ajax */\n\n/**\n * Creates an instance of the RESTBase gateway.\n *\n * This gateway differs from the {@link MediaWikiGateway MediaWiki gateway} in\n * that it fetches page data from [the RESTBase page summary endpoint][0].\n *\n * [0]: https://en.wikipedia.org/api/rest_v1/#!/Page_content/get_page_summary_title\n *\n * @param {Ajax} ajax A function with the same signature as `jQuery.ajax`\n * @param {Object} config Configuration that affects the major behavior of the\n * gateway.\n * @param {Function} extractParser A function that takes response and returns\n * parsed extract\n * @return {Gateway}\n */\nexport default function createRESTBaseGateway( ajax, config, extractParser ) {\n\t/**\n\t * Fetches page data from [the RESTBase page summary endpoint][0].\n\t *\n\t * [0]: https://en.wikipedia.org/api/rest_v1/#!/Page_content/get_page_summary_title\n\t *\n\t * @method\n\t * @name RESTBaseGateway#fetch\n\t * @param {string} title\n\t * @return {jQuery.jqXHR}\n\t */\n\tfunction fetch( title ) {\n\t\tconst endpoint = config.endpoint;\n\n\t\treturn ajax( {\n\t\t\turl: endpoint + encodeURIComponent( title ),\n\t\t\theaders: {\n\t\t\t\tAccept: `application/json; charset=utf-8; profile=\"${RESTBASE_PROFILE}\"`,\n\t\t\t\t'Accept-Language': config.acceptLanguage\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @param {mw.Title} title\n\t * @return {AbortPromise}\n\t */\n\tfunction fetchPreviewForTitle( title ) {\n\t\tconst titleText = title.getPrefixedDb(),\n\t\t\txhr = fetch( titleText );\n\t\treturn abortablePromise( xhr.then( ( page ) => {\n\t\t\t// Endpoint response may be empty or simply missing a title.\n\t\t\tpage = page || {};\n\t\t\tpage.title = page.title || titleText;\n\t\t\t// And extract may be omitted if empty string\n\t\t\tpage.extract = page.extract || '';\n\t\t\treturn convertPageToModel(\n\t\t\t\tpage, config.THUMBNAIL_SIZE, extractParser\n\t\t\t);\n\t\t} ).catch( ( jqXHR, textStatus, errorThrown ) => {\n\t\t\t// The client will choose how to handle these errors which may include\n\t\t\t// those due to HTTP 4xx and 5xx status. The rejection typing matches\n\t\t\t// fetch failures.\n\t\t\treturn Promise.reject( 'http', {\n\t\t\t\txhr: jqXHR,\n\t\t\t\ttextStatus,\n\t\t\t\texception: errorThrown\n\t\t\t} );\n\t\t} ), () => xhr.abort() );\n\t}\n\n\treturn {\n\t\tfetch,\n\t\tconvertPageToModel,\n\t\tfetchPreviewForTitle\n\t};\n}\n\n/**\n * Checks whether the `originalImage` property contains an image\n * format that's safe to render.\n * https://www.mediawiki.org/wiki/Help:Images#Supported_media_types_for_images\n *\n * @param {string} filename\n *\n * @return {boolean}\n */\nfunction isSafeImgFormat( filename ) {\n\tconst safeImage = new RegExp( /\\.(jpg|jpeg|png|gif)$/i );\n\treturn safeImage.test( filename );\n}\n\n/**\n * Resizes the thumbnail to the requested width, preserving its aspect ratio.\n *\n * The requested width is limited to that of the original image unless the image\n * is an SVG, which can be scaled infinitely.\n *\n * This function is only intended to mangle the pretty thumbnail URLs used on\n * Wikimedia Commons. Once [an official thumb API](https://phabricator.wikimedia.org/T66214)\n * is fully specified and implemented, this function can be made more general.\n *\n * @param {Object} thumbnail The thumbnail image\n * @param {Object} original The original image\n * @param {number} thumbSize The requested size\n * @return {{source: string, width: number, height: number}|undefined}\n */\nfunction generateThumbnailData( thumbnail, original, thumbSize ) {\n\tconst parts = thumbnail.source.split( '/' ),\n\t\tlastPart = parts[ parts.length - 1 ],\n\t\toriginalIsSafe = isSafeImgFormat( original.source ) || undefined;\n\n\t// The last part, the thumbnail's full filename, is in the following form:\n\t// ${width}px-${filename}.${extension}. Splitting the thumbnail's filename\n\t// makes this function resilient to the thumbnail not having the same\n\t// extension as the original image, which is definitely the case for SVG's\n\t// where the thumbnail's extension is .svg.png.\n\tconst filenamePxIndex = lastPart.indexOf( 'px-' );\n\tif ( filenamePxIndex === -1 ) {\n\t\t// The thumbnail size is not customizable. Presumably, RESTBase requested a\n\t\t// width greater than the original and so MediaWiki returned the original's\n\t\t// URL instead of a thumbnail compatible URL. An original URL does not have\n\t\t// a \"thumb\" path, e.g.:\n\t\t//\n\t\t// https://upload.wikimedia.org/wikipedia/commons/a/aa/Red_Giant_Earth_warm.jpg\n\t\t//\n\t\t// Instead of:\n\t\t//\n\t\t// https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Red_Giant_Earth_warm.jpg/512px-Red_Giant_Earth_warm.jpg\n\t\t//\n\t\t// Use the original if it's a supported image format.\n\t\treturn originalIsSafe && original;\n\t}\n\tconst filename = lastPart.slice( filenamePxIndex + 3 );\n\n\t// Scale the thumbnail's largest dimension.\n\tlet width, height;\n\tif ( thumbnail.width > thumbnail.height ) {\n\t\twidth = thumbSize;\n\t\theight = Math.floor( ( thumbSize / thumbnail.width ) * thumbnail.height );\n\t} else {\n\t\twidth = Math.floor( ( thumbSize / thumbnail.height ) * thumbnail.width );\n\t\theight = thumbSize;\n\t}\n\n\t// If the image isn't an SVG, then it shouldn't be scaled past its original\n\t// dimensions.\n\tif ( width >= original.width && filename.indexOf( '.svg' ) === -1 ) {\n\t\t// if the image format is not supported, it shouldn't be rendered.\n\t\treturn originalIsSafe && original;\n\t}\n\n\tparts[ parts.length - 1 ] = `${width}px-${filename}`;\n\n\treturn {\n\t\tsource: parts.join( '/' ),\n\t\twidth,\n\t\theight\n\t};\n}\n\n/**\n * Converts the API response to a preview model.\n *\n * @method\n * @name RESTBaseGateway#convertPageToModel\n * @param {Object} page\n * @param {number} thumbSize\n * @param {Function} extractParser\n * @return {PagePreviewModel}\n */\nexport function convertPageToModel( page, thumbSize, extractParser ) {\n\treturn createModel(\n\t\tpage.title,\n\t\tnew mw.Title( page.title ).getUrl(),\n\t\tpage.lang,\n\t\tpage.dir,\n\t\textractParser( page ),\n\t\tpage.type,\n\t\tpage.thumbnail ?\n\t\t\tgenerateThumbnailData(\n\t\t\t\tpage.thumbnail, page.originalimage, thumbSize\n\t\t\t) : undefined,\n\t\tpage.pageid\n\t);\n}\n","import * as formatter from '../formatter';\n\n/**\n * Prepare extract\n *\n * @param {Object} page Rest response\n * @return {Array} An array of DOM Elements\n */\nexport function parseHTMLResponse( page ) {\n\tconst extract = page.extract_html;\n\tconst extractNode = document.createElement( 'div' );\n\textractNode.innerHTML = extract;\n\treturn extract.length === 0 ? [] : extractNode.childNodes;\n}\n\n/**\n * Prepare extract\n *\n * @param {Object} page Rest response\n * @return {Array} An array of DOM Elements\n */\nexport function parsePlainTextResponse( page ) {\n\treturn formatter.formatPlainTextExtract( page.extract, page.title );\n}\n","/**\n * @module gateway/page\n */\n\nimport constants from '../constants';\nimport createMediaWikiApiGateway from './mediawiki';\nimport createRESTBaseGateway from './rest';\nimport * as formatters from './restFormatters';\nimport { abortablePromise } from './index.js';\n\n/**\n * @param {Object} options\n * @return {Promise}\n */\nfunction ajax( options ) {\n\tconst controller = new AbortController();\n\tconst signal = controller.signal;\n\n\treturn abortablePromise(\n\t\tfetch( options.url, {\n\t\t\theaders: options.headers,\n\t\t\tsignal\n\t\t} ).then( ( resp ) => resp.json() ),\n\t\t() => {\n\t\t\tcontroller.abort();\n\t\t}\n\t);\n}\n\n/**\n * Creates a page preview gateway with sensible values for the dependencies.\n *\n * @param {mw.Map} config\n * @return {Gateway}\n */\nexport default function createPagePreviewGateway( config ) {\n\tconst gatewayConfig = Object.assign( {}, constants, {\n\t\tacceptLanguage: config.get( 'wgPageContentLanguage' )\n\t} );\n\tconst restConfig = Object.assign( {}, gatewayConfig, {\n\t\tendpoint: config.get( 'wgPopupsRestGatewayEndpoint' )\n\t} );\n\tswitch ( config.get( 'wgPopupsGateway' ) ) {\n\t\tcase 'mwApiPlain':\n\t\t\treturn createMediaWikiApiGateway( new mw.Api(), gatewayConfig );\n\t\tcase 'restbasePlain':\n\t\t\treturn createRESTBaseGateway(\n\t\t\t\tajax, restConfig, formatters.parsePlainTextResponse );\n\t\tcase 'restbaseHTML':\n\t\t\treturn createRESTBaseGateway(\n\t\t\t\tajax, restConfig, formatters.parseHTMLResponse );\n\t\tdefault:\n\t\t\tthrow new Error( 'Unknown gateway' );\n\t}\n}\n","/**\n * @module gateway/reference\n */\n\nimport { previewTypes } from '../preview/model';\nimport { abortablePromise } from './index.js';\n\n/**\n * @return {Gateway}\n */\nexport default function createReferenceGateway() {\n\n\t/**\n\t * @param {string} id\n\t * @return {HTMLElement}\n\t */\n\tfunction scrapeReferenceText( id ) {\n\t\tconst idSelector = `#${CSS.escape( id )}`;\n\n\t\t/**\n\t\t * Same alternative selectors with and without mw-… as in the RESTbased endpoint.\n\t\t *\n\t\t * @see https://phabricator.wikimedia.org/diffusion/GMOA/browse/master/lib/transformations/references/structureReferenceListContent.js$138\n\t\t */\n\t\treturn document.querySelector( `${idSelector} .mw-reference-text, ${idSelector} .reference-text` );\n\t}\n\n\t/**\n\t * Attempts to find a single reference type identifier, limited to a list of known types.\n\t * - When a `class=\"…\"` attribute mentions multiple known types, the last one is used, following\n\t * CSS semantics.\n\t * - When there are multiple tags, the first with a known type is used.\n\t *\n\t * @param {HTMLElement} referenceText\n\t * @return {string|null}\n\t */\n\tfunction scrapeReferenceType( referenceText ) {\n\t\tconst KNOWN_TYPES = [ 'book', 'journal', 'news', 'note', 'web' ];\n\t\tlet type = null;\n\t\tconst citeTags = referenceText.querySelectorAll( 'cite[class]' );\n\t\tArray.prototype.forEach.call( citeTags, ( element ) => {\n\t\t\t// don't need to keep scanning if one is found.\n\t\t\tif ( type ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst classNames = element.className.split( /\\s+/ );\n\t\t\tfor ( let i = classNames.length; i--; ) {\n\t\t\t\tif ( KNOWN_TYPES.indexOf( classNames[ i ] ) !== -1 ) {\n\t\t\t\t\ttype = classNames[ i ];\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t\treturn type;\n\t}\n\n\t/**\n\t * @param {mw.Title} title\n\t * @param {HTMLAnchorElement} el\n\t * @return {AbortPromise}\n\t */\n\tfunction fetchPreviewForTitle( title, el ) {\n\t\t// Need to encode the fragment again as mw.Title returns it as decoded text\n\t\tconst id = title.getFragment().replace( / /g, '_' ),\n\t\t\treferenceNode = scrapeReferenceText( id );\n\n\t\tif ( !referenceNode ||\n\t\t\t// Skip references that don't contain anything but whitespace, e.g. a single  \n\t\t\t( !referenceNode.textContent.trim() && !referenceNode.children.length )\n\t\t) {\n\t\t\treturn Promise.reject(\n\t\t\t\t// Required to set `showNullPreview` to false and not open an error popup\n\t\t\t\t{ textStatus: 'abort', textContext: 'Footnote not found or empty', xhr: { readyState: 0 } }\n\t\t\t);\n\t\t}\n\n\t\tconst model = {\n\t\t\turl: `#${id}`,\n\t\t\textract: referenceNode.innerHTML,\n\t\t\ttype: previewTypes.TYPE_REFERENCE,\n\t\t\treferenceType: scrapeReferenceType( referenceNode ),\n\t\t\t// Note: Even the top-most HTMLHtmlElement is guaranteed to have a parent.\n\t\t\tsourceElementId: el.parentNode.id\n\t\t};\n\n\t\treturn abortablePromise( Promise.resolve( model ) );\n\t}\n\n\treturn {\n\t\tfetchPreviewForTitle\n\t};\n}\n","/**\n * @module previewBehaviour\n */\nconst canSaveToUserPreferences = require( './canSaveToUserPreferences.js' );\n\n/**\n * A collection of event handlers specific to how the user interacts with all\n * previews. The event handlers are are agnostic to how/when they are bound\n * //but not to what they are bound//, i.e. the showSettings event handler is\n * written to be bound to either an `` or `