Skip to content

Instantly share code, notes, and snippets.

@joakin
Created May 12, 2017 15:38
Show Gist options
  • Save joakin/2fddc35ff64281156cf3b1615c7258e4 to your computer and use it in GitHub Desktop.
Save joakin/2fddc35ff64281156cf3b1615c7258e4 to your computer and use it in GitHub Desktop.
Popups JSMin vs UglifyJS compared
(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports;}var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=!0;return module.exports;}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.i=function(value){return value;};__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter});}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module['default'];}:function getModuleExports(){return module;};__webpack_require__.d(getter,'a',getter);return getter;};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property);};
__webpack_require__.p="";return __webpack_require__(__webpack_require__.s="./src/index.js");})({"./node_modules/redux-thunk/dist/redux-thunk.js":(function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports=factory();else if(typeof define==='function'&&define.amd)define([],factory);else if(typeof exports==='object')exports["ReduxThunk"]=factory();else root["ReduxThunk"]=factory();})(this,function(){return(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded=!0;return module.exports;}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.p="";return __webpack_require__(0);})([function(module,exports,__webpack_require__){
module.exports=__webpack_require__(1);},function(module,exports){'use strict';exports.__esModule=!0;function createThunkMiddleware(extraArgument){return function(_ref){var dispatch=_ref.dispatch,getState=_ref.getState;return function(next){return function(action){if(typeof action==='function'){return action(dispatch,getState,extraArgument);}return next(action);};};};}var thunk=createThunkMiddleware();thunk.withExtraArgument=createThunkMiddleware;exports['default']=thunk;}])});;}),"./node_modules/redux/dist/redux.js":(function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports=factory();else if(typeof define==='function'&&define.amd)define([],factory);else if(typeof exports==='object')exports["Redux"]=factory();else root["Redux"]=factory();})(this,function(){return(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var
module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded=!0;return module.exports;}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.p="";return __webpack_require__(0);})([function(module,exports,__webpack_require__){'use strict';exports.__esModule=!0;exports.compose=exports.applyMiddleware=exports.bindActionCreators=exports.combineReducers=exports.createStore=undefined;var _createStore=__webpack_require__(2);var _createStore2=_interopRequireDefault(_createStore);var _combineReducers=__webpack_require__(7);var _combineReducers2=_interopRequireDefault(_combineReducers);var _bindActionCreators=__webpack_require__(6);var _bindActionCreators2=_interopRequireDefault(_bindActionCreators);var _applyMiddleware=__webpack_require__(5);var _applyMiddleware2=_interopRequireDefault(_applyMiddleware);var _compose=__webpack_require__(1);var _compose2
=_interopRequireDefault(_compose);var _warning=__webpack_require__(3);var _warning2=_interopRequireDefault(_warning);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}function isCrushed(){}if(("development")!=='production'&&typeof isCrushed.name==='string'&&isCrushed.name!=='isCrushed'){(0,_warning2['default'])('You are currently using minified code outside of NODE_ENV === \'production\'. '+'This means that you are running a slower development build of Redux. '+'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify '+'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) '+'to ensure you have the correct code for your production build.');}exports.createStore=_createStore2['default'];exports.combineReducers=_combineReducers2['default'];exports.bindActionCreators=_bindActionCreators2['default'];exports.applyMiddleware=_applyMiddleware2['default'];exports.compose=_compose2['default'];},function(module,
exports){"use strict";exports.__esModule=!0;exports["default"]=compose;function compose(){for(var _len=arguments.length,funcs=Array(_len),_key=0;_key<_len;_key++){funcs[_key]=arguments[_key];}if(funcs.length===0){return function(arg){return arg;};}if(funcs.length===1){return funcs[0];}var last=funcs[funcs.length-1];var rest=funcs.slice(0,-1);return function(){return rest.reduceRight(function(composed,f){return f(composed);},last.apply(undefined,arguments));};}},function(module,exports,__webpack_require__){'use strict';exports.__esModule=!0;exports.ActionTypes=undefined;exports['default']=createStore;var _isPlainObject=__webpack_require__(4);var _isPlainObject2=_interopRequireDefault(_isPlainObject);var _symbolObservable=__webpack_require__(12);var _symbolObservable2=_interopRequireDefault(_symbolObservable);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}var ActionTypes=exports.ActionTypes={INIT:'@@redux/INIT'};function createStore(reducer,
preloadedState,enhancer){var _ref2;if(typeof preloadedState==='function'&&typeof enhancer==='undefined'){enhancer=preloadedState;preloadedState=undefined;}if(typeof enhancer!=='undefined'){if(typeof enhancer!=='function'){throw new Error('Expected the enhancer to be a function.');}return enhancer(createStore)(reducer,preloadedState);}if(typeof reducer!=='function'){throw new Error('Expected the reducer to be a function.');}var currentReducer=reducer;var currentState=preloadedState;var currentListeners=[];var nextListeners=currentListeners;var isDispatching=!1;function ensureCanMutateNextListeners(){if(nextListeners===currentListeners){nextListeners=currentListeners.slice();}}function getState(){return currentState;}function subscribe(listener){if(typeof listener!=='function'){throw new Error('Expected listener to be a function.');}var isSubscribed=!0;ensureCanMutateNextListeners();nextListeners.push(listener);return function unsubscribe(){if(!isSubscribed){return;}isSubscribed=
!1;ensureCanMutateNextListeners();var index=nextListeners.indexOf(listener);nextListeners.splice(index,1);};}function dispatch(action){if(!(0,_isPlainObject2['default'])(action)){throw new Error('Actions must be plain objects. '+'Use custom middleware for async actions.');}if(typeof action.type==='undefined'){throw new Error('Actions may not have an undefined "type" property. '+'Have you misspelled a constant?');}if(isDispatching){throw new Error('Reducers may not dispatch actions.');}try{isDispatching=!0;currentState=currentReducer(currentState,action);}finally{isDispatching=!1;}var listeners=currentListeners=nextListeners;for(var i=0;i<listeners.length;i++){listeners[i]();}return action;}function replaceReducer(nextReducer){if(typeof nextReducer!=='function'){throw new Error('Expected the nextReducer to be a function.');}currentReducer=nextReducer;dispatch({type:ActionTypes.INIT});}function observable(){var _ref;var outerSubscribe=subscribe;return _ref={subscribe:function
subscribe(observer){if(typeof observer!=='object'){throw new TypeError('Expected the observer to be an object.');}function observeState(){if(observer.next){observer.next(getState());}}observeState();var unsubscribe=outerSubscribe(observeState);return{unsubscribe:unsubscribe};}},_ref[_symbolObservable2['default']]=function(){return this;},_ref;}dispatch({type:ActionTypes.INIT});return _ref2={dispatch:dispatch,subscribe:subscribe,getState:getState,replaceReducer:replaceReducer},_ref2[_symbolObservable2['default']]=observable,_ref2;}},function(module,exports){'use strict';exports.__esModule=!0;exports['default']=warning;function warning(message){if(typeof console!=='undefined'&&typeof console.error==='function'){console.error(message);}try{throw new Error(message);}catch(e){}}},function(module,exports,__webpack_require__){var getPrototype=__webpack_require__(8),isHostObject=__webpack_require__(9),isObjectLike=__webpack_require__(11);var objectTag='[object Object]';var funcProto=Function
.prototype,objectProto=Object.prototype;var funcToString=funcProto.toString;var hasOwnProperty=objectProto.hasOwnProperty;var objectCtorString=funcToString.call(Object);var objectToString=objectProto.toString;function isPlainObject(value){if(!isObjectLike(value)||objectToString.call(value)!=objectTag||isHostObject(value)){return false;}var proto=getPrototype(value);if(proto===null){return true;}var Ctor=hasOwnProperty.call(proto,'constructor')&&proto.constructor;return(typeof Ctor=='function'&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString);}module.exports=isPlainObject;},function(module,exports,__webpack_require__){'use strict';exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};exports['default']=applyMiddleware;var _compose=__webpack_require__(1);var _compose2=
_interopRequireDefault(_compose);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}function applyMiddleware(){for(var _len=arguments.length,middlewares=Array(_len),_key=0;_key<_len;_key++){middlewares[_key]=arguments[_key];}return function(createStore){return function(reducer,preloadedState,enhancer){var store=createStore(reducer,preloadedState,enhancer);var _dispatch=store.dispatch;var chain=[];var middlewareAPI={getState:store.getState,dispatch:function dispatch(action){return _dispatch(action);}};chain=middlewares.map(function(middleware){return middleware(middlewareAPI);});_dispatch=_compose2['default'].apply(undefined,chain)(store.dispatch);return _extends({},store,{dispatch:_dispatch});};};}},function(module,exports){'use strict';exports.__esModule=!0;exports['default']=bindActionCreators;function bindActionCreator(actionCreator,dispatch){return function(){return dispatch(actionCreator.apply(undefined,arguments));};}function bindActionCreators
(actionCreators,dispatch){if(typeof actionCreators==='function'){return bindActionCreator(actionCreators,dispatch);}if(typeof actionCreators!=='object'||actionCreators===null){throw new Error('bindActionCreators expected an object or a function, instead received '+(actionCreators===null?'null':typeof actionCreators)+'. '+'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');}var keys=Object.keys(actionCreators);var boundActionCreators={};for(var i=0;i<keys.length;i++){var key=keys[i];var actionCreator=actionCreators[key];if(typeof actionCreator==='function'){boundActionCreators[key]=bindActionCreator(actionCreator,dispatch);}}return boundActionCreators;}},function(module,exports,__webpack_require__){'use strict';exports.__esModule=!0;exports['default']=combineReducers;var _createStore=__webpack_require__(2);var _isPlainObject=__webpack_require__(4);var _isPlainObject2=_interopRequireDefault(_isPlainObject);var _warning=__webpack_require__(3);var
_warning2=_interopRequireDefault(_warning);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}function getUndefinedStateErrorMessage(key,action){var actionType=action&&action.type;var actionName=actionType&&'"'+actionType.toString()+'"'||'an action';return'Given action '+actionName+', reducer "'+key+'" returned undefined. '+'To ignore an action, you must explicitly return the previous state.';}function getUnexpectedStateShapeWarningMessage(inputState,reducers,action,unexpectedKeyCache){var reducerKeys=Object.keys(reducers);var argumentName=action&&action.type===_createStore.ActionTypes.INIT?'preloadedState argument passed to createStore':'previous state received by the reducer';if(reducerKeys.length===0){return'Store does not have a valid reducer. Make sure the argument passed '+'to combineReducers is an object whose values are reducers.';}if(!(0,_isPlainObject2['default'])(inputState)){return'The '+argumentName+' has unexpected type of "'+{}.toString.
call(inputState).match(/\s([a-z|A-Z]+)/)[1]+'". Expected argument to be an object with the following '+('keys: "'+reducerKeys.join('", "')+'"');}var unexpectedKeys=Object.keys(inputState).filter(function(key){return!reducers.hasOwnProperty(key)&&!unexpectedKeyCache[key];});unexpectedKeys.forEach(function(key){unexpectedKeyCache[key]=!0;});if(unexpectedKeys.length>0){return'Unexpected '+(unexpectedKeys.length>1?'keys':'key')+' '+('"'+unexpectedKeys.join('", "')+'" found in '+argumentName+'. ')+'Expected to find one of the known reducer keys instead: '+('"'+reducerKeys.join('", "')+'". Unexpected keys will be ignored.');}}function assertReducerSanity(reducers){Object.keys(reducers).forEach(function(key){var reducer=reducers[key];var initialState=reducer(undefined,{type:_createStore.ActionTypes.INIT});if(typeof initialState==='undefined'){throw new Error('Reducer "'+key+'" 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.');}var type='@@redux/PROBE_UNKNOWN_ACTION_'+Math.random().toString(36).substring(7).split('').join('.');if(typeof reducer(undefined,{type:type})==='undefined'){throw new Error('Reducer "'+key+'" returned undefined when probed with a random type. '+('Don\'t try to handle '+_createStore.ActionTypes.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.');}});}function combineReducers(reducers){var reducerKeys=Object.keys(reducers);var finalReducers={};for(var i=0;i<reducerKeys.length;i++){var key=reducerKeys[i];if(true){if(typeof reducers[key]==='undefined'){(0,_warning2['default'])('No reducer provided for key "'+key+'"');}}if(typeof reducers[key]==='function'){
finalReducers[key]=reducers[key];}}var finalReducerKeys=Object.keys(finalReducers);if(true){var unexpectedKeyCache={};}var sanityError;try{assertReducerSanity(finalReducers);}catch(e){sanityError=e;}return function combination(){var state=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var action=arguments[1];if(sanityError){throw sanityError;}if(true){var warningMessage=getUnexpectedStateShapeWarningMessage(state,finalReducers,action,unexpectedKeyCache);if(warningMessage){(0,_warning2['default'])(warningMessage);}}var hasChanged=!1;var nextState={};for(var i=0;i<finalReducerKeys.length;i++){var key=finalReducerKeys[i];var reducer=finalReducers[key];var previousStateForKey=state[key];var nextStateForKey=reducer(previousStateForKey,action);if(typeof nextStateForKey==='undefined'){var errorMessage=getUndefinedStateErrorMessage(key,action);throw new Error(errorMessage);}nextState[key]=nextStateForKey;hasChanged=hasChanged||nextStateForKey!==previousStateForKey;}return hasChanged
?nextState:state;};}},function(module,exports,__webpack_require__){var overArg=__webpack_require__(10);var getPrototype=overArg(Object.getPrototypeOf,Object);module.exports=getPrototype;},function(module,exports){function isHostObject(value){var result=!1;if(value!=null&&typeof value.toString!='function'){try{result=!!(value+'');}catch(e){}}return result;}module.exports=isHostObject;},function(module,exports){function overArg(func,transform){return function(arg){return func(transform(arg));};}module.exports=overArg;},function(module,exports){function isObjectLike(value){return!!value&&typeof value=='object';}module.exports=isObjectLike;},function(module,exports,__webpack_require__){module.exports=__webpack_require__(13);},function(module,exports,__webpack_require__){(function(global){'use strict';Object.defineProperty(exports,"__esModule",{value:!0});var _ponyfill=__webpack_require__(14);var _ponyfill2=_interopRequireDefault(_ponyfill);function _interopRequireDefault(obj){return obj
&&obj.__esModule?obj:{'default':obj};}var root=undefined;if(typeof global!=='undefined'){root=global;}else if(typeof window!=='undefined'){root=window;}var result=(0,_ponyfill2['default'])(root);exports['default']=result;}.call(exports,(function(){return this;}())))},function(module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:!0});exports['default']=symbolObservablePonyfill;function symbolObservablePonyfill(root){var result;var _Symbol=root.Symbol;if(typeof _Symbol==='function'){if(_Symbol.observable){result=_Symbol.observable;}else{result=_Symbol('observable');_Symbol.observable=result;}}else{result='@@observable';}return result;};}])});;}),"./src/actionTypes.js":(function(module,exports){module.exports={BOOT:'BOOT',LINK_DWELL:'LINK_DWELL',ABANDON_START:'ABANDON_START',ABANDON_END:'ABANDON_END',LINK_CLICK:'LINK_CLICK',FETCH_START:'FETCH_START',FETCH_END:'FETCH_END',FETCH_COMPLETE:'FETCH_COMPLETE',FETCH_FAILED:'FETCH_FAILED',PREVIEW_DWELL:'PREVIEW_DWELL',
PREVIEW_SHOW:'PREVIEW_SHOW',PREVIEW_CLICK:'PREVIEW_CLICK',SETTINGS_SHOW:'SETTINGS_SHOW',SETTINGS_HIDE:'SETTINGS_HIDE',SETTINGS_CHANGE:'SETTINGS_CHANGE',EVENT_LOGGED:'EVENT_LOGGED',STATSV_LOGGED:'STATSV_LOGGED'};}),"./src/actions.js":(function(module,exports,__webpack_require__){var $=jQuery,mw=window.mediaWiki,actions={},types=__webpack_require__("./src/actionTypes.js"),wait=__webpack_require__("./src/wait.js"),FETCH_START_DELAY=150,FETCH_COMPLETE_TARGET_DELAY=500,ABANDON_END_DELAY=300;function timedAction(baseAction){baseAction.timestamp=mw.now();return baseAction;}actions.boot=function(isEnabled,user,userSettings,generateToken,config){var editCount=config.get('wgUserEditCount'),previewCount=userSettings.getPreviewCount();return{type:types.BOOT,isEnabled:isEnabled,isNavPopupsEnabled:config.get('wgPopupsConflictsWithNavPopupGadget'),sessionToken:user.sessionId(),pageToken:generateToken(),page:{title:config.get('wgTitle'),namespaceID:config.get('wgNamespaceNumber'),id:config.get(
'wgArticleId')},user:{isAnon:user.isAnon(),editCount:editCount,previewCount:previewCount}};};actions.fetch=function(gateway,el,token){var title=$(el).data('page-previews-title');return function(dispatch){var request;dispatch(timedAction({type:types.FETCH_START,el:el,title:title}));request=gateway.getPageSummary(title).then(function(result){dispatch(timedAction({type:types.FETCH_END,el:el}));return result;}).fail(function(){dispatch({type:types.FETCH_FAILED,el:el});});$.when(request,wait(FETCH_COMPLETE_TARGET_DELAY-FETCH_START_DELAY)).then(function(result){dispatch(timedAction({type:types.FETCH_COMPLETE,el:el,result:result,token:token}));});};};actions.linkDwell=function(el,event,gateway,generateToken){var token=generateToken();return function(dispatch,getState){var action=timedAction({type:types.LINK_DWELL,el:el,event:event,token:token});function isNewInteraction(){return getState().preview.activeToken===token;}dispatch(action);if(!isNewInteraction()){return;}wait(FETCH_START_DELAY).
then(function(){var previewState=getState().preview;if(previewState.enabled&&isNewInteraction()){dispatch(actions.fetch(gateway,el,token));}});};};actions.abandon=function(){return function(dispatch,getState){var token=getState().preview.activeToken;if(!token){return;}dispatch(timedAction({type:types.ABANDON_START,token:token}));wait(ABANDON_END_DELAY).then(function(){dispatch({type:types.ABANDON_END,token:token});});};};actions.linkClick=function(el){return timedAction({type:types.LINK_CLICK,el:el});};actions.previewDwell=function(){return{type:types.PREVIEW_DWELL};};actions.previewShow=function(token){return timedAction({type:types.PREVIEW_SHOW,token:token});};actions.showSettings=function(){return{type:types.SETTINGS_SHOW};};actions.hideSettings=function(){return{type:types.SETTINGS_HIDE};};actions.saveSettings=function(enabled){return function(dispatch,getState){dispatch({type:types.SETTINGS_CHANGE,wasEnabled:getState().preview.enabled,enabled:enabled});};};actions.eventLogged=
function(){return{type:types.EVENT_LOGGED};};actions.statsvLogged=function(){return{type:types.STATSV_LOGGED};};module.exports=actions;}),"./src/changeListener.js":(function(module,exports){module.exports=function(store,callback){var state;store.subscribe(function(){var prevState=state;state=store.getState();if(prevState!==state){callback(prevState,state);}});};}),"./src/changeListeners/eventLogging.js":(function(module,exports){var $=jQuery;function fnv1a32(string){var result=2166136261,i=0;for(i=0;i<string.length;++i){result^=string.charCodeAt(i);result*=16777619;}return result>>>0;}module.exports=function(boundActions,schema,track){var tokenToSeenMap={},hashToSeenMap={};return function(_,state){var eventLogging=state.eventLogging,event=eventLogging.event,token,hash,shouldLog=!0;if(!event){return;}token=event.linkInteractionToken;if(tokenToSeenMap[token]===true){track('counter.PagePreviews.EventLogging.DuplicateToken',1);shouldLog=!1;}tokenToSeenMap[token]=!0;hash=fnv1a32(JSON
.stringify(event)).toString(16);if(hashToSeenMap[hash]===true){track('counter.PagePreviews.EventLogging.DuplicateEvent',1);shouldLog=!1;}hashToSeenMap[hash]=!0;if(shouldLog){schema.log($.extend(true,{},eventLogging.baseData,event));}boundActions.eventLogged();};};}),"./src/changeListeners/footerLink.js":(function(module,exports){var mw=window.mediaWiki,$=jQuery;function createFooterLink(){var $link=$('<li>').append($('<a>').attr('href','#').text(mw.message('popups-settings-enable').text())),$footer;$link.hide();$footer=$('#footer-places, #f-list');if($footer.length===0){$footer=$('#footer li').parent();}$footer.append($link);return $link;}module.exports=function(boundActions){var $footerLink;return function(prevState,state){if($footerLink===undefined){$footerLink=createFooterLink();$footerLink.click(function(e){e.preventDefault();boundActions.showSettings();});}if(state.settings.shouldShowFooterLink){$footerLink.show();}else{$footerLink.hide();}};};}),
"./src/changeListeners/index.js":(function(module,exports,__webpack_require__){module.exports={footerLink:__webpack_require__("./src/changeListeners/footerLink.js"),eventLogging:__webpack_require__("./src/changeListeners/eventLogging.js"),linkTitle:__webpack_require__("./src/changeListeners/linkTitle.js"),render:__webpack_require__("./src/changeListeners/render.js"),settings:__webpack_require__("./src/changeListeners/settings.js"),statsv:__webpack_require__("./src/changeListeners/statsv.js"),syncUserSettings:__webpack_require__("./src/changeListeners/syncUserSettings.js")};}),"./src/changeListeners/linkTitle.js":(function(module,exports){var $=jQuery;module.exports=function(){var title;function destroyTitleAttr(el){var $el=$(el);if(title){return;}title=$el.attr('title');$el.attr('title','');}function restoreTitleAttr(el){$(el).attr('title',title);title=undefined;}return function(prevState,state){var hasPrevActiveLink=prevState&&prevState.preview.activeLink;if(!state.preview.enabled){
return;}if(hasPrevActiveLink){if(prevState.preview.activeLink!==state.preview.activeLink){restoreTitleAttr(prevState.preview.activeLink);}}if(state.preview.activeLink){destroyTitleAttr(state.preview.activeLink);}};};}),"./src/changeListeners/render.js":(function(module,exports,__webpack_require__){var renderer=__webpack_require__("./src/renderer.js");module.exports=function(previewBehavior){var preview;return function(prevState,state){if(state.preview.shouldShow&&!preview){preview=renderer.render(state.preview.fetchResponse);preview.show(state.preview.activeEvent,previewBehavior,state.preview.activeToken);}else if(!state.preview.shouldShow&&preview){preview.hide();preview=undefined;}};};}),"./src/changeListeners/settings.js":(function(module,exports){module.exports=function(boundActions,render){var settings;return function(prevState,state){if(!prevState){return;}if(prevState.settings.shouldShow===false&&state.settings.shouldShow===true){if(!settings){settings=render(boundActions);
settings.appendTo(document.body);}settings.setEnabled(state.preview.enabled);settings.show();}else if(prevState.settings.shouldShow===true&&state.settings.shouldShow===false){settings.hide();}if(prevState.settings.showHelp!==state.settings.showHelp){settings.toggleHelp(state.settings.showHelp);}};};}),"./src/changeListeners/statsv.js":(function(module,exports){module.exports=function(boundActions,track){return function(_,state){var statsv=state.statsv;if(statsv.action){track(statsv.action,statsv.data);boundActions.statsvLogged();}};};}),"./src/changeListeners/syncUserSettings.js":(function(module,exports){module.exports=function(userSettings){return function(prevState,state){syncIfChanged(prevState,state,'eventLogging','previewCount',userSettings.setPreviewCount);syncIfChanged(prevState,state,'preview','enabled',userSettings.setIsEnabled);};};function get(state,reducer,prop){return state[reducer]&&state[reducer][prop];}function syncIfChanged(prevState,state,reducer,prop,sync){var
current=get(state,reducer,prop);if(prevState&&(get(prevState,reducer,prop)!==current)){sync(current);}}}),"./src/constants.js":(function(module,exports){module.exports={THUMBNAIL_SIZE:300*$.bracketedDevicePixelRatio(),EXTRACT_LENGTH:525};}),"./src/counts.js":(function(module,exports){function getEditCountBucket(count){var bucket;if(count===0){bucket='0';}else if(count>=1&&count<=4){bucket='1-4';}else if(count>=5&&count<=99){bucket='5-99';}else if(count>=100&&count<=999){bucket='100-999';}else if(count>=1000){bucket='1000+';}return bucket+' edits';}function getPreviewCountBucket(count){var bucket;if(count===-1){return'unknown';}if(count===0){bucket='0';}else if(count>=1&&count<=4){bucket='1-4';}else if(count>=5&&count<=20){bucket='5-20';}else if(count>=21){bucket='21+';}return bucket+' previews';}module.exports={getPreviewCountBucket:getPreviewCountBucket,getEditCountBucket:getEditCountBucket};}),"./src/gateway/mediawiki.js":(function(module,exports,__webpack_require__){var
CACHE_LIFETIME=300,createModel=__webpack_require__("./src/preview/model.js").createModel;function createMediaWikiApiGateway(api,config){function fetch(title){return api.get({action:'query',prop:'info|extracts|pageimages|revisions|info',formatversion:2,redirects:!0,exintro:!0,exchars:config.EXTRACT_LENGTH,explaintext:!0,piprop:'thumbnail',pithumbsize:config.THUMBNAIL_SIZE,pilicense:'any',rvprop:'timestamp',inprop:'url',titles:title,smaxage:CACHE_LIFETIME,maxage:CACHE_LIFETIME,uselang:'content'},{headers:{'X-Analytics':'preview=1'}});}function getPageSummary(title){return fetch(title).then(extractPageFromResponse).then(convertPageToModel);}return{fetch:fetch,extractPageFromResponse:extractPageFromResponse,convertPageToModel:convertPageToModel,getPageSummary:getPageSummary};}function extractPageFromResponse(data){if(data.query&&data.query.pages&&data.query.pages.length){return data.query.pages[0];}throw new Error('API response `query.pages` is empty.');}function convertPageToModel(
page){return createModel(page.title,page.canonicalurl,page.pagelanguagehtmlcode,page.pagelanguagedir,page.extract,page.thumbnail);}module.exports=createMediaWikiApiGateway;}),"./src/gateway/rest.js":(function(module,exports,__webpack_require__){var RESTBASE_ENDPOINT='/api/rest_v1/page/summary/',RESTBASE_PROFILE='https://www.mediawiki.org/wiki/Specs/Summary/1.0.0',createModel=__webpack_require__("./src/preview/model.js").createModel,mw=window.mediaWiki,$=jQuery;function createRESTBaseGateway(ajax,config){function fetch(title){return ajax({url:RESTBASE_ENDPOINT+encodeURIComponent(title),headers:{Accept:'application/json; charset=utf-8'+'profile="'+RESTBASE_PROFILE+'"'}});}function getPageSummary(title){var result=$.Deferred();fetch(title).then(function(page){result.resolve(convertPageToModel(page,config.THUMBNAIL_SIZE));},function(jqXHR){if(jqXHR.status===404){result.resolve(convertPageToModel({title:title,lang:'',dir:'',extract:''},0));}else{result.reject();}});return result.promise();}
return{fetch:fetch,convertPageToModel:convertPageToModel,getPageSummary:getPageSummary};}function generateThumbnailData(thumbnail,original,thumbSize){var parts=thumbnail.source.split('/'),lastPart=parts[parts.length-1],filename,width,height;filename=lastPart.substr(lastPart.indexOf('px-')+3);if(thumbnail.width>thumbnail.height){width=thumbSize;height=Math.floor((thumbSize/thumbnail.width)*thumbnail.height);}else{width=Math.floor((thumbSize/thumbnail.height)*thumbnail.width);height=thumbSize;}if(width>=original.width&&filename.indexOf('.svg')===-1){return original;}parts[parts.length-1]=width+'px-'+filename;return{source:parts.join('/'),width:width,height:height};}function convertPageToModel(page,thumbSize){return createModel(page.title,new mw.Title(page.title).getUrl(),page.lang,page.dir,page.extract,page.thumbnail?generateThumbnailData(page.thumbnail,page.originalimage,thumbSize):undefined);}module.exports=createRESTBaseGateway;}),"./src/getTitle.js":(function(module,exports){var mw=
window.mediaWiki;function getTitle(href,config){var linkHref,matches,queryLength,titleRegex=new RegExp(mw.RegExp.escape(config.get('wgArticlePath')).replace('\\$1','(.+)'));try{linkHref=new mw.Uri(href);}catch(e){return undefined;}if(linkHref.host!==location.hostname){return undefined;}queryLength=Object.keys(linkHref.query).length;if(!queryLength){matches=titleRegex.exec(linkHref.path);return matches?decodeURIComponent(matches[1]):undefined;}else if(queryLength===1&&linkHref.query.hasOwnProperty('title')){return linkHref.query.title;}return undefined;}module.exports=getTitle;}),"./src/index.js":(function(module,exports,__webpack_require__){var mw=mediaWiki,$=jQuery,Redux=__webpack_require__("./node_modules/redux/dist/redux.js"),ReduxThunk=__webpack_require__("./node_modules/redux-thunk/dist/redux-thunk.js"),constants=__webpack_require__("./src/constants.js"),createRESTBaseGateway=__webpack_require__("./src/gateway/rest.js"),createMediaWikiApiGateway=__webpack_require__(
"./src/gateway/mediawiki.js"),createUserSettings=__webpack_require__("./src/userSettings.js"),createPreviewBehavior=__webpack_require__("./src/previewBehavior.js"),createSchema=__webpack_require__("./src/schema.js"),createSettingsDialogRenderer=__webpack_require__("./src/settingsDialog.js"),registerChangeListener=__webpack_require__("./src/changeListener.js"),createIsEnabled=__webpack_require__("./src/isEnabled.js"),processLinks=__webpack_require__("./src/processLinks.js"),renderer=__webpack_require__("./src/renderer.js"),statsvInstrumentation=__webpack_require__("./src/statsvInstrumentation.js"),changeListeners=__webpack_require__("./src/changeListeners/index.js"),actions=__webpack_require__("./src/actions.js"),reducers=__webpack_require__("./src/reducers/index.js"),BLACKLISTED_LINKS=['.extiw','.image','.new','.internal','.external','.oo-ui-buttonedElement-button','.cancelLink a'];function createGateway(config){if(config.get('wgPopupsAPIUseRESTBase')){return createRESTBaseGateway($.
ajax,constants);}return createMediaWikiApiGateway(new mw.Api(),constants);}function getStatsvTracker(user,config,experiments){return statsvInstrumentation.isEnabled(user,config,experiments)?mw.track:$.noop;}function registerChangeListeners(store,actions,userSettings,settingsDialog,previewBehavior,statsvTracker){registerChangeListener(store,changeListeners.footerLink(actions));registerChangeListener(store,changeListeners.linkTitle());registerChangeListener(store,changeListeners.render(previewBehavior));registerChangeListener(store,changeListeners.statsv(actions,statsvTracker));registerChangeListener(store,changeListeners.syncUserSettings(userSettings));registerChangeListener(store,changeListeners.settings(actions,settingsDialog));}mw.requestIdleCallback(function(){var compose=Redux.compose,store,boundActions,generateToken=mw.user.generateRandomSessionId,gateway=createGateway(mw.config),userSettings,settingsDialog,statsvTracker,isEnabled,schema,previewBehavior;userSettings=
createUserSettings(mw.storage);settingsDialog=createSettingsDialogRenderer();statsvTracker=getStatsvTracker(mw.user,mw.config,mw.experiments);isEnabled=createIsEnabled(mw.user,userSettings,mw.config,mw.experiments);if(mw.config.get('debug')===true){compose=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||compose;}store=Redux.createStore(Redux.combineReducers(reducers),compose(Redux.applyMiddleware(ReduxThunk.default)));boundActions=Redux.bindActionCreators(actions,store.dispatch);previewBehavior=createPreviewBehavior(mw.config,mw.user,boundActions);registerChangeListeners(store,boundActions,userSettings,settingsDialog,previewBehavior,statsvTracker);mw.loader.using('ext.eventLogging.Schema').done(function(){schema=createSchema(mw.config,window);registerChangeListener(store,changeListeners.eventLogging(boundActions,schema,statsvTracker));});boundActions.boot(isEnabled,mw.user,userSettings,generateToken,mw.config);mw.hook('wikipage.content').add(function($container){var previewLinks=
processLinks($container,BLACKLISTED_LINKS,mw.config);renderer.init();previewLinks.on('mouseover keyup',function(event){boundActions.linkDwell(this,event,gateway,generateToken);}).on('mouseout blur',function(){boundActions.abandon(this);}).on('click',function(){boundActions.linkClick(this);});});});window.Redux=Redux;window.ReduxThunk=ReduxThunk;}),"./src/isEnabled.js":(function(module,exports){module.exports=function(user,userSettings,config,experiments){if(config.get('wgPopupsConflictsWithNavPopupGadget')){return false;}if(!user.isAnon()){return config.get('wgPopupsShouldSendModuleToUser');}if(config.get('wgPopupsBetaFeature')){return false;}if(!userSettings.hasIsEnabled()){return isUserSampled(user,config,experiments);}return userSettings.getIsEnabled();};function isUserSampled(user,config,experiments){var samplingRate=config.get('wgPopupsAnonsEnabledSamplingRate',0.9),bucket=experiments.getBucket({name:'ext.Popups.visibility',enabled:!0,buckets:{control:1-samplingRate,A:
samplingRate}},user.sessionId());return bucket==='A';}}),"./src/preview/model.js":(function(module,exports){var TYPE_GENERIC='generic',TYPE_PAGE='page';function createModel(title,url,languageCode,languageDirection,extract,thumbnail){var processedExtract=processExtract(extract),result={title:title,url:url,languageCode:languageCode,languageDirection:languageDirection,extract:processedExtract,type:processedExtract===undefined?TYPE_GENERIC:TYPE_PAGE,thumbnail:thumbnail};return result;}function processExtract(extract){var result;if(extract===undefined||extract===''){return undefined;}result=extract;result=removeParentheticals(result);result=removeEllipsis(result);return result.length>0?result:undefined;}function removeEllipsis(extract){return extract.replace(/\.\.\.$/,'');}function removeParentheticals(extract){var ch,result='',level=0,i=0;for(i;i<extract.length;i++){ch=extract.charAt(i);if(ch===')'&&level===0){return extract;}if(ch==='('){level++;continue;}else if(ch===')'){level--;
continue;}if(level===0){if(ch===' '&&extract.charAt(i+1)==='('){continue;}result+=ch;}}return(level===0)?result:extract;}module.exports={TYPE_GENERIC:TYPE_GENERIC,TYPE_PAGE:TYPE_PAGE,createModel:createModel};}),"./src/previewBehavior.js":(function(module,exports){var mw=window.mediaWiki,$=jQuery;module.exports=function(config,user,actions){var isBetaFeature=config.get('wgPopupsBetaFeature'),rawTitle,settingsUrl,showSettings=$.noop;if(user.isAnon()){showSettings=function(event){event.preventDefault();actions.showSettings();};}else{rawTitle='Special:Preferences#mw-prefsection-';rawTitle+=isBetaFeature?'betafeatures':'rendering';settingsUrl=mw.Title.newFromText(rawTitle).getUrl();}return{settingsUrl:settingsUrl,showSettings:showSettings,previewDwell:actions.previewDwell,previewAbandon:actions.abandon,previewShow:actions.previewShow,click:actions.linkClick};};}),"./src/processLinks.js":(function(module,exports,__webpack_require__){var mw=window.mediaWiki,$=jQuery,getTitle=
__webpack_require__("./src/getTitle.js");function processLinks($container,blacklist,config){var contentNamespaces;contentNamespaces=config.get('wgContentNamespaces');return $container.find('a[href][title]:not('+blacklist.join(', ')+')').filter(function(){var title,titleText=getTitle(this.href,config);if(!titleText){return false;}title=mw.Title.newFromText(titleText);if(title&&($.inArray(title.namespace,contentNamespaces)>=0)){$(this).data('page-previews-title',titleText);return true;}});}module.exports=processLinks;}),"./src/reducers/eventLogging.js":(function(module,exports,__webpack_require__){var actionTypes=__webpack_require__("./src/actionTypes.js"),nextState=__webpack_require__("./src/reducers/nextState.js"),counts=__webpack_require__("./src/counts.js");function getBaseData(bootAction){var result={pageTitleSource:bootAction.page.title,namespaceIdSource:bootAction.page.namespaceID,pageIdSource:bootAction.page.id,isAnon:bootAction.user.isAnon,popupEnabled:bootAction.isEnabled,
pageToken:bootAction.pageToken,sessionToken:bootAction.sessionToken,previewCountBucket:counts.getPreviewCountBucket(bootAction.user.previewCount),hovercardsSuppressedByGadget:bootAction.isNavPopupsEnabled};if(!bootAction.user.isAnon){result.editCountBucket=counts.getEditCountBucket(bootAction.user.editCount);}return result;}function createClosingEvent(interaction){var result={linkInteractionToken:interaction.token,totalInteractionTime:Math.round(interaction.finished-interaction.started)};if(interaction.finalized){return undefined;}if(interaction.timeToPreviewShow!==undefined){result.action='dismissed';result.previewType=interaction.previewType;result.perceivedWait=interaction.timeToPreviewShow;}else{result.action='dwelledButAbandoned';}return result;}module.exports=function(state,action){var nextCount,actionTypesWithTokens=[actionTypes.FETCH_COMPLETE,actionTypes.ABANDON_END,actionTypes.PREVIEW_SHOW];if(state===undefined){state={previewCount:undefined,baseData:{},interaction:undefined,
event:undefined};}if(actionTypesWithTokens.indexOf(action.type)!==-1&&(!state.interaction||action.token!==state.interaction.token)){return state;}switch(action.type){case actionTypes.BOOT:return nextState(state,{previewCount:action.user.previewCount,baseData:getBaseData(action),event:{action:'pageLoaded'}});case actionTypes.EVENT_LOGGED:return nextState(state,{event:undefined});case actionTypes.FETCH_COMPLETE:return nextState(state,{interaction:nextState(state.interaction,{previewType:action.result.type})});case actionTypes.PREVIEW_SHOW:nextCount=state.previewCount+1;return nextState(state,{previewCount:nextCount,baseData:nextState(state.baseData,{previewCountBucket:counts.getPreviewCountBucket(nextCount)}),interaction:nextState(state.interaction,{timeToPreviewShow:Math.round(action.timestamp-state.interaction.started)})});case actionTypes.LINK_DWELL:if(state.interaction&&action.el===state.interaction.link){return nextState(state,{interaction:nextState(state.interaction,{isUserDwelling
:!0})});}return nextState(state,{interaction:{link:action.el,token:action.token,started:action.timestamp,isUserDwelling:!0},event:state.interaction?createClosingEvent(state.interaction):undefined});case actionTypes.PREVIEW_DWELL:return nextState(state,{interaction:nextState(state.interaction,{isUserDwelling:!0})});case actionTypes.LINK_CLICK:return nextState(state,{interaction:nextState(state.interaction,{finalized:!0}),event:{action:'opened',linkInteractionToken:state.interaction.token,totalInteractionTime:Math.round(action.timestamp-state.interaction.started)}});case actionTypes.ABANDON_START:return nextState(state,{interaction:nextState(state.interaction,{finished:action.timestamp,isUserDwelling:!1})});case actionTypes.ABANDON_END:if(!state.interaction.isUserDwelling){return nextState(state,{interaction:undefined,event:createClosingEvent(state.interaction)});}return state;case actionTypes.SETTINGS_SHOW:return nextState(state,{event:{action:'tapped settings cog'}});default
:return state;}};}),"./src/reducers/index.js":(function(module,exports,__webpack_require__){module.exports={eventLogging:__webpack_require__("./src/reducers/eventLogging.js"),preview:__webpack_require__("./src/reducers/preview.js"),settings:__webpack_require__("./src/reducers/settings.js"),statsv:__webpack_require__("./src/reducers/statsv.js")};}),"./src/reducers/nextState.js":(function(module,exports){module.exports=function(state,updates){var result={},key;for(key in state){if(state.hasOwnProperty(key)&&!updates.hasOwnProperty(key)){result[key]=state[key];}}for(key in updates){if(updates.hasOwnProperty(key)){result[key]=updates[key];}}return result;};}),"./src/reducers/preview.js":(function(module,exports,__webpack_require__){var actionTypes=__webpack_require__("./src/actionTypes.js"),nextState=__webpack_require__("./src/reducers/nextState.js");module.exports=function(state,action){if(state===undefined){state={enabled:undefined,activeLink:undefined,activeEvent:undefined,activeToken:
'',shouldShow:!1,isUserDwelling:!1};}switch(action.type){case actionTypes.BOOT:return nextState(state,{enabled:action.isEnabled});case actionTypes.SETTINGS_CHANGE:return nextState(state,{enabled:action.enabled});case actionTypes.LINK_DWELL:if(action.el!==state.activeLink){return nextState(state,{activeLink:action.el,activeEvent:action.event,activeToken:action.token,shouldShow:!1,isUserDwelling:!0});}else{return nextState(state,{isUserDwelling:!0});}case actionTypes.ABANDON_END:if(action.token===state.activeToken&&!state.isUserDwelling){return nextState(state,{activeLink:undefined,activeToken:undefined,activeEvent:undefined,fetchResponse:undefined,shouldShow:!1});}return state;case actionTypes.PREVIEW_DWELL:return nextState(state,{isUserDwelling:!0});case actionTypes.ABANDON_START:return nextState(state,{isUserDwelling:!1});case actionTypes.FETCH_START:return nextState(state,{fetchResponse:undefined});case actionTypes.FETCH_COMPLETE:if(action.token===state.
activeToken){return nextState(state,{fetchResponse:action.result,shouldShow:state.isUserDwelling});}default:return state;}};}),"./src/reducers/settings.js":(function(module,exports,__webpack_require__){var actionTypes=__webpack_require__("./src/actionTypes.js"),nextState=__webpack_require__("./src/reducers/nextState.js");module.exports=function(state,action){if(state===undefined){state={shouldShow:!1,showHelp:!1,shouldShowFooterLink:!1};}switch(action.type){case actionTypes.SETTINGS_SHOW:return nextState(state,{shouldShow:!0,showHelp:!1});case actionTypes.SETTINGS_HIDE:return nextState(state,{shouldShow:!1,showHelp:!1});case actionTypes.SETTINGS_CHANGE:return action.wasEnabled===action.enabled?nextState(state,{shouldShow:!1}):nextState(state,{shouldShow:!action.enabled,showHelp:!action.enabled,shouldShowFooterLink:!action.enabled});case actionTypes.BOOT:return nextState(state,{shouldShowFooterLink:action.user.isAnon&&!action.isEnabled});default:return state;}};})
,"./src/reducers/statsv.js":(function(module,exports,__webpack_require__){var actionTypes=__webpack_require__("./src/actionTypes.js"),nextState=__webpack_require__("./src/reducers/nextState.js");module.exports=function(state,action){state=state||{};switch(action.type){case actionTypes.FETCH_START:return nextState(state,{fetchStartedAt:action.timestamp});case actionTypes.FETCH_END:return nextState(state,{action:'timing.PagePreviewsApiResponse',data:action.timestamp-state.fetchStartedAt});case actionTypes.FETCH_FAILED:return nextState(state,{action:'counter.PagePreviewsApiFailure',data:1});case actionTypes.LINK_DWELL:return nextState(state,{linkDwellStartedAt:action.timestamp});case actionTypes.PREVIEW_SHOW:return nextState(state,{action:'timing.PagePreviewsPreviewShow',data:action.timestamp-state.linkDwellStartedAt});case actionTypes.STATSV_LOGGED:return nextState(state,{action:null,data:null});default:return state;}};}),"./src/renderer.js":(function(module,exports,__webpack_require__){
var mw=window.mediaWiki,$=jQuery,wait=__webpack_require__("./src/wait.js"),SIZES={portraitImage:{h:250,w:203},landscapeImage:{h:200,w:300},landscapePopupWidth:450,portraitPopupWidth:300,pokeySize:8},$window=$(window);function createPokeyMasks(container){$('<div>').attr('id','mwe-popups-svg').html('<svg width="0" height="0">'+'<defs>'+'<clippath id="mwe-popups-mask">'+'<polygon points="0 8, 10 8, 18 0, 26 8, 1000 8, 1000 1000, 0 1000"/>'+'</clippath>'+'<clippath id="mwe-popups-mask-flip">'+'<polygon points="0 8, 274 8, 282 0, 290 8, 1000 8, 1000 1000, 0 1000"/>'+'</clippath>'+'<clippath id="mwe-popups-landscape-mask">'+'<polygon points="0 8, 174 8, 182 0, 190 8, 1000 8, 1000 1000, 0 1000"/>'+'</clippath>'+'<clippath id="mwe-popups-landscape-mask-flip">'+'<polygon points="0 0, 1000 0, 1000 242, 190 242, 182 250, 174 242, 0 242"/>'+'</clippath>'+'</defs>'+'</svg>').appendTo(container);}function init(){createPokeyMasks(document.body);}function render(model){var preview=model.extract===
undefined?createEmptyPreview(model):createPreview(model);return{show:function(event,boundActions,token){return show(preview,event,$(event.target),boundActions,token,document.body);},hide:function(){return hide(preview);}};}function createPreview(model){var templateData,thumbnail=createThumbnail(model.thumbnail),hasThumbnail=thumbnail!==null,extract=renderExtract(model.extract,model.title),$el;templateData=$.extend({},model,{hasThumbnail:hasThumbnail});$el=mw.template.get('ext.popups','preview.mustache').render(templateData);if(hasThumbnail){$el.find('.mwe-popups-discreet').append(thumbnail.el);}if(extract.length){$el.find('.mwe-popups-extract').append(extract);}return{el:$el,hasThumbnail:hasThumbnail,thumbnail:thumbnail,isTall:hasThumbnail&&thumbnail.isTall};}function createEmptyPreview(model){var templateData,$el;templateData=$.extend({},model,{extractMsg:mw.msg('popups-preview-no-preview'),readMsg:mw.msg('popups-preview-footer-read')});$el=mw.template.get('ext.popups',
'preview-empty.mustache').render(templateData);return{el:$el,hasThumbnail:!1,isTall:!1};}function renderExtract(extract,title){var regExp,escapedTitle,elements=[],boldIdentifier='<bi-'+Math.random()+'>',snip='<snip-'+Math.random()+'>';title=title.replace(/\s+/g,' ').trim();escapedTitle=mw.RegExp.escape(title);regExp=new RegExp('(^|\\s)('+escapedTitle+')(|$)','i');extract=extract.replace(/\s+/,' ');extract=extract.replace(regExp,'$1'+snip+boldIdentifier+'$2'+snip+'$3');extract=extract.split(snip);$.each(extract,function(index,part){if(part.indexOf(boldIdentifier)===0){elements.push($('<b>').text(part.substring(boldIdentifier.length)));}else{elements.push(document.createTextNode(part));}});return elements;}function show(preview,event,$link,behavior,token,container){var layout=createLayout(preview.isTall,{pageX:event.pageX,pageY:event.pageY,clientY:event.clientY},{clientRects:$link.get(0).getClientRects(),offset:$link.offset(),width:$link.width(),height:$link.height()},{scrollTop:
$window.scrollTop(),width:$window.width(),height:$window.height()},SIZES.pokeySize);preview.el.appendTo(container);layoutPreview(preview,layout,getClasses(preview,layout),SIZES.landscapeImage.h,SIZES.pokeySize);preview.el.show();return wait(200).then(function(){bindBehavior(preview,behavior);}).then(function(){behavior.previewShow(token);});}function bindBehavior(preview,behavior){preview.el.hover(behavior.previewDwell,behavior.previewAbandon);preview.el.click(behavior.click);preview.el.find('.mwe-popups-settings-icon').attr('href',behavior.settingsUrl).click(function(event){event.stopPropagation();behavior.showSettings(event);});}function hide(preview){var fadeInClass,fadeOutClass;fadeInClass=(preview.el.hasClass('mwe-popups-fade-in-up'))?'mwe-popups-fade-in-up':'mwe-popups-fade-in-down';fadeOutClass=(fadeInClass==='mwe-popups-fade-in-up')?'mwe-popups-fade-out-down':'mwe-popups-fade-out-up';preview.el.removeClass(fadeInClass).addClass(fadeOutClass);return wait(150).then(function(){
preview.el.remove();});}function createThumbnail(rawThumbnail){var tall,thumbWidth,thumbHeight,x,y,width,height,clipPath,devicePixelRatio=$.bracketedDevicePixelRatio();if(!rawThumbnail){return null;}tall=rawThumbnail.width<rawThumbnail.height;thumbWidth=rawThumbnail.width/devicePixelRatio;thumbHeight=rawThumbnail.height/devicePixelRatio;if((!tall&&thumbWidth<SIZES.landscapeImage.w)||(tall&&thumbHeight<SIZES.portraitImage.h)||(rawThumbnail.source.indexOf('\\')>-1||rawThumbnail.source.indexOf('\'')>-1||rawThumbnail.source.indexOf('\"')>-1)){return null;}if(tall){x=(thumbWidth>SIZES.portraitImage.w)?((thumbWidth-SIZES.portraitImage.w)/-2):(SIZES.portraitImage.w-thumbWidth);y=(thumbHeight>SIZES.portraitImage.h)?((thumbHeight-SIZES.portraitImage.h)/-2):0;width=SIZES.portraitImage.w;height=SIZES.portraitImage.h;}else{x=0;y=(thumbHeight>SIZES.landscapeImage.h)?((thumbHeight-SIZES.landscapeImage.h)/-2):0;width=SIZES.landscapeImage.w+3;height=(thumbHeight>SIZES.landscapeImage.h)?SIZES.
landscapeImage.h:thumbHeight;clipPath='mwe-popups-mask';}return{el:createThumbnailElement(tall?'mwe-popups-is-tall':'mwe-popups-is-not-tall',rawThumbnail.source,x,y,thumbWidth,thumbHeight,width,height,clipPath),isTall:tall,width:thumbWidth,height:thumbHeight};}function createThumbnailElement(className,url,x,y,thumbnailWidth,thumbnailHeight,width,height,clipPath){var $thumbnailSVGImage,$thumbnail,nsSvg='http://www.w3.org/2000/svg',nsXlink='http://www.w3.org/1999/xlink';$thumbnailSVGImage=$(document.createElementNS(nsSvg,'image'));$thumbnailSVGImage[0].setAttributeNS(nsXlink,'href',url);$thumbnailSVGImage.addClass(className).attr({x:x,y:y,width:thumbnailWidth,height:thumbnailHeight,'clip-path':'url(#'+clipPath+')'});$thumbnail=$(document.createElementNS(nsSvg,'svg')).attr({xmlns:nsSvg,width:width,height:height}).append($thumbnailSVGImage);return $thumbnail;}function createLayout(isPreviewTall,eventData,linkData,windowData,pokeySize){var flippedX=!1,flippedY=!1,offsetTop=(eventData.
pageY)?getClosestYPosition(eventData.pageY-windowData.scrollTop,linkData.clientRects,false)+windowData.scrollTop+pokeySize:linkData.offset.top+linkData.height+pokeySize,clientTop=(eventData.clientY)?eventData.clientY:offsetTop,offsetLeft=(eventData.pageX)?eventData.pageX:linkData.offset.left;if(offsetLeft>(windowData.width/2)){offsetLeft+=(!eventData.pageX)?linkData.width:0;offsetLeft-=!isPreviewTall?SIZES.portraitPopupWidth:SIZES.landscapePopupWidth;flippedX=!0;}if(eventData.pageX){offsetLeft+=(flippedX)?20:-20;}if(clientTop>(windowData.height/2)){flippedY=!0;offsetTop=linkData.offset.top;if(eventData.pageY){offsetTop=getClosestYPosition(eventData.pageY-windowData.scrollTop,linkData.clientRects,true)+windowData.scrollTop;}offsetTop-=pokeySize;}return{offset:{top:offsetTop,left:offsetLeft},flippedX:flippedX,flippedY:flippedY};}function getClasses(preview,layout){var classes=[];if(layout.flippedY){classes.push('mwe-popups-fade-in-down');}else{classes.push('mwe-popups-fade-in-up');}
if(layout.flippedY&&layout.flippedX){classes.push('flipped_x_y');}if(layout.flippedY&&!layout.flippedX){classes.push('flipped_y');}if(layout.flippedX&&!layout.flippedY){classes.push('flipped_x');}if((!preview.hasThumbnail||preview.isTall)&&!layout.flippedY){classes.push('mwe-popups-no-image-tri');}if((preview.hasThumbnail&&!preview.isTall)&&!layout.flippedY){classes.push('mwe-popups-image-tri');}if(preview.isTall){classes.push('mwe-popups-is-tall');}else{classes.push('mwe-popups-is-not-tall');}return classes;}function layoutPreview(preview,layout,classes,predefinedLandscapeImageHeight,pokeySize){var popup=preview.el,isTall=preview.isTall,hasThumbnail=preview.hasThumbnail,thumbnail=preview.thumbnail,flippedY=layout.flippedY,flippedX=layout.flippedX,offsetTop=layout.offset.top;if(!flippedY&&!isTall&&hasThumbnail&&thumbnail.height<predefinedLandscapeImageHeight){popup.find('.mwe-popups-extract').css('margin-top',thumbnail.height-pokeySize);}popup.addClass(classes.join(' '));if(flippedY){
offsetTop-=popup.outerHeight();}popup.css({top:offsetTop,left:layout.offset.left+'px'});if(flippedY&&hasThumbnail){popup.find('image')[0].removeAttribute('clip-path');}if(flippedY&&flippedX&&hasThumbnail&&isTall){popup.find('image')[0].setAttribute('clip-path','url(#mwe-popups-landscape-mask-flip)');}if(flippedX&&!flippedY&&hasThumbnail&&!isTall){popup.find('image')[0].setAttribute('clip-path','url(#mwe-popups-mask-flip)');}if(flippedX&&!flippedY&&hasThumbnail&&isTall){popup.removeClass('mwe-popups-no-image-tri').find('image')[0].setAttribute('clip-path','url(#mwe-popups-landscape-mask)');}}function getClosestYPosition(y,rects,isTop){var result,deltaY,minY=null;$.each(rects,function(i,rect){deltaY=Math.abs(y-rect.top+y-rect.bottom);if(minY===null||minY>deltaY){minY=deltaY;result=(isTop)?Math.floor(rect.top):Math.ceil(rect.bottom);}});return result;}module.exports={render:render,init:init,createPokeyMasks:createPokeyMasks,createPreview:createPreview,createEmptyPreview:createEmptyPreview
,bindBehavior:bindBehavior,show:show,hide:hide,createThumbnail:createThumbnail,createThumbnailElement:createThumbnailElement,renderExtract:renderExtract,createLayout:createLayout,getClasses:getClasses,layoutPreview:layoutPreview,getClosestYPosition:getClosestYPosition};}),"./src/schema.js":(function(module,exports){var mw=window.mediaWiki,$=jQuery;module.exports=function(config,window){var samplingRate=config.get('wgPopupsSchemaSamplingRate',0);if(!window.navigator||!$.isFunction(window.navigator.sendBeacon)){samplingRate=0;}return new mw.eventLog.Schema('Popups',samplingRate);};}),"./src/settingsDialog.js":(function(module,exports){var mw=window.mediaWiki,$=jQuery;module.exports=function(){var $dialog,$overlay;return function(boundActions){if(!$dialog){$dialog=createSettingsDialog();$overlay=$('<div>').addClass('mwe-popups-overlay');$dialog.find('.save').click(function(){var selected=getSelectedSetting($dialog),enabled=selected==='simple';boundActions.saveSettings(enabled);});$dialog.
find('.close, .okay').click(boundActions.hideSettings);}return{appendTo:function(el){$overlay.appendTo(el);$dialog.appendTo(el);},show:function(){var h=$(window).height(),w=$(window).width();$overlay.show();$dialog.show().css('left',(w-$dialog.outerWidth(true))/2).css('top',(h-$dialog.outerHeight(true))/2);},hide:function(){$overlay.hide();$dialog.hide();},toggleHelp:function(visible){toggleHelp($dialog,visible);},setEnabled:function(enabled){var name='off';if(enabled){name='simple';}else if(isNavPopupsEnabled()){name='advanced';}$dialog.find('#mwe-popups-settings-'+name).prop('checked',true);}};};};function createSettingsDialog(){var $el,path=mw.config.get('wgExtensionAssetsPath')+'/Popups/resources/ext.popups/images/',choices=[{id:'simple',name:mw.msg('popups-settings-option-simple'),description:mw.msg('popups-settings-option-simple-description'),image:path+'hovercard.svg',isChecked:!0},{id:'advanced',name:mw.msg('popups-settings-option-advanced'),description:mw.msg(
'popups-settings-option-advanced-description'),image:path+'navpop.svg'},{id:'off',name:mw.msg('popups-settings-option-off')}];if(!isNavPopupsEnabled()){choices.splice(1,1);}$el=mw.template.get('ext.popups','settings.mustache').render({heading:mw.msg('popups-settings-title'),closeLabel:mw.msg('popups-settings-cancel'),saveLabel:mw.msg('popups-settings-save'),helpText:mw.msg('popups-settings-help'),okLabel:mw.msg('popups-settings-help-ok'),descriptionText:mw.msg('popups-settings-description'),choices:choices});return $el;}function getSelectedSetting($el){return $el.find('input[name=mwe-popups-setting]:checked, #mwe-popups-settings').val();}function toggleHelp($el,visible){var $dialog=$('#mwe-popups-settings'),formSelectors='main, .save, .close',helpSelectors='.mwe-popups-settings-help, .okay';if(visible){$dialog.find(formSelectors).hide();$dialog.find(helpSelectors).show();}else{$dialog.find(formSelectors).show();$dialog.find(helpSelectors).hide();}}function isNavPopupsEnabled(){return typeof pg
!=='undefined'&&pg.fn.disablePopups!==undefined;}}),"./src/statsvInstrumentation.js":(function(module,exports){function isEnabled(user,config,experiments){var samplingRate=config.get('wgPopupsStatsvSamplingRate',0),bucket=experiments.getBucket({name:'ext.Popups.statsv',enabled:!0,buckets:{control:1-samplingRate,A:samplingRate}},user.sessionId());return bucket==='A';}module.exports={isEnabled:isEnabled};}),"./src/userSettings.js":(function(module,exports){var IS_ENABLED_KEY='mwe-popups-enabled',PREVIEW_COUNT_KEY='ext.popups.core.previewCount';module.exports=function(storage){return{getIsEnabled:function(){return storage.get(IS_ENABLED_KEY)!=='0';},setIsEnabled:function(isEnabled){storage.set(IS_ENABLED_KEY,isEnabled?'1':'0');},hasIsEnabled:function(){var value=storage.get(IS_ENABLED_KEY);return Boolean(value)!==!1;},getPreviewCount:function(){var result=storage.get(PREVIEW_COUNT_KEY);if(result===false){return-1;}else if(result===null){return 0;}return parseInt(result,10);},
setPreviewCount:function(count){storage.set(PREVIEW_COUNT_KEY,count.toString());}};};}),"./src/wait.js":(function(module,exports){var $=jQuery;module.exports=function(delay){var result=$.Deferred();setTimeout(function(){result.resolve();},delay);return result.promise();};})});;mw.loader.state({"ext.popups":"ready"});
/*@nomin*/
!function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./src/index.js")}({"./node_modules/redux-thunk/dist/redux-thunk.min.js":function(e,t,n){!function(t,n){e.exports=n()}(0,function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t){"use strict";function n(e){return function(t){var n=t.dispatch,i=t.getState;return function(t){return function(r){return"function"==typeof r?r(n,i,e):t(r)}}}}t.__esModule=!0;var i=n();i.withExtraArgument=n,t.default=i}])})},"./node_modules/redux/dist/redux.min.js":function(e,t,n){!function(t,n){e.exports=n()}(0,function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.compose=t.applyMiddleware=t.bindActionCreators=t.combineReducers=t.createStore=void 0;var r=n(2),o=i(r),s=n(7),a=i(s),u=n(6),c=i(u),p=n(5),l=i(p),d=n(1),f=i(d);i(n(3)),t.createStore=o.default,t.combineReducers=a.default,t.bindActionCreators=c.default,t.applyMiddleware=l.default,t.compose=f.default},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];if(0===t.length)return function(e){return e};if(1===t.length)return t[0];var i=t[t.length-1],r=t.slice(0,-1);return function(){return r.reduceRight(function(e,t){return t(e)},i.apply(void 0,arguments))}}t.__esModule=!0,t.default=n},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t,n){function i(){w===v&&(w=v.slice())}function o(){return h}function a(e){if("function"!=typeof e)throw Error("Expected listener to be a function.");var t=!0;return i(),w.push(e),function(){if(t){t=!1,i();var n=w.indexOf(e);w.splice(n,1)}}}function p(e){if(!(0,s.default)(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(m)throw Error("Reducers may not dispatch actions.");try{m=!0,h=g(h,e)}finally{m=!1}for(var t=v=w,n=0;t.length>n;n++)t[n]();return e}function l(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");g=e,p({type:c.INIT})}function d(){var e,t=a;return e={subscribe:function(e){function n(){e.next&&e.next(o())}if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");return n(),{unsubscribe:t(n)}}},e[u.default]=function(){return this},e}var f;if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(r)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var g=e,h=t,v=[],w=v,m=!1;return p({type:c.INIT}),f={dispatch:p,subscribe:a,getState:o,replaceReducer:l},f[u.default]=d,f}t.__esModule=!0,t.ActionTypes=void 0,t.default=r;var o=n(4),s=i(o),a=n(12),u=i(a),c=t.ActionTypes={INIT:"@@redux/INIT"}},function(e,t){"use strict";function n(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e);try{throw Error(e)}catch(e){}}t.__esModule=!0,t.default=n},function(e,t,n){function i(e){if(!s(e)||f.call(e)!=a||o(e))return!1;var t=r(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&p.call(n)==d}var r=n(8),o=n(9),s=n(11),a="[object Object]",u=Function.prototype,c=Object.prototype,p=u.toString,l=c.hasOwnProperty,d=p.call(Object),f=c.toString;e.exports=i},function(e,t,n){"use strict";function i(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(n,i,o){var a=e(n,i,o),u=a.dispatch,c=[],p={getState:a.getState,dispatch:function(e){return u(e)}};return c=t.map(function(e){return e(p)}),u=s.default.apply(void 0,c)(a.dispatch),r({},a,{dispatch:u})}}}t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e};t.default=i;var o=n(1),s=function(e){return e&&e.__esModule?e:{default:e}}(o)},function(e,t){"use strict";function n(e,t){return function(){return t(e.apply(void 0,arguments))}}function i(e,t){if("function"==typeof e)return n(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 i=Object.keys(e),r={},o=0;i.length>o;o++){var s=i[o],a=e[s];"function"==typeof a&&(r[s]=n(a,t))}return r}t.__esModule=!0,t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){var n=t&&t.type;return"Given action "+(n&&'"'+n+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state.'}function o(e){Object.keys(e).forEach(function(t){var n=e[t];if(void 0===n(void 0,{type:a.ActionTypes.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(void 0===n(void 0,{type:"@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".")}))throw Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+a.ActionTypes.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.')})}function s(e){for(var t=Object.keys(e),n={},i=0;t.length>i;i++){var s=t[i];"function"==typeof e[s]&&(n[s]=e[s])}var a,u=Object.keys(n);try{o(n)}catch(e){a=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(a)throw a;for(var i=!1,o={},s=0;u.length>s;s++){var c=u[s],p=n[c],l=e[c],d=p(l,t);if(void 0===d){var f=r(c,t);throw Error(f)}o[c]=d,i=i||d!==l}return i?o:e}}t.__esModule=!0,t.default=s;var a=n(2);i((i(n(4)),n(3)))},function(e,t,n){var i=n(10),r=i(Object.getPrototypeOf,Object);e.exports=r},function(e,t){function n(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}e.exports=n},function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t){function n(e){return!!e&&"object"==typeof e}e.exports=n},function(e,t,n){e.exports=n(13)},function(e,t,n){(function(e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(14),r=function(e){return e&&e.__esModule?e:{default:e}}(i),o=void 0;void 0!==e?o=e:"undefined"!=typeof window&&(o=window);var s=(0,r.default)(o);t.default=s}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n}])})},"./src/actionTypes.js":function(e,t){e.exports={BOOT:"BOOT",LINK_DWELL:"LINK_DWELL",ABANDON_START:"ABANDON_START",ABANDON_END:"ABANDON_END",LINK_CLICK:"LINK_CLICK",FETCH_START:"FETCH_START",FETCH_END:"FETCH_END",FETCH_COMPLETE:"FETCH_COMPLETE",FETCH_FAILED:"FETCH_FAILED",PREVIEW_DWELL:"PREVIEW_DWELL",PREVIEW_SHOW:"PREVIEW_SHOW",PREVIEW_CLICK:"PREVIEW_CLICK",SETTINGS_SHOW:"SETTINGS_SHOW",SETTINGS_HIDE:"SETTINGS_HIDE",SETTINGS_CHANGE:"SETTINGS_CHANGE",EVENT_LOGGED:"EVENT_LOGGED",STATSV_LOGGED:"STATSV_LOGGED"}},"./src/actions.js":function(e,t,n){function i(e){return e.timestamp=o.now(),e}var r=jQuery,o=window.mediaWiki,s={},a=n("./src/actionTypes.js"),u=n("./src/wait.js");s.boot=function(e,t,n,i,r){var o=r.get("wgUserEditCount"),s=n.getPreviewCount();return{type:a.BOOT,isEnabled:e,isNavPopupsEnabled:r.get("wgPopupsConflictsWithNavPopupGadget"),sessionToken:t.sessionId(),pageToken:i(),page:{title:r.get("wgTitle"),namespaceID:r.get("wgNamespaceNumber"),id:r.get("wgArticleId")},user:{isAnon:t.isAnon(),editCount:o,previewCount:s}}},s.fetch=function(e,t,n){var o=r(t).data("page-previews-title");return function(s){var c;s(i({type:a.FETCH_START,el:t,title:o})),c=e.getPageSummary(o).then(function(e){return s(i({type:a.FETCH_END,el:t})),e}).fail(function(){s({type:a.FETCH_FAILED,el:t})}),r.when(c,u(350)).then(function(e){s(i({type:a.FETCH_COMPLETE,el:t,result:e,token:n}))})}},s.linkDwell=function(e,t,n,r){var o=r();return function(r,c){function p(){return c().preview.activeToken===o}var l=i({type:a.LINK_DWELL,el:e,event:t,token:o});r(l),p()&&u(150).then(function(){c().preview.enabled&&p()&&r(s.fetch(n,e,o))})}},s.abandon=function(){return function(e,t){var n=t().preview.activeToken;n&&(e(i({type:a.ABANDON_START,token:n})),u(300).then(function(){e({type:a.ABANDON_END,token:n})}))}},s.linkClick=function(e){return i({type:a.LINK_CLICK,el:e})},s.previewDwell=function(){return{type:a.PREVIEW_DWELL}},s.previewShow=function(e){return i({type:a.PREVIEW_SHOW,token:e})},s.showSettings=function(){return{type:a.SETTINGS_SHOW}},s.hideSettings=function(){return{type:a.SETTINGS_HIDE}},s.saveSettings=function(e){return function(t,n){t({type:a.SETTINGS_CHANGE,wasEnabled:n().preview.enabled,enabled:e})}},s.eventLogged=function(){return{type:a.EVENT_LOGGED}},s.statsvLogged=function(){return{type:a.STATSV_LOGGED}},e.exports=s},"./src/changeListener.js":function(e,t){e.exports=function(e,t){var n;e.subscribe(function(){var i=n;n=e.getState(),i!==n&&t(i,n)})}},"./src/changeListeners/eventLogging.js":function(e,t){function n(e){var t=2166136261,n=0;for(n=0;n<e.length;++n)t^=e.charCodeAt(n),t*=16777619;return t>>>0}var i=jQuery;e.exports=function(e,t,r){var o={},s={};return function(a,u){var c,p,l=u.eventLogging,d=l.event,f=!0;d&&(c=d.linkInteractionToken,!0===o[c]&&(r("counter.PagePreviews.EventLogging.DuplicateToken",1),f=!1),o[c]=!0,p=n(JSON.stringify(d)).toString(16),!0===s[p]&&(r("counter.PagePreviews.EventLogging.DuplicateEvent",1),f=!1),s[p]=!0,f&&t.log(i.extend(!0,{},l.baseData,d)),e.eventLogged())}}},"./src/changeListeners/footerLink.js":function(e,t){function n(){var e,t=r("<li>").append(r("<a>").attr("href","#").text(i.message("popups-settings-enable").text()));return t.hide(),e=r("#footer-places, #f-list"),0===e.length&&(e=r("#footer li").parent()),e.append(t),t}var i=window.mediaWiki,r=jQuery;e.exports=function(e){var t;return function(i,r){void 0===t&&(t=n(),t.click(function(t){t.preventDefault(),e.showSettings()})),r.settings.shouldShowFooterLink?t.show():t.hide()}}},"./src/changeListeners/index.js":function(e,t,n){e.exports={footerLink:n("./src/changeListeners/footerLink.js"),eventLogging:n("./src/changeListeners/eventLogging.js"),linkTitle:n("./src/changeListeners/linkTitle.js"),render:n("./src/changeListeners/render.js"),settings:n("./src/changeListeners/settings.js"),statsv:n("./src/changeListeners/statsv.js"),syncUserSettings:n("./src/changeListeners/syncUserSettings.js")}},"./src/changeListeners/linkTitle.js":function(e,t){var n=jQuery;e.exports=function(){function e(e){var t=n(e);i||(i=t.attr("title"),t.attr("title",""))}function t(e){n(e).attr("title",i),i=void 0}var i;return function(n,i){var r=n&&n.preview.activeLink;i.preview.enabled&&(r&&n.preview.activeLink!==i.preview.activeLink&&t(n.preview.activeLink),i.preview.activeLink&&e(i.preview.activeLink))}}},"./src/changeListeners/render.js":function(e,t,n){var i=n("./src/renderer.js");e.exports=function(e){var t;return function(n,r){r.preview.shouldShow&&!t?(t=i.render(r.preview.fetchResponse),t.show(r.preview.activeEvent,e,r.preview.activeToken)):!r.preview.shouldShow&&t&&(t.hide(),t=void 0)}}},"./src/changeListeners/settings.js":function(e,t){e.exports=function(e,t){var n;return function(i,r){i&&(!1===i.settings.shouldShow&&!0===r.settings.shouldShow?(n||(n=t(e),n.appendTo(document.body)),n.setEnabled(r.preview.enabled),n.show()):!0===i.settings.shouldShow&&!1===r.settings.shouldShow&&n.hide(),i.settings.showHelp!==r.settings.showHelp&&n.toggleHelp(r.settings.showHelp))}}},"./src/changeListeners/statsv.js":function(e,t){e.exports=function(e,t){return function(n,i){var r=i.statsv;r.action&&(t(r.action,r.data),e.statsvLogged())}}},"./src/changeListeners/syncUserSettings.js":function(e,t){function n(e,t,n){return e[t]&&e[t][n]}function i(e,t,i,r,o){var s=n(t,i,r);e&&n(e,i,r)!==s&&o(s)}e.exports=function(e){return function(t,n){i(t,n,"eventLogging","previewCount",e.setPreviewCount),i(t,n,"preview","enabled",e.setIsEnabled)}}},"./src/constants.js":function(e,t){e.exports={THUMBNAIL_SIZE:300*$.bracketedDevicePixelRatio(),EXTRACT_LENGTH:525}},"./src/counts.js":function(e,t){function n(e){var t;return 0===e?t="0":e>=1&&e<=4?t="1-4":e>=5&&e<=99?t="5-99":e>=100&&e<=999?t="100-999":e>=1e3&&(t="1000+"),t+" edits"}function i(e){var t;return-1===e?"unknown":(0===e?t="0":e>=1&&e<=4?t="1-4":e>=5&&e<=20?t="5-20":e>=21&&(t="21+"),t+" previews")}e.exports={getPreviewCountBucket:i,getEditCountBucket:n}},"./src/gateway/mediawiki.js":function(e,t,n){function i(e,t){function n(n){return e.get({action:"query",prop:"info|extracts|pageimages|revisions|info",formatversion:2,redirects:!0,exintro:!0,exchars:t.EXTRACT_LENGTH,explaintext:!0,piprop:"thumbnail",pithumbsize:t.THUMBNAIL_SIZE,pilicense:"any",rvprop:"timestamp",inprop:"url",titles:n,smaxage:s,maxage:s,uselang:"content"},{headers:{"X-Analytics":"preview=1"}})}function i(e){return n(e).then(r).then(o)}return{fetch:n,extractPageFromResponse:r,convertPageToModel:o,getPageSummary:i}}function r(e){if(e.query&&e.query.pages&&e.query.pages.length)return e.query.pages[0];throw new Error("API response `query.pages` is empty.")}function o(e){return a(e.title,e.canonicalurl,e.pagelanguagehtmlcode,e.pagelanguagedir,e.extract,e.thumbnail)}var s=300,a=n("./src/preview/model.js").createModel;e.exports=i},"./src/gateway/rest.js":function(e,t,n){function i(e,t){function n(t){return e({url:s+encodeURIComponent(t),headers:{Accept:'application/json; charset=utf-8profile="'+a+'"'}})}function i(e){var i=p.Deferred();return n(e).then(function(e){i.resolve(o(e,t.THUMBNAIL_SIZE))},function(t){404===t.status?i.resolve(o({title:e,lang:"",dir:"",extract:""},0)):i.reject()}),i.promise()}return{fetch:n,convertPageToModel:o,getPageSummary:i}}function r(e,t,n){var i,r,o,s=e.source.split("/"),a=s[s.length-1];return i=a.substr(a.indexOf("px-")+3),e.width>e.height?(r=n,o=Math.floor(n/e.width*e.height)):(r=Math.floor(n/e.height*e.width),o=n),r>=t.width&&-1===i.indexOf(".svg")?t:(s[s.length-1]=r+"px-"+i,{source:s.join("/"),width:r,height:o})}function o(e,t){return u(e.title,new c.Title(e.title).getUrl(),e.lang,e.dir,e.extract,e.thumbnail?r(e.thumbnail,e.originalimage,t):void 0)}var s="/api/rest_v1/page/summary/",a="https://www.mediawiki.org/wiki/Specs/Summary/1.0.0",u=n("./src/preview/model.js").createModel,c=window.mediaWiki,p=jQuery;e.exports=i},"./src/getTitle.js":function(e,t){function n(e,t){var n,r,o,s=new RegExp(i.RegExp.escape(t.get("wgArticlePath")).replace("\\$1","(.+)"));try{n=new i.Uri(e)}catch(e){return}if(n.host===location.hostname)return o=Object.keys(n.query).length,o?1===o&&n.query.hasOwnProperty("title")?n.query.title:void 0:(r=s.exec(n.path),r?decodeURIComponent(r[1]):void 0)}var i=window.mediaWiki;e.exports=n},"./src/index.js":function(e,t,n){function i(e){return e.get("wgPopupsAPIUseRESTBase")?l(a.ajax,p):d(new s.Api,p)}function r(e,t,n){return y.isEnabled(e,t,n)?s.track:a.noop}function o(e,t,n,i,r,o){w(e,b.footerLink(t)),w(e,b.linkTitle()),w(e,b.render(r)),w(e,b.statsv(t,o)),w(e,b.syncUserSettings(n)),w(e,b.settings(t,i))}var s=mediaWiki,a=jQuery,u=n("./node_modules/redux/dist/redux.min.js"),c=n("./node_modules/redux-thunk/dist/redux-thunk.min.js"),p=n("./src/constants.js"),l=n("./src/gateway/rest.js"),d=n("./src/gateway/mediawiki.js"),f=n("./src/userSettings.js"),g=n("./src/previewBehavior.js"),h=n("./src/schema.js"),v=n("./src/settingsDialog.js"),w=n("./src/changeListener.js"),m=n("./src/isEnabled.js"),E=n("./src/processLinks.js"),T=n("./src/renderer.js"),y=n("./src/statsvInstrumentation.js"),b=n("./src/changeListeners/index.js"),x=n("./src/actions.js"),S=n("./src/reducers/index.js"),k=[".extiw",".image",".new",".internal",".external",".oo-ui-buttonedElement-button",".cancelLink a"];s.requestIdleCallback(function(){var e,t,n,a,p,l,d,y,_=u.compose,L=s.user.generateRandomSessionId,j=i(s.config);n=f(s.storage),a=v(),p=r(s.user,s.config,s.experiments),l=m(s.user,n,s.config,s.experiments),!0===s.config.get("debug")&&(_=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||_),e=u.createStore(u.combineReducers(S),_(u.applyMiddleware(c.default))),t=u.bindActionCreators(x,e.dispatch),y=g(s.config,s.user,t),o(e,t,n,a,y,p),s.loader.using("ext.eventLogging.Schema").done(function(){d=h(s.config,window),w(e,b.eventLogging(t,d,p))}),t.boot(l,s.user,n,L,s.config),s.hook("wikipage.content").add(function(e){var n=E(e,k,s.config);T.init(),n.on("mouseover keyup",function(e){t.linkDwell(this,e,j,L)}).on("mouseout blur",function(){t.abandon(this)}).on("click",function(){t.linkClick(this)})})}),window.Redux=u,window.ReduxThunk=c},"./src/isEnabled.js":function(e,t){function n(e,t,n){var i=t.get("wgPopupsAnonsEnabledSamplingRate",.9);return"A"===n.getBucket({name:"ext.Popups.visibility",enabled:!0,buckets:{control:1-i,A:i}},e.sessionId())}e.exports=function(e,t,i,r){return!i.get("wgPopupsConflictsWithNavPopupGadget")&&(e.isAnon()?!i.get("wgPopupsBetaFeature")&&(t.hasIsEnabled()?t.getIsEnabled():n(e,i,r)):i.get("wgPopupsShouldSendModuleToUser"))}},"./src/preview/model.js":function(e,t){function n(e,t,n,r,o,u){var c=i(o);return{title:e,url:t,languageCode:n,languageDirection:r,extract:c,type:void 0===c?s:a,thumbnail:u}}function i(e){var t;if(void 0!==e&&""!==e)return t=e,t=o(t),t=r(t),t.length>0?t:void 0}function r(e){return e.replace(/\.\.\.$/,"")}function o(e){var t,n="",i=0,r=0;for(r;r<e.length;r++){if(")"===(t=e.charAt(r))&&0===i)return e;if("("!==t)if(")"!==t){if(0===i){if(" "===t&&"("===e.charAt(r+1))continue;n+=t}}else i--;else i++}return 0===i?n:e}var s="generic",a="page";e.exports={TYPE_GENERIC:s,TYPE_PAGE:a,createModel:n}},"./src/previewBehavior.js":function(e,t){var n=window.mediaWiki,i=jQuery;e.exports=function(e,t,r){var o,s,a=e.get("wgPopupsBetaFeature"),u=i.noop;return t.isAnon()?u=function(e){e.preventDefault(),r.showSettings()}:(o="Special:Preferences#mw-prefsection-",o+=a?"betafeatures":"rendering",s=n.Title.newFromText(o).getUrl()),{settingsUrl:s,showSettings:u,previewDwell:r.previewDwell,previewAbandon:r.abandon,previewShow:r.previewShow,click:r.linkClick}}},"./src/processLinks.js":function(e,t,n){function i(e,t,n){var i;return i=n.get("wgContentNamespaces"),e.find("a[href][title]:not("+t.join(", ")+")").filter(function(){var e,t=s(this.href,n);return!!t&&(e=r.Title.newFromText(t),e&&o.inArray(e.namespace,i)>=0?(o(this).data("page-previews-title",t),!0):void 0)})}var r=window.mediaWiki,o=jQuery,s=n("./src/getTitle.js");e.exports=i},"./src/reducers/eventLogging.js":function(e,t,n){function i(e){var t={pageTitleSource:e.page.title,namespaceIdSource:e.page.namespaceID,pageIdSource:e.page.id,isAnon:e.user.isAnon,popupEnabled:e.isEnabled,pageToken:e.pageToken,sessionToken:e.sessionToken,previewCountBucket:a.getPreviewCountBucket(e.user.previewCount),hovercardsSuppressedByGadget:e.isNavPopupsEnabled};return e.user.isAnon||(t.editCountBucket=a.getEditCountBucket(e.user.editCount)),t}function r(e){var t={linkInteractionToken:e.token,totalInteractionTime:Math.round(e.finished-e.started)};if(!e.finalized)return void 0!==e.timeToPreviewShow?(t.action="dismissed",t.previewType=e.previewType,t.perceivedWait=e.timeToPreviewShow):t.action="dwelledButAbandoned",t}var o=n("./src/actionTypes.js"),s=n("./src/reducers/nextState.js"),a=n("./src/counts.js");e.exports=function(e,t){var n,u=[o.FETCH_COMPLETE,o.ABANDON_END,o.PREVIEW_SHOW];if(void 0===e&&(e={previewCount:void 0,baseData:{},interaction:void 0,event:void 0}),-1!==u.indexOf(t.type)&&(!e.interaction||t.token!==e.interaction.token))return e;switch(t.type){case o.BOOT:return s(e,{previewCount:t.user.previewCount,baseData:i(t),event:{action:"pageLoaded"}});case o.EVENT_LOGGED:return s(e,{event:void 0});case o.FETCH_COMPLETE:return s(e,{interaction:s(e.interaction,{previewType:t.result.type})});case o.PREVIEW_SHOW:return n=e.previewCount+1,s(e,{previewCount:n,baseData:s(e.baseData,{previewCountBucket:a.getPreviewCountBucket(n)}),interaction:s(e.interaction,{timeToPreviewShow:Math.round(t.timestamp-e.interaction.started)})});case o.LINK_DWELL:return e.interaction&&t.el===e.interaction.link?s(e,{interaction:s(e.interaction,{isUserDwelling:!0})}):s(e,{interaction:{link:t.el,token:t.token,started:t.timestamp,isUserDwelling:!0},event:e.interaction?r(e.interaction):void 0});case o.PREVIEW_DWELL:return s(e,{interaction:s(e.interaction,{isUserDwelling:!0})});case o.LINK_CLICK:return s(e,{interaction:s(e.interaction,{finalized:!0}),event:{action:"opened",linkInteractionToken:e.interaction.token,totalInteractionTime:Math.round(t.timestamp-e.interaction.started)}});case o.ABANDON_START:return s(e,{interaction:s(e.interaction,{finished:t.timestamp,isUserDwelling:!1})});case o.ABANDON_END:return e.interaction.isUserDwelling?e:s(e,{interaction:void 0,event:r(e.interaction)});case o.SETTINGS_SHOW:return s(e,{event:{action:"tapped settings cog"}});default:return e}}},"./src/reducers/index.js":function(e,t,n){e.exports={eventLogging:n("./src/reducers/eventLogging.js"),preview:n("./src/reducers/preview.js"),settings:n("./src/reducers/settings.js"),statsv:n("./src/reducers/statsv.js")}},"./src/reducers/nextState.js":function(e,t){e.exports=function(e,t){var n,i={};for(n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(i[n]=e[n]);for(n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);return i}},"./src/reducers/preview.js":function(e,t,n){var i=n("./src/actionTypes.js"),r=n("./src/reducers/nextState.js");e.exports=function(e,t){switch(void 0===e&&(e={enabled:void 0,activeLink:void 0,activeEvent:void 0,activeToken:"",shouldShow:!1,isUserDwelling:!1}),t.type){case i.BOOT:return r(e,{enabled:t.isEnabled});case i.SETTINGS_CHANGE:return r(e,{enabled:t.enabled});case i.LINK_DWELL:return t.el!==e.activeLink?r(e,{activeLink:t.el,activeEvent:t.event,activeToken:t.token,shouldShow:!1,isUserDwelling:!0}):r(e,{isUserDwelling:!0});case i.ABANDON_END:return t.token!==e.activeToken||e.isUserDwelling?e:r(e,{activeLink:void 0,activeToken:void 0,activeEvent:void 0,fetchResponse:void 0,shouldShow:!1});case i.PREVIEW_DWELL:return r(e,{isUserDwelling:!0});case i.ABANDON_START:return r(e,{isUserDwelling:!1});case i.FETCH_START:return r(e,{fetchResponse:void 0});case i.FETCH_COMPLETE:if(t.token===e.activeToken)return r(e,{fetchResponse:t.result,shouldShow:e.isUserDwelling});default:return e}}},"./src/reducers/settings.js":function(e,t,n){var i=n("./src/actionTypes.js"),r=n("./src/reducers/nextState.js");e.exports=function(e,t){switch(void 0===e&&(e={shouldShow:!1,showHelp:!1,shouldShowFooterLink:!1}),t.type){case i.SETTINGS_SHOW:return r(e,{shouldShow:!0,showHelp:!1});case i.SETTINGS_HIDE:return r(e,{shouldShow:!1,showHelp:!1});case i.SETTINGS_CHANGE:return t.wasEnabled===t.enabled?r(e,{shouldShow:!1}):r(e,{shouldShow:!t.enabled,showHelp:!t.enabled,shouldShowFooterLink:!t.enabled});case i.BOOT:return r(e,{shouldShowFooterLink:t.user.isAnon&&!t.isEnabled});default:return e}}},"./src/reducers/statsv.js":function(e,t,n){var i=n("./src/actionTypes.js"),r=n("./src/reducers/nextState.js");e.exports=function(e,t){switch(e=e||{},t.type){case i.FETCH_START:return r(e,{fetchStartedAt:t.timestamp});case i.FETCH_END:return r(e,{action:"timing.PagePreviewsApiResponse",data:t.timestamp-e.fetchStartedAt});case i.FETCH_FAILED:return r(e,{action:"counter.PagePreviewsApiFailure",data:1});case i.LINK_DWELL:return r(e,{linkDwellStartedAt:t.timestamp});case i.PREVIEW_SHOW:return r(e,{action:"timing.PagePreviewsPreviewShow",data:t.timestamp-e.linkDwellStartedAt});case i.STATSV_LOGGED:return r(e,{action:null,data:null});default:return e}}},"./src/renderer.js":function(e,t,n){function i(e){E("<div>").attr("id","mwe-popups-svg").html('<svg width="0" height="0"><defs><clippath id="mwe-popups-mask"><polygon points="0 8, 10 8, 18 0, 26 8, 1000 8, 1000 1000, 0 1000"/></clippath><clippath id="mwe-popups-mask-flip"><polygon points="0 8, 274 8, 282 0, 290 8, 1000 8, 1000 1000, 0 1000"/></clippath><clippath id="mwe-popups-landscape-mask"><polygon points="0 8, 174 8, 182 0, 190 8, 1000 8, 1000 1000, 0 1000"/></clippath><clippath id="mwe-popups-landscape-mask-flip"><polygon points="0 0, 1000 0, 1000 242, 190 242, 182 250, 174 242, 0 242"/></clippath></defs></svg>').appendTo(e)}function r(){i(document.body)}function o(e){var t=void 0===e.extract?a(e):s(e);return{show:function(e,n,i){return c(t,e,E(e.target),n,i,document.body)},hide:function(){return l(t)}}}function s(e){var t,n,i=d(e.thumbnail),r=null!==i,o=u(e.extract,e.title);return t=E.extend({},e,{hasThumbnail:r}),n=m.template.get("ext.popups","preview.mustache").render(t),r&&n.find(".mwe-popups-discreet").append(i.el),o.length&&n.find(".mwe-popups-extract").append(o),{el:n,hasThumbnail:r,thumbnail:i,isTall:r&&i.isTall}}function a(e){var t,n;return t=E.extend({},e,{extractMsg:m.msg("popups-preview-no-preview"),readMsg:m.msg("popups-preview-footer-read")}),n=m.template.get("ext.popups","preview-empty.mustache").render(t),{el:n,hasThumbnail:!1,isTall:!1}}function u(e,t){var n,i,r=[],o="<bi-"+Math.random()+">",s="<snip-"+Math.random()+">";return t=t.replace(/\s+/g," ").trim(),i=m.RegExp.escape(t),n=new RegExp("(^|\\s)("+i+")(|$)","i"),e=e.replace(/\s+/," "),e=e.replace(n,"$1"+s+o+"$2"+s+"$3"),e=e.split(s),E.each(e,function(e,t){0===t.indexOf(o)?r.push(E("<b>").text(t.substring(o.length))):r.push(document.createTextNode(t))}),r}function c(e,t,n,i,r,o){var s=g(e.isTall,{pageX:t.pageX,pageY:t.pageY,clientY:t.clientY},{clientRects:n.get(0).getClientRects(),offset:n.offset(),width:n.width(),height:n.height()},{scrollTop:b.scrollTop(),width:b.width(),height:b.height()},y.pokeySize);return e.el.appendTo(o),v(e,s,h(e,s),y.landscapeImage.h,y.pokeySize),e.el.show(),T(200).then(function(){p(e,i)}).then(function(){i.previewShow(r)})}function p(e,t){e.el.hover(t.previewDwell,t.previewAbandon),e.el.click(t.click),e.el.find(".mwe-popups-settings-icon").attr("href",t.settingsUrl).click(function(e){e.stopPropagation(),t.showSettings(e)})}function l(e){var t,n;return t=e.el.hasClass("mwe-popups-fade-in-up")?"mwe-popups-fade-in-up":"mwe-popups-fade-in-down",n="mwe-popups-fade-in-up"===t?"mwe-popups-fade-out-down":"mwe-popups-fade-out-up",e.el.removeClass(t).addClass(n),T(150).then(function(){e.el.remove()})}function d(e){var t,n,i,r,o,s,a,u,c=E.bracketedDevicePixelRatio();return e?(t=e.width<e.height,n=e.width/c,i=e.height/c,!t&&n<y.landscapeImage.w||t&&i<y.portraitImage.h||e.source.indexOf("\\")>-1||e.source.indexOf("'")>-1||e.source.indexOf('"')>-1?null:(t?(r=n>y.portraitImage.w?(n-y.portraitImage.w)/-2:y.portraitImage.w-n,o=i>y.portraitImage.h?(i-y.portraitImage.h)/-2:0,s=y.portraitImage.w,a=y.portraitImage.h):(r=0,o=i>y.landscapeImage.h?(i-y.landscapeImage.h)/-2:0,s=y.landscapeImage.w+3,a=i>y.landscapeImage.h?y.landscapeImage.h:i,u="mwe-popups-mask"),{el:f(t?"mwe-popups-is-tall":"mwe-popups-is-not-tall",e.source,r,o,n,i,s,a,u),isTall:t,width:n,height:i})):null}function f(e,t,n,i,r,o,s,a,u){var c,p="http://www.w3.org/2000/svg";return c=E(document.createElementNS(p,"image")),c[0].setAttributeNS("http://www.w3.org/1999/xlink","href",t),c.addClass(e).attr({x:n,y:i,width:r,height:o,"clip-path":"url(#"+u+")"}),E(document.createElementNS(p,"svg")).attr({xmlns:p,width:s,height:a}).append(c)}function g(e,t,n,i,r){var o=!1,s=!1,a=t.pageY?w(t.pageY-i.scrollTop,n.clientRects,!1)+i.scrollTop+r:n.offset.top+n.height+r,u=t.clientY?t.clientY:a,c=t.pageX?t.pageX:n.offset.left;return c>i.width/2&&(c+=t.pageX?0:n.width,c-=e?y.landscapePopupWidth:y.portraitPopupWidth,o=!0),t.pageX&&(c+=o?20:-20),u>i.height/2&&(s=!0,a=n.offset.top,t.pageY&&(a=w(t.pageY-i.scrollTop,n.clientRects,!0)+i.scrollTop),a-=r),{offset:{top:a,left:c},flippedX:o,flippedY:s}}function h(e,t){var n=[];return t.flippedY?n.push("mwe-popups-fade-in-down"):n.push("mwe-popups-fade-in-up"),t.flippedY&&t.flippedX&&n.push("flipped_x_y"),t.flippedY&&!t.flippedX&&n.push("flipped_y"),t.flippedX&&!t.flippedY&&n.push("flipped_x"),e.hasThumbnail&&!e.isTall||t.flippedY||n.push("mwe-popups-no-image-tri"),!e.hasThumbnail||e.isTall||t.flippedY||n.push("mwe-popups-image-tri"),e.isTall?n.push("mwe-popups-is-tall"):n.push("mwe-popups-is-not-tall"),n}function v(e,t,n,i,r){var o=e.el,s=e.isTall,a=e.hasThumbnail,u=e.thumbnail,c=t.flippedY,p=t.flippedX,l=t.offset.top;!c&&!s&&a&&u.height<i&&o.find(".mwe-popups-extract").css("margin-top",u.height-r),o.addClass(n.join(" ")),c&&(l-=o.outerHeight()),o.css({top:l,left:t.offset.left+"px"}),c&&a&&o.find("image")[0].removeAttribute("clip-path"),c&&p&&a&&s&&o.find("image")[0].setAttribute("clip-path","url(#mwe-popups-landscape-mask-flip)"),p&&!c&&a&&!s&&o.find("image")[0].setAttribute("clip-path","url(#mwe-popups-mask-flip)"),p&&!c&&a&&s&&o.removeClass("mwe-popups-no-image-tri").find("image")[0].setAttribute("clip-path","url(#mwe-popups-landscape-mask)")}function w(e,t,n){var i,r,o=null;return E.each(t,function(t,s){r=Math.abs(e-s.top+e-s.bottom),(null===o||o>r)&&(o=r,i=n?Math.floor(s.top):Math.ceil(s.bottom))}),i}var m=window.mediaWiki,E=jQuery,T=n("./src/wait.js"),y={portraitImage:{h:250,w:203},landscapeImage:{h:200,w:300},landscapePopupWidth:450,portraitPopupWidth:300,pokeySize:8},b=E(window);e.exports={render:o,init:r,createPokeyMasks:i,createPreview:s,createEmptyPreview:a,bindBehavior:p,show:c,hide:l,createThumbnail:d,createThumbnailElement:f,renderExtract:u,createLayout:g,getClasses:h,layoutPreview:v,getClosestYPosition:w}},"./src/schema.js":function(e,t){var n=window.mediaWiki,i=jQuery;e.exports=function(e,t){var r=e.get("wgPopupsSchemaSamplingRate",0);return t.navigator&&i.isFunction(t.navigator.sendBeacon)||(r=0),new n.eventLog.Schema("Popups",r)}},"./src/settingsDialog.js":function(e,t){function n(){var e=s.config.get("wgExtensionAssetsPath")+"/Popups/resources/ext.popups/images/",t=[{id:"simple",name:s.msg("popups-settings-option-simple"),description:s.msg("popups-settings-option-simple-description"),image:e+"hovercard.svg",isChecked:!0},{id:"advanced",name:s.msg("popups-settings-option-advanced"),description:s.msg("popups-settings-option-advanced-description"),image:e+"navpop.svg"},{id:"off",name:s.msg("popups-settings-option-off")}];return o()||t.splice(1,1),s.template.get("ext.popups","settings.mustache").render({heading:s.msg("popups-settings-title"),closeLabel:s.msg("popups-settings-cancel"),saveLabel:s.msg("popups-settings-save"),helpText:s.msg("popups-settings-help"),okLabel:s.msg("popups-settings-help-ok"),descriptionText:s.msg("popups-settings-description"),choices:t})}function i(e){return e.find("input[name=mwe-popups-setting]:checked, #mwe-popups-settings").val()}function r(e,t){var n=a("#mwe-popups-settings");t?(n.find("main, .save, .close").hide(),n.find(".mwe-popups-settings-help, .okay").show()):(n.find("main, .save, .close").show(),n.find(".mwe-popups-settings-help, .okay").hide())}function o(){return"undefined"!=typeof pg&&void 0!==pg.fn.disablePopups}var s=window.mediaWiki,a=jQuery;e.exports=function(){var e,t;return function(s){return e||(e=n(),t=a("<div>").addClass("mwe-popups-overlay"),e.find(".save").click(function(){var t=i(e),n="simple"===t;s.saveSettings(n)}),e.find(".close, .okay").click(s.hideSettings)),{appendTo:function(n){t.appendTo(n),e.appendTo(n)},show:function(){var n=a(window).height(),i=a(window).width();t.show(),e.show().css("left",(i-e.outerWidth(!0))/2).css("top",(n-e.outerHeight(!0))/2)},hide:function(){t.hide(),e.hide()},toggleHelp:function(t){r(e,t)},setEnabled:function(t){var n="off";t?n="simple":o()&&(n="advanced"),e.find("#mwe-popups-settings-"+n).prop("checked",!0)}}}}},"./src/statsvInstrumentation.js":function(e,t){function n(e,t,n){var i=t.get("wgPopupsStatsvSamplingRate",0);return"A"===n.getBucket({name:"ext.Popups.statsv",enabled:!0,buckets:{control:1-i,A:i}},e.sessionId())}e.exports={isEnabled:n}},"./src/userSettings.js":function(e,t){e.exports=function(e){return{getIsEnabled:function(){return"0"!==e.get("mwe-popups-enabled")},setIsEnabled:function(t){e.set("mwe-popups-enabled",t?"1":"0")},hasIsEnabled:function(){var t=e.get("mwe-popups-enabled");return!1!==Boolean(t)},getPreviewCount:function(){var t=e.get("ext.popups.core.previewCount");return!1===t?-1:null===t?0:parseInt(t,10)},setPreviewCount:function(t){e.set("ext.popups.core.previewCount",t.toString())}}}},"./src/wait.js":function(e,t){var n=jQuery;e.exports=function(e){var t=n.Deferred();return setTimeout(function(){t.resolve()},e),t.promise()}}});
//# sourceMappingURL=index.js.map
;
mw.loader.state({"ext.popups":"ready"});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment