@wavemaker/app-runtime-wm-build 11.4.0-next.24577 → 11.4.0-next.24579

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -227311,6 +227311,7 @@ window.requestAnimationFrame = function() {
227311
227311
  BaseVariableManager.prototype.httpCall = function(requestParams, variable, params) {
227312
227312
  var _this = this;
227313
227313
  return new Promise((function(resolve, reject) {
227314
+ requestParams["_source"] = "variable";
227314
227315
  variable.httpService.sendCall(requestParams, variable).then((function(response) {
227315
227316
  if (response && response.type || response && response.status) {
227316
227317
  _this.setRequestTrackId(response, variable);
@@ -236680,4 +236681,3569 @@ window.requestAnimationFrame = function() {
236680
236681
  Object.defineProperty(exports, "__esModule", {
236681
236682
  value: true
236682
236683
  });
236683
- }));
236684
+ }));
236685
+
236686
+ (function($) {
236687
+ var settings = {}, roots = {}, caches = {}, _consts = {
236688
+ className: {
236689
+ BUTTON: "button",
236690
+ LEVEL: "level",
236691
+ ICO_LOADING: "ico_loading",
236692
+ SWITCH: "switch",
236693
+ NAME: "node_name"
236694
+ },
236695
+ event: {
236696
+ NODECREATED: "ztree_nodeCreated",
236697
+ CLICK: "ztree_click",
236698
+ EXPAND: "ztree_expand",
236699
+ COLLAPSE: "ztree_collapse",
236700
+ ASYNC_SUCCESS: "ztree_async_success",
236701
+ ASYNC_ERROR: "ztree_async_error",
236702
+ REMOVE: "ztree_remove",
236703
+ SELECTED: "ztree_selected",
236704
+ UNSELECTED: "ztree_unselected"
236705
+ },
236706
+ id: {
236707
+ A: "_a",
236708
+ ICON: "_ico",
236709
+ SPAN: "_span",
236710
+ SWITCH: "_switch",
236711
+ UL: "_ul"
236712
+ },
236713
+ line: {
236714
+ ROOT: "root",
236715
+ ROOTS: "roots",
236716
+ CENTER: "center",
236717
+ BOTTOM: "bottom",
236718
+ NOLINE: "noline",
236719
+ LINE: "line"
236720
+ },
236721
+ folder: {
236722
+ OPEN: "open",
236723
+ CLOSE: "close",
236724
+ DOCU: "docu"
236725
+ },
236726
+ node: {
236727
+ CURSELECTED: "curSelectedNode"
236728
+ }
236729
+ }, _setting = {
236730
+ treeId: "",
236731
+ treeObj: null,
236732
+ view: {
236733
+ addDiyDom: null,
236734
+ autoCancelSelected: true,
236735
+ dblClickExpand: true,
236736
+ expandSpeed: "fast",
236737
+ fontCss: {},
236738
+ nodeClasses: {},
236739
+ nameIsHTML: false,
236740
+ selectedMulti: true,
236741
+ showIcon: true,
236742
+ showLine: true,
236743
+ showTitle: true,
236744
+ txtSelectedEnable: false
236745
+ },
236746
+ data: {
236747
+ key: {
236748
+ isParent: "isParent",
236749
+ children: "children",
236750
+ name: "name",
236751
+ title: "",
236752
+ url: "url",
236753
+ icon: "icon"
236754
+ },
236755
+ render: {
236756
+ name: null,
236757
+ title: null
236758
+ },
236759
+ simpleData: {
236760
+ enable: false,
236761
+ idKey: "id",
236762
+ pIdKey: "pId",
236763
+ rootPId: null
236764
+ },
236765
+ keep: {
236766
+ parent: false,
236767
+ leaf: false
236768
+ }
236769
+ },
236770
+ async: {
236771
+ enable: false,
236772
+ contentType: "application/x-www-form-urlencoded",
236773
+ type: "post",
236774
+ dataType: "text",
236775
+ headers: {},
236776
+ xhrFields: {},
236777
+ url: "",
236778
+ autoParam: [],
236779
+ otherParam: [],
236780
+ dataFilter: null
236781
+ },
236782
+ callback: {
236783
+ beforeAsync: null,
236784
+ beforeClick: null,
236785
+ beforeDblClick: null,
236786
+ beforeRightClick: null,
236787
+ beforeMouseDown: null,
236788
+ beforeMouseUp: null,
236789
+ beforeExpand: null,
236790
+ beforeCollapse: null,
236791
+ beforeRemove: null,
236792
+ onAsyncError: null,
236793
+ onAsyncSuccess: null,
236794
+ onNodeCreated: null,
236795
+ onClick: null,
236796
+ onDblClick: null,
236797
+ onRightClick: null,
236798
+ onMouseDown: null,
236799
+ onMouseUp: null,
236800
+ onExpand: null,
236801
+ onCollapse: null,
236802
+ onRemove: null
236803
+ }
236804
+ }, _initRoot = function(setting) {
236805
+ var r = data.getRoot(setting);
236806
+ if (!r) {
236807
+ r = {};
236808
+ data.setRoot(setting, r);
236809
+ }
236810
+ data.nodeChildren(setting, r, []);
236811
+ r.expandTriggerFlag = false;
236812
+ r.curSelectedList = [];
236813
+ r.noSelection = true;
236814
+ r.createdNodes = [];
236815
+ r.zId = 0;
236816
+ r._ver = (new Date).getTime();
236817
+ }, _initCache = function(setting) {
236818
+ var c = data.getCache(setting);
236819
+ if (!c) {
236820
+ c = {};
236821
+ data.setCache(setting, c);
236822
+ }
236823
+ c.nodes = [];
236824
+ c.doms = [];
236825
+ }, _bindEvent = function(setting) {
236826
+ var o = setting.treeObj, c = consts.event;
236827
+ o.bind(c.NODECREATED, (function(event, treeId, node) {
236828
+ tools.apply(setting.callback.onNodeCreated, [ event, treeId, node ]);
236829
+ }));
236830
+ o.bind(c.CLICK, (function(event, srcEvent, treeId, node, clickFlag) {
236831
+ tools.apply(setting.callback.onClick, [ srcEvent, treeId, node, clickFlag ]);
236832
+ }));
236833
+ o.bind(c.EXPAND, (function(event, treeId, node) {
236834
+ tools.apply(setting.callback.onExpand, [ event, treeId, node ]);
236835
+ }));
236836
+ o.bind(c.COLLAPSE, (function(event, treeId, node) {
236837
+ tools.apply(setting.callback.onCollapse, [ event, treeId, node ]);
236838
+ }));
236839
+ o.bind(c.ASYNC_SUCCESS, (function(event, treeId, node, msg) {
236840
+ tools.apply(setting.callback.onAsyncSuccess, [ event, treeId, node, msg ]);
236841
+ }));
236842
+ o.bind(c.ASYNC_ERROR, (function(event, treeId, node, XMLHttpRequest, textStatus, errorThrown) {
236843
+ tools.apply(setting.callback.onAsyncError, [ event, treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
236844
+ }));
236845
+ o.bind(c.REMOVE, (function(event, treeId, treeNode) {
236846
+ tools.apply(setting.callback.onRemove, [ event, treeId, treeNode ]);
236847
+ }));
236848
+ o.bind(c.SELECTED, (function(event, treeId, node) {
236849
+ tools.apply(setting.callback.onSelected, [ treeId, node ]);
236850
+ }));
236851
+ o.bind(c.UNSELECTED, (function(event, treeId, node) {
236852
+ tools.apply(setting.callback.onUnSelected, [ treeId, node ]);
236853
+ }));
236854
+ }, _unbindEvent = function(setting) {
236855
+ var o = setting.treeObj, c = consts.event;
236856
+ o.unbind(c.NODECREATED).unbind(c.CLICK).unbind(c.EXPAND).unbind(c.COLLAPSE).unbind(c.ASYNC_SUCCESS).unbind(c.ASYNC_ERROR).unbind(c.REMOVE).unbind(c.SELECTED).unbind(c.UNSELECTED);
236857
+ }, _eventProxy = function(event) {
236858
+ var target = event.target, setting = data.getSetting(event.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
236859
+ if (tools.eqs(event.type, "mousedown")) {
236860
+ treeEventType = "mousedown";
236861
+ } else if (tools.eqs(event.type, "mouseup")) {
236862
+ treeEventType = "mouseup";
236863
+ } else if (tools.eqs(event.type, "contextmenu")) {
236864
+ treeEventType = "contextmenu";
236865
+ } else if (tools.eqs(event.type, "click")) {
236866
+ if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) {
236867
+ tId = tools.getNodeMainDom(target).id;
236868
+ nodeEventType = "switchNode";
236869
+ } else {
236870
+ tmp = tools.getMDom(setting, target, [ {
236871
+ tagName: "a",
236872
+ attrName: "treeNode" + consts.id.A
236873
+ } ]);
236874
+ if (tmp) {
236875
+ tId = tools.getNodeMainDom(tmp).id;
236876
+ nodeEventType = "clickNode";
236877
+ }
236878
+ }
236879
+ } else if (tools.eqs(event.type, "dblclick")) {
236880
+ treeEventType = "dblclick";
236881
+ tmp = tools.getMDom(setting, target, [ {
236882
+ tagName: "a",
236883
+ attrName: "treeNode" + consts.id.A
236884
+ } ]);
236885
+ if (tmp) {
236886
+ tId = tools.getNodeMainDom(tmp).id;
236887
+ nodeEventType = "switchNode";
236888
+ }
236889
+ }
236890
+ if (treeEventType.length > 0 && tId.length == 0) {
236891
+ tmp = tools.getMDom(setting, target, [ {
236892
+ tagName: "a",
236893
+ attrName: "treeNode" + consts.id.A
236894
+ } ]);
236895
+ if (tmp) {
236896
+ tId = tools.getNodeMainDom(tmp).id;
236897
+ }
236898
+ }
236899
+ if (tId.length > 0) {
236900
+ node = data.getNodeCache(setting, tId);
236901
+ switch (nodeEventType) {
236902
+ case "switchNode":
236903
+ var isParent = data.nodeIsParent(setting, node);
236904
+ if (!isParent) {
236905
+ nodeEventType = "";
236906
+ } else if (tools.eqs(event.type, "click") || tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [ setting.treeId, node ], setting.view.dblClickExpand)) {
236907
+ nodeEventCallback = handler.onSwitchNode;
236908
+ } else {
236909
+ nodeEventType = "";
236910
+ }
236911
+ break;
236912
+
236913
+ case "clickNode":
236914
+ nodeEventCallback = handler.onClickNode;
236915
+ break;
236916
+ }
236917
+ }
236918
+ switch (treeEventType) {
236919
+ case "mousedown":
236920
+ treeEventCallback = handler.onZTreeMousedown;
236921
+ break;
236922
+
236923
+ case "mouseup":
236924
+ treeEventCallback = handler.onZTreeMouseup;
236925
+ break;
236926
+
236927
+ case "dblclick":
236928
+ treeEventCallback = handler.onZTreeDblclick;
236929
+ break;
236930
+
236931
+ case "contextmenu":
236932
+ treeEventCallback = handler.onZTreeContextmenu;
236933
+ break;
236934
+ }
236935
+ var proxyResult = {
236936
+ stop: false,
236937
+ node: node,
236938
+ nodeEventType: nodeEventType,
236939
+ nodeEventCallback: nodeEventCallback,
236940
+ treeEventType: treeEventType,
236941
+ treeEventCallback: treeEventCallback
236942
+ };
236943
+ return proxyResult;
236944
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
236945
+ if (!n) return;
236946
+ var r = data.getRoot(setting), children = data.nodeChildren(setting, n);
236947
+ n.level = level;
236948
+ n.tId = setting.treeId + "_" + ++r.zId;
236949
+ n.parentTId = parentNode ? parentNode.tId : null;
236950
+ n.open = typeof n.open == "string" ? tools.eqs(n.open, "true") : !!n.open;
236951
+ var isParent = data.nodeIsParent(setting, n);
236952
+ if (tools.isArray(children)) {
236953
+ data.nodeIsParent(setting, n, true);
236954
+ n.zAsync = true;
236955
+ } else {
236956
+ isParent = data.nodeIsParent(setting, n, isParent);
236957
+ n.open = isParent && !setting.async.enable ? n.open : false;
236958
+ n.zAsync = !isParent;
236959
+ }
236960
+ n.isFirstNode = isFirstNode;
236961
+ n.isLastNode = isLastNode;
236962
+ n.getParentNode = function() {
236963
+ return data.getNodeCache(setting, n.parentTId);
236964
+ };
236965
+ n.getPreNode = function() {
236966
+ return data.getPreNode(setting, n);
236967
+ };
236968
+ n.getNextNode = function() {
236969
+ return data.getNextNode(setting, n);
236970
+ };
236971
+ n.getIndex = function() {
236972
+ return data.getNodeIndex(setting, n);
236973
+ };
236974
+ n.getPath = function() {
236975
+ return data.getNodePath(setting, n);
236976
+ };
236977
+ n.isAjaxing = false;
236978
+ data.fixPIdKeyValue(setting, n);
236979
+ }, _init = {
236980
+ bind: [ _bindEvent ],
236981
+ unbind: [ _unbindEvent ],
236982
+ caches: [ _initCache ],
236983
+ nodes: [ _initNode ],
236984
+ proxys: [ _eventProxy ],
236985
+ roots: [ _initRoot ],
236986
+ beforeA: [],
236987
+ afterA: [],
236988
+ innerBeforeA: [],
236989
+ innerAfterA: [],
236990
+ zTreeTools: []
236991
+ }, data = {
236992
+ addNodeCache: function(setting, node) {
236993
+ data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node;
236994
+ },
236995
+ getNodeCacheId: function(tId) {
236996
+ return tId.substring(tId.lastIndexOf("_") + 1);
236997
+ },
236998
+ addAfterA: function(afterA) {
236999
+ _init.afterA.push(afterA);
237000
+ },
237001
+ addBeforeA: function(beforeA) {
237002
+ _init.beforeA.push(beforeA);
237003
+ },
237004
+ addInnerAfterA: function(innerAfterA) {
237005
+ _init.innerAfterA.push(innerAfterA);
237006
+ },
237007
+ addInnerBeforeA: function(innerBeforeA) {
237008
+ _init.innerBeforeA.push(innerBeforeA);
237009
+ },
237010
+ addInitBind: function(bindEvent) {
237011
+ _init.bind.push(bindEvent);
237012
+ },
237013
+ addInitUnBind: function(unbindEvent) {
237014
+ _init.unbind.push(unbindEvent);
237015
+ },
237016
+ addInitCache: function(initCache) {
237017
+ _init.caches.push(initCache);
237018
+ },
237019
+ addInitNode: function(initNode) {
237020
+ _init.nodes.push(initNode);
237021
+ },
237022
+ addInitProxy: function(initProxy, isFirst) {
237023
+ if (!!isFirst) {
237024
+ _init.proxys.splice(0, 0, initProxy);
237025
+ } else {
237026
+ _init.proxys.push(initProxy);
237027
+ }
237028
+ },
237029
+ addInitRoot: function(initRoot) {
237030
+ _init.roots.push(initRoot);
237031
+ },
237032
+ addNodesData: function(setting, parentNode, index, nodes) {
237033
+ var children = data.nodeChildren(setting, parentNode), params;
237034
+ if (!children) {
237035
+ children = data.nodeChildren(setting, parentNode, []);
237036
+ index = -1;
237037
+ } else if (index >= children.length) {
237038
+ index = -1;
237039
+ }
237040
+ if (children.length > 0 && index === 0) {
237041
+ children[0].isFirstNode = false;
237042
+ view.setNodeLineIcos(setting, children[0]);
237043
+ } else if (children.length > 0 && index < 0) {
237044
+ children[children.length - 1].isLastNode = false;
237045
+ view.setNodeLineIcos(setting, children[children.length - 1]);
237046
+ }
237047
+ data.nodeIsParent(setting, parentNode, true);
237048
+ if (index < 0) {
237049
+ data.nodeChildren(setting, parentNode, children.concat(nodes));
237050
+ } else {
237051
+ params = [ index, 0 ].concat(nodes);
237052
+ children.splice.apply(children, params);
237053
+ }
237054
+ },
237055
+ addSelectedNode: function(setting, node) {
237056
+ var root = data.getRoot(setting);
237057
+ if (!data.isSelectedNode(setting, node)) {
237058
+ root.curSelectedList.push(node);
237059
+ }
237060
+ },
237061
+ addCreatedNode: function(setting, node) {
237062
+ if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
237063
+ var root = data.getRoot(setting);
237064
+ root.createdNodes.push(node);
237065
+ }
237066
+ },
237067
+ addZTreeTools: function(zTreeTools) {
237068
+ _init.zTreeTools.push(zTreeTools);
237069
+ },
237070
+ exSetting: function(s) {
237071
+ $.extend(true, _setting, s);
237072
+ },
237073
+ fixPIdKeyValue: function(setting, node) {
237074
+ if (setting.data.simpleData.enable) {
237075
+ node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId;
237076
+ }
237077
+ },
237078
+ getAfterA: function(setting, node, array) {
237079
+ for (var i = 0, j = _init.afterA.length; i < j; i++) {
237080
+ _init.afterA[i].apply(this, arguments);
237081
+ }
237082
+ },
237083
+ getBeforeA: function(setting, node, array) {
237084
+ for (var i = 0, j = _init.beforeA.length; i < j; i++) {
237085
+ _init.beforeA[i].apply(this, arguments);
237086
+ }
237087
+ },
237088
+ getInnerAfterA: function(setting, node, array) {
237089
+ for (var i = 0, j = _init.innerAfterA.length; i < j; i++) {
237090
+ _init.innerAfterA[i].apply(this, arguments);
237091
+ }
237092
+ },
237093
+ getInnerBeforeA: function(setting, node, array) {
237094
+ for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) {
237095
+ _init.innerBeforeA[i].apply(this, arguments);
237096
+ }
237097
+ },
237098
+ getCache: function(setting) {
237099
+ return caches[setting.treeId];
237100
+ },
237101
+ getNodeIndex: function(setting, node) {
237102
+ if (!node) return null;
237103
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
237104
+ for (var i = 0, l = children.length - 1; i <= l; i++) {
237105
+ if (children[i] === node) {
237106
+ return i;
237107
+ }
237108
+ }
237109
+ return -1;
237110
+ },
237111
+ getNextNode: function(setting, node) {
237112
+ if (!node) return null;
237113
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
237114
+ for (var i = 0, l = children.length - 1; i <= l; i++) {
237115
+ if (children[i] === node) {
237116
+ return i == l ? null : children[i + 1];
237117
+ }
237118
+ }
237119
+ return null;
237120
+ },
237121
+ getNodeByParam: function(setting, nodes, key, value) {
237122
+ if (!nodes || !key) return null;
237123
+ for (var i = 0, l = nodes.length; i < l; i++) {
237124
+ var node = nodes[i];
237125
+ if (node[key] == value) {
237126
+ return nodes[i];
237127
+ }
237128
+ var children = data.nodeChildren(setting, node);
237129
+ var tmp = data.getNodeByParam(setting, children, key, value);
237130
+ if (tmp) return tmp;
237131
+ }
237132
+ return null;
237133
+ },
237134
+ getNodeCache: function(setting, tId) {
237135
+ if (!tId) return null;
237136
+ var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)];
237137
+ return n ? n : null;
237138
+ },
237139
+ getNodePath: function(setting, node) {
237140
+ if (!node) return null;
237141
+ var path;
237142
+ if (node.parentTId) {
237143
+ path = node.getParentNode().getPath();
237144
+ } else {
237145
+ path = [];
237146
+ }
237147
+ if (path) {
237148
+ path.push(node);
237149
+ }
237150
+ return path;
237151
+ },
237152
+ getNodes: function(setting) {
237153
+ return data.nodeChildren(setting, data.getRoot(setting));
237154
+ },
237155
+ getNodesByParam: function(setting, nodes, key, value) {
237156
+ if (!nodes || !key) return [];
237157
+ var result = [];
237158
+ for (var i = 0, l = nodes.length; i < l; i++) {
237159
+ var node = nodes[i];
237160
+ if (node[key] == value) {
237161
+ result.push(node);
237162
+ }
237163
+ var children = data.nodeChildren(setting, node);
237164
+ result = result.concat(data.getNodesByParam(setting, children, key, value));
237165
+ }
237166
+ return result;
237167
+ },
237168
+ getNodesByParamFuzzy: function(setting, nodes, key, value) {
237169
+ if (!nodes || !key) return [];
237170
+ var result = [];
237171
+ value = value.toLowerCase();
237172
+ for (var i = 0, l = nodes.length; i < l; i++) {
237173
+ var node = nodes[i];
237174
+ if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) {
237175
+ result.push(node);
237176
+ }
237177
+ var children = data.nodeChildren(setting, node);
237178
+ result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value));
237179
+ }
237180
+ return result;
237181
+ },
237182
+ getNodesByFilter: function(setting, nodes, filter, isSingle, invokeParam) {
237183
+ if (!nodes) return isSingle ? null : [];
237184
+ var result = isSingle ? null : [];
237185
+ for (var i = 0, l = nodes.length; i < l; i++) {
237186
+ var node = nodes[i];
237187
+ if (tools.apply(filter, [ node, invokeParam ], false)) {
237188
+ if (isSingle) {
237189
+ return node;
237190
+ }
237191
+ result.push(node);
237192
+ }
237193
+ var children = data.nodeChildren(setting, node);
237194
+ var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam);
237195
+ if (isSingle && !!tmpResult) {
237196
+ return tmpResult;
237197
+ }
237198
+ result = isSingle ? tmpResult : result.concat(tmpResult);
237199
+ }
237200
+ return result;
237201
+ },
237202
+ getPreNode: function(setting, node) {
237203
+ if (!node) return null;
237204
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
237205
+ for (var i = 0, l = children.length; i < l; i++) {
237206
+ if (children[i] === node) {
237207
+ return i == 0 ? null : children[i - 1];
237208
+ }
237209
+ }
237210
+ return null;
237211
+ },
237212
+ getRoot: function(setting) {
237213
+ return setting ? roots[setting.treeId] : null;
237214
+ },
237215
+ getRoots: function() {
237216
+ return roots;
237217
+ },
237218
+ getSetting: function(treeId) {
237219
+ return settings[treeId];
237220
+ },
237221
+ getSettings: function() {
237222
+ return settings;
237223
+ },
237224
+ getZTreeTools: function(treeId) {
237225
+ var r = this.getRoot(this.getSetting(treeId));
237226
+ return r ? r.treeTools : null;
237227
+ },
237228
+ initCache: function(setting) {
237229
+ for (var i = 0, j = _init.caches.length; i < j; i++) {
237230
+ _init.caches[i].apply(this, arguments);
237231
+ }
237232
+ },
237233
+ initNode: function(setting, level, node, parentNode, preNode, nextNode) {
237234
+ for (var i = 0, j = _init.nodes.length; i < j; i++) {
237235
+ _init.nodes[i].apply(this, arguments);
237236
+ }
237237
+ },
237238
+ initRoot: function(setting) {
237239
+ for (var i = 0, j = _init.roots.length; i < j; i++) {
237240
+ _init.roots[i].apply(this, arguments);
237241
+ }
237242
+ },
237243
+ isSelectedNode: function(setting, node) {
237244
+ var root = data.getRoot(setting);
237245
+ for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
237246
+ if (node === root.curSelectedList[i]) return true;
237247
+ }
237248
+ return false;
237249
+ },
237250
+ nodeChildren: function(setting, node, newChildren) {
237251
+ if (!node) {
237252
+ return null;
237253
+ }
237254
+ var key = setting.data.key.children;
237255
+ if (typeof newChildren !== "undefined") {
237256
+ node[key] = newChildren;
237257
+ }
237258
+ return node[key];
237259
+ },
237260
+ nodeIsParent: function(setting, node, newIsParent) {
237261
+ if (!node) {
237262
+ return false;
237263
+ }
237264
+ var key = setting.data.key.isParent;
237265
+ if (typeof newIsParent !== "undefined") {
237266
+ if (typeof newIsParent === "string") {
237267
+ newIsParent = tools.eqs(newIsParent, "true");
237268
+ }
237269
+ newIsParent = !!newIsParent;
237270
+ node[key] = newIsParent;
237271
+ } else if (typeof node[key] == "string") {
237272
+ node[key] = tools.eqs(node[key], "true");
237273
+ } else {
237274
+ node[key] = !!node[key];
237275
+ }
237276
+ return node[key];
237277
+ },
237278
+ nodeName: function(setting, node, newName) {
237279
+ var key = setting.data.key.name;
237280
+ if (typeof newName !== "undefined") {
237281
+ node[key] = newName;
237282
+ }
237283
+ var rawName = "" + node[key];
237284
+ if (typeof setting.data.render.name === "function") {
237285
+ return setting.data.render.name.call(this, rawName, node);
237286
+ }
237287
+ return rawName;
237288
+ },
237289
+ nodeTitle: function(setting, node) {
237290
+ var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title;
237291
+ var rawTitle = "" + node[t];
237292
+ if (typeof setting.data.render.title === "function") {
237293
+ return setting.data.render.title.call(this, rawTitle, node);
237294
+ }
237295
+ return rawTitle;
237296
+ },
237297
+ removeNodeCache: function(setting, node) {
237298
+ var children = data.nodeChildren(setting, node);
237299
+ if (children) {
237300
+ for (var i = 0, l = children.length; i < l; i++) {
237301
+ data.removeNodeCache(setting, children[i]);
237302
+ }
237303
+ }
237304
+ data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null;
237305
+ },
237306
+ removeSelectedNode: function(setting, node) {
237307
+ var root = data.getRoot(setting);
237308
+ for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
237309
+ if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) {
237310
+ root.curSelectedList.splice(i, 1);
237311
+ setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, node ]);
237312
+ i--;
237313
+ j--;
237314
+ }
237315
+ }
237316
+ },
237317
+ setCache: function(setting, cache) {
237318
+ caches[setting.treeId] = cache;
237319
+ },
237320
+ setRoot: function(setting, root) {
237321
+ roots[setting.treeId] = root;
237322
+ },
237323
+ setZTreeTools: function(setting, zTreeTools) {
237324
+ for (var i = 0, j = _init.zTreeTools.length; i < j; i++) {
237325
+ _init.zTreeTools[i].apply(this, arguments);
237326
+ }
237327
+ },
237328
+ transformToArrayFormat: function(setting, nodes) {
237329
+ if (!nodes) return [];
237330
+ var r = [];
237331
+ if (tools.isArray(nodes)) {
237332
+ for (var i = 0, l = nodes.length; i < l; i++) {
237333
+ var node = nodes[i];
237334
+ _do(node);
237335
+ }
237336
+ } else {
237337
+ _do(nodes);
237338
+ }
237339
+ return r;
237340
+ function _do(_node) {
237341
+ r.push(_node);
237342
+ var children = data.nodeChildren(setting, _node);
237343
+ if (children) {
237344
+ r = r.concat(data.transformToArrayFormat(setting, children));
237345
+ }
237346
+ }
237347
+ },
237348
+ transformTozTreeFormat: function(setting, sNodes) {
237349
+ var i, l, key = setting.data.simpleData.idKey, parentKey = setting.data.simpleData.pIdKey;
237350
+ if (!key || key == "" || !sNodes) return [];
237351
+ if (tools.isArray(sNodes)) {
237352
+ var r = [];
237353
+ var tmpMap = {};
237354
+ for (i = 0, l = sNodes.length; i < l; i++) {
237355
+ tmpMap[sNodes[i][key]] = sNodes[i];
237356
+ }
237357
+ for (i = 0, l = sNodes.length; i < l; i++) {
237358
+ var p = tmpMap[sNodes[i][parentKey]];
237359
+ if (p && sNodes[i][key] != sNodes[i][parentKey]) {
237360
+ var children = data.nodeChildren(setting, p);
237361
+ if (!children) {
237362
+ children = data.nodeChildren(setting, p, []);
237363
+ }
237364
+ children.push(sNodes[i]);
237365
+ } else {
237366
+ r.push(sNodes[i]);
237367
+ }
237368
+ }
237369
+ return r;
237370
+ } else {
237371
+ return [ sNodes ];
237372
+ }
237373
+ }
237374
+ }, event = {
237375
+ bindEvent: function(setting) {
237376
+ for (var i = 0, j = _init.bind.length; i < j; i++) {
237377
+ _init.bind[i].apply(this, arguments);
237378
+ }
237379
+ },
237380
+ unbindEvent: function(setting) {
237381
+ for (var i = 0, j = _init.unbind.length; i < j; i++) {
237382
+ _init.unbind[i].apply(this, arguments);
237383
+ }
237384
+ },
237385
+ bindTree: function(setting) {
237386
+ var eventParam = {
237387
+ treeId: setting.treeId
237388
+ }, o = setting.treeObj;
237389
+ if (!setting.view.txtSelectedEnable) {
237390
+ o.bind("selectstart", handler.onSelectStart).css({
237391
+ "-moz-user-select": "-moz-none"
237392
+ });
237393
+ }
237394
+ o.bind("click", eventParam, event.proxy);
237395
+ o.bind("dblclick", eventParam, event.proxy);
237396
+ o.bind("mouseover", eventParam, event.proxy);
237397
+ o.bind("mouseout", eventParam, event.proxy);
237398
+ o.bind("mousedown", eventParam, event.proxy);
237399
+ o.bind("mouseup", eventParam, event.proxy);
237400
+ o.bind("contextmenu", eventParam, event.proxy);
237401
+ },
237402
+ unbindTree: function(setting) {
237403
+ var o = setting.treeObj;
237404
+ o.unbind("selectstart", handler.onSelectStart).unbind("click", event.proxy).unbind("dblclick", event.proxy).unbind("mouseover", event.proxy).unbind("mouseout", event.proxy).unbind("mousedown", event.proxy).unbind("mouseup", event.proxy).unbind("contextmenu", event.proxy);
237405
+ },
237406
+ doProxy: function(e) {
237407
+ var results = [];
237408
+ for (var i = 0, j = _init.proxys.length; i < j; i++) {
237409
+ var proxyResult = _init.proxys[i].apply(this, arguments);
237410
+ results.push(proxyResult);
237411
+ if (proxyResult.stop) {
237412
+ break;
237413
+ }
237414
+ }
237415
+ return results;
237416
+ },
237417
+ proxy: function(e) {
237418
+ var setting = data.getSetting(e.data.treeId);
237419
+ if (!tools.uCanDo(setting, e)) return true;
237420
+ var results = event.doProxy(e), r = true, x = false;
237421
+ for (var i = 0, l = results.length; i < l; i++) {
237422
+ var proxyResult = results[i];
237423
+ if (proxyResult.nodeEventCallback) {
237424
+ x = true;
237425
+ r = proxyResult.nodeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
237426
+ }
237427
+ if (proxyResult.treeEventCallback) {
237428
+ x = true;
237429
+ r = proxyResult.treeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
237430
+ }
237431
+ }
237432
+ return r;
237433
+ }
237434
+ }, handler = {
237435
+ onSwitchNode: function(event, node) {
237436
+ var setting = data.getSetting(event.data.treeId);
237437
+ if (node.open) {
237438
+ if (tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) return true;
237439
+ data.getRoot(setting).expandTriggerFlag = true;
237440
+ view.switchNode(setting, node);
237441
+ } else {
237442
+ if (tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) return true;
237443
+ data.getRoot(setting).expandTriggerFlag = true;
237444
+ view.switchNode(setting, node);
237445
+ }
237446
+ return true;
237447
+ },
237448
+ onClickNode: function(event, node) {
237449
+ var setting = data.getSetting(event.data.treeId), clickFlag = setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && data.isSelectedNode(setting, node) ? 0 : setting.view.autoCancelSelected && (event.ctrlKey || event.metaKey) && setting.view.selectedMulti ? 2 : 1;
237450
+ if (tools.apply(setting.callback.beforeClick, [ setting.treeId, node, clickFlag ], true) == false) return true;
237451
+ if (clickFlag === 0) {
237452
+ view.cancelPreSelectedNode(setting, node);
237453
+ } else {
237454
+ view.selectNode(setting, node, clickFlag === 2);
237455
+ }
237456
+ setting.treeObj.trigger(consts.event.CLICK, [ event, setting.treeId, node, clickFlag ]);
237457
+ return true;
237458
+ },
237459
+ onZTreeMousedown: function(event, node) {
237460
+ var setting = data.getSetting(event.data.treeId);
237461
+ if (tools.apply(setting.callback.beforeMouseDown, [ setting.treeId, node ], true)) {
237462
+ tools.apply(setting.callback.onMouseDown, [ event, setting.treeId, node ]);
237463
+ }
237464
+ return true;
237465
+ },
237466
+ onZTreeMouseup: function(event, node) {
237467
+ var setting = data.getSetting(event.data.treeId);
237468
+ if (tools.apply(setting.callback.beforeMouseUp, [ setting.treeId, node ], true)) {
237469
+ tools.apply(setting.callback.onMouseUp, [ event, setting.treeId, node ]);
237470
+ }
237471
+ return true;
237472
+ },
237473
+ onZTreeDblclick: function(event, node) {
237474
+ var setting = data.getSetting(event.data.treeId);
237475
+ if (tools.apply(setting.callback.beforeDblClick, [ setting.treeId, node ], true)) {
237476
+ tools.apply(setting.callback.onDblClick, [ event, setting.treeId, node ]);
237477
+ }
237478
+ return true;
237479
+ },
237480
+ onZTreeContextmenu: function(event, node) {
237481
+ var setting = data.getSetting(event.data.treeId);
237482
+ if (tools.apply(setting.callback.beforeRightClick, [ setting.treeId, node ], true)) {
237483
+ tools.apply(setting.callback.onRightClick, [ event, setting.treeId, node ]);
237484
+ }
237485
+ return typeof setting.callback.onRightClick != "function";
237486
+ },
237487
+ onSelectStart: function(e) {
237488
+ var n = e.originalEvent.srcElement.nodeName.toLowerCase();
237489
+ return n === "input" || n === "textarea";
237490
+ }
237491
+ }, tools = {
237492
+ apply: function(fun, param, defaultValue) {
237493
+ if (typeof fun == "function") {
237494
+ return fun.apply(zt, param ? param : []);
237495
+ }
237496
+ return defaultValue;
237497
+ },
237498
+ canAsync: function(setting, node) {
237499
+ var children = data.nodeChildren(setting, node);
237500
+ var isParent = data.nodeIsParent(setting, node);
237501
+ return setting.async.enable && node && isParent && !(node.zAsync || children && children.length > 0);
237502
+ },
237503
+ clone: function(obj) {
237504
+ if (obj === null) return null;
237505
+ var o = tools.isArray(obj) ? [] : {};
237506
+ for (var i in obj) {
237507
+ o[i] = obj[i] instanceof Date ? new Date(obj[i].getTime()) : typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i];
237508
+ }
237509
+ return o;
237510
+ },
237511
+ eqs: function(str1, str2) {
237512
+ return str1.toLowerCase() === str2.toLowerCase();
237513
+ },
237514
+ isArray: function(arr) {
237515
+ return Object.prototype.toString.apply(arr) === "[object Array]";
237516
+ },
237517
+ isElement: function(o) {
237518
+ return typeof HTMLElement === "object" ? o instanceof HTMLElement : o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string";
237519
+ },
237520
+ $: function(node, exp, setting) {
237521
+ if (!!exp && typeof exp != "string") {
237522
+ setting = exp;
237523
+ exp = "";
237524
+ }
237525
+ if (typeof node == "string") {
237526
+ return $(node, setting ? setting.treeObj.get(0).ownerDocument : null);
237527
+ } else {
237528
+ return $("#" + node.tId + exp, setting ? setting.treeObj : null);
237529
+ }
237530
+ },
237531
+ getMDom: function(setting, curDom, targetExpr) {
237532
+ if (!curDom) return null;
237533
+ while (curDom && curDom.id !== setting.treeId) {
237534
+ for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) {
237535
+ if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) {
237536
+ return curDom;
237537
+ }
237538
+ }
237539
+ curDom = curDom.parentNode;
237540
+ }
237541
+ return null;
237542
+ },
237543
+ getNodeMainDom: function(target) {
237544
+ return $(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0);
237545
+ },
237546
+ isChildOrSelf: function(dom, parentId) {
237547
+ return $(dom).closest("#" + parentId).length > 0;
237548
+ },
237549
+ uCanDo: function(setting, e) {
237550
+ return true;
237551
+ }
237552
+ }, view = {
237553
+ addNodes: function(setting, parentNode, index, newNodes, isSilent) {
237554
+ var isParent = data.nodeIsParent(setting, parentNode);
237555
+ if (setting.data.keep.leaf && parentNode && !isParent) {
237556
+ return;
237557
+ }
237558
+ if (!tools.isArray(newNodes)) {
237559
+ newNodes = [ newNodes ];
237560
+ }
237561
+ if (setting.data.simpleData.enable) {
237562
+ newNodes = data.transformTozTreeFormat(setting, newNodes);
237563
+ }
237564
+ if (parentNode) {
237565
+ var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), target_icoObj = $$(parentNode, consts.id.ICON, setting), target_ulObj = $$(parentNode, consts.id.UL, setting);
237566
+ if (!parentNode.open) {
237567
+ view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE);
237568
+ view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE);
237569
+ parentNode.open = false;
237570
+ target_ulObj.css({
237571
+ display: "none"
237572
+ });
237573
+ }
237574
+ data.addNodesData(setting, parentNode, index, newNodes);
237575
+ view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index);
237576
+ if (!isSilent) {
237577
+ view.expandCollapseParentNode(setting, parentNode, true);
237578
+ }
237579
+ } else {
237580
+ data.addNodesData(setting, data.getRoot(setting), index, newNodes);
237581
+ view.createNodes(setting, 0, newNodes, null, index);
237582
+ }
237583
+ },
237584
+ appendNodes: function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
237585
+ if (!nodes) return [];
237586
+ var html = [];
237587
+ var tmpPNode = parentNode ? parentNode : data.getRoot(setting), tmpPChild = data.nodeChildren(setting, tmpPNode), isFirstNode, isLastNode;
237588
+ if (!tmpPChild || index >= tmpPChild.length - nodes.length) {
237589
+ index = -1;
237590
+ }
237591
+ for (var i = 0, l = nodes.length; i < l; i++) {
237592
+ var node = nodes[i];
237593
+ if (initFlag) {
237594
+ isFirstNode = (index === 0 || tmpPChild.length == nodes.length) && i == 0;
237595
+ isLastNode = index < 0 && i == nodes.length - 1;
237596
+ data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag);
237597
+ data.addNodeCache(setting, node);
237598
+ }
237599
+ var isParent = data.nodeIsParent(setting, node);
237600
+ var childHtml = [];
237601
+ var children = data.nodeChildren(setting, node);
237602
+ if (children && children.length > 0) {
237603
+ childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open);
237604
+ }
237605
+ if (openFlag) {
237606
+ view.makeDOMNodeMainBefore(html, setting, node);
237607
+ view.makeDOMNodeLine(html, setting, node);
237608
+ data.getBeforeA(setting, node, html);
237609
+ view.makeDOMNodeNameBefore(html, setting, node);
237610
+ data.getInnerBeforeA(setting, node, html);
237611
+ view.makeDOMNodeIcon(html, setting, node);
237612
+ data.getInnerAfterA(setting, node, html);
237613
+ view.makeDOMNodeNameAfter(html, setting, node);
237614
+ data.getAfterA(setting, node, html);
237615
+ if (isParent && node.open) {
237616
+ view.makeUlHtml(setting, node, html, childHtml.join(""));
237617
+ }
237618
+ view.makeDOMNodeMainAfter(html, setting, node);
237619
+ data.addCreatedNode(setting, node);
237620
+ }
237621
+ }
237622
+ return html;
237623
+ },
237624
+ appendParentULDom: function(setting, node) {
237625
+ var html = [], nObj = $$(node, setting);
237626
+ if (!nObj.get(0) && !!node.parentTId) {
237627
+ view.appendParentULDom(setting, node.getParentNode());
237628
+ nObj = $$(node, setting);
237629
+ }
237630
+ var ulObj = $$(node, consts.id.UL, setting);
237631
+ if (ulObj.get(0)) {
237632
+ ulObj.remove();
237633
+ }
237634
+ var children = data.nodeChildren(setting, node), childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true);
237635
+ view.makeUlHtml(setting, node, html, childHtml.join(""));
237636
+ nObj.append(html.join(""));
237637
+ },
237638
+ asyncNode: function(setting, node, isSilent, callback) {
237639
+ var i, l;
237640
+ var isParent = data.nodeIsParent(setting, node);
237641
+ if (node && !isParent) {
237642
+ tools.apply(callback);
237643
+ return false;
237644
+ } else if (node && node.isAjaxing) {
237645
+ return false;
237646
+ } else if (tools.apply(setting.callback.beforeAsync, [ setting.treeId, node ], true) == false) {
237647
+ tools.apply(callback);
237648
+ return false;
237649
+ }
237650
+ if (node) {
237651
+ node.isAjaxing = true;
237652
+ var icoObj = $$(node, consts.id.ICON, setting);
237653
+ icoObj.attr({
237654
+ style: "",
237655
+ class: consts.className.BUTTON + " " + consts.className.ICO_LOADING
237656
+ });
237657
+ }
237658
+ var tmpParam = {};
237659
+ var autoParam = tools.apply(setting.async.autoParam, [ setting.treeId, node ], setting.async.autoParam);
237660
+ for (i = 0, l = autoParam.length; node && i < l; i++) {
237661
+ var pKey = autoParam[i].split("="), spKey = pKey;
237662
+ if (pKey.length > 1) {
237663
+ spKey = pKey[1];
237664
+ pKey = pKey[0];
237665
+ }
237666
+ tmpParam[spKey] = node[pKey];
237667
+ }
237668
+ var otherParam = tools.apply(setting.async.otherParam, [ setting.treeId, node ], setting.async.otherParam);
237669
+ if (tools.isArray(otherParam)) {
237670
+ for (i = 0, l = otherParam.length; i < l; i += 2) {
237671
+ tmpParam[otherParam[i]] = otherParam[i + 1];
237672
+ }
237673
+ } else {
237674
+ for (var p in otherParam) {
237675
+ tmpParam[p] = otherParam[p];
237676
+ }
237677
+ }
237678
+ var _tmpV = data.getRoot(setting)._ver;
237679
+ $.ajax({
237680
+ contentType: setting.async.contentType,
237681
+ cache: false,
237682
+ type: setting.async.type,
237683
+ url: tools.apply(setting.async.url, [ setting.treeId, node ], setting.async.url),
237684
+ data: setting.async.contentType.indexOf("application/json") > -1 ? JSON.stringify(tmpParam) : tmpParam,
237685
+ dataType: setting.async.dataType,
237686
+ headers: setting.async.headers,
237687
+ xhrFields: setting.async.xhrFields,
237688
+ success: function(msg) {
237689
+ if (_tmpV != data.getRoot(setting)._ver) {
237690
+ return;
237691
+ }
237692
+ var newNodes = [];
237693
+ try {
237694
+ if (!msg || msg.length == 0) {
237695
+ newNodes = [];
237696
+ } else if (typeof msg == "string") {
237697
+ newNodes = eval("(" + msg + ")");
237698
+ } else {
237699
+ newNodes = msg;
237700
+ }
237701
+ } catch (err) {
237702
+ newNodes = msg;
237703
+ }
237704
+ if (node) {
237705
+ node.isAjaxing = null;
237706
+ node.zAsync = true;
237707
+ }
237708
+ view.setNodeLineIcos(setting, node);
237709
+ if (newNodes && newNodes !== "") {
237710
+ newNodes = tools.apply(setting.async.dataFilter, [ setting.treeId, node, newNodes ], newNodes);
237711
+ view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent);
237712
+ } else {
237713
+ view.addNodes(setting, node, -1, [], !!isSilent);
237714
+ }
237715
+ setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [ setting.treeId, node, msg ]);
237716
+ tools.apply(callback);
237717
+ },
237718
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
237719
+ if (_tmpV != data.getRoot(setting)._ver) {
237720
+ return;
237721
+ }
237722
+ if (node) node.isAjaxing = null;
237723
+ view.setNodeLineIcos(setting, node);
237724
+ setting.treeObj.trigger(consts.event.ASYNC_ERROR, [ setting.treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
237725
+ }
237726
+ });
237727
+ return true;
237728
+ },
237729
+ cancelPreSelectedNode: function(setting, node, excludeNode) {
237730
+ var list = data.getRoot(setting).curSelectedList, i, n;
237731
+ for (i = list.length - 1; i >= 0; i--) {
237732
+ n = list[i];
237733
+ if (node === n || !node && (!excludeNode || excludeNode !== n)) {
237734
+ $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED);
237735
+ if (node) {
237736
+ data.removeSelectedNode(setting, node);
237737
+ break;
237738
+ } else {
237739
+ list.splice(i, 1);
237740
+ setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, n ]);
237741
+ }
237742
+ }
237743
+ }
237744
+ },
237745
+ createNodeCallback: function(setting) {
237746
+ if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
237747
+ var root = data.getRoot(setting);
237748
+ while (root.createdNodes.length > 0) {
237749
+ var node = root.createdNodes.shift();
237750
+ tools.apply(setting.view.addDiyDom, [ setting.treeId, node ]);
237751
+ if (!!setting.callback.onNodeCreated) {
237752
+ setting.treeObj.trigger(consts.event.NODECREATED, [ setting.treeId, node ]);
237753
+ }
237754
+ }
237755
+ }
237756
+ },
237757
+ createNodes: function(setting, level, nodes, parentNode, index) {
237758
+ if (!nodes || nodes.length == 0) return;
237759
+ var root = data.getRoot(setting), openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0);
237760
+ root.createdNodes = [];
237761
+ var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), parentObj, nextObj;
237762
+ if (!parentNode) {
237763
+ parentObj = setting.treeObj;
237764
+ } else {
237765
+ var ulObj = $$(parentNode, consts.id.UL, setting);
237766
+ if (ulObj.get(0)) {
237767
+ parentObj = ulObj;
237768
+ }
237769
+ }
237770
+ if (parentObj) {
237771
+ if (index >= 0) {
237772
+ nextObj = parentObj.children()[index];
237773
+ }
237774
+ if (index >= 0 && nextObj) {
237775
+ $(nextObj).before(zTreeHtml.join(""));
237776
+ } else {
237777
+ parentObj.append(zTreeHtml.join(""));
237778
+ }
237779
+ }
237780
+ view.createNodeCallback(setting);
237781
+ },
237782
+ destroy: function(setting) {
237783
+ if (!setting) return;
237784
+ data.initCache(setting);
237785
+ data.initRoot(setting);
237786
+ event.unbindTree(setting);
237787
+ event.unbindEvent(setting);
237788
+ setting.treeObj.empty();
237789
+ delete settings[setting.treeId];
237790
+ },
237791
+ expandCollapseNode: function(setting, node, expandFlag, animateFlag, callback) {
237792
+ var root = data.getRoot(setting);
237793
+ var tmpCb, _callback;
237794
+ if (!node) {
237795
+ tools.apply(callback, []);
237796
+ return;
237797
+ }
237798
+ var children = data.nodeChildren(setting, node);
237799
+ var isParent = data.nodeIsParent(setting, node);
237800
+ if (root.expandTriggerFlag) {
237801
+ _callback = callback;
237802
+ tmpCb = function() {
237803
+ if (_callback) _callback();
237804
+ if (node.open) {
237805
+ setting.treeObj.trigger(consts.event.EXPAND, [ setting.treeId, node ]);
237806
+ } else {
237807
+ setting.treeObj.trigger(consts.event.COLLAPSE, [ setting.treeId, node ]);
237808
+ }
237809
+ };
237810
+ callback = tmpCb;
237811
+ root.expandTriggerFlag = false;
237812
+ }
237813
+ if (!node.open && isParent && (!$$(node, consts.id.UL, setting).get(0) || children && children.length > 0 && !$$(children[0], setting).get(0))) {
237814
+ view.appendParentULDom(setting, node);
237815
+ view.createNodeCallback(setting);
237816
+ }
237817
+ if (node.open == expandFlag) {
237818
+ tools.apply(callback, []);
237819
+ return;
237820
+ }
237821
+ var ulObj = $$(node, consts.id.UL, setting), switchObj = $$(node, consts.id.SWITCH, setting), icoObj = $$(node, consts.id.ICON, setting);
237822
+ if (isParent) {
237823
+ node.open = !node.open;
237824
+ if (node.iconOpen && node.iconClose) {
237825
+ icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
237826
+ }
237827
+ if (node.open) {
237828
+ view.replaceSwitchClass(node, switchObj, consts.folder.OPEN);
237829
+ view.replaceIcoClass(node, icoObj, consts.folder.OPEN);
237830
+ if (animateFlag == false || setting.view.expandSpeed == "") {
237831
+ ulObj.show();
237832
+ tools.apply(callback, []);
237833
+ } else {
237834
+ if (children && children.length > 0) {
237835
+ ulObj.slideDown(setting.view.expandSpeed, callback);
237836
+ } else {
237837
+ ulObj.show();
237838
+ tools.apply(callback, []);
237839
+ }
237840
+ }
237841
+ } else {
237842
+ view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE);
237843
+ view.replaceIcoClass(node, icoObj, consts.folder.CLOSE);
237844
+ if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) {
237845
+ ulObj.hide();
237846
+ tools.apply(callback, []);
237847
+ } else {
237848
+ ulObj.slideUp(setting.view.expandSpeed, callback);
237849
+ }
237850
+ }
237851
+ } else {
237852
+ tools.apply(callback, []);
237853
+ }
237854
+ },
237855
+ expandCollapseParentNode: function(setting, node, expandFlag, animateFlag, callback) {
237856
+ if (!node) return;
237857
+ if (!node.parentTId) {
237858
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
237859
+ return;
237860
+ } else {
237861
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag);
237862
+ }
237863
+ if (node.parentTId) {
237864
+ view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback);
237865
+ }
237866
+ },
237867
+ expandCollapseSonNode: function(setting, node, expandFlag, animateFlag, callback) {
237868
+ var root = data.getRoot(setting), treeNodes = node ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), selfAnimateSign = node ? false : animateFlag, expandTriggerFlag = data.getRoot(setting).expandTriggerFlag;
237869
+ data.getRoot(setting).expandTriggerFlag = false;
237870
+ if (treeNodes) {
237871
+ for (var i = 0, l = treeNodes.length; i < l; i++) {
237872
+ if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign);
237873
+ }
237874
+ }
237875
+ data.getRoot(setting).expandTriggerFlag = expandTriggerFlag;
237876
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
237877
+ },
237878
+ isSelectedNode: function(setting, node) {
237879
+ if (!node) {
237880
+ return false;
237881
+ }
237882
+ var list = data.getRoot(setting).curSelectedList, i;
237883
+ for (i = list.length - 1; i >= 0; i--) {
237884
+ if (node === list[i]) {
237885
+ return true;
237886
+ }
237887
+ }
237888
+ return false;
237889
+ },
237890
+ makeDOMNodeIcon: function(html, setting, node) {
237891
+ var nameStr = data.nodeName(setting, node), name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
237892
+ html.push("<span id='", node.tId, consts.id.ICON, "' title='' treeNode", consts.id.ICON, " class='", view.makeNodeIcoClass(setting, node), "' style='", view.makeNodeIcoStyle(setting, node), "'></span><span id='", node.tId, consts.id.SPAN, "' class='", consts.className.NAME, "'>", name, "</span>");
237893
+ },
237894
+ makeDOMNodeLine: function(html, setting, node) {
237895
+ html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>");
237896
+ },
237897
+ makeDOMNodeMainAfter: function(html, setting, node) {
237898
+ html.push("</li>");
237899
+ },
237900
+ makeDOMNodeMainBefore: function(html, setting, node) {
237901
+ html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>");
237902
+ },
237903
+ makeDOMNodeNameAfter: function(html, setting, node) {
237904
+ html.push("</a>");
237905
+ },
237906
+ makeDOMNodeNameBefore: function(html, setting, node) {
237907
+ var title = data.nodeTitle(setting, node), url = view.makeNodeUrl(setting, node), fontcss = view.makeNodeFontCss(setting, node), nodeClasses = view.makeNodeClasses(setting, node), fontStyle = [];
237908
+ for (var f in fontcss) {
237909
+ fontStyle.push(f, ":", fontcss[f], ";");
237910
+ }
237911
+ html.push("<a id='", node.tId, consts.id.A, "' class='", consts.className.LEVEL, node.level, nodeClasses.add ? " " + nodeClasses.add.join(" ") : "", "' treeNode", consts.id.A, node.click ? ' onclick="' + node.click + '"' : "", url != null && url.length > 0 ? " href='" + url + "'" : "", " target='", view.makeNodeTarget(node), "' style='", fontStyle.join(""), "'");
237912
+ if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle) && title) {
237913
+ html.push("title='", title.replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), "'");
237914
+ }
237915
+ html.push(">");
237916
+ },
237917
+ makeNodeFontCss: function(setting, node) {
237918
+ var fontCss = tools.apply(setting.view.fontCss, [ setting.treeId, node ], setting.view.fontCss);
237919
+ return fontCss && typeof fontCss != "function" ? fontCss : {};
237920
+ },
237921
+ makeNodeClasses: function(setting, node) {
237922
+ var classes = tools.apply(setting.view.nodeClasses, [ setting.treeId, node ], setting.view.nodeClasses);
237923
+ return classes && typeof classes !== "function" ? classes : {
237924
+ add: [],
237925
+ remove: []
237926
+ };
237927
+ },
237928
+ makeNodeIcoClass: function(setting, node) {
237929
+ var icoCss = [ "ico" ];
237930
+ if (!node.isAjaxing) {
237931
+ var isParent = data.nodeIsParent(setting, node);
237932
+ icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0];
237933
+ if (isParent) {
237934
+ icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
237935
+ } else {
237936
+ icoCss.push(consts.folder.DOCU);
237937
+ }
237938
+ }
237939
+ return consts.className.BUTTON + " " + icoCss.join("_");
237940
+ },
237941
+ makeNodeIcoStyle: function(setting, node) {
237942
+ var icoStyle = [];
237943
+ if (!node.isAjaxing) {
237944
+ var isParent = data.nodeIsParent(setting, node);
237945
+ var icon = isParent && node.iconOpen && node.iconClose ? node.open ? node.iconOpen : node.iconClose : node[setting.data.key.icon];
237946
+ if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;");
237947
+ if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [ setting.treeId, node ], true)) {
237948
+ icoStyle.push("display:none;");
237949
+ }
237950
+ }
237951
+ return icoStyle.join("");
237952
+ },
237953
+ makeNodeLineClass: function(setting, node) {
237954
+ var lineClass = [];
237955
+ if (setting.view.showLine) {
237956
+ if (node.level == 0 && node.isFirstNode && node.isLastNode) {
237957
+ lineClass.push(consts.line.ROOT);
237958
+ } else if (node.level == 0 && node.isFirstNode) {
237959
+ lineClass.push(consts.line.ROOTS);
237960
+ } else if (node.isLastNode) {
237961
+ lineClass.push(consts.line.BOTTOM);
237962
+ } else {
237963
+ lineClass.push(consts.line.CENTER);
237964
+ }
237965
+ } else {
237966
+ lineClass.push(consts.line.NOLINE);
237967
+ }
237968
+ if (data.nodeIsParent(setting, node)) {
237969
+ lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
237970
+ } else {
237971
+ lineClass.push(consts.folder.DOCU);
237972
+ }
237973
+ return view.makeNodeLineClassEx(node) + lineClass.join("_");
237974
+ },
237975
+ makeNodeLineClassEx: function(node) {
237976
+ return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " ";
237977
+ },
237978
+ makeNodeTarget: function(node) {
237979
+ return node.target || "_blank";
237980
+ },
237981
+ makeNodeUrl: function(setting, node) {
237982
+ var urlKey = setting.data.key.url;
237983
+ return node[urlKey] ? node[urlKey] : null;
237984
+ },
237985
+ makeUlHtml: function(setting, node, html, content) {
237986
+ html.push("<ul id='", node.tId, consts.id.UL, "' class='", consts.className.LEVEL, node.level, " ", view.makeUlLineClass(setting, node), "' style='display:", node.open ? "block" : "none", "'>");
237987
+ html.push(content);
237988
+ html.push("</ul>");
237989
+ },
237990
+ makeUlLineClass: function(setting, node) {
237991
+ return setting.view.showLine && !node.isLastNode ? consts.line.LINE : "";
237992
+ },
237993
+ removeChildNodes: function(setting, node) {
237994
+ if (!node) return;
237995
+ var nodes = data.nodeChildren(setting, node);
237996
+ if (!nodes) return;
237997
+ for (var i = 0, l = nodes.length; i < l; i++) {
237998
+ data.removeNodeCache(setting, nodes[i]);
237999
+ }
238000
+ data.removeSelectedNode(setting);
238001
+ delete node[setting.data.key.children];
238002
+ if (!setting.data.keep.parent) {
238003
+ data.nodeIsParent(setting, node, false);
238004
+ node.open = false;
238005
+ var tmp_switchObj = $$(node, consts.id.SWITCH, setting), tmp_icoObj = $$(node, consts.id.ICON, setting);
238006
+ view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU);
238007
+ view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU);
238008
+ $$(node, consts.id.UL, setting).remove();
238009
+ } else {
238010
+ $$(node, consts.id.UL, setting).empty();
238011
+ }
238012
+ },
238013
+ scrollIntoView: function(setting, dom) {
238014
+ if (!dom) {
238015
+ return;
238016
+ }
238017
+ if (typeof Element === "undefined" || typeof HTMLElement === "undefined") {
238018
+ var contRect = setting.treeObj.get(0).getBoundingClientRect(), findMeRect = dom.getBoundingClientRect();
238019
+ if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom || findMeRect.right > contRect.right || findMeRect.left < contRect.left) {
238020
+ dom.scrollIntoView();
238021
+ }
238022
+ return;
238023
+ }
238024
+ if (!Element.prototype.scrollIntoViewIfNeeded) {
238025
+ Element.prototype.scrollIntoViewIfNeeded = function(centerIfNeeded) {
238026
+ "use strict";
238027
+ function makeRange(start, length) {
238028
+ return {
238029
+ start: start,
238030
+ length: length,
238031
+ end: start + length
238032
+ };
238033
+ }
238034
+ function coverRange(inner, outer) {
238035
+ if (false === centerIfNeeded || outer.start < inner.end && inner.start < outer.end) {
238036
+ return Math.max(inner.end - outer.length, Math.min(outer.start, inner.start));
238037
+ }
238038
+ return (inner.start + inner.end - outer.length) / 2;
238039
+ }
238040
+ function makePoint(x, y) {
238041
+ return {
238042
+ x: x,
238043
+ y: y,
238044
+ translate: function translate(dX, dY) {
238045
+ return makePoint(x + dX, y + dY);
238046
+ }
238047
+ };
238048
+ }
238049
+ function absolute(elem, pt) {
238050
+ while (elem) {
238051
+ pt = pt.translate(elem.offsetLeft, elem.offsetTop);
238052
+ elem = elem.offsetParent;
238053
+ }
238054
+ return pt;
238055
+ }
238056
+ var target = absolute(this, makePoint(0, 0)), extent = makePoint(this.offsetWidth, this.offsetHeight), elem = this.parentNode, origin;
238057
+ while (elem instanceof HTMLElement) {
238058
+ origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop));
238059
+ elem.scrollLeft = coverRange(makeRange(target.x - origin.x, extent.x), makeRange(elem.scrollLeft, elem.clientWidth));
238060
+ elem.scrollTop = coverRange(makeRange(target.y - origin.y, extent.y), makeRange(elem.scrollTop, elem.clientHeight));
238061
+ target = target.translate(-elem.scrollLeft, -elem.scrollTop);
238062
+ elem = elem.parentNode;
238063
+ }
238064
+ };
238065
+ }
238066
+ dom.scrollIntoViewIfNeeded();
238067
+ },
238068
+ setFirstNode: function(setting, parentNode) {
238069
+ var children = data.nodeChildren(setting, parentNode);
238070
+ if (children.length > 0) {
238071
+ children[0].isFirstNode = true;
238072
+ }
238073
+ },
238074
+ setLastNode: function(setting, parentNode) {
238075
+ var children = data.nodeChildren(setting, parentNode);
238076
+ if (children.length > 0) {
238077
+ children[children.length - 1].isLastNode = true;
238078
+ }
238079
+ },
238080
+ removeNode: function(setting, node) {
238081
+ var root = data.getRoot(setting), parentNode = node.parentTId ? node.getParentNode() : root;
238082
+ node.isFirstNode = false;
238083
+ node.isLastNode = false;
238084
+ node.getPreNode = function() {
238085
+ return null;
238086
+ };
238087
+ node.getNextNode = function() {
238088
+ return null;
238089
+ };
238090
+ if (!data.getNodeCache(setting, node.tId)) {
238091
+ return;
238092
+ }
238093
+ $$(node, setting).remove();
238094
+ data.removeNodeCache(setting, node);
238095
+ data.removeSelectedNode(setting, node);
238096
+ var children = data.nodeChildren(setting, parentNode);
238097
+ for (var i = 0, l = children.length; i < l; i++) {
238098
+ if (children[i].tId == node.tId) {
238099
+ children.splice(i, 1);
238100
+ break;
238101
+ }
238102
+ }
238103
+ view.setFirstNode(setting, parentNode);
238104
+ view.setLastNode(setting, parentNode);
238105
+ var tmp_ulObj, tmp_switchObj, tmp_icoObj, childLength = children.length;
238106
+ if (!setting.data.keep.parent && childLength == 0) {
238107
+ data.nodeIsParent(setting, parentNode, false);
238108
+ parentNode.open = false;
238109
+ delete parentNode[setting.data.key.children];
238110
+ tmp_ulObj = $$(parentNode, consts.id.UL, setting);
238111
+ tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting);
238112
+ tmp_icoObj = $$(parentNode, consts.id.ICON, setting);
238113
+ view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU);
238114
+ view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU);
238115
+ tmp_ulObj.css("display", "none");
238116
+ } else if (setting.view.showLine && childLength > 0) {
238117
+ var newLast = children[childLength - 1];
238118
+ tmp_ulObj = $$(newLast, consts.id.UL, setting);
238119
+ tmp_switchObj = $$(newLast, consts.id.SWITCH, setting);
238120
+ tmp_icoObj = $$(newLast, consts.id.ICON, setting);
238121
+ if (parentNode == root) {
238122
+ if (children.length == 1) {
238123
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT);
238124
+ } else {
238125
+ var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting);
238126
+ view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS);
238127
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
238128
+ }
238129
+ } else {
238130
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
238131
+ }
238132
+ tmp_ulObj.removeClass(consts.line.LINE);
238133
+ }
238134
+ },
238135
+ replaceIcoClass: function(node, obj, newName) {
238136
+ if (!obj || node.isAjaxing) return;
238137
+ var tmpName = obj.attr("class");
238138
+ if (tmpName == undefined) return;
238139
+ var tmpList = tmpName.split("_");
238140
+ switch (newName) {
238141
+ case consts.folder.OPEN:
238142
+ case consts.folder.CLOSE:
238143
+ case consts.folder.DOCU:
238144
+ tmpList[tmpList.length - 1] = newName;
238145
+ break;
238146
+ }
238147
+ obj.attr("class", tmpList.join("_"));
238148
+ },
238149
+ replaceSwitchClass: function(node, obj, newName) {
238150
+ if (!obj) return;
238151
+ var tmpName = obj.attr("class");
238152
+ if (tmpName == undefined) return;
238153
+ var tmpList = tmpName.split("_");
238154
+ switch (newName) {
238155
+ case consts.line.ROOT:
238156
+ case consts.line.ROOTS:
238157
+ case consts.line.CENTER:
238158
+ case consts.line.BOTTOM:
238159
+ case consts.line.NOLINE:
238160
+ tmpList[0] = view.makeNodeLineClassEx(node) + newName;
238161
+ break;
238162
+
238163
+ case consts.folder.OPEN:
238164
+ case consts.folder.CLOSE:
238165
+ case consts.folder.DOCU:
238166
+ tmpList[1] = newName;
238167
+ break;
238168
+ }
238169
+ obj.attr("class", tmpList.join("_"));
238170
+ if (newName !== consts.folder.DOCU) {
238171
+ obj.removeAttr("disabled");
238172
+ } else {
238173
+ obj.attr("disabled", "disabled");
238174
+ }
238175
+ },
238176
+ selectNode: function(setting, node, addFlag) {
238177
+ if (!addFlag) {
238178
+ view.cancelPreSelectedNode(setting, null, node);
238179
+ }
238180
+ $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED);
238181
+ data.addSelectedNode(setting, node);
238182
+ setting.treeObj.trigger(consts.event.SELECTED, [ setting.treeId, node ]);
238183
+ },
238184
+ setNodeFontCss: function(setting, treeNode) {
238185
+ var aObj = $$(treeNode, consts.id.A, setting), fontCss = view.makeNodeFontCss(setting, treeNode);
238186
+ if (fontCss) {
238187
+ aObj.css(fontCss);
238188
+ }
238189
+ },
238190
+ setNodeClasses: function(setting, treeNode) {
238191
+ var aObj = $$(treeNode, consts.id.A, setting), classes = view.makeNodeClasses(setting, treeNode);
238192
+ if ("add" in classes && classes.add.length) {
238193
+ aObj.addClass(classes.add.join(" "));
238194
+ }
238195
+ if ("remove" in classes && classes.remove.length) {
238196
+ aObj.removeClass(classes.remove.join(" "));
238197
+ }
238198
+ },
238199
+ setNodeLineIcos: function(setting, node) {
238200
+ if (!node) return;
238201
+ var switchObj = $$(node, consts.id.SWITCH, setting), ulObj = $$(node, consts.id.UL, setting), icoObj = $$(node, consts.id.ICON, setting), ulLine = view.makeUlLineClass(setting, node);
238202
+ if (ulLine.length == 0) {
238203
+ ulObj.removeClass(consts.line.LINE);
238204
+ } else {
238205
+ ulObj.addClass(ulLine);
238206
+ }
238207
+ switchObj.attr("class", view.makeNodeLineClass(setting, node));
238208
+ if (data.nodeIsParent(setting, node)) {
238209
+ switchObj.removeAttr("disabled");
238210
+ } else {
238211
+ switchObj.attr("disabled", "disabled");
238212
+ }
238213
+ icoObj.removeAttr("style");
238214
+ icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
238215
+ icoObj.attr("class", view.makeNodeIcoClass(setting, node));
238216
+ },
238217
+ setNodeName: function(setting, node) {
238218
+ var title = data.nodeTitle(setting, node), nObj = $$(node, consts.id.SPAN, setting);
238219
+ nObj.empty();
238220
+ if (setting.view.nameIsHTML) {
238221
+ nObj.html(data.nodeName(setting, node));
238222
+ } else {
238223
+ nObj.text(data.nodeName(setting, node));
238224
+ }
238225
+ if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle)) {
238226
+ var aObj = $$(node, consts.id.A, setting);
238227
+ aObj.attr("title", !title ? "" : title);
238228
+ }
238229
+ },
238230
+ setNodeTarget: function(setting, node) {
238231
+ var aObj = $$(node, consts.id.A, setting);
238232
+ aObj.attr("target", view.makeNodeTarget(node));
238233
+ },
238234
+ setNodeUrl: function(setting, node) {
238235
+ var aObj = $$(node, consts.id.A, setting), url = view.makeNodeUrl(setting, node);
238236
+ if (url == null || url.length == 0) {
238237
+ aObj.removeAttr("href");
238238
+ } else {
238239
+ aObj.attr("href", url);
238240
+ }
238241
+ },
238242
+ switchNode: function(setting, node) {
238243
+ if (node.open || !tools.canAsync(setting, node)) {
238244
+ view.expandCollapseNode(setting, node, !node.open);
238245
+ } else if (setting.async.enable) {
238246
+ if (!view.asyncNode(setting, node)) {
238247
+ view.expandCollapseNode(setting, node, !node.open);
238248
+ return;
238249
+ }
238250
+ } else if (node) {
238251
+ view.expandCollapseNode(setting, node, !node.open);
238252
+ }
238253
+ }
238254
+ };
238255
+ $.fn.zTree = {
238256
+ consts: _consts,
238257
+ _z: {
238258
+ tools: tools,
238259
+ view: view,
238260
+ event: event,
238261
+ data: data
238262
+ },
238263
+ getZTreeObj: function(treeId) {
238264
+ var o = data.getZTreeTools(treeId);
238265
+ return o ? o : null;
238266
+ },
238267
+ destroy: function(treeId) {
238268
+ if (!!treeId && treeId.length > 0) {
238269
+ view.destroy(data.getSetting(treeId));
238270
+ } else {
238271
+ for (var s in settings) {
238272
+ view.destroy(settings[s]);
238273
+ }
238274
+ }
238275
+ },
238276
+ init: function(obj, zSetting, zNodes) {
238277
+ var setting = tools.clone(_setting);
238278
+ $.extend(true, setting, zSetting);
238279
+ setting.treeId = obj.attr("id");
238280
+ setting.treeObj = obj;
238281
+ setting.treeObj.empty();
238282
+ settings[setting.treeId] = setting;
238283
+ if (typeof document.body.style.maxHeight === "undefined") {
238284
+ setting.view.expandSpeed = "";
238285
+ }
238286
+ data.initRoot(setting);
238287
+ var root = data.getRoot(setting);
238288
+ zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [ zNodes ]) : [];
238289
+ if (setting.data.simpleData.enable) {
238290
+ data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes));
238291
+ } else {
238292
+ data.nodeChildren(setting, root, zNodes);
238293
+ }
238294
+ data.initCache(setting);
238295
+ event.unbindTree(setting);
238296
+ event.bindTree(setting);
238297
+ event.unbindEvent(setting);
238298
+ event.bindEvent(setting);
238299
+ var zTreeTools = {
238300
+ setting: setting,
238301
+ addNodes: function(parentNode, index, newNodes, isSilent) {
238302
+ if (!parentNode) parentNode = null;
238303
+ var isParent = data.nodeIsParent(setting, parentNode);
238304
+ if (parentNode && !isParent && setting.data.keep.leaf) return null;
238305
+ var i = parseInt(index, 10);
238306
+ if (isNaN(i)) {
238307
+ isSilent = !!newNodes;
238308
+ newNodes = index;
238309
+ index = -1;
238310
+ } else {
238311
+ index = i;
238312
+ }
238313
+ if (!newNodes) return null;
238314
+ var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [ newNodes ]);
238315
+ function addCallback() {
238316
+ view.addNodes(setting, parentNode, index, xNewNodes, isSilent == true);
238317
+ }
238318
+ if (tools.canAsync(setting, parentNode)) {
238319
+ view.asyncNode(setting, parentNode, isSilent, addCallback);
238320
+ } else {
238321
+ addCallback();
238322
+ }
238323
+ return xNewNodes;
238324
+ },
238325
+ cancelSelectedNode: function(node) {
238326
+ view.cancelPreSelectedNode(setting, node);
238327
+ },
238328
+ destroy: function() {
238329
+ view.destroy(setting);
238330
+ },
238331
+ expandAll: function(expandFlag) {
238332
+ expandFlag = !!expandFlag;
238333
+ view.expandCollapseSonNode(setting, null, expandFlag, true);
238334
+ return expandFlag;
238335
+ },
238336
+ expandNode: function(node, expandFlag, sonSign, focus, callbackFlag) {
238337
+ if (!node || !data.nodeIsParent(setting, node)) return null;
238338
+ if (expandFlag !== true && expandFlag !== false) {
238339
+ expandFlag = !node.open;
238340
+ }
238341
+ callbackFlag = !!callbackFlag;
238342
+ if (callbackFlag && expandFlag && tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) {
238343
+ return null;
238344
+ } else if (callbackFlag && !expandFlag && tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) {
238345
+ return null;
238346
+ }
238347
+ if (expandFlag && node.parentTId) {
238348
+ view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false);
238349
+ }
238350
+ if (expandFlag === node.open && !sonSign) {
238351
+ return null;
238352
+ }
238353
+ data.getRoot(setting).expandTriggerFlag = callbackFlag;
238354
+ if (!tools.canAsync(setting, node) && sonSign) {
238355
+ view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus);
238356
+ } else {
238357
+ node.open = !expandFlag;
238358
+ view.switchNode(this.setting, node);
238359
+ showNodeFocus();
238360
+ }
238361
+ return expandFlag;
238362
+ function showNodeFocus() {
238363
+ var a = $$(node, consts.id.A, setting).get(0);
238364
+ if (a && focus !== false) {
238365
+ view.scrollIntoView(setting, a);
238366
+ }
238367
+ }
238368
+ },
238369
+ getNodes: function() {
238370
+ return data.getNodes(setting);
238371
+ },
238372
+ getNodeByParam: function(key, value, parentNode) {
238373
+ if (!key) return null;
238374
+ return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
238375
+ },
238376
+ getNodeByTId: function(tId) {
238377
+ return data.getNodeCache(setting, tId);
238378
+ },
238379
+ getNodesByParam: function(key, value, parentNode) {
238380
+ if (!key) return null;
238381
+ return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
238382
+ },
238383
+ getNodesByParamFuzzy: function(key, value, parentNode) {
238384
+ if (!key) return null;
238385
+ return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
238386
+ },
238387
+ getNodesByFilter: function(filter, isSingle, parentNode, invokeParam) {
238388
+ isSingle = !!isSingle;
238389
+ if (!filter || typeof filter != "function") return isSingle ? null : [];
238390
+ return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam);
238391
+ },
238392
+ getNodeIndex: function(node) {
238393
+ if (!node) return null;
238394
+ var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
238395
+ var children = data.nodeChildren(setting, parentNode);
238396
+ for (var i = 0, l = children.length; i < l; i++) {
238397
+ if (children[i] == node) return i;
238398
+ }
238399
+ return -1;
238400
+ },
238401
+ getSelectedNodes: function() {
238402
+ var r = [], list = data.getRoot(setting).curSelectedList;
238403
+ for (var i = 0, l = list.length; i < l; i++) {
238404
+ r.push(list[i]);
238405
+ }
238406
+ return r;
238407
+ },
238408
+ isSelectedNode: function(node) {
238409
+ return data.isSelectedNode(setting, node);
238410
+ },
238411
+ reAsyncChildNodesPromise: function(parentNode, reloadType, isSilent) {
238412
+ var promise = new Promise((function(resolve, reject) {
238413
+ try {
238414
+ zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, (function() {
238415
+ resolve(parentNode);
238416
+ }));
238417
+ } catch (e) {
238418
+ reject(e);
238419
+ }
238420
+ }));
238421
+ return promise;
238422
+ },
238423
+ reAsyncChildNodes: function(parentNode, reloadType, isSilent, callback) {
238424
+ if (!this.setting.async.enable) return;
238425
+ var isRoot = !parentNode;
238426
+ if (isRoot) {
238427
+ parentNode = data.getRoot(setting);
238428
+ }
238429
+ if (reloadType == "refresh") {
238430
+ var children = data.nodeChildren(setting, parentNode);
238431
+ for (var i = 0, l = children ? children.length : 0; i < l; i++) {
238432
+ data.removeNodeCache(setting, children[i]);
238433
+ }
238434
+ data.removeSelectedNode(setting);
238435
+ data.nodeChildren(setting, parentNode, []);
238436
+ if (isRoot) {
238437
+ this.setting.treeObj.empty();
238438
+ } else {
238439
+ var ulObj = $$(parentNode, consts.id.UL, setting);
238440
+ ulObj.empty();
238441
+ }
238442
+ }
238443
+ view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback);
238444
+ },
238445
+ refresh: function() {
238446
+ this.setting.treeObj.empty();
238447
+ var root = data.getRoot(setting), nodes = data.nodeChildren(setting, root);
238448
+ data.initRoot(setting);
238449
+ data.nodeChildren(setting, root, nodes);
238450
+ data.initCache(setting);
238451
+ view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1);
238452
+ },
238453
+ removeChildNodes: function(node) {
238454
+ if (!node) return null;
238455
+ var nodes = data.nodeChildren(setting, node);
238456
+ view.removeChildNodes(setting, node);
238457
+ return nodes ? nodes : null;
238458
+ },
238459
+ removeNode: function(node, callbackFlag) {
238460
+ if (!node) return;
238461
+ callbackFlag = !!callbackFlag;
238462
+ if (callbackFlag && tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return;
238463
+ view.removeNode(setting, node);
238464
+ if (callbackFlag) {
238465
+ this.setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
238466
+ }
238467
+ },
238468
+ selectNode: function(node, addFlag, isSilent) {
238469
+ if (!node) return;
238470
+ if (tools.uCanDo(setting)) {
238471
+ addFlag = setting.view.selectedMulti && addFlag;
238472
+ if (node.parentTId) {
238473
+ view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus);
238474
+ } else if (!isSilent) {
238475
+ try {
238476
+ $$(node, setting).focus().blur();
238477
+ } catch (e) {}
238478
+ }
238479
+ view.selectNode(setting, node, addFlag);
238480
+ }
238481
+ function showNodeFocus() {
238482
+ if (isSilent) {
238483
+ return;
238484
+ }
238485
+ var a = $$(node, setting).get(0);
238486
+ view.scrollIntoView(setting, a);
238487
+ }
238488
+ },
238489
+ transformTozTreeNodes: function(simpleNodes) {
238490
+ return data.transformTozTreeFormat(setting, simpleNodes);
238491
+ },
238492
+ transformToArray: function(nodes) {
238493
+ return data.transformToArrayFormat(setting, nodes);
238494
+ },
238495
+ updateNode: function(node, checkTypeFlag) {
238496
+ if (!node) return;
238497
+ var nObj = $$(node, setting);
238498
+ if (nObj.get(0) && tools.uCanDo(setting)) {
238499
+ view.setNodeName(setting, node);
238500
+ view.setNodeTarget(setting, node);
238501
+ view.setNodeUrl(setting, node);
238502
+ view.setNodeLineIcos(setting, node);
238503
+ view.setNodeFontCss(setting, node);
238504
+ view.setNodeClasses(setting, node);
238505
+ }
238506
+ }
238507
+ };
238508
+ root.treeTools = zTreeTools;
238509
+ data.setZTreeTools(setting, zTreeTools);
238510
+ var children = data.nodeChildren(setting, root);
238511
+ if (children && children.length > 0) {
238512
+ view.createNodes(setting, 0, children, null, -1);
238513
+ } else if (setting.async.enable && setting.async.url && setting.async.url !== "") {
238514
+ view.asyncNode(setting);
238515
+ }
238516
+ return zTreeTools;
238517
+ }
238518
+ };
238519
+ var zt = $.fn.zTree, $$ = tools.$, consts = zt.consts;
238520
+ })(jQuery);
238521
+
238522
+ (function($) {
238523
+ var _consts = {
238524
+ event: {
238525
+ CHECK: "ztree_check"
238526
+ },
238527
+ id: {
238528
+ CHECK: "_check"
238529
+ },
238530
+ checkbox: {
238531
+ STYLE: "checkbox",
238532
+ DEFAULT: "chk",
238533
+ DISABLED: "disable",
238534
+ FALSE: "false",
238535
+ TRUE: "true",
238536
+ FULL: "full",
238537
+ PART: "part",
238538
+ FOCUS: "focus"
238539
+ },
238540
+ radio: {
238541
+ STYLE: "radio",
238542
+ TYPE_ALL: "all",
238543
+ TYPE_LEVEL: "level"
238544
+ }
238545
+ }, _setting = {
238546
+ check: {
238547
+ enable: false,
238548
+ autoCheckTrigger: false,
238549
+ chkStyle: _consts.checkbox.STYLE,
238550
+ nocheckInherit: false,
238551
+ chkDisabledInherit: false,
238552
+ radioType: _consts.radio.TYPE_LEVEL,
238553
+ chkboxType: {
238554
+ Y: "ps",
238555
+ N: "ps"
238556
+ }
238557
+ },
238558
+ data: {
238559
+ key: {
238560
+ checked: "checked"
238561
+ }
238562
+ },
238563
+ callback: {
238564
+ beforeCheck: null,
238565
+ onCheck: null
238566
+ }
238567
+ }, _initRoot = function(setting) {
238568
+ var r = data.getRoot(setting);
238569
+ r.radioCheckedList = [];
238570
+ }, _initCache = function(treeId) {}, _bindEvent = function(setting) {
238571
+ var o = setting.treeObj, c = consts.event;
238572
+ o.bind(c.CHECK, (function(event, srcEvent, treeId, node) {
238573
+ event.srcEvent = srcEvent;
238574
+ tools.apply(setting.callback.onCheck, [ event, treeId, node ]);
238575
+ }));
238576
+ }, _unbindEvent = function(setting) {
238577
+ var o = setting.treeObj, c = consts.event;
238578
+ o.unbind(c.CHECK);
238579
+ }, _eventProxy = function(e) {
238580
+ var target = e.target, setting = data.getSetting(e.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null;
238581
+ if (tools.eqs(e.type, "mouseover")) {
238582
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
238583
+ tId = tools.getNodeMainDom(target).id;
238584
+ nodeEventType = "mouseoverCheck";
238585
+ }
238586
+ } else if (tools.eqs(e.type, "mouseout")) {
238587
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
238588
+ tId = tools.getNodeMainDom(target).id;
238589
+ nodeEventType = "mouseoutCheck";
238590
+ }
238591
+ } else if (tools.eqs(e.type, "click")) {
238592
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
238593
+ tId = tools.getNodeMainDom(target).id;
238594
+ nodeEventType = "checkNode";
238595
+ }
238596
+ }
238597
+ if (tId.length > 0) {
238598
+ node = data.getNodeCache(setting, tId);
238599
+ switch (nodeEventType) {
238600
+ case "checkNode":
238601
+ nodeEventCallback = _handler.onCheckNode;
238602
+ break;
238603
+
238604
+ case "mouseoverCheck":
238605
+ nodeEventCallback = _handler.onMouseoverCheck;
238606
+ break;
238607
+
238608
+ case "mouseoutCheck":
238609
+ nodeEventCallback = _handler.onMouseoutCheck;
238610
+ break;
238611
+ }
238612
+ }
238613
+ var proxyResult = {
238614
+ stop: nodeEventType === "checkNode",
238615
+ node: node,
238616
+ nodeEventType: nodeEventType,
238617
+ nodeEventCallback: nodeEventCallback,
238618
+ treeEventType: treeEventType,
238619
+ treeEventCallback: treeEventCallback
238620
+ };
238621
+ return proxyResult;
238622
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
238623
+ if (!n) return;
238624
+ var checked = data.nodeChecked(setting, n);
238625
+ n.checkedOld = checked;
238626
+ if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true");
238627
+ n.nocheck = !!n.nocheck || setting.check.nocheckInherit && parentNode && !!parentNode.nocheck;
238628
+ if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true");
238629
+ n.chkDisabled = !!n.chkDisabled || setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled;
238630
+ if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true");
238631
+ n.halfCheck = !!n.halfCheck;
238632
+ n.check_Child_State = -1;
238633
+ n.check_Focus = false;
238634
+ n.getCheckStatus = function() {
238635
+ return data.getCheckStatus(setting, n);
238636
+ };
238637
+ if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) {
238638
+ var r = data.getRoot(setting);
238639
+ r.radioCheckedList.push(n);
238640
+ }
238641
+ }, _beforeA = function(setting, node, html) {
238642
+ if (setting.check.enable) {
238643
+ data.makeChkFlag(setting, node);
238644
+ html.push("<span ID='", node.tId, consts.id.CHECK, "' class='", view.makeChkClass(setting, node), "' treeNode", consts.id.CHECK, node.nocheck === true ? " style='display:none;'" : "", "></span>");
238645
+ }
238646
+ }, _zTreeTools = function(setting, zTreeTools) {
238647
+ zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
238648
+ var nodeChecked = data.nodeChecked(setting, node);
238649
+ if (node.chkDisabled === true) return;
238650
+ if (checked !== true && checked !== false) {
238651
+ checked = !nodeChecked;
238652
+ }
238653
+ callbackFlag = !!callbackFlag;
238654
+ if (nodeChecked === checked && !checkTypeFlag) {
238655
+ return;
238656
+ } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [ this.setting.treeId, node ], true) == false) {
238657
+ return;
238658
+ }
238659
+ if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
238660
+ data.nodeChecked(setting, node, checked);
238661
+ var checkObj = $$(node, consts.id.CHECK, this.setting);
238662
+ if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
238663
+ view.setChkClass(this.setting, checkObj, node);
238664
+ view.repairParentChkClassWithSelf(this.setting, node);
238665
+ if (callbackFlag) {
238666
+ this.setting.treeObj.trigger(consts.event.CHECK, [ null, this.setting.treeId, node ]);
238667
+ }
238668
+ }
238669
+ };
238670
+ zTreeTools.checkAllNodes = function(checked) {
238671
+ view.repairAllChk(this.setting, !!checked);
238672
+ };
238673
+ zTreeTools.getCheckedNodes = function(checked) {
238674
+ checked = checked !== false;
238675
+ var children = data.nodeChildren(setting, data.getRoot(this.setting));
238676
+ return data.getTreeCheckedNodes(this.setting, children, checked);
238677
+ };
238678
+ zTreeTools.getChangeCheckedNodes = function() {
238679
+ var children = data.nodeChildren(setting, data.getRoot(this.setting));
238680
+ return data.getTreeChangeCheckedNodes(this.setting, children);
238681
+ };
238682
+ zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
238683
+ disabled = !!disabled;
238684
+ inheritParent = !!inheritParent;
238685
+ inheritChildren = !!inheritChildren;
238686
+ view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
238687
+ view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
238688
+ };
238689
+ var _updateNode = zTreeTools.updateNode;
238690
+ zTreeTools.updateNode = function(node, checkTypeFlag) {
238691
+ if (_updateNode) _updateNode.apply(zTreeTools, arguments);
238692
+ if (!node || !this.setting.check.enable) return;
238693
+ var nObj = $$(node, this.setting);
238694
+ if (nObj.get(0) && tools.uCanDo(this.setting)) {
238695
+ var checkObj = $$(node, consts.id.CHECK, this.setting);
238696
+ if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
238697
+ view.setChkClass(this.setting, checkObj, node);
238698
+ view.repairParentChkClassWithSelf(this.setting, node);
238699
+ }
238700
+ };
238701
+ }, _data = {
238702
+ getRadioCheckedList: function(setting) {
238703
+ var checkedList = data.getRoot(setting).radioCheckedList;
238704
+ for (var i = 0, j = checkedList.length; i < j; i++) {
238705
+ if (!data.getNodeCache(setting, checkedList[i].tId)) {
238706
+ checkedList.splice(i, 1);
238707
+ i--;
238708
+ j--;
238709
+ }
238710
+ }
238711
+ return checkedList;
238712
+ },
238713
+ getCheckStatus: function(setting, node) {
238714
+ if (!setting.check.enable || node.nocheck || node.chkDisabled) return null;
238715
+ var checked = data.nodeChecked(setting, node), r = {
238716
+ checked: checked,
238717
+ half: node.halfCheck ? node.halfCheck : setting.check.chkStyle == consts.radio.STYLE ? node.check_Child_State === 2 : checked ? node.check_Child_State > -1 && node.check_Child_State < 2 : node.check_Child_State > 0
238718
+ };
238719
+ return r;
238720
+ },
238721
+ getTreeCheckedNodes: function(setting, nodes, checked, results) {
238722
+ if (!nodes) return [];
238723
+ var onlyOne = checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL;
238724
+ results = !results ? [] : results;
238725
+ for (var i = 0, l = nodes.length; i < l; i++) {
238726
+ var node = nodes[i];
238727
+ var children = data.nodeChildren(setting, node);
238728
+ var nodeChecked = data.nodeChecked(setting, node);
238729
+ if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) {
238730
+ results.push(node);
238731
+ if (onlyOne) {
238732
+ break;
238733
+ }
238734
+ }
238735
+ data.getTreeCheckedNodes(setting, children, checked, results);
238736
+ if (onlyOne && results.length > 0) {
238737
+ break;
238738
+ }
238739
+ }
238740
+ return results;
238741
+ },
238742
+ getTreeChangeCheckedNodes: function(setting, nodes, results) {
238743
+ if (!nodes) return [];
238744
+ results = !results ? [] : results;
238745
+ for (var i = 0, l = nodes.length; i < l; i++) {
238746
+ var node = nodes[i];
238747
+ var children = data.nodeChildren(setting, node);
238748
+ var nodeChecked = data.nodeChecked(setting, node);
238749
+ if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) {
238750
+ results.push(node);
238751
+ }
238752
+ data.getTreeChangeCheckedNodes(setting, children, results);
238753
+ }
238754
+ return results;
238755
+ },
238756
+ makeChkFlag: function(setting, node) {
238757
+ if (!node) return;
238758
+ var chkFlag = -1;
238759
+ var children = data.nodeChildren(setting, node);
238760
+ if (children) {
238761
+ for (var i = 0, l = children.length; i < l; i++) {
238762
+ var cNode = children[i];
238763
+ var nodeChecked = data.nodeChecked(setting, cNode);
238764
+ var tmp = -1;
238765
+ if (setting.check.chkStyle == consts.radio.STYLE) {
238766
+ if (cNode.nocheck === true || cNode.chkDisabled === true) {
238767
+ tmp = cNode.check_Child_State;
238768
+ } else if (cNode.halfCheck === true) {
238769
+ tmp = 2;
238770
+ } else if (nodeChecked) {
238771
+ tmp = 2;
238772
+ } else {
238773
+ tmp = cNode.check_Child_State > 0 ? 2 : 0;
238774
+ }
238775
+ if (tmp == 2) {
238776
+ chkFlag = 2;
238777
+ break;
238778
+ } else if (tmp == 0) {
238779
+ chkFlag = 0;
238780
+ }
238781
+ } else if (setting.check.chkStyle == consts.checkbox.STYLE) {
238782
+ if (cNode.nocheck === true || cNode.chkDisabled === true) {
238783
+ tmp = cNode.check_Child_State;
238784
+ } else if (cNode.halfCheck === true) {
238785
+ tmp = 1;
238786
+ } else if (nodeChecked) {
238787
+ tmp = cNode.check_Child_State === -1 || cNode.check_Child_State === 2 ? 2 : 1;
238788
+ } else {
238789
+ tmp = cNode.check_Child_State > 0 ? 1 : 0;
238790
+ }
238791
+ if (tmp === 1) {
238792
+ chkFlag = 1;
238793
+ break;
238794
+ } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) {
238795
+ chkFlag = 1;
238796
+ break;
238797
+ } else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
238798
+ chkFlag = 1;
238799
+ break;
238800
+ } else if (tmp > -1) {
238801
+ chkFlag = tmp;
238802
+ }
238803
+ }
238804
+ }
238805
+ }
238806
+ node.check_Child_State = chkFlag;
238807
+ }
238808
+ }, _event = {}, _handler = {
238809
+ onCheckNode: function(event, node) {
238810
+ if (node.chkDisabled === true) return false;
238811
+ var setting = data.getSetting(event.data.treeId);
238812
+ if (tools.apply(setting.callback.beforeCheck, [ setting.treeId, node ], true) == false) return true;
238813
+ var nodeChecked = data.nodeChecked(setting, node);
238814
+ data.nodeChecked(setting, node, !nodeChecked);
238815
+ view.checkNodeRelation(setting, node);
238816
+ var checkObj = $$(node, consts.id.CHECK, setting);
238817
+ view.setChkClass(setting, checkObj, node);
238818
+ view.repairParentChkClassWithSelf(setting, node);
238819
+ setting.treeObj.trigger(consts.event.CHECK, [ event, setting.treeId, node ]);
238820
+ return true;
238821
+ },
238822
+ onMouseoverCheck: function(event, node) {
238823
+ if (node.chkDisabled === true) return false;
238824
+ var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
238825
+ node.check_Focus = true;
238826
+ view.setChkClass(setting, checkObj, node);
238827
+ return true;
238828
+ },
238829
+ onMouseoutCheck: function(event, node) {
238830
+ if (node.chkDisabled === true) return false;
238831
+ var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
238832
+ node.check_Focus = false;
238833
+ view.setChkClass(setting, checkObj, node);
238834
+ return true;
238835
+ }
238836
+ }, _tools = {}, _view = {
238837
+ checkNodeRelation: function(setting, node) {
238838
+ var pNode, i, l, r = consts.radio;
238839
+ var nodeChecked = data.nodeChecked(setting, node);
238840
+ if (setting.check.chkStyle == r.STYLE) {
238841
+ var checkedList = data.getRadioCheckedList(setting);
238842
+ if (nodeChecked) {
238843
+ if (setting.check.radioType == r.TYPE_ALL) {
238844
+ for (i = checkedList.length - 1; i >= 0; i--) {
238845
+ pNode = checkedList[i];
238846
+ var pNodeChecked = data.nodeChecked(setting, pNode);
238847
+ if (pNodeChecked && pNode != node) {
238848
+ data.nodeChecked(setting, pNode, false);
238849
+ checkedList.splice(i, 1);
238850
+ view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
238851
+ if (pNode.parentTId != node.parentTId) {
238852
+ view.repairParentChkClassWithSelf(setting, pNode);
238853
+ }
238854
+ }
238855
+ }
238856
+ checkedList.push(node);
238857
+ } else {
238858
+ var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
238859
+ var children = data.nodeChildren(setting, parentNode);
238860
+ for (i = 0, l = children.length; i < l; i++) {
238861
+ pNode = children[i];
238862
+ var pNodeChecked = data.nodeChecked(setting, pNode);
238863
+ if (pNodeChecked && pNode != node) {
238864
+ data.nodeChecked(setting, pNode, false);
238865
+ view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
238866
+ }
238867
+ }
238868
+ }
238869
+ } else if (setting.check.radioType == r.TYPE_ALL) {
238870
+ for (i = 0, l = checkedList.length; i < l; i++) {
238871
+ if (node == checkedList[i]) {
238872
+ checkedList.splice(i, 1);
238873
+ break;
238874
+ }
238875
+ }
238876
+ }
238877
+ } else {
238878
+ var children = data.nodeChildren(setting, node);
238879
+ if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) {
238880
+ view.setSonNodeCheckBox(setting, node, true);
238881
+ }
238882
+ if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) {
238883
+ view.setSonNodeCheckBox(setting, node, false);
238884
+ }
238885
+ if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) {
238886
+ view.setParentNodeCheckBox(setting, node, true);
238887
+ }
238888
+ if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) {
238889
+ view.setParentNodeCheckBox(setting, node, false);
238890
+ }
238891
+ }
238892
+ },
238893
+ makeChkClass: function(setting, node) {
238894
+ var c = consts.checkbox, r = consts.radio, fullStyle = "";
238895
+ var nodeChecked = data.nodeChecked(setting, node);
238896
+ if (node.chkDisabled === true) {
238897
+ fullStyle = c.DISABLED;
238898
+ } else if (node.halfCheck) {
238899
+ fullStyle = c.PART;
238900
+ } else if (setting.check.chkStyle == r.STYLE) {
238901
+ fullStyle = node.check_Child_State < 1 ? c.FULL : c.PART;
238902
+ } else {
238903
+ fullStyle = nodeChecked ? node.check_Child_State === 2 || node.check_Child_State === -1 ? c.FULL : c.PART : node.check_Child_State < 1 ? c.FULL : c.PART;
238904
+ }
238905
+ var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle;
238906
+ chkName = node.check_Focus && node.chkDisabled !== true ? chkName + "_" + c.FOCUS : chkName;
238907
+ return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName;
238908
+ },
238909
+ repairAllChk: function(setting, checked) {
238910
+ if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) {
238911
+ var root = data.getRoot(setting);
238912
+ var children = data.nodeChildren(setting, root);
238913
+ for (var i = 0, l = children.length; i < l; i++) {
238914
+ var node = children[i];
238915
+ if (node.nocheck !== true && node.chkDisabled !== true) {
238916
+ data.nodeChecked(setting, node, checked);
238917
+ }
238918
+ view.setSonNodeCheckBox(setting, node, checked);
238919
+ }
238920
+ }
238921
+ },
238922
+ repairChkClass: function(setting, node) {
238923
+ if (!node) return;
238924
+ data.makeChkFlag(setting, node);
238925
+ if (node.nocheck !== true) {
238926
+ var checkObj = $$(node, consts.id.CHECK, setting);
238927
+ view.setChkClass(setting, checkObj, node);
238928
+ }
238929
+ },
238930
+ repairParentChkClass: function(setting, node) {
238931
+ if (!node || !node.parentTId) return;
238932
+ var pNode = node.getParentNode();
238933
+ view.repairChkClass(setting, pNode);
238934
+ view.repairParentChkClass(setting, pNode);
238935
+ },
238936
+ repairParentChkClassWithSelf: function(setting, node) {
238937
+ if (!node) return;
238938
+ var children = data.nodeChildren(setting, node);
238939
+ if (children && children.length > 0) {
238940
+ view.repairParentChkClass(setting, children[0]);
238941
+ } else {
238942
+ view.repairParentChkClass(setting, node);
238943
+ }
238944
+ },
238945
+ repairSonChkDisabled: function(setting, node, chkDisabled, inherit) {
238946
+ if (!node) return;
238947
+ if (node.chkDisabled != chkDisabled) {
238948
+ node.chkDisabled = chkDisabled;
238949
+ }
238950
+ view.repairChkClass(setting, node);
238951
+ var children = data.nodeChildren(setting, node);
238952
+ if (children && inherit) {
238953
+ for (var i = 0, l = children.length; i < l; i++) {
238954
+ var sNode = children[i];
238955
+ view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit);
238956
+ }
238957
+ }
238958
+ },
238959
+ repairParentChkDisabled: function(setting, node, chkDisabled, inherit) {
238960
+ if (!node) return;
238961
+ if (node.chkDisabled != chkDisabled && inherit) {
238962
+ node.chkDisabled = chkDisabled;
238963
+ }
238964
+ view.repairChkClass(setting, node);
238965
+ view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit);
238966
+ },
238967
+ setChkClass: function(setting, obj, node) {
238968
+ if (!obj) return;
238969
+ if (node.nocheck === true) {
238970
+ obj.hide();
238971
+ } else {
238972
+ obj.show();
238973
+ }
238974
+ obj.attr("class", view.makeChkClass(setting, node));
238975
+ },
238976
+ setParentNodeCheckBox: function(setting, node, value, srcNode) {
238977
+ var checkObj = $$(node, consts.id.CHECK, setting);
238978
+ if (!srcNode) srcNode = node;
238979
+ data.makeChkFlag(setting, node);
238980
+ if (node.nocheck !== true && node.chkDisabled !== true) {
238981
+ data.nodeChecked(setting, node, value);
238982
+ view.setChkClass(setting, checkObj, node);
238983
+ if (setting.check.autoCheckTrigger && node != srcNode) {
238984
+ setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
238985
+ }
238986
+ }
238987
+ if (node.parentTId) {
238988
+ var pSign = true;
238989
+ if (!value) {
238990
+ var pNodes = data.nodeChildren(setting, node.getParentNode());
238991
+ for (var i = 0, l = pNodes.length; i < l; i++) {
238992
+ var pNode = pNodes[i];
238993
+ var nodeChecked = data.nodeChecked(setting, pNode);
238994
+ if (pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked || (pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0) {
238995
+ pSign = false;
238996
+ break;
238997
+ }
238998
+ }
238999
+ }
239000
+ if (pSign) {
239001
+ view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode);
239002
+ }
239003
+ }
239004
+ },
239005
+ setSonNodeCheckBox: function(setting, node, value, srcNode) {
239006
+ if (!node) return;
239007
+ var checkObj = $$(node, consts.id.CHECK, setting);
239008
+ if (!srcNode) srcNode = node;
239009
+ var hasDisable = false;
239010
+ var children = data.nodeChildren(setting, node);
239011
+ if (children) {
239012
+ for (var i = 0, l = children.length; i < l; i++) {
239013
+ var sNode = children[i];
239014
+ view.setSonNodeCheckBox(setting, sNode, value, srcNode);
239015
+ if (sNode.chkDisabled === true) hasDisable = true;
239016
+ }
239017
+ }
239018
+ if (node != data.getRoot(setting) && node.chkDisabled !== true) {
239019
+ if (hasDisable && node.nocheck !== true) {
239020
+ data.makeChkFlag(setting, node);
239021
+ }
239022
+ if (node.nocheck !== true && node.chkDisabled !== true) {
239023
+ data.nodeChecked(setting, node, value);
239024
+ if (!hasDisable) node.check_Child_State = children && children.length > 0 ? value ? 2 : 0 : -1;
239025
+ } else {
239026
+ node.check_Child_State = -1;
239027
+ }
239028
+ view.setChkClass(setting, checkObj, node);
239029
+ if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) {
239030
+ setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
239031
+ }
239032
+ }
239033
+ }
239034
+ }, _z = {
239035
+ tools: _tools,
239036
+ view: _view,
239037
+ event: _event,
239038
+ data: _data
239039
+ };
239040
+ $.extend(true, $.fn.zTree.consts, _consts);
239041
+ $.extend(true, $.fn.zTree._z, _z);
239042
+ var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
239043
+ data.nodeChecked = function(setting, node, newChecked) {
239044
+ if (!node) {
239045
+ return false;
239046
+ }
239047
+ var key = setting.data.key.checked;
239048
+ if (typeof newChecked !== "undefined") {
239049
+ if (typeof newChecked === "string") {
239050
+ newChecked = tools.eqs(newChecked, "true");
239051
+ }
239052
+ newChecked = !!newChecked;
239053
+ node[key] = newChecked;
239054
+ } else if (typeof node[key] == "string") {
239055
+ node[key] = tools.eqs(node[key], "true");
239056
+ } else {
239057
+ node[key] = !!node[key];
239058
+ }
239059
+ return node[key];
239060
+ };
239061
+ data.exSetting(_setting);
239062
+ data.addInitBind(_bindEvent);
239063
+ data.addInitUnBind(_unbindEvent);
239064
+ data.addInitCache(_initCache);
239065
+ data.addInitNode(_initNode);
239066
+ data.addInitProxy(_eventProxy, true);
239067
+ data.addInitRoot(_initRoot);
239068
+ data.addBeforeA(_beforeA);
239069
+ data.addZTreeTools(_zTreeTools);
239070
+ var _createNodes = view.createNodes;
239071
+ view.createNodes = function(setting, level, nodes, parentNode, index) {
239072
+ if (_createNodes) _createNodes.apply(view, arguments);
239073
+ if (!nodes) return;
239074
+ view.repairParentChkClassWithSelf(setting, parentNode);
239075
+ };
239076
+ var _removeNode = view.removeNode;
239077
+ view.removeNode = function(setting, node) {
239078
+ var parentNode = node.getParentNode();
239079
+ if (_removeNode) _removeNode.apply(view, arguments);
239080
+ if (!node || !parentNode) return;
239081
+ view.repairChkClass(setting, parentNode);
239082
+ view.repairParentChkClass(setting, parentNode);
239083
+ };
239084
+ var _appendNodes = view.appendNodes;
239085
+ view.appendNodes = function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
239086
+ var html = "";
239087
+ if (_appendNodes) {
239088
+ html = _appendNodes.apply(view, arguments);
239089
+ }
239090
+ if (parentNode) {
239091
+ data.makeChkFlag(setting, parentNode);
239092
+ }
239093
+ return html;
239094
+ };
239095
+ })(jQuery);
239096
+
239097
+ (function($) {
239098
+ var _consts = {
239099
+ event: {
239100
+ DRAG: "ztree_drag",
239101
+ DROP: "ztree_drop",
239102
+ RENAME: "ztree_rename",
239103
+ DRAGMOVE: "ztree_dragmove"
239104
+ },
239105
+ id: {
239106
+ EDIT: "_edit",
239107
+ INPUT: "_input",
239108
+ REMOVE: "_remove"
239109
+ },
239110
+ move: {
239111
+ TYPE_INNER: "inner",
239112
+ TYPE_PREV: "prev",
239113
+ TYPE_NEXT: "next"
239114
+ },
239115
+ node: {
239116
+ CURSELECTED_EDIT: "curSelectedNode_Edit",
239117
+ TMPTARGET_TREE: "tmpTargetzTree",
239118
+ TMPTARGET_NODE: "tmpTargetNode"
239119
+ }
239120
+ }, _setting = {
239121
+ edit: {
239122
+ enable: false,
239123
+ editNameSelectAll: false,
239124
+ showRemoveBtn: true,
239125
+ showRenameBtn: true,
239126
+ removeTitle: "remove",
239127
+ renameTitle: "rename",
239128
+ drag: {
239129
+ autoExpandTrigger: false,
239130
+ isCopy: true,
239131
+ isMove: true,
239132
+ prev: true,
239133
+ next: true,
239134
+ inner: true,
239135
+ minMoveSize: 5,
239136
+ borderMax: 10,
239137
+ borderMin: -5,
239138
+ maxShowNodeNum: 5,
239139
+ autoOpenTime: 500
239140
+ }
239141
+ },
239142
+ view: {
239143
+ addHoverDom: null,
239144
+ removeHoverDom: null
239145
+ },
239146
+ callback: {
239147
+ beforeDrag: null,
239148
+ beforeDragOpen: null,
239149
+ beforeDrop: null,
239150
+ beforeEditName: null,
239151
+ beforeRename: null,
239152
+ onDrag: null,
239153
+ onDragMove: null,
239154
+ onDrop: null,
239155
+ onRename: null
239156
+ }
239157
+ }, _initRoot = function(setting) {
239158
+ var r = data.getRoot(setting), rs = data.getRoots();
239159
+ r.curEditNode = null;
239160
+ r.curEditInput = null;
239161
+ r.curHoverNode = null;
239162
+ r.dragFlag = 0;
239163
+ r.dragNodeShowBefore = [];
239164
+ r.dragMaskList = new Array;
239165
+ rs.showHoverDom = true;
239166
+ }, _initCache = function(treeId) {}, _bindEvent = function(setting) {
239167
+ var o = setting.treeObj;
239168
+ var c = consts.event;
239169
+ o.bind(c.RENAME, (function(event, treeId, treeNode, isCancel) {
239170
+ tools.apply(setting.callback.onRename, [ event, treeId, treeNode, isCancel ]);
239171
+ }));
239172
+ o.bind(c.DRAG, (function(event, srcEvent, treeId, treeNodes) {
239173
+ tools.apply(setting.callback.onDrag, [ srcEvent, treeId, treeNodes ]);
239174
+ }));
239175
+ o.bind(c.DRAGMOVE, (function(event, srcEvent, treeId, treeNodes) {
239176
+ tools.apply(setting.callback.onDragMove, [ srcEvent, treeId, treeNodes ]);
239177
+ }));
239178
+ o.bind(c.DROP, (function(event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) {
239179
+ tools.apply(setting.callback.onDrop, [ srcEvent, treeId, treeNodes, targetNode, moveType, isCopy ]);
239180
+ }));
239181
+ }, _unbindEvent = function(setting) {
239182
+ var o = setting.treeObj;
239183
+ var c = consts.event;
239184
+ o.unbind(c.RENAME);
239185
+ o.unbind(c.DRAG);
239186
+ o.unbind(c.DRAGMOVE);
239187
+ o.unbind(c.DROP);
239188
+ }, _eventProxy = function(e) {
239189
+ var target = e.target, setting = data.getSetting(e.data.treeId), relatedTarget = e.relatedTarget, tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
239190
+ if (tools.eqs(e.type, "mouseover")) {
239191
+ tmp = tools.getMDom(setting, target, [ {
239192
+ tagName: "a",
239193
+ attrName: "treeNode" + consts.id.A
239194
+ } ]);
239195
+ if (tmp) {
239196
+ tId = tools.getNodeMainDom(tmp).id;
239197
+ nodeEventType = "hoverOverNode";
239198
+ }
239199
+ } else if (tools.eqs(e.type, "mouseout")) {
239200
+ tmp = tools.getMDom(setting, relatedTarget, [ {
239201
+ tagName: "a",
239202
+ attrName: "treeNode" + consts.id.A
239203
+ } ]);
239204
+ if (!tmp) {
239205
+ tId = "remove";
239206
+ nodeEventType = "hoverOutNode";
239207
+ }
239208
+ } else if (tools.eqs(e.type, "mousedown")) {
239209
+ tmp = tools.getMDom(setting, target, [ {
239210
+ tagName: "a",
239211
+ attrName: "treeNode" + consts.id.A
239212
+ } ]);
239213
+ if (tmp) {
239214
+ tId = tools.getNodeMainDom(tmp).id;
239215
+ nodeEventType = "mousedownNode";
239216
+ }
239217
+ }
239218
+ if (tId.length > 0) {
239219
+ node = data.getNodeCache(setting, tId);
239220
+ switch (nodeEventType) {
239221
+ case "mousedownNode":
239222
+ nodeEventCallback = _handler.onMousedownNode;
239223
+ break;
239224
+
239225
+ case "hoverOverNode":
239226
+ nodeEventCallback = _handler.onHoverOverNode;
239227
+ break;
239228
+
239229
+ case "hoverOutNode":
239230
+ nodeEventCallback = _handler.onHoverOutNode;
239231
+ break;
239232
+ }
239233
+ }
239234
+ var proxyResult = {
239235
+ stop: false,
239236
+ node: node,
239237
+ nodeEventType: nodeEventType,
239238
+ nodeEventCallback: nodeEventCallback,
239239
+ treeEventType: treeEventType,
239240
+ treeEventCallback: treeEventCallback
239241
+ };
239242
+ return proxyResult;
239243
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
239244
+ if (!n) return;
239245
+ n.isHover = false;
239246
+ n.editNameFlag = false;
239247
+ }, _zTreeTools = function(setting, zTreeTools) {
239248
+ zTreeTools.cancelEditName = function(newName) {
239249
+ var root = data.getRoot(this.setting);
239250
+ if (!root.curEditNode) return;
239251
+ view.cancelCurEditNode(this.setting, newName ? newName : null, true);
239252
+ };
239253
+ zTreeTools.copyNode = function(targetNode, node, moveType, isSilent) {
239254
+ if (!node) return null;
239255
+ var isParent = data.nodeIsParent(setting, targetNode);
239256
+ if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null;
239257
+ var _this = this, newNode = tools.clone(node);
239258
+ if (!targetNode) {
239259
+ targetNode = null;
239260
+ moveType = consts.move.TYPE_INNER;
239261
+ }
239262
+ if (moveType == consts.move.TYPE_INNER) {
239263
+ function copyCallback() {
239264
+ view.addNodes(_this.setting, targetNode, -1, [ newNode ], isSilent);
239265
+ }
239266
+ if (tools.canAsync(this.setting, targetNode)) {
239267
+ view.asyncNode(this.setting, targetNode, isSilent, copyCallback);
239268
+ } else {
239269
+ copyCallback();
239270
+ }
239271
+ } else {
239272
+ view.addNodes(this.setting, targetNode.parentNode, -1, [ newNode ], isSilent);
239273
+ view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent);
239274
+ }
239275
+ return newNode;
239276
+ };
239277
+ zTreeTools.editName = function(node) {
239278
+ if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return;
239279
+ if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true);
239280
+ view.editNode(this.setting, node);
239281
+ };
239282
+ zTreeTools.moveNode = function(targetNode, node, moveType, isSilent) {
239283
+ if (!node) return node;
239284
+ var isParent = data.nodeIsParent(setting, targetNode);
239285
+ if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) {
239286
+ return null;
239287
+ } else if (targetNode && (node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) {
239288
+ return null;
239289
+ } else if (!targetNode) {
239290
+ targetNode = null;
239291
+ }
239292
+ var _this = this;
239293
+ function moveCallback() {
239294
+ view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent);
239295
+ }
239296
+ if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) {
239297
+ view.asyncNode(this.setting, targetNode, isSilent, moveCallback);
239298
+ } else {
239299
+ moveCallback();
239300
+ }
239301
+ return node;
239302
+ };
239303
+ zTreeTools.setEditable = function(editable) {
239304
+ this.setting.edit.enable = editable;
239305
+ return this.refresh();
239306
+ };
239307
+ }, _data = {
239308
+ setSonNodeLevel: function(setting, parentNode, node) {
239309
+ if (!node) return;
239310
+ var children = data.nodeChildren(setting, node);
239311
+ var oldLevel = node.level;
239312
+ node.level = parentNode ? parentNode.level + 1 : 0;
239313
+ view.repairNodeLevelClass(setting, node, oldLevel);
239314
+ if (!children) return;
239315
+ for (var i = 0, l = children.length; i < l; i++) {
239316
+ if (children[i]) data.setSonNodeLevel(setting, node, children[i]);
239317
+ }
239318
+ }
239319
+ }, _event = {}, _handler = {
239320
+ onHoverOverNode: function(event, node) {
239321
+ var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
239322
+ if (root.curHoverNode != node) {
239323
+ _handler.onHoverOutNode(event);
239324
+ }
239325
+ root.curHoverNode = node;
239326
+ view.addHoverDom(setting, node);
239327
+ },
239328
+ onHoverOutNode: function(event, node) {
239329
+ var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
239330
+ if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) {
239331
+ view.removeTreeDom(setting, root.curHoverNode);
239332
+ root.curHoverNode = null;
239333
+ }
239334
+ },
239335
+ onMousedownNode: function(eventMouseDown, _node) {
239336
+ var i, l, setting = data.getSetting(eventMouseDown.data.treeId), root = data.getRoot(setting), roots = data.getRoots();
239337
+ if (eventMouseDown.button == 2 || !setting.edit.enable || !setting.edit.drag.isCopy && !setting.edit.drag.isMove) return true;
239338
+ var target = eventMouseDown.target, _nodes = data.getRoot(setting).curSelectedList, nodes = [];
239339
+ if (!data.isSelectedNode(setting, _node)) {
239340
+ nodes = [ _node ];
239341
+ } else {
239342
+ for (i = 0, l = _nodes.length; i < l; i++) {
239343
+ if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) {
239344
+ return true;
239345
+ }
239346
+ nodes.push(_nodes[i]);
239347
+ if (nodes[0].parentTId !== _nodes[i].parentTId) {
239348
+ nodes = [ _node ];
239349
+ break;
239350
+ }
239351
+ }
239352
+ }
239353
+ view.editNodeBlur = true;
239354
+ view.cancelCurEditNode(setting);
239355
+ var doc = $(setting.treeObj.get(0).ownerDocument), body = $(setting.treeObj.get(0).ownerDocument.body), curNode, tmpArrow, tmpTarget, isOtherTree = false, targetSetting = setting, sourceSetting = setting, preNode, nextNode, preTmpTargetNodeId = null, preTmpMoveType = null, tmpTargetNodeId = null, moveType = consts.move.TYPE_INNER, mouseDownX = eventMouseDown.clientX, mouseDownY = eventMouseDown.clientY, startTime = (new Date).getTime();
239356
+ if (tools.uCanDo(setting)) {
239357
+ doc.bind("mousemove", _docMouseMove);
239358
+ }
239359
+ function _docMouseMove(event) {
239360
+ if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) {
239361
+ return true;
239362
+ }
239363
+ var i, l, tmpNode, tmpDom, tmpNodes;
239364
+ body.css("cursor", "pointer");
239365
+ if (root.dragFlag == 0) {
239366
+ if (tools.apply(setting.callback.beforeDrag, [ setting.treeId, nodes ], true) == false) {
239367
+ _docMouseUp(event);
239368
+ return true;
239369
+ }
239370
+ for (i = 0, l = nodes.length; i < l; i++) {
239371
+ if (i == 0) {
239372
+ root.dragNodeShowBefore = [];
239373
+ }
239374
+ tmpNode = nodes[i];
239375
+ if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) {
239376
+ view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
239377
+ root.dragNodeShowBefore[tmpNode.tId] = true;
239378
+ } else {
239379
+ root.dragNodeShowBefore[tmpNode.tId] = false;
239380
+ }
239381
+ }
239382
+ root.dragFlag = 1;
239383
+ roots.showHoverDom = false;
239384
+ tools.showIfameMask(setting, true);
239385
+ var isOrder = true, lastIndex = -1;
239386
+ if (nodes.length > 1) {
239387
+ var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting);
239388
+ tmpNodes = [];
239389
+ for (i = 0, l = pNodes.length; i < l; i++) {
239390
+ if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) {
239391
+ if (isOrder && lastIndex > -1 && lastIndex + 1 !== i) {
239392
+ isOrder = false;
239393
+ }
239394
+ tmpNodes.push(pNodes[i]);
239395
+ lastIndex = i;
239396
+ }
239397
+ if (nodes.length === tmpNodes.length) {
239398
+ nodes = tmpNodes;
239399
+ break;
239400
+ }
239401
+ }
239402
+ }
239403
+ if (isOrder) {
239404
+ preNode = nodes[0].getPreNode();
239405
+ nextNode = nodes[nodes.length - 1].getNextNode();
239406
+ }
239407
+ curNode = $$("<ul class='zTreeDragUL'></ul>", setting);
239408
+ for (i = 0, l = nodes.length; i < l; i++) {
239409
+ tmpNode = nodes[i];
239410
+ tmpNode.editNameFlag = false;
239411
+ view.selectNode(setting, tmpNode, i > 0);
239412
+ view.removeTreeDom(setting, tmpNode);
239413
+ if (i > setting.edit.drag.maxShowNodeNum - 1) {
239414
+ continue;
239415
+ }
239416
+ tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting);
239417
+ tmpDom.append($$(tmpNode, consts.id.A, setting).clone());
239418
+ tmpDom.css("padding", "0");
239419
+ tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED);
239420
+ curNode.append(tmpDom);
239421
+ if (i == setting.edit.drag.maxShowNodeNum - 1) {
239422
+ tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting);
239423
+ curNode.append(tmpDom);
239424
+ }
239425
+ }
239426
+ curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp");
239427
+ curNode.addClass(setting.treeObj.attr("class"));
239428
+ curNode.appendTo(body);
239429
+ tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting);
239430
+ tmpArrow.attr("id", "zTreeMove_arrow_tmp");
239431
+ tmpArrow.appendTo(body);
239432
+ setting.treeObj.trigger(consts.event.DRAG, [ event, setting.treeId, nodes ]);
239433
+ }
239434
+ if (root.dragFlag == 1) {
239435
+ if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && event.clientX + doc.scrollLeft() + 2 > $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left) {
239436
+ var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget);
239437
+ event.target = xT.length > 0 ? xT.get(0) : event.target;
239438
+ } else if (tmpTarget) {
239439
+ tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
239440
+ if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER);
239441
+ }
239442
+ tmpTarget = null;
239443
+ tmpTargetNodeId = null;
239444
+ isOtherTree = false;
239445
+ targetSetting = setting;
239446
+ var settings = data.getSettings();
239447
+ for (var s in settings) {
239448
+ if (settings[s].treeId && settings[s].edit.enable && settings[s].treeId != setting.treeId && (event.target.id == settings[s].treeId || $(event.target).parents("#" + settings[s].treeId).length > 0)) {
239449
+ isOtherTree = true;
239450
+ targetSetting = settings[s];
239451
+ }
239452
+ }
239453
+ var docScrollTop = doc.scrollTop(), docScrollLeft = doc.scrollLeft(), treeOffset = targetSetting.treeObj.offset(), scrollHeight = targetSetting.treeObj.get(0).scrollHeight, scrollWidth = targetSetting.treeObj.get(0).scrollWidth, dTop = event.clientY + docScrollTop - treeOffset.top, dBottom = targetSetting.treeObj.height() + treeOffset.top - event.clientY - docScrollTop, dLeft = event.clientX + docScrollLeft - treeOffset.left, dRight = targetSetting.treeObj.width() + treeOffset.left - event.clientX - docScrollLeft, isTop = dTop < setting.edit.drag.borderMax && dTop > setting.edit.drag.borderMin, isBottom = dBottom < setting.edit.drag.borderMax && dBottom > setting.edit.drag.borderMin, isLeft = dLeft < setting.edit.drag.borderMax && dLeft > setting.edit.drag.borderMin, isRight = dRight < setting.edit.drag.borderMax && dRight > setting.edit.drag.borderMin, isTreeInner = dTop > setting.edit.drag.borderMin && dBottom > setting.edit.drag.borderMin && dLeft > setting.edit.drag.borderMin && dRight > setting.edit.drag.borderMin, isTreeTop = isTop && targetSetting.treeObj.scrollTop() <= 0, isTreeBottom = isBottom && targetSetting.treeObj.scrollTop() + targetSetting.treeObj.height() + 10 >= scrollHeight, isTreeLeft = isLeft && targetSetting.treeObj.scrollLeft() <= 0, isTreeRight = isRight && targetSetting.treeObj.scrollLeft() + targetSetting.treeObj.width() + 10 >= scrollWidth;
239454
+ if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
239455
+ var targetObj = event.target;
239456
+ while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) {
239457
+ targetObj = targetObj.parentNode;
239458
+ }
239459
+ var canMove = true;
239460
+ for (i = 0, l = nodes.length; i < l; i++) {
239461
+ tmpNode = nodes[i];
239462
+ if (targetObj.id === tmpNode.tId) {
239463
+ canMove = false;
239464
+ break;
239465
+ } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) {
239466
+ canMove = false;
239467
+ break;
239468
+ }
239469
+ }
239470
+ if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) {
239471
+ tmpTarget = $(targetObj);
239472
+ tmpTargetNodeId = targetObj.id;
239473
+ }
239474
+ }
239475
+ tmpNode = nodes[0];
239476
+ if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
239477
+ if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || !isOtherTree && tmpNode.parentTId)) {
239478
+ tmpTarget = targetSetting.treeObj;
239479
+ }
239480
+ if (isTop) {
239481
+ targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10);
239482
+ } else if (isBottom) {
239483
+ targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10);
239484
+ }
239485
+ if (isLeft) {
239486
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10);
239487
+ } else if (isRight) {
239488
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10);
239489
+ }
239490
+ if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) {
239491
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left);
239492
+ }
239493
+ }
239494
+ curNode.css({
239495
+ top: event.clientY + docScrollTop + 3 + "px",
239496
+ left: event.clientX + docScrollLeft + 3 + "px"
239497
+ });
239498
+ var dX = 0;
239499
+ var dY = 0;
239500
+ if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) {
239501
+ var tmpTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId), isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy, isPrev = !!(preNode && tmpTargetNodeId === preNode.tId), isNext = !!(nextNode && tmpTargetNodeId === nextNode.tId), isInner = tmpNode.parentTId && tmpNode.parentTId == tmpTargetNodeId, canPrev = (isCopy || !isNext) && tools.apply(targetSetting.edit.drag.prev, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.prev), canNext = (isCopy || !isPrev) && tools.apply(targetSetting.edit.drag.next, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.next), canInner = (isCopy || !isInner) && !(targetSetting.data.keep.leaf && !data.nodeIsParent(setting, tmpTargetNode)) && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, tmpTargetNode ], !!targetSetting.edit.drag.inner);
239502
+ function clearMove() {
239503
+ tmpTarget = null;
239504
+ tmpTargetNodeId = "";
239505
+ moveType = consts.move.TYPE_INNER;
239506
+ tmpArrow.css({
239507
+ display: "none"
239508
+ });
239509
+ if (window.zTreeMoveTimer) {
239510
+ clearTimeout(window.zTreeMoveTimer);
239511
+ window.zTreeMoveTargetNodeTId = null;
239512
+ }
239513
+ }
239514
+ if (!canPrev && !canNext && !canInner) {
239515
+ clearMove();
239516
+ } else {
239517
+ var tmpTargetA = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget), tmpNextA = tmpTargetNode.isLastNode ? null : $("#" + tmpTargetNode.getNextNode().tId + consts.id.A, tmpTarget.next()), tmpTop = tmpTargetA.offset().top, tmpLeft = tmpTargetA.offset().left, prevPercent = canPrev ? canInner ? .25 : canNext ? .5 : 1 : -1, nextPercent = canNext ? canInner ? .75 : canPrev ? .5 : 0 : -1, dY_percent = (event.clientY + docScrollTop - tmpTop) / tmpTargetA.height();
239518
+ if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) {
239519
+ dX = 1 - tmpArrow.width();
239520
+ dY = tmpTop - tmpArrow.height() / 2;
239521
+ moveType = consts.move.TYPE_PREV;
239522
+ } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) {
239523
+ dX = 1 - tmpArrow.width();
239524
+ dY = tmpNextA == null || data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open ? tmpTop + tmpTargetA.height() - tmpArrow.height() / 2 : tmpNextA.offset().top - tmpArrow.height() / 2;
239525
+ moveType = consts.move.TYPE_NEXT;
239526
+ } else if (canInner) {
239527
+ dX = 5 - tmpArrow.width();
239528
+ dY = tmpTop;
239529
+ moveType = consts.move.TYPE_INNER;
239530
+ } else {
239531
+ clearMove();
239532
+ }
239533
+ if (tmpTarget) {
239534
+ tmpArrow.css({
239535
+ display: "block",
239536
+ top: dY + "px",
239537
+ left: tmpLeft + dX + "px"
239538
+ });
239539
+ tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType);
239540
+ if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) {
239541
+ startTime = (new Date).getTime();
239542
+ }
239543
+ if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) {
239544
+ var startTimer = true;
239545
+ if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) {
239546
+ clearTimeout(window.zTreeMoveTimer);
239547
+ window.zTreeMoveTargetNodeTId = null;
239548
+ } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) {
239549
+ startTimer = false;
239550
+ }
239551
+ if (startTimer) {
239552
+ window.zTreeMoveTimer = setTimeout((function() {
239553
+ if (moveType != consts.move.TYPE_INNER) return;
239554
+ if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && !tmpTargetNode.open && (new Date).getTime() - startTime > targetSetting.edit.drag.autoOpenTime && tools.apply(targetSetting.callback.beforeDragOpen, [ targetSetting.treeId, tmpTargetNode ], true)) {
239555
+ view.switchNode(targetSetting, tmpTargetNode);
239556
+ if (targetSetting.edit.drag.autoExpandTrigger) {
239557
+ targetSetting.treeObj.trigger(consts.event.EXPAND, [ targetSetting.treeId, tmpTargetNode ]);
239558
+ }
239559
+ }
239560
+ }), targetSetting.edit.drag.autoOpenTime + 50);
239561
+ window.zTreeMoveTargetNodeTId = tmpTargetNode.tId;
239562
+ }
239563
+ }
239564
+ }
239565
+ }
239566
+ } else {
239567
+ moveType = consts.move.TYPE_INNER;
239568
+ if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, null ], !!targetSetting.edit.drag.inner)) {
239569
+ tmpTarget.addClass(consts.node.TMPTARGET_TREE);
239570
+ } else {
239571
+ tmpTarget = null;
239572
+ }
239573
+ tmpArrow.css({
239574
+ display: "none"
239575
+ });
239576
+ if (window.zTreeMoveTimer) {
239577
+ clearTimeout(window.zTreeMoveTimer);
239578
+ window.zTreeMoveTargetNodeTId = null;
239579
+ }
239580
+ }
239581
+ preTmpTargetNodeId = tmpTargetNodeId;
239582
+ preTmpMoveType = moveType;
239583
+ setting.treeObj.trigger(consts.event.DRAGMOVE, [ event, setting.treeId, nodes ]);
239584
+ }
239585
+ return false;
239586
+ }
239587
+ doc.bind("mouseup", _docMouseUp);
239588
+ function _docMouseUp(event) {
239589
+ if (window.zTreeMoveTimer) {
239590
+ clearTimeout(window.zTreeMoveTimer);
239591
+ window.zTreeMoveTargetNodeTId = null;
239592
+ }
239593
+ preTmpTargetNodeId = null;
239594
+ preTmpMoveType = null;
239595
+ doc.unbind("mousemove", _docMouseMove);
239596
+ doc.unbind("mouseup", _docMouseUp);
239597
+ doc.unbind("selectstart", _docSelect);
239598
+ body.css("cursor", "");
239599
+ if (tmpTarget) {
239600
+ tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
239601
+ if (tmpTargetNodeId) $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).removeClass(consts.node.TMPTARGET_NODE + "_" + consts.move.TYPE_PREV).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_NEXT).removeClass(consts.node.TMPTARGET_NODE + "_" + _consts.move.TYPE_INNER);
239602
+ }
239603
+ tools.showIfameMask(setting, false);
239604
+ roots.showHoverDom = true;
239605
+ if (root.dragFlag == 0) return;
239606
+ root.dragFlag = 0;
239607
+ var i, l, tmpNode;
239608
+ for (i = 0, l = nodes.length; i < l; i++) {
239609
+ tmpNode = nodes[i];
239610
+ if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) {
239611
+ view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
239612
+ delete root.dragNodeShowBefore[tmpNode.tId];
239613
+ }
239614
+ }
239615
+ if (curNode) curNode.remove();
239616
+ if (tmpArrow) tmpArrow.remove();
239617
+ var isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy;
239618
+ if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) {
239619
+ tmpTarget = null;
239620
+ }
239621
+ if (tmpTarget) {
239622
+ var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId);
239623
+ if (tools.apply(setting.callback.beforeDrop, [ targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy ], true) == false) {
239624
+ view.selectNodes(sourceSetting, nodes);
239625
+ return;
239626
+ }
239627
+ var newNodes = isCopy ? tools.clone(nodes) : nodes;
239628
+ function dropCallback() {
239629
+ if (isOtherTree) {
239630
+ if (!isCopy) {
239631
+ for (var i = 0, l = nodes.length; i < l; i++) {
239632
+ view.removeNode(setting, nodes[i]);
239633
+ }
239634
+ }
239635
+ if (moveType == consts.move.TYPE_INNER) {
239636
+ view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
239637
+ } else {
239638
+ view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
239639
+ }
239640
+ } else {
239641
+ if (isCopy && moveType == consts.move.TYPE_INNER) {
239642
+ view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
239643
+ } else if (isCopy) {
239644
+ view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
239645
+ } else {
239646
+ if (moveType != consts.move.TYPE_NEXT) {
239647
+ for (i = 0, l = newNodes.length; i < l; i++) {
239648
+ view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false);
239649
+ }
239650
+ } else {
239651
+ for (i = -1, l = newNodes.length - 1; i < l; l--) {
239652
+ view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false);
239653
+ }
239654
+ }
239655
+ }
239656
+ }
239657
+ view.selectNodes(targetSetting, newNodes);
239658
+ var a = $$(newNodes[0], setting).get(0);
239659
+ view.scrollIntoView(setting, a);
239660
+ setting.treeObj.trigger(consts.event.DROP, [ event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy ]);
239661
+ }
239662
+ if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) {
239663
+ view.asyncNode(targetSetting, dragTargetNode, false, dropCallback);
239664
+ } else {
239665
+ dropCallback();
239666
+ }
239667
+ } else {
239668
+ view.selectNodes(sourceSetting, nodes);
239669
+ setting.treeObj.trigger(consts.event.DROP, [ event, setting.treeId, nodes, null, null, null ]);
239670
+ }
239671
+ }
239672
+ doc.bind("selectstart", _docSelect);
239673
+ function _docSelect() {
239674
+ return false;
239675
+ }
239676
+ return true;
239677
+ }
239678
+ }, _tools = {
239679
+ getAbs: function(obj) {
239680
+ var oRect = obj.getBoundingClientRect(), scrollTop = document.body.scrollTop + document.documentElement.scrollTop, scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
239681
+ return [ oRect.left + scrollLeft, oRect.top + scrollTop ];
239682
+ },
239683
+ inputFocus: function(inputObj) {
239684
+ if (inputObj.get(0)) {
239685
+ inputObj.focus();
239686
+ tools.setCursorPosition(inputObj.get(0), inputObj.val().length);
239687
+ }
239688
+ },
239689
+ inputSelect: function(inputObj) {
239690
+ if (inputObj.get(0)) {
239691
+ inputObj.focus();
239692
+ inputObj.select();
239693
+ }
239694
+ },
239695
+ setCursorPosition: function(obj, pos) {
239696
+ if (obj.setSelectionRange) {
239697
+ obj.focus();
239698
+ obj.setSelectionRange(pos, pos);
239699
+ } else if (obj.createTextRange) {
239700
+ var range = obj.createTextRange();
239701
+ range.collapse(true);
239702
+ range.moveEnd("character", pos);
239703
+ range.moveStart("character", pos);
239704
+ range.select();
239705
+ }
239706
+ },
239707
+ showIfameMask: function(setting, showSign) {
239708
+ var root = data.getRoot(setting);
239709
+ while (root.dragMaskList.length > 0) {
239710
+ root.dragMaskList[0].remove();
239711
+ root.dragMaskList.shift();
239712
+ }
239713
+ if (showSign) {
239714
+ var iframeList = $$("iframe", setting);
239715
+ for (var i = 0, l = iframeList.length; i < l; i++) {
239716
+ var obj = iframeList.get(i), r = tools.getAbs(obj), dragMask = $$("<div id='zTreeMask_" + i + "' class='zTreeMask' style='top:" + r[1] + "px; left:" + r[0] + "px; width:" + obj.offsetWidth + "px; height:" + obj.offsetHeight + "px;'></div>", setting);
239717
+ dragMask.appendTo($$("body", setting));
239718
+ root.dragMaskList.push(dragMask);
239719
+ }
239720
+ }
239721
+ }
239722
+ }, _view = {
239723
+ addEditBtn: function(setting, node) {
239724
+ if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) {
239725
+ return;
239726
+ }
239727
+ if (!tools.apply(setting.edit.showRenameBtn, [ setting.treeId, node ], setting.edit.showRenameBtn)) {
239728
+ return;
239729
+ }
239730
+ var aObj = $$(node, consts.id.A, setting), editStr = "<span class='" + consts.className.BUTTON + " edit' id='" + node.tId + consts.id.EDIT + "' title='" + tools.apply(setting.edit.renameTitle, [ setting.treeId, node ], setting.edit.renameTitle) + "' treeNode" + consts.id.EDIT + " style='display:none;'></span>";
239731
+ aObj.append(editStr);
239732
+ $$(node, consts.id.EDIT, setting).bind("click", (function() {
239733
+ if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [ setting.treeId, node ], true) == false) return false;
239734
+ view.editNode(setting, node);
239735
+ return false;
239736
+ })).show();
239737
+ },
239738
+ addRemoveBtn: function(setting, node) {
239739
+ if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) {
239740
+ return;
239741
+ }
239742
+ if (!tools.apply(setting.edit.showRemoveBtn, [ setting.treeId, node ], setting.edit.showRemoveBtn)) {
239743
+ return;
239744
+ }
239745
+ var aObj = $$(node, consts.id.A, setting), removeStr = "<span class='" + consts.className.BUTTON + " remove' id='" + node.tId + consts.id.REMOVE + "' title='" + tools.apply(setting.edit.removeTitle, [ setting.treeId, node ], setting.edit.removeTitle) + "' treeNode" + consts.id.REMOVE + " style='display:none;'></span>";
239746
+ aObj.append(removeStr);
239747
+ $$(node, consts.id.REMOVE, setting).bind("click", (function() {
239748
+ if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return false;
239749
+ view.removeNode(setting, node);
239750
+ setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
239751
+ return false;
239752
+ })).bind("mousedown", (function(eventMouseDown) {
239753
+ return true;
239754
+ })).show();
239755
+ },
239756
+ addHoverDom: function(setting, node) {
239757
+ if (data.getRoots().showHoverDom) {
239758
+ node.isHover = true;
239759
+ if (setting.edit.enable) {
239760
+ view.addEditBtn(setting, node);
239761
+ view.addRemoveBtn(setting, node);
239762
+ }
239763
+ tools.apply(setting.view.addHoverDom, [ setting.treeId, node ]);
239764
+ }
239765
+ },
239766
+ cancelCurEditNode: function(setting, forceName, isCancel) {
239767
+ var root = data.getRoot(setting), node = root.curEditNode;
239768
+ if (node) {
239769
+ var inputObj = root.curEditInput, newName = forceName ? forceName : isCancel ? data.nodeName(setting, node) : inputObj.val();
239770
+ if (tools.apply(setting.callback.beforeRename, [ setting.treeId, node, newName, isCancel ], true) === false) {
239771
+ return false;
239772
+ }
239773
+ data.nodeName(setting, node, newName);
239774
+ var aObj = $$(node, consts.id.A, setting);
239775
+ aObj.removeClass(consts.node.CURSELECTED_EDIT);
239776
+ inputObj.unbind();
239777
+ view.setNodeName(setting, node);
239778
+ node.editNameFlag = false;
239779
+ root.curEditNode = null;
239780
+ root.curEditInput = null;
239781
+ view.selectNode(setting, node, false);
239782
+ setting.treeObj.trigger(consts.event.RENAME, [ setting.treeId, node, isCancel ]);
239783
+ }
239784
+ root.noSelection = true;
239785
+ return true;
239786
+ },
239787
+ editNode: function(setting, node) {
239788
+ var root = data.getRoot(setting);
239789
+ view.editNodeBlur = false;
239790
+ if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
239791
+ setTimeout((function() {
239792
+ tools.inputFocus(root.curEditInput);
239793
+ }), 0);
239794
+ return;
239795
+ }
239796
+ node.editNameFlag = true;
239797
+ view.removeTreeDom(setting, node);
239798
+ view.cancelCurEditNode(setting);
239799
+ view.selectNode(setting, node, false);
239800
+ $$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >");
239801
+ var inputObj = $$(node, consts.id.INPUT, setting);
239802
+ inputObj.attr("value", data.nodeName(setting, node));
239803
+ if (setting.edit.editNameSelectAll) {
239804
+ tools.inputSelect(inputObj);
239805
+ } else {
239806
+ tools.inputFocus(inputObj);
239807
+ }
239808
+ inputObj.bind("blur", (function(event) {
239809
+ if (!view.editNodeBlur) {
239810
+ view.cancelCurEditNode(setting);
239811
+ }
239812
+ })).bind("keydown", (function(event) {
239813
+ if (event.keyCode == "13") {
239814
+ view.editNodeBlur = true;
239815
+ view.cancelCurEditNode(setting);
239816
+ } else if (event.keyCode == "27") {
239817
+ view.cancelCurEditNode(setting, null, true);
239818
+ }
239819
+ })).bind("click", (function(event) {
239820
+ return false;
239821
+ })).bind("dblclick", (function(event) {
239822
+ return false;
239823
+ }));
239824
+ $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT);
239825
+ root.curEditInput = inputObj;
239826
+ root.noSelection = false;
239827
+ root.curEditNode = node;
239828
+ },
239829
+ moveNode: function(setting, targetNode, node, moveType, animateFlag, isSilent) {
239830
+ var root = data.getRoot(setting);
239831
+ if (targetNode == node) return;
239832
+ if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return;
239833
+ var oldParentNode = node.parentTId ? node.getParentNode() : root, targetNodeIsRoot = targetNode === null || targetNode == root;
239834
+ if (targetNodeIsRoot && targetNode === null) targetNode = root;
239835
+ if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER;
239836
+ var targetParentNode = targetNode.parentTId ? targetNode.getParentNode() : root;
239837
+ if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) {
239838
+ moveType = consts.move.TYPE_INNER;
239839
+ }
239840
+ if (moveType == consts.move.TYPE_INNER) {
239841
+ if (targetNodeIsRoot) {
239842
+ node.parentTId = null;
239843
+ } else {
239844
+ if (!data.nodeIsParent(setting, targetNode)) {
239845
+ data.nodeIsParent(setting, targetNode, true);
239846
+ targetNode.open = !!targetNode.open;
239847
+ view.setNodeLineIcos(setting, targetNode);
239848
+ }
239849
+ node.parentTId = targetNode.tId;
239850
+ }
239851
+ }
239852
+ var targetObj, target_ulObj;
239853
+ if (targetNodeIsRoot) {
239854
+ targetObj = setting.treeObj;
239855
+ target_ulObj = targetObj;
239856
+ } else {
239857
+ if (!isSilent && moveType == consts.move.TYPE_INNER) {
239858
+ view.expandCollapseNode(setting, targetNode, true, false);
239859
+ } else if (!isSilent) {
239860
+ view.expandCollapseNode(setting, targetNode.getParentNode(), true, false);
239861
+ }
239862
+ targetObj = $$(targetNode, setting);
239863
+ target_ulObj = $$(targetNode, consts.id.UL, setting);
239864
+ if (!!targetObj.get(0) && !target_ulObj.get(0)) {
239865
+ var ulstr = [];
239866
+ view.makeUlHtml(setting, targetNode, ulstr, "");
239867
+ targetObj.append(ulstr.join(""));
239868
+ }
239869
+ target_ulObj = $$(targetNode, consts.id.UL, setting);
239870
+ }
239871
+ var nodeDom = $$(node, setting);
239872
+ if (!nodeDom.get(0)) {
239873
+ nodeDom = view.appendNodes(setting, node.level, [ node ], null, -1, false, true).join("");
239874
+ } else if (!targetObj.get(0)) {
239875
+ nodeDom.remove();
239876
+ }
239877
+ if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) {
239878
+ target_ulObj.append(nodeDom);
239879
+ } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) {
239880
+ targetObj.before(nodeDom);
239881
+ } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) {
239882
+ targetObj.after(nodeDom);
239883
+ }
239884
+ var i, l, tmpSrcIndex = -1, tmpTargetIndex = 0, oldNeighbor = null, newNeighbor = null, oldLevel = node.level;
239885
+ var oldChildren = data.nodeChildren(setting, oldParentNode);
239886
+ var targetParentChildren = data.nodeChildren(setting, targetParentNode);
239887
+ var targetChildren = data.nodeChildren(setting, targetNode);
239888
+ if (node.isFirstNode) {
239889
+ tmpSrcIndex = 0;
239890
+ if (oldChildren.length > 1) {
239891
+ oldNeighbor = oldChildren[1];
239892
+ oldNeighbor.isFirstNode = true;
239893
+ }
239894
+ } else if (node.isLastNode) {
239895
+ tmpSrcIndex = oldChildren.length - 1;
239896
+ oldNeighbor = oldChildren[tmpSrcIndex - 1];
239897
+ oldNeighbor.isLastNode = true;
239898
+ } else {
239899
+ for (i = 0, l = oldChildren.length; i < l; i++) {
239900
+ if (oldChildren[i].tId == node.tId) {
239901
+ tmpSrcIndex = i;
239902
+ break;
239903
+ }
239904
+ }
239905
+ }
239906
+ if (tmpSrcIndex >= 0) {
239907
+ oldChildren.splice(tmpSrcIndex, 1);
239908
+ }
239909
+ if (moveType != consts.move.TYPE_INNER) {
239910
+ for (i = 0, l = targetParentChildren.length; i < l; i++) {
239911
+ if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i;
239912
+ }
239913
+ }
239914
+ if (moveType == consts.move.TYPE_INNER) {
239915
+ if (!targetChildren) {
239916
+ targetChildren = data.nodeChildren(setting, targetNode, []);
239917
+ }
239918
+ if (targetChildren.length > 0) {
239919
+ newNeighbor = targetChildren[targetChildren.length - 1];
239920
+ newNeighbor.isLastNode = false;
239921
+ }
239922
+ targetChildren.splice(targetChildren.length, 0, node);
239923
+ node.isLastNode = true;
239924
+ node.isFirstNode = targetChildren.length == 1;
239925
+ } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) {
239926
+ targetParentChildren.splice(tmpTargetIndex, 0, node);
239927
+ newNeighbor = targetNode;
239928
+ newNeighbor.isFirstNode = false;
239929
+ node.parentTId = targetNode.parentTId;
239930
+ node.isFirstNode = true;
239931
+ node.isLastNode = false;
239932
+ } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) {
239933
+ targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
239934
+ newNeighbor = targetNode;
239935
+ newNeighbor.isLastNode = false;
239936
+ node.parentTId = targetNode.parentTId;
239937
+ node.isFirstNode = false;
239938
+ node.isLastNode = true;
239939
+ } else {
239940
+ if (moveType == consts.move.TYPE_PREV) {
239941
+ targetParentChildren.splice(tmpTargetIndex, 0, node);
239942
+ } else {
239943
+ targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
239944
+ }
239945
+ node.parentTId = targetNode.parentTId;
239946
+ node.isFirstNode = false;
239947
+ node.isLastNode = false;
239948
+ }
239949
+ data.fixPIdKeyValue(setting, node);
239950
+ data.setSonNodeLevel(setting, node.getParentNode(), node);
239951
+ view.setNodeLineIcos(setting, node);
239952
+ view.repairNodeLevelClass(setting, node, oldLevel);
239953
+ if (!setting.data.keep.parent && oldChildren.length < 1) {
239954
+ data.nodeIsParent(setting, oldParentNode, false);
239955
+ oldParentNode.open = false;
239956
+ var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting);
239957
+ view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU);
239958
+ view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU);
239959
+ tmp_ulObj.css("display", "none");
239960
+ } else if (oldNeighbor) {
239961
+ view.setNodeLineIcos(setting, oldNeighbor);
239962
+ }
239963
+ if (newNeighbor) {
239964
+ view.setNodeLineIcos(setting, newNeighbor);
239965
+ }
239966
+ if (!!setting.check && setting.check.enable && view.repairChkClass) {
239967
+ view.repairChkClass(setting, oldParentNode);
239968
+ view.repairParentChkClassWithSelf(setting, oldParentNode);
239969
+ if (oldParentNode != node.parent) view.repairParentChkClassWithSelf(setting, node);
239970
+ }
239971
+ if (!isSilent) {
239972
+ view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag);
239973
+ }
239974
+ },
239975
+ removeEditBtn: function(setting, node) {
239976
+ $$(node, consts.id.EDIT, setting).unbind().remove();
239977
+ },
239978
+ removeRemoveBtn: function(setting, node) {
239979
+ $$(node, consts.id.REMOVE, setting).unbind().remove();
239980
+ },
239981
+ removeTreeDom: function(setting, node) {
239982
+ node.isHover = false;
239983
+ view.removeEditBtn(setting, node);
239984
+ view.removeRemoveBtn(setting, node);
239985
+ tools.apply(setting.view.removeHoverDom, [ setting.treeId, node ]);
239986
+ },
239987
+ repairNodeLevelClass: function(setting, node, oldLevel) {
239988
+ if (oldLevel === node.level) return;
239989
+ var liObj = $$(node, setting), aObj = $$(node, consts.id.A, setting), ulObj = $$(node, consts.id.UL, setting), oldClass = consts.className.LEVEL + oldLevel, newClass = consts.className.LEVEL + node.level;
239990
+ liObj.removeClass(oldClass);
239991
+ liObj.addClass(newClass);
239992
+ aObj.removeClass(oldClass);
239993
+ aObj.addClass(newClass);
239994
+ ulObj.removeClass(oldClass);
239995
+ ulObj.addClass(newClass);
239996
+ },
239997
+ selectNodes: function(setting, nodes) {
239998
+ for (var i = 0, l = nodes.length; i < l; i++) {
239999
+ view.selectNode(setting, nodes[i], i > 0);
240000
+ }
240001
+ }
240002
+ }, _z = {
240003
+ tools: _tools,
240004
+ view: _view,
240005
+ event: _event,
240006
+ data: _data
240007
+ };
240008
+ $.extend(true, $.fn.zTree.consts, _consts);
240009
+ $.extend(true, $.fn.zTree._z, _z);
240010
+ var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
240011
+ data.exSetting(_setting);
240012
+ data.addInitBind(_bindEvent);
240013
+ data.addInitUnBind(_unbindEvent);
240014
+ data.addInitCache(_initCache);
240015
+ data.addInitNode(_initNode);
240016
+ data.addInitProxy(_eventProxy);
240017
+ data.addInitRoot(_initRoot);
240018
+ data.addZTreeTools(_zTreeTools);
240019
+ var _cancelPreSelectedNode = view.cancelPreSelectedNode;
240020
+ view.cancelPreSelectedNode = function(setting, node) {
240021
+ var list = data.getRoot(setting).curSelectedList;
240022
+ for (var i = 0, j = list.length; i < j; i++) {
240023
+ if (!node || node === list[i]) {
240024
+ view.removeTreeDom(setting, list[i]);
240025
+ if (node) break;
240026
+ }
240027
+ }
240028
+ if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments);
240029
+ };
240030
+ var _createNodes = view.createNodes;
240031
+ view.createNodes = function(setting, level, nodes, parentNode, index) {
240032
+ if (_createNodes) {
240033
+ _createNodes.apply(view, arguments);
240034
+ }
240035
+ if (!nodes) return;
240036
+ if (view.repairParentChkClassWithSelf) {
240037
+ view.repairParentChkClassWithSelf(setting, parentNode);
240038
+ }
240039
+ };
240040
+ var _makeNodeUrl = view.makeNodeUrl;
240041
+ view.makeNodeUrl = function(setting, node) {
240042
+ return setting.edit.enable ? null : _makeNodeUrl.apply(view, arguments);
240043
+ };
240044
+ var _removeNode = view.removeNode;
240045
+ view.removeNode = function(setting, node) {
240046
+ var root = data.getRoot(setting);
240047
+ if (root.curEditNode === node) root.curEditNode = null;
240048
+ if (_removeNode) {
240049
+ _removeNode.apply(view, arguments);
240050
+ }
240051
+ };
240052
+ var _selectNode = view.selectNode;
240053
+ view.selectNode = function(setting, node, addFlag) {
240054
+ var root = data.getRoot(setting);
240055
+ if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
240056
+ return false;
240057
+ }
240058
+ if (_selectNode) _selectNode.apply(view, arguments);
240059
+ view.addHoverDom(setting, node);
240060
+ return true;
240061
+ };
240062
+ var _uCanDo = tools.uCanDo;
240063
+ tools.uCanDo = function(setting, e) {
240064
+ var root = data.getRoot(setting);
240065
+ if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) {
240066
+ return true;
240067
+ }
240068
+ if (root.curEditNode) {
240069
+ view.editNodeBlur = false;
240070
+ root.curEditInput.focus();
240071
+ }
240072
+ return !root.curEditNode && (_uCanDo ? _uCanDo.apply(view, arguments) : true);
240073
+ };
240074
+ })(jQuery);
240075
+
240076
+ (function($) {
240077
+ $.fn.zTreeKeyboardNavigationDestroy = function() {};
240078
+ $.fn.zTreeKeyboardNavigation = function(zTree, element, selectedNodes = null, treeicon) {
240079
+ if (typeof element === "string" || element instanceof String) {
240080
+ element = $(element);
240081
+ }
240082
+ var rootNodes = zTree.getNodes();
240083
+ if (!rootNodes) return;
240084
+ var focusSelectedNode = function() {
240085
+ if ((selectedNodes = zTree.getSelectedNodes()) && selectedNodes.length) {
240086
+ $("#" + selectedNodes[0].tId).focus();
240087
+ }
240088
+ };
240089
+ $.fn.zTreeKeyboardNavigationDestroy();
240090
+ $.fn.zTreeKeyboardNavigationDestroy = function() {
240091
+ $(element).off("keydown");
240092
+ };
240093
+ $.fn.changeTreeIcons = function() {
240094
+ let eleClose = $(".app-tree li span.button.switch");
240095
+ $(eleClose).map(((idx, ele) => {
240096
+ $(ele).addClass(treeicon);
240097
+ $(ele).on("click", (function(e) {
240098
+ setTimeout((() => {
240099
+ $(ele).addClass(treeicon);
240100
+ }), 0);
240101
+ }));
240102
+ }));
240103
+ };
240104
+ $(element).on("keydown", (function(e) {
240105
+ var selectedNodes = zTree.getSelectedNodes();
240106
+ var selectedNode = selectedNodes.length ? selectedNodes[0] : null;
240107
+ var processSpace = function() {
240108
+ if (selectedNode && selectedNode.isParent) {
240109
+ zTree.expandNode(selectedNode, selectedNode.open ? false : true, true, true);
240110
+ $.fn.changeTreeIcons();
240111
+ }
240112
+ };
240113
+ var processHome = function() {
240114
+ zTree.selectNode(rootNodes[0], false, true);
240115
+ };
240116
+ var processEnd = function() {
240117
+ var nodes = zTree.transformToArray(rootNodes);
240118
+ zTree.selectNode(nodes[nodes.length - 1]);
240119
+ };
240120
+ var processUp = function() {
240121
+ var priorNode;
240122
+ if (selectedNode) {
240123
+ priorNode = selectedNode.getPreNode();
240124
+ if (!priorNode) return;
240125
+ } else {
240126
+ processEnd();
240127
+ }
240128
+ if (!priorNode) return;
240129
+ zTree.selectNode(priorNode);
240130
+ };
240131
+ var processDown = function() {
240132
+ var nextNode;
240133
+ if (selectedNode) {
240134
+ nextNode = selectedNode.getNextNode();
240135
+ if (!nextNode) return;
240136
+ } else {
240137
+ processHome();
240138
+ }
240139
+ if (!nextNode) return;
240140
+ zTree.selectNode(nextNode);
240141
+ };
240142
+ var processOut = function() {
240143
+ if (!selectedNode) return;
240144
+ var parentNode = selectedNode.getParentNode();
240145
+ var priorNode = selectedNode.getPreNode();
240146
+ if (!parentNode && !priorNode) return;
240147
+ if (priorNode) {
240148
+ if (priorNode.isParent) {
240149
+ while (priorNode) {
240150
+ if (!priorNode.isParent || !priorNode.open || !priorNode.children) break;
240151
+ priorNode = priorNode.children[priorNode.children.length - 1];
240152
+ }
240153
+ zTree.selectNode(priorNode);
240154
+ return;
240155
+ } else {
240156
+ zTree.selectNode(priorNode);
240157
+ return;
240158
+ }
240159
+ }
240160
+ if (parentNode) {
240161
+ zTree.selectNode(parentNode, false, true);
240162
+ }
240163
+ };
240164
+ var processIn = function() {
240165
+ if (!selectedNode) return;
240166
+ if (selectedNode.isParent && selectedNode.open && selectedNode.children) {
240167
+ zTree.selectNode(selectedNode.children[0]);
240168
+ return;
240169
+ }
240170
+ var nextNode = selectedNode.getNextNode();
240171
+ if (nextNode) {
240172
+ zTree.selectNode(nextNode);
240173
+ } else {
240174
+ var node = selectedNode;
240175
+ while (node = node.getParentNode()) {
240176
+ var nextNode = node.getNextNode();
240177
+ if (nextNode) {
240178
+ zTree.selectNode(nextNode);
240179
+ break;
240180
+ }
240181
+ }
240182
+ }
240183
+ };
240184
+ var processLetter = function(keyCode) {
240185
+ if (!Array.from({
240186
+ length: 26
240187
+ }, ((v, i) => i + 65)).includes(keyCode & 95)) return false;
240188
+ var nodes = zTree.transformToArray(rootNodes);
240189
+ nodes = nodes.filter((node => "accesskey" in node && node.accesskey.length && (node.accesskey.charCodeAt(0) & 95) == keyCode));
240190
+ if (!nodes.length) return false;
240191
+ var selectedNodes = zTree.getSelectedNodes();
240192
+ if (!selectedNodes.length) return false;
240193
+ if (selectedNodes[0] == nodes[0]) return false;
240194
+ zTree.selectNode(nodes[0]);
240195
+ return true;
240196
+ };
240197
+ switch (e.keyCode) {
240198
+ case 32:
240199
+ processSpace();
240200
+ return;
240201
+
240202
+ case 36:
240203
+ processHome();
240204
+ break;
240205
+
240206
+ case 35:
240207
+ processEnd();
240208
+ break;
240209
+
240210
+ case 33:
240211
+ break;
240212
+
240213
+ case 34:
240214
+ break;
240215
+
240216
+ case 37:
240217
+ processOut();
240218
+ break;
240219
+
240220
+ case 38:
240221
+ processUp();
240222
+ break;
240223
+
240224
+ case 39:
240225
+ processIn();
240226
+ break;
240227
+
240228
+ case 40:
240229
+ processDown();
240230
+ break;
240231
+
240232
+ default:
240233
+ if (!processLetter(e.keyCode & 95)) return;
240234
+ break;
240235
+ }
240236
+ focusSelectedNode();
240237
+ }));
240238
+ if (selectedNodes && selectedNodes.length) {
240239
+ zTree.selectNode(selectedNodes[0]);
240240
+ focusSelectedNode();
240241
+ } else {
240242
+ $(element).trigger({
240243
+ type: "keydown",
240244
+ which: 36,
240245
+ keyCode: 36
240246
+ });
240247
+ }
240248
+ };
240249
+ })(jQuery);