/*! * VisualEditor UserInterface MediaWiki EducationPopup class. * * @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ /** * UserInterface education popup. * * Shows a pulsating blue dot which, when you click, * reveals a popup with useful information. * * @class * * @constructor * @extends OO.ui.Widget * @param {jQuery} $target Element to attach to * @param {Object} config Configuration options * @param {string} popupTitle Popup title * @param {string} popupText Popup text * @param {string} [popupImage] Popup image class * @param {string} [trackingName] Tracking name */ ve.ui.MWEducationPopupWidget = function VeUiMwEducationPopup( $target, config ) { var $popupContent; config = config || {}; // HACK: Do not display on platforms other than desktop if ( !( ve.init.mw.DesktopArticleTarget && ve.init.target instanceof ve.init.mw.DesktopArticleTarget ) ) { return; } // Do not display if the user already acknowledged the popups if ( !mw.libs.ve.shouldShowEducationPopups() ) { return; } // Parent method ve.ui.MWEducationPopupWidget.super.call( this, config ); // Properties this.$target = $target; this.popupCloseButton = new OO.ui.ButtonWidget( { label: ve.msg( 'visualeditor-educationpopup-dismiss' ), flags: [ 'progressive', 'primary' ], classes: [ 've-ui-educationPopup-dismiss' ] } ); this.trackingName = config.trackingName; this.$pulsatingDot = $( '
' ).text( config.popupText ), this.popupCloseButton.$element ); if ( config.popupImage ) { $popupContent.prepend( // eslint-disable-next-line mediawiki/class-doc $( '