mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 10:35:48 +00:00
aa2836aa6e
There's no use case for keeping a deep copy of the 'internal' property in the node tree, and it was breaking some of my new tests concerning change markers. We could keep internal data in the node tree if we wanted to, but to be correct we'd have to synchronize every time we changed it, which is a pain. Change-Id: I024de1ff8b6b6154da82c103c4bb21db8ff2ec14
65 lines
1.3 KiB
JavaScript
65 lines
1.3 KiB
JavaScript
/**
|
|
* VisualEditor data model ListItemNode class.
|
|
*
|
|
* @copyright 2011-2012 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* DataModel node for a list item.
|
|
*
|
|
* @class
|
|
* @constructor
|
|
* @extends {ve.dm.BranchNode}
|
|
* @param {ve.dm.BranchNode[]} [children] Child nodes to attach
|
|
* @param {Object} [attributes] Reference to map of attribute key/value pairs
|
|
*/
|
|
ve.dm.ListItemNode = function VeDmListItemNode( children, attributes ) {
|
|
// Parent constructor
|
|
ve.dm.BranchNode.call( this, 'listItem', children, attributes );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
ve.inheritClass( ve.dm.ListItemNode, ve.dm.BranchNode );
|
|
|
|
/* Static Members */
|
|
|
|
/**
|
|
* Node rules.
|
|
*
|
|
* @see ve.dm.NodeFactory
|
|
* @static
|
|
* @member
|
|
*/
|
|
ve.dm.ListItemNode.rules = {
|
|
'isWrapped': true,
|
|
'isContent': false,
|
|
'canContainContent': false,
|
|
'childNodeTypes': null,
|
|
'parentNodeTypes': ['list']
|
|
};
|
|
|
|
/**
|
|
* Node converters.
|
|
*
|
|
* @see {ve.dm.Converter}
|
|
* @static
|
|
* @member
|
|
*/
|
|
ve.dm.ListItemNode.converters = {
|
|
'domElementTypes': ['li'],
|
|
'toDomElement': function () {
|
|
return document.createElement( 'li' );
|
|
},
|
|
'toDataElement': function () {
|
|
return {
|
|
'type': 'listItem'
|
|
};
|
|
}
|
|
};
|
|
|
|
/* Registration */
|
|
|
|
ve.dm.nodeFactory.register( 'listItem', ve.dm.ListItemNode );
|