;
layui.define("jquery",
function(e) {
"use strict";
var o = layui.$,
a = layui.hint(),
i = "layui-tree-enter",
r = function(e) {
this.options = e
},
t = {
arrow: ["", ""],
checkbox: ["", ""],
radio: ["", ""],
branch: ["", ""],
leaf: ""
};
r.prototype.init = function(e) {
var o = this;
e.addClass("layui-box layui-tree"),
o.options.skin && e.addClass("layui-tree-skin-" + o.options.skin),
o.tree(e),
o.on(e)
},
r.prototype.tree = function(e, a) {
var i = this,
r = i.options,
n = a || r.nodes;
layui.each(n,
function(a, n) {
var l = n.children && n.children.length > 0,
c = o('
'),
s = o(["",
function() {
return l ? '' + (n.spread ? t.arrow[1] : t.arrow[0]) + "": ""
} (),
function() {
return r.check ? '' + ("checkbox" === r.check ? t.checkbox[0] : "radio" === r.check ? t.radio[0] : "") + "": ""
} (),
function() {
return '" + ('' + (l ? n.spread ? t.branch[1] : t.branch[0] : t.leaf) + "") + ("" + (n.name || "未命名") + "")
} (), ""].join(""));
l && (s.append(c), i.tree(c, n.children)),
e.append(s),
"function" == typeof r.click && i.click(s, n),
i.spread(s, n),
r.drag && i.drag(s, n)
})
},
r.prototype.click = function(e, o) {
var a = this,
i = a.options;
e.children("a").on("click",
function(e) {
layui.stope(e),
i.click(o)
})
},
r.prototype.spread = function(e, o) {
var a = this,
i = (a.options, e.children(".layui-tree-spread")),
r = e.children("ul"),
n = e.children("a"),
l = function() {
e.data("spread") ? (e.data("spread", null), r.removeClass("layui-show"), i.html(t.arrow[0]), n.find(".layui-icon").html(t.branch[0])) : (e.data("spread", !0), r.addClass("layui-show"), i.html(t.arrow[1]), n.find(".layui-icon").html(t.branch[1]))
};
r[0] && (i.on("click", l), n.on("dblclick", l))
},
r.prototype.on = function(e) {
var a = this,
r = a.options,
t = "layui-tree-drag";
e.find("i").on("selectstart",
function(e) {
return ! 1
}),
r.drag && o(document).on("mousemove",
function(e) {
var i = a.move;
if (i.from) {
var r = (i.to, o(''));
e.preventDefault(),
o("." + t)[0] || o("body").append(r);
var n = o("." + t)[0] ? o("." + t) : r;
n.addClass("layui-show").html(i.from.elem.children("a").html()),
n.css({
left: e.pageX + 10,
top: e.pageY + 10
})
}
}).on("mouseup",
function() {
var e = a.move;
e.from && (e.from.elem.children("a").removeClass(i), e.to && e.to.elem.children("a").removeClass(i), a.move = {},
o("." + t).remove())
})
},
r.prototype.move = {},
r.prototype.drag = function(e, a) {
var r = this,
t = (r.options, e.children("a")),
n = function() {
var t = o(this),
n = r.move;
n.from && (n.to = {
item: a,
elem: e
},
t.addClass(i))
};
t.on("mousedown",
function() {
var o = r.move;
o.from = {
item: a,
elem: e
}
}),
t.on("mouseenter", n).on("mousemove", n).on("mouseleave",
function() {
var e = o(this),
a = r.move;
a.from && (delete a.to, e.removeClass(i))
})
},
e("tree",
function(e) {
var i = new r(e = e || {}),
t = o(e.elem);
return t[0] ? void i.init(t) : a.error("layui.tree 没有找到" + e.elem + "元素")
})
});