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

    export class Page extends Leaf.GeneratedWidget<{ mocha: 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": "page-568612" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("h1", {}, [_t({ "templates": [{ "type": "raw", "content": "Hello Leaf Test System" }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("widget", { "data-widget": { "name": "data-widget", "templates": [{ "type": "raw", "content": "testSearcher" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "id": { "name": "id", "templates": [{ "type": "raw", "content": "mocha" }] }, "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "mocha" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "Page", [])
            if (Page.InitialData) {
                this.renderRecursive(Page.InitialData)
            }
        }

        testSearcher: R.TestSearcher
        static TestDatas = []
        static BindedLists = []
        static BindedWidgets = [{ "path": "/testSearcher", "name": "testSearcher" }]
        static path = "/page"
        static InitialData = null
        public TestDatas = Page.TestDatas
        public BindedLists = Page.BindedLists
        public BindedWidgets = Page.BindedWidgets
        public InitialData = Page.InitialData
        public path = Page.path
        public GeneratedConstructor = Page
        public R = R
    }
    (Page["prototype"] as any).name = "Page"

    export class TestSearcher extends Leaf.GeneratedWidget<{ searchInput: HTMLInputElement }, { empty: any }, "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": "test-searcher-3379f1 " }, { "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": "searchInput" }] }, "placeholder": { "name": "placeholder", "templates": [{ "type": "raw", "content": "Search test:" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "results" }] }, "data-list": { "name": "data-list", "templates": [{ "type": "raw", "content": "searchResultList" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
            }, "TestSearcher", ["empty"])
            if (TestSearcher.InitialData) {
                this.renderRecursive(TestSearcher.InitialData)
            }
        }
        searchResultList: Leaf.List<R.TestSearcher.SearchResultListItem>

        static TestDatas = []
        static BindedLists = [{ "name": "searchResultList", "type": "inline", "reference": "/testSearcher/searchResultListItem" }]
        static BindedWidgets = []
        static path = "/testSearcher"
        static InitialData = null
        public TestDatas = TestSearcher.TestDatas
        public BindedLists = TestSearcher.BindedLists
        public BindedWidgets = TestSearcher.BindedWidgets
        public InitialData = TestSearcher.InitialData
        public path = TestSearcher.path
        public GeneratedConstructor = TestSearcher
        public R = R
    }
    (TestSearcher["prototype"] as any).name = "TestSearcher"
    export namespace TestSearcher {
        export class SearchResultListItem extends Leaf.GeneratedWidget<{}, { path: any }, "path">{
            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": "search-result-list-item-d5bec1" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n        " }, { "type": "value", "content": "path", "reverse": false }, { "type": "raw", "content": "\n      " }] })])
                }, "SearchResultListItem", ["path"])
                if (SearchResultListItem.InitialData) {
                    this.renderRecursive(SearchResultListItem.InitialData)
                }
            }

            static TestDatas = [{ "name": "test-1", "content": "", "json": { "path": "/path/to/test" } }]
            static BindedLists = []
            static BindedWidgets = []
            static path = "/testSearcher/searchResultListItem"
            static InitialData = null
            public TestDatas = SearchResultListItem.TestDatas
            public BindedLists = SearchResultListItem.BindedLists
            public BindedWidgets = SearchResultListItem.BindedWidgets
            public InitialData = SearchResultListItem.InitialData
            public path = SearchResultListItem.path
            public GeneratedConstructor = SearchResultListItem
            public R = R
        }
        (SearchResultListItem["prototype"] as any).name = "SearchResultListItem"
    } export namespace TestView {
        export class ChildWidgetWithInitData extends Leaf.GeneratedWidget<{}, { name: any }, "name">{
            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": "child-widget-with-init-data-fd3fa0" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }, { "type": "value", "content": "name", "reverse": false }, { "type": "raw", "content": "\n" }] })])
                }, "ChildWidgetWithInitData", ["name"])
                if (ChildWidgetWithInitData.InitialData) {
                    this.renderRecursive(ChildWidgetWithInitData.InitialData)
                }
            }

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

        export class Item 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": "item-092b29" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "Item", [])
                if (Item.InitialData) {
                    this.renderRecursive(Item.InitialData)
                }
            }

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

        export class TestModal extends Leaf.GeneratedWidget<{ header: HTMLDivElement, content: HTMLDivElement }, { slotHeaderSet: any, modalSet: any }, "slotHeaderSet" | "modalSet">{
            constructor() {
                super(function() {
                    let _e = this._e.bind(this)
                    let _t = this._t.bind(this)
                    return _e("test-modal", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "test-modal-b039b1 modal " }, { "type": "value", "content": "modalSet", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "header" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("slot", { "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "header" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "slot-header " }, { "type": "value", "content": "slotHeaderSet", "reverse": false }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "content" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("slot", { "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "content" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "TestModal", ["slotHeaderSet", "modalSet"])
                if (TestModal.InitialData) {
                    this.renderRecursive(TestModal.InitialData)
                }
            }

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

        export class TestUseModal extends Leaf.GeneratedWidget<{ header: HTMLDivElement, body: HTMLDivElement }, { parentHeaderSet: any, useModalSet: any }, "parentHeaderSet" | "useModalSet">{
            constructor() {
                super(function() {
                    let _e = this._e.bind(this)
                    let _t = this._t.bind(this)
                    return _e("test-modal", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "test-use-modal-1c7474 use-modal " }, { "type": "value", "content": "useModalSet", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "header" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "parent-header " }, { "type": "value", "content": "parentHeaderSet", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "body" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "body" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "TestUseModal", ["parentHeaderSet", "useModalSet"])
                if (TestUseModal.InitialData) {
                    this.renderRecursive(TestUseModal.InitialData)
                }
            }

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

        export class WidgetGiveSlots extends Leaf.GeneratedWidget<{ header: HTMLDivElement, body: HTMLDivElement }, { parentSlotClass: any, parentClass: any }, "parentSlotClass" | "parentClass">{
            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-give-slots-abce89" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("widget", { "data-name": { "name": "data-name", "templates": [{ "type": "raw", "content": "childWidget" }] }, "data-widget": { "name": "data-widget", "templates": [{ "type": "raw", "content": "widgetWithSlots" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "parent-set-widget " }, { "type": "value", "content": "parentClass", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("div", { "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "header" }] }, "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "header" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "parent-header " }, { "type": "value", "content": "parentSlotClass", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n      HEADER\n    " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("div", { "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "body" }] }, "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "body" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n      BODY\n    " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "WidgetGiveSlots", ["parentSlotClass", "parentClass"])
                if (WidgetGiveSlots.InitialData) {
                    this.renderRecursive(WidgetGiveSlots.InitialData)
                }
            }

            childWidget: R.TestView.WidgetWithSlots
            static TestDatas = []
            static BindedLists = []
            static BindedWidgets = [{ "path": "/testView/widgetWithSlots", "name": "childWidget" }]
            static path = "/testView/widgetGiveSlots"
            static InitialData = null
            public TestDatas = WidgetGiveSlots.TestDatas
            public BindedLists = WidgetGiveSlots.BindedLists
            public BindedWidgets = WidgetGiveSlots.BindedWidgets
            public InitialData = WidgetGiveSlots.InitialData
            public path = WidgetGiveSlots.path
            public GeneratedConstructor = WidgetGiveSlots
            public R = R
        }
        (WidgetGiveSlots["prototype"] as any).name = "WidgetGiveSlots"

        export class WidgetWithInitData extends Leaf.GeneratedWidget<{ title: HTMLDivElement }, { title: any }, "title">{
            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-with-init-data-d129b0" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "data-id": { "name": "data-id", "templates": [{ "type": "raw", "content": "title" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }, { "type": "value", "content": "title", "reverse": false }, { "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "data-list": { "name": "data-list", "templates": [{ "type": "raw", "content": "list" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("widget", { "data-name": { "name": "data-name", "templates": [{ "type": "raw", "content": "childWidget" }] }, "data-widget": { "name": "data-widget", "templates": [{ "type": "raw", "content": "childWidgetWithInitData" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n" }] })])
                }, "WidgetWithInitData", ["title"])
                if (WidgetWithInitData.InitialData) {
                    this.renderRecursive(WidgetWithInitData.InitialData)
                }
            }
            list: Leaf.List<R.TestView.WidgetWithInitData.ListItem>
            childWidget: R.TestView.ChildWidgetWithInitData
            static TestDatas = []
            static BindedLists = [{ "name": "list", "type": "inline", "reference": "/testView/widgetWithInitData/listItem" }]
            static BindedWidgets = [{ "path": "/testView/childWidgetWithInitData", "name": "childWidget" }]
            static path = "/testView/widgetWithInitData"
            static InitialData = { "title": "title", "list": [{ "name": "n1" }, { "name": "n2" }], "childWidget": { "name": "child" } }
            public TestDatas = WidgetWithInitData.TestDatas
            public BindedLists = WidgetWithInitData.BindedLists
            public BindedWidgets = WidgetWithInitData.BindedWidgets
            public InitialData = WidgetWithInitData.InitialData
            public path = WidgetWithInitData.path
            public GeneratedConstructor = WidgetWithInitData
            public R = R
        }
        (WidgetWithInitData["prototype"] as any).name = "WidgetWithInitData"
        export namespace WidgetWithInitData {
            export class ListItem extends Leaf.GeneratedWidget<{}, { name: any }, "name">{
                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": "list-item-cd4392" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n        " }, { "type": "value", "content": "name", "reverse": false }, { "type": "raw", "content": "\n      " }] })])
                    }, "ListItem", ["name"])
                    if (ListItem.InitialData) {
                        this.renderRecursive(ListItem.InitialData)
                    }
                }

                static TestDatas = []
                static BindedLists = []
                static BindedWidgets = []
                static path = "/testView/widgetWithInitData/listItem"
                static InitialData = null
                public TestDatas = ListItem.TestDatas
                public BindedLists = ListItem.BindedLists
                public BindedWidgets = ListItem.BindedWidgets
                public InitialData = ListItem.InitialData
                public path = ListItem.path
                public GeneratedConstructor = ListItem
                public R = R
            }
            (ListItem["prototype"] as any).name = "ListItem"
        }
        export class WidgetWithSlots extends Leaf.GeneratedWidget<{ header: HTMLDivElement, body: HTMLDivElement }, { childSlotClass: any, childClass: any }, "childSlotClass" | "childClass">{
            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-with-slots-d92a5a child-set-widget " }, { "type": "value", "content": "childClass", "reverse": false }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("slot", { "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "header" }] }, "class": { "name": "class", "templates": [{ "type": "raw", "content": "slot-header " }, { "type": "value", "content": "childSlotClass", "reverse": false }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] }), _e("div", { "class": { "name": "class", "templates": [{ "type": "raw", "content": "body" }] } }, [_t({ "templates": [{ "type": "raw", "content": "\n    " }] }), _e("slot", { "data-slot": { "name": "data-slot", "templates": [{ "type": "raw", "content": "body" }] } }, []), _t({ "templates": [{ "type": "raw", "content": "\n  " }] })]), _t({ "templates": [{ "type": "raw", "content": " \n" }] })])
                }, "WidgetWithSlots", ["childSlotClass", "childClass"])
                if (WidgetWithSlots.InitialData) {
                    this.renderRecursive(WidgetWithSlots.InitialData)
                }
            }

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

    export const widgets = ["/page", "/testSearcher", "/testSearcher/searchResultListItem", "/testView/childWidgetWithInitData", "/testView/item", "/testView/testModal", "/testView/testUseModal", "/testView/widgetGiveSlots", "/testView/widgetWithInitData", "/testView/widgetWithInitData/listItem", "/testView/widgetWithSlots"]

}
window["R"] = R
