/*! * VisualEditor ContentEditable ListItemNode class. * * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ /*global mw */ /** * ContentEditable image caption item node. * * @class * @extends ve.ce.BranchNode * @constructor * @param {ve.dm.MWImageCaptionNode} model Model to observe * @param {Object} [config] Config options */ ve.ce.MWImageCaptionNode = function VeCeMWImageCaptionNode( model, config ) { // Parent constructor ve.ce.BranchNode.call( this, model, config ); // DOM changes this.$.addClass( 'thumbcaption' ); }; /* Inheritance */ ve.inheritClass( ve.ce.MWImageCaptionNode, ve.ce.BranchNode ); /* Static Properties */ ve.ce.MWImageCaptionNode.static.name = 'mwImageCaption'; ve.ce.MWImageCaptionNode.static.tagName = 'div'; /* Methods */ /** * TODO: Magnify should not be built nor appended if this is a caption of frame (vs. thumb) image. */ ve.ce.MWImageCaptionNode.prototype.onSplice = function () { if ( this.$magnify ) { this.$magnify.detach(); } else { this.buildMagnify(); } // Call parent implementation ve.ce.BranchNode.prototype.onSplice.apply( this, arguments ); this.$magnify.prependTo( this.$ ); }; ve.ce.MWImageCaptionNode.prototype.buildMagnify = function() { this.$magnify = $( '