/** * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md. */ 'use strict'; import Element from './element.js'; /** * Containers are elements which define document structure. They define boundaries for * {@link engine.treeView.AttributeElement attributes}. They are mostly use for block elements like `
` or `
` is an container and `` is attribute: * *
fo^o
* * {@link engine.treeView.Writer#breakAttributes breakAttributes} will create: * *foo
* * There might be a need to mark `` element as a container node, for example in situation when it will be a * container of an inline widget: * * foobar // attribute * foobar // container * * @memberOf engine.treeView * @extends engine.treeView.Element */ export default class ContainerElement extends Element { /** * Creates a container element. * * @see engine.treeView.Element */ constructor( name, attrs, children ) { super( name, attrs, children ); } /** * Returns block {@link engine.treeView.filler filler} offset or null if block filler is not needed. * * @returns {Number|false} Block filler offset or null if block filler is not needed. */ getFillerOffset() { return this.getChildCount() === 0 ? 0 : null; } }