mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-30 06:53:20 +00:00
cb657e0bdf
Change-Id: I9dbc12335016a326f00bf5b9a960551f828c685d
63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
/*!
|
|
* VisualEditor DataModel MWAnnotationNode class.
|
|
*
|
|
* @copyright See AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* DataModel MW node for mw:Annotation tags.
|
|
*
|
|
* @class
|
|
* @extends ve.dm.AlienInlineNode
|
|
* @constructor
|
|
* @param {Object} element Reference to element in linear model
|
|
*/
|
|
ve.dm.MWAnnotationNode = function VeDmMWAnnotationNode() {
|
|
// Parent constructor
|
|
ve.dm.MWAnnotationNode.super.apply( this, arguments );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.dm.MWAnnotationNode, ve.dm.AlienInlineNode );
|
|
|
|
/* Static Properties */
|
|
|
|
ve.dm.MWAnnotationNode.static.name = 'mwAnnotation';
|
|
|
|
ve.dm.MWAnnotationNode.static.preserveHtmlAttributes = true;
|
|
|
|
/* Static Methods */
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
ve.dm.MWAnnotationNode.static.toDataElement = function ( domElements ) {
|
|
const mwDataJSON = domElements[ 0 ].getAttribute( 'data-mw' ),
|
|
type = domElements[ 0 ].getAttribute( 'typeof' );
|
|
|
|
const dataElement = {
|
|
type: 'mwAnnotation',
|
|
attributes: {
|
|
type: type
|
|
}
|
|
};
|
|
|
|
if ( mwDataJSON !== null ) {
|
|
dataElement.attributes.mw = JSON.parse( mwDataJSON );
|
|
}
|
|
|
|
return dataElement;
|
|
};
|
|
|
|
ve.dm.MWAnnotationNode.static.toDomElements = function ( dataElement, doc ) {
|
|
const el = doc.createElement( 'meta' );
|
|
el.setAttribute( 'typeof', dataElement.attributes.type );
|
|
if ( dataElement.attributes.mw ) {
|
|
el.setAttribute( 'data-mw', JSON.stringify( dataElement.attributes.mw ) );
|
|
}
|
|
|
|
return [ el ];
|
|
};
|