Repository: DevExpress/devextreme-react
Pull request #238 (2018-11-07 14:36:28)

Redesign ownership references for collection items


Patch:
diff --git a/example/app.tsx b/example/app.tsx
index b94e123..7615ce4 100644
--- a/example/app.tsx
+++ b/example/app.tsx
@@ -11,6 +11,7 @@ import EditorExample from "./editor-example";
 import Example from "./example-block";
 import FormExample from "./form-example";
 import ListExample from "./list-example";
+import MapExample from "./map-example";
 import PopupExample from "./popup-example";
 import SchedulerExample from "./scheduler-example";
 import ScrollViewExample from "./scroll-view-example";
@@ -54,6 +55,8 @@ ReactDOM.render(
 
     <ListExample />
 
+    <MapExample />
+
     <AccordionExample />
 
     <DataGridExample/>
diff --git a/example/map-example.tsx b/example/map-example.tsx
new file mode 100644
index 0000000..459b848
--- /dev/null
+++ b/example/map-example.tsx
@@ -0,0 +1,35 @@
+import * as React from "react";
+import Example from "./example-block";
+
+import Map, { Location, Marker, Route, Tooltip } from "../src/map";
+
+export default class extends React.Component<any, { text: string; uncontrolledText: string; }> {
+
+    public render() {
+        return (
+            <Example title="dxMap">
+                <Map
+                    provider={"bing"}
+                    zoom={11}
+                    height={440}
+                    controls={true}
+                >
+                    <Marker iconSrc="https://js.devexpress.com/Demos/RealtorApp/images/map-marker.png">
+                        <Tooltip text={"Times Square"} />
+                        <Location lat={40.755833} lng={-73.986389} />
+                    </Marker>
+
+                    <Marker iconSrc="https://js.devexpress.com/Demos/RealtorApp/images/map-marker.png">
+                        <Tooltip text={"Central Park"} />
+                        <Location lat={40.7825} lng={-73.966111} />
+                    </Marker>
+
+                    <Route color="green">
+                        <Location lat={40.755833} lng={-73.986389} />
+                        <Location lat={40.7825} lng={-73.966111} />
+                    </Route>
+                </Map>
+            </Example>
+        );
+    }
+}
diff --git a/src/core/component.ts b/src/core/component.ts
index 61cd41e..f0c2df5 100644
--- a/src/core/component.ts
+++ b/src/core/component.ts
@@ -1,7 +1,7 @@
 import * as events from "devextreme/events";
 import * as React from "react";
 
-import OptionsManager from "./options-manager";
+import OptionsManager, { INestedOption } from "./options-manager";
 import { findProps as findNestedTemplateProps, ITemplateMeta } from "./template";
 import { elementPropNames, getClassName, separateProps } from "./widget-config";
 
@@ -34,8 +34,8 @@ abstract class ComponentBase<P extends IHtmlOptions> extends React.PureComponent
   protected _element: HTMLDivElement;
 
   protected readonly _defaults: Record<string, string>;
-
   protected readonly _templateProps: ITemplateMeta[] = [];
+  protected readonly _expectedChildren: Record<string, INestedOption>;
 
   private readonly _optionsManager: OptionsManager;
 
@@ -111,7 +111,7 @@ abstract class ComponentBase<P extends IHtmlOptions> extends React.PureComponent
   }
 
   protected _preprocessChild(component: React.ReactElement<any>): React.ReactElement<any> {
-    return this._optionsManager.registerNestedOption(component) || component;
+    return this._optionsManager.registerNestedOption(component, this._expectedChildren) || component;
   }
 
   protected _createWidget(element?: Element) {
diff --git a/src/core/options-manager.ts b/src/core/options-manager.ts
index 719ba5a..b1e316d 100644
--- a/src/core/options-manager.ts
+++ b/src/core/options-manager.ts
@@ -5,25 +5,29 @@ import { createOptionComponent, INestedOptionMeta } from "./nested-option";
 import { getTemplateOptions } from "./template-helper";
 import { separateProps } from "./widget-config";
 
-interface INestedOptionDescr {
-    name: string;
+interface INestedOption {
+    optionName: string;
+    isCollectionItem: boolean;
+}
+
+interface INestedConfigDescr extends INestedOption {
     defaults: Record<string, any>;
     templates: ITemplateMeta[];
     elementEntries: Array<{
         element: React.ReactElement<any>;
-        children: Record<string, INestedOptionDescr>;
+        children: Record<string, INestedConfigDescr>;
         predefinedProps: Record<string, any>;
     }>;
-    isCollectionItem: boolean;
 }
 
-interface INestedOptionClass {
+interface INestedConfigClass {
     type: {
         IsCollectionItem: boolean;
         OptionName: string;
         DefaultsProps: Record<string, string>;
         TemplateProps: ITemplateMeta[];
         PredefinedProps: Record<string, any>;
+        ExpectedChildren: Record<string, INestedOption>;
     };
     props: object;
 }
@@ -35,7 +39,7 @@ function isEventHanlder(optionName: string, optionValue: any) {
 class OptionsManager {
 
     private readonly _guards: Record<string, number> = {};
-    private readonly _nestedOptions: Record<string, INestedOptionDescr> = {};
+    private readonly _nestedOptions: Record<string, INestedConfigDescr> = {};
     private readonly _optionValueGetter: (name: string) => any;
 
     private _instance: any;
@@ -140,8 +144,11 @@ class OptionsManager {
         return this._getNestedOptionsObjects(this._nestedOptions, stateUpdater);
     }
 
-    public registerNestedOption(component: React.ReactElement<any>): any {
-        return this._registerNestedOption(component, this._nestedOptions);
+    public registerNestedOption(
+        component: React.ReactElement<any>,
+        expectedChildren: Record<string, INestedOption>
+    ): any {
+        return this._registerNestedOption(component, expectedChildren, this._nestedOptions);
     }
 
     private _setOption(name: string, value: any): void {
@@ -161,7 +168,7 @@ class OptionsManager {
     }
 
     private _getNestedOptionsObjects(
-        optionsCollection: Record<string, INestedOptionDescr>,
+        optionsCollection: Record<string, INestedConfigDescr>,
         stateUpdater: any
     ): Record<string, any> {
         const configComponents: Record<string, any> = {};
@@ -177,7 +184,7 @@ class OptionsManager {
                     options: props.templates,
                     nestedOptions: {},
                     templateProps: configComponent.templates,
-                    ownerName: `${configComponent.name}${configComponent.isCollectionItem ? `[${index}]` : ""}`,
+                    ownerName: `${configComponent.optionName}${configComponent.isCollectionItem ? `[${index}]` : ""}`,
                     stateUpdater,
                     propsGetter: (prop) => configComponent.elementEntries[index].element.props[prop]
                 });
@@ -195,7 +202,7 @@ class OptionsManager {
                     ...this._getNestedOptionsObjects(e.children, stateUpdater)
                 };
             });
-            configComponents[configComponent.name] = configComponent.isCollectionItem
+            configComponents[configComponent.optionName] = configComponent.isCollectionItem
                 ? options
                 : options[options.length - 1];
         });
@@ -211,26 +218,34 @@ class OptionsManager {
 
     private _registerNestedOption(
         element: React.ReactElement<any>,
-        owningCollection: Record<string, INestedOptionDescr>,
+        expectedChildren: Record<string, INestedOption>,
+        owningCollection: Record<string, INestedConfigDescr>,
         ownerFullName?: string
     ): any {
-        const nestedOptionClass = element as any as INestedOptionClass;
+        const nestedOptionClass = element as any as INestedConfigClass;
         if (!(nestedOptionClass && nestedOptionClass.type && nestedOptionClass.type.OptionName)) {
             return null;
         }
 
-        const nestedOptionsCollection: Record<string, INestedOptionDescr> = {};
-        const optionName = nestedOptionClass.type.OptionName;
+        const nestedOptionsCollection: Record<string, INestedConfigDescr> = {};
+
+        const resolvedNested = resolveNestedOption(
+            nestedOptionClass.type.OptionName,
+            nestedOptionClass.type.IsCollectionItem,
+            expectedChildren
+        );
+        const optionName = resolvedNested.optionName;
+        const isCollectionItem = resolvedNested.isCollectionItem;
 
         const entry = ensureNestedOption(
             optionName,
             owningCollection,
             nestedOptionClass.type.DefaultsProps,
             nestedOptionClass.type.TemplateProps,
-            nestedOptionClass.type.IsCollectionItem
+            isCollectionItem
         );
 
-        const index = nestedOptionClass.type.IsCollectionItem ? `[${entry.elementEntries.length}]` : "";
+        const index = isCollectionItem ? `[${entry.elementEntries.length}]` : "";
         let optionFullName = `${optionName}${index}`;
         if (ownerFullName) {
             optionFullName = `${ownerFullName}.${optionFullName}`;
@@ -239,7 +254,12 @@ class OptionsManager {
         const nestedOptionMeta: INestedOptionMeta = {
             optionName,
             registerNestedOption: (c: React.ReactElement<any>) => {
-                return this._registerNestedOption(c, nestedOptionsCollection, optionName);
+                return this._registerNestedOption(
+                    c,
+                    nestedOptionClass.type.ExpectedChildren,
+                    nestedOptionsCollection,
+                    optionName
+                );
             },
             updateFunc: (newProps, prevProps) => {
                 const newOptions = separateProps(newProps,
@@ -279,18 +299,18 @@ class OptionsManager {
 }
 
 function ensureNestedOption(
-    name: string,
-    optionsCollection: Record<string, INestedOptionDescr>,
+    optionName: string,
+    optionsCollection: Record<string, INestedConfigDescr>,
     defaults: Record<string, any>,
     templates: ITemplateMeta[],
     isCollectionItem: boolean
-): INestedOptionDescr {
+): INestedConfigDescr {
 
-    if (optionsCollection[name] === null ||
-        optionsCollection[name] === undefined
+    if (optionsCollection[optionName] === null ||
+        optionsCollection[optionName] === undefined
     ) {
-        optionsCollection[name] = {
-            name,
+        optionsCollection[optionName] = {
+            optionName,
             defaults,
             templates,
             elementEntries: [],
@@ -298,7 +318,30 @@ function ensureNestedOption(
         };
     }
 
-    return optionsCollection[name];
+    return optionsCollection[optionName];
+}
+
+function resolveNestedOption(
+    componentName: string,
+    canBeCollectionItem: boolean,
+    expectations: Record<string, INestedOption>
+): INestedOption {
+    let optionName = componentName;
+    let isCollectionItem = canBeCollectionItem;
+
+    const expectation = expectations && expectations[componentName];
+    if (expectation) {
+        isCollectionItem = expectation.isCollectionItem;
+        if (expectation.optionName) {
+            optionName = expectation.optionName;
+        }
+    }
+
+    return { optionName, isCollectionItem };
 }
 
 export default OptionsManager;
+export {
+    INestedOption,
+    resolveNestedOption
+};
diff --git a/tools/integration-data-model.ts b/tools/integration-data-model.ts
index fea6133..5cb233d 100644
--- a/tools/integration-data-model.ts
+++ b/tools/integration-data-model.ts
@@ -9,6 +9,7 @@ export interface IWidget {
   isEditor: boolean;
   isExtension: boolean;
   name: string;
+  nesteds: IComponentRef[];
   options: IProp[];
   templates: string[];
 }
@@ -23,6 +24,7 @@ export interface IProp {
 export interface IComplexProp {
   isCollectionItem: boolean;
   name: string;
+  nesteds: IComponentRef[];
   optionName: string;
   owners: string[];
   predefinedProps: Record<string, any>;
@@ -30,6 +32,12 @@ export interface IComplexProp {
   templates: string[];
 }
 
+export interface IComponentRef {
+  componentName: string;
+  isCollectionItem: boolean;
+  optionName: string;
+}
+
 export interface ICustomType {
   name: string;
   props: IProp[];
diff --git a/tools/integration-data.json b/tools/integration-data.json
index 7c79f37..658e92e 100644
--- a/tools/integration-data.json
+++ b/tools/integration-data.json
@@ -1,6 +1,7 @@
 {
   "meta": {
-    "scriptsRevision": "b74240c5a4fad1893306a79f318e832c368ec1f3"
+    "scriptsRevision": "bd0a0de06b7d19a5814c18044b3160a8ee752978",
+    "docsRevision": "545a5fc5ea98b44dfcd22e3b22bee91e2d8aae8f"
   },
   "widgets": [
     {
@@ -3568,11 +3569,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -5600,6 +5607,16 @@
           "owners": [
             "DxBarGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "connectorColor",
@@ -5706,6 +5723,12 @@
           "owners": [
             "DxBarGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -5865,6 +5888,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -5891,6 +5920,20 @@
           "owners": [
             "DxBarGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -6041,6 +6084,24 @@
           "owners": [
             "DxBarGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -6290,6 +6351,44 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "geometry",
+          "optionName": "geometry"
+        },
+        {
+          "componentName": "label",
+          "optionName": "label"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -8402,6 +8501,24 @@
           "owners": [
             "DxBullet"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -8650,6 +8767,20 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -17022,6 +17153,59 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "aggregationInterval",
+              "optionName": "aggregationInterval"
+            },
+            {
+              "componentName": "axisConstantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "axisLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "axisTitle",
+              "optionName": "title"
+            },
+            {
+              "componentName": "break",
+              "isCollectionItem": true,
+              "optionName": "breaks"
+            },
+            {
+              "componentName": "constantLine",
+              "isCollectionItem": true,
+              "optionName": "constantLines"
+            },
+            {
+              "componentName": "constantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorTickInterval",
+              "optionName": "minorTickInterval"
+            },
+            {
+              "componentName": "strip",
+              "isCollectionItem": true,
+              "optionName": "strips"
+            },
+            {
+              "componentName": "tickInterval",
+              "optionName": "tickInterval"
+            },
+            {
+              "componentName": "title",
+              "optionName": "title"
+            }
+          ],
           "props": [
             {
               "name": "aggregationGroupWidth",
@@ -19056,6 +19240,20 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -19190,6 +19388,56 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "breakStyle",
+              "optionName": "breakStyle"
+            },
+            {
+              "componentName": "commonAxisSettingsConstantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "commonAxisSettingsLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "commonAxisSettingsTitle",
+              "optionName": "title"
+            },
+            {
+              "componentName": "constantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "grid",
+              "optionName": "grid"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorGrid",
+              "optionName": "minorGrid"
+            },
+            {
+              "componentName": "minorTick",
+              "optionName": "minorTick"
+            },
+            {
+              "componentName": "stripStyle",
+              "optionName": "stripStyle"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            },
+            {
+              "componentName": "title",
+              "optionName": "title"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -19818,6 +20066,16 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "commonAxisSettingsConstantLineStyleLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -19912,6 +20170,12 @@
           "owners": [
             "commonAxisSettingsConstantLineStyle"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -19950,6 +20214,16 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "overlappingBehavior",
+              "optionName": "overlappingBehavior"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -20045,6 +20319,12 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -20071,6 +20351,16 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "paneBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -20176,6 +20466,56 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "aggregation",
+              "optionName": "aggregation"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "commonSeriesSettingsHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "commonSeriesSettingsLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "commonSeriesSettingsSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "point",
+              "optionName": "point"
+            },
+            {
+              "componentName": "reduction",
+              "optionName": "reduction"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "valueErrorBar",
+              "optionName": "valueErrorBar"
+            }
+          ],
           "props": [
             {
               "name": "aggregation",
@@ -20713,6 +21053,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -20768,6 +21122,32 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "connector",
+              "optionName": "connector"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -20938,6 +21318,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -21339,6 +21733,24 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "crosshairLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "horizontalLine",
+              "optionName": "horizontalLine"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "verticalLine",
+              "optionName": "verticalLine"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -22338,6 +22750,16 @@
           "owners": [
             "crosshair"
           ],
+          "nesteds": [
+            {
+              "componentName": "crosshairLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -22555,6 +22977,20 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "height",
+              "optionName": "height"
+            },
+            {
+              "componentName": "url",
+              "optionName": "url"
+            },
+            {
+              "componentName": "width",
+              "optionName": "width"
+            }
+          ],
           "props": [
             {
               "name": "height",
@@ -22908,6 +23344,24 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "legendBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -23353,6 +23807,12 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -23853,6 +24313,36 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "image",
+              "optionName": "image"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "pointSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -24000,6 +24490,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -24033,6 +24533,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -24926,6 +25436,16 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "stripStyleLabel",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "label",
@@ -24996,6 +25516,12 @@
           "owners": [
             "stripStyle"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -25040,6 +25566,12 @@
           "owners": [
             "chartTitle"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -25297,6 +25829,32 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "argumentFormat",
@@ -25651,6 +26209,55 @@
           "owners": [
             "DxChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "axisConstantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "axisLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "axisTitle",
+              "optionName": "title"
+            },
+            {
+              "componentName": "break",
+              "isCollectionItem": true,
+              "optionName": "breaks"
+            },
+            {
+              "componentName": "constantLine",
+              "isCollectionItem": true,
+              "optionName": "constantLines"
+            },
+            {
+              "componentName": "constantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorTickInterval",
+              "optionName": "minorTickInterval"
+            },
+            {
+              "componentName": "strip",
+              "isCollectionItem": true,
+              "optionName": "strips"
+            },
+            {
+              "componentName": "tickInterval",
+              "optionName": "tickInterval"
+            },
+            {
+              "componentName": "title",
+              "optionName": "title"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -27009,6 +27616,16 @@
           "owners": [
             "crosshair"
           ],
+          "nesteds": [
+            {
+              "componentName": "crosshairLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -27181,6 +27798,95 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "adaptiveLayout",
+          "optionName": "adaptiveLayout"
+        },
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "argumentAxis",
+          "optionName": "argumentAxis"
+        },
+        {
+          "componentName": "chartTitle",
+          "optionName": "title"
+        },
+        {
+          "componentName": "commonAxisSettings",
+          "optionName": "commonAxisSettings"
+        },
+        {
+          "componentName": "commonPaneSettings",
+          "optionName": "commonPaneSettings"
+        },
+        {
+          "componentName": "commonSeriesSettings",
+          "optionName": "commonSeriesSettings"
+        },
+        {
+          "componentName": "crosshair",
+          "optionName": "crosshair"
+        },
+        {
+          "componentName": "dataPrepareSettings",
+          "optionName": "dataPrepareSettings"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "legend",
+          "optionName": "legend"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "pane",
+          "isCollectionItem": true,
+          "optionName": "panes"
+        },
+        {
+          "componentName": "scrollBar",
+          "optionName": "scrollBar"
+        },
+        {
+          "componentName": "series",
+          "isCollectionItem": true,
+          "optionName": "series"
+        },
+        {
+          "componentName": "seriesTemplate",
+          "optionName": "seriesTemplate"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        },
+        {
+          "componentName": "valueAxis",
+          "isCollectionItem": true,
+          "optionName": "valueAxis"
+        }
       ]
     },
     {
@@ -29847,6 +30553,20 @@
           "owners": [
             "scale"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "overlappingBehavior",
+              "optionName": "overlappingBehavior"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -29972,6 +30692,12 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -30276,6 +31002,13 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "range",
+              "isCollectionItem": true,
+              "optionName": "ranges"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -30408,6 +31141,24 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "majorTick",
+              "optionName": "majorTick"
+            },
+            {
+              "componentName": "minorTick",
+              "optionName": "minorTick"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -30828,6 +31579,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -31060,6 +31817,16 @@
           "owners": [
             "valueIndicator"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -31191,6 +31958,20 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -31341,6 +32122,24 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -31588,6 +32387,12 @@
           "owners": [
             "DxCircularGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "text",
+              "optionName": "text"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -31788,6 +32593,56 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "geometry",
+          "optionName": "geometry"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "rangeContainer",
+          "optionName": "rangeContainer"
+        },
+        {
+          "componentName": "scale",
+          "optionName": "scale"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "subvalueIndicator",
+          "optionName": "subvalueIndicator"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        },
+        {
+          "componentName": "valueIndicator",
+          "optionName": "valueIndicator"
+        }
       ]
     },
     {
@@ -34538,6 +35393,16 @@
           "owners": [
             "DxContextMenu"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -35023,6 +35888,28 @@
           "owners": [
             "DxContextMenu"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -35333,6 +36220,12 @@
           "owners": [
             "DxContextMenu"
           ],
+          "nesteds": [
+            {
+              "componentName": "delay",
+              "optionName": "delay"
+            }
+          ],
           "props": [
             {
               "name": "delay",
@@ -35377,6 +36270,29 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        },
+        {
+          "componentName": "showEvent",
+          "optionName": "showEvent"
+        },
+        {
+          "componentName": "showSubmenuMode",
+          "optionName": "showSubmenuMode"
+        }
       ]
     },
     {
@@ -40892,6 +41808,16 @@
           "owners": [
             "popup"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -41057,6 +41983,32 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "columnHeaderFilter",
+              "optionName": "headerFilter"
+            },
+            {
+              "componentName": "columnLookup",
+              "optionName": "lookup"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "formItem",
+              "optionName": "formItem"
+            },
+            {
+              "componentName": "headerFilter",
+              "optionName": "headerFilter"
+            },
+            {
+              "componentName": "lookup",
+              "optionName": "lookup"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -42067,6 +43019,16 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "columnFixingTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "enabled",
@@ -42797,6 +43759,16 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "dataGridHeaderFilterTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowSearch",
@@ -42913,6 +43885,24 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "editingTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "form",
+              "optionName": "form"
+            },
+            {
+              "componentName": "popup",
+              "optionName": "popup"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowAdding",
@@ -43221,6 +44211,16 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "exportTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowExportSelectedData",
@@ -43353,6 +44353,20 @@
           "owners": [
             "filterBuilder"
           ],
+          "nesteds": [
+            {
+              "componentName": "fieldLookup",
+              "optionName": "lookup"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "lookup",
+              "optionName": "lookup"
+            }
+          ],
           "props": [
             {
               "name": "calculateFilterExpression",
@@ -43719,6 +44733,26 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "customOperation",
+              "isCollectionItem": true,
+              "optionName": "customOperations"
+            },
+            {
+              "componentName": "field",
+              "isCollectionItem": true,
+              "optionName": "fields"
+            },
+            {
+              "componentName": "filterOperationDescriptions",
+              "optionName": "filterOperationDescriptions"
+            },
+            {
+              "componentName": "groupOperationDescriptions",
+              "optionName": "groupOperationDescriptions"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -46116,6 +47150,16 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "filterPanelTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -46257,6 +47301,12 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "operationDescriptions",
+              "optionName": "operationDescriptions"
+            }
+          ],
           "props": [
             {
               "name": "applyFilter",
@@ -46432,6 +47482,12 @@
           "owners": [
             "editing"
           ],
+          "nesteds": [
+            {
+              "componentName": "colCountByScreen",
+              "optionName": "colCountByScreen"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -47334,6 +48390,57 @@
           "owners": [
             "column"
           ],
+          "nesteds": [
+            {
+              "componentName": "CompareRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "CustomRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "EmailRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "NumericRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "PatternRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RangeRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RequiredRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "StringLengthRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "validationRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            }
+          ],
           "props": [
             {
               "name": "colSpan",
@@ -47578,6 +48685,16 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "groupingTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowCollapsing",
@@ -47722,6 +48839,12 @@
           "owners": [
             "summary"
           ],
+          "nesteds": [
+            {
+              "componentName": "valueFormat",
+              "optionName": "valueFormat"
+            }
+          ],
           "props": [
             {
               "name": "alignByColumn",
@@ -48933,6 +50056,21 @@
           "owners": [
             "editing"
           ],
+          "nesteds": [
+            {
+              "componentName": "animation",
+              "optionName": "animation"
+            },
+            {
+              "componentName": "position",
+              "optionName": "position"
+            },
+            {
+              "componentName": "toolbarItem",
+              "isCollectionItem": true,
+              "optionName": "toolbarItems"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -50197,6 +51335,28 @@
           "owners": [
             "popup"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -51114,6 +52274,26 @@
           "owners": [
             "DxDataGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "groupItem",
+              "isCollectionItem": true,
+              "optionName": "groupItems"
+            },
+            {
+              "componentName": "summaryTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "totalItem",
+              "isCollectionItem": true,
+              "optionName": "totalItems"
+            }
+          ],
           "props": [
             {
               "name": "calculateCustomSummary",
@@ -52077,6 +53257,12 @@
           "owners": [
             "summary"
           ],
+          "nesteds": [
+            {
+              "componentName": "valueFormat",
+              "optionName": "valueFormat"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -52505,6 +53691,110 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "column",
+          "isCollectionItem": true,
+          "optionName": "columns"
+        },
+        {
+          "componentName": "columnChooser",
+          "optionName": "columnChooser"
+        },
+        {
+          "componentName": "columnFixing",
+          "optionName": "columnFixing"
+        },
+        {
+          "componentName": "dataGridHeaderFilter",
+          "optionName": "headerFilter"
+        },
+        {
+          "componentName": "editing",
+          "optionName": "editing"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "filterBuilder",
+          "optionName": "filterBuilder"
+        },
+        {
+          "componentName": "filterBuilderPopup",
+          "optionName": "filterBuilderPopup"
+        },
+        {
+          "componentName": "filterPanel",
+          "optionName": "filterPanel"
+        },
+        {
+          "componentName": "filterRow",
+          "optionName": "filterRow"
+        },
+        {
+          "componentName": "grouping",
+          "optionName": "grouping"
+        },
+        {
+          "componentName": "groupPanel",
+          "optionName": "groupPanel"
+        },
+        {
+          "componentName": "headerFilter",
+          "optionName": "headerFilter"
+        },
+        {
+          "componentName": "loadPanel",
+          "optionName": "loadPanel"
+        },
+        {
+          "componentName": "masterDetail",
+          "optionName": "masterDetail"
+        },
+        {
+          "componentName": "pager",
+          "optionName": "pager"
+        },
+        {
+          "componentName": "paging",
+          "optionName": "paging"
+        },
+        {
+          "componentName": "remoteOperations",
+          "optionName": "remoteOperations"
+        },
+        {
+          "componentName": "scrolling",
+          "optionName": "scrolling"
+        },
+        {
+          "componentName": "searchPanel",
+          "optionName": "searchPanel"
+        },
+        {
+          "componentName": "selection",
+          "optionName": "selection"
+        },
+        {
+          "componentName": "sortByGroupSummaryInfo",
+          "isCollectionItem": true,
+          "optionName": "sortByGroupSummaryInfo"
+        },
+        {
+          "componentName": "sorting",
+          "optionName": "sorting"
+        },
+        {
+          "componentName": "stateStoring",
+          "optionName": "stateStoring"
+        },
+        {
+          "componentName": "summary",
+          "optionName": "summary"
+        }
       ]
     },
     {
@@ -55089,6 +56379,16 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "calendarOptions",
+          "optionName": "calendarOptions"
+        },
+        {
+          "componentName": "displayFormat",
+          "optionName": "displayFormat"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -55720,6 +57020,12 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        }
       ]
     },
     {
@@ -57264,6 +58570,16 @@
           "owners": [
             "dropDownOptions"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -57388,6 +58704,21 @@
           "owners": [
             "DxDropDownBox"
           ],
+          "nesteds": [
+            {
+              "componentName": "animation",
+              "optionName": "animation"
+            },
+            {
+              "componentName": "position",
+              "optionName": "position"
+            },
+            {
+              "componentName": "toolbarItem",
+              "isCollectionItem": true,
+              "optionName": "toolbarItems"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -58873,6 +60204,28 @@
           "owners": [
             "dropDownOptions"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -59258,6 +60611,12 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "dropDownOptions",
+          "optionName": "dropDownOptions"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -61376,6 +62735,16 @@
           "owners": [
             "DxFilterBuilder"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "lookup",
+              "optionName": "lookup"
+            }
+          ],
           "props": [
             {
               "name": "calculateFilterExpression",
@@ -61998,6 +63367,26 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "customOperation",
+          "isCollectionItem": true,
+          "optionName": "customOperations"
+        },
+        {
+          "componentName": "field",
+          "isCollectionItem": true,
+          "optionName": "fields"
+        },
+        {
+          "componentName": "filterOperationDescriptions",
+          "optionName": "filterOperationDescriptions"
+        },
+        {
+          "componentName": "groupOperationDescriptions",
+          "optionName": "groupOperationDescriptions"
+        }
       ]
     },
     {
@@ -62690,6 +64079,12 @@
           "owners": [
             "DxForm"
           ],
+          "nesteds": [
+            {
+              "componentName": "buttonOptions",
+              "optionName": "buttonOptions"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -64588,6 +65983,57 @@
           "owners": [
             "DxForm"
           ],
+          "nesteds": [
+            {
+              "componentName": "CompareRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "CustomRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "EmailRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "NumericRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "PatternRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RangeRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RequiredRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "StringLengthRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "validationRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            }
+          ],
           "props": [
             {
               "name": "colSpan",
@@ -65083,6 +66529,17 @@
           "owners": [
             "DxForm"
           ],
+          "nesteds": [
+            {
+              "componentName": "tab",
+              "isCollectionItem": true,
+              "optionName": "tabs"
+            },
+            {
+              "componentName": "tabPanelOptions",
+              "optionName": "tabPanelOptions"
+            }
+          ],
           "props": [
             {
               "name": "colSpan",
@@ -67001,6 +68458,42 @@
             "type": "required"
           }
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "ButtonItem",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "colCountByScreen",
+          "optionName": "colCountByScreen"
+        },
+        {
+          "componentName": "EmptyItem",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "GroupItem",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "SimpleItem",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "TabbedItem",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -69857,6 +71350,20 @@
           "owners": [
             "item"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "itemBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -69947,6 +71454,24 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "itemBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -70207,6 +71732,28 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "connector",
+              "optionName": "connector"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "labelBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -70492,6 +72039,24 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "legendBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -70898,6 +72463,12 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -70984,6 +72555,20 @@
           "owners": [
             "item"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "itemBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -71148,6 +72733,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -71174,6 +72765,20 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -71308,6 +72913,28 @@
           "owners": [
             "DxFunnel"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -71629,6 +73256,48 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "adaptiveLayout",
+          "optionName": "adaptiveLayout"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "item",
+          "optionName": "item"
+        },
+        {
+          "componentName": "label",
+          "optionName": "label"
+        },
+        {
+          "componentName": "legend",
+          "optionName": "legend"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -74791,6 +76460,20 @@
           "owners": [
             "scale"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "overlappingBehavior",
+              "optionName": "overlappingBehavior"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -74904,6 +76587,12 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -75208,6 +76897,17 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "range",
+              "isCollectionItem": true,
+              "optionName": "ranges"
+            },
+            {
+              "componentName": "width",
+              "optionName": "width"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -75374,6 +77074,24 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "majorTick",
+              "optionName": "majorTick"
+            },
+            {
+              "componentName": "minorTick",
+              "optionName": "minorTick"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -75795,6 +77513,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -76027,6 +77751,16 @@
           "owners": [
             "valueIndicator"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -76158,6 +77892,20 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -76308,6 +78056,24 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -76555,6 +78321,12 @@
           "owners": [
             "DxLinearGauge"
           ],
+          "nesteds": [
+            {
+              "componentName": "text",
+              "optionName": "text"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -76780,6 +78552,56 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "geometry",
+          "optionName": "geometry"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "rangeContainer",
+          "optionName": "rangeContainer"
+        },
+        {
+          "componentName": "scale",
+          "optionName": "scale"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "subvalueIndicator",
+          "optionName": "subvalueIndicator"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        },
+        {
+          "componentName": "valueIndicator",
+          "optionName": "valueIndicator"
+        }
       ]
     },
     {
@@ -78611,11 +80433,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -80149,6 +81977,17 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "menuItem",
+          "isCollectionItem": true,
+          "optionName": "menuItems"
+        },
+        {
+          "componentName": "searchEditorOptions",
+          "optionName": "searchEditorOptions"
+        }
       ]
     },
     {
@@ -81188,6 +83027,16 @@
           "owners": [
             "DxLoadPanel"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -81533,6 +83382,28 @@
           "owners": [
             "DxLoadPanel"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -81812,6 +83683,16 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        }
       ]
     },
     {
@@ -83169,11 +85050,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -83405,6 +85292,16 @@
           "owners": [
             "DxLookup"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -83750,6 +85647,28 @@
           "owners": [
             "DxLookup"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -84030,6 +85949,16 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -85046,6 +86975,20 @@
           "owners": [
             "DxMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "location",
+              "optionName": "location"
+            },
+            {
+              "componentName": "markerLocation",
+              "optionName": "location"
+            },
+            {
+              "componentName": "tooltip",
+              "optionName": "tooltip"
+            }
+          ],
           "props": [
             {
               "name": "iconSrc",
@@ -85149,6 +87092,18 @@
           "owners": [
             "DxMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "location",
+              "isCollectionItem": true,
+              "optionName": "locations"
+            },
+            {
+              "componentName": "routeLocation",
+              "isCollectionItem": true,
+              "optionName": "locations"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -85253,6 +87208,26 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "center",
+          "optionName": "center"
+        },
+        {
+          "componentName": "key",
+          "optionName": "key"
+        },
+        {
+          "componentName": "marker",
+          "isCollectionItem": true,
+          "optionName": "markers"
+        },
+        {
+          "componentName": "route",
+          "isCollectionItem": true,
+          "optionName": "routes"
+        }
       ]
     },
     {
@@ -86539,6 +88514,16 @@
           "owners": [
             "DxMenu"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -87029,55 +89014,11 @@
           "owners": [
             "DxMenu"
           ],
-          "props": [
+          "nesteds": [
             {
-              "name": "delay",
-              "types": [
-                {
-                  "type": "Number"
-                },
-                {
-                  "type": "Object"
-                }
-              ],
-              "props": [
-                {
-                  "name": "hide",
-                  "types": [
-                    {
-                      "type": "Number"
-                    }
-                  ]
-                },
-                {
-                  "name": "show",
-                  "types": [
-                    {
-                      "type": "Number"
-                    }
-                  ]
-                }
-              ]
-            },
-            {
-              "name": "name",
-              "types": [
-                {
-                  "type": "String",
-                  "acceptableValues": [
-                    "\"onClick\"",
-                    "\"onHover\""
-                  ]
-                }
-              ]
+              "componentName": "delay",
+              "optionName": "delay"
             }
-          ]
-        },
-        {
-          "name": "showSubmenuMode",
-          "optionName": "showSubmenuMode",
-          "owners": [
-            "DxMenu"
           ],
           "props": [
             {
@@ -87122,6 +89063,81 @@
               ]
             }
           ]
+        },
+        {
+          "name": "showSubmenuMode",
+          "optionName": "showSubmenuMode",
+          "owners": [
+            "DxMenu"
+          ],
+          "nesteds": [
+            {
+              "componentName": "delay",
+              "optionName": "delay"
+            }
+          ],
+          "props": [
+            {
+              "name": "delay",
+              "types": [
+                {
+                  "type": "Number"
+                },
+                {
+                  "type": "Object"
+                }
+              ],
+              "props": [
+                {
+                  "name": "hide",
+                  "types": [
+                    {
+                      "type": "Number"
+                    }
+                  ]
+                },
+                {
+                  "name": "show",
+                  "types": [
+                    {
+                      "type": "Number"
+                    }
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "name",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"onClick\"",
+                    "\"onHover\""
+                  ]
+                }
+              ]
+            }
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "showFirstSubmenuMode",
+          "optionName": "showFirstSubmenuMode"
+        },
+        {
+          "componentName": "showSubmenuMode",
+          "optionName": "showSubmenuMode"
         }
       ]
     },
@@ -90382,6 +92398,12 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "format",
+          "optionName": "format"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -93407,6 +95429,20 @@
           "owners": [
             "series"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -93440,6 +95476,32 @@
           "owners": [
             "series"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "connector",
+              "optionName": "connector"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "argumentFormat",
@@ -93582,6 +95644,24 @@
           "owners": [
             "DxPieChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "legendBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -94014,6 +96094,12 @@
           "owners": [
             "DxPieChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -94100,6 +96186,20 @@
           "owners": [
             "series"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -94133,6 +96233,32 @@
           "owners": [
             "DxPieChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "smallValuesGrouping",
+              "optionName": "smallValuesGrouping"
+            }
+          ],
           "props": [
             {
               "name": "argumentField",
@@ -94534,6 +96660,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -94560,6 +96692,20 @@
           "owners": [
             "DxPieChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -94694,6 +96840,32 @@
           "owners": [
             "DxPieChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "argumentFormat",
@@ -94997,6 +97169,57 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "adaptiveLayout",
+          "optionName": "adaptiveLayout"
+        },
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "commonSeriesSettings",
+          "optionName": "commonSeriesSettings"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "legend",
+          "optionName": "legend"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "series",
+          "isCollectionItem": true,
+          "optionName": "series"
+        },
+        {
+          "componentName": "seriesTemplate",
+          "optionName": "seriesTemplate"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -96719,6 +98942,16 @@
           "owners": [
             "DxPivotGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "fieldChooserTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowSearch",
@@ -96900,6 +99133,16 @@
           "owners": [
             "DxPivotGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "fieldPanelTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowFieldDragging",
@@ -97040,6 +99283,16 @@
           "owners": [
             "DxPivotGrid"
           ],
+          "nesteds": [
+            {
+              "componentName": "headerFilterTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowSearch",
@@ -97608,6 +99861,44 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "fieldChooser",
+          "optionName": "fieldChooser"
+        },
+        {
+          "componentName": "fieldPanel",
+          "optionName": "fieldPanel"
+        },
+        {
+          "componentName": "headerFilter",
+          "optionName": "headerFilter"
+        },
+        {
+          "componentName": "loadPanel",
+          "optionName": "loadPanel"
+        },
+        {
+          "componentName": "pivotGridTexts",
+          "optionName": "texts"
+        },
+        {
+          "componentName": "scrolling",
+          "optionName": "scrolling"
+        },
+        {
+          "componentName": "stateStoring",
+          "optionName": "stateStoring"
+        },
+        {
+          "componentName": "texts",
+          "optionName": "texts"
+        }
       ]
     },
     {
@@ -98230,6 +100521,16 @@
           "owners": [
             "DxPivotGridFieldChooser"
           ],
+          "nesteds": [
+            {
+              "componentName": "headerFilterTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowSearch",
@@ -98455,6 +100756,20 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "headerFilter",
+          "optionName": "headerFilter"
+        },
+        {
+          "componentName": "pivotGridFieldChooserTexts",
+          "optionName": "texts"
+        },
+        {
+          "componentName": "texts",
+          "optionName": "texts"
+        }
       ]
     },
     {
@@ -103313,6 +105628,34 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "axisLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "constantLine",
+              "isCollectionItem": true,
+              "optionName": "constantLines"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorTickInterval",
+              "optionName": "minorTickInterval"
+            },
+            {
+              "componentName": "strip",
+              "isCollectionItem": true,
+              "optionName": "strips"
+            },
+            {
+              "componentName": "tickInterval",
+              "optionName": "tickInterval"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -104497,6 +106840,40 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "commonAxisSettingsLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "constantLineStyle",
+              "optionName": "constantLineStyle"
+            },
+            {
+              "componentName": "grid",
+              "optionName": "grid"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorGrid",
+              "optionName": "minorGrid"
+            },
+            {
+              "componentName": "minorTick",
+              "optionName": "minorTick"
+            },
+            {
+              "componentName": "stripStyle",
+              "optionName": "stripStyle"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -104911,6 +107288,12 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -104959,6 +107342,48 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "commonSeriesSettingsHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "commonSeriesSettingsLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "commonSeriesSettingsSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "point",
+              "optionName": "point"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "valueErrorBar",
+              "optionName": "valueErrorBar"
+            }
+          ],
           "props": [
             {
               "name": "area",
@@ -105246,6 +107671,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -105301,6 +107740,32 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "connector",
+              "optionName": "connector"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "argumentFormat",
@@ -105434,6 +107899,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -105647,6 +108126,16 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "constantLineStyleLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -105713,6 +108202,12 @@
           "owners": [
             "constantLineStyle"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -106506,6 +109001,24 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "legendBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -106939,6 +109452,12 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -107197,6 +109716,36 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "image",
+              "optionName": "image"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "pointSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -107343,6 +109892,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -107376,6 +109935,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -108001,6 +110570,16 @@
           "owners": [
             "commonAxisSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "stripStyleLabel",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "label",
@@ -108029,6 +110608,12 @@
           "owners": [
             "stripStyle"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -108047,6 +110632,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -108205,6 +110796,20 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -108339,6 +110944,32 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "argumentFormat",
@@ -108656,6 +111287,38 @@
           "owners": [
             "DxPolarChart"
           ],
+          "nesteds": [
+            {
+              "componentName": "axisLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "constantLine",
+              "isCollectionItem": true,
+              "optionName": "constantLines"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "minorTickInterval",
+              "optionName": "minorTickInterval"
+            },
+            {
+              "componentName": "strip",
+              "isCollectionItem": true,
+              "optionName": "strips"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            },
+            {
+              "componentName": "tickInterval",
+              "optionName": "tickInterval"
+            }
+          ],
           "props": [
             {
               "name": "allowDecimals",
@@ -109580,6 +112243,73 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "adaptiveLayout",
+          "optionName": "adaptiveLayout"
+        },
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "argumentAxis",
+          "optionName": "argumentAxis"
+        },
+        {
+          "componentName": "commonAxisSettings",
+          "optionName": "commonAxisSettings"
+        },
+        {
+          "componentName": "commonSeriesSettings",
+          "optionName": "commonSeriesSettings"
+        },
+        {
+          "componentName": "dataPrepareSettings",
+          "optionName": "dataPrepareSettings"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "legend",
+          "optionName": "legend"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "series",
+          "isCollectionItem": true,
+          "optionName": "series"
+        },
+        {
+          "componentName": "seriesTemplate",
+          "optionName": "seriesTemplate"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        },
+        {
+          "componentName": "valueAxis",
+          "optionName": "valueAxis"
+        }
       ]
     },
     {
@@ -110597,6 +113327,16 @@
           "owners": [
             "DxPopover"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -110967,6 +113707,28 @@
           "owners": [
             "DxPopover"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -111376,6 +114138,29 @@
             "template"
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "hideEvent",
+          "optionName": "hideEvent"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        },
+        {
+          "componentName": "showEvent",
+          "optionName": "showEvent"
+        },
+        {
+          "componentName": "toolbarItem",
+          "isCollectionItem": true,
+          "optionName": "toolbarItems"
+        }
       ]
     },
     {
@@ -112531,6 +115316,16 @@
           "owners": [
             "DxPopup"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -112876,6 +115671,28 @@
           "owners": [
             "DxPopup"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -113260,6 +116077,21 @@
             "template"
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        },
+        {
+          "componentName": "toolbarItem",
+          "isCollectionItem": true,
+          "optionName": "toolbarItems"
+        }
       ]
     },
     {
@@ -117049,6 +119881,16 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "backgroundImage",
+              "optionName": "image"
+            },
+            {
+              "componentName": "image",
+              "optionName": "image"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -117350,6 +120192,29 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "commonSeriesSettings",
+              "optionName": "commonSeriesSettings"
+            },
+            {
+              "componentName": "dataPrepareSettings",
+              "optionName": "dataPrepareSettings"
+            },
+            {
+              "componentName": "series",
+              "isCollectionItem": true,
+              "optionName": "series"
+            },
+            {
+              "componentName": "seriesTemplate",
+              "optionName": "seriesTemplate"
+            },
+            {
+              "componentName": "valueAxis",
+              "optionName": "valueAxis"
+            }
+          ],
           "props": [
             {
               "name": "barGroupPadding",
@@ -117722,6 +120587,56 @@
           "owners": [
             "chart"
           ],
+          "nesteds": [
+            {
+              "componentName": "aggregation",
+              "optionName": "aggregation"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "commonSeriesSettingsHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "commonSeriesSettingsLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "commonSeriesSettingsSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "point",
+              "optionName": "point"
+            },
+            {
+              "componentName": "reduction",
+              "optionName": "reduction"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "valueErrorBar",
+              "optionName": "valueErrorBar"
+            }
+          ],
           "props": [
             {
               "name": "aggregation",
@@ -118259,6 +121174,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -118314,6 +121243,32 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "argumentFormat",
+              "optionName": "argumentFormat"
+            },
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "connector",
+              "optionName": "connector"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -118484,6 +121439,20 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hatching",
+              "optionName": "hatching"
+            },
+            {
+              "componentName": "seriesBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -119368,6 +122337,12 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -119518,6 +122493,16 @@
           "owners": [
             "scale"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "markerLabel",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "label",
@@ -119628,6 +122613,12 @@
           "owners": [
             "marker"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -119972,6 +122963,16 @@
           "owners": [
             "sliderMarker"
           ],
+          "nesteds": [
+            {
+              "componentName": "placeholderSizeWidth",
+              "optionName": "width"
+            },
+            {
+              "componentName": "width",
+              "optionName": "width"
+            }
+          ],
           "props": [
             {
               "name": "height",
@@ -120043,6 +123044,40 @@
           "owners": [
             "commonSeriesSettings"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "image",
+              "optionName": "image"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointHoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "pointImage",
+              "optionName": "image"
+            },
+            {
+              "componentName": "pointSelectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -120190,6 +123225,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -120223,6 +123268,24 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "height",
+              "optionName": "height"
+            },
+            {
+              "componentName": "pointImageWidth",
+              "optionName": "width"
+            },
+            {
+              "componentName": "url",
+              "optionName": "url"
+            },
+            {
+              "componentName": "width",
+              "optionName": "width"
+            }
+          ],
           "props": [
             {
               "name": "height",
@@ -120290,6 +123353,16 @@
           "owners": [
             "point"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "pointBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -120354,6 +123427,61 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "aggregationInterval",
+              "optionName": "aggregationInterval"
+            },
+            {
+              "componentName": "break",
+              "isCollectionItem": true,
+              "optionName": "breaks"
+            },
+            {
+              "componentName": "breakStyle",
+              "optionName": "breakStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "majorTickInterval",
+              "optionName": "majorTickInterval"
+            },
+            {
+              "componentName": "marker",
+              "optionName": "marker"
+            },
+            {
+              "componentName": "maxRange",
+              "optionName": "maxRange"
+            },
+            {
+              "componentName": "minorTick",
+              "optionName": "minorTick"
+            },
+            {
+              "componentName": "minorTickInterval",
+              "optionName": "minorTickInterval"
+            },
+            {
+              "componentName": "minRange",
+              "optionName": "minRange"
+            },
+            {
+              "componentName": "scaleLabel",
+              "optionName": "label"
+            },
+            {
+              "componentName": "tick",
+              "optionName": "tick"
+            },
+            {
+              "componentName": "tickInterval",
+              "optionName": "tickInterval"
+            }
+          ],
           "props": [
             {
               "name": "aggregationGroupWidth",
@@ -121073,6 +124201,16 @@
           "owners": [
             "scale"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -121784,6 +124922,20 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "placeholderSize",
+              "optionName": "placeholderSize"
+            }
+          ],
           "props": [
             {
               "name": "color",
@@ -121967,6 +125119,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -122107,6 +125265,20 @@
           "owners": [
             "DxRangeSelector"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -122462,6 +125634,60 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "background",
+          "optionName": "background"
+        },
+        {
+          "componentName": "behavior",
+          "optionName": "behavior"
+        },
+        {
+          "componentName": "chart",
+          "optionName": "chart"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "indent",
+          "optionName": "indent"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "scale",
+          "optionName": "scale"
+        },
+        {
+          "componentName": "shutter",
+          "optionName": "shutter"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "sliderHandle",
+          "optionName": "sliderHandle"
+        },
+        {
+          "componentName": "sliderMarker",
+          "optionName": "sliderMarker"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        }
       ]
     },
     {
@@ -123174,6 +126400,12 @@
           "owners": [
             "DxRangeSlider"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "format",
@@ -123212,6 +126444,12 @@
           "owners": [
             "DxRangeSlider"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "enabled",
@@ -123257,6 +126495,16 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "label",
+          "optionName": "label"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -124731,6 +127979,18 @@
           ],
           "isCollectionItem": true
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "col",
+          "isCollectionItem": true,
+          "optionName": "cols"
+        },
+        {
+          "componentName": "row",
+          "isCollectionItem": true,
+          "optionName": "rows"
+        }
       ]
     },
     {
@@ -127914,6 +131174,22 @@
             "timeCellTemplate"
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "editing",
+          "optionName": "editing"
+        },
+        {
+          "componentName": "resource",
+          "isCollectionItem": true,
+          "optionName": "resources"
+        },
+        {
+          "componentName": "view",
+          "isCollectionItem": true,
+          "optionName": "views"
+        }
       ]
     },
     {
@@ -130315,11 +133591,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -132644,6 +135926,12 @@
           "owners": [
             "DxSlider"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "format",
@@ -132682,6 +135970,12 @@
           "owners": [
             "DxSlider"
           ],
+          "nesteds": [
+            {
+              "componentName": "format",
+              "optionName": "format"
+            }
+          ],
           "props": [
             {
               "name": "enabled",
@@ -132727,6 +136021,16 @@
           ]
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "label",
+          "optionName": "label"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -134201,6 +137505,24 @@
           "owners": [
             "DxSparkline"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -134449,6 +137771,20 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "margin",
+          "optionName": "margin"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -138851,11 +142187,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -143277,6 +146619,16 @@
           "owners": [
             "DxToast"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -143622,6 +146974,28 @@
           "owners": [
             "DxToast"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -143901,6 +147275,16 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        }
       ]
     },
     {
@@ -145507,6 +148891,16 @@
           "owners": [
             "DxTooltip"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -145877,6 +149271,28 @@
           "owners": [
             "DxTooltip"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -146181,6 +149597,24 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "animation",
+          "optionName": "animation"
+        },
+        {
+          "componentName": "hideEvent",
+          "optionName": "hideEvent"
+        },
+        {
+          "componentName": "position",
+          "optionName": "position"
+        },
+        {
+          "componentName": "showEvent",
+          "optionName": "showEvent"
+        }
       ]
     },
     {
@@ -150674,6 +154108,16 @@
           "owners": [
             "popup"
           ],
+          "nesteds": [
+            {
+              "componentName": "hide",
+              "optionName": "hide"
+            },
+            {
+              "componentName": "show",
+              "optionName": "show"
+            }
+          ],
           "props": [
             {
               "name": "hide",
@@ -150761,6 +154205,12 @@
           "owners": [
             "form"
           ],
+          "nesteds": [
+            {
+              "componentName": "buttonOptions",
+              "optionName": "buttonOptions"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -151577,6 +155027,32 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "columnHeaderFilter",
+              "optionName": "headerFilter"
+            },
+            {
+              "componentName": "columnLookup",
+              "optionName": "lookup"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "formItem",
+              "optionName": "formItem"
+            },
+            {
+              "componentName": "headerFilter",
+              "optionName": "headerFilter"
+            },
+            {
+              "componentName": "lookup",
+              "optionName": "lookup"
+            }
+          ],
           "props": [
             {
               "name": "alignment",
@@ -152459,6 +155935,16 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "columnFixingTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "enabled",
@@ -153189,6 +156675,24 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "editingTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "form",
+              "optionName": "form"
+            },
+            {
+              "componentName": "popup",
+              "optionName": "popup"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowAdding",
@@ -153581,6 +157085,20 @@
           "owners": [
             "filterBuilder"
           ],
+          "nesteds": [
+            {
+              "componentName": "fieldLookup",
+              "optionName": "lookup"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "lookup",
+              "optionName": "lookup"
+            }
+          ],
           "props": [
             {
               "name": "calculateFilterExpression",
@@ -153947,6 +157465,26 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "customOperation",
+              "isCollectionItem": true,
+              "optionName": "customOperations"
+            },
+            {
+              "componentName": "field",
+              "isCollectionItem": true,
+              "optionName": "fields"
+            },
+            {
+              "componentName": "filterOperationDescriptions",
+              "optionName": "filterOperationDescriptions"
+            },
+            {
+              "componentName": "groupOperationDescriptions",
+              "optionName": "groupOperationDescriptions"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -156344,6 +159882,16 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "filterPanelTexts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "customizeText",
@@ -156485,6 +160033,12 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "operationDescriptions",
+              "optionName": "operationDescriptions"
+            }
+          ],
           "props": [
             {
               "name": "applyFilter",
@@ -156660,6 +160214,42 @@
           "owners": [
             "editing"
           ],
+          "nesteds": [
+            {
+              "componentName": "ButtonItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "colCountByScreen",
+              "optionName": "colCountByScreen"
+            },
+            {
+              "componentName": "EmptyItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "GroupItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "item",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "SimpleItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "TabbedItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -157562,6 +161152,57 @@
           "owners": [
             "column"
           ],
+          "nesteds": [
+            {
+              "componentName": "CompareRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "CustomRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "EmailRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "NumericRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "PatternRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RangeRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "RequiredRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "StringLengthRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            },
+            {
+              "componentName": "validationRule",
+              "isCollectionItem": true,
+              "optionName": "validationRules"
+            }
+          ],
           "props": [
             {
               "name": "colSpan",
@@ -159320,6 +162961,21 @@
           "owners": [
             "editing"
           ],
+          "nesteds": [
+            {
+              "componentName": "animation",
+              "optionName": "animation"
+            },
+            {
+              "componentName": "position",
+              "optionName": "position"
+            },
+            {
+              "componentName": "toolbarItem",
+              "isCollectionItem": true,
+              "optionName": "toolbarItems"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -160584,6 +164240,28 @@
           "owners": [
             "popup"
           ],
+          "nesteds": [
+            {
+              "componentName": "at",
+              "optionName": "at"
+            },
+            {
+              "componentName": "boundaryOffset",
+              "optionName": "boundaryOffset"
+            },
+            {
+              "componentName": "collision",
+              "optionName": "collision"
+            },
+            {
+              "componentName": "my",
+              "optionName": "my"
+            },
+            {
+              "componentName": "offset",
+              "optionName": "offset"
+            }
+          ],
           "props": [
             {
               "name": "at",
@@ -161833,6 +165511,17 @@
           "owners": [
             "form"
           ],
+          "nesteds": [
+            {
+              "componentName": "tab",
+              "isCollectionItem": true,
+              "optionName": "tabs"
+            },
+            {
+              "componentName": "tabPanelOptions",
+              "optionName": "tabPanelOptions"
+            }
+          ],
           "props": [
             {
               "name": "colSpan",
@@ -163874,6 +167563,16 @@
           "owners": [
             "DxTreeList"
           ],
+          "nesteds": [
+            {
+              "componentName": "texts",
+              "optionName": "texts"
+            },
+            {
+              "componentName": "treeListHeaderFilterTexts",
+              "optionName": "texts"
+            }
+          ],
           "props": [
             {
               "name": "allowSearch",
@@ -164160,6 +167859,85 @@
             "type": "required"
           }
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "column",
+          "isCollectionItem": true,
+          "optionName": "columns"
+        },
+        {
+          "componentName": "columnChooser",
+          "optionName": "columnChooser"
+        },
+        {
+          "componentName": "columnFixing",
+          "optionName": "columnFixing"
+        },
+        {
+          "componentName": "editing",
+          "optionName": "editing"
+        },
+        {
+          "componentName": "filterBuilder",
+          "optionName": "filterBuilder"
+        },
+        {
+          "componentName": "filterBuilderPopup",
+          "optionName": "filterBuilderPopup"
+        },
+        {
+          "componentName": "filterPanel",
+          "optionName": "filterPanel"
+        },
+        {
+          "componentName": "filterRow",
+          "optionName": "filterRow"
+        },
+        {
+          "componentName": "headerFilter",
+          "optionName": "headerFilter"
+        },
+        {
+          "componentName": "loadPanel",
+          "optionName": "loadPanel"
+        },
+        {
+          "componentName": "pager",
+          "optionName": "pager"
+        },
+        {
+          "componentName": "paging",
+          "optionName": "paging"
+        },
+        {
+          "componentName": "remoteOperations",
+          "optionName": "remoteOperations"
+        },
+        {
+          "componentName": "scrolling",
+          "optionName": "scrolling"
+        },
+        {
+          "componentName": "searchPanel",
+          "optionName": "searchPanel"
+        },
+        {
+          "componentName": "selection",
+          "optionName": "selection"
+        },
+        {
+          "componentName": "sorting",
+          "optionName": "sorting"
+        },
+        {
+          "componentName": "stateStoring",
+          "optionName": "stateStoring"
+        },
+        {
+          "componentName": "treeListHeaderFilter",
+          "optionName": "headerFilter"
+        }
       ]
     },
     {
@@ -166655,6 +170433,28 @@
           "owners": [
             "DxTreeMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "treeMapborder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -166900,6 +170700,12 @@
           "owners": [
             "DxTreeMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -167102,6 +170908,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -167128,6 +170940,28 @@
           "owners": [
             "DxTreeMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "hoverStyle",
+              "optionName": "hoverStyle"
+            },
+            {
+              "componentName": "label",
+              "optionName": "label"
+            },
+            {
+              "componentName": "selectionStyle",
+              "optionName": "selectionStyle"
+            },
+            {
+              "componentName": "treeMapborder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "border",
@@ -167286,6 +171120,20 @@
           "owners": [
             "DxTreeMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -167420,6 +171268,28 @@
           "owners": [
             "DxTreeMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -167755,6 +171625,40 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "colorizer",
+          "optionName": "colorizer"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "group",
+          "optionName": "group"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "tile",
+          "optionName": "tile"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     },
     {
@@ -169122,11 +173026,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -170718,6 +174628,17 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
+        {
+          "componentName": "searchEditorOptions",
+          "optionName": "searchEditorOptions"
+        }
       ]
     },
     {
@@ -172573,6 +176494,57 @@
           }
         }
       ],
+      "nesteds": [
+        {
+          "componentName": "adapter",
+          "optionName": "adapter"
+        },
+        {
+          "componentName": "CompareRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "CustomRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "EmailRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "NumericRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "PatternRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "RangeRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "RequiredRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "StringLengthRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        },
+        {
+          "componentName": "validationRule",
+          "isCollectionItem": true,
+          "optionName": "validationRules"
+        }
+      ],
       "isExtension": true
     },
     {
@@ -175384,6 +179356,12 @@
           "owners": [
             "layer"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "dataField",
@@ -175418,6 +179396,12 @@
           "owners": [
             "DxVectorMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "label",
+              "optionName": "label"
+            }
+          ],
           "props": [
             {
               "name": "borderColor",
@@ -175777,6 +179761,28 @@
           "owners": [
             "DxVectorMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "legendBorder",
+              "optionName": "border"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "source",
+              "optionName": "source"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -176276,6 +180282,12 @@
           "owners": [
             "DxVectorMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "backgroundColor",
@@ -176460,6 +180472,12 @@
           "owners": [
             "title"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -176486,6 +180504,20 @@
           "owners": [
             "DxVectorMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "margin",
+              "optionName": "margin"
+            },
+            {
+              "componentName": "subtitle",
+              "optionName": "subtitle"
+            }
+          ],
           "props": [
             {
               "name": "font",
@@ -176620,6 +180652,28 @@
           "owners": [
             "DxVectorMap"
           ],
+          "nesteds": [
+            {
+              "componentName": "border",
+              "optionName": "border"
+            },
+            {
+              "componentName": "font",
+              "optionName": "font"
+            },
+            {
+              "componentName": "format",
+              "optionName": "format"
+            },
+            {
+              "componentName": "shadow",
+              "optionName": "shadow"
+            },
+            {
+              "componentName": "tooltipBorder",
+              "optionName": "border"
+            }
+          ],
           "props": [
             {
               "name": "arrowLength",
@@ -176903,6 +180957,46 @@
             }
           ]
         }
+      ],
+      "nesteds": [
+        {
+          "componentName": "background",
+          "optionName": "background"
+        },
+        {
+          "componentName": "controlBar",
+          "optionName": "controlBar"
+        },
+        {
+          "componentName": "export",
+          "optionName": "export"
+        },
+        {
+          "componentName": "layer",
+          "isCollectionItem": true,
+          "optionName": "layers"
+        },
+        {
+          "componentName": "legend",
+          "isCollectionItem": true,
+          "optionName": "legends"
+        },
+        {
+          "componentName": "loadingIndicator",
+          "optionName": "loadingIndicator"
+        },
+        {
+          "componentName": "size",
+          "optionName": "size"
+        },
+        {
+          "componentName": "title",
+          "optionName": "title"
+        },
+        {
+          "componentName": "tooltip",
+          "optionName": "tooltip"
+        }
       ]
     }
   ],
@@ -180388,11 +184482,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -180403,7 +184503,7 @@
               "type": "Function",
               "params": [],
               "returnValueType": {
-                "type": "Function"
+                "type": "String"
               }
             }
           ]
@@ -180417,6 +184517,9 @@
                 {
                   "name": "expr",
                   "types": [
+                    {
+                      "type": "String"
+                    },
                     {
                       "type": "Function"
                     },
@@ -180425,6 +184528,9 @@
                       "itemTypes": [
                         {
                           "type": "Function"
+                        },
+                        {
+                          "type": "String"
                         }
                       ]
                     }
@@ -180906,11 +185012,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
@@ -199409,11 +203521,17 @@
               "itemTypes": [
                 {
                   "type": "Function"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
               "type": "Function"
+            },
+            {
+              "type": "String"
             }
           ]
         },
diff --git a/tools/src/component-generator.ts b/tools/src/component-generator.ts
index 1f024a2..6559766 100644
--- a/tools/src/component-generator.ts
+++ b/tools/src/component-generator.ts
@@ -12,6 +12,7 @@ interface IComponent {
     baseComponentPath: string;
     configComponentPath: string;
     dxExportPath: string;
+    expectedChildren: IExpectedChild[];
     isExtension?: boolean;
     subscribableOptions?: IOption[];
     nestedComponents?: INestedComponent[];
@@ -25,6 +26,7 @@ interface INestedComponent {
     owners: string[];
     options: IOption[];
     templates: string[];
+    expectedChildren: IExpectedChild[];
     predefinedProps?: Record<string, any>;
     isCollectionItem?: boolean;
 }
@@ -42,6 +44,12 @@ interface IPropTyping {
     acceptableValues?: string[];
 }
 
+interface IExpectedChild {
+    componentName: string;
+    optionName: string;
+    isCollectionItem: boolean;
+}
+
 interface IRenderedPropTyping {
     propName: string;
     renderedTypes: string[];
@@ -112,6 +120,7 @@ function generate(component: IComponent): string {
                     renderedTemplateProps: nestedTemplates && nestedTemplates.map(renderTemplateOption),
                     isCollectionItem: c.isCollectionItem,
                     predefinedProps,
+                    expectedChildren: c.expectedChildren,
                     owners: c.owners
                 };
             })
@@ -179,6 +188,7 @@ function generate(component: IComponent): string {
                 })
             ),
             renderedPropTypings,
+            expectedChildren: component.expectedChildren
         }),
 
         renderedNestedComponents: nestedComponents && nestedComponents.map(renderNestedComponent),
@@ -304,6 +314,7 @@ const renderComponent: (model: {
     className: string;
     widgetName: string;
     optionsName: string;
+    expectedChildren: IExpectedChild[];
     renderedDefaultProps: string[];
     renderedTemplateProps: string[];
     renderedPropTypings: string[];
@@ -314,11 +325,25 @@ const renderComponent: (model: {
     return this._instance;
   }
 
-  protected _WidgetClass = <#= it.widgetName #>;
-<#? it.renderedDefaultProps #>
-  protected _defaults = {<#= it.renderedDefaultProps.join(',') #>
-  };
-<#?#><#? it.renderedTemplateProps #>
+  protected _WidgetClass = <#= it.widgetName #>;\n` +
+
+`<#? it.renderedDefaultProps #>` +
+L1 + `protected _defaults = {<#= it.renderedDefaultProps.join(',') #>` +
+L1 +  `};\n` +
+`<#?#>` +
+
+`<#? it.expectedChildren #>` +
+L1 + `protected _expectedChildren = {` +
+
+`<#~ it.expectedChildren : child #>` +
+L2 + `<#= child.componentName #>:` +
+    ` { optionName: "<#= child.optionName #>", isCollectionItem: <#= !!child.isCollectionItem #> },` +
+`<#~#>` + `\b` +
+
+L1 +  `};\n` +
+`<#?#>` +
+
+`<#? it.renderedTemplateProps #>
   protected _templateProps = [<#= it.renderedTemplateProps.join(', ') #>];
 <#?#>}` + `\n` +
 
@@ -337,6 +362,7 @@ const renderNestedComponent: (model: {
         name: string;
         value: any;
     }>;
+    expectedChildren: IExpectedChild[];
     renderedType: string;
     renderedSubscribableOptions: string[];
     renderedTemplateProps: string[];
@@ -359,6 +385,17 @@ L1 + `public static OptionName = "<#= it.optionName #>";` +
     L1 + `};` +
 `<#?#>` +
 
+`<#? it.expectedChildren #>` +
+    L1 + `public static ExpectedChildren = {` +
+
+    `<#~ it.expectedChildren : child #>` +
+    L2 + `<#= child.componentName #>:` +
+        ` { optionName: "<#= child.optionName #>", isCollectionItem: <#= !!child.isCollectionItem #> },` +
+    `<#~#>` + `\b` +
+
+    L1 +  `};` +
+`<#?#>` +
+
 `<#? it.renderedTemplateProps #>` +
     L1 + `public static TemplateProps = [<#= it.renderedTemplateProps.join(', ') #>];` +
 `<#?#>` +
diff --git a/tools/src/generator.ts b/tools/src/generator.ts
index 820c28e..5df8cd1 100644
--- a/tools/src/generator.ts
+++ b/tools/src/generator.ts
@@ -107,6 +107,7 @@ function mapWidget(
       templates: raw.templates,
       subscribableOptions: subscribableOptions.length > 0 ? subscribableOptions : null,
       nestedComponents: nestedOptions && nestedOptions.length > 0 ? nestedOptions : null,
+      expectedChildren: raw.nesteds,
       propTypings: propTypings.length > 0 ? propTypings : null
     }
   };
@@ -127,7 +128,8 @@ function extractNestedComponents(props: IComplexProp[], rawWidgetName: string, w
       options: p.props.map(mapOption),
       isCollectionItem: p.isCollectionItem,
       templates: p.templates,
-      predefinedProps: p.predefinedProps
+      predefinedProps: p.predefinedProps,
+      expectedChildren: p.nesteds
     };
   });
 }


Test patch:
diff --git a/src/core/__tests__/nested-option.test.tsx b/src/core/__tests__/nested-option.test.tsx
index 0a23577..f6f84a7 100644
--- a/src/core/__tests__/nested-option.test.tsx
+++ b/src/core/__tests__/nested-option.test.tsx
@@ -1,3 +1,4 @@
+import { Component } from "../../core/component";
 import ConfigurationComponent from "../../core/nested-option";
 import { mount, React, shallow } from "./setup";
 import { TestComponent, Widget, WidgetClass } from "./test-component";
@@ -52,8 +53,6 @@ class CollectionSubNestedComponent extends ConfigurationComponent<{ c?: number,
     public static OptionName = "subItemsOptions";
 }
 
-// tslint:enable:max-classes-per-file
-
 describe("nested option", () => {
 
     it("is pulled", () => {
@@ -140,6 +139,40 @@ describe("nested option", () => {
         });
     });
 
+    it("is pulled according to expectations", () => {
+
+        class TestComponentWithExpectation<P = any> extends Component<P> {
+
+            protected _expectedChildren = {
+                option: {
+                    optionName: "expectedItemOptions",
+                    isCollectionItem: true
+                },
+                itemOptions: {
+                    optionName: "expectedOption",
+                    isCollectionItem: false
+                }
+            };
+
+            protected _WidgetClass = WidgetClass;
+        }
+
+        mount(
+            <TestComponentWithExpectation>
+                <NestedComponent a={123} />
+                <CollectionNestedComponent c={456} d="abc" />
+            </TestComponentWithExpectation>
+        );
+
+        expect(WidgetClass.mock.calls[0][1]).toEqual({
+            templatesRenderAsynchronously: true,
+            expectedItemOptions: [
+                { a: 123 }
+            ],
+            expectedOption: { c: 456, d: "abc" }
+        });
+    });
+
     it("is pulled with predefined props", () => {
         mount(
             <TestComponent>
@@ -371,4 +404,41 @@ describe("nested sub-option", () => {
         expect(Widget.option.mock.calls.length).toBe(1);
         expect(Widget.option.mock.calls[0]).toEqual(["option.subOption.d", "def"]);
     });
+
+    it("is pulled according to expectations", () => {
+
+        class NestedComponentWithExpectations extends ConfigurationComponent<{ a: number }> {
+            public static OptionName = "option";
+            public static ExpectedChildren = {
+                subOption: {
+                    optionName: "expectedSubItemOptions",
+                    isCollectionItem: true
+                },
+                subItemsOptions: {
+                    optionName: "expectedSubOption",
+                    isCollectionItem: false
+                }
+            };
+        }
+
+        mount(
+            <TestComponent>
+                <NestedComponentWithExpectations a={123}>
+                    <SubNestedComponent d={"abc"} />
+                    <CollectionSubNestedComponent c={456} d={"def"} />
+                </NestedComponentWithExpectations>
+            </TestComponent>
+        );
+
+        expect(WidgetClass.mock.calls[0][1]).toEqual({
+            templatesRenderAsynchronously: true,
+            option: {
+                a: 123,
+                expectedSubItemOptions: [
+                    { d: "abc" }
+                ],
+                expectedSubOption: { c: 456, d: "def" }
+            }
+        });
+    });
 });
diff --git a/tools/src/component-generator.test.ts b/tools/src/component-generator.test.ts
index f9df62d..53f620b 100644
--- a/tools/src/component-generator.test.ts
+++ b/tools/src/component-generator.test.ts
@@ -33,7 +33,8 @@ export {
             name: "CLASS_NAME",
             baseComponentPath: "BASE_COMPONENT_PATH",
             configComponentPath: null,
-            dxExportPath: "DX/WIDGET/PATH"
+            dxExportPath: "DX/WIDGET/PATH",
+            expectedChildren: undefined
         })
     ).toBe(EXPECTED);
 });
@@ -69,7 +70,8 @@ export {
             baseComponentPath: "BASE_COMPONENT_PATH",
             configComponentPath: null,
             dxExportPath: "DX/WIDGET/PATH",
-            isExtension: true
+            isExtension: true,
+            expectedChildren: undefined
         })
     ).toBe(EXPECTED);
 });
@@ -118,7 +120,8 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: null,
                 dxExportPath: "DX/WIDGET/PATH",
-                templates: ["optionTemplate"]
+                templates: ["optionTemplate"],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -171,7 +174,8 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: null,
                 dxExportPath: "DX/WIDGET/PATH",
-                templates: ["optionTemplate", "anotherOptionTemplate"]
+                templates: ["optionTemplate", "anotherOptionTemplate"],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -218,7 +222,8 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: null,
                 dxExportPath: "DX/WIDGET/PATH",
-                templates: ["template"]
+                templates: ["template"],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -267,7 +272,8 @@ export {
                 dxExportPath: "DX/WIDGET/PATH",
                 subscribableOptions: [
                     { name: "option1", type: "someType" }
-                ]
+                ],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -316,7 +322,8 @@ export {
                 subscribableOptions: [
                     { name: "option1", type: "someType" },
                     { name: "option2", type: "anotherType" }
-                ]
+                ],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -385,6 +392,7 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: "CONFIG_COMPONENT_PATH",
                 dxExportPath: "DX/WIDGET/PATH",
+                expectedChildren: undefined,
                 nestedComponents: [
                     {
                         className: "Opt_1_Component",
@@ -414,7 +422,8 @@ export {
                                     }
                                 ]
                             }
-                        ]
+                        ],
+                        expectedChildren: undefined,
                     },
                     {
                         className: "Opt_6_SubComponent",
@@ -426,7 +435,8 @@ export {
                                 name: "sub_sub_sub_opt_8",
                                 type: "TYPE_4"
                             }
-                        ]
+                        ],
+                        expectedChildren: undefined,
                     }
                 ]
             })
@@ -480,6 +490,7 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: "CONFIG_COMPONENT_PATH",
                 dxExportPath: "DX/WIDGET/PATH",
+                expectedChildren: undefined,
                 nestedComponents: [
                     {
                         className: "Opt_1_Component",
@@ -492,8 +503,9 @@ export {
                                 name: "sub_opt_2",
                                 type: "TYPE_1"
                             }
-                        ]
-                    }
+                        ],
+                        expectedChildren: undefined
+                    },
                 ]
             })
         ).toBe(EXPECTED);
@@ -553,6 +565,7 @@ export {
                 configComponentPath: "CONFIG_COMPONENT_PATH",
                 dxExportPath: "DX/WIDGET/PATH",
                 templates: null,
+                expectedChildren: undefined,
                 nestedComponents: [
                     {
                         className: "Opt_1_Component",
@@ -575,7 +588,8 @@ export {
                                     }
                                 ]
                             }
-                        ]
+                        ],
+                        expectedChildren: undefined,
                     }
                 ]
             })
@@ -636,6 +650,7 @@ export {
                 configComponentPath: "CONFIG_COMPONENT_PATH",
                 dxExportPath: "DX/WIDGET/PATH",
                 templates: null,
+                expectedChildren: undefined,
                 nestedComponents: [
                     {
                         className: "Opt_1_Component",
@@ -647,7 +662,8 @@ export {
                                 name: "optionTemplate",
                                 type: "TYPE_1"
                             }
-                        ]
+                        ],
+                        expectedChildren: undefined,
                     }
                 ]
             })
@@ -704,6 +720,7 @@ export {
                 baseComponentPath: "BASE_COMPONENT_PATH",
                 configComponentPath: "CONFIG_COMPONENT_PATH",
                 dxExportPath: "DX/WIDGET/PATH",
+                expectedChildren: undefined,
                 nestedComponents: [
                     {
                         className: "Opt_1_Component",
@@ -719,7 +736,8 @@ export {
                                 name: "sub_opt_2",
                                 type: "TYPE_1"
                             }
-                        ]
+                        ],
+                        expectedChildren: undefined,
                     }
                 ]
             })
@@ -772,7 +790,8 @@ export {
                         propName: "PROP1",
                         types: ["SOME_TYPE"]
                     }
-                ]
+                ],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -824,7 +843,8 @@ export {
                         types: [],
                         acceptableValues: ["\"VALUE_1\"", "\"VALUE_2\""],
                     }
-                ]
+                ],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -875,7 +895,8 @@ export {
                         propName: "PROP1",
                         types: ["SOME_TYPE", "ANOTHER_TYPE"]
                     }
-                ]
+                ],
+                expectedChildren: undefined
             })
         ).toBe(EXPECTED);
     });
@@ -941,8 +962,135 @@ export {
                         propName: "B-PROP",
                         types: ["TYPE_4"]
                     }
+                ],
+                expectedChildren: undefined
+            })
+        ).toBe(EXPECTED);
+    });
+});
+
+describe("child expectation", () => {
+
+    it("is rendered for widget", () => {
+    //#region EXPECTED
+    const EXPECTED = `
+import dxCLASS_NAME, {
+    IOptions
+} from "devextreme/DX/WIDGET/PATH";
+
+import { Component as BaseComponent, IHtmlOptions } from "BASE_COMPONENT_PATH";
+
+interface ICLASS_NAMEOptions extends IOptions, IHtmlOptions {
+}
+
+class CLASS_NAME extends BaseComponent<ICLASS_NAMEOptions> {
+
+  public get instance(): dxCLASS_NAME {
+    return this._instance;
+  }
+
+  protected _WidgetClass = dxCLASS_NAME;
+
+  protected _expectedChildren = {
+    expectedOption1: { optionName: "expectedName1", isCollectionItem: true },
+    expectedOption2: { optionName: "expectedName2", isCollectionItem: false }
+  };
+}
+export default CLASS_NAME;
+export {
+  CLASS_NAME,
+  ICLASS_NAMEOptions
+};
+`.trimLeft();
+    //#endregion
+
+    expect(
+        generate({
+            name: "CLASS_NAME",
+            baseComponentPath: "BASE_COMPONENT_PATH",
+            configComponentPath: null,
+            dxExportPath: "DX/WIDGET/PATH",
+            expectedChildren: [
+                { componentName: "expectedOption1", optionName: "expectedName1", isCollectionItem: true },
+                { componentName: "expectedOption2", optionName: "expectedName2", isCollectionItem: undefined },
+            ]
+        })
+    ).toBe(EXPECTED);
+    });
+
+    it("is rendered for nested option", () => {
+        //#region EXPECTED
+        const EXPECTED = `
+import dxCLASS_NAME, {
+    IOptions
+} from "devextreme/DX/WIDGET/PATH";
+
+import { Component as BaseComponent, IHtmlOptions } from "BASE_COMPONENT_PATH";
+import NestedOption from "CONFIG_COMPONENT_PATH";
+
+interface ICLASS_NAMEOptions extends IOptions, IHtmlOptions {
+}
+
+class CLASS_NAME extends BaseComponent<ICLASS_NAMEOptions> {
+
+  public get instance(): dxCLASS_NAME {
+    return this._instance;
+  }
+
+  protected _WidgetClass = dxCLASS_NAME;
+}
+// tslint:disable:max-classes-per-file
+
+// owners:
+// CLASS_NAME
+class Opt_1_Component extends NestedOption<{
+}> {
+  public static OptionName = "opt_1";
+  public static ExpectedChildren = {
+    expectedOption1: { optionName: "expectedName1", isCollectionItem: true },
+    expectedOption2: { optionName: "expectedName2", isCollectionItem: false }
+  };
+}
+
+export default CLASS_NAME;
+export {
+  CLASS_NAME,
+  ICLASS_NAMEOptions,
+  Opt_1_Component
+};
+`.trimLeft();
+        //#endregion
+
+        expect(
+            generate({
+                name: "CLASS_NAME",
+                baseComponentPath: "BASE_COMPONENT_PATH",
+                configComponentPath: "CONFIG_COMPONENT_PATH",
+                dxExportPath: "DX/WIDGET/PATH",
+                expectedChildren: undefined,
+                nestedComponents: [
+                    {
+                        className: "Opt_1_Component",
+                        owners: [ "CLASS_NAME" ],
+                        optionName: "opt_1",
+                        templates: null,
+                        options: [],
+                        expectedChildren: [
+                            {
+                                componentName: "expectedOption1",
+                                optionName: "expectedName1",
+                                isCollectionItem: true
+                            },
+                            {
+                                componentName: "expectedOption2",
+                                optionName: "expectedName2",
+                                isCollectionItem: undefined
+                            },
+                        ]
+                    }
                 ]
             })
         ).toBe(EXPECTED);
     });
+
 });