Repository: DevExpress/devextreme-react
Pull request #262 (2018-12-13 10:29:13)

Update integration-data (collection items)


Patch:
diff --git a/example/form-example.tsx b/example/form-example.tsx
index 5c1df61..99e0ac3 100644
--- a/example/form-example.tsx
+++ b/example/form-example.tsx
@@ -1,7 +1,6 @@
 import * as React from "react";
 import Example from "./example-block";
 
-import { Template } from "../src/core/template";
 import Form, { RequiredRule, SimpleItem, } from "../src/form";
 import TextArea from "../src/text-area";
 
@@ -58,9 +57,10 @@ export default class extends React.Component<any, {}> {
                     </SimpleItem>
                     <SimpleItem
                         dataField={"Notes"}
-                        component={TextArea}
                         colSpan={2}
-                    />
+                    >
+                        <TextArea/>
+                    </SimpleItem>
                     <SimpleItem dataField={"Address"} />
                     <SimpleItem
                         dataField={"Phone"}
diff --git a/src/core/component-base.ts b/src/core/component-base.ts
index 3a852fc..6327f6d 100644
--- a/src/core/component-base.ts
+++ b/src/core/component-base.ts
@@ -172,6 +172,7 @@ abstract class ComponentBase<P extends IHtmlOptions> extends React.PureComponent
     const separatedProps = separateProps(rawProps, this._defaults, this._templateProps);
 
     this._templateHost.add({
+      useChildren: () => false,
       ownerName: "",
       templateProps: this._templateProps,
       props: separatedProps.templates,
diff --git a/src/core/options-manager.ts b/src/core/options-manager.ts
index ac2dd56..d098fd1 100644
--- a/src/core/options-manager.ts
+++ b/src/core/options-manager.ts
@@ -182,6 +182,7 @@ class OptionsManager {
                     configComponent.templates);
 
                 this._templateHost.add({
+                    useChildren: (optionName) => optionName === "template" && !!e.element.props.children,
                     props: props.templates,
                     templateProps: configComponent.templates,
                     ownerName: `${configComponent.optionName}${configComponent.isCollectionItem ? `[${index}]` : ""}`,
diff --git a/src/core/template-host.ts b/src/core/template-host.ts
index e2cc35b..41cf199 100644
--- a/src/core/template-host.ts
+++ b/src/core/template-host.ts
@@ -20,20 +20,20 @@ interface IDxTemplate {
     render: (data: IDxTemplateData) => any;
 }
 
-interface ITemplateDescr {
-    name: string;
-    propName: string;
-    isComponent: boolean;
-    propsGetter: PropsGetter;
-}
-
 interface IIntegrationDescr {
     props: Record<string, any>;
     templateProps: ITemplateMeta[];
     ownerName: string;
     propsGetter: PropsGetter;
+    useChildren: (name: string) => boolean;
 }
 
+const contentCreators = {
+    component: (name: string, propsGetter: PropsGetter) => React.createElement.bind(null, propsGetter(name)),
+    render: (name: string, propsGetter: PropsGetter) => propsGetter(name),
+    children: (_: string, propsGetter: PropsGetter) => () => propsGetter("children")
+};
+
 class TemplateHost {
     private readonly _stateUpdater: StateUpdater;
 
@@ -58,19 +58,32 @@ class TemplateHost {
         const ownerName = meta.ownerName;
 
         for (const tmpl of templateProps) {
-            if (!props[tmpl.component] && !props[tmpl.render]) {
+            let contentCreator;
+            let propName;
+
+            if (meta.useChildren(tmpl.tmplOption)) {
+                contentCreator = contentCreators.children;
+            }
+
+            if (props[tmpl.render]) {
+                propName = tmpl.render;
+                contentCreator = contentCreators.render;
+            }
+
+            if (props[tmpl.component]) {
+                propName = tmpl.component;
+                contentCreator = contentCreators.component;
+            }
+
+            if (!contentCreator) {
                 continue;
             }
-            const name = ownerName ? `${ownerName}.${tmpl.tmplOption}` : tmpl.tmplOption;
 
-            const templateDescr: ITemplateDescr = {
-                name,
-                propName: props[tmpl.component] ? tmpl.component : tmpl.render,
-                isComponent: !!props[tmpl.component],
-                propsGetter: meta.propsGetter
-            };
+            contentCreator = contentCreator.bind(this, propName, meta.propsGetter);
+
+            const name = ownerName ? `${ownerName}.${tmpl.tmplOption}` : tmpl.tmplOption;
             stubs[name] = name;
-            templates[name] = wrapTemplate(templateDescr, this._stateUpdater);
+            templates[name] = wrapTemplate(contentCreator, this._stateUpdater);
         }
 
         this._templates = {
@@ -89,18 +102,14 @@ class TemplateHost {
         this._nestedTemplateProps[name] = {
             component: props.component,
             render: props.render,
-            children: () => props.children
+            children: props.children
         };
-        const propsGetter = (prop) => this._nestedTemplateProps[name][prop];
 
-        const templateDescr: ITemplateDescr = {
-            name,
-            propName: !!props.component ? "component" : !!props.render ? "render" : "children",
-            isComponent: !!props.component,
-            propsGetter
-        };
+        const type = !!props.component ? "component" : !!props.render ? "render" : "children";
+        const propsGetter: PropsGetter = (prop) => this._nestedTemplateProps[name][prop];
 
-        this._templates[name] = wrapTemplate(templateDescr, this._stateUpdater);
+        const contentCreator = contentCreators[type].bind(this, type, propsGetter);
+        this._templates[name] = wrapTemplate(contentCreator, this._stateUpdater);
     }
 
     public get options(): Record<string, any> | undefined {
@@ -117,22 +126,17 @@ class TemplateHost {
     }
 }
 
-function wrapTemplate(templateDescr: ITemplateDescr, stateUpdater: StateUpdater): IDxTemplate {
+function wrapTemplate(createContentProvider: () => (model: any) => any, stateUpdater: StateUpdater): IDxTemplate {
     return {
         render: (data: IDxTemplateData) => {
             const templateId = "__template_" + generateID();
             const container = unwrapElement(data.container);
             const createWrapper = () => {
-                const propsGetter = templateDescr.propsGetter;
-
-                const contentProvider = templateDescr.isComponent
-                    ? React.createElement.bind(null, propsGetter(templateDescr.propName))
-                    : propsGetter(templateDescr.propName);
-
                 const model = data.model;
                 if (model && model.hasOwnProperty("key")) {
                     model.dxkey = model.key;
                 }
+                const contentProvider = createContentProvider();
                 return React.createElement<ITemplateWrapperProps>(TemplateWrapper, {
                     content: contentProvider(model),
                     container,
diff --git a/tools/integration-data.json b/tools/integration-data.json
index 9a94bfc..db61669 100644
--- a/tools/integration-data.json
+++ b/tools/integration-data.json
@@ -51,7 +51,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -153,6 +153,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxAccordionItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -1089,6 +1093,92 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxAccordion"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "icon",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "title",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -1113,7 +1203,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -1199,6 +1289,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxActionSheetItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -1943,6 +2037,168 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxActionSheet"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "icon",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "onClick",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [
+                    {
+                      "name": "e",
+                      "types": [
+                        {
+                          "type": "Object",
+                          "fields": [
+                            {
+                              "name": "component",
+                              "types": [
+                                {
+                                  "type": "dxActionSheet",
+                                  "isCustomType": true
+                                }
+                              ]
+                            },
+                            {
+                              "name": "element",
+                              "types": [
+                                {
+                                  "type": "dxElement",
+                                  "isCustomType": true
+                                }
+                              ]
+                            },
+                            {
+                              "name": "model",
+                              "types": [
+                                {
+                                  "type": "Object"
+                                }
+                              ]
+                            },
+                            {
+                              "name": "jQueryEvent",
+                              "types": [
+                                {
+                                  "type": "Any"
+                                }
+                              ]
+                            },
+                            {
+                              "name": "event",
+                              "types": [
+                                {
+                                  "type": "event",
+                                  "isCustomType": true
+                                }
+                              ]
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ],
+                  "returnValueType": {
+                    "type": "void"
+                  }
+                },
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "type",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"back\"",
+                    "\"danger\"",
+                    "\"default\"",
+                    "\"normal\"",
+                    "\"success\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -1977,7 +2233,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -2193,7 +2453,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -3759,6 +4023,69 @@
           ]
         }
       ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxAutocomplete"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -6431,7 +6758,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -6521,6 +6848,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxBoxItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -7161,6 +7492,115 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxBox"
+          ],
+          "props": [
+            {
+              "name": "baseSize",
+              "types": [
+                {
+                  "type": "Number"
+                },
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"auto\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "box",
+              "types": [
+                {
+                  "type": "dxBox.Options",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "ratio",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "shrink",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -35052,7 +35492,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -35169,7 +35609,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxContextMenuItemTemplate",
+                  "type": "dxContextMenuItem",
                   "isCustomType": true
                 }
               ]
@@ -36649,7 +37089,7 @@
                   "type": "Array",
                   "itemTypes": [
                     {
-                      "type": "dxContextMenuItemTemplate",
+                      "type": "dxContextMenuItem",
                       "isCustomType": true
                     }
                   ]
@@ -59947,7 +60387,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -60163,7 +60607,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -62985,6 +63433,60 @@
             }
           ]
         },
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxDropDownBox"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        },
         {
           "name": "my",
           "optionName": "my",
@@ -63462,6 +63964,11 @@
         {
           "componentName": "dropDownOptions",
           "optionName": "dropDownOptions"
+        },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
         }
       ],
       "isEditor": true
@@ -68293,9 +68800,58 @@
           "name": "item",
           "optionName": "items",
           "owners": [
+            "tabPanelOptions",
             "DxForm"
           ],
           "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
             {
               "name": "colSpan",
               "types": [
@@ -68401,75 +68957,6 @@
                 }
               ]
             },
-            {
-              "name": "template",
-              "types": [
-                {
-                  "type": "Function",
-                  "params": [
-                    {
-                      "name": "data",
-                      "types": [
-                        {
-                          "type": "Object",
-                          "fields": [
-                            {
-                              "name": "component",
-                              "types": [
-                                {
-                                  "type": "dxForm",
-                                  "isCustomType": true
-                                }
-                              ]
-                            },
-                            {
-                              "name": "dataField",
-                              "types": [
-                                {
-                                  "type": "String"
-                                }
-                              ]
-                            },
-                            {
-                              "name": "editorOptions",
-                              "types": [
-                                {
-                                  "type": "Object"
-                                }
-                              ]
-                            },
-                            {
-                              "name": "editorType",
-                              "types": [
-                                {
-                                  "type": "String"
-                                }
-                              ]
-                            }
-                          ]
-                        }
-                      ]
-                    },
-                    {
-                      "name": "itemElement",
-                      "types": [
-                        {
-                          "type": "dxElement",
-                          "isCustomType": true
-                        }
-                      ]
-                    }
-                  ],
-                  "returnValueType": {
-                    "type": "String"
-                  }
-                },
-                {
-                  "type": "template",
-                  "isCustomType": true
-                }
-              ]
-            },
             {
               "name": "validationRules",
               "types": [
@@ -68512,14 +68999,6 @@
                 }
               ]
             },
-            {
-              "name": "visible",
-              "types": [
-                {
-                  "type": "Boolean"
-                }
-              ]
-            },
             {
               "name": "visibleIndex",
               "types": [
@@ -68664,10 +69143,7 @@
           "isCollectionItem": true,
           "templates": [
             "template"
-          ],
-          "predefinedProps": {
-            "itemType": "simple"
-          }
+          ]
         },
         {
           "name": "label",
@@ -69592,6 +70068,18 @@
           "owners": [
             "TabbedItem"
           ],
+          "nesteds": [
+            {
+              "componentName": "item",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "tabPanelOptionsItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -69632,7 +70120,7 @@
                   "type": "Array",
                   "itemTypes": [
                     {
-                      "type": "CollectionWidgetItemTemplate",
+                      "type": "CollectionWidgetItem",
                       "isCustomType": true
                     },
                     {
@@ -69743,6 +70231,10 @@
                 {
                   "type": "Array",
                   "itemTypes": [
+                    {
+                      "type": "dxMultiViewItem",
+                      "isCustomType": true
+                    },
                     {
                       "type": "Object"
                     },
@@ -71252,6 +71744,67 @@
             "itemTitleTemplate"
           ]
         },
+        {
+          "name": "tabPanelOptionsItem",
+          "optionName": "items",
+          "owners": [
+            "tabPanelOptions"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        },
         {
           "name": "validationRule",
           "optionName": "validationRules",
@@ -76300,7 +76853,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -76410,6 +76963,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxGalleryItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -77207,6 +77764,92 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxGallery"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "imageAlt",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "imageSrc",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -82286,7 +82929,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -82454,6 +83097,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxListItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -84223,6 +84870,99 @@
         }
       ],
       "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxList"
+          ],
+          "props": [
+            {
+              "name": "badge",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "icon",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "key",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "showChevron",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        },
         {
           "name": "menuItem",
           "optionName": "menuItems",
@@ -85619,6 +86359,11 @@
         }
       ],
       "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
         {
           "componentName": "menuItem",
           "isCollectionItem": true,
@@ -87455,7 +88200,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -87676,7 +88425,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -89111,127 +89864,181 @@
               ]
             },
             {
-              "name": "delay",
+              "name": "delay",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "direction",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"bottom\"",
+                    "\"left\"",
+                    "\"right\"",
+                    "\"top\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "duration",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "easing",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "from",
+              "types": [
+                {
+                  "type": "Number"
+                },
+                {
+                  "type": "Object"
+                },
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "staggerDelay",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "start",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [
+                    {
+                      "name": "$element",
+                      "types": [
+                        {
+                          "type": "dxElement",
+                          "isCustomType": true
+                        }
+                      ]
+                    },
+                    {
+                      "name": "config",
+                      "types": [
+                        {
+                          "type": "Object"
+                        }
+                      ]
+                    }
+                  ],
+                  "returnValueType": {
+                    "type": "void"
+                  }
+                }
+              ]
+            },
+            {
+              "name": "to",
               "types": [
                 {
                   "type": "Number"
+                },
+                {
+                  "type": "Object"
+                },
+                {
+                  "type": "String"
                 }
               ]
             },
             {
-              "name": "direction",
+              "name": "type",
               "types": [
                 {
                   "type": "String",
                   "acceptableValues": [
-                    "\"bottom\"",
-                    "\"left\"",
-                    "\"right\"",
-                    "\"top\""
+                    "\"css\"",
+                    "\"fade\"",
+                    "\"fadeIn\"",
+                    "\"fadeOut\"",
+                    "\"pop\"",
+                    "\"slide\"",
+                    "\"slideIn\"",
+                    "\"slideOut\""
                   ]
                 }
               ]
-            },
-            {
-              "name": "duration",
-              "types": [
-                {
-                  "type": "Number"
-                }
-              ]
-            },
+            }
+          ]
+        },
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxLookup"
+          ],
+          "props": [
             {
-              "name": "easing",
+              "name": "disabled",
               "types": [
                 {
-                  "type": "String"
+                  "type": "Boolean"
                 }
               ]
             },
             {
-              "name": "from",
+              "name": "html",
               "types": [
-                {
-                  "type": "Number"
-                },
-                {
-                  "type": "Object"
-                },
                 {
                   "type": "String"
                 }
               ]
             },
             {
-              "name": "staggerDelay",
-              "types": [
-                {
-                  "type": "Number"
-                }
-              ]
-            },
-            {
-              "name": "start",
+              "name": "template",
               "types": [
                 {
-                  "type": "Function",
-                  "params": [
-                    {
-                      "name": "$element",
-                      "types": [
-                        {
-                          "type": "dxElement",
-                          "isCustomType": true
-                        }
-                      ]
-                    },
-                    {
-                      "name": "config",
-                      "types": [
-                        {
-                          "type": "Object"
-                        }
-                      ]
-                    }
-                  ],
-                  "returnValueType": {
-                    "type": "void"
-                  }
+                  "type": "template",
+                  "isCustomType": true
                 }
               ]
             },
             {
-              "name": "to",
+              "name": "text",
               "types": [
-                {
-                  "type": "Number"
-                },
-                {
-                  "type": "Object"
-                },
                 {
                   "type": "String"
                 }
               ]
             },
             {
-              "name": "type",
+              "name": "visible",
               "types": [
                 {
-                  "type": "String",
-                  "acceptableValues": [
-                    "\"css\"",
-                    "\"fade\"",
-                    "\"fadeIn\"",
-                    "\"fadeOut\"",
-                    "\"pop\"",
-                    "\"slide\"",
-                    "\"slideIn\"",
-                    "\"slideOut\""
-                  ]
+                  "type": "Boolean"
                 }
               ]
             }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
           ]
         },
         {
@@ -89607,6 +90414,11 @@
           "componentName": "animation",
           "optionName": "animation"
         },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
         {
           "componentName": "position",
           "optionName": "position"
@@ -90901,7 +91713,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -91026,7 +91838,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxMenuItemTemplate",
+                  "type": "dxMenuItem",
                   "isCustomType": true
                 }
               ]
@@ -92383,7 +93195,7 @@
                   "type": "Array",
                   "itemTypes": [
                     {
-                      "type": "dxMenuItemTemplate",
+                      "type": "dxMenuItem",
                       "isCustomType": true
                     }
                   ]
@@ -92776,7 +93588,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -92878,6 +93690,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxMultiViewItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -93643,6 +94459,76 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxMultiView"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -93667,7 +94553,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -93761,6 +94647,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxTabsItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -94587,6 +95477,92 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxNavBar"
+          ],
+          "props": [
+            {
+              "name": "badge",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "icon",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -120097,7 +121073,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -120202,7 +121182,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -120659,6 +121643,69 @@
           ]
         }
       ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxRadioGroup"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -130748,7 +131795,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -130826,6 +131873,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxResponsiveBoxItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -131589,6 +132640,140 @@
           ],
           "isCollectionItem": true
         },
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxResponsiveBox"
+          ],
+          "nesteds": [
+            {
+              "componentName": "location",
+              "isCollectionItem": true,
+              "optionName": "location"
+            }
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "location",
+              "types": [
+                {
+                  "type": "Array",
+                  "itemTypes": [
+                    {
+                      "type": "Object"
+                    }
+                  ]
+                },
+                {
+                  "type": "Object"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        },
+        {
+          "name": "location",
+          "optionName": "location",
+          "owners": [
+            "item"
+          ],
+          "props": [
+            {
+              "name": "col",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "colspan",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "row",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "rowspan",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "screen",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true
+        },
         {
           "name": "row",
           "optionName": "rows",
@@ -131644,6 +132829,11 @@
           "isCollectionItem": true,
           "optionName": "cols"
         },
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        },
         {
           "componentName": "row",
           "isCollectionItem": true,
@@ -139532,7 +140722,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -139797,7 +140991,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -141458,6 +142656,69 @@
           ]
         }
       ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxSelectBox"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -141511,7 +142772,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -141597,6 +142858,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxSlideOutItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -142555,6 +143820,93 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxSlideOut"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "menuTemplate",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "menuTemplate",
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -145969,7 +147321,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -146071,6 +147423,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxMultiViewItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -147129,6 +148485,76 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxTabPanel"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -147153,7 +148579,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -147247,6 +148673,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxTabsItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -148089,6 +149519,92 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxTabs"
+          ],
+          "props": [
+            {
+              "name": "badge",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "icon",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -148145,7 +149661,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             },
@@ -148410,7 +149930,11 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "Any"
+                  "type": "DataExpressionMixinItem",
+                  "isCustomType": true
+                },
+                {
+                  "type": "Object"
                 }
               ]
             }
@@ -150118,6 +151642,69 @@
           ]
         }
       ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxTagBox"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
+      ],
       "isEditor": true
     },
     {
@@ -152792,7 +154379,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -152899,6 +154486,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxTileViewItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -153563,6 +155154,92 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxTileView"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "heightRatio",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "widthRatio",
+              "types": [
+                {
+                  "type": "Number"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -155022,7 +156699,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -155108,6 +156785,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxToolbarItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -155810,6 +157491,157 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxToolbar"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "locateInMenu",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"always\"",
+                    "\"auto\"",
+                    "\"never\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "location",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"after\"",
+                    "\"before\"",
+                    "\"center\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "menuItemTemplate",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "options",
+              "types": [
+                {
+                  "type": "Object"
+                }
+              ]
+            },
+            {
+              "name": "showText",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"always\"",
+                    "\"inMenu\""
+                  ]
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "widget",
+              "types": [
+                {
+                  "type": "String",
+                  "acceptableValues": [
+                    "\"dxAutocomplete\"",
+                    "\"dxButton\"",
+                    "\"dxCheckBox\"",
+                    "\"dxDateBox\"",
+                    "\"dxMenu\"",
+                    "\"dxSelectBox\"",
+                    "\"dxTabs\"",
+                    "\"dxTextBox\""
+                  ]
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "menuItemTemplate",
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -170884,9 +172716,58 @@
           "name": "item",
           "optionName": "items",
           "owners": [
+            "tabPanelOptions",
             "form"
           ],
           "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
             {
               "name": "colSpan",
               "types": [
@@ -170992,75 +172873,6 @@
                 }
               ]
             },
-            {
-              "name": "template",
-              "types": [
-                {
-                  "type": "Function",
-                  "params": [
-                    {
-                      "name": "data",
-                      "types": [
-                        {
-                          "type": "Object",
-                          "fields": [
-                            {
-                              "name": "component",
-                              "types": [
-                                {
-                                  "type": "dxForm",
-                                  "isCustomType": true
-                                }
-                              ]
-                            },
-                            {
-                              "name": "dataField",
-                              "types": [
-                                {
-                                  "type": "String"
-                                }
-                              ]
-                            },
-                            {
-                              "name": "editorOptions",
-                              "types": [
-                                {
-                                  "type": "Object"
-                                }
-                              ]
-                            },
-                            {
-                              "name": "editorType",
-                              "types": [
-                                {
-                                  "type": "String"
-                                }
-                              ]
-                            }
-                          ]
-                        }
-                      ]
-                    },
-                    {
-                      "name": "itemElement",
-                      "types": [
-                        {
-                          "type": "dxElement",
-                          "isCustomType": true
-                        }
-                      ]
-                    }
-                  ],
-                  "returnValueType": {
-                    "type": "String"
-                  }
-                },
-                {
-                  "type": "template",
-                  "isCustomType": true
-                }
-              ]
-            },
             {
               "name": "validationRules",
               "types": [
@@ -171103,14 +172915,6 @@
                 }
               ]
             },
-            {
-              "name": "visible",
-              "types": [
-                {
-                  "type": "Boolean"
-                }
-              ]
-            },
             {
               "name": "visibleIndex",
               "types": [
@@ -171255,10 +173059,7 @@
           "isCollectionItem": true,
           "templates": [
             "template"
-          ],
-          "predefinedProps": {
-            "itemType": "simple"
-          }
+          ]
         },
         {
           "name": "label",
@@ -174521,6 +176322,18 @@
           "owners": [
             "TabbedItem"
           ],
+          "nesteds": [
+            {
+              "componentName": "item",
+              "isCollectionItem": true,
+              "optionName": "items"
+            },
+            {
+              "componentName": "tabPanelOptionsItem",
+              "isCollectionItem": true,
+              "optionName": "items"
+            }
+          ],
           "props": [
             {
               "name": "accessKey",
@@ -174561,7 +176374,7 @@
                   "type": "Array",
                   "itemTypes": [
                     {
-                      "type": "CollectionWidgetItemTemplate",
+                      "type": "CollectionWidgetItem",
                       "isCustomType": true
                     },
                     {
@@ -174672,6 +176485,10 @@
                 {
                   "type": "Array",
                   "itemTypes": [
+                    {
+                      "type": "dxMultiViewItem",
+                      "isCustomType": true
+                    },
                     {
                       "type": "Object"
                     },
@@ -176181,6 +177998,67 @@
             "itemTitleTemplate"
           ]
         },
+        {
+          "name": "tabPanelOptionsItem",
+          "optionName": "items",
+          "owners": [
+            "tabPanelOptions"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        },
         {
           "name": "texts",
           "optionName": "texts",
@@ -180631,7 +182509,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -180826,7 +182704,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxTreeViewItemTemplate",
+                  "type": "dxTreeViewItem",
                   "isCustomType": true
                 }
               ]
@@ -182153,7 +184031,7 @@
                   "type": "Array",
                   "itemTypes": [
                     {
-                      "type": "dxTreeViewItemTemplate",
+                      "type": "dxTreeViewItem",
                       "isCustomType": true
                     }
                   ]
@@ -183819,6 +185697,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "CollectionWidgetItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -184185,6 +186067,76 @@
             }
           ]
         }
+      ],
+      "complexOptions": [
+        {
+          "name": "item",
+          "optionName": "items",
+          "owners": [
+            "DxValidationSummary"
+          ],
+          "props": [
+            {
+              "name": "disabled",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            },
+            {
+              "name": "html",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "template",
+              "types": [
+                {
+                  "type": "Function",
+                  "params": [],
+                  "returnValueType": {
+                    "type": "String"
+                  }
+                },
+                {
+                  "type": "template",
+                  "isCustomType": true
+                }
+              ]
+            },
+            {
+              "name": "text",
+              "types": [
+                {
+                  "type": "String"
+                }
+              ]
+            },
+            {
+              "name": "visible",
+              "types": [
+                {
+                  "type": "Boolean"
+                }
+              ]
+            }
+          ],
+          "isCollectionItem": true,
+          "templates": [
+            "template"
+          ]
+        }
+      ],
+      "nesteds": [
+        {
+          "componentName": "item",
+          "isCollectionItem": true,
+          "optionName": "items"
+        }
       ]
     },
     {
@@ -191777,7 +193729,7 @@
       ]
     },
     {
-      "name": "CollectionWidgetItemTemplate",
+      "name": "CollectionWidgetItem",
       "props": [
         {
           "name": "disabled",
@@ -192845,6 +194797,60 @@
         }
       ]
     },
+    {
+      "name": "DataExpressionMixinItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "DataSource",
       "props": [
@@ -195310,6 +197316,220 @@
         }
       ]
     },
+    {
+      "name": "dxAccordionItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "icon",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "title",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
+    {
+      "name": "dxActionSheetItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "icon",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "onClick",
+          "types": [
+            {
+              "type": "Function",
+              "params": [
+                {
+                  "name": "e",
+                  "types": [
+                    {
+                      "type": "Object",
+                      "fields": [
+                        {
+                          "name": "component",
+                          "types": [
+                            {
+                              "type": "dxActionSheet",
+                              "isCustomType": true
+                            }
+                          ]
+                        },
+                        {
+                          "name": "element",
+                          "types": [
+                            {
+                              "type": "dxElement",
+                              "isCustomType": true
+                            }
+                          ]
+                        },
+                        {
+                          "name": "model",
+                          "types": [
+                            {
+                              "type": "Object"
+                            }
+                          ]
+                        },
+                        {
+                          "name": "jQueryEvent",
+                          "types": [
+                            {
+                              "type": "Any"
+                            }
+                          ]
+                        },
+                        {
+                          "name": "event",
+                          "types": [
+                            {
+                              "type": "event",
+                              "isCustomType": true
+                            }
+                          ]
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "returnValueType": {
+                "type": "void"
+              }
+            },
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "type",
+          "types": [
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"back\"",
+                "\"danger\"",
+                "\"default\"",
+                "\"normal\"",
+                "\"success\""
+              ]
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxBox.Options",
       "props": [
@@ -195357,7 +197577,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -195447,6 +197667,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxBoxItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -196092,6 +198316,106 @@
         "itemTemplate"
       ]
     },
+    {
+      "name": "dxBoxItem",
+      "props": [
+        {
+          "name": "baseSize",
+          "types": [
+            {
+              "type": "Number"
+            },
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"auto\""
+              ]
+            }
+          ]
+        },
+        {
+          "name": "box",
+          "types": [
+            {
+              "type": "dxBox.Options",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "ratio",
+          "types": [
+            {
+              "type": "Number"
+            }
+          ]
+        },
+        {
+          "name": "shrink",
+          "types": [
+            {
+              "type": "Number"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxButton.Options",
       "props": [
@@ -199212,7 +201536,7 @@
       ]
     },
     {
-      "name": "dxContextMenuItemTemplate",
+      "name": "dxContextMenuItem",
       "props": [
         {
           "name": "beginGroup",
@@ -199253,7 +201577,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxContextMenuItemTemplate",
+                  "type": "dxContextMenuItem",
                   "isCustomType": true
                 }
               ]
@@ -203644,6 +205968,75 @@
         }
       ]
     },
+    {
+      "name": "dxGalleryItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "imageAlt",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "imageSrc",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxHtmlEditorToolbar",
       "props": [
@@ -203902,7 +206295,207 @@
       ]
     },
     {
-      "name": "dxMenuBaseItemTemplate",
+      "name": "dxListItem",
+      "props": [
+        {
+          "name": "badge",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "icon",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "key",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "showChevron",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
+    {
+      "name": "dxMenuBaseItem",
+      "props": [
+        {
+          "name": "beginGroup",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "closeMenuOnClick",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "icon",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "items",
+          "types": [
+            {
+              "type": "Array",
+              "itemTypes": [
+                {
+                  "type": "dxMenuBaseItem",
+                  "isCustomType": true
+                }
+              ]
+            }
+          ]
+        },
+        {
+          "name": "selectable",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "selected",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
+    {
+      "name": "dxMenuItem",
       "props": [
         {
           "name": "beginGroup",
@@ -203943,7 +206536,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxMenuBaseItemTemplate",
+                  "type": "dxMenuItem",
                   "isCustomType": true
                 }
               ]
@@ -204009,10 +206602,10 @@
       ]
     },
     {
-      "name": "dxMenuItemTemplate",
+      "name": "dxMultiViewItem",
       "props": [
         {
-          "name": "beginGroup",
+          "name": "disabled",
           "types": [
             {
               "type": "Boolean"
@@ -204020,45 +206613,52 @@
           ]
         },
         {
-          "name": "closeMenuOnClick",
+          "name": "html",
           "types": [
             {
-              "type": "Boolean"
+              "type": "String"
             }
           ]
         },
         {
-          "name": "disabled",
+          "name": "template",
           "types": [
             {
-              "type": "Boolean"
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
             }
           ]
         },
         {
-          "name": "icon",
+          "name": "text",
           "types": [
             {
               "type": "String"
             }
           ]
-        },
+        }
+      ],
+      "types": [
         {
-          "name": "items",
-          "types": [
-            {
-              "type": "Array",
-              "itemTypes": [
-                {
-                  "type": "dxMenuItemTemplate",
-                  "isCustomType": true
-                }
-              ]
-            }
-          ]
-        },
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
+    {
+      "name": "dxPanoramaItem",
+      "props": [
         {
-          "name": "selectable",
+          "name": "disabled",
           "types": [
             {
               "type": "Boolean"
@@ -204066,10 +206666,10 @@
           ]
         },
         {
-          "name": "selected",
+          "name": "html",
           "types": [
             {
-              "type": "Boolean"
+              "type": "String"
             }
           ]
         },
@@ -204098,10 +206698,10 @@
           ]
         },
         {
-          "name": "visible",
+          "name": "title",
           "types": [
             {
-              "type": "Boolean"
+              "type": "String"
             }
           ]
         }
@@ -204620,6 +207220,84 @@
         }
       ]
     },
+    {
+      "name": "dxPivotItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "title",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "titleTemplate",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template",
+        "titleTemplate"
+      ]
+    },
     {
       "name": "dxPopup.Options",
       "props": [
@@ -205774,6 +208452,83 @@
         "titleTemplate"
       ]
     },
+    {
+      "name": "dxResponsiveBoxItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "location",
+          "types": [
+            {
+              "type": "Array",
+              "itemTypes": [
+                {
+                  "type": "Object"
+                }
+              ]
+            },
+            {
+              "type": "Object"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxSankeyConnectionInfoObject",
       "props": [
@@ -207160,6 +209915,84 @@
         }
       ]
     },
+    {
+      "name": "dxSlideOutItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "menuTemplate",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "menuTemplate",
+        "template"
+      ]
+    },
     {
       "name": "dxTabPanel.Options",
       "props": [
@@ -207202,7 +210035,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -207304,6 +210137,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxMultiViewItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -208368,6 +211205,83 @@
         "itemTitleTemplate"
       ]
     },
+    {
+      "name": "dxTabsItem",
+      "props": [
+        {
+          "name": "badge",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "icon",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxTextBox.Options",
       "props": [
@@ -209710,6 +212624,83 @@
         }
       ]
     },
+    {
+      "name": "dxTileViewItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "heightRatio",
+          "types": [
+            {
+              "type": "Number"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "widthRatio",
+          "types": [
+            {
+              "type": "Number"
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "template"
+      ]
+    },
     {
       "name": "dxToolbar.Options",
       "props": [
@@ -209728,7 +212719,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "CollectionWidgetItemTemplate",
+                  "type": "CollectionWidgetItem",
                   "isCustomType": true
                 },
                 {
@@ -209814,6 +212805,10 @@
             {
               "type": "Array",
               "itemTypes": [
+                {
+                  "type": "dxToolbarItem",
+                  "isCustomType": true
+                },
                 {
                   "type": "Object"
                 },
@@ -210522,6 +213517,148 @@
         "menuItemTemplate"
       ]
     },
+    {
+      "name": "dxToolbarItem",
+      "props": [
+        {
+          "name": "disabled",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "html",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "locateInMenu",
+          "types": [
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"always\"",
+                "\"auto\"",
+                "\"never\""
+              ]
+            }
+          ]
+        },
+        {
+          "name": "location",
+          "types": [
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"after\"",
+                "\"before\"",
+                "\"center\""
+              ]
+            }
+          ]
+        },
+        {
+          "name": "menuItemTemplate",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "options",
+          "types": [
+            {
+              "type": "Object"
+            }
+          ]
+        },
+        {
+          "name": "showText",
+          "types": [
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"always\"",
+                "\"inMenu\""
+              ]
+            }
+          ]
+        },
+        {
+          "name": "template",
+          "types": [
+            {
+              "type": "Function",
+              "params": [],
+              "returnValueType": {
+                "type": "String"
+              }
+            },
+            {
+              "type": "template",
+              "isCustomType": true
+            }
+          ]
+        },
+        {
+          "name": "text",
+          "types": [
+            {
+              "type": "String"
+            }
+          ]
+        },
+        {
+          "name": "visible",
+          "types": [
+            {
+              "type": "Boolean"
+            }
+          ]
+        },
+        {
+          "name": "widget",
+          "types": [
+            {
+              "type": "String",
+              "acceptableValues": [
+                "\"dxAutocomplete\"",
+                "\"dxButton\"",
+                "\"dxCheckBox\"",
+                "\"dxDateBox\"",
+                "\"dxMenu\"",
+                "\"dxSelectBox\"",
+                "\"dxTabs\"",
+                "\"dxTextBox\""
+              ]
+            }
+          ]
+        }
+      ],
+      "types": [
+        {
+          "type": "Object"
+        }
+      ],
+      "templates": [
+        "menuItemTemplate",
+        "template"
+      ]
+    },
     {
       "name": "dxTreeListColumn",
       "props": [
@@ -212105,7 +215242,7 @@
       ]
     },
     {
-      "name": "dxTreeViewItemTemplate",
+      "name": "dxTreeViewItem",
       "props": [
         {
           "name": "disabled",
@@ -212154,7 +215291,7 @@
               "type": "Array",
               "itemTypes": [
                 {
-                  "type": "dxTreeViewItemTemplate",
+                  "type": "dxTreeViewItem",
                   "isCustomType": true
                 }
               ]


Test patch:
diff --git a/src/core/__tests__/template.test.tsx b/src/core/__tests__/template.test.tsx
index 9bab76c..0126a52 100644
--- a/src/core/__tests__/template.test.tsx
+++ b/src/core/__tests__/template.test.tsx
@@ -449,6 +449,36 @@ describe("component/render in nested options", () => {
         expect(Object.keys(integrationOptions.templates)).toEqual(["collection[0].template", "collection[1].template"]);
     });
 
+    it("pass integrationOptions for collection nested component with 'template' option if a child defined", () => {
+        const UserTemplate = () => <div>Template</div>;
+        mount(
+            <TestComponent>
+                <NestedComponent>
+                    <UserTemplate/>
+                </NestedComponent>
+                <CollectionNestedComponent>
+                    <UserTemplate/>
+                </CollectionNestedComponent>
+                <CollectionNestedComponent>
+                    <UserTemplate/>
+                </CollectionNestedComponent>
+                <CollectionNestedComponent/>
+            </TestComponent>
+        );
+
+        const options = WidgetClass.mock.calls[0][1];
+
+        expect(options["collection[0].template"]).toBe("collection[0].template");
+        expect(options["collection[1].template"]).toBe("collection[1].template");
+        expect(options["collection[2].template"]).toBe(undefined);
+        expect(options["option.item"]).toBe(undefined);
+        expect(options["option.template"]).toBe(undefined);
+
+        const integrationOptions = options.integrationOptions;
+
+        expect(Object.keys(integrationOptions.templates)).toEqual(["collection[0].template", "collection[1].template"]);
+    });
+
     it("renders templates", () => {
         const FirstTemplate = () => <div className={"template"}>First Template</div>;
         const component = mount(
@@ -467,4 +497,29 @@ describe("component/render in nested options", () => {
         component.update();
         expect(component.find(".template").html()).toBe('<div class="template">Second Template</div>');
     });
+
+    it("renders static templates", () => {
+        const FirstTemplate = () => <div className={"template"}>First Template</div>;
+        const component = mount(
+            <TestComponent>
+                <CollectionNestedComponent>
+                    <FirstTemplate/>
+                </CollectionNestedComponent>
+            </TestComponent >
+        );
+        renderTemplate("collection[0].template");
+        component.update();
+        expect(component.find(".template").html()).toBe('<div class="template">First Template</div>');
+
+        const SecondTemplate = () => <div className={"template"}>Second Template</div>;
+        component.setProps({
+            children: (
+                <CollectionNestedComponent>
+                    <SecondTemplate/>
+                </CollectionNestedComponent>
+            )
+        });
+        component.update();
+        expect(component.find(".template").html()).toBe('<div class="template">Second Template</div>');
+    });
 });