<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <!-- <link rel="stylesheet" type="text/css" href="../dist/2.0/fineui.min.css"/>
    <script src="../dist/2.0/fineui.js"></script> -->
    <link rel="stylesheet" type="text/css" href="http://fanruan.design/fineui/2.0/fineui.min.css"/>
<!--     <script src="http://fanruan.design/fineui/2.0/fineui.min.js"></script>-->
    <script src="http://localhost:9001/fineui.js"></script>
</head>
<body>
<div id="wrapper"></div>
<script>
    var Model = BI.inherit(BI.Model, {
        state: function () {
            return {
                theme: "light"
            };
        },
        childContext: ["theme"],

        actions: {
            toggle: function () {
                this.model.theme = this.model.theme === "light" ? "dark" : "light";
            }
        }
    });
    BI.model("demo.model", Model);

    var Child = BI.inherit(BI.Widget, {
        render: function () {
            var label;
            return {
                type: "bi.context",
                context: "theme",
                watch: function (newValue, oldValue) {
                    label.setText(newValue);
                },
                items: [(context) => {
                    return {
                        type: "bi.label",
                        height: 30,
                        ref: function (_ref) {
                            label = _ref;
                        },
                        text: context.model.theme
                    }
                }]
                
            };
        }
    });
    BI.shortcut("demo.child", Child);

    var Widget = BI.inherit(BI.Widget, {
        props: {
            baseCls: "my-parent"
        },
        _store: function () {
            return BI.Models.getModel("demo.model");
        },
        setup: function () {
            var child;
            var store = BI.useStore();
            return function () {
                return {
                    type: "bi.vertical",
                    vgap: 20,
                    items: [{
                        type: "demo.child",
                        ref: function (_ref) {
                            child = _ref;
                        }
                    }, {
                        type: "bi.button",
                        text: "改变主题",
                        handler: function () {
                            store.toggle();
                        }
                    }]
                };
            };
        }
    });
    BI.shortcut("demo.parent", Widget);
    BI.createWidget({
        type: "bi.absolute",
        items: [{
            el: {
                type: "demo.parent"
            },
            top: 100,
            left: 100
        }],
        element: "#wrapper"
    });
</script>
</body>
</html>