{
	"idProperty": "uiType",
	"lastId": 82,
	"rulesPath": "wsh-base/xpdrules/rules.xpd",
	"propertiesFn": "wsh-base/xpdrules/ui/ext-4.0.7.fn",
	"properties": {
		"uiType": {
			"type": "string",
			"value": "container",
			"alias": [
				"uitype"
			]
		},
		"className": {
			"type": "string",
			"export": "$className"
		},
		"uiName": {
			"type": "string",
			"export": "xtype"
		},
		"childProperties": {
			"type": "array",
			"preBurn": "childProperties.preBurn",
			"preBurnIndex": 99999999
		},
		"title": {
			"type": "i18n"
		}
	},
	"collections": {
		"column": {
			"id": -1,
			"apply": {
				"type": "gridcolumn"
			}
		},
		"component": {
			"id": 82,
			"properties": {
				"autoEl": {
					"type": "string",
					"value": "div",
					"title": "You do not normally need to specify this. For the base classes Ext.Component and Ext.container.Container, this defaults to 'div'."
				},
				"autoRender": {
					"type": "boolean",
					"value": false,
					"title": "This config is intended mainly for non-floating Components which may or may not be shown."
				},
				"autoScroll": {
					"type": "boolean",
					"value": false,
					"title": "true to use overflow:'auto' on the components layout element and show scroll bars automatically when necessary, false to clip any overflowing content."
				},
				"autoShow": {
					"type": "boolean",
					"value": false,
					"title": "True to automatically show the component upon creation. This config option may only be used for floating components or components that use autoRender."
				},
				"border": {
					"type": "string",
					"title": "Specifies the border for this component. The border can be a single numeric value to apply to all sides or it can be a CSS style specification for each style, for example: '10 5 3 10'.",
					"preBurn": ""
				},
				"childEls": {
					"type": "array",
					"title": "An array describing the child elements of the Component. Each member of the array is an object with these properties: name - The property name on the Component for the child element. itemId - The id to combine with the Component's id that is the id of the child element. id - The id of the child element. If the array member is a string, it is equivalent to { name: m, itemId: m }."
				},
				"cls": {
					"type": "string",
					"title": "An optional extra CSS class that will be added to this component's Element. This can be useful for adding customized styles to the component or any of its children using standard CSS rules."
				},
				"componentCls": {
					"type": "string",
					"title": "CSS Class to be added to a components root level element to give distinction to it via styling."
				},
				"componentLayout": {
					"type": "object",
					"title": "The sizing and positioning of a Component's internal Elements is the responsibility of the Component's layout manager which sizes a Component's internal structure in response to the Component being sized. Generally, developers will not use this configuration as all provided Components which need their internal elements sizing (Such as input fields) come with their own componentLayout managers. The default layout manager will be used on instances of the base Ext.Component class which simply sizes the Component's encapsulating element to the height and width specified in the setSize method."
				},
				"contentEl": {
					"type": "string",
					"title": "Specify an existing HTML element, or the id of an existing HTML element to use as the content for this component. This config option is used to take an existing HTML element and place it in the layout element of a new component (it simply moves the specified DOM element after the Component is rendered to use as the content."
				},
				"data": {
					"type": "object",
					"title": "The initial set of data to apply to the tpl to update the content area of the Component."
				},
				"disabled": {
					"type": "boolean",
					"value": false,
					"title": "True to disable the component."
				},
				"disabledCls": {
					"type": "string",
					"value": "x-item-disabled",
					"title": "CSS class to add when the Component is disabled. Defaults to 'x-item-disabled'."
				},
				"draggable": {
					"type": "boolean",
					"value": false,
					"title": "Specify as true to make a floating Component draggable using the Component's encapsulating element as the drag handle."
				},
				"floating": {
					"type": "boolean",
					"value": false,
					"title": "Specify as true to float the Component outside of the document flow using CSS absolute positioning."
				},
				"focusOnToFront": {
					"type": "boolean",
					"value": true,
					"title": "Specifies whether the floated component should be automatically focused when it is brought to the front."
				},
				"frame": {
					"type": "boolean",
					"value": true,
					"title": "Specify as true to have the Component inject framing elements within the Component at render time to provide a graphical rounded frame around the Component content."
				},
				"height": {
					"type": "number",
					"title": "The height of this component in pixels."
				},
				"hidden": {
					"type": "boolean",
					"value": false,
					"title": "True to hide the component."
				},
				"hideMode": {
					"type": "string",
					"value": "display",
					"values": [
						"display",
						"visibility",
						"offsets"
					],
					"title": "A String which specifies how this Component's encapsulating DOM element will be hidden"
				},
				"html": {
					"type": "string",
					"title": "An HTML fragment to use as the layout element content. The HTML content is added after the component is rendered, so the document will not contain this HTML at the time the render event is fired. This content is inserted into the body before any configured contentEl is appended."
				},
				"id": {
					"type": "string",
					"title": "The unique id of this component instance."
				},
				"itemId": {
					"type": "string",
					"title": "An itemId can be used as an alternative way to get a reference to a component when no object reference is available. Instead of using an id with Ext.getCmp, use itemId with Ext.container.Container.getComponent which will retrieve itemId's or id's. Since itemId's are an index to the container's internal MixedCollection, the itemId is scoped locally to the container -- avoiding potential conflicts with Ext.ComponentManager which requires a unique id."
				},
				"listeners": {
					"type": "object",
					"title": "A config object containing one or more event handlers to be added to this object during initialization. This should be a valid listeners config object as specified in the addListener example for attaching multiple handlers at once."
				},
				"loader": {
					"type": "object",
					"title": "A configuration object or an instance of a Ext.ComponentLoader to load remote content for this Component."
				},
				"maintainFlex": {
					"type": "boolean",
					"value": false,
					"title": "Only valid when a sibling element of a Splitter within a VBox or HBox layout."
				},
				"margin": {
					"type": "string",
					"title": "Specifies the margin for this component. The margin can be a single numeric value to apply to all sides or it can be a CSS style specification for each style, for example: '10 5 3 10'."
				},
				"maxHeight": {
					"type": "number",
					"title": "The maximum value in pixels which this Component will set its height to."
				},
				"maxWidth": {
					"type": "number",
					"title": "The minimum value in pixels which this Component will set its height to."
				},
				"minWidth": {
					"type": "number",
					"title": "The minimum value in pixels which this Component will set its width to."
				},
				"overCls": {
					"type": "string",
					"title": "An optional extra CSS class that will be added to this component's Element when the mouse moves over the Element, and removed when the mouse moves out. This can be useful for adding customized 'active' or 'hover' styles to the component or any of its children using standard CSS rules."
				},
				"padding": {
					"type": "string",
					"title": "Specifies the padding for this component. The padding can be a single numeric value to apply to all sides or it can be a CSS style specification for each style, for example: '10 5 3 10'."
				},
				"plugins": {
					"type": "array",
					"title": "An array of objects that will provide custom functionality for this component. The only requirement for a valid plugin is that it contain an init method that accepts a reference of type Ext.Component. When a component is created, if any plugins are available, the component will call the init method on each plugin, passing a reference to itself. Each plugin can then call methods or respond to events on the component as needed to provide its functionality."
				},
				"renderData": {
					"type": "object",
					"title": "The data used by renderTpl in addition to the following property values of the component: id, ui, uiCls, baseCls, componentCls, frame."
				},
				"renderSelectors": {
					"type": "object",
					"title": "An object containing properties specifying DomQuery selectors which identify child elements created by the render process. After the Component's internal structure is rendered according to the renderTpl, this object is iterated through, and the found Elements are added as properties to the Component using the renderSelector property name."
				},
				"renderTo": {
					"type": "string",
					"title": "Specify the id of the element that this component will be rendered into."
				},
				"renderTpl": {
					"type": "array",
					"title": "An XTemplate used to create the internal structure inside this Component's encapsulating Element."
				},
				"resizable": {
					"type": "boolean",
					"value": false,
					"title": "Specify as true to apply a Resizer to this Component after rendering."
				},
				"resizeHandles": {
					"type": "string",
					"value": "all",
					"values": [
						"n",
						"s",
						"e",
						"w",
						"nw",
						"sw",
						"se",
						"ne",
						"all"
					],
					"title": "A valid handles config string. Only applies when resizable is true."
				},
				"saveDelay": {
					"type": "number",
					"value": 100,
					"title": "A buffer to be applied if many state events are fired within a short period."
				},
				"shadow": {
					"type": "string",
					"value": "sides",
					"values": [
						"sides",
						"frame",
						"drop"
					],
					"preBurn": "shadow.preBurn",
					"title": "Specifies whether the floating component should be given a shadow. Set to true to automatically create an Ext.Shadow, or a string indicating the shadow's display Ext.Shadow.mode. Set to false to disable the shadow."
				},
				"stateEvents": {
					"type": "array",
					"title": "An array of events that, when fired, should trigger this object to save its state. Defaults to none. stateEvents may be any type of event supported by this object, including browser or custom events (e.g., ['click', 'customerchange'])."
				},
				"stateId": {
					"type": "string",
					"title": "The unique id for this object to use for state management purposes."
				},
				"stateful": {
					"type": "boolean",
					"value": true,
					"title": "A flag which causes the object to attempt to restore the state of internal properties from a saved state on startup. The object must have a stateId for state to be managed. Auto-generated ids are not guaranteed to be stable across page loads and cannot be relied upon to save and restore the same state for a object."
				},
				"style": {
					"type": "object",
					"title": "A custom style specification to be applied to this component's Element."
				},
				"styleHtmlCls": {
					"type": "string",
					"value": "x-html",
					"title": "The class that is added to the content target when you set styleHtmlContent to true."
				},
				"styleHtmlContent": {
					"type": "boolean",
					"value": false,
					"title": "True to automatically style the html inside the content target of this component (body for panels)."
				},
				"toFrontOnShow": {
					"type": "boolean",
					"value": true,
					"title": "True to automatically call toFront when the show method is called on an already visible, floating component."
				},
				"tpl": {
					"type": "array",
					"title": "An array of strings to form an Ext.XTemplate. Used in conjunction with the data and tplWriteMode configurations."
				},
				"tplWriteMode": {
					"type": "string",
					"value": "overwrite",
					"values": [
						"insertAfter",
						"insertBefore",
						"insertFirst",
						"overwrite"
					],
					"title": "The Ext.(X)Template method to use when updating the content area of the Component. See Ext.XTemplate.overwrite for information on default mode."
				},
				"ui": {
					"type": "array",
					"value": ["default"],
					"title": "A set style for a component. An Array of multiple strings (UIs)"
				},
				"width": {
					"type": "number",
					"title": "The width of this component in pixels."
				}
			},
			"collections": {
				"container": {	
					"id": 1,
					"properties": {
						"activeItem": {
							"type": "string",
							"title": "A string component id or the numeric index of the component that should be initially activated within the container's layout on render."
						},
						"autoDestroy": {
							"type": "boolean",
							"value": true,
							"title": "If true the container will automatically destroy any contained component that is removed from it, else destruction must be handled manually."
						},
						"baseCls": {
							"type": "string",
							"value": "x-component",
							"title": "The base CSS class to apply to this components's element. This will also be prepended to elements within this component like Panel's body will get a class x-panel-body. This means that if you create a subclass of Panel, and you want it to get all the Panels styling for the element and the body, you leave the baseCls x-panel and use componentCls to add specific styling for this component."
						},
						"bubbleEvents": {
							"type": "array",
							"value": ["add", "remove"],
							"title": "An array of events that, when fired, should be bubbled to any parent container."
						},
						"defaultType": {
							"type": "string",
							"value": "panel",
							"title": "The default xtype of child Components to create in this Container when a child item is specified as a raw configuration object, rather than as an instantiated Component."
						},
						"defaults": {
							"type": "object",
							"title": "This option is a means of applying default settings to all added items whether added through the items config or via the add or insert methods."
						},
						"items": {
							"type": "array",
							"allowedTypes": [
								"container",
								"panel"
							],
							"title": "An array of child Components to be added to this container."
						},
						"childProperties": {
							"value": ["items"],
							"protected": true
						},
						"layout": {
							"type": "string",
							"value": "Auto",
							"values": [
								"Auto",
								"card",
								"fit",
								"hbox",
								"vbox",
								"anchor",
								"table"
							],
							"title": ""
						},
						"suspendLayout": {
							"type": "boolean",
							"value": false,
							"title": "If true, suspend calls to doLayout. Useful when batching multiple adds to a container and not passing them as multiple arguments or an array."
						}
					},
					"collections": {
						"viewport": {
							"id": 2,
							"properties": {
								"allowDomMove": {
									"type": "boolean",
									"value": false,
									"title": "Not applicable."
								},
								"applyTo": {
									"type": "string",
									"title": "Not applicable."
								},
								"autoHeight": {
									"type": "boolean",
									"value": true,
									"title": "Not applicable."
								},
								"autoWidth": {
									"type": "boolean",
									"value": true,
									"title": "Not applicable."
								},
								"deferHeight ": {
									"type": "boolean",
									"value": false,
									"title": "Not applicable."
								},
								"height": {
									"type": "number",
									"title": "Not applicable. Sets itself to viewport width."
								},
								"hideParent": {
									"type": "boolean",
									"value": false,
									"title": "Not applicable."
								},
								"monitorResize": {
									"type": "boolean",
									"value": false,
									"title": "Not applicable."
								},
								"renderTo": {
									"type": "string",
									"value": "body",
									"title": "Not applicable. Always renders to document body."
								},
								"width": {
									"type": "number",
									"title": "Not applicable. Sets itself to viewport height."
								}
							}
						},
						"fieldcontainer": {
							"id": 3,
							"properties": {
								"activeError": {
									"type": "string",
									"title": "If specified, then the component will be displayed with this value as its active error when first rendered. Use setActiveError or unsetActiveError to change it after component creation."
								},
								"activeErrorsTpl": {
									"type": "array",
									"value": [
										"<tpl if=\"errors && errors.length\">",
										"<ul><tpl for=\"errors\"><li<tpl if=\"xindex == xcount\"> class=\"last\"</tpl>>{.}</li></tpl></ul>",
										"</tpl>"
									],
									"title": "The template used to format the Array of error messages passed to setActiveErrors into a single HTML string. By default this renders each message as an item in an unordered list."
								},
								"autoFitErrors": {
									"type": "boolean",
									"value": true,
									"title": "Whether to adjust the component's body area to make room for 'side' or 'under' error messages."
								},
								"baseBodyCls": {
									"type": "string",
									"value": "x-form-item-body",
									"title": "The CSS class to be applied to the body content element."
								},
								"clearCls": {
									"type": "string",
									"value": "x-clear",
									"title": "The CSS class to be applied to the special clearing div rendered directly after the field contents wrapper to provide field clearing."
								},
								"combineLabels": {
									"type": "boolean",
									"value": false,
									"title": "If set to true, and there is no defined fieldLabel, the field container will automatically generate its label by combining the labels of all the fields it contains. "
								},
								"componentLayout": {
									"type": "string",
									"value": "field",
									"title": "The sizing and positioning of a Component's internal Elements is the responsibility of the Component's layout manager which sizes a Component's internal structure in response to the Component being sized. Generally, developers will not use this configuration as all provided Components which need their internal elements sizing (Such as input fields) come with their own componentLayout managers."
								},
								"errorMsgCls": {
									"type": "string",
									"value": "x-form-error-msg",
									"title": "The CSS class to be applied to the error message element."
								},
								"fieldBodyCls": {
									"type": "string",
									"title": "An extra CSS class to be applied to the body content element in addition to fieldBodyCls."
								},
								"fieldDefaults": {
									"type": "object",
									"title": "If specified, the properties in this object are used as default config values for each Ext.form.Labelable instance (e.g. Ext.form.field.Base or Ext.form.FieldContainer) that is added as a descendant of this container. Corresponding values specified in an individual field's own configuration, or from the defaults config of its parent container, will take precedence. See the documentation for Ext.form.Labelable to see what config options may be specified in the fieldDefaults."
								},
								"fieldLabel": {
									"type": "string",
									"title": "The label for the field. It gets appended with the labelSeparator, and its position and sizing is determined by the labelAlign, labelWidth, and labelPad configs."
								},
								"formItemCls": {
									"type": "string",
									"value": "x-form-item",
									"title": "A CSS class to be applied to the outermost element to denote that it is participating in the form field layout."
								},
								"hideEmptyLabel": {
									"type": "boolean",
									"value": true,
									"title": "When set to true, the label element (fieldLabel and labelSeparator) will be automatically hidden if the fieldLabel is empty. Setting this to false will cause the empty label element to be rendered and space to be reserved for it; this is useful if you want a field without a label to line up with other labeled fields in the same form."
								},
								"hideLabel": {
									"type": "boolean",
									"value": false,
									"title": "Set to true to completely hide the label element (fieldLabel and labelSeparator). Also see hideEmptyLabel, which controls whether space will be reserved for an empty fieldLabel."
								},
								"invalidCls": {
									"type": "string",
									"value": "x-form-invalid",
									"title": "The CSS class to use when marking the component invalid."
								},
								"labelAlign": {
									"type": "string",
									"value": "left",
									"values": [
										"left",
										"top",
										"right"
									],
									"title": "Controls the position and alignment of the fieldLabel."
								},
								"labelCls": {
									"type": "string",
									"value": "x-form-item-label",
									"title": "The CSS class to be applied to the label element. This (single) CSS class is used to formulate the renderSelector and drives the field layout where it is concatenated with a hyphen ('-') and labelAlign. To add additional classes, use labelClsExtra."
								},
								"labelClsExtra": {
									"type": "string",
									"title": "An optional string of one or more additional CSS classes to add to the label element. Defaults to empty."
								},
								"labelConnector": {
									"type": "string",
									"value": ", ",
									"title": "The string to use when joining the labels of individual sub-fields, when combineLabels is set to true. Defaults to ', '."
								},
								"labelPad": {
									"type": "number",
									"value": 5,
									"title": "The amount of space in pixels between the fieldLabel and the input field."
								},
								"labelSeparator": {
									"type": "string",
									"value": ":",
									"title": "Character(s) to be inserted at the end of the label text."
								},
								"labelStyle": {
									"type": "string",
									"title": "A CSS style specification string to apply directly to this field's label."
								},
								"labelWidth": {
									"type": "number",
									"value": "100",
									"title": "The width of the fieldLabel in pixels. Only applicable if the labelAlign is set to 'left' or 'right'."
								},
								"labelableRenderTpl": {
									"type": "array",
									"value": [
										"<tpl if=\"!hideLabel && !(!fieldLabel && hideEmptyLabel)\">",
											"<label id=\"{id}-labelEl\"<tpl if=\"inputId\"> for=\"{inputId}\"</tpl> class=\"{labelCls}\"",
												"<tpl if=\"labelStyle\"> style=\"{labelStyle}\"</tpl>>",
												"<tpl if=\"fieldLabel\">{fieldLabel}{labelSeparator}</tpl>",
											"</label>",
										"</tpl>",
										"<div class=\"{baseBodyCls} {fieldBodyCls}\" id=\"{id}-bodyEl\" role=\"presentation\">{subTplMarkup}</div>",
										"<div id=\"{id}-errorEl\" class=\"{errorMsgCls}\" style=\"display:none\"></div>",
										"<div class=\"{clearCls}\" role=\"presentation\"><!-- --></div>",
										{
											"compiled": true,
											"disableFormats": true
										}
									],
									"title": "The rendering template for the field decorations. Component classes using this mixin should include logic to use this as their renderTpl, and implement the getSubTplMarkup method to generate the field body content."
								},
								"msgTarget": {
									"type": "string",
									"value": "qtip",
									"values": [
										"qtip",
										"title",
										"under",
										"side",
										"none"
									],
									"todo": "this has to be editable - use allowEdit as property? Remember this when this feature needs to be created for a combo with values (use quickcombo)",
									"allowEdit": true,
									"title": "The location where the error message text should display"
								},
								"preventMark": {
									"type": "boolean",
									"value": false,
									"title": "true to disable displaying any error message set on this object."
								},
								"dummy": {
									"type": "",
									"value": "",
									"title": ""
								},
								"dummy": {
									"type": "",
									"value": "",
									"title": ""
								},
								"dummy": {
									"type": "",
									"value": "",
									"title": ""
								},
								"dummy": {
									"type": "",
									"value": "",
									"title": ""
								}
							},
							"collections": {
								"checkboxgroup": {
									"id": 4,
									"properties": {
										"allowBlank": {
											"type": "boolean",
											"value": true,
											"title": "False to validate that at least one item in the group is checked. If no items are selected at validation time, blankText will be used as the error text."
										},
										"blankText": {
											"type": "string",
											"value": "You must select at least one item in this group",
											"title": "Error text to display if the allowBlank validation fails"
										},
										"columns": {
											"type": "string",
											"value": "auto",
											"values": [
												"auto"
											],
											"allowEdit": true,
											"afterBurn": "checkboxgroup.columns.afterBurn",
											"todo": "need to find a way to allow mixed value types and how to route/define/control the uitype representing these values"
											"title": "Specifies the number of columns to use when displaying grouped checkbox/radio controls using automatic layout. This config can take several types of values: 'auto' - The controls will be rendered one per column on one row and the width of each column will be evenly distributed based on the width of the overall field container. This is the default. Number - If you specific a number (e.g., 3) that number of columns will be created and the contained controls will be automatically distributed based on the value of vertical. Array - You can also specify an array of column widths, mixing integer (fixed width) and float (percentage width) values as needed (e.g., [100, .25, .75]). Any integer values will be rendered first, then any float values will be calculated as a percentage of the remaining space. Float values do not have to add up to 1 (100%) although if you want the controls to take up the entire field container you should do so."
										},
										"dummy": {
											"type": "",
											"value": "",
											"title": ""
										}
									},
									"collections": {
										"radiogroup": {
											"id": 5
										}
									}				
								}
							}
						},
						"fieldset": {
							"id": 6
						},
						"headercontainer": {
							"id": 7,
							"collections": {
								"gridcolumn": {
									"id": 8,
									"properties": {
										"dataIndex": {
											"type": "string",
											"alias": ["name"]
										}
									},
									"collections": {
										"rownumberer": {
											"id": 9
										},
										"actioncolumn": {
											"id": 10
										},
										"booleancolumn": {
											"id": 11
										},
										"datecolumn": {
											"id": 12
										},
										"numbercolumn": {
											"id": 13
										},
										"templatecolumn": {
											"id": 14
										},
										"checkcolumn": {
											"id": 15
										}
									}
								}
							}
						},
						"propertyheadercontainer": {
							"id": 16
						},
						"panel": {
							"id": 17,
							"collections": {
								"buttongroup": {
									"id": 18
								},
								"form": {
									"id": 19
								},
								"menu": {
									"id": 20,
									"collections": {
										"colormenu": {
											"id": 21
										},
										"datemenu": {
											"id": 22
										},
										"listmenu": {
											"id": 23
										},
										"rangemenu": {
											"id": 24
										}
									}
								},
								"tablepanel": {
									"id": 25,
									"collections": {
										"gridpanel": {
											"id": 26,
											"properties": {
												"columns": {
													"type": "array",
													"allowedTypes": [
														"gridcolumn",
														"rownumberer",
														"actioncolumn",
														"booleancolumn",
														"datecolumn",
														"numbercolumn",
														"templatecolumn",
														"checkcolumn"
													]
												},
												"childProperties": {
													"value": ["columns", "tbar"]
												}
											},
											"collections": {
												"propertygrid": {
													"id": 27
												},
												"livesearchgridpanel": {
													"id": 28
												},
												"transformgrid": {
													"id": 29
												},
												"entitygrid": {
													"id": 81
												}

											}
										},
										"treepanel": {
											"id": 30
										},
										"tabpanel": {
											"id": 31
										},
										"tip": {
											"id": 32,
											"collections": {
												"slidertip": {
													"id": 33
												},
												"tooltip": {
													"id": 34,
													"collections": {
														"quicktip": {
															"id": 35
														}
													}
												}
											}
										},
										"gmappanel": {
											"id": 36
										}
									}
								}
							}
						},
						"header": {
							"id": 37,
							"collections": {
								"tabbar": {
									"id": 38
								}
							}
						},
						"toolbar": {
							"id": 39,
							"collections": {
								"pagingtoolbar": {
									"id": 40
								},
								"statusbar": {
									"id": 41
								}
							}
						},
						"grouptabpanel": {
							"id": 42
						}
					}
				},
				"image": {
					"id": 43
				},
				"loadmask": {
					"id": 44
				},
				"progressbar": {
					"id": 45
				},
				"button": {
					"id": 45,
					"collections": {
						"splitbutton": {
							"id": 46,
							"collections": {
								"cycle": {
									"id": 47
								}
							}
						},
						"tab": {
							"id": 48
						}
					}
				},
				"draw": {
					"id": 49,
					"collections": {
						"chart": {
							"id": 50
						}
					}
				},
				"flash": {
					"id": 51
				},
				"label": {
					"id": 52
				},
				"field": {
					"id": 53,
					"collections": {
						"checkbox": {
							"id": 54,
							"collections": {
								"radio": {
									"id": 55
								}
							}
						},
						"displayfield": {
							"id": 56
						},
						"hiddenfield": {
							"id": 57
						},
						"textfield": {
							"id": 58,
							"collections": {
								"fileuploadfield": {
									"id": 59
								},
								"textareafield": {
									"id": 60
								},
								"triggerfield": {
									"id": 61,
									"collections": {
										"pickerfield": {
											"id": 62,
											"collections": {
												"combobox": {
													"id": 63
												},
												"datefield": {
													"id": 64
												},
												"timefield": {
													"id": 65
												}
											}
										},
										"spinnerfield": {
											"id": 66,
											"collections": {
												"numberfield": {
													"id": 67
												}
											}
										}
									}
								}
							}
						},
						"multislider": {
							"id": 68,
							"collections": {
								"sliderfield": {
									"id": 69
								}
							}
						},
						"multiselectfield": {
							"id": 70,
							"collections": {
								"itemselector": {
									"id": 71
								}
							}
						}
					}
				},
				"htmleditor": {
					"id": 72
				},
				"gridscroller": {
					"id": 73,
					"collections": {
						"paginggridscroller": {
							"id": 74
						}
					}
				},

				"menuitem": {
					"id": 75,
					"collections": {
						"menucheckitem": {
							"id": 76
						},
						"menuseparator": {
							"id": 77
						}
					}
				},
				"tool": {
					"id": 78
				},
				"colorpicker": {
					"id": 79
				},
				"datepicker": {
					"id": 80
				}
			}
		}
	}
}