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

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.
@@ -199270,6 +199270,7 @@ window.requestAnimationFrame = function() {
199270
199270
  BaseVariableManager.prototype.httpCall = function(requestParams, variable, params) {
199271
199271
  var _this = this;
199272
199272
  return new Promise((function(resolve, reject) {
199273
+ requestParams["_source"] = "variable";
199273
199274
  variable.httpService.sendCall(requestParams, variable).then((function(response) {
199274
199275
  if (response && response.type || response && response.status) {
199275
199276
  _this.setRequestTrackId(response, variable);
@@ -234116,4 +234117,3569 @@ window.requestAnimationFrame = function() {
234116
234117
  Object.defineProperty(exports, "__esModule", {
234117
234118
  value: true
234118
234119
  });
234119
- }));
234120
+ }));
234121
+
234122
+ (function($) {
234123
+ var settings = {}, roots = {}, caches = {}, _consts = {
234124
+ className: {
234125
+ BUTTON: "button",
234126
+ LEVEL: "level",
234127
+ ICO_LOADING: "ico_loading",
234128
+ SWITCH: "switch",
234129
+ NAME: "node_name"
234130
+ },
234131
+ event: {
234132
+ NODECREATED: "ztree_nodeCreated",
234133
+ CLICK: "ztree_click",
234134
+ EXPAND: "ztree_expand",
234135
+ COLLAPSE: "ztree_collapse",
234136
+ ASYNC_SUCCESS: "ztree_async_success",
234137
+ ASYNC_ERROR: "ztree_async_error",
234138
+ REMOVE: "ztree_remove",
234139
+ SELECTED: "ztree_selected",
234140
+ UNSELECTED: "ztree_unselected"
234141
+ },
234142
+ id: {
234143
+ A: "_a",
234144
+ ICON: "_ico",
234145
+ SPAN: "_span",
234146
+ SWITCH: "_switch",
234147
+ UL: "_ul"
234148
+ },
234149
+ line: {
234150
+ ROOT: "root",
234151
+ ROOTS: "roots",
234152
+ CENTER: "center",
234153
+ BOTTOM: "bottom",
234154
+ NOLINE: "noline",
234155
+ LINE: "line"
234156
+ },
234157
+ folder: {
234158
+ OPEN: "open",
234159
+ CLOSE: "close",
234160
+ DOCU: "docu"
234161
+ },
234162
+ node: {
234163
+ CURSELECTED: "curSelectedNode"
234164
+ }
234165
+ }, _setting = {
234166
+ treeId: "",
234167
+ treeObj: null,
234168
+ view: {
234169
+ addDiyDom: null,
234170
+ autoCancelSelected: true,
234171
+ dblClickExpand: true,
234172
+ expandSpeed: "fast",
234173
+ fontCss: {},
234174
+ nodeClasses: {},
234175
+ nameIsHTML: false,
234176
+ selectedMulti: true,
234177
+ showIcon: true,
234178
+ showLine: true,
234179
+ showTitle: true,
234180
+ txtSelectedEnable: false
234181
+ },
234182
+ data: {
234183
+ key: {
234184
+ isParent: "isParent",
234185
+ children: "children",
234186
+ name: "name",
234187
+ title: "",
234188
+ url: "url",
234189
+ icon: "icon"
234190
+ },
234191
+ render: {
234192
+ name: null,
234193
+ title: null
234194
+ },
234195
+ simpleData: {
234196
+ enable: false,
234197
+ idKey: "id",
234198
+ pIdKey: "pId",
234199
+ rootPId: null
234200
+ },
234201
+ keep: {
234202
+ parent: false,
234203
+ leaf: false
234204
+ }
234205
+ },
234206
+ async: {
234207
+ enable: false,
234208
+ contentType: "application/x-www-form-urlencoded",
234209
+ type: "post",
234210
+ dataType: "text",
234211
+ headers: {},
234212
+ xhrFields: {},
234213
+ url: "",
234214
+ autoParam: [],
234215
+ otherParam: [],
234216
+ dataFilter: null
234217
+ },
234218
+ callback: {
234219
+ beforeAsync: null,
234220
+ beforeClick: null,
234221
+ beforeDblClick: null,
234222
+ beforeRightClick: null,
234223
+ beforeMouseDown: null,
234224
+ beforeMouseUp: null,
234225
+ beforeExpand: null,
234226
+ beforeCollapse: null,
234227
+ beforeRemove: null,
234228
+ onAsyncError: null,
234229
+ onAsyncSuccess: null,
234230
+ onNodeCreated: null,
234231
+ onClick: null,
234232
+ onDblClick: null,
234233
+ onRightClick: null,
234234
+ onMouseDown: null,
234235
+ onMouseUp: null,
234236
+ onExpand: null,
234237
+ onCollapse: null,
234238
+ onRemove: null
234239
+ }
234240
+ }, _initRoot = function(setting) {
234241
+ var r = data.getRoot(setting);
234242
+ if (!r) {
234243
+ r = {};
234244
+ data.setRoot(setting, r);
234245
+ }
234246
+ data.nodeChildren(setting, r, []);
234247
+ r.expandTriggerFlag = false;
234248
+ r.curSelectedList = [];
234249
+ r.noSelection = true;
234250
+ r.createdNodes = [];
234251
+ r.zId = 0;
234252
+ r._ver = (new Date).getTime();
234253
+ }, _initCache = function(setting) {
234254
+ var c = data.getCache(setting);
234255
+ if (!c) {
234256
+ c = {};
234257
+ data.setCache(setting, c);
234258
+ }
234259
+ c.nodes = [];
234260
+ c.doms = [];
234261
+ }, _bindEvent = function(setting) {
234262
+ var o = setting.treeObj, c = consts.event;
234263
+ o.bind(c.NODECREATED, (function(event, treeId, node) {
234264
+ tools.apply(setting.callback.onNodeCreated, [ event, treeId, node ]);
234265
+ }));
234266
+ o.bind(c.CLICK, (function(event, srcEvent, treeId, node, clickFlag) {
234267
+ tools.apply(setting.callback.onClick, [ srcEvent, treeId, node, clickFlag ]);
234268
+ }));
234269
+ o.bind(c.EXPAND, (function(event, treeId, node) {
234270
+ tools.apply(setting.callback.onExpand, [ event, treeId, node ]);
234271
+ }));
234272
+ o.bind(c.COLLAPSE, (function(event, treeId, node) {
234273
+ tools.apply(setting.callback.onCollapse, [ event, treeId, node ]);
234274
+ }));
234275
+ o.bind(c.ASYNC_SUCCESS, (function(event, treeId, node, msg) {
234276
+ tools.apply(setting.callback.onAsyncSuccess, [ event, treeId, node, msg ]);
234277
+ }));
234278
+ o.bind(c.ASYNC_ERROR, (function(event, treeId, node, XMLHttpRequest, textStatus, errorThrown) {
234279
+ tools.apply(setting.callback.onAsyncError, [ event, treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
234280
+ }));
234281
+ o.bind(c.REMOVE, (function(event, treeId, treeNode) {
234282
+ tools.apply(setting.callback.onRemove, [ event, treeId, treeNode ]);
234283
+ }));
234284
+ o.bind(c.SELECTED, (function(event, treeId, node) {
234285
+ tools.apply(setting.callback.onSelected, [ treeId, node ]);
234286
+ }));
234287
+ o.bind(c.UNSELECTED, (function(event, treeId, node) {
234288
+ tools.apply(setting.callback.onUnSelected, [ treeId, node ]);
234289
+ }));
234290
+ }, _unbindEvent = function(setting) {
234291
+ var o = setting.treeObj, c = consts.event;
234292
+ 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);
234293
+ }, _eventProxy = function(event) {
234294
+ var target = event.target, setting = data.getSetting(event.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
234295
+ if (tools.eqs(event.type, "mousedown")) {
234296
+ treeEventType = "mousedown";
234297
+ } else if (tools.eqs(event.type, "mouseup")) {
234298
+ treeEventType = "mouseup";
234299
+ } else if (tools.eqs(event.type, "contextmenu")) {
234300
+ treeEventType = "contextmenu";
234301
+ } else if (tools.eqs(event.type, "click")) {
234302
+ if (tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.SWITCH) !== null) {
234303
+ tId = tools.getNodeMainDom(target).id;
234304
+ nodeEventType = "switchNode";
234305
+ } else {
234306
+ tmp = tools.getMDom(setting, target, [ {
234307
+ tagName: "a",
234308
+ attrName: "treeNode" + consts.id.A
234309
+ } ]);
234310
+ if (tmp) {
234311
+ tId = tools.getNodeMainDom(tmp).id;
234312
+ nodeEventType = "clickNode";
234313
+ }
234314
+ }
234315
+ } else if (tools.eqs(event.type, "dblclick")) {
234316
+ treeEventType = "dblclick";
234317
+ tmp = tools.getMDom(setting, target, [ {
234318
+ tagName: "a",
234319
+ attrName: "treeNode" + consts.id.A
234320
+ } ]);
234321
+ if (tmp) {
234322
+ tId = tools.getNodeMainDom(tmp).id;
234323
+ nodeEventType = "switchNode";
234324
+ }
234325
+ }
234326
+ if (treeEventType.length > 0 && tId.length == 0) {
234327
+ tmp = tools.getMDom(setting, target, [ {
234328
+ tagName: "a",
234329
+ attrName: "treeNode" + consts.id.A
234330
+ } ]);
234331
+ if (tmp) {
234332
+ tId = tools.getNodeMainDom(tmp).id;
234333
+ }
234334
+ }
234335
+ if (tId.length > 0) {
234336
+ node = data.getNodeCache(setting, tId);
234337
+ switch (nodeEventType) {
234338
+ case "switchNode":
234339
+ var isParent = data.nodeIsParent(setting, node);
234340
+ if (!isParent) {
234341
+ nodeEventType = "";
234342
+ } else if (tools.eqs(event.type, "click") || tools.eqs(event.type, "dblclick") && tools.apply(setting.view.dblClickExpand, [ setting.treeId, node ], setting.view.dblClickExpand)) {
234343
+ nodeEventCallback = handler.onSwitchNode;
234344
+ } else {
234345
+ nodeEventType = "";
234346
+ }
234347
+ break;
234348
+
234349
+ case "clickNode":
234350
+ nodeEventCallback = handler.onClickNode;
234351
+ break;
234352
+ }
234353
+ }
234354
+ switch (treeEventType) {
234355
+ case "mousedown":
234356
+ treeEventCallback = handler.onZTreeMousedown;
234357
+ break;
234358
+
234359
+ case "mouseup":
234360
+ treeEventCallback = handler.onZTreeMouseup;
234361
+ break;
234362
+
234363
+ case "dblclick":
234364
+ treeEventCallback = handler.onZTreeDblclick;
234365
+ break;
234366
+
234367
+ case "contextmenu":
234368
+ treeEventCallback = handler.onZTreeContextmenu;
234369
+ break;
234370
+ }
234371
+ var proxyResult = {
234372
+ stop: false,
234373
+ node: node,
234374
+ nodeEventType: nodeEventType,
234375
+ nodeEventCallback: nodeEventCallback,
234376
+ treeEventType: treeEventType,
234377
+ treeEventCallback: treeEventCallback
234378
+ };
234379
+ return proxyResult;
234380
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
234381
+ if (!n) return;
234382
+ var r = data.getRoot(setting), children = data.nodeChildren(setting, n);
234383
+ n.level = level;
234384
+ n.tId = setting.treeId + "_" + ++r.zId;
234385
+ n.parentTId = parentNode ? parentNode.tId : null;
234386
+ n.open = typeof n.open == "string" ? tools.eqs(n.open, "true") : !!n.open;
234387
+ var isParent = data.nodeIsParent(setting, n);
234388
+ if (tools.isArray(children)) {
234389
+ data.nodeIsParent(setting, n, true);
234390
+ n.zAsync = true;
234391
+ } else {
234392
+ isParent = data.nodeIsParent(setting, n, isParent);
234393
+ n.open = isParent && !setting.async.enable ? n.open : false;
234394
+ n.zAsync = !isParent;
234395
+ }
234396
+ n.isFirstNode = isFirstNode;
234397
+ n.isLastNode = isLastNode;
234398
+ n.getParentNode = function() {
234399
+ return data.getNodeCache(setting, n.parentTId);
234400
+ };
234401
+ n.getPreNode = function() {
234402
+ return data.getPreNode(setting, n);
234403
+ };
234404
+ n.getNextNode = function() {
234405
+ return data.getNextNode(setting, n);
234406
+ };
234407
+ n.getIndex = function() {
234408
+ return data.getNodeIndex(setting, n);
234409
+ };
234410
+ n.getPath = function() {
234411
+ return data.getNodePath(setting, n);
234412
+ };
234413
+ n.isAjaxing = false;
234414
+ data.fixPIdKeyValue(setting, n);
234415
+ }, _init = {
234416
+ bind: [ _bindEvent ],
234417
+ unbind: [ _unbindEvent ],
234418
+ caches: [ _initCache ],
234419
+ nodes: [ _initNode ],
234420
+ proxys: [ _eventProxy ],
234421
+ roots: [ _initRoot ],
234422
+ beforeA: [],
234423
+ afterA: [],
234424
+ innerBeforeA: [],
234425
+ innerAfterA: [],
234426
+ zTreeTools: []
234427
+ }, data = {
234428
+ addNodeCache: function(setting, node) {
234429
+ data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = node;
234430
+ },
234431
+ getNodeCacheId: function(tId) {
234432
+ return tId.substring(tId.lastIndexOf("_") + 1);
234433
+ },
234434
+ addAfterA: function(afterA) {
234435
+ _init.afterA.push(afterA);
234436
+ },
234437
+ addBeforeA: function(beforeA) {
234438
+ _init.beforeA.push(beforeA);
234439
+ },
234440
+ addInnerAfterA: function(innerAfterA) {
234441
+ _init.innerAfterA.push(innerAfterA);
234442
+ },
234443
+ addInnerBeforeA: function(innerBeforeA) {
234444
+ _init.innerBeforeA.push(innerBeforeA);
234445
+ },
234446
+ addInitBind: function(bindEvent) {
234447
+ _init.bind.push(bindEvent);
234448
+ },
234449
+ addInitUnBind: function(unbindEvent) {
234450
+ _init.unbind.push(unbindEvent);
234451
+ },
234452
+ addInitCache: function(initCache) {
234453
+ _init.caches.push(initCache);
234454
+ },
234455
+ addInitNode: function(initNode) {
234456
+ _init.nodes.push(initNode);
234457
+ },
234458
+ addInitProxy: function(initProxy, isFirst) {
234459
+ if (!!isFirst) {
234460
+ _init.proxys.splice(0, 0, initProxy);
234461
+ } else {
234462
+ _init.proxys.push(initProxy);
234463
+ }
234464
+ },
234465
+ addInitRoot: function(initRoot) {
234466
+ _init.roots.push(initRoot);
234467
+ },
234468
+ addNodesData: function(setting, parentNode, index, nodes) {
234469
+ var children = data.nodeChildren(setting, parentNode), params;
234470
+ if (!children) {
234471
+ children = data.nodeChildren(setting, parentNode, []);
234472
+ index = -1;
234473
+ } else if (index >= children.length) {
234474
+ index = -1;
234475
+ }
234476
+ if (children.length > 0 && index === 0) {
234477
+ children[0].isFirstNode = false;
234478
+ view.setNodeLineIcos(setting, children[0]);
234479
+ } else if (children.length > 0 && index < 0) {
234480
+ children[children.length - 1].isLastNode = false;
234481
+ view.setNodeLineIcos(setting, children[children.length - 1]);
234482
+ }
234483
+ data.nodeIsParent(setting, parentNode, true);
234484
+ if (index < 0) {
234485
+ data.nodeChildren(setting, parentNode, children.concat(nodes));
234486
+ } else {
234487
+ params = [ index, 0 ].concat(nodes);
234488
+ children.splice.apply(children, params);
234489
+ }
234490
+ },
234491
+ addSelectedNode: function(setting, node) {
234492
+ var root = data.getRoot(setting);
234493
+ if (!data.isSelectedNode(setting, node)) {
234494
+ root.curSelectedList.push(node);
234495
+ }
234496
+ },
234497
+ addCreatedNode: function(setting, node) {
234498
+ if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
234499
+ var root = data.getRoot(setting);
234500
+ root.createdNodes.push(node);
234501
+ }
234502
+ },
234503
+ addZTreeTools: function(zTreeTools) {
234504
+ _init.zTreeTools.push(zTreeTools);
234505
+ },
234506
+ exSetting: function(s) {
234507
+ $.extend(true, _setting, s);
234508
+ },
234509
+ fixPIdKeyValue: function(setting, node) {
234510
+ if (setting.data.simpleData.enable) {
234511
+ node[setting.data.simpleData.pIdKey] = node.parentTId ? node.getParentNode()[setting.data.simpleData.idKey] : setting.data.simpleData.rootPId;
234512
+ }
234513
+ },
234514
+ getAfterA: function(setting, node, array) {
234515
+ for (var i = 0, j = _init.afterA.length; i < j; i++) {
234516
+ _init.afterA[i].apply(this, arguments);
234517
+ }
234518
+ },
234519
+ getBeforeA: function(setting, node, array) {
234520
+ for (var i = 0, j = _init.beforeA.length; i < j; i++) {
234521
+ _init.beforeA[i].apply(this, arguments);
234522
+ }
234523
+ },
234524
+ getInnerAfterA: function(setting, node, array) {
234525
+ for (var i = 0, j = _init.innerAfterA.length; i < j; i++) {
234526
+ _init.innerAfterA[i].apply(this, arguments);
234527
+ }
234528
+ },
234529
+ getInnerBeforeA: function(setting, node, array) {
234530
+ for (var i = 0, j = _init.innerBeforeA.length; i < j; i++) {
234531
+ _init.innerBeforeA[i].apply(this, arguments);
234532
+ }
234533
+ },
234534
+ getCache: function(setting) {
234535
+ return caches[setting.treeId];
234536
+ },
234537
+ getNodeIndex: function(setting, node) {
234538
+ if (!node) return null;
234539
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
234540
+ for (var i = 0, l = children.length - 1; i <= l; i++) {
234541
+ if (children[i] === node) {
234542
+ return i;
234543
+ }
234544
+ }
234545
+ return -1;
234546
+ },
234547
+ getNextNode: function(setting, node) {
234548
+ if (!node) return null;
234549
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
234550
+ for (var i = 0, l = children.length - 1; i <= l; i++) {
234551
+ if (children[i] === node) {
234552
+ return i == l ? null : children[i + 1];
234553
+ }
234554
+ }
234555
+ return null;
234556
+ },
234557
+ getNodeByParam: function(setting, nodes, key, value) {
234558
+ if (!nodes || !key) return null;
234559
+ for (var i = 0, l = nodes.length; i < l; i++) {
234560
+ var node = nodes[i];
234561
+ if (node[key] == value) {
234562
+ return nodes[i];
234563
+ }
234564
+ var children = data.nodeChildren(setting, node);
234565
+ var tmp = data.getNodeByParam(setting, children, key, value);
234566
+ if (tmp) return tmp;
234567
+ }
234568
+ return null;
234569
+ },
234570
+ getNodeCache: function(setting, tId) {
234571
+ if (!tId) return null;
234572
+ var n = caches[setting.treeId].nodes[data.getNodeCacheId(tId)];
234573
+ return n ? n : null;
234574
+ },
234575
+ getNodePath: function(setting, node) {
234576
+ if (!node) return null;
234577
+ var path;
234578
+ if (node.parentTId) {
234579
+ path = node.getParentNode().getPath();
234580
+ } else {
234581
+ path = [];
234582
+ }
234583
+ if (path) {
234584
+ path.push(node);
234585
+ }
234586
+ return path;
234587
+ },
234588
+ getNodes: function(setting) {
234589
+ return data.nodeChildren(setting, data.getRoot(setting));
234590
+ },
234591
+ getNodesByParam: function(setting, nodes, key, value) {
234592
+ if (!nodes || !key) return [];
234593
+ var result = [];
234594
+ for (var i = 0, l = nodes.length; i < l; i++) {
234595
+ var node = nodes[i];
234596
+ if (node[key] == value) {
234597
+ result.push(node);
234598
+ }
234599
+ var children = data.nodeChildren(setting, node);
234600
+ result = result.concat(data.getNodesByParam(setting, children, key, value));
234601
+ }
234602
+ return result;
234603
+ },
234604
+ getNodesByParamFuzzy: function(setting, nodes, key, value) {
234605
+ if (!nodes || !key) return [];
234606
+ var result = [];
234607
+ value = value.toLowerCase();
234608
+ for (var i = 0, l = nodes.length; i < l; i++) {
234609
+ var node = nodes[i];
234610
+ if (typeof node[key] == "string" && nodes[i][key].toLowerCase().indexOf(value) > -1) {
234611
+ result.push(node);
234612
+ }
234613
+ var children = data.nodeChildren(setting, node);
234614
+ result = result.concat(data.getNodesByParamFuzzy(setting, children, key, value));
234615
+ }
234616
+ return result;
234617
+ },
234618
+ getNodesByFilter: function(setting, nodes, filter, isSingle, invokeParam) {
234619
+ if (!nodes) return isSingle ? null : [];
234620
+ var result = isSingle ? null : [];
234621
+ for (var i = 0, l = nodes.length; i < l; i++) {
234622
+ var node = nodes[i];
234623
+ if (tools.apply(filter, [ node, invokeParam ], false)) {
234624
+ if (isSingle) {
234625
+ return node;
234626
+ }
234627
+ result.push(node);
234628
+ }
234629
+ var children = data.nodeChildren(setting, node);
234630
+ var tmpResult = data.getNodesByFilter(setting, children, filter, isSingle, invokeParam);
234631
+ if (isSingle && !!tmpResult) {
234632
+ return tmpResult;
234633
+ }
234634
+ result = isSingle ? tmpResult : result.concat(tmpResult);
234635
+ }
234636
+ return result;
234637
+ },
234638
+ getPreNode: function(setting, node) {
234639
+ if (!node) return null;
234640
+ var p = node.parentTId ? node.getParentNode() : data.getRoot(setting), children = data.nodeChildren(setting, p);
234641
+ for (var i = 0, l = children.length; i < l; i++) {
234642
+ if (children[i] === node) {
234643
+ return i == 0 ? null : children[i - 1];
234644
+ }
234645
+ }
234646
+ return null;
234647
+ },
234648
+ getRoot: function(setting) {
234649
+ return setting ? roots[setting.treeId] : null;
234650
+ },
234651
+ getRoots: function() {
234652
+ return roots;
234653
+ },
234654
+ getSetting: function(treeId) {
234655
+ return settings[treeId];
234656
+ },
234657
+ getSettings: function() {
234658
+ return settings;
234659
+ },
234660
+ getZTreeTools: function(treeId) {
234661
+ var r = this.getRoot(this.getSetting(treeId));
234662
+ return r ? r.treeTools : null;
234663
+ },
234664
+ initCache: function(setting) {
234665
+ for (var i = 0, j = _init.caches.length; i < j; i++) {
234666
+ _init.caches[i].apply(this, arguments);
234667
+ }
234668
+ },
234669
+ initNode: function(setting, level, node, parentNode, preNode, nextNode) {
234670
+ for (var i = 0, j = _init.nodes.length; i < j; i++) {
234671
+ _init.nodes[i].apply(this, arguments);
234672
+ }
234673
+ },
234674
+ initRoot: function(setting) {
234675
+ for (var i = 0, j = _init.roots.length; i < j; i++) {
234676
+ _init.roots[i].apply(this, arguments);
234677
+ }
234678
+ },
234679
+ isSelectedNode: function(setting, node) {
234680
+ var root = data.getRoot(setting);
234681
+ for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
234682
+ if (node === root.curSelectedList[i]) return true;
234683
+ }
234684
+ return false;
234685
+ },
234686
+ nodeChildren: function(setting, node, newChildren) {
234687
+ if (!node) {
234688
+ return null;
234689
+ }
234690
+ var key = setting.data.key.children;
234691
+ if (typeof newChildren !== "undefined") {
234692
+ node[key] = newChildren;
234693
+ }
234694
+ return node[key];
234695
+ },
234696
+ nodeIsParent: function(setting, node, newIsParent) {
234697
+ if (!node) {
234698
+ return false;
234699
+ }
234700
+ var key = setting.data.key.isParent;
234701
+ if (typeof newIsParent !== "undefined") {
234702
+ if (typeof newIsParent === "string") {
234703
+ newIsParent = tools.eqs(newIsParent, "true");
234704
+ }
234705
+ newIsParent = !!newIsParent;
234706
+ node[key] = newIsParent;
234707
+ } else if (typeof node[key] == "string") {
234708
+ node[key] = tools.eqs(node[key], "true");
234709
+ } else {
234710
+ node[key] = !!node[key];
234711
+ }
234712
+ return node[key];
234713
+ },
234714
+ nodeName: function(setting, node, newName) {
234715
+ var key = setting.data.key.name;
234716
+ if (typeof newName !== "undefined") {
234717
+ node[key] = newName;
234718
+ }
234719
+ var rawName = "" + node[key];
234720
+ if (typeof setting.data.render.name === "function") {
234721
+ return setting.data.render.name.call(this, rawName, node);
234722
+ }
234723
+ return rawName;
234724
+ },
234725
+ nodeTitle: function(setting, node) {
234726
+ var t = setting.data.key.title === "" ? setting.data.key.name : setting.data.key.title;
234727
+ var rawTitle = "" + node[t];
234728
+ if (typeof setting.data.render.title === "function") {
234729
+ return setting.data.render.title.call(this, rawTitle, node);
234730
+ }
234731
+ return rawTitle;
234732
+ },
234733
+ removeNodeCache: function(setting, node) {
234734
+ var children = data.nodeChildren(setting, node);
234735
+ if (children) {
234736
+ for (var i = 0, l = children.length; i < l; i++) {
234737
+ data.removeNodeCache(setting, children[i]);
234738
+ }
234739
+ }
234740
+ data.getCache(setting).nodes[data.getNodeCacheId(node.tId)] = null;
234741
+ },
234742
+ removeSelectedNode: function(setting, node) {
234743
+ var root = data.getRoot(setting);
234744
+ for (var i = 0, j = root.curSelectedList.length; i < j; i++) {
234745
+ if (node === root.curSelectedList[i] || !data.getNodeCache(setting, root.curSelectedList[i].tId)) {
234746
+ root.curSelectedList.splice(i, 1);
234747
+ setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, node ]);
234748
+ i--;
234749
+ j--;
234750
+ }
234751
+ }
234752
+ },
234753
+ setCache: function(setting, cache) {
234754
+ caches[setting.treeId] = cache;
234755
+ },
234756
+ setRoot: function(setting, root) {
234757
+ roots[setting.treeId] = root;
234758
+ },
234759
+ setZTreeTools: function(setting, zTreeTools) {
234760
+ for (var i = 0, j = _init.zTreeTools.length; i < j; i++) {
234761
+ _init.zTreeTools[i].apply(this, arguments);
234762
+ }
234763
+ },
234764
+ transformToArrayFormat: function(setting, nodes) {
234765
+ if (!nodes) return [];
234766
+ var r = [];
234767
+ if (tools.isArray(nodes)) {
234768
+ for (var i = 0, l = nodes.length; i < l; i++) {
234769
+ var node = nodes[i];
234770
+ _do(node);
234771
+ }
234772
+ } else {
234773
+ _do(nodes);
234774
+ }
234775
+ return r;
234776
+ function _do(_node) {
234777
+ r.push(_node);
234778
+ var children = data.nodeChildren(setting, _node);
234779
+ if (children) {
234780
+ r = r.concat(data.transformToArrayFormat(setting, children));
234781
+ }
234782
+ }
234783
+ },
234784
+ transformTozTreeFormat: function(setting, sNodes) {
234785
+ var i, l, key = setting.data.simpleData.idKey, parentKey = setting.data.simpleData.pIdKey;
234786
+ if (!key || key == "" || !sNodes) return [];
234787
+ if (tools.isArray(sNodes)) {
234788
+ var r = [];
234789
+ var tmpMap = {};
234790
+ for (i = 0, l = sNodes.length; i < l; i++) {
234791
+ tmpMap[sNodes[i][key]] = sNodes[i];
234792
+ }
234793
+ for (i = 0, l = sNodes.length; i < l; i++) {
234794
+ var p = tmpMap[sNodes[i][parentKey]];
234795
+ if (p && sNodes[i][key] != sNodes[i][parentKey]) {
234796
+ var children = data.nodeChildren(setting, p);
234797
+ if (!children) {
234798
+ children = data.nodeChildren(setting, p, []);
234799
+ }
234800
+ children.push(sNodes[i]);
234801
+ } else {
234802
+ r.push(sNodes[i]);
234803
+ }
234804
+ }
234805
+ return r;
234806
+ } else {
234807
+ return [ sNodes ];
234808
+ }
234809
+ }
234810
+ }, event = {
234811
+ bindEvent: function(setting) {
234812
+ for (var i = 0, j = _init.bind.length; i < j; i++) {
234813
+ _init.bind[i].apply(this, arguments);
234814
+ }
234815
+ },
234816
+ unbindEvent: function(setting) {
234817
+ for (var i = 0, j = _init.unbind.length; i < j; i++) {
234818
+ _init.unbind[i].apply(this, arguments);
234819
+ }
234820
+ },
234821
+ bindTree: function(setting) {
234822
+ var eventParam = {
234823
+ treeId: setting.treeId
234824
+ }, o = setting.treeObj;
234825
+ if (!setting.view.txtSelectedEnable) {
234826
+ o.bind("selectstart", handler.onSelectStart).css({
234827
+ "-moz-user-select": "-moz-none"
234828
+ });
234829
+ }
234830
+ o.bind("click", eventParam, event.proxy);
234831
+ o.bind("dblclick", eventParam, event.proxy);
234832
+ o.bind("mouseover", eventParam, event.proxy);
234833
+ o.bind("mouseout", eventParam, event.proxy);
234834
+ o.bind("mousedown", eventParam, event.proxy);
234835
+ o.bind("mouseup", eventParam, event.proxy);
234836
+ o.bind("contextmenu", eventParam, event.proxy);
234837
+ },
234838
+ unbindTree: function(setting) {
234839
+ var o = setting.treeObj;
234840
+ 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);
234841
+ },
234842
+ doProxy: function(e) {
234843
+ var results = [];
234844
+ for (var i = 0, j = _init.proxys.length; i < j; i++) {
234845
+ var proxyResult = _init.proxys[i].apply(this, arguments);
234846
+ results.push(proxyResult);
234847
+ if (proxyResult.stop) {
234848
+ break;
234849
+ }
234850
+ }
234851
+ return results;
234852
+ },
234853
+ proxy: function(e) {
234854
+ var setting = data.getSetting(e.data.treeId);
234855
+ if (!tools.uCanDo(setting, e)) return true;
234856
+ var results = event.doProxy(e), r = true, x = false;
234857
+ for (var i = 0, l = results.length; i < l; i++) {
234858
+ var proxyResult = results[i];
234859
+ if (proxyResult.nodeEventCallback) {
234860
+ x = true;
234861
+ r = proxyResult.nodeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
234862
+ }
234863
+ if (proxyResult.treeEventCallback) {
234864
+ x = true;
234865
+ r = proxyResult.treeEventCallback.apply(proxyResult, [ e, proxyResult.node ]) && r;
234866
+ }
234867
+ }
234868
+ return r;
234869
+ }
234870
+ }, handler = {
234871
+ onSwitchNode: function(event, node) {
234872
+ var setting = data.getSetting(event.data.treeId);
234873
+ if (node.open) {
234874
+ if (tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) return true;
234875
+ data.getRoot(setting).expandTriggerFlag = true;
234876
+ view.switchNode(setting, node);
234877
+ } else {
234878
+ if (tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) return true;
234879
+ data.getRoot(setting).expandTriggerFlag = true;
234880
+ view.switchNode(setting, node);
234881
+ }
234882
+ return true;
234883
+ },
234884
+ onClickNode: function(event, node) {
234885
+ 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;
234886
+ if (tools.apply(setting.callback.beforeClick, [ setting.treeId, node, clickFlag ], true) == false) return true;
234887
+ if (clickFlag === 0) {
234888
+ view.cancelPreSelectedNode(setting, node);
234889
+ } else {
234890
+ view.selectNode(setting, node, clickFlag === 2);
234891
+ }
234892
+ setting.treeObj.trigger(consts.event.CLICK, [ event, setting.treeId, node, clickFlag ]);
234893
+ return true;
234894
+ },
234895
+ onZTreeMousedown: function(event, node) {
234896
+ var setting = data.getSetting(event.data.treeId);
234897
+ if (tools.apply(setting.callback.beforeMouseDown, [ setting.treeId, node ], true)) {
234898
+ tools.apply(setting.callback.onMouseDown, [ event, setting.treeId, node ]);
234899
+ }
234900
+ return true;
234901
+ },
234902
+ onZTreeMouseup: function(event, node) {
234903
+ var setting = data.getSetting(event.data.treeId);
234904
+ if (tools.apply(setting.callback.beforeMouseUp, [ setting.treeId, node ], true)) {
234905
+ tools.apply(setting.callback.onMouseUp, [ event, setting.treeId, node ]);
234906
+ }
234907
+ return true;
234908
+ },
234909
+ onZTreeDblclick: function(event, node) {
234910
+ var setting = data.getSetting(event.data.treeId);
234911
+ if (tools.apply(setting.callback.beforeDblClick, [ setting.treeId, node ], true)) {
234912
+ tools.apply(setting.callback.onDblClick, [ event, setting.treeId, node ]);
234913
+ }
234914
+ return true;
234915
+ },
234916
+ onZTreeContextmenu: function(event, node) {
234917
+ var setting = data.getSetting(event.data.treeId);
234918
+ if (tools.apply(setting.callback.beforeRightClick, [ setting.treeId, node ], true)) {
234919
+ tools.apply(setting.callback.onRightClick, [ event, setting.treeId, node ]);
234920
+ }
234921
+ return typeof setting.callback.onRightClick != "function";
234922
+ },
234923
+ onSelectStart: function(e) {
234924
+ var n = e.originalEvent.srcElement.nodeName.toLowerCase();
234925
+ return n === "input" || n === "textarea";
234926
+ }
234927
+ }, tools = {
234928
+ apply: function(fun, param, defaultValue) {
234929
+ if (typeof fun == "function") {
234930
+ return fun.apply(zt, param ? param : []);
234931
+ }
234932
+ return defaultValue;
234933
+ },
234934
+ canAsync: function(setting, node) {
234935
+ var children = data.nodeChildren(setting, node);
234936
+ var isParent = data.nodeIsParent(setting, node);
234937
+ return setting.async.enable && node && isParent && !(node.zAsync || children && children.length > 0);
234938
+ },
234939
+ clone: function(obj) {
234940
+ if (obj === null) return null;
234941
+ var o = tools.isArray(obj) ? [] : {};
234942
+ for (var i in obj) {
234943
+ o[i] = obj[i] instanceof Date ? new Date(obj[i].getTime()) : typeof obj[i] === "object" ? tools.clone(obj[i]) : obj[i];
234944
+ }
234945
+ return o;
234946
+ },
234947
+ eqs: function(str1, str2) {
234948
+ return str1.toLowerCase() === str2.toLowerCase();
234949
+ },
234950
+ isArray: function(arr) {
234951
+ return Object.prototype.toString.apply(arr) === "[object Array]";
234952
+ },
234953
+ isElement: function(o) {
234954
+ return typeof HTMLElement === "object" ? o instanceof HTMLElement : o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string";
234955
+ },
234956
+ $: function(node, exp, setting) {
234957
+ if (!!exp && typeof exp != "string") {
234958
+ setting = exp;
234959
+ exp = "";
234960
+ }
234961
+ if (typeof node == "string") {
234962
+ return $(node, setting ? setting.treeObj.get(0).ownerDocument : null);
234963
+ } else {
234964
+ return $("#" + node.tId + exp, setting ? setting.treeObj : null);
234965
+ }
234966
+ },
234967
+ getMDom: function(setting, curDom, targetExpr) {
234968
+ if (!curDom) return null;
234969
+ while (curDom && curDom.id !== setting.treeId) {
234970
+ for (var i = 0, l = targetExpr.length; curDom.tagName && i < l; i++) {
234971
+ if (tools.eqs(curDom.tagName, targetExpr[i].tagName) && curDom.getAttribute(targetExpr[i].attrName) !== null) {
234972
+ return curDom;
234973
+ }
234974
+ }
234975
+ curDom = curDom.parentNode;
234976
+ }
234977
+ return null;
234978
+ },
234979
+ getNodeMainDom: function(target) {
234980
+ return $(target).parent("li").get(0) || $(target).parentsUntil("li").parent().get(0);
234981
+ },
234982
+ isChildOrSelf: function(dom, parentId) {
234983
+ return $(dom).closest("#" + parentId).length > 0;
234984
+ },
234985
+ uCanDo: function(setting, e) {
234986
+ return true;
234987
+ }
234988
+ }, view = {
234989
+ addNodes: function(setting, parentNode, index, newNodes, isSilent) {
234990
+ var isParent = data.nodeIsParent(setting, parentNode);
234991
+ if (setting.data.keep.leaf && parentNode && !isParent) {
234992
+ return;
234993
+ }
234994
+ if (!tools.isArray(newNodes)) {
234995
+ newNodes = [ newNodes ];
234996
+ }
234997
+ if (setting.data.simpleData.enable) {
234998
+ newNodes = data.transformTozTreeFormat(setting, newNodes);
234999
+ }
235000
+ if (parentNode) {
235001
+ var target_switchObj = $$(parentNode, consts.id.SWITCH, setting), target_icoObj = $$(parentNode, consts.id.ICON, setting), target_ulObj = $$(parentNode, consts.id.UL, setting);
235002
+ if (!parentNode.open) {
235003
+ view.replaceSwitchClass(parentNode, target_switchObj, consts.folder.CLOSE);
235004
+ view.replaceIcoClass(parentNode, target_icoObj, consts.folder.CLOSE);
235005
+ parentNode.open = false;
235006
+ target_ulObj.css({
235007
+ display: "none"
235008
+ });
235009
+ }
235010
+ data.addNodesData(setting, parentNode, index, newNodes);
235011
+ view.createNodes(setting, parentNode.level + 1, newNodes, parentNode, index);
235012
+ if (!isSilent) {
235013
+ view.expandCollapseParentNode(setting, parentNode, true);
235014
+ }
235015
+ } else {
235016
+ data.addNodesData(setting, data.getRoot(setting), index, newNodes);
235017
+ view.createNodes(setting, 0, newNodes, null, index);
235018
+ }
235019
+ },
235020
+ appendNodes: function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
235021
+ if (!nodes) return [];
235022
+ var html = [];
235023
+ var tmpPNode = parentNode ? parentNode : data.getRoot(setting), tmpPChild = data.nodeChildren(setting, tmpPNode), isFirstNode, isLastNode;
235024
+ if (!tmpPChild || index >= tmpPChild.length - nodes.length) {
235025
+ index = -1;
235026
+ }
235027
+ for (var i = 0, l = nodes.length; i < l; i++) {
235028
+ var node = nodes[i];
235029
+ if (initFlag) {
235030
+ isFirstNode = (index === 0 || tmpPChild.length == nodes.length) && i == 0;
235031
+ isLastNode = index < 0 && i == nodes.length - 1;
235032
+ data.initNode(setting, level, node, parentNode, isFirstNode, isLastNode, openFlag);
235033
+ data.addNodeCache(setting, node);
235034
+ }
235035
+ var isParent = data.nodeIsParent(setting, node);
235036
+ var childHtml = [];
235037
+ var children = data.nodeChildren(setting, node);
235038
+ if (children && children.length > 0) {
235039
+ childHtml = view.appendNodes(setting, level + 1, children, node, -1, initFlag, openFlag && node.open);
235040
+ }
235041
+ if (openFlag) {
235042
+ view.makeDOMNodeMainBefore(html, setting, node);
235043
+ view.makeDOMNodeLine(html, setting, node);
235044
+ data.getBeforeA(setting, node, html);
235045
+ view.makeDOMNodeNameBefore(html, setting, node);
235046
+ data.getInnerBeforeA(setting, node, html);
235047
+ view.makeDOMNodeIcon(html, setting, node);
235048
+ data.getInnerAfterA(setting, node, html);
235049
+ view.makeDOMNodeNameAfter(html, setting, node);
235050
+ data.getAfterA(setting, node, html);
235051
+ if (isParent && node.open) {
235052
+ view.makeUlHtml(setting, node, html, childHtml.join(""));
235053
+ }
235054
+ view.makeDOMNodeMainAfter(html, setting, node);
235055
+ data.addCreatedNode(setting, node);
235056
+ }
235057
+ }
235058
+ return html;
235059
+ },
235060
+ appendParentULDom: function(setting, node) {
235061
+ var html = [], nObj = $$(node, setting);
235062
+ if (!nObj.get(0) && !!node.parentTId) {
235063
+ view.appendParentULDom(setting, node.getParentNode());
235064
+ nObj = $$(node, setting);
235065
+ }
235066
+ var ulObj = $$(node, consts.id.UL, setting);
235067
+ if (ulObj.get(0)) {
235068
+ ulObj.remove();
235069
+ }
235070
+ var children = data.nodeChildren(setting, node), childHtml = view.appendNodes(setting, node.level + 1, children, node, -1, false, true);
235071
+ view.makeUlHtml(setting, node, html, childHtml.join(""));
235072
+ nObj.append(html.join(""));
235073
+ },
235074
+ asyncNode: function(setting, node, isSilent, callback) {
235075
+ var i, l;
235076
+ var isParent = data.nodeIsParent(setting, node);
235077
+ if (node && !isParent) {
235078
+ tools.apply(callback);
235079
+ return false;
235080
+ } else if (node && node.isAjaxing) {
235081
+ return false;
235082
+ } else if (tools.apply(setting.callback.beforeAsync, [ setting.treeId, node ], true) == false) {
235083
+ tools.apply(callback);
235084
+ return false;
235085
+ }
235086
+ if (node) {
235087
+ node.isAjaxing = true;
235088
+ var icoObj = $$(node, consts.id.ICON, setting);
235089
+ icoObj.attr({
235090
+ style: "",
235091
+ class: consts.className.BUTTON + " " + consts.className.ICO_LOADING
235092
+ });
235093
+ }
235094
+ var tmpParam = {};
235095
+ var autoParam = tools.apply(setting.async.autoParam, [ setting.treeId, node ], setting.async.autoParam);
235096
+ for (i = 0, l = autoParam.length; node && i < l; i++) {
235097
+ var pKey = autoParam[i].split("="), spKey = pKey;
235098
+ if (pKey.length > 1) {
235099
+ spKey = pKey[1];
235100
+ pKey = pKey[0];
235101
+ }
235102
+ tmpParam[spKey] = node[pKey];
235103
+ }
235104
+ var otherParam = tools.apply(setting.async.otherParam, [ setting.treeId, node ], setting.async.otherParam);
235105
+ if (tools.isArray(otherParam)) {
235106
+ for (i = 0, l = otherParam.length; i < l; i += 2) {
235107
+ tmpParam[otherParam[i]] = otherParam[i + 1];
235108
+ }
235109
+ } else {
235110
+ for (var p in otherParam) {
235111
+ tmpParam[p] = otherParam[p];
235112
+ }
235113
+ }
235114
+ var _tmpV = data.getRoot(setting)._ver;
235115
+ $.ajax({
235116
+ contentType: setting.async.contentType,
235117
+ cache: false,
235118
+ type: setting.async.type,
235119
+ url: tools.apply(setting.async.url, [ setting.treeId, node ], setting.async.url),
235120
+ data: setting.async.contentType.indexOf("application/json") > -1 ? JSON.stringify(tmpParam) : tmpParam,
235121
+ dataType: setting.async.dataType,
235122
+ headers: setting.async.headers,
235123
+ xhrFields: setting.async.xhrFields,
235124
+ success: function(msg) {
235125
+ if (_tmpV != data.getRoot(setting)._ver) {
235126
+ return;
235127
+ }
235128
+ var newNodes = [];
235129
+ try {
235130
+ if (!msg || msg.length == 0) {
235131
+ newNodes = [];
235132
+ } else if (typeof msg == "string") {
235133
+ newNodes = eval("(" + msg + ")");
235134
+ } else {
235135
+ newNodes = msg;
235136
+ }
235137
+ } catch (err) {
235138
+ newNodes = msg;
235139
+ }
235140
+ if (node) {
235141
+ node.isAjaxing = null;
235142
+ node.zAsync = true;
235143
+ }
235144
+ view.setNodeLineIcos(setting, node);
235145
+ if (newNodes && newNodes !== "") {
235146
+ newNodes = tools.apply(setting.async.dataFilter, [ setting.treeId, node, newNodes ], newNodes);
235147
+ view.addNodes(setting, node, -1, !!newNodes ? tools.clone(newNodes) : [], !!isSilent);
235148
+ } else {
235149
+ view.addNodes(setting, node, -1, [], !!isSilent);
235150
+ }
235151
+ setting.treeObj.trigger(consts.event.ASYNC_SUCCESS, [ setting.treeId, node, msg ]);
235152
+ tools.apply(callback);
235153
+ },
235154
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
235155
+ if (_tmpV != data.getRoot(setting)._ver) {
235156
+ return;
235157
+ }
235158
+ if (node) node.isAjaxing = null;
235159
+ view.setNodeLineIcos(setting, node);
235160
+ setting.treeObj.trigger(consts.event.ASYNC_ERROR, [ setting.treeId, node, XMLHttpRequest, textStatus, errorThrown ]);
235161
+ }
235162
+ });
235163
+ return true;
235164
+ },
235165
+ cancelPreSelectedNode: function(setting, node, excludeNode) {
235166
+ var list = data.getRoot(setting).curSelectedList, i, n;
235167
+ for (i = list.length - 1; i >= 0; i--) {
235168
+ n = list[i];
235169
+ if (node === n || !node && (!excludeNode || excludeNode !== n)) {
235170
+ $$(n, consts.id.A, setting).removeClass(consts.node.CURSELECTED);
235171
+ if (node) {
235172
+ data.removeSelectedNode(setting, node);
235173
+ break;
235174
+ } else {
235175
+ list.splice(i, 1);
235176
+ setting.treeObj.trigger(consts.event.UNSELECTED, [ setting.treeId, n ]);
235177
+ }
235178
+ }
235179
+ }
235180
+ },
235181
+ createNodeCallback: function(setting) {
235182
+ if (!!setting.callback.onNodeCreated || !!setting.view.addDiyDom) {
235183
+ var root = data.getRoot(setting);
235184
+ while (root.createdNodes.length > 0) {
235185
+ var node = root.createdNodes.shift();
235186
+ tools.apply(setting.view.addDiyDom, [ setting.treeId, node ]);
235187
+ if (!!setting.callback.onNodeCreated) {
235188
+ setting.treeObj.trigger(consts.event.NODECREATED, [ setting.treeId, node ]);
235189
+ }
235190
+ }
235191
+ }
235192
+ },
235193
+ createNodes: function(setting, level, nodes, parentNode, index) {
235194
+ if (!nodes || nodes.length == 0) return;
235195
+ var root = data.getRoot(setting), openFlag = !parentNode || parentNode.open || !!$$(data.nodeChildren(setting, parentNode)[0], setting).get(0);
235196
+ root.createdNodes = [];
235197
+ var zTreeHtml = view.appendNodes(setting, level, nodes, parentNode, index, true, openFlag), parentObj, nextObj;
235198
+ if (!parentNode) {
235199
+ parentObj = setting.treeObj;
235200
+ } else {
235201
+ var ulObj = $$(parentNode, consts.id.UL, setting);
235202
+ if (ulObj.get(0)) {
235203
+ parentObj = ulObj;
235204
+ }
235205
+ }
235206
+ if (parentObj) {
235207
+ if (index >= 0) {
235208
+ nextObj = parentObj.children()[index];
235209
+ }
235210
+ if (index >= 0 && nextObj) {
235211
+ $(nextObj).before(zTreeHtml.join(""));
235212
+ } else {
235213
+ parentObj.append(zTreeHtml.join(""));
235214
+ }
235215
+ }
235216
+ view.createNodeCallback(setting);
235217
+ },
235218
+ destroy: function(setting) {
235219
+ if (!setting) return;
235220
+ data.initCache(setting);
235221
+ data.initRoot(setting);
235222
+ event.unbindTree(setting);
235223
+ event.unbindEvent(setting);
235224
+ setting.treeObj.empty();
235225
+ delete settings[setting.treeId];
235226
+ },
235227
+ expandCollapseNode: function(setting, node, expandFlag, animateFlag, callback) {
235228
+ var root = data.getRoot(setting);
235229
+ var tmpCb, _callback;
235230
+ if (!node) {
235231
+ tools.apply(callback, []);
235232
+ return;
235233
+ }
235234
+ var children = data.nodeChildren(setting, node);
235235
+ var isParent = data.nodeIsParent(setting, node);
235236
+ if (root.expandTriggerFlag) {
235237
+ _callback = callback;
235238
+ tmpCb = function() {
235239
+ if (_callback) _callback();
235240
+ if (node.open) {
235241
+ setting.treeObj.trigger(consts.event.EXPAND, [ setting.treeId, node ]);
235242
+ } else {
235243
+ setting.treeObj.trigger(consts.event.COLLAPSE, [ setting.treeId, node ]);
235244
+ }
235245
+ };
235246
+ callback = tmpCb;
235247
+ root.expandTriggerFlag = false;
235248
+ }
235249
+ if (!node.open && isParent && (!$$(node, consts.id.UL, setting).get(0) || children && children.length > 0 && !$$(children[0], setting).get(0))) {
235250
+ view.appendParentULDom(setting, node);
235251
+ view.createNodeCallback(setting);
235252
+ }
235253
+ if (node.open == expandFlag) {
235254
+ tools.apply(callback, []);
235255
+ return;
235256
+ }
235257
+ var ulObj = $$(node, consts.id.UL, setting), switchObj = $$(node, consts.id.SWITCH, setting), icoObj = $$(node, consts.id.ICON, setting);
235258
+ if (isParent) {
235259
+ node.open = !node.open;
235260
+ if (node.iconOpen && node.iconClose) {
235261
+ icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
235262
+ }
235263
+ if (node.open) {
235264
+ view.replaceSwitchClass(node, switchObj, consts.folder.OPEN);
235265
+ view.replaceIcoClass(node, icoObj, consts.folder.OPEN);
235266
+ if (animateFlag == false || setting.view.expandSpeed == "") {
235267
+ ulObj.show();
235268
+ tools.apply(callback, []);
235269
+ } else {
235270
+ if (children && children.length > 0) {
235271
+ ulObj.slideDown(setting.view.expandSpeed, callback);
235272
+ } else {
235273
+ ulObj.show();
235274
+ tools.apply(callback, []);
235275
+ }
235276
+ }
235277
+ } else {
235278
+ view.replaceSwitchClass(node, switchObj, consts.folder.CLOSE);
235279
+ view.replaceIcoClass(node, icoObj, consts.folder.CLOSE);
235280
+ if (animateFlag == false || setting.view.expandSpeed == "" || !(children && children.length > 0)) {
235281
+ ulObj.hide();
235282
+ tools.apply(callback, []);
235283
+ } else {
235284
+ ulObj.slideUp(setting.view.expandSpeed, callback);
235285
+ }
235286
+ }
235287
+ } else {
235288
+ tools.apply(callback, []);
235289
+ }
235290
+ },
235291
+ expandCollapseParentNode: function(setting, node, expandFlag, animateFlag, callback) {
235292
+ if (!node) return;
235293
+ if (!node.parentTId) {
235294
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
235295
+ return;
235296
+ } else {
235297
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag);
235298
+ }
235299
+ if (node.parentTId) {
235300
+ view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, animateFlag, callback);
235301
+ }
235302
+ },
235303
+ expandCollapseSonNode: function(setting, node, expandFlag, animateFlag, callback) {
235304
+ var root = data.getRoot(setting), treeNodes = node ? data.nodeChildren(setting, node) : data.nodeChildren(setting, root), selfAnimateSign = node ? false : animateFlag, expandTriggerFlag = data.getRoot(setting).expandTriggerFlag;
235305
+ data.getRoot(setting).expandTriggerFlag = false;
235306
+ if (treeNodes) {
235307
+ for (var i = 0, l = treeNodes.length; i < l; i++) {
235308
+ if (treeNodes[i]) view.expandCollapseSonNode(setting, treeNodes[i], expandFlag, selfAnimateSign);
235309
+ }
235310
+ }
235311
+ data.getRoot(setting).expandTriggerFlag = expandTriggerFlag;
235312
+ view.expandCollapseNode(setting, node, expandFlag, animateFlag, callback);
235313
+ },
235314
+ isSelectedNode: function(setting, node) {
235315
+ if (!node) {
235316
+ return false;
235317
+ }
235318
+ var list = data.getRoot(setting).curSelectedList, i;
235319
+ for (i = list.length - 1; i >= 0; i--) {
235320
+ if (node === list[i]) {
235321
+ return true;
235322
+ }
235323
+ }
235324
+ return false;
235325
+ },
235326
+ makeDOMNodeIcon: function(html, setting, node) {
235327
+ var nameStr = data.nodeName(setting, node), name = setting.view.nameIsHTML ? nameStr : nameStr.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
235328
+ 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>");
235329
+ },
235330
+ makeDOMNodeLine: function(html, setting, node) {
235331
+ html.push("<span id='", node.tId, consts.id.SWITCH, "' title='' class='", view.makeNodeLineClass(setting, node), "' treeNode", consts.id.SWITCH, "></span>");
235332
+ },
235333
+ makeDOMNodeMainAfter: function(html, setting, node) {
235334
+ html.push("</li>");
235335
+ },
235336
+ makeDOMNodeMainBefore: function(html, setting, node) {
235337
+ html.push("<li id='", node.tId, "' class='", consts.className.LEVEL, node.level, "' tabindex='0' hidefocus='true' treenode>");
235338
+ },
235339
+ makeDOMNodeNameAfter: function(html, setting, node) {
235340
+ html.push("</a>");
235341
+ },
235342
+ makeDOMNodeNameBefore: function(html, setting, node) {
235343
+ var title = data.nodeTitle(setting, node), url = view.makeNodeUrl(setting, node), fontcss = view.makeNodeFontCss(setting, node), nodeClasses = view.makeNodeClasses(setting, node), fontStyle = [];
235344
+ for (var f in fontcss) {
235345
+ fontStyle.push(f, ":", fontcss[f], ";");
235346
+ }
235347
+ 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(""), "'");
235348
+ if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle) && title) {
235349
+ html.push("title='", title.replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), "'");
235350
+ }
235351
+ html.push(">");
235352
+ },
235353
+ makeNodeFontCss: function(setting, node) {
235354
+ var fontCss = tools.apply(setting.view.fontCss, [ setting.treeId, node ], setting.view.fontCss);
235355
+ return fontCss && typeof fontCss != "function" ? fontCss : {};
235356
+ },
235357
+ makeNodeClasses: function(setting, node) {
235358
+ var classes = tools.apply(setting.view.nodeClasses, [ setting.treeId, node ], setting.view.nodeClasses);
235359
+ return classes && typeof classes !== "function" ? classes : {
235360
+ add: [],
235361
+ remove: []
235362
+ };
235363
+ },
235364
+ makeNodeIcoClass: function(setting, node) {
235365
+ var icoCss = [ "ico" ];
235366
+ if (!node.isAjaxing) {
235367
+ var isParent = data.nodeIsParent(setting, node);
235368
+ icoCss[0] = (node.iconSkin ? node.iconSkin + "_" : "") + icoCss[0];
235369
+ if (isParent) {
235370
+ icoCss.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
235371
+ } else {
235372
+ icoCss.push(consts.folder.DOCU);
235373
+ }
235374
+ }
235375
+ return consts.className.BUTTON + " " + icoCss.join("_");
235376
+ },
235377
+ makeNodeIcoStyle: function(setting, node) {
235378
+ var icoStyle = [];
235379
+ if (!node.isAjaxing) {
235380
+ var isParent = data.nodeIsParent(setting, node);
235381
+ var icon = isParent && node.iconOpen && node.iconClose ? node.open ? node.iconOpen : node.iconClose : node[setting.data.key.icon];
235382
+ if (icon) icoStyle.push("background:url(", icon, ") 0 0 no-repeat;");
235383
+ if (setting.view.showIcon == false || !tools.apply(setting.view.showIcon, [ setting.treeId, node ], true)) {
235384
+ icoStyle.push("display:none;");
235385
+ }
235386
+ }
235387
+ return icoStyle.join("");
235388
+ },
235389
+ makeNodeLineClass: function(setting, node) {
235390
+ var lineClass = [];
235391
+ if (setting.view.showLine) {
235392
+ if (node.level == 0 && node.isFirstNode && node.isLastNode) {
235393
+ lineClass.push(consts.line.ROOT);
235394
+ } else if (node.level == 0 && node.isFirstNode) {
235395
+ lineClass.push(consts.line.ROOTS);
235396
+ } else if (node.isLastNode) {
235397
+ lineClass.push(consts.line.BOTTOM);
235398
+ } else {
235399
+ lineClass.push(consts.line.CENTER);
235400
+ }
235401
+ } else {
235402
+ lineClass.push(consts.line.NOLINE);
235403
+ }
235404
+ if (data.nodeIsParent(setting, node)) {
235405
+ lineClass.push(node.open ? consts.folder.OPEN : consts.folder.CLOSE);
235406
+ } else {
235407
+ lineClass.push(consts.folder.DOCU);
235408
+ }
235409
+ return view.makeNodeLineClassEx(node) + lineClass.join("_");
235410
+ },
235411
+ makeNodeLineClassEx: function(node) {
235412
+ return consts.className.BUTTON + " " + consts.className.LEVEL + node.level + " " + consts.className.SWITCH + " ";
235413
+ },
235414
+ makeNodeTarget: function(node) {
235415
+ return node.target || "_blank";
235416
+ },
235417
+ makeNodeUrl: function(setting, node) {
235418
+ var urlKey = setting.data.key.url;
235419
+ return node[urlKey] ? node[urlKey] : null;
235420
+ },
235421
+ makeUlHtml: function(setting, node, html, content) {
235422
+ 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", "'>");
235423
+ html.push(content);
235424
+ html.push("</ul>");
235425
+ },
235426
+ makeUlLineClass: function(setting, node) {
235427
+ return setting.view.showLine && !node.isLastNode ? consts.line.LINE : "";
235428
+ },
235429
+ removeChildNodes: function(setting, node) {
235430
+ if (!node) return;
235431
+ var nodes = data.nodeChildren(setting, node);
235432
+ if (!nodes) return;
235433
+ for (var i = 0, l = nodes.length; i < l; i++) {
235434
+ data.removeNodeCache(setting, nodes[i]);
235435
+ }
235436
+ data.removeSelectedNode(setting);
235437
+ delete node[setting.data.key.children];
235438
+ if (!setting.data.keep.parent) {
235439
+ data.nodeIsParent(setting, node, false);
235440
+ node.open = false;
235441
+ var tmp_switchObj = $$(node, consts.id.SWITCH, setting), tmp_icoObj = $$(node, consts.id.ICON, setting);
235442
+ view.replaceSwitchClass(node, tmp_switchObj, consts.folder.DOCU);
235443
+ view.replaceIcoClass(node, tmp_icoObj, consts.folder.DOCU);
235444
+ $$(node, consts.id.UL, setting).remove();
235445
+ } else {
235446
+ $$(node, consts.id.UL, setting).empty();
235447
+ }
235448
+ },
235449
+ scrollIntoView: function(setting, dom) {
235450
+ if (!dom) {
235451
+ return;
235452
+ }
235453
+ if (typeof Element === "undefined" || typeof HTMLElement === "undefined") {
235454
+ var contRect = setting.treeObj.get(0).getBoundingClientRect(), findMeRect = dom.getBoundingClientRect();
235455
+ if (findMeRect.top < contRect.top || findMeRect.bottom > contRect.bottom || findMeRect.right > contRect.right || findMeRect.left < contRect.left) {
235456
+ dom.scrollIntoView();
235457
+ }
235458
+ return;
235459
+ }
235460
+ if (!Element.prototype.scrollIntoViewIfNeeded) {
235461
+ Element.prototype.scrollIntoViewIfNeeded = function(centerIfNeeded) {
235462
+ "use strict";
235463
+ function makeRange(start, length) {
235464
+ return {
235465
+ start: start,
235466
+ length: length,
235467
+ end: start + length
235468
+ };
235469
+ }
235470
+ function coverRange(inner, outer) {
235471
+ if (false === centerIfNeeded || outer.start < inner.end && inner.start < outer.end) {
235472
+ return Math.max(inner.end - outer.length, Math.min(outer.start, inner.start));
235473
+ }
235474
+ return (inner.start + inner.end - outer.length) / 2;
235475
+ }
235476
+ function makePoint(x, y) {
235477
+ return {
235478
+ x: x,
235479
+ y: y,
235480
+ translate: function translate(dX, dY) {
235481
+ return makePoint(x + dX, y + dY);
235482
+ }
235483
+ };
235484
+ }
235485
+ function absolute(elem, pt) {
235486
+ while (elem) {
235487
+ pt = pt.translate(elem.offsetLeft, elem.offsetTop);
235488
+ elem = elem.offsetParent;
235489
+ }
235490
+ return pt;
235491
+ }
235492
+ var target = absolute(this, makePoint(0, 0)), extent = makePoint(this.offsetWidth, this.offsetHeight), elem = this.parentNode, origin;
235493
+ while (elem instanceof HTMLElement) {
235494
+ origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop));
235495
+ elem.scrollLeft = coverRange(makeRange(target.x - origin.x, extent.x), makeRange(elem.scrollLeft, elem.clientWidth));
235496
+ elem.scrollTop = coverRange(makeRange(target.y - origin.y, extent.y), makeRange(elem.scrollTop, elem.clientHeight));
235497
+ target = target.translate(-elem.scrollLeft, -elem.scrollTop);
235498
+ elem = elem.parentNode;
235499
+ }
235500
+ };
235501
+ }
235502
+ dom.scrollIntoViewIfNeeded();
235503
+ },
235504
+ setFirstNode: function(setting, parentNode) {
235505
+ var children = data.nodeChildren(setting, parentNode);
235506
+ if (children.length > 0) {
235507
+ children[0].isFirstNode = true;
235508
+ }
235509
+ },
235510
+ setLastNode: function(setting, parentNode) {
235511
+ var children = data.nodeChildren(setting, parentNode);
235512
+ if (children.length > 0) {
235513
+ children[children.length - 1].isLastNode = true;
235514
+ }
235515
+ },
235516
+ removeNode: function(setting, node) {
235517
+ var root = data.getRoot(setting), parentNode = node.parentTId ? node.getParentNode() : root;
235518
+ node.isFirstNode = false;
235519
+ node.isLastNode = false;
235520
+ node.getPreNode = function() {
235521
+ return null;
235522
+ };
235523
+ node.getNextNode = function() {
235524
+ return null;
235525
+ };
235526
+ if (!data.getNodeCache(setting, node.tId)) {
235527
+ return;
235528
+ }
235529
+ $$(node, setting).remove();
235530
+ data.removeNodeCache(setting, node);
235531
+ data.removeSelectedNode(setting, node);
235532
+ var children = data.nodeChildren(setting, parentNode);
235533
+ for (var i = 0, l = children.length; i < l; i++) {
235534
+ if (children[i].tId == node.tId) {
235535
+ children.splice(i, 1);
235536
+ break;
235537
+ }
235538
+ }
235539
+ view.setFirstNode(setting, parentNode);
235540
+ view.setLastNode(setting, parentNode);
235541
+ var tmp_ulObj, tmp_switchObj, tmp_icoObj, childLength = children.length;
235542
+ if (!setting.data.keep.parent && childLength == 0) {
235543
+ data.nodeIsParent(setting, parentNode, false);
235544
+ parentNode.open = false;
235545
+ delete parentNode[setting.data.key.children];
235546
+ tmp_ulObj = $$(parentNode, consts.id.UL, setting);
235547
+ tmp_switchObj = $$(parentNode, consts.id.SWITCH, setting);
235548
+ tmp_icoObj = $$(parentNode, consts.id.ICON, setting);
235549
+ view.replaceSwitchClass(parentNode, tmp_switchObj, consts.folder.DOCU);
235550
+ view.replaceIcoClass(parentNode, tmp_icoObj, consts.folder.DOCU);
235551
+ tmp_ulObj.css("display", "none");
235552
+ } else if (setting.view.showLine && childLength > 0) {
235553
+ var newLast = children[childLength - 1];
235554
+ tmp_ulObj = $$(newLast, consts.id.UL, setting);
235555
+ tmp_switchObj = $$(newLast, consts.id.SWITCH, setting);
235556
+ tmp_icoObj = $$(newLast, consts.id.ICON, setting);
235557
+ if (parentNode == root) {
235558
+ if (children.length == 1) {
235559
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.ROOT);
235560
+ } else {
235561
+ var tmp_first_switchObj = $$(children[0], consts.id.SWITCH, setting);
235562
+ view.replaceSwitchClass(children[0], tmp_first_switchObj, consts.line.ROOTS);
235563
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
235564
+ }
235565
+ } else {
235566
+ view.replaceSwitchClass(newLast, tmp_switchObj, consts.line.BOTTOM);
235567
+ }
235568
+ tmp_ulObj.removeClass(consts.line.LINE);
235569
+ }
235570
+ },
235571
+ replaceIcoClass: function(node, obj, newName) {
235572
+ if (!obj || node.isAjaxing) return;
235573
+ var tmpName = obj.attr("class");
235574
+ if (tmpName == undefined) return;
235575
+ var tmpList = tmpName.split("_");
235576
+ switch (newName) {
235577
+ case consts.folder.OPEN:
235578
+ case consts.folder.CLOSE:
235579
+ case consts.folder.DOCU:
235580
+ tmpList[tmpList.length - 1] = newName;
235581
+ break;
235582
+ }
235583
+ obj.attr("class", tmpList.join("_"));
235584
+ },
235585
+ replaceSwitchClass: function(node, obj, newName) {
235586
+ if (!obj) return;
235587
+ var tmpName = obj.attr("class");
235588
+ if (tmpName == undefined) return;
235589
+ var tmpList = tmpName.split("_");
235590
+ switch (newName) {
235591
+ case consts.line.ROOT:
235592
+ case consts.line.ROOTS:
235593
+ case consts.line.CENTER:
235594
+ case consts.line.BOTTOM:
235595
+ case consts.line.NOLINE:
235596
+ tmpList[0] = view.makeNodeLineClassEx(node) + newName;
235597
+ break;
235598
+
235599
+ case consts.folder.OPEN:
235600
+ case consts.folder.CLOSE:
235601
+ case consts.folder.DOCU:
235602
+ tmpList[1] = newName;
235603
+ break;
235604
+ }
235605
+ obj.attr("class", tmpList.join("_"));
235606
+ if (newName !== consts.folder.DOCU) {
235607
+ obj.removeAttr("disabled");
235608
+ } else {
235609
+ obj.attr("disabled", "disabled");
235610
+ }
235611
+ },
235612
+ selectNode: function(setting, node, addFlag) {
235613
+ if (!addFlag) {
235614
+ view.cancelPreSelectedNode(setting, null, node);
235615
+ }
235616
+ $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED);
235617
+ data.addSelectedNode(setting, node);
235618
+ setting.treeObj.trigger(consts.event.SELECTED, [ setting.treeId, node ]);
235619
+ },
235620
+ setNodeFontCss: function(setting, treeNode) {
235621
+ var aObj = $$(treeNode, consts.id.A, setting), fontCss = view.makeNodeFontCss(setting, treeNode);
235622
+ if (fontCss) {
235623
+ aObj.css(fontCss);
235624
+ }
235625
+ },
235626
+ setNodeClasses: function(setting, treeNode) {
235627
+ var aObj = $$(treeNode, consts.id.A, setting), classes = view.makeNodeClasses(setting, treeNode);
235628
+ if ("add" in classes && classes.add.length) {
235629
+ aObj.addClass(classes.add.join(" "));
235630
+ }
235631
+ if ("remove" in classes && classes.remove.length) {
235632
+ aObj.removeClass(classes.remove.join(" "));
235633
+ }
235634
+ },
235635
+ setNodeLineIcos: function(setting, node) {
235636
+ if (!node) return;
235637
+ var switchObj = $$(node, consts.id.SWITCH, setting), ulObj = $$(node, consts.id.UL, setting), icoObj = $$(node, consts.id.ICON, setting), ulLine = view.makeUlLineClass(setting, node);
235638
+ if (ulLine.length == 0) {
235639
+ ulObj.removeClass(consts.line.LINE);
235640
+ } else {
235641
+ ulObj.addClass(ulLine);
235642
+ }
235643
+ switchObj.attr("class", view.makeNodeLineClass(setting, node));
235644
+ if (data.nodeIsParent(setting, node)) {
235645
+ switchObj.removeAttr("disabled");
235646
+ } else {
235647
+ switchObj.attr("disabled", "disabled");
235648
+ }
235649
+ icoObj.removeAttr("style");
235650
+ icoObj.attr("style", view.makeNodeIcoStyle(setting, node));
235651
+ icoObj.attr("class", view.makeNodeIcoClass(setting, node));
235652
+ },
235653
+ setNodeName: function(setting, node) {
235654
+ var title = data.nodeTitle(setting, node), nObj = $$(node, consts.id.SPAN, setting);
235655
+ nObj.empty();
235656
+ if (setting.view.nameIsHTML) {
235657
+ nObj.html(data.nodeName(setting, node));
235658
+ } else {
235659
+ nObj.text(data.nodeName(setting, node));
235660
+ }
235661
+ if (tools.apply(setting.view.showTitle, [ setting.treeId, node ], setting.view.showTitle)) {
235662
+ var aObj = $$(node, consts.id.A, setting);
235663
+ aObj.attr("title", !title ? "" : title);
235664
+ }
235665
+ },
235666
+ setNodeTarget: function(setting, node) {
235667
+ var aObj = $$(node, consts.id.A, setting);
235668
+ aObj.attr("target", view.makeNodeTarget(node));
235669
+ },
235670
+ setNodeUrl: function(setting, node) {
235671
+ var aObj = $$(node, consts.id.A, setting), url = view.makeNodeUrl(setting, node);
235672
+ if (url == null || url.length == 0) {
235673
+ aObj.removeAttr("href");
235674
+ } else {
235675
+ aObj.attr("href", url);
235676
+ }
235677
+ },
235678
+ switchNode: function(setting, node) {
235679
+ if (node.open || !tools.canAsync(setting, node)) {
235680
+ view.expandCollapseNode(setting, node, !node.open);
235681
+ } else if (setting.async.enable) {
235682
+ if (!view.asyncNode(setting, node)) {
235683
+ view.expandCollapseNode(setting, node, !node.open);
235684
+ return;
235685
+ }
235686
+ } else if (node) {
235687
+ view.expandCollapseNode(setting, node, !node.open);
235688
+ }
235689
+ }
235690
+ };
235691
+ $.fn.zTree = {
235692
+ consts: _consts,
235693
+ _z: {
235694
+ tools: tools,
235695
+ view: view,
235696
+ event: event,
235697
+ data: data
235698
+ },
235699
+ getZTreeObj: function(treeId) {
235700
+ var o = data.getZTreeTools(treeId);
235701
+ return o ? o : null;
235702
+ },
235703
+ destroy: function(treeId) {
235704
+ if (!!treeId && treeId.length > 0) {
235705
+ view.destroy(data.getSetting(treeId));
235706
+ } else {
235707
+ for (var s in settings) {
235708
+ view.destroy(settings[s]);
235709
+ }
235710
+ }
235711
+ },
235712
+ init: function(obj, zSetting, zNodes) {
235713
+ var setting = tools.clone(_setting);
235714
+ $.extend(true, setting, zSetting);
235715
+ setting.treeId = obj.attr("id");
235716
+ setting.treeObj = obj;
235717
+ setting.treeObj.empty();
235718
+ settings[setting.treeId] = setting;
235719
+ if (typeof document.body.style.maxHeight === "undefined") {
235720
+ setting.view.expandSpeed = "";
235721
+ }
235722
+ data.initRoot(setting);
235723
+ var root = data.getRoot(setting);
235724
+ zNodes = zNodes ? tools.clone(tools.isArray(zNodes) ? zNodes : [ zNodes ]) : [];
235725
+ if (setting.data.simpleData.enable) {
235726
+ data.nodeChildren(setting, root, data.transformTozTreeFormat(setting, zNodes));
235727
+ } else {
235728
+ data.nodeChildren(setting, root, zNodes);
235729
+ }
235730
+ data.initCache(setting);
235731
+ event.unbindTree(setting);
235732
+ event.bindTree(setting);
235733
+ event.unbindEvent(setting);
235734
+ event.bindEvent(setting);
235735
+ var zTreeTools = {
235736
+ setting: setting,
235737
+ addNodes: function(parentNode, index, newNodes, isSilent) {
235738
+ if (!parentNode) parentNode = null;
235739
+ var isParent = data.nodeIsParent(setting, parentNode);
235740
+ if (parentNode && !isParent && setting.data.keep.leaf) return null;
235741
+ var i = parseInt(index, 10);
235742
+ if (isNaN(i)) {
235743
+ isSilent = !!newNodes;
235744
+ newNodes = index;
235745
+ index = -1;
235746
+ } else {
235747
+ index = i;
235748
+ }
235749
+ if (!newNodes) return null;
235750
+ var xNewNodes = tools.clone(tools.isArray(newNodes) ? newNodes : [ newNodes ]);
235751
+ function addCallback() {
235752
+ view.addNodes(setting, parentNode, index, xNewNodes, isSilent == true);
235753
+ }
235754
+ if (tools.canAsync(setting, parentNode)) {
235755
+ view.asyncNode(setting, parentNode, isSilent, addCallback);
235756
+ } else {
235757
+ addCallback();
235758
+ }
235759
+ return xNewNodes;
235760
+ },
235761
+ cancelSelectedNode: function(node) {
235762
+ view.cancelPreSelectedNode(setting, node);
235763
+ },
235764
+ destroy: function() {
235765
+ view.destroy(setting);
235766
+ },
235767
+ expandAll: function(expandFlag) {
235768
+ expandFlag = !!expandFlag;
235769
+ view.expandCollapseSonNode(setting, null, expandFlag, true);
235770
+ return expandFlag;
235771
+ },
235772
+ expandNode: function(node, expandFlag, sonSign, focus, callbackFlag) {
235773
+ if (!node || !data.nodeIsParent(setting, node)) return null;
235774
+ if (expandFlag !== true && expandFlag !== false) {
235775
+ expandFlag = !node.open;
235776
+ }
235777
+ callbackFlag = !!callbackFlag;
235778
+ if (callbackFlag && expandFlag && tools.apply(setting.callback.beforeExpand, [ setting.treeId, node ], true) == false) {
235779
+ return null;
235780
+ } else if (callbackFlag && !expandFlag && tools.apply(setting.callback.beforeCollapse, [ setting.treeId, node ], true) == false) {
235781
+ return null;
235782
+ }
235783
+ if (expandFlag && node.parentTId) {
235784
+ view.expandCollapseParentNode(setting, node.getParentNode(), expandFlag, false);
235785
+ }
235786
+ if (expandFlag === node.open && !sonSign) {
235787
+ return null;
235788
+ }
235789
+ data.getRoot(setting).expandTriggerFlag = callbackFlag;
235790
+ if (!tools.canAsync(setting, node) && sonSign) {
235791
+ view.expandCollapseSonNode(setting, node, expandFlag, true, showNodeFocus);
235792
+ } else {
235793
+ node.open = !expandFlag;
235794
+ view.switchNode(this.setting, node);
235795
+ showNodeFocus();
235796
+ }
235797
+ return expandFlag;
235798
+ function showNodeFocus() {
235799
+ var a = $$(node, consts.id.A, setting).get(0);
235800
+ if (a && focus !== false) {
235801
+ view.scrollIntoView(setting, a);
235802
+ }
235803
+ }
235804
+ },
235805
+ getNodes: function() {
235806
+ return data.getNodes(setting);
235807
+ },
235808
+ getNodeByParam: function(key, value, parentNode) {
235809
+ if (!key) return null;
235810
+ return data.getNodeByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
235811
+ },
235812
+ getNodeByTId: function(tId) {
235813
+ return data.getNodeCache(setting, tId);
235814
+ },
235815
+ getNodesByParam: function(key, value, parentNode) {
235816
+ if (!key) return null;
235817
+ return data.getNodesByParam(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
235818
+ },
235819
+ getNodesByParamFuzzy: function(key, value, parentNode) {
235820
+ if (!key) return null;
235821
+ return data.getNodesByParamFuzzy(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), key, value);
235822
+ },
235823
+ getNodesByFilter: function(filter, isSingle, parentNode, invokeParam) {
235824
+ isSingle = !!isSingle;
235825
+ if (!filter || typeof filter != "function") return isSingle ? null : [];
235826
+ return data.getNodesByFilter(setting, parentNode ? data.nodeChildren(setting, parentNode) : data.getNodes(setting), filter, isSingle, invokeParam);
235827
+ },
235828
+ getNodeIndex: function(node) {
235829
+ if (!node) return null;
235830
+ var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
235831
+ var children = data.nodeChildren(setting, parentNode);
235832
+ for (var i = 0, l = children.length; i < l; i++) {
235833
+ if (children[i] == node) return i;
235834
+ }
235835
+ return -1;
235836
+ },
235837
+ getSelectedNodes: function() {
235838
+ var r = [], list = data.getRoot(setting).curSelectedList;
235839
+ for (var i = 0, l = list.length; i < l; i++) {
235840
+ r.push(list[i]);
235841
+ }
235842
+ return r;
235843
+ },
235844
+ isSelectedNode: function(node) {
235845
+ return data.isSelectedNode(setting, node);
235846
+ },
235847
+ reAsyncChildNodesPromise: function(parentNode, reloadType, isSilent) {
235848
+ var promise = new Promise((function(resolve, reject) {
235849
+ try {
235850
+ zTreeTools.reAsyncChildNodes(parentNode, reloadType, isSilent, (function() {
235851
+ resolve(parentNode);
235852
+ }));
235853
+ } catch (e) {
235854
+ reject(e);
235855
+ }
235856
+ }));
235857
+ return promise;
235858
+ },
235859
+ reAsyncChildNodes: function(parentNode, reloadType, isSilent, callback) {
235860
+ if (!this.setting.async.enable) return;
235861
+ var isRoot = !parentNode;
235862
+ if (isRoot) {
235863
+ parentNode = data.getRoot(setting);
235864
+ }
235865
+ if (reloadType == "refresh") {
235866
+ var children = data.nodeChildren(setting, parentNode);
235867
+ for (var i = 0, l = children ? children.length : 0; i < l; i++) {
235868
+ data.removeNodeCache(setting, children[i]);
235869
+ }
235870
+ data.removeSelectedNode(setting);
235871
+ data.nodeChildren(setting, parentNode, []);
235872
+ if (isRoot) {
235873
+ this.setting.treeObj.empty();
235874
+ } else {
235875
+ var ulObj = $$(parentNode, consts.id.UL, setting);
235876
+ ulObj.empty();
235877
+ }
235878
+ }
235879
+ view.asyncNode(this.setting, isRoot ? null : parentNode, !!isSilent, callback);
235880
+ },
235881
+ refresh: function() {
235882
+ this.setting.treeObj.empty();
235883
+ var root = data.getRoot(setting), nodes = data.nodeChildren(setting, root);
235884
+ data.initRoot(setting);
235885
+ data.nodeChildren(setting, root, nodes);
235886
+ data.initCache(setting);
235887
+ view.createNodes(setting, 0, data.nodeChildren(setting, root), null, -1);
235888
+ },
235889
+ removeChildNodes: function(node) {
235890
+ if (!node) return null;
235891
+ var nodes = data.nodeChildren(setting, node);
235892
+ view.removeChildNodes(setting, node);
235893
+ return nodes ? nodes : null;
235894
+ },
235895
+ removeNode: function(node, callbackFlag) {
235896
+ if (!node) return;
235897
+ callbackFlag = !!callbackFlag;
235898
+ if (callbackFlag && tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return;
235899
+ view.removeNode(setting, node);
235900
+ if (callbackFlag) {
235901
+ this.setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
235902
+ }
235903
+ },
235904
+ selectNode: function(node, addFlag, isSilent) {
235905
+ if (!node) return;
235906
+ if (tools.uCanDo(setting)) {
235907
+ addFlag = setting.view.selectedMulti && addFlag;
235908
+ if (node.parentTId) {
235909
+ view.expandCollapseParentNode(setting, node.getParentNode(), true, false, showNodeFocus);
235910
+ } else if (!isSilent) {
235911
+ try {
235912
+ $$(node, setting).focus().blur();
235913
+ } catch (e) {}
235914
+ }
235915
+ view.selectNode(setting, node, addFlag);
235916
+ }
235917
+ function showNodeFocus() {
235918
+ if (isSilent) {
235919
+ return;
235920
+ }
235921
+ var a = $$(node, setting).get(0);
235922
+ view.scrollIntoView(setting, a);
235923
+ }
235924
+ },
235925
+ transformTozTreeNodes: function(simpleNodes) {
235926
+ return data.transformTozTreeFormat(setting, simpleNodes);
235927
+ },
235928
+ transformToArray: function(nodes) {
235929
+ return data.transformToArrayFormat(setting, nodes);
235930
+ },
235931
+ updateNode: function(node, checkTypeFlag) {
235932
+ if (!node) return;
235933
+ var nObj = $$(node, setting);
235934
+ if (nObj.get(0) && tools.uCanDo(setting)) {
235935
+ view.setNodeName(setting, node);
235936
+ view.setNodeTarget(setting, node);
235937
+ view.setNodeUrl(setting, node);
235938
+ view.setNodeLineIcos(setting, node);
235939
+ view.setNodeFontCss(setting, node);
235940
+ view.setNodeClasses(setting, node);
235941
+ }
235942
+ }
235943
+ };
235944
+ root.treeTools = zTreeTools;
235945
+ data.setZTreeTools(setting, zTreeTools);
235946
+ var children = data.nodeChildren(setting, root);
235947
+ if (children && children.length > 0) {
235948
+ view.createNodes(setting, 0, children, null, -1);
235949
+ } else if (setting.async.enable && setting.async.url && setting.async.url !== "") {
235950
+ view.asyncNode(setting);
235951
+ }
235952
+ return zTreeTools;
235953
+ }
235954
+ };
235955
+ var zt = $.fn.zTree, $$ = tools.$, consts = zt.consts;
235956
+ })(jQuery);
235957
+
235958
+ (function($) {
235959
+ var _consts = {
235960
+ event: {
235961
+ CHECK: "ztree_check"
235962
+ },
235963
+ id: {
235964
+ CHECK: "_check"
235965
+ },
235966
+ checkbox: {
235967
+ STYLE: "checkbox",
235968
+ DEFAULT: "chk",
235969
+ DISABLED: "disable",
235970
+ FALSE: "false",
235971
+ TRUE: "true",
235972
+ FULL: "full",
235973
+ PART: "part",
235974
+ FOCUS: "focus"
235975
+ },
235976
+ radio: {
235977
+ STYLE: "radio",
235978
+ TYPE_ALL: "all",
235979
+ TYPE_LEVEL: "level"
235980
+ }
235981
+ }, _setting = {
235982
+ check: {
235983
+ enable: false,
235984
+ autoCheckTrigger: false,
235985
+ chkStyle: _consts.checkbox.STYLE,
235986
+ nocheckInherit: false,
235987
+ chkDisabledInherit: false,
235988
+ radioType: _consts.radio.TYPE_LEVEL,
235989
+ chkboxType: {
235990
+ Y: "ps",
235991
+ N: "ps"
235992
+ }
235993
+ },
235994
+ data: {
235995
+ key: {
235996
+ checked: "checked"
235997
+ }
235998
+ },
235999
+ callback: {
236000
+ beforeCheck: null,
236001
+ onCheck: null
236002
+ }
236003
+ }, _initRoot = function(setting) {
236004
+ var r = data.getRoot(setting);
236005
+ r.radioCheckedList = [];
236006
+ }, _initCache = function(treeId) {}, _bindEvent = function(setting) {
236007
+ var o = setting.treeObj, c = consts.event;
236008
+ o.bind(c.CHECK, (function(event, srcEvent, treeId, node) {
236009
+ event.srcEvent = srcEvent;
236010
+ tools.apply(setting.callback.onCheck, [ event, treeId, node ]);
236011
+ }));
236012
+ }, _unbindEvent = function(setting) {
236013
+ var o = setting.treeObj, c = consts.event;
236014
+ o.unbind(c.CHECK);
236015
+ }, _eventProxy = function(e) {
236016
+ var target = e.target, setting = data.getSetting(e.data.treeId), tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null;
236017
+ if (tools.eqs(e.type, "mouseover")) {
236018
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
236019
+ tId = tools.getNodeMainDom(target).id;
236020
+ nodeEventType = "mouseoverCheck";
236021
+ }
236022
+ } else if (tools.eqs(e.type, "mouseout")) {
236023
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
236024
+ tId = tools.getNodeMainDom(target).id;
236025
+ nodeEventType = "mouseoutCheck";
236026
+ }
236027
+ } else if (tools.eqs(e.type, "click")) {
236028
+ if (setting.check.enable && tools.eqs(target.tagName, "span") && target.getAttribute("treeNode" + consts.id.CHECK) !== null) {
236029
+ tId = tools.getNodeMainDom(target).id;
236030
+ nodeEventType = "checkNode";
236031
+ }
236032
+ }
236033
+ if (tId.length > 0) {
236034
+ node = data.getNodeCache(setting, tId);
236035
+ switch (nodeEventType) {
236036
+ case "checkNode":
236037
+ nodeEventCallback = _handler.onCheckNode;
236038
+ break;
236039
+
236040
+ case "mouseoverCheck":
236041
+ nodeEventCallback = _handler.onMouseoverCheck;
236042
+ break;
236043
+
236044
+ case "mouseoutCheck":
236045
+ nodeEventCallback = _handler.onMouseoutCheck;
236046
+ break;
236047
+ }
236048
+ }
236049
+ var proxyResult = {
236050
+ stop: nodeEventType === "checkNode",
236051
+ node: node,
236052
+ nodeEventType: nodeEventType,
236053
+ nodeEventCallback: nodeEventCallback,
236054
+ treeEventType: treeEventType,
236055
+ treeEventCallback: treeEventCallback
236056
+ };
236057
+ return proxyResult;
236058
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
236059
+ if (!n) return;
236060
+ var checked = data.nodeChecked(setting, n);
236061
+ n.checkedOld = checked;
236062
+ if (typeof n.nocheck == "string") n.nocheck = tools.eqs(n.nocheck, "true");
236063
+ n.nocheck = !!n.nocheck || setting.check.nocheckInherit && parentNode && !!parentNode.nocheck;
236064
+ if (typeof n.chkDisabled == "string") n.chkDisabled = tools.eqs(n.chkDisabled, "true");
236065
+ n.chkDisabled = !!n.chkDisabled || setting.check.chkDisabledInherit && parentNode && !!parentNode.chkDisabled;
236066
+ if (typeof n.halfCheck == "string") n.halfCheck = tools.eqs(n.halfCheck, "true");
236067
+ n.halfCheck = !!n.halfCheck;
236068
+ n.check_Child_State = -1;
236069
+ n.check_Focus = false;
236070
+ n.getCheckStatus = function() {
236071
+ return data.getCheckStatus(setting, n);
236072
+ };
236073
+ if (setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL && checked) {
236074
+ var r = data.getRoot(setting);
236075
+ r.radioCheckedList.push(n);
236076
+ }
236077
+ }, _beforeA = function(setting, node, html) {
236078
+ if (setting.check.enable) {
236079
+ data.makeChkFlag(setting, node);
236080
+ 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>");
236081
+ }
236082
+ }, _zTreeTools = function(setting, zTreeTools) {
236083
+ zTreeTools.checkNode = function(node, checked, checkTypeFlag, callbackFlag) {
236084
+ var nodeChecked = data.nodeChecked(setting, node);
236085
+ if (node.chkDisabled === true) return;
236086
+ if (checked !== true && checked !== false) {
236087
+ checked = !nodeChecked;
236088
+ }
236089
+ callbackFlag = !!callbackFlag;
236090
+ if (nodeChecked === checked && !checkTypeFlag) {
236091
+ return;
236092
+ } else if (callbackFlag && tools.apply(this.setting.callback.beforeCheck, [ this.setting.treeId, node ], true) == false) {
236093
+ return;
236094
+ }
236095
+ if (tools.uCanDo(this.setting) && this.setting.check.enable && node.nocheck !== true) {
236096
+ data.nodeChecked(setting, node, checked);
236097
+ var checkObj = $$(node, consts.id.CHECK, this.setting);
236098
+ if (checkTypeFlag || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
236099
+ view.setChkClass(this.setting, checkObj, node);
236100
+ view.repairParentChkClassWithSelf(this.setting, node);
236101
+ if (callbackFlag) {
236102
+ this.setting.treeObj.trigger(consts.event.CHECK, [ null, this.setting.treeId, node ]);
236103
+ }
236104
+ }
236105
+ };
236106
+ zTreeTools.checkAllNodes = function(checked) {
236107
+ view.repairAllChk(this.setting, !!checked);
236108
+ };
236109
+ zTreeTools.getCheckedNodes = function(checked) {
236110
+ checked = checked !== false;
236111
+ var children = data.nodeChildren(setting, data.getRoot(this.setting));
236112
+ return data.getTreeCheckedNodes(this.setting, children, checked);
236113
+ };
236114
+ zTreeTools.getChangeCheckedNodes = function() {
236115
+ var children = data.nodeChildren(setting, data.getRoot(this.setting));
236116
+ return data.getTreeChangeCheckedNodes(this.setting, children);
236117
+ };
236118
+ zTreeTools.setChkDisabled = function(node, disabled, inheritParent, inheritChildren) {
236119
+ disabled = !!disabled;
236120
+ inheritParent = !!inheritParent;
236121
+ inheritChildren = !!inheritChildren;
236122
+ view.repairSonChkDisabled(this.setting, node, disabled, inheritChildren);
236123
+ view.repairParentChkDisabled(this.setting, node.getParentNode(), disabled, inheritParent);
236124
+ };
236125
+ var _updateNode = zTreeTools.updateNode;
236126
+ zTreeTools.updateNode = function(node, checkTypeFlag) {
236127
+ if (_updateNode) _updateNode.apply(zTreeTools, arguments);
236128
+ if (!node || !this.setting.check.enable) return;
236129
+ var nObj = $$(node, this.setting);
236130
+ if (nObj.get(0) && tools.uCanDo(this.setting)) {
236131
+ var checkObj = $$(node, consts.id.CHECK, this.setting);
236132
+ if (checkTypeFlag == true || this.setting.check.chkStyle === consts.radio.STYLE) view.checkNodeRelation(this.setting, node);
236133
+ view.setChkClass(this.setting, checkObj, node);
236134
+ view.repairParentChkClassWithSelf(this.setting, node);
236135
+ }
236136
+ };
236137
+ }, _data = {
236138
+ getRadioCheckedList: function(setting) {
236139
+ var checkedList = data.getRoot(setting).radioCheckedList;
236140
+ for (var i = 0, j = checkedList.length; i < j; i++) {
236141
+ if (!data.getNodeCache(setting, checkedList[i].tId)) {
236142
+ checkedList.splice(i, 1);
236143
+ i--;
236144
+ j--;
236145
+ }
236146
+ }
236147
+ return checkedList;
236148
+ },
236149
+ getCheckStatus: function(setting, node) {
236150
+ if (!setting.check.enable || node.nocheck || node.chkDisabled) return null;
236151
+ var checked = data.nodeChecked(setting, node), r = {
236152
+ checked: checked,
236153
+ 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
236154
+ };
236155
+ return r;
236156
+ },
236157
+ getTreeCheckedNodes: function(setting, nodes, checked, results) {
236158
+ if (!nodes) return [];
236159
+ var onlyOne = checked && setting.check.chkStyle == consts.radio.STYLE && setting.check.radioType == consts.radio.TYPE_ALL;
236160
+ results = !results ? [] : results;
236161
+ for (var i = 0, l = nodes.length; i < l; i++) {
236162
+ var node = nodes[i];
236163
+ var children = data.nodeChildren(setting, node);
236164
+ var nodeChecked = data.nodeChecked(setting, node);
236165
+ if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked == checked) {
236166
+ results.push(node);
236167
+ if (onlyOne) {
236168
+ break;
236169
+ }
236170
+ }
236171
+ data.getTreeCheckedNodes(setting, children, checked, results);
236172
+ if (onlyOne && results.length > 0) {
236173
+ break;
236174
+ }
236175
+ }
236176
+ return results;
236177
+ },
236178
+ getTreeChangeCheckedNodes: function(setting, nodes, results) {
236179
+ if (!nodes) return [];
236180
+ results = !results ? [] : results;
236181
+ for (var i = 0, l = nodes.length; i < l; i++) {
236182
+ var node = nodes[i];
236183
+ var children = data.nodeChildren(setting, node);
236184
+ var nodeChecked = data.nodeChecked(setting, node);
236185
+ if (node.nocheck !== true && node.chkDisabled !== true && nodeChecked != node.checkedOld) {
236186
+ results.push(node);
236187
+ }
236188
+ data.getTreeChangeCheckedNodes(setting, children, results);
236189
+ }
236190
+ return results;
236191
+ },
236192
+ makeChkFlag: function(setting, node) {
236193
+ if (!node) return;
236194
+ var chkFlag = -1;
236195
+ var children = data.nodeChildren(setting, node);
236196
+ if (children) {
236197
+ for (var i = 0, l = children.length; i < l; i++) {
236198
+ var cNode = children[i];
236199
+ var nodeChecked = data.nodeChecked(setting, cNode);
236200
+ var tmp = -1;
236201
+ if (setting.check.chkStyle == consts.radio.STYLE) {
236202
+ if (cNode.nocheck === true || cNode.chkDisabled === true) {
236203
+ tmp = cNode.check_Child_State;
236204
+ } else if (cNode.halfCheck === true) {
236205
+ tmp = 2;
236206
+ } else if (nodeChecked) {
236207
+ tmp = 2;
236208
+ } else {
236209
+ tmp = cNode.check_Child_State > 0 ? 2 : 0;
236210
+ }
236211
+ if (tmp == 2) {
236212
+ chkFlag = 2;
236213
+ break;
236214
+ } else if (tmp == 0) {
236215
+ chkFlag = 0;
236216
+ }
236217
+ } else if (setting.check.chkStyle == consts.checkbox.STYLE) {
236218
+ if (cNode.nocheck === true || cNode.chkDisabled === true) {
236219
+ tmp = cNode.check_Child_State;
236220
+ } else if (cNode.halfCheck === true) {
236221
+ tmp = 1;
236222
+ } else if (nodeChecked) {
236223
+ tmp = cNode.check_Child_State === -1 || cNode.check_Child_State === 2 ? 2 : 1;
236224
+ } else {
236225
+ tmp = cNode.check_Child_State > 0 ? 1 : 0;
236226
+ }
236227
+ if (tmp === 1) {
236228
+ chkFlag = 1;
236229
+ break;
236230
+ } else if (tmp === 2 && chkFlag > -1 && i > 0 && tmp !== chkFlag) {
236231
+ chkFlag = 1;
236232
+ break;
236233
+ } else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
236234
+ chkFlag = 1;
236235
+ break;
236236
+ } else if (tmp > -1) {
236237
+ chkFlag = tmp;
236238
+ }
236239
+ }
236240
+ }
236241
+ }
236242
+ node.check_Child_State = chkFlag;
236243
+ }
236244
+ }, _event = {}, _handler = {
236245
+ onCheckNode: function(event, node) {
236246
+ if (node.chkDisabled === true) return false;
236247
+ var setting = data.getSetting(event.data.treeId);
236248
+ if (tools.apply(setting.callback.beforeCheck, [ setting.treeId, node ], true) == false) return true;
236249
+ var nodeChecked = data.nodeChecked(setting, node);
236250
+ data.nodeChecked(setting, node, !nodeChecked);
236251
+ view.checkNodeRelation(setting, node);
236252
+ var checkObj = $$(node, consts.id.CHECK, setting);
236253
+ view.setChkClass(setting, checkObj, node);
236254
+ view.repairParentChkClassWithSelf(setting, node);
236255
+ setting.treeObj.trigger(consts.event.CHECK, [ event, setting.treeId, node ]);
236256
+ return true;
236257
+ },
236258
+ onMouseoverCheck: function(event, node) {
236259
+ if (node.chkDisabled === true) return false;
236260
+ var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
236261
+ node.check_Focus = true;
236262
+ view.setChkClass(setting, checkObj, node);
236263
+ return true;
236264
+ },
236265
+ onMouseoutCheck: function(event, node) {
236266
+ if (node.chkDisabled === true) return false;
236267
+ var setting = data.getSetting(event.data.treeId), checkObj = $$(node, consts.id.CHECK, setting);
236268
+ node.check_Focus = false;
236269
+ view.setChkClass(setting, checkObj, node);
236270
+ return true;
236271
+ }
236272
+ }, _tools = {}, _view = {
236273
+ checkNodeRelation: function(setting, node) {
236274
+ var pNode, i, l, r = consts.radio;
236275
+ var nodeChecked = data.nodeChecked(setting, node);
236276
+ if (setting.check.chkStyle == r.STYLE) {
236277
+ var checkedList = data.getRadioCheckedList(setting);
236278
+ if (nodeChecked) {
236279
+ if (setting.check.radioType == r.TYPE_ALL) {
236280
+ for (i = checkedList.length - 1; i >= 0; i--) {
236281
+ pNode = checkedList[i];
236282
+ var pNodeChecked = data.nodeChecked(setting, pNode);
236283
+ if (pNodeChecked && pNode != node) {
236284
+ data.nodeChecked(setting, pNode, false);
236285
+ checkedList.splice(i, 1);
236286
+ view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
236287
+ if (pNode.parentTId != node.parentTId) {
236288
+ view.repairParentChkClassWithSelf(setting, pNode);
236289
+ }
236290
+ }
236291
+ }
236292
+ checkedList.push(node);
236293
+ } else {
236294
+ var parentNode = node.parentTId ? node.getParentNode() : data.getRoot(setting);
236295
+ var children = data.nodeChildren(setting, parentNode);
236296
+ for (i = 0, l = children.length; i < l; i++) {
236297
+ pNode = children[i];
236298
+ var pNodeChecked = data.nodeChecked(setting, pNode);
236299
+ if (pNodeChecked && pNode != node) {
236300
+ data.nodeChecked(setting, pNode, false);
236301
+ view.setChkClass(setting, $$(pNode, consts.id.CHECK, setting), pNode);
236302
+ }
236303
+ }
236304
+ }
236305
+ } else if (setting.check.radioType == r.TYPE_ALL) {
236306
+ for (i = 0, l = checkedList.length; i < l; i++) {
236307
+ if (node == checkedList[i]) {
236308
+ checkedList.splice(i, 1);
236309
+ break;
236310
+ }
236311
+ }
236312
+ }
236313
+ } else {
236314
+ var children = data.nodeChildren(setting, node);
236315
+ if (nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.Y.indexOf("s") > -1)) {
236316
+ view.setSonNodeCheckBox(setting, node, true);
236317
+ }
236318
+ if (!nodeChecked && (!children || children.length == 0 || setting.check.chkboxType.N.indexOf("s") > -1)) {
236319
+ view.setSonNodeCheckBox(setting, node, false);
236320
+ }
236321
+ if (nodeChecked && setting.check.chkboxType.Y.indexOf("p") > -1) {
236322
+ view.setParentNodeCheckBox(setting, node, true);
236323
+ }
236324
+ if (!nodeChecked && setting.check.chkboxType.N.indexOf("p") > -1) {
236325
+ view.setParentNodeCheckBox(setting, node, false);
236326
+ }
236327
+ }
236328
+ },
236329
+ makeChkClass: function(setting, node) {
236330
+ var c = consts.checkbox, r = consts.radio, fullStyle = "";
236331
+ var nodeChecked = data.nodeChecked(setting, node);
236332
+ if (node.chkDisabled === true) {
236333
+ fullStyle = c.DISABLED;
236334
+ } else if (node.halfCheck) {
236335
+ fullStyle = c.PART;
236336
+ } else if (setting.check.chkStyle == r.STYLE) {
236337
+ fullStyle = node.check_Child_State < 1 ? c.FULL : c.PART;
236338
+ } else {
236339
+ 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;
236340
+ }
236341
+ var chkName = setting.check.chkStyle + "_" + (nodeChecked ? c.TRUE : c.FALSE) + "_" + fullStyle;
236342
+ chkName = node.check_Focus && node.chkDisabled !== true ? chkName + "_" + c.FOCUS : chkName;
236343
+ return consts.className.BUTTON + " " + c.DEFAULT + " " + chkName;
236344
+ },
236345
+ repairAllChk: function(setting, checked) {
236346
+ if (setting.check.enable && setting.check.chkStyle === consts.checkbox.STYLE) {
236347
+ var root = data.getRoot(setting);
236348
+ var children = data.nodeChildren(setting, root);
236349
+ for (var i = 0, l = children.length; i < l; i++) {
236350
+ var node = children[i];
236351
+ if (node.nocheck !== true && node.chkDisabled !== true) {
236352
+ data.nodeChecked(setting, node, checked);
236353
+ }
236354
+ view.setSonNodeCheckBox(setting, node, checked);
236355
+ }
236356
+ }
236357
+ },
236358
+ repairChkClass: function(setting, node) {
236359
+ if (!node) return;
236360
+ data.makeChkFlag(setting, node);
236361
+ if (node.nocheck !== true) {
236362
+ var checkObj = $$(node, consts.id.CHECK, setting);
236363
+ view.setChkClass(setting, checkObj, node);
236364
+ }
236365
+ },
236366
+ repairParentChkClass: function(setting, node) {
236367
+ if (!node || !node.parentTId) return;
236368
+ var pNode = node.getParentNode();
236369
+ view.repairChkClass(setting, pNode);
236370
+ view.repairParentChkClass(setting, pNode);
236371
+ },
236372
+ repairParentChkClassWithSelf: function(setting, node) {
236373
+ if (!node) return;
236374
+ var children = data.nodeChildren(setting, node);
236375
+ if (children && children.length > 0) {
236376
+ view.repairParentChkClass(setting, children[0]);
236377
+ } else {
236378
+ view.repairParentChkClass(setting, node);
236379
+ }
236380
+ },
236381
+ repairSonChkDisabled: function(setting, node, chkDisabled, inherit) {
236382
+ if (!node) return;
236383
+ if (node.chkDisabled != chkDisabled) {
236384
+ node.chkDisabled = chkDisabled;
236385
+ }
236386
+ view.repairChkClass(setting, node);
236387
+ var children = data.nodeChildren(setting, node);
236388
+ if (children && inherit) {
236389
+ for (var i = 0, l = children.length; i < l; i++) {
236390
+ var sNode = children[i];
236391
+ view.repairSonChkDisabled(setting, sNode, chkDisabled, inherit);
236392
+ }
236393
+ }
236394
+ },
236395
+ repairParentChkDisabled: function(setting, node, chkDisabled, inherit) {
236396
+ if (!node) return;
236397
+ if (node.chkDisabled != chkDisabled && inherit) {
236398
+ node.chkDisabled = chkDisabled;
236399
+ }
236400
+ view.repairChkClass(setting, node);
236401
+ view.repairParentChkDisabled(setting, node.getParentNode(), chkDisabled, inherit);
236402
+ },
236403
+ setChkClass: function(setting, obj, node) {
236404
+ if (!obj) return;
236405
+ if (node.nocheck === true) {
236406
+ obj.hide();
236407
+ } else {
236408
+ obj.show();
236409
+ }
236410
+ obj.attr("class", view.makeChkClass(setting, node));
236411
+ },
236412
+ setParentNodeCheckBox: function(setting, node, value, srcNode) {
236413
+ var checkObj = $$(node, consts.id.CHECK, setting);
236414
+ if (!srcNode) srcNode = node;
236415
+ data.makeChkFlag(setting, node);
236416
+ if (node.nocheck !== true && node.chkDisabled !== true) {
236417
+ data.nodeChecked(setting, node, value);
236418
+ view.setChkClass(setting, checkObj, node);
236419
+ if (setting.check.autoCheckTrigger && node != srcNode) {
236420
+ setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
236421
+ }
236422
+ }
236423
+ if (node.parentTId) {
236424
+ var pSign = true;
236425
+ if (!value) {
236426
+ var pNodes = data.nodeChildren(setting, node.getParentNode());
236427
+ for (var i = 0, l = pNodes.length; i < l; i++) {
236428
+ var pNode = pNodes[i];
236429
+ var nodeChecked = data.nodeChecked(setting, pNode);
236430
+ if (pNode.nocheck !== true && pNode.chkDisabled !== true && nodeChecked || (pNode.nocheck === true || pNode.chkDisabled === true) && pNode.check_Child_State > 0) {
236431
+ pSign = false;
236432
+ break;
236433
+ }
236434
+ }
236435
+ }
236436
+ if (pSign) {
236437
+ view.setParentNodeCheckBox(setting, node.getParentNode(), value, srcNode);
236438
+ }
236439
+ }
236440
+ },
236441
+ setSonNodeCheckBox: function(setting, node, value, srcNode) {
236442
+ if (!node) return;
236443
+ var checkObj = $$(node, consts.id.CHECK, setting);
236444
+ if (!srcNode) srcNode = node;
236445
+ var hasDisable = false;
236446
+ var children = data.nodeChildren(setting, node);
236447
+ if (children) {
236448
+ for (var i = 0, l = children.length; i < l; i++) {
236449
+ var sNode = children[i];
236450
+ view.setSonNodeCheckBox(setting, sNode, value, srcNode);
236451
+ if (sNode.chkDisabled === true) hasDisable = true;
236452
+ }
236453
+ }
236454
+ if (node != data.getRoot(setting) && node.chkDisabled !== true) {
236455
+ if (hasDisable && node.nocheck !== true) {
236456
+ data.makeChkFlag(setting, node);
236457
+ }
236458
+ if (node.nocheck !== true && node.chkDisabled !== true) {
236459
+ data.nodeChecked(setting, node, value);
236460
+ if (!hasDisable) node.check_Child_State = children && children.length > 0 ? value ? 2 : 0 : -1;
236461
+ } else {
236462
+ node.check_Child_State = -1;
236463
+ }
236464
+ view.setChkClass(setting, checkObj, node);
236465
+ if (setting.check.autoCheckTrigger && node != srcNode && node.nocheck !== true && node.chkDisabled !== true) {
236466
+ setting.treeObj.trigger(consts.event.CHECK, [ null, setting.treeId, node ]);
236467
+ }
236468
+ }
236469
+ }
236470
+ }, _z = {
236471
+ tools: _tools,
236472
+ view: _view,
236473
+ event: _event,
236474
+ data: _data
236475
+ };
236476
+ $.extend(true, $.fn.zTree.consts, _consts);
236477
+ $.extend(true, $.fn.zTree._z, _z);
236478
+ var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
236479
+ data.nodeChecked = function(setting, node, newChecked) {
236480
+ if (!node) {
236481
+ return false;
236482
+ }
236483
+ var key = setting.data.key.checked;
236484
+ if (typeof newChecked !== "undefined") {
236485
+ if (typeof newChecked === "string") {
236486
+ newChecked = tools.eqs(newChecked, "true");
236487
+ }
236488
+ newChecked = !!newChecked;
236489
+ node[key] = newChecked;
236490
+ } else if (typeof node[key] == "string") {
236491
+ node[key] = tools.eqs(node[key], "true");
236492
+ } else {
236493
+ node[key] = !!node[key];
236494
+ }
236495
+ return node[key];
236496
+ };
236497
+ data.exSetting(_setting);
236498
+ data.addInitBind(_bindEvent);
236499
+ data.addInitUnBind(_unbindEvent);
236500
+ data.addInitCache(_initCache);
236501
+ data.addInitNode(_initNode);
236502
+ data.addInitProxy(_eventProxy, true);
236503
+ data.addInitRoot(_initRoot);
236504
+ data.addBeforeA(_beforeA);
236505
+ data.addZTreeTools(_zTreeTools);
236506
+ var _createNodes = view.createNodes;
236507
+ view.createNodes = function(setting, level, nodes, parentNode, index) {
236508
+ if (_createNodes) _createNodes.apply(view, arguments);
236509
+ if (!nodes) return;
236510
+ view.repairParentChkClassWithSelf(setting, parentNode);
236511
+ };
236512
+ var _removeNode = view.removeNode;
236513
+ view.removeNode = function(setting, node) {
236514
+ var parentNode = node.getParentNode();
236515
+ if (_removeNode) _removeNode.apply(view, arguments);
236516
+ if (!node || !parentNode) return;
236517
+ view.repairChkClass(setting, parentNode);
236518
+ view.repairParentChkClass(setting, parentNode);
236519
+ };
236520
+ var _appendNodes = view.appendNodes;
236521
+ view.appendNodes = function(setting, level, nodes, parentNode, index, initFlag, openFlag) {
236522
+ var html = "";
236523
+ if (_appendNodes) {
236524
+ html = _appendNodes.apply(view, arguments);
236525
+ }
236526
+ if (parentNode) {
236527
+ data.makeChkFlag(setting, parentNode);
236528
+ }
236529
+ return html;
236530
+ };
236531
+ })(jQuery);
236532
+
236533
+ (function($) {
236534
+ var _consts = {
236535
+ event: {
236536
+ DRAG: "ztree_drag",
236537
+ DROP: "ztree_drop",
236538
+ RENAME: "ztree_rename",
236539
+ DRAGMOVE: "ztree_dragmove"
236540
+ },
236541
+ id: {
236542
+ EDIT: "_edit",
236543
+ INPUT: "_input",
236544
+ REMOVE: "_remove"
236545
+ },
236546
+ move: {
236547
+ TYPE_INNER: "inner",
236548
+ TYPE_PREV: "prev",
236549
+ TYPE_NEXT: "next"
236550
+ },
236551
+ node: {
236552
+ CURSELECTED_EDIT: "curSelectedNode_Edit",
236553
+ TMPTARGET_TREE: "tmpTargetzTree",
236554
+ TMPTARGET_NODE: "tmpTargetNode"
236555
+ }
236556
+ }, _setting = {
236557
+ edit: {
236558
+ enable: false,
236559
+ editNameSelectAll: false,
236560
+ showRemoveBtn: true,
236561
+ showRenameBtn: true,
236562
+ removeTitle: "remove",
236563
+ renameTitle: "rename",
236564
+ drag: {
236565
+ autoExpandTrigger: false,
236566
+ isCopy: true,
236567
+ isMove: true,
236568
+ prev: true,
236569
+ next: true,
236570
+ inner: true,
236571
+ minMoveSize: 5,
236572
+ borderMax: 10,
236573
+ borderMin: -5,
236574
+ maxShowNodeNum: 5,
236575
+ autoOpenTime: 500
236576
+ }
236577
+ },
236578
+ view: {
236579
+ addHoverDom: null,
236580
+ removeHoverDom: null
236581
+ },
236582
+ callback: {
236583
+ beforeDrag: null,
236584
+ beforeDragOpen: null,
236585
+ beforeDrop: null,
236586
+ beforeEditName: null,
236587
+ beforeRename: null,
236588
+ onDrag: null,
236589
+ onDragMove: null,
236590
+ onDrop: null,
236591
+ onRename: null
236592
+ }
236593
+ }, _initRoot = function(setting) {
236594
+ var r = data.getRoot(setting), rs = data.getRoots();
236595
+ r.curEditNode = null;
236596
+ r.curEditInput = null;
236597
+ r.curHoverNode = null;
236598
+ r.dragFlag = 0;
236599
+ r.dragNodeShowBefore = [];
236600
+ r.dragMaskList = new Array;
236601
+ rs.showHoverDom = true;
236602
+ }, _initCache = function(treeId) {}, _bindEvent = function(setting) {
236603
+ var o = setting.treeObj;
236604
+ var c = consts.event;
236605
+ o.bind(c.RENAME, (function(event, treeId, treeNode, isCancel) {
236606
+ tools.apply(setting.callback.onRename, [ event, treeId, treeNode, isCancel ]);
236607
+ }));
236608
+ o.bind(c.DRAG, (function(event, srcEvent, treeId, treeNodes) {
236609
+ tools.apply(setting.callback.onDrag, [ srcEvent, treeId, treeNodes ]);
236610
+ }));
236611
+ o.bind(c.DRAGMOVE, (function(event, srcEvent, treeId, treeNodes) {
236612
+ tools.apply(setting.callback.onDragMove, [ srcEvent, treeId, treeNodes ]);
236613
+ }));
236614
+ o.bind(c.DROP, (function(event, srcEvent, treeId, treeNodes, targetNode, moveType, isCopy) {
236615
+ tools.apply(setting.callback.onDrop, [ srcEvent, treeId, treeNodes, targetNode, moveType, isCopy ]);
236616
+ }));
236617
+ }, _unbindEvent = function(setting) {
236618
+ var o = setting.treeObj;
236619
+ var c = consts.event;
236620
+ o.unbind(c.RENAME);
236621
+ o.unbind(c.DRAG);
236622
+ o.unbind(c.DRAGMOVE);
236623
+ o.unbind(c.DROP);
236624
+ }, _eventProxy = function(e) {
236625
+ var target = e.target, setting = data.getSetting(e.data.treeId), relatedTarget = e.relatedTarget, tId = "", node = null, nodeEventType = "", treeEventType = "", nodeEventCallback = null, treeEventCallback = null, tmp = null;
236626
+ if (tools.eqs(e.type, "mouseover")) {
236627
+ tmp = tools.getMDom(setting, target, [ {
236628
+ tagName: "a",
236629
+ attrName: "treeNode" + consts.id.A
236630
+ } ]);
236631
+ if (tmp) {
236632
+ tId = tools.getNodeMainDom(tmp).id;
236633
+ nodeEventType = "hoverOverNode";
236634
+ }
236635
+ } else if (tools.eqs(e.type, "mouseout")) {
236636
+ tmp = tools.getMDom(setting, relatedTarget, [ {
236637
+ tagName: "a",
236638
+ attrName: "treeNode" + consts.id.A
236639
+ } ]);
236640
+ if (!tmp) {
236641
+ tId = "remove";
236642
+ nodeEventType = "hoverOutNode";
236643
+ }
236644
+ } else if (tools.eqs(e.type, "mousedown")) {
236645
+ tmp = tools.getMDom(setting, target, [ {
236646
+ tagName: "a",
236647
+ attrName: "treeNode" + consts.id.A
236648
+ } ]);
236649
+ if (tmp) {
236650
+ tId = tools.getNodeMainDom(tmp).id;
236651
+ nodeEventType = "mousedownNode";
236652
+ }
236653
+ }
236654
+ if (tId.length > 0) {
236655
+ node = data.getNodeCache(setting, tId);
236656
+ switch (nodeEventType) {
236657
+ case "mousedownNode":
236658
+ nodeEventCallback = _handler.onMousedownNode;
236659
+ break;
236660
+
236661
+ case "hoverOverNode":
236662
+ nodeEventCallback = _handler.onHoverOverNode;
236663
+ break;
236664
+
236665
+ case "hoverOutNode":
236666
+ nodeEventCallback = _handler.onHoverOutNode;
236667
+ break;
236668
+ }
236669
+ }
236670
+ var proxyResult = {
236671
+ stop: false,
236672
+ node: node,
236673
+ nodeEventType: nodeEventType,
236674
+ nodeEventCallback: nodeEventCallback,
236675
+ treeEventType: treeEventType,
236676
+ treeEventCallback: treeEventCallback
236677
+ };
236678
+ return proxyResult;
236679
+ }, _initNode = function(setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {
236680
+ if (!n) return;
236681
+ n.isHover = false;
236682
+ n.editNameFlag = false;
236683
+ }, _zTreeTools = function(setting, zTreeTools) {
236684
+ zTreeTools.cancelEditName = function(newName) {
236685
+ var root = data.getRoot(this.setting);
236686
+ if (!root.curEditNode) return;
236687
+ view.cancelCurEditNode(this.setting, newName ? newName : null, true);
236688
+ };
236689
+ zTreeTools.copyNode = function(targetNode, node, moveType, isSilent) {
236690
+ if (!node) return null;
236691
+ var isParent = data.nodeIsParent(setting, targetNode);
236692
+ if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) return null;
236693
+ var _this = this, newNode = tools.clone(node);
236694
+ if (!targetNode) {
236695
+ targetNode = null;
236696
+ moveType = consts.move.TYPE_INNER;
236697
+ }
236698
+ if (moveType == consts.move.TYPE_INNER) {
236699
+ function copyCallback() {
236700
+ view.addNodes(_this.setting, targetNode, -1, [ newNode ], isSilent);
236701
+ }
236702
+ if (tools.canAsync(this.setting, targetNode)) {
236703
+ view.asyncNode(this.setting, targetNode, isSilent, copyCallback);
236704
+ } else {
236705
+ copyCallback();
236706
+ }
236707
+ } else {
236708
+ view.addNodes(this.setting, targetNode.parentNode, -1, [ newNode ], isSilent);
236709
+ view.moveNode(this.setting, targetNode, newNode, moveType, false, isSilent);
236710
+ }
236711
+ return newNode;
236712
+ };
236713
+ zTreeTools.editName = function(node) {
236714
+ if (!node || !node.tId || node !== data.getNodeCache(this.setting, node.tId)) return;
236715
+ if (node.parentTId) view.expandCollapseParentNode(this.setting, node.getParentNode(), true);
236716
+ view.editNode(this.setting, node);
236717
+ };
236718
+ zTreeTools.moveNode = function(targetNode, node, moveType, isSilent) {
236719
+ if (!node) return node;
236720
+ var isParent = data.nodeIsParent(setting, targetNode);
236721
+ if (targetNode && !isParent && this.setting.data.keep.leaf && moveType === consts.move.TYPE_INNER) {
236722
+ return null;
236723
+ } else if (targetNode && (node.parentTId == targetNode.tId && moveType == consts.move.TYPE_INNER || $$(node, this.setting).find("#" + targetNode.tId).length > 0)) {
236724
+ return null;
236725
+ } else if (!targetNode) {
236726
+ targetNode = null;
236727
+ }
236728
+ var _this = this;
236729
+ function moveCallback() {
236730
+ view.moveNode(_this.setting, targetNode, node, moveType, false, isSilent);
236731
+ }
236732
+ if (tools.canAsync(this.setting, targetNode) && moveType === consts.move.TYPE_INNER) {
236733
+ view.asyncNode(this.setting, targetNode, isSilent, moveCallback);
236734
+ } else {
236735
+ moveCallback();
236736
+ }
236737
+ return node;
236738
+ };
236739
+ zTreeTools.setEditable = function(editable) {
236740
+ this.setting.edit.enable = editable;
236741
+ return this.refresh();
236742
+ };
236743
+ }, _data = {
236744
+ setSonNodeLevel: function(setting, parentNode, node) {
236745
+ if (!node) return;
236746
+ var children = data.nodeChildren(setting, node);
236747
+ var oldLevel = node.level;
236748
+ node.level = parentNode ? parentNode.level + 1 : 0;
236749
+ view.repairNodeLevelClass(setting, node, oldLevel);
236750
+ if (!children) return;
236751
+ for (var i = 0, l = children.length; i < l; i++) {
236752
+ if (children[i]) data.setSonNodeLevel(setting, node, children[i]);
236753
+ }
236754
+ }
236755
+ }, _event = {}, _handler = {
236756
+ onHoverOverNode: function(event, node) {
236757
+ var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
236758
+ if (root.curHoverNode != node) {
236759
+ _handler.onHoverOutNode(event);
236760
+ }
236761
+ root.curHoverNode = node;
236762
+ view.addHoverDom(setting, node);
236763
+ },
236764
+ onHoverOutNode: function(event, node) {
236765
+ var setting = data.getSetting(event.data.treeId), root = data.getRoot(setting);
236766
+ if (root.curHoverNode && !data.isSelectedNode(setting, root.curHoverNode)) {
236767
+ view.removeTreeDom(setting, root.curHoverNode);
236768
+ root.curHoverNode = null;
236769
+ }
236770
+ },
236771
+ onMousedownNode: function(eventMouseDown, _node) {
236772
+ var i, l, setting = data.getSetting(eventMouseDown.data.treeId), root = data.getRoot(setting), roots = data.getRoots();
236773
+ if (eventMouseDown.button == 2 || !setting.edit.enable || !setting.edit.drag.isCopy && !setting.edit.drag.isMove) return true;
236774
+ var target = eventMouseDown.target, _nodes = data.getRoot(setting).curSelectedList, nodes = [];
236775
+ if (!data.isSelectedNode(setting, _node)) {
236776
+ nodes = [ _node ];
236777
+ } else {
236778
+ for (i = 0, l = _nodes.length; i < l; i++) {
236779
+ if (_nodes[i].editNameFlag && tools.eqs(target.tagName, "input") && target.getAttribute("treeNode" + consts.id.INPUT) !== null) {
236780
+ return true;
236781
+ }
236782
+ nodes.push(_nodes[i]);
236783
+ if (nodes[0].parentTId !== _nodes[i].parentTId) {
236784
+ nodes = [ _node ];
236785
+ break;
236786
+ }
236787
+ }
236788
+ }
236789
+ view.editNodeBlur = true;
236790
+ view.cancelCurEditNode(setting);
236791
+ 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();
236792
+ if (tools.uCanDo(setting)) {
236793
+ doc.bind("mousemove", _docMouseMove);
236794
+ }
236795
+ function _docMouseMove(event) {
236796
+ if (root.dragFlag == 0 && Math.abs(mouseDownX - event.clientX) < setting.edit.drag.minMoveSize && Math.abs(mouseDownY - event.clientY) < setting.edit.drag.minMoveSize) {
236797
+ return true;
236798
+ }
236799
+ var i, l, tmpNode, tmpDom, tmpNodes;
236800
+ body.css("cursor", "pointer");
236801
+ if (root.dragFlag == 0) {
236802
+ if (tools.apply(setting.callback.beforeDrag, [ setting.treeId, nodes ], true) == false) {
236803
+ _docMouseUp(event);
236804
+ return true;
236805
+ }
236806
+ for (i = 0, l = nodes.length; i < l; i++) {
236807
+ if (i == 0) {
236808
+ root.dragNodeShowBefore = [];
236809
+ }
236810
+ tmpNode = nodes[i];
236811
+ if (data.nodeIsParent(setting, tmpNode) && tmpNode.open) {
236812
+ view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
236813
+ root.dragNodeShowBefore[tmpNode.tId] = true;
236814
+ } else {
236815
+ root.dragNodeShowBefore[tmpNode.tId] = false;
236816
+ }
236817
+ }
236818
+ root.dragFlag = 1;
236819
+ roots.showHoverDom = false;
236820
+ tools.showIfameMask(setting, true);
236821
+ var isOrder = true, lastIndex = -1;
236822
+ if (nodes.length > 1) {
236823
+ var pNodes = nodes[0].parentTId ? data.nodeChildren(setting, nodes[0].getParentNode()) : data.getNodes(setting);
236824
+ tmpNodes = [];
236825
+ for (i = 0, l = pNodes.length; i < l; i++) {
236826
+ if (root.dragNodeShowBefore[pNodes[i].tId] !== undefined) {
236827
+ if (isOrder && lastIndex > -1 && lastIndex + 1 !== i) {
236828
+ isOrder = false;
236829
+ }
236830
+ tmpNodes.push(pNodes[i]);
236831
+ lastIndex = i;
236832
+ }
236833
+ if (nodes.length === tmpNodes.length) {
236834
+ nodes = tmpNodes;
236835
+ break;
236836
+ }
236837
+ }
236838
+ }
236839
+ if (isOrder) {
236840
+ preNode = nodes[0].getPreNode();
236841
+ nextNode = nodes[nodes.length - 1].getNextNode();
236842
+ }
236843
+ curNode = $$("<ul class='zTreeDragUL'></ul>", setting);
236844
+ for (i = 0, l = nodes.length; i < l; i++) {
236845
+ tmpNode = nodes[i];
236846
+ tmpNode.editNameFlag = false;
236847
+ view.selectNode(setting, tmpNode, i > 0);
236848
+ view.removeTreeDom(setting, tmpNode);
236849
+ if (i > setting.edit.drag.maxShowNodeNum - 1) {
236850
+ continue;
236851
+ }
236852
+ tmpDom = $$("<li id='" + tmpNode.tId + "_tmp'></li>", setting);
236853
+ tmpDom.append($$(tmpNode, consts.id.A, setting).clone());
236854
+ tmpDom.css("padding", "0");
236855
+ tmpDom.children("#" + tmpNode.tId + consts.id.A).removeClass(consts.node.CURSELECTED);
236856
+ curNode.append(tmpDom);
236857
+ if (i == setting.edit.drag.maxShowNodeNum - 1) {
236858
+ tmpDom = $$("<li id='" + tmpNode.tId + "_moretmp'><a> ... </a></li>", setting);
236859
+ curNode.append(tmpDom);
236860
+ }
236861
+ }
236862
+ curNode.attr("id", nodes[0].tId + consts.id.UL + "_tmp");
236863
+ curNode.addClass(setting.treeObj.attr("class"));
236864
+ curNode.appendTo(body);
236865
+ tmpArrow = $$("<span class='tmpzTreeMove_arrow'></span>", setting);
236866
+ tmpArrow.attr("id", "zTreeMove_arrow_tmp");
236867
+ tmpArrow.appendTo(body);
236868
+ setting.treeObj.trigger(consts.event.DRAG, [ event, setting.treeId, nodes ]);
236869
+ }
236870
+ if (root.dragFlag == 1) {
236871
+ if (tmpTarget && tmpArrow.attr("id") == event.target.id && tmpTargetNodeId && event.clientX + doc.scrollLeft() + 2 > $("#" + tmpTargetNodeId + consts.id.A, tmpTarget).offset().left) {
236872
+ var xT = $("#" + tmpTargetNodeId + consts.id.A, tmpTarget);
236873
+ event.target = xT.length > 0 ? xT.get(0) : event.target;
236874
+ } else if (tmpTarget) {
236875
+ tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
236876
+ 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);
236877
+ }
236878
+ tmpTarget = null;
236879
+ tmpTargetNodeId = null;
236880
+ isOtherTree = false;
236881
+ targetSetting = setting;
236882
+ var settings = data.getSettings();
236883
+ for (var s in settings) {
236884
+ 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)) {
236885
+ isOtherTree = true;
236886
+ targetSetting = settings[s];
236887
+ }
236888
+ }
236889
+ 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;
236890
+ if (event.target && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
236891
+ var targetObj = event.target;
236892
+ while (targetObj && targetObj.tagName && !tools.eqs(targetObj.tagName, "li") && targetObj.id != targetSetting.treeId) {
236893
+ targetObj = targetObj.parentNode;
236894
+ }
236895
+ var canMove = true;
236896
+ for (i = 0, l = nodes.length; i < l; i++) {
236897
+ tmpNode = nodes[i];
236898
+ if (targetObj.id === tmpNode.tId) {
236899
+ canMove = false;
236900
+ break;
236901
+ } else if ($$(tmpNode, setting).find("#" + targetObj.id).length > 0) {
236902
+ canMove = false;
236903
+ break;
236904
+ }
236905
+ }
236906
+ if (canMove && event.target && tools.isChildOrSelf(event.target, targetObj.id + consts.id.A)) {
236907
+ tmpTarget = $(targetObj);
236908
+ tmpTargetNodeId = targetObj.id;
236909
+ }
236910
+ }
236911
+ tmpNode = nodes[0];
236912
+ if (isTreeInner && tools.isChildOrSelf(event.target, targetSetting.treeId)) {
236913
+ if (!tmpTarget && (event.target.id == targetSetting.treeId || isTreeTop || isTreeBottom || isTreeLeft || isTreeRight) && (isOtherTree || !isOtherTree && tmpNode.parentTId)) {
236914
+ tmpTarget = targetSetting.treeObj;
236915
+ }
236916
+ if (isTop) {
236917
+ targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() - 10);
236918
+ } else if (isBottom) {
236919
+ targetSetting.treeObj.scrollTop(targetSetting.treeObj.scrollTop() + 10);
236920
+ }
236921
+ if (isLeft) {
236922
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() - 10);
236923
+ } else if (isRight) {
236924
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + 10);
236925
+ }
236926
+ if (tmpTarget && tmpTarget != targetSetting.treeObj && tmpTarget.offset().left < targetSetting.treeObj.offset().left) {
236927
+ targetSetting.treeObj.scrollLeft(targetSetting.treeObj.scrollLeft() + tmpTarget.offset().left - targetSetting.treeObj.offset().left);
236928
+ }
236929
+ }
236930
+ curNode.css({
236931
+ top: event.clientY + docScrollTop + 3 + "px",
236932
+ left: event.clientX + docScrollLeft + 3 + "px"
236933
+ });
236934
+ var dX = 0;
236935
+ var dY = 0;
236936
+ if (tmpTarget && tmpTarget.attr("id") != targetSetting.treeId) {
236937
+ 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);
236938
+ function clearMove() {
236939
+ tmpTarget = null;
236940
+ tmpTargetNodeId = "";
236941
+ moveType = consts.move.TYPE_INNER;
236942
+ tmpArrow.css({
236943
+ display: "none"
236944
+ });
236945
+ if (window.zTreeMoveTimer) {
236946
+ clearTimeout(window.zTreeMoveTimer);
236947
+ window.zTreeMoveTargetNodeTId = null;
236948
+ }
236949
+ }
236950
+ if (!canPrev && !canNext && !canInner) {
236951
+ clearMove();
236952
+ } else {
236953
+ 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();
236954
+ if ((prevPercent == 1 || dY_percent <= prevPercent && dY_percent >= -.2) && canPrev) {
236955
+ dX = 1 - tmpArrow.width();
236956
+ dY = tmpTop - tmpArrow.height() / 2;
236957
+ moveType = consts.move.TYPE_PREV;
236958
+ } else if ((nextPercent == 0 || dY_percent >= nextPercent && dY_percent <= 1.2) && canNext) {
236959
+ dX = 1 - tmpArrow.width();
236960
+ dY = tmpNextA == null || data.nodeIsParent(setting, tmpTargetNode) && tmpTargetNode.open ? tmpTop + tmpTargetA.height() - tmpArrow.height() / 2 : tmpNextA.offset().top - tmpArrow.height() / 2;
236961
+ moveType = consts.move.TYPE_NEXT;
236962
+ } else if (canInner) {
236963
+ dX = 5 - tmpArrow.width();
236964
+ dY = tmpTop;
236965
+ moveType = consts.move.TYPE_INNER;
236966
+ } else {
236967
+ clearMove();
236968
+ }
236969
+ if (tmpTarget) {
236970
+ tmpArrow.css({
236971
+ display: "block",
236972
+ top: dY + "px",
236973
+ left: tmpLeft + dX + "px"
236974
+ });
236975
+ tmpTargetA.addClass(consts.node.TMPTARGET_NODE + "_" + moveType);
236976
+ if (preTmpTargetNodeId != tmpTargetNodeId || preTmpMoveType != moveType) {
236977
+ startTime = (new Date).getTime();
236978
+ }
236979
+ if (tmpTargetNode && data.nodeIsParent(setting, tmpTargetNode) && moveType == consts.move.TYPE_INNER) {
236980
+ var startTimer = true;
236981
+ if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId !== tmpTargetNode.tId) {
236982
+ clearTimeout(window.zTreeMoveTimer);
236983
+ window.zTreeMoveTargetNodeTId = null;
236984
+ } else if (window.zTreeMoveTimer && window.zTreeMoveTargetNodeTId === tmpTargetNode.tId) {
236985
+ startTimer = false;
236986
+ }
236987
+ if (startTimer) {
236988
+ window.zTreeMoveTimer = setTimeout((function() {
236989
+ if (moveType != consts.move.TYPE_INNER) return;
236990
+ 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)) {
236991
+ view.switchNode(targetSetting, tmpTargetNode);
236992
+ if (targetSetting.edit.drag.autoExpandTrigger) {
236993
+ targetSetting.treeObj.trigger(consts.event.EXPAND, [ targetSetting.treeId, tmpTargetNode ]);
236994
+ }
236995
+ }
236996
+ }), targetSetting.edit.drag.autoOpenTime + 50);
236997
+ window.zTreeMoveTargetNodeTId = tmpTargetNode.tId;
236998
+ }
236999
+ }
237000
+ }
237001
+ }
237002
+ } else {
237003
+ moveType = consts.move.TYPE_INNER;
237004
+ if (tmpTarget && tools.apply(targetSetting.edit.drag.inner, [ targetSetting.treeId, nodes, null ], !!targetSetting.edit.drag.inner)) {
237005
+ tmpTarget.addClass(consts.node.TMPTARGET_TREE);
237006
+ } else {
237007
+ tmpTarget = null;
237008
+ }
237009
+ tmpArrow.css({
237010
+ display: "none"
237011
+ });
237012
+ if (window.zTreeMoveTimer) {
237013
+ clearTimeout(window.zTreeMoveTimer);
237014
+ window.zTreeMoveTargetNodeTId = null;
237015
+ }
237016
+ }
237017
+ preTmpTargetNodeId = tmpTargetNodeId;
237018
+ preTmpMoveType = moveType;
237019
+ setting.treeObj.trigger(consts.event.DRAGMOVE, [ event, setting.treeId, nodes ]);
237020
+ }
237021
+ return false;
237022
+ }
237023
+ doc.bind("mouseup", _docMouseUp);
237024
+ function _docMouseUp(event) {
237025
+ if (window.zTreeMoveTimer) {
237026
+ clearTimeout(window.zTreeMoveTimer);
237027
+ window.zTreeMoveTargetNodeTId = null;
237028
+ }
237029
+ preTmpTargetNodeId = null;
237030
+ preTmpMoveType = null;
237031
+ doc.unbind("mousemove", _docMouseMove);
237032
+ doc.unbind("mouseup", _docMouseUp);
237033
+ doc.unbind("selectstart", _docSelect);
237034
+ body.css("cursor", "");
237035
+ if (tmpTarget) {
237036
+ tmpTarget.removeClass(consts.node.TMPTARGET_TREE);
237037
+ 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);
237038
+ }
237039
+ tools.showIfameMask(setting, false);
237040
+ roots.showHoverDom = true;
237041
+ if (root.dragFlag == 0) return;
237042
+ root.dragFlag = 0;
237043
+ var i, l, tmpNode;
237044
+ for (i = 0, l = nodes.length; i < l; i++) {
237045
+ tmpNode = nodes[i];
237046
+ if (data.nodeIsParent(setting, tmpNode) && root.dragNodeShowBefore[tmpNode.tId] && !tmpNode.open) {
237047
+ view.expandCollapseNode(setting, tmpNode, !tmpNode.open);
237048
+ delete root.dragNodeShowBefore[tmpNode.tId];
237049
+ }
237050
+ }
237051
+ if (curNode) curNode.remove();
237052
+ if (tmpArrow) tmpArrow.remove();
237053
+ var isCopy = (event.ctrlKey || event.metaKey) && setting.edit.drag.isMove && setting.edit.drag.isCopy || !setting.edit.drag.isMove && setting.edit.drag.isCopy;
237054
+ if (!isCopy && tmpTarget && tmpTargetNodeId && nodes[0].parentTId && tmpTargetNodeId == nodes[0].parentTId && moveType == consts.move.TYPE_INNER) {
237055
+ tmpTarget = null;
237056
+ }
237057
+ if (tmpTarget) {
237058
+ var dragTargetNode = tmpTargetNodeId == null ? null : data.getNodeCache(targetSetting, tmpTargetNodeId);
237059
+ if (tools.apply(setting.callback.beforeDrop, [ targetSetting.treeId, nodes, dragTargetNode, moveType, isCopy ], true) == false) {
237060
+ view.selectNodes(sourceSetting, nodes);
237061
+ return;
237062
+ }
237063
+ var newNodes = isCopy ? tools.clone(nodes) : nodes;
237064
+ function dropCallback() {
237065
+ if (isOtherTree) {
237066
+ if (!isCopy) {
237067
+ for (var i = 0, l = nodes.length; i < l; i++) {
237068
+ view.removeNode(setting, nodes[i]);
237069
+ }
237070
+ }
237071
+ if (moveType == consts.move.TYPE_INNER) {
237072
+ view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
237073
+ } else {
237074
+ view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
237075
+ }
237076
+ } else {
237077
+ if (isCopy && moveType == consts.move.TYPE_INNER) {
237078
+ view.addNodes(targetSetting, dragTargetNode, -1, newNodes);
237079
+ } else if (isCopy) {
237080
+ view.addNodes(targetSetting, dragTargetNode.getParentNode(), moveType == consts.move.TYPE_PREV ? dragTargetNode.getIndex() : dragTargetNode.getIndex() + 1, newNodes);
237081
+ } else {
237082
+ if (moveType != consts.move.TYPE_NEXT) {
237083
+ for (i = 0, l = newNodes.length; i < l; i++) {
237084
+ view.moveNode(targetSetting, dragTargetNode, newNodes[i], moveType, false);
237085
+ }
237086
+ } else {
237087
+ for (i = -1, l = newNodes.length - 1; i < l; l--) {
237088
+ view.moveNode(targetSetting, dragTargetNode, newNodes[l], moveType, false);
237089
+ }
237090
+ }
237091
+ }
237092
+ }
237093
+ view.selectNodes(targetSetting, newNodes);
237094
+ var a = $$(newNodes[0], setting).get(0);
237095
+ view.scrollIntoView(setting, a);
237096
+ setting.treeObj.trigger(consts.event.DROP, [ event, targetSetting.treeId, newNodes, dragTargetNode, moveType, isCopy ]);
237097
+ }
237098
+ if (moveType == consts.move.TYPE_INNER && tools.canAsync(targetSetting, dragTargetNode)) {
237099
+ view.asyncNode(targetSetting, dragTargetNode, false, dropCallback);
237100
+ } else {
237101
+ dropCallback();
237102
+ }
237103
+ } else {
237104
+ view.selectNodes(sourceSetting, nodes);
237105
+ setting.treeObj.trigger(consts.event.DROP, [ event, setting.treeId, nodes, null, null, null ]);
237106
+ }
237107
+ }
237108
+ doc.bind("selectstart", _docSelect);
237109
+ function _docSelect() {
237110
+ return false;
237111
+ }
237112
+ return true;
237113
+ }
237114
+ }, _tools = {
237115
+ getAbs: function(obj) {
237116
+ var oRect = obj.getBoundingClientRect(), scrollTop = document.body.scrollTop + document.documentElement.scrollTop, scrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
237117
+ return [ oRect.left + scrollLeft, oRect.top + scrollTop ];
237118
+ },
237119
+ inputFocus: function(inputObj) {
237120
+ if (inputObj.get(0)) {
237121
+ inputObj.focus();
237122
+ tools.setCursorPosition(inputObj.get(0), inputObj.val().length);
237123
+ }
237124
+ },
237125
+ inputSelect: function(inputObj) {
237126
+ if (inputObj.get(0)) {
237127
+ inputObj.focus();
237128
+ inputObj.select();
237129
+ }
237130
+ },
237131
+ setCursorPosition: function(obj, pos) {
237132
+ if (obj.setSelectionRange) {
237133
+ obj.focus();
237134
+ obj.setSelectionRange(pos, pos);
237135
+ } else if (obj.createTextRange) {
237136
+ var range = obj.createTextRange();
237137
+ range.collapse(true);
237138
+ range.moveEnd("character", pos);
237139
+ range.moveStart("character", pos);
237140
+ range.select();
237141
+ }
237142
+ },
237143
+ showIfameMask: function(setting, showSign) {
237144
+ var root = data.getRoot(setting);
237145
+ while (root.dragMaskList.length > 0) {
237146
+ root.dragMaskList[0].remove();
237147
+ root.dragMaskList.shift();
237148
+ }
237149
+ if (showSign) {
237150
+ var iframeList = $$("iframe", setting);
237151
+ for (var i = 0, l = iframeList.length; i < l; i++) {
237152
+ 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);
237153
+ dragMask.appendTo($$("body", setting));
237154
+ root.dragMaskList.push(dragMask);
237155
+ }
237156
+ }
237157
+ }
237158
+ }, _view = {
237159
+ addEditBtn: function(setting, node) {
237160
+ if (node.editNameFlag || $$(node, consts.id.EDIT, setting).length > 0) {
237161
+ return;
237162
+ }
237163
+ if (!tools.apply(setting.edit.showRenameBtn, [ setting.treeId, node ], setting.edit.showRenameBtn)) {
237164
+ return;
237165
+ }
237166
+ 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>";
237167
+ aObj.append(editStr);
237168
+ $$(node, consts.id.EDIT, setting).bind("click", (function() {
237169
+ if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeEditName, [ setting.treeId, node ], true) == false) return false;
237170
+ view.editNode(setting, node);
237171
+ return false;
237172
+ })).show();
237173
+ },
237174
+ addRemoveBtn: function(setting, node) {
237175
+ if (node.editNameFlag || $$(node, consts.id.REMOVE, setting).length > 0) {
237176
+ return;
237177
+ }
237178
+ if (!tools.apply(setting.edit.showRemoveBtn, [ setting.treeId, node ], setting.edit.showRemoveBtn)) {
237179
+ return;
237180
+ }
237181
+ 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>";
237182
+ aObj.append(removeStr);
237183
+ $$(node, consts.id.REMOVE, setting).bind("click", (function() {
237184
+ if (!tools.uCanDo(setting) || tools.apply(setting.callback.beforeRemove, [ setting.treeId, node ], true) == false) return false;
237185
+ view.removeNode(setting, node);
237186
+ setting.treeObj.trigger(consts.event.REMOVE, [ setting.treeId, node ]);
237187
+ return false;
237188
+ })).bind("mousedown", (function(eventMouseDown) {
237189
+ return true;
237190
+ })).show();
237191
+ },
237192
+ addHoverDom: function(setting, node) {
237193
+ if (data.getRoots().showHoverDom) {
237194
+ node.isHover = true;
237195
+ if (setting.edit.enable) {
237196
+ view.addEditBtn(setting, node);
237197
+ view.addRemoveBtn(setting, node);
237198
+ }
237199
+ tools.apply(setting.view.addHoverDom, [ setting.treeId, node ]);
237200
+ }
237201
+ },
237202
+ cancelCurEditNode: function(setting, forceName, isCancel) {
237203
+ var root = data.getRoot(setting), node = root.curEditNode;
237204
+ if (node) {
237205
+ var inputObj = root.curEditInput, newName = forceName ? forceName : isCancel ? data.nodeName(setting, node) : inputObj.val();
237206
+ if (tools.apply(setting.callback.beforeRename, [ setting.treeId, node, newName, isCancel ], true) === false) {
237207
+ return false;
237208
+ }
237209
+ data.nodeName(setting, node, newName);
237210
+ var aObj = $$(node, consts.id.A, setting);
237211
+ aObj.removeClass(consts.node.CURSELECTED_EDIT);
237212
+ inputObj.unbind();
237213
+ view.setNodeName(setting, node);
237214
+ node.editNameFlag = false;
237215
+ root.curEditNode = null;
237216
+ root.curEditInput = null;
237217
+ view.selectNode(setting, node, false);
237218
+ setting.treeObj.trigger(consts.event.RENAME, [ setting.treeId, node, isCancel ]);
237219
+ }
237220
+ root.noSelection = true;
237221
+ return true;
237222
+ },
237223
+ editNode: function(setting, node) {
237224
+ var root = data.getRoot(setting);
237225
+ view.editNodeBlur = false;
237226
+ if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
237227
+ setTimeout((function() {
237228
+ tools.inputFocus(root.curEditInput);
237229
+ }), 0);
237230
+ return;
237231
+ }
237232
+ node.editNameFlag = true;
237233
+ view.removeTreeDom(setting, node);
237234
+ view.cancelCurEditNode(setting);
237235
+ view.selectNode(setting, node, false);
237236
+ $$(node, consts.id.SPAN, setting).html("<input type=text class='rename' id='" + node.tId + consts.id.INPUT + "' treeNode" + consts.id.INPUT + " >");
237237
+ var inputObj = $$(node, consts.id.INPUT, setting);
237238
+ inputObj.attr("value", data.nodeName(setting, node));
237239
+ if (setting.edit.editNameSelectAll) {
237240
+ tools.inputSelect(inputObj);
237241
+ } else {
237242
+ tools.inputFocus(inputObj);
237243
+ }
237244
+ inputObj.bind("blur", (function(event) {
237245
+ if (!view.editNodeBlur) {
237246
+ view.cancelCurEditNode(setting);
237247
+ }
237248
+ })).bind("keydown", (function(event) {
237249
+ if (event.keyCode == "13") {
237250
+ view.editNodeBlur = true;
237251
+ view.cancelCurEditNode(setting);
237252
+ } else if (event.keyCode == "27") {
237253
+ view.cancelCurEditNode(setting, null, true);
237254
+ }
237255
+ })).bind("click", (function(event) {
237256
+ return false;
237257
+ })).bind("dblclick", (function(event) {
237258
+ return false;
237259
+ }));
237260
+ $$(node, consts.id.A, setting).addClass(consts.node.CURSELECTED_EDIT);
237261
+ root.curEditInput = inputObj;
237262
+ root.noSelection = false;
237263
+ root.curEditNode = node;
237264
+ },
237265
+ moveNode: function(setting, targetNode, node, moveType, animateFlag, isSilent) {
237266
+ var root = data.getRoot(setting);
237267
+ if (targetNode == node) return;
237268
+ if (setting.data.keep.leaf && targetNode && !data.nodeIsParent(setting, targetNode) && moveType == consts.move.TYPE_INNER) return;
237269
+ var oldParentNode = node.parentTId ? node.getParentNode() : root, targetNodeIsRoot = targetNode === null || targetNode == root;
237270
+ if (targetNodeIsRoot && targetNode === null) targetNode = root;
237271
+ if (targetNodeIsRoot) moveType = consts.move.TYPE_INNER;
237272
+ var targetParentNode = targetNode.parentTId ? targetNode.getParentNode() : root;
237273
+ if (moveType != consts.move.TYPE_PREV && moveType != consts.move.TYPE_NEXT) {
237274
+ moveType = consts.move.TYPE_INNER;
237275
+ }
237276
+ if (moveType == consts.move.TYPE_INNER) {
237277
+ if (targetNodeIsRoot) {
237278
+ node.parentTId = null;
237279
+ } else {
237280
+ if (!data.nodeIsParent(setting, targetNode)) {
237281
+ data.nodeIsParent(setting, targetNode, true);
237282
+ targetNode.open = !!targetNode.open;
237283
+ view.setNodeLineIcos(setting, targetNode);
237284
+ }
237285
+ node.parentTId = targetNode.tId;
237286
+ }
237287
+ }
237288
+ var targetObj, target_ulObj;
237289
+ if (targetNodeIsRoot) {
237290
+ targetObj = setting.treeObj;
237291
+ target_ulObj = targetObj;
237292
+ } else {
237293
+ if (!isSilent && moveType == consts.move.TYPE_INNER) {
237294
+ view.expandCollapseNode(setting, targetNode, true, false);
237295
+ } else if (!isSilent) {
237296
+ view.expandCollapseNode(setting, targetNode.getParentNode(), true, false);
237297
+ }
237298
+ targetObj = $$(targetNode, setting);
237299
+ target_ulObj = $$(targetNode, consts.id.UL, setting);
237300
+ if (!!targetObj.get(0) && !target_ulObj.get(0)) {
237301
+ var ulstr = [];
237302
+ view.makeUlHtml(setting, targetNode, ulstr, "");
237303
+ targetObj.append(ulstr.join(""));
237304
+ }
237305
+ target_ulObj = $$(targetNode, consts.id.UL, setting);
237306
+ }
237307
+ var nodeDom = $$(node, setting);
237308
+ if (!nodeDom.get(0)) {
237309
+ nodeDom = view.appendNodes(setting, node.level, [ node ], null, -1, false, true).join("");
237310
+ } else if (!targetObj.get(0)) {
237311
+ nodeDom.remove();
237312
+ }
237313
+ if (target_ulObj.get(0) && moveType == consts.move.TYPE_INNER) {
237314
+ target_ulObj.append(nodeDom);
237315
+ } else if (targetObj.get(0) && moveType == consts.move.TYPE_PREV) {
237316
+ targetObj.before(nodeDom);
237317
+ } else if (targetObj.get(0) && moveType == consts.move.TYPE_NEXT) {
237318
+ targetObj.after(nodeDom);
237319
+ }
237320
+ var i, l, tmpSrcIndex = -1, tmpTargetIndex = 0, oldNeighbor = null, newNeighbor = null, oldLevel = node.level;
237321
+ var oldChildren = data.nodeChildren(setting, oldParentNode);
237322
+ var targetParentChildren = data.nodeChildren(setting, targetParentNode);
237323
+ var targetChildren = data.nodeChildren(setting, targetNode);
237324
+ if (node.isFirstNode) {
237325
+ tmpSrcIndex = 0;
237326
+ if (oldChildren.length > 1) {
237327
+ oldNeighbor = oldChildren[1];
237328
+ oldNeighbor.isFirstNode = true;
237329
+ }
237330
+ } else if (node.isLastNode) {
237331
+ tmpSrcIndex = oldChildren.length - 1;
237332
+ oldNeighbor = oldChildren[tmpSrcIndex - 1];
237333
+ oldNeighbor.isLastNode = true;
237334
+ } else {
237335
+ for (i = 0, l = oldChildren.length; i < l; i++) {
237336
+ if (oldChildren[i].tId == node.tId) {
237337
+ tmpSrcIndex = i;
237338
+ break;
237339
+ }
237340
+ }
237341
+ }
237342
+ if (tmpSrcIndex >= 0) {
237343
+ oldChildren.splice(tmpSrcIndex, 1);
237344
+ }
237345
+ if (moveType != consts.move.TYPE_INNER) {
237346
+ for (i = 0, l = targetParentChildren.length; i < l; i++) {
237347
+ if (targetParentChildren[i].tId == targetNode.tId) tmpTargetIndex = i;
237348
+ }
237349
+ }
237350
+ if (moveType == consts.move.TYPE_INNER) {
237351
+ if (!targetChildren) {
237352
+ targetChildren = data.nodeChildren(setting, targetNode, []);
237353
+ }
237354
+ if (targetChildren.length > 0) {
237355
+ newNeighbor = targetChildren[targetChildren.length - 1];
237356
+ newNeighbor.isLastNode = false;
237357
+ }
237358
+ targetChildren.splice(targetChildren.length, 0, node);
237359
+ node.isLastNode = true;
237360
+ node.isFirstNode = targetChildren.length == 1;
237361
+ } else if (targetNode.isFirstNode && moveType == consts.move.TYPE_PREV) {
237362
+ targetParentChildren.splice(tmpTargetIndex, 0, node);
237363
+ newNeighbor = targetNode;
237364
+ newNeighbor.isFirstNode = false;
237365
+ node.parentTId = targetNode.parentTId;
237366
+ node.isFirstNode = true;
237367
+ node.isLastNode = false;
237368
+ } else if (targetNode.isLastNode && moveType == consts.move.TYPE_NEXT) {
237369
+ targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
237370
+ newNeighbor = targetNode;
237371
+ newNeighbor.isLastNode = false;
237372
+ node.parentTId = targetNode.parentTId;
237373
+ node.isFirstNode = false;
237374
+ node.isLastNode = true;
237375
+ } else {
237376
+ if (moveType == consts.move.TYPE_PREV) {
237377
+ targetParentChildren.splice(tmpTargetIndex, 0, node);
237378
+ } else {
237379
+ targetParentChildren.splice(tmpTargetIndex + 1, 0, node);
237380
+ }
237381
+ node.parentTId = targetNode.parentTId;
237382
+ node.isFirstNode = false;
237383
+ node.isLastNode = false;
237384
+ }
237385
+ data.fixPIdKeyValue(setting, node);
237386
+ data.setSonNodeLevel(setting, node.getParentNode(), node);
237387
+ view.setNodeLineIcos(setting, node);
237388
+ view.repairNodeLevelClass(setting, node, oldLevel);
237389
+ if (!setting.data.keep.parent && oldChildren.length < 1) {
237390
+ data.nodeIsParent(setting, oldParentNode, false);
237391
+ oldParentNode.open = false;
237392
+ var tmp_ulObj = $$(oldParentNode, consts.id.UL, setting), tmp_switchObj = $$(oldParentNode, consts.id.SWITCH, setting), tmp_icoObj = $$(oldParentNode, consts.id.ICON, setting);
237393
+ view.replaceSwitchClass(oldParentNode, tmp_switchObj, consts.folder.DOCU);
237394
+ view.replaceIcoClass(oldParentNode, tmp_icoObj, consts.folder.DOCU);
237395
+ tmp_ulObj.css("display", "none");
237396
+ } else if (oldNeighbor) {
237397
+ view.setNodeLineIcos(setting, oldNeighbor);
237398
+ }
237399
+ if (newNeighbor) {
237400
+ view.setNodeLineIcos(setting, newNeighbor);
237401
+ }
237402
+ if (!!setting.check && setting.check.enable && view.repairChkClass) {
237403
+ view.repairChkClass(setting, oldParentNode);
237404
+ view.repairParentChkClassWithSelf(setting, oldParentNode);
237405
+ if (oldParentNode != node.parent) view.repairParentChkClassWithSelf(setting, node);
237406
+ }
237407
+ if (!isSilent) {
237408
+ view.expandCollapseParentNode(setting, node.getParentNode(), true, animateFlag);
237409
+ }
237410
+ },
237411
+ removeEditBtn: function(setting, node) {
237412
+ $$(node, consts.id.EDIT, setting).unbind().remove();
237413
+ },
237414
+ removeRemoveBtn: function(setting, node) {
237415
+ $$(node, consts.id.REMOVE, setting).unbind().remove();
237416
+ },
237417
+ removeTreeDom: function(setting, node) {
237418
+ node.isHover = false;
237419
+ view.removeEditBtn(setting, node);
237420
+ view.removeRemoveBtn(setting, node);
237421
+ tools.apply(setting.view.removeHoverDom, [ setting.treeId, node ]);
237422
+ },
237423
+ repairNodeLevelClass: function(setting, node, oldLevel) {
237424
+ if (oldLevel === node.level) return;
237425
+ 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;
237426
+ liObj.removeClass(oldClass);
237427
+ liObj.addClass(newClass);
237428
+ aObj.removeClass(oldClass);
237429
+ aObj.addClass(newClass);
237430
+ ulObj.removeClass(oldClass);
237431
+ ulObj.addClass(newClass);
237432
+ },
237433
+ selectNodes: function(setting, nodes) {
237434
+ for (var i = 0, l = nodes.length; i < l; i++) {
237435
+ view.selectNode(setting, nodes[i], i > 0);
237436
+ }
237437
+ }
237438
+ }, _z = {
237439
+ tools: _tools,
237440
+ view: _view,
237441
+ event: _event,
237442
+ data: _data
237443
+ };
237444
+ $.extend(true, $.fn.zTree.consts, _consts);
237445
+ $.extend(true, $.fn.zTree._z, _z);
237446
+ var zt = $.fn.zTree, tools = zt._z.tools, consts = zt.consts, view = zt._z.view, data = zt._z.data, event = zt._z.event, $$ = tools.$;
237447
+ data.exSetting(_setting);
237448
+ data.addInitBind(_bindEvent);
237449
+ data.addInitUnBind(_unbindEvent);
237450
+ data.addInitCache(_initCache);
237451
+ data.addInitNode(_initNode);
237452
+ data.addInitProxy(_eventProxy);
237453
+ data.addInitRoot(_initRoot);
237454
+ data.addZTreeTools(_zTreeTools);
237455
+ var _cancelPreSelectedNode = view.cancelPreSelectedNode;
237456
+ view.cancelPreSelectedNode = function(setting, node) {
237457
+ var list = data.getRoot(setting).curSelectedList;
237458
+ for (var i = 0, j = list.length; i < j; i++) {
237459
+ if (!node || node === list[i]) {
237460
+ view.removeTreeDom(setting, list[i]);
237461
+ if (node) break;
237462
+ }
237463
+ }
237464
+ if (_cancelPreSelectedNode) _cancelPreSelectedNode.apply(view, arguments);
237465
+ };
237466
+ var _createNodes = view.createNodes;
237467
+ view.createNodes = function(setting, level, nodes, parentNode, index) {
237468
+ if (_createNodes) {
237469
+ _createNodes.apply(view, arguments);
237470
+ }
237471
+ if (!nodes) return;
237472
+ if (view.repairParentChkClassWithSelf) {
237473
+ view.repairParentChkClassWithSelf(setting, parentNode);
237474
+ }
237475
+ };
237476
+ var _makeNodeUrl = view.makeNodeUrl;
237477
+ view.makeNodeUrl = function(setting, node) {
237478
+ return setting.edit.enable ? null : _makeNodeUrl.apply(view, arguments);
237479
+ };
237480
+ var _removeNode = view.removeNode;
237481
+ view.removeNode = function(setting, node) {
237482
+ var root = data.getRoot(setting);
237483
+ if (root.curEditNode === node) root.curEditNode = null;
237484
+ if (_removeNode) {
237485
+ _removeNode.apply(view, arguments);
237486
+ }
237487
+ };
237488
+ var _selectNode = view.selectNode;
237489
+ view.selectNode = function(setting, node, addFlag) {
237490
+ var root = data.getRoot(setting);
237491
+ if (data.isSelectedNode(setting, node) && root.curEditNode == node && node.editNameFlag) {
237492
+ return false;
237493
+ }
237494
+ if (_selectNode) _selectNode.apply(view, arguments);
237495
+ view.addHoverDom(setting, node);
237496
+ return true;
237497
+ };
237498
+ var _uCanDo = tools.uCanDo;
237499
+ tools.uCanDo = function(setting, e) {
237500
+ var root = data.getRoot(setting);
237501
+ if (e && (tools.eqs(e.type, "mouseover") || tools.eqs(e.type, "mouseout") || tools.eqs(e.type, "mousedown") || tools.eqs(e.type, "mouseup"))) {
237502
+ return true;
237503
+ }
237504
+ if (root.curEditNode) {
237505
+ view.editNodeBlur = false;
237506
+ root.curEditInput.focus();
237507
+ }
237508
+ return !root.curEditNode && (_uCanDo ? _uCanDo.apply(view, arguments) : true);
237509
+ };
237510
+ })(jQuery);
237511
+
237512
+ (function($) {
237513
+ $.fn.zTreeKeyboardNavigationDestroy = function() {};
237514
+ $.fn.zTreeKeyboardNavigation = function(zTree, element, selectedNodes = null, treeicon) {
237515
+ if (typeof element === "string" || element instanceof String) {
237516
+ element = $(element);
237517
+ }
237518
+ var rootNodes = zTree.getNodes();
237519
+ if (!rootNodes) return;
237520
+ var focusSelectedNode = function() {
237521
+ if ((selectedNodes = zTree.getSelectedNodes()) && selectedNodes.length) {
237522
+ $("#" + selectedNodes[0].tId).focus();
237523
+ }
237524
+ };
237525
+ $.fn.zTreeKeyboardNavigationDestroy();
237526
+ $.fn.zTreeKeyboardNavigationDestroy = function() {
237527
+ $(element).off("keydown");
237528
+ };
237529
+ $.fn.changeTreeIcons = function() {
237530
+ let eleClose = $(".app-tree li span.button.switch");
237531
+ $(eleClose).map(((idx, ele) => {
237532
+ $(ele).addClass(treeicon);
237533
+ $(ele).on("click", (function(e) {
237534
+ setTimeout((() => {
237535
+ $(ele).addClass(treeicon);
237536
+ }), 0);
237537
+ }));
237538
+ }));
237539
+ };
237540
+ $(element).on("keydown", (function(e) {
237541
+ var selectedNodes = zTree.getSelectedNodes();
237542
+ var selectedNode = selectedNodes.length ? selectedNodes[0] : null;
237543
+ var processSpace = function() {
237544
+ if (selectedNode && selectedNode.isParent) {
237545
+ zTree.expandNode(selectedNode, selectedNode.open ? false : true, true, true);
237546
+ $.fn.changeTreeIcons();
237547
+ }
237548
+ };
237549
+ var processHome = function() {
237550
+ zTree.selectNode(rootNodes[0], false, true);
237551
+ };
237552
+ var processEnd = function() {
237553
+ var nodes = zTree.transformToArray(rootNodes);
237554
+ zTree.selectNode(nodes[nodes.length - 1]);
237555
+ };
237556
+ var processUp = function() {
237557
+ var priorNode;
237558
+ if (selectedNode) {
237559
+ priorNode = selectedNode.getPreNode();
237560
+ if (!priorNode) return;
237561
+ } else {
237562
+ processEnd();
237563
+ }
237564
+ if (!priorNode) return;
237565
+ zTree.selectNode(priorNode);
237566
+ };
237567
+ var processDown = function() {
237568
+ var nextNode;
237569
+ if (selectedNode) {
237570
+ nextNode = selectedNode.getNextNode();
237571
+ if (!nextNode) return;
237572
+ } else {
237573
+ processHome();
237574
+ }
237575
+ if (!nextNode) return;
237576
+ zTree.selectNode(nextNode);
237577
+ };
237578
+ var processOut = function() {
237579
+ if (!selectedNode) return;
237580
+ var parentNode = selectedNode.getParentNode();
237581
+ var priorNode = selectedNode.getPreNode();
237582
+ if (!parentNode && !priorNode) return;
237583
+ if (priorNode) {
237584
+ if (priorNode.isParent) {
237585
+ while (priorNode) {
237586
+ if (!priorNode.isParent || !priorNode.open || !priorNode.children) break;
237587
+ priorNode = priorNode.children[priorNode.children.length - 1];
237588
+ }
237589
+ zTree.selectNode(priorNode);
237590
+ return;
237591
+ } else {
237592
+ zTree.selectNode(priorNode);
237593
+ return;
237594
+ }
237595
+ }
237596
+ if (parentNode) {
237597
+ zTree.selectNode(parentNode, false, true);
237598
+ }
237599
+ };
237600
+ var processIn = function() {
237601
+ if (!selectedNode) return;
237602
+ if (selectedNode.isParent && selectedNode.open && selectedNode.children) {
237603
+ zTree.selectNode(selectedNode.children[0]);
237604
+ return;
237605
+ }
237606
+ var nextNode = selectedNode.getNextNode();
237607
+ if (nextNode) {
237608
+ zTree.selectNode(nextNode);
237609
+ } else {
237610
+ var node = selectedNode;
237611
+ while (node = node.getParentNode()) {
237612
+ var nextNode = node.getNextNode();
237613
+ if (nextNode) {
237614
+ zTree.selectNode(nextNode);
237615
+ break;
237616
+ }
237617
+ }
237618
+ }
237619
+ };
237620
+ var processLetter = function(keyCode) {
237621
+ if (!Array.from({
237622
+ length: 26
237623
+ }, ((v, i) => i + 65)).includes(keyCode & 95)) return false;
237624
+ var nodes = zTree.transformToArray(rootNodes);
237625
+ nodes = nodes.filter((node => "accesskey" in node && node.accesskey.length && (node.accesskey.charCodeAt(0) & 95) == keyCode));
237626
+ if (!nodes.length) return false;
237627
+ var selectedNodes = zTree.getSelectedNodes();
237628
+ if (!selectedNodes.length) return false;
237629
+ if (selectedNodes[0] == nodes[0]) return false;
237630
+ zTree.selectNode(nodes[0]);
237631
+ return true;
237632
+ };
237633
+ switch (e.keyCode) {
237634
+ case 32:
237635
+ processSpace();
237636
+ return;
237637
+
237638
+ case 36:
237639
+ processHome();
237640
+ break;
237641
+
237642
+ case 35:
237643
+ processEnd();
237644
+ break;
237645
+
237646
+ case 33:
237647
+ break;
237648
+
237649
+ case 34:
237650
+ break;
237651
+
237652
+ case 37:
237653
+ processOut();
237654
+ break;
237655
+
237656
+ case 38:
237657
+ processUp();
237658
+ break;
237659
+
237660
+ case 39:
237661
+ processIn();
237662
+ break;
237663
+
237664
+ case 40:
237665
+ processDown();
237666
+ break;
237667
+
237668
+ default:
237669
+ if (!processLetter(e.keyCode & 95)) return;
237670
+ break;
237671
+ }
237672
+ focusSelectedNode();
237673
+ }));
237674
+ if (selectedNodes && selectedNodes.length) {
237675
+ zTree.selectNode(selectedNodes[0]);
237676
+ focusSelectedNode();
237677
+ } else {
237678
+ $(element).trigger({
237679
+ type: "keydown",
237680
+ which: 36,
237681
+ keyCode: 36
237682
+ });
237683
+ }
237684
+ };
237685
+ })(jQuery);