mediawiki-extensions-Visual.../modules/ve-mw/dm/models/ve.dm.MWTransclusionContentModel.js
Thiemo Kreuz e13b0dae48 Much longer descriptions of template dialog related classes
The idea is to possibly rename some of these classes, based on
these descriptions. But this should be done in later, separate
patches.

Change-Id: I7f9e5b2382711b434d6dd618489fa3ed8b7a46b4
2021-06-04 13:17:59 +02:00

78 lines
1.6 KiB
JavaScript

/*!
* VisualEditor DataModel MWTransclusionContentModel class.
*
* @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* Represents a raw wikitext snippet that is part of an unbalanced sequence of template invocations.
* Meant to be an item in a {@see ve.dm.MWTransclusionModel}. Holds a back-reference to it's parent.
*
* @class
* @extends ve.dm.MWTransclusionPartModel
*
* @constructor
* @param {ve.dm.MWTransclusionModel} transclusion Transclusion
* @param {string} [value] Content value
*/
ve.dm.MWTransclusionContentModel = function VeDmMWTransclusionContentModel( transclusion, value ) {
// Parent constructor
ve.dm.MWTransclusionContentModel.super.call( this, transclusion );
// Properties
this.value = value || '';
};
/* Inheritance */
OO.inheritClass( ve.dm.MWTransclusionContentModel, ve.dm.MWTransclusionPartModel );
/* Events */
/**
* @event change
*/
/* Methods */
/**
* Get content value.
*
* @return {string} Content value
*/
ve.dm.MWTransclusionContentModel.prototype.getValue = function () {
return this.value;
};
/**
* Set content value.
*
* @param {string} value Content value
*/
ve.dm.MWTransclusionContentModel.prototype.setValue = function ( value ) {
this.value = value;
this.emit( 'change' );
};
/**
* @inheritdoc
*/
ve.dm.MWTransclusionContentModel.prototype.serialize = function () {
return this.value;
};
/**
* @inheritdoc
*/
ve.dm.MWTransclusionContentModel.prototype.getWikitext = function () {
return this.value;
};
/**
* @inheritDoc
*/
ve.dm.MWTransclusionContentModel.prototype.isEmpty = function () {
return this.value === '';
};