wikimedia/mediawiki-extensions-VisualEditor

View on GitHub
modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js

Summary

Maintainability
A
0 mins
Test Coverage
/*!
 * VisualEditor DataModel MWAlienExtensionNode class.
 *
 * @copyright See AUTHORS.txt
 * @license The MIT License (MIT); see LICENSE.txt
 */

/**
 * DataModel MediaWiki alien extension node.
 *
 * @class
 * @abstract
 *
 * @constructor
 */
ve.dm.MWAlienExtensionNode = function VeDmMWAlienExtensionNode() {};

/* Inheritance */

OO.initClass( ve.dm.MWAlienExtensionNode );

/* Static members */

ve.dm.MWAlienExtensionNode.static.getMatchRdfaTypes = function () {
    return [
        /^mw:Extension/
    ];
};

// Similar to transclusions, extension encapsulation nodes can be of various types
ve.dm.MWAlienExtensionNode.static.allowedRdfaTypes = null;

ve.dm.MWAlienExtensionNode.static.toDataElement = function ( domElements, converter ) {
    // 'Parent' method
    const element = ve.dm.MWExtensionNode.static.toDataElement.call( this, domElements, converter ),
        isInline = this.isHybridInline( domElements, converter );

    element.type = isInline ? 'mwAlienInlineExtension' : 'mwAlienBlockExtension';
    return element;
};

/**
 * @inheritdoc ve.dm.MWExtensionNode
 */
ve.dm.MWAlienExtensionNode.static.getExtensionName = function ( dataElement ) {
    return dataElement.attributes.mw.name;
};