content: import React from 'react';
  import {BaseMixin, ElementaryMixin, SectionMixin, CcrWriterMixin, ColorSchemaMixin} from '../common/common.js';
  import RootMixin from './root-mixin.js';
  import Container from './container.js';
  
  import './root.less';
  
  export const Root = React.createClass({
  
    //@@viewOn:mixins
    mixins: [
      BaseMixin,
      ElementaryMixin,
      SectionMixin,
      CcrWriterMixin,
      ColorSchemaMixin,
      RootMixin
    ],
    //@@viewOff:mixins
  
    //@@viewOn:statics
    statics: {
      tagName: 'UU5.Layout.Root',
      classNames: {
        main: 'uu5-layout-root'
      },
      defaults: {
        childrenLayoutType: ['container', 'containerCollection', 'float'],
        childParentsLayoutType: ['root'],
        parentsLayoutType: []
      }
    },
    //@@viewOff:statics
  
    //@@viewOn:propTypes
    //@@viewOff:propTypes
  
    //@@viewOn:getDefaultProps
    //@@viewOff:getDefaultProps
  
    //@@viewOn:standardComponentLifeCycle
    //@@viewOff:standardComponentLifeCycle
  
    //@@viewOn:interface
    //@@viewOff:interface
  
    //@@viewOn:overridingMethods
    expandChild_: function (child, key) {
      var result = child;
  
      if (typeof child.type !== 'function' || !child.type.layoutType || this.getDefault().childrenLayoutType.indexOf(child.type.layoutType) === -1) {
        if (child.type && this.getDefault().childParentsLayoutType.indexOf(child.type.layoutType) > -1) {
          this.showError('childIsWrong', [child.type.tagName, this.getDefault().childrenLayoutType.join(', ')], {
            mixinName: 'UU5_Layout_LayoutMixin',
            context: {
              child: {
                tagName: child.type.tagName,
                component: child
              }
            }
          });
        } else {
          result = (
            <Container
              parent={this}
              id={this.getId() + '-container'}
              key={key}
              containerStyle={child.props.containerStyle}
            >
              {child}
            </Container>
          );
        }
      }
  
      return result;
    },
    //@@viewOff:overridingMethods
  
    //@@viewOn:componentSpecificHelpers
    //@@viewOff:componentSpecificHelpers
  
    //@@viewOn:render
    render: function () {
      return (
        <div {...this.buildMainAttrs()}>
          {this.getHeaderChild()}
          {this.getFilteredSorterChildren()}
          {this.getFooterChild()}
          {this.getDisabledCover()}
        </div>
      );
    }
    //@@viewOff:render
  });
  
  export default Root;