///<reference path="./lib/leaf.d.ts"/>
namespace R {

    export class ComposerEntryPage extends Leaf.GeneratedWidget<{}, {}, null>{
        constructor() {
            super(function() {
                let _e = this._e.bind(this)
                let _t = this._t.bind(this)
                return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "composer-entry-page-41424f page" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("widget", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "searcher" }] }, "data-widget": { "name": "data-widget", "templates": [{ "type": "raw", "content": "./widgetSearcher" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "previewer" }] } }, [_t({ "templates": [{ "type": "raw", "content": "    \n    " }] }), _e("widget", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "previewed-widget" }] }, "data-name": { "name": "data-name", "templates": [{ "type": "raw", "content": "widgetPreview" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "ComposerEntryPage", [])
            if (ComposerEntryPage.InitialData) {
                this.renderRecursive(ComposerEntryPage.InitialData)
            }
        }

        widgetSearcher: R.WidgetSearcher
        widgetPreview: Leaf.WidgetAny
        static TestDatas = []
        static BindedLists = []
        static BindedWidgets = [{ "path": "/widgetSearcher", "name": "widgetSearcher" }, { "path": null, "name": "widgetPreview" }]
        static path = "/composerEntryPage"
        static InitialData = null
        public TestDatas = ComposerEntryPage.TestDatas
        public BindedLists = ComposerEntryPage.BindedLists
        public BindedWidgets = ComposerEntryPage.BindedWidgets
        public InitialData = ComposerEntryPage.InitialData
        public path = ComposerEntryPage.path
        public GeneratedConstructor = ComposerEntryPage
        public R = R
    }
    (ComposerEntryPage["prototype"] as any).name = "ComposerEntryPage"

    export class RecursiveTest extends Leaf.GeneratedWidget<{}, {}, null>{
        constructor() {
            super(function() {
                let _e = this._e.bind(this)
                let _t = this._t.bind(this)
                return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "recursive-test-ebf981" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("span", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "debug" }] } }, [_t({ "templates": [{ "type": "raw", "content": "content" }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "indent" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("widget", { "data-name": { "name": "data-name", "templates": [{ "type": "raw", "content": "child" }] }, "data-widget": { "name": "data-widget", "templates": [{ "type": "raw", "content": "recursiveTest" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "RecursiveTest", [])
            if (RecursiveTest.InitialData) {
                this.renderRecursive(RecursiveTest.InitialData)
            }
        }

        child: R.RecursiveTest
        static TestDatas = []
        static BindedLists = []
        static BindedWidgets = [{ "path": "/recursiveTest", "name": "child" }]
        static path = "/recursiveTest"
        static InitialData = null
        public TestDatas = RecursiveTest.TestDatas
        public BindedLists = RecursiveTest.BindedLists
        public BindedWidgets = RecursiveTest.BindedWidgets
        public InitialData = RecursiveTest.InitialData
        public path = RecursiveTest.path
        public GeneratedConstructor = RecursiveTest
        public R = R
    }
    (RecursiveTest["prototype"] as any).name = "RecursiveTest"

    export class UseCustomInput extends Leaf.GeneratedWidget<{}, {}, null>{
        constructor() {
            super(function() {
                let _e = this._e.bind(this)
                let _t = this._t.bind(this)
                return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "use-custom-input-82ce8e" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  below is the input:\n  " }] }), _e("custom-input", {}, [_t({ "templates": [{ "type": "raw", "content": "FieldName" }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "UseCustomInput", [])
            if (UseCustomInput.InitialData) {
                this.renderRecursive(UseCustomInput.InitialData)
            }
        }

        static TestDatas = []
        static BindedLists = []
        static BindedWidgets = []
        static path = "/useCustomInput"
        static InitialData = null
        public TestDatas = UseCustomInput.TestDatas
        public BindedLists = UseCustomInput.BindedLists
        public BindedWidgets = UseCustomInput.BindedWidgets
        public InitialData = UseCustomInput.InitialData
        public path = UseCustomInput.path
        public GeneratedConstructor = UseCustomInput
        public R = R
    }
    (UseCustomInput["prototype"] as any).name = "UseCustomInput"

    export class WidgetSearcher extends Leaf.GeneratedWidget<{ input: HTMLInputElement }, { open: any, empty: any }, "open" | "empty">{
        constructor() {
            super(function() {
                let _e = this._e.bind(this)
                let _t = this._t.bind(this)
                return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "widget-searcher-d2b3be widget-searcher " }, { "type": "value", "content": "empty", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("input", { "type": { "name": "type", "templates": [{ "type": "raw", "content": "text" }] }, "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "input" }] }, "placeholder": { "name": "placeholder", "templates": [{ "type": "raw", "content": "Search widget:" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "results " }, { "type": "value", "content": "open", "reverse": false }] }, "data-list": { "name": "data-list", "templates": [{ "type": "raw", "content": "widgetList" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "WidgetSearcher", ["open", "empty"])
            if (WidgetSearcher.InitialData) {
                this.renderRecursive(WidgetSearcher.InitialData)
            }
        }
        widgetList: Leaf.List<R.WidgetSearcher.WidgetListItem>

        static TestDatas = [{ "name": "test-1", "content": "", "json": { "empty": false, "open": true, "widgetList": [{ "widgetPath": "/path1" }, { "widgetPath": "/path2" }, { "widgetPath": "/pathQAQ" }] } }]
        static BindedLists = [{ "name": "widgetList", "type": "inline", "reference": "/widgetSearcher/widgetListItem" }]
        static BindedWidgets = []
        static path = "/widgetSearcher"
        static InitialData = null
        public TestDatas = WidgetSearcher.TestDatas
        public BindedLists = WidgetSearcher.BindedLists
        public BindedWidgets = WidgetSearcher.BindedWidgets
        public InitialData = WidgetSearcher.InitialData
        public path = WidgetSearcher.path
        public GeneratedConstructor = WidgetSearcher
        public R = R
    }
    (WidgetSearcher["prototype"] as any).name = "WidgetSearcher"
    export namespace WidgetSearcher {
        export class WidgetListItem extends Leaf.GeneratedWidget<{}, { widgetPath: any }, "widgetPath">{
            constructor() {
                super(function() {
                    let _e = this._e.bind(this)
                    let _t = this._t.bind(this)
                    return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "widget-list-item-90e7a1 widget-list-item" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n        " }, { "type": "value", "content": "widgetPath", "reverse": false }, { "type": "raw", "content": "\n      " }] })])
                }, "WidgetListItem", ["widgetPath"])
                if (WidgetListItem.InitialData) {
                    this.renderRecursive(WidgetListItem.InitialData)
                }
            }

            static TestDatas = [{ "name": "test-1", "content": "", "json": { "widgetPath": "testPathInline" } }]
            static BindedLists = []
            static BindedWidgets = []
            static path = "/widgetSearcher/widgetListItem"
            static InitialData = null
            public TestDatas = WidgetListItem.TestDatas
            public BindedLists = WidgetListItem.BindedLists
            public BindedWidgets = WidgetListItem.BindedWidgets
            public InitialData = WidgetListItem.InitialData
            public path = WidgetListItem.path
            public GeneratedConstructor = WidgetListItem
            public R = R
        }
        (WidgetListItem["prototype"] as any).name = "WidgetListItem"
    } export namespace Widget {
        export class CustomInput extends Leaf.GeneratedWidget<{ name: HTMLDivElement }, {}, null>{
            constructor() {
                super(function() {
                    let _e = this._e.bind(this)
                    let _t = this._t.bind(this)
                    return _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "custom-input-4cb97d" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("slot", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "name" }] }, "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "name" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("input", { "type": { "name": "type", "templates": [{ "type": "raw", "content": "text" }] }, "value": { "name": "value", "templates": [] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "CustomInput", [])
                if (CustomInput.InitialData) {
                    this.renderRecursive(CustomInput.InitialData)
                }
            }

            static TestDatas = []
            static BindedLists = []
            static BindedWidgets = []
            static path = "/widget/customInput"
            static InitialData = null
            public TestDatas = CustomInput.TestDatas
            public BindedLists = CustomInput.BindedLists
            public BindedWidgets = CustomInput.BindedWidgets
            public InitialData = CustomInput.InitialData
            public path = CustomInput.path
            public GeneratedConstructor = CustomInput
            public R = R
        }
        (CustomInput["prototype"] as any).name = "CustomInput"
    }

    export const widgets = ["/composerEntryPage", "/recursiveTest", "/useCustomInput", "/widgetSearcher", "/widgetSearcher/widgetListItem", "/widget/customInput"]

}
window["R"] = R
