text: /**
   * @private
   */
  Ext.define('Ext.layout.component.field.FieldContainer', {
  
      /* Begin Definitions */
  
      extend: 'Ext.layout.component.Auto',
  
      alias: 'layout.fieldcontainer',
  
      /* End Definitions */
  
      type: 'fieldcontainer',
  
      waitForOuterHeightInDom: true,
      waitForOuterWidthInDom: true,
  
      beginLayout: function(ownerContext) {
          var containerEl = this.owner.containerEl;
  
          this.callParent([ownerContext]);
  
          // Tell Component.measureAutoDimensions to measure the DOM when containerChildrenSizeDone is true
          ownerContext.hasRawContent = true;
          containerEl.setStyle('width', '');
          containerEl.setStyle('height', '');
          ownerContext.containerElContext = ownerContext.getEl('containerEl');
      },
  
      calculateOwnerHeightFromContentHeight: function(ownerContext, contentHeight) {
          var h = this.callParent([ownerContext, contentHeight]);
          return h + this.getHeightAdjustment();
      },
  
      calculateOwnerWidthFromContentWidth: function(ownerContext, contentWidth) {
          var w = this.callParent([ownerContext, contentWidth]);
          return w + this.getWidthAdjustment();
      },
  
      measureContentHeight: function (ownerContext) {
          // since we are measuring the outer el, we have to wait for whatever is in our
          // container to be flushed to the DOM... especially for things like box layouts
          // that size the innerCt since that is all that will contribute to our size!
          return ownerContext.hasDomProp('containerLayoutDone') ? this.callParent([ownerContext]) : NaN;
      },
  
      measureContentWidth: function (ownerContext) {
          // see measureContentHeight
          return ownerContext.hasDomProp('containerLayoutDone') ? this.callParent([ownerContext]) : NaN;
      },
  
      publishInnerHeight: function (ownerContext, height) {
          height -= this.getHeightAdjustment();
          ownerContext.containerElContext.setHeight(height);
      },
  
      publishInnerWidth: function (ownerContext, width) {
          width -= this.getWidthAdjustment();
          ownerContext.containerElContext.setWidth(width);
      },
  
      privates: {
          getHeightAdjustment: function() {
              var owner = this.owner,
                  h = 0;
  
              if (owner.labelAlign === 'top' && owner.hasVisibleLabel()) {
                  h += owner.labelEl.getHeight();
              }
  
              if (owner.msgTarget === 'under' && owner.hasActiveError()) {
                  h += owner.errorWrapEl.getHeight();
              }
  
              return h + owner.bodyEl.getPadding('tb');
          },
  
          getWidthAdjustment: function() {
              var owner = this.owner,
                  w = 0;
  
              if (owner.labelAlign !== 'top' && owner.hasVisibleLabel()) {
                  w += (owner.labelWidth + (owner.labelPad || 0));
              }
  
              if (owner.msgTarget === 'side' && owner.hasActiveError()) {
                  w += owner.errorWrapEl.getWidth();
              }
  
              return w + owner.bodyEl.getPadding('lr');
          }
      }
  
  });
  