Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 1x 388x 1x 1x 7x 1x 1x 1x 1x 144x 144x 144x 1x 42x 42x 1x 2x 2x 1x | /*! * VisualEditor DataModel HeadingNode class. * * @copyright See AUTHORS.txt */ /** * DataModel heading node. * * @class * @extends ve.dm.ContentBranchNode * * @constructor * @param {Object} [element] Reference to element in linear model * @param {ve.dm.Node[]} [children] */ ve.dm.HeadingNode = function VeDmHeadingNode() { // Parent constructor ve.dm.HeadingNode.super.apply( this, arguments ); }; /* Inheritance */ OO.inheritClass( ve.dm.HeadingNode, ve.dm.ContentBranchNode ); /* Methods */ ve.dm.HeadingNode.prototype.compareForMerging = function ( otherNode ) { return ve.dm.HeadingNode.super.prototype.compareForMerging.apply( this, arguments ) && this.getAttribute( 'level' ) === otherNode.getAttribute( 'level' ); }; /* Static Properties */ ve.dm.HeadingNode.static.name = 'heading'; ve.dm.HeadingNode.static.defaultAttributes = { level: 1 }; ve.dm.HeadingNode.static.matchTagNames = [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ]; ve.dm.HeadingNode.static.toDataElement = function ( domElements ) { const levels = { h1: 1, h2: 2, h3: 3, h4: 4, h5: 5, h6: 6 }, level = levels[ domElements[ 0 ].nodeName.toLowerCase() ]; return { type: this.name, attributes: { level: level } }; }; ve.dm.HeadingNode.static.toDomElements = function ( dataElement, doc ) { const level = dataElement.attributes && dataElement.attributes.level || 1; return [ doc.createElement( 'h' + level ) ]; }; ve.dm.HeadingNode.static.describeChange = function ( key, change ) { Eif ( key === 'level' ) { return ve.htmlMsg( 'visualeditor-changedesc-no-key', // The following messages are used here: // * visualeditor-formatdropdown-format-heading1 // * visualeditor-formatdropdown-format-heading2 // * visualeditor-formatdropdown-format-heading3 // * visualeditor-formatdropdown-format-heading4 // * visualeditor-formatdropdown-format-heading5 // * visualeditor-formatdropdown-format-heading6 this.wrapText( 'del', ve.msg( 'visualeditor-formatdropdown-format-heading' + change.from ) ), this.wrapText( 'ins', ve.msg( 'visualeditor-formatdropdown-format-heading' + change.to ) ) ); } // Parent method return ve.dm.HeadingNode.super.static.describeChange.apply( this, arguments ); }; /* Registration */ ve.dm.modelRegistry.register( ve.dm.HeadingNode ); |