import {Component,ViewChild,ElementRef,ComponentFactoryResolver,ViewContainerRef,forwardRef,ContentChildren,QueryList} from '@angular/core';
import { base } from './base';
// Ext Class - Ext.form.field.Display
export class displayfieldMetaData {
	public static XTYPE: string = 'displayfield';
	public static INPUTNAMES: string[] = [
		'activeCounter',
		'activeError',
		'activeErrorsTpl',
		'afterBodyEl',
		'afterLabelTextTpl',
		'afterLabelTpl',
		'afterSubTpl',
		'alignOnScroll',
		'alignTarget',
		'alwaysOnTop',
		'anchor',
		'animateShadow',
		'ariaAttributes',
		'ariaDescribedBy',
		'ariaErrorText',
		'ariaHelp',
		'ariaLabel',
		'ariaLabelledBy',
		'autoEl',
		'autoFitErrors',
		'autoRender',
		'autoScroll',
		'autoShow',
		'baseBodyCls',
		'baseCls',
		'beforeBodyEl',
		'beforeLabelTextTpl',
		'beforeLabelTpl',
		'beforeSubTpl',
		'bind',
		'border',
		'checkChangeBuffer',
		'checkChangeEvents',
		'childEls',
		'cls',
		'columnWidth',
		'componentCls',
		'componentLayout',
		'constrain',
		'constraintInsets',
		'constrainTo',
		'contentEl',
		'controller',
		'data',
		'defaultAlign',
		'defaultListenerScope',
		'dirtyCls',
		'disabled',
		'disabledCls',
		'dock',
		'draggable',
		'errorMsgCls',
		'fieldBodyCls',
		'fieldCls',
		'fieldLabel',
		'fieldStyle',
		'fieldSubTpl',
		'fixed',
		'flex',
		'floating',
		'focusCls',
		'focusOnToFront',
		'formatText',
		'formBind',
		'formItemCls',
		'frame',
		'height',
		'hidden',
		'hideEmptyLabel',
		'hideLabel',
		'hideMode',
		'html',
		'htmlEncode',
		'id',
		'inputAttrTpl',
		'inputId',
		'inputType',
		'invalidCls',
		'invalidText',
		'isTextInput',
		'itemId',
		'keyMap',
		'keyMapEnabled',
		'keyMapTarget',
		'labelableRenderTpl',
		'labelAlign',
		'labelAttrTpl',
		'labelCls',
		'labelClsExtra',
		'labelPad',
		'labelSeparator',
		'labelStyle',
		'labelWidth',
		'liquidLayout',
		'listeners',
		'liveDrag',
		'loader',
		'margin',
		'maskDefaults',
		'maskElement',
		'maxHeight',
		'maxWidth',
		'minHeight',
		'minWidth',
		'modal',
		'modelValidation',
		'msgTarget',
		'name',
		'nameable',
		'overCls',
		'overflowX',
		'overflowY',
		'padding',
		'plugins',
		'preventMark',
		'publishes',
		'readOnly',
		'readOnlyCls',
		'reference',
		'region',
		'renderConfig',
		'renderData',
		'renderer',
		'renderSelectors',
		'renderTo',
		'renderTpl',
		'resizable',
		'resizeHandles',
		'saveDelay',
		'scope',
		'scrollable',
		'session',
		'shadow',
		'shadowOffset',
		'shareableName',
		'shim',
		'shrinkWrap',
		'stateEvents',
		'stateful',
		'stateId',
		'style',
		'submitValue',
		'tabIndex',
		'toFrontOnShow',
		'touchAction',
		'tpl',
		'tplWriteMode',
		'twoWayBindable',
		'ui',
		'uiCls',
		'userCls',
		'validateOnBlur',
		'validateOnChange',
		'validation',
		'validationField',
		'value',
		'valuePublishEvent',
		'viewModel',
		'weight',
		'width',
		'xtype',
		'flex',
		'platformConfig',
		'responsiveConfig',
		'fitToParent',
		'config'
];
	public static OUTPUTS: any[] = [
		{name:'activate',parameters:'displayfield'},
		{name:'added',parameters:'displayfield,container,pos'},
		{name:'afterlayoutanimation',parameters:'displayfield'},
		{name:'afterrender',parameters:'displayfield'},
		{name:'beforeactivate',parameters:'displayfield'},
		{name:'beforedeactivate',parameters:'displayfield'},
		{name:'beforedestroy',parameters:'displayfield'},
		{name:'beforehide',parameters:'displayfield'},
		{name:'beforerender',parameters:'displayfield'},
		{name:'beforeshow',parameters:'displayfield'},
		{name:'beforestaterestore',parameters:'displayfield,state'},
		{name:'beforestatesave',parameters:'displayfield,state'},
		{name:'blur',parameters:'displayfield,event'},
		{name:'boxready',parameters:'displayfield,width,height'},
		{name:'change',parameters:'displayfield,newValue,oldValue'},
		{name:'deactivate',parameters:'displayfield'},
		{name:'destroy',parameters:'displayfield'},
		{name:'dirtychange',parameters:'displayfield,isDirty'},
		{name:'disable',parameters:'displayfield'},
		{name:'enable',parameters:'displayfield'},
		{name:'errorchange',parameters:'displayfield,error'},
		{name:'focus',parameters:'displayfield,event'},
		{name:'focusenter',parameters:'displayfield,event'},
		{name:'focusleave',parameters:'displayfield,event'},
		{name:'hide',parameters:'displayfield'},
		{name:'move',parameters:'displayfield,x,y'},
		{name:'removed',parameters:'displayfield,ownerCt'},
		{name:'render',parameters:'displayfield'},
		{name:'resize',parameters:'displayfield,width,height,oldWidth,oldHeight'},
		{name:'show',parameters:'displayfield'},
		{name:'specialkey',parameters:'displayfield,e'},
		{name:'staterestore',parameters:'displayfield,state'},
		{name:'statesave',parameters:'displayfield,state'},
		{name:'validitychange',parameters:'displayfield,isValid'},
		{name:'writeablechange',parameters:'displayfield,Read'},
		{name:'ready',parameters:''}
];
	public static OUTPUTNAMES: string[] = [
		'activate',
		'added',
		'afterlayoutanimation',
		'afterrender',
		'beforeactivate',
		'beforedeactivate',
		'beforedestroy',
		'beforehide',
		'beforerender',
		'beforeshow',
		'beforestaterestore',
		'beforestatesave',
		'blur',
		'boxready',
		'change',
		'deactivate',
		'destroy',
		'dirtychange',
		'disable',
		'enable',
		'errorchange',
		'focus',
		'focusenter',
		'focusleave',
		'hide',
		'move',
		'removed',
		'render',
		'resize',
		'show',
		'specialkey',
		'staterestore',
		'statesave',
		'validitychange',
		'writeablechange',
		'ready'
];
}
@Component({
  selector: displayfieldMetaData.XTYPE,
	inputs: displayfieldMetaData.INPUTNAMES,
	outputs: displayfieldMetaData.OUTPUTNAMES,
	providers: [{provide: base, useExisting: forwardRef(() => displayfield)}],
	template: '<ng-template #dynamic></ng-template>'
})
export class 
 extends base {
	constructor(eRef:ElementRef,resolver:ComponentFactoryResolver,vcRef:ViewContainerRef) {
		super(eRef,resolver,vcRef,displayfieldMetaData);
	}
	//@ContentChildren(base,{read:ViewContainerRef}) extbaseRef:QueryList<ViewContainerRef>;
	@ContentChildren(base,{read: base}) extbaseRef: QueryList<base>;
	@ViewChild('dynamic',{read:ViewContainerRef}) dynamicRef:ViewContainerRef;
	ngAfterContentInit() {this.AfterContentInit(this.extbaseRef);}
	ngOnInit() {this.OnInit(this.dynamicRef,displayfieldMetaData);}
}

displayfield