5884 lines
216 KiB
Python
5884 lines
216 KiB
Python
/*
|
||
filename: angular.integralui.treeview.min.js
|
||
version : 3.3.445
|
||
Copyright <EFBFBD> 2014-2018 Lidor Systems. All rights reserved.
|
||
|
||
This file is part of the "IntegralUI" Library.
|
||
|
||
The contents of this file are subject to the IntegralUI Studio for Web License, and may not be used except in compliance with the License.
|
||
A copy of the License should have been installed in the product's root installation directory or it can be found at
|
||
http://www.lidorsystems.com/products/web/studio/license-agreement.aspx.
|
||
|
||
This SOFTWARE is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language
|
||
governing rights and limitations under the License. Any infringement will be prosecuted under applicable laws.
|
||
*/
|
||
angular
|
||
.module("integralui")
|
||
.factory("IntegralUITreeViewService", [
|
||
"$rootScope",
|
||
function(c) {
|
||
var q = null;
|
||
return {
|
||
addItem: function(e, l, n) {
|
||
c.$broadcast(e + "-add-item", l, n);
|
||
},
|
||
clearItems: function(e, l) {
|
||
c.$broadcast(e + "-clear-items", l);
|
||
},
|
||
insertItemAt: function(e, l, n, f) {
|
||
c.$broadcast(e + "-insert-item-at", l, n, f);
|
||
},
|
||
insertItemBefore: function(e, l, n) {
|
||
c.$broadcast(e + "-insert-item-before", l, n);
|
||
},
|
||
insertItemAfter: function(e, l, n) {
|
||
c.$broadcast(e + "-insert-item-after", l, n);
|
||
},
|
||
removeItem: function(e, l) {
|
||
c.$broadcast(e + "-remove-item", l);
|
||
},
|
||
removeItemAt: function(e, l, n) {
|
||
c.$broadcast(e + "-remove-item-at", l, n);
|
||
},
|
||
exportToJSON: function(e, l, n, f) {
|
||
c.$broadcast(e + "-export-json", l, n, f);
|
||
e = this.getTempData();
|
||
this.clearTempData();
|
||
return e ? e : "";
|
||
},
|
||
loadData: function(e, l, n, f, k) {
|
||
c.$broadcast(e + "-load-data", l, n, f, k);
|
||
l = this.getTempData();
|
||
this.clearTempData();
|
||
return l ? l : null;
|
||
},
|
||
openEditor: function(e, l) {
|
||
c.$broadcast(e + "-open-editor", l);
|
||
},
|
||
closeEditor: function(e, l) {
|
||
c.$broadcast(e + "-close-editor", l);
|
||
},
|
||
collapse: function(e, l) {
|
||
c.$broadcast(e + "-collapse", l);
|
||
},
|
||
expand: function(e, l) {
|
||
c.$broadcast(e + "-expand", l);
|
||
},
|
||
toggle: function(e, l) {
|
||
c.$broadcast(e + "-toggle", l);
|
||
},
|
||
findItemById: function(e, l) {
|
||
c.$broadcast(e + "-find-item-by-id", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
},
|
||
findItemByText: function(e, l) {
|
||
c.$broadcast(e + "-find-item-by-text", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
},
|
||
getItemParent: function(e, l) {
|
||
c.$broadcast(e + "-get-item-parent", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
},
|
||
getItemAt: function(e, l) {
|
||
c.$broadcast(e + "-get-item-at", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
},
|
||
filter: function(e, l) {
|
||
c.$broadcast(e + "-filter", l);
|
||
},
|
||
focus: function(e, l) {
|
||
c.$broadcast(e + "-focus", l);
|
||
},
|
||
clearTempData: function() {
|
||
q = null;
|
||
},
|
||
ensureVisible: function(e, l, n) {
|
||
c.$broadcast(e + "-ensure-visible", l, n);
|
||
},
|
||
getCheckList: function(e, l) {
|
||
c.$broadcast(e + "-get-check-list", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : [];
|
||
},
|
||
getItemLevel: function(e, l) {
|
||
c.$broadcast(e + "-get-item-level", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : 0;
|
||
},
|
||
getFlatList: function(e, l) {
|
||
c.$broadcast(e + "-get-flat-list", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : [];
|
||
},
|
||
getFullPath: function(e, l) {
|
||
c.$broadcast(e + "-get-full-path", l);
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : "";
|
||
},
|
||
getList: function(e, l, n) {
|
||
c.$broadcast(e + "-get-list", l, n);
|
||
e = this.getTempData();
|
||
this.clearTempData();
|
||
return e ? e : [];
|
||
},
|
||
getTempData: function() {
|
||
return q;
|
||
},
|
||
setTempData: function(c) {
|
||
q = c;
|
||
},
|
||
beginLoad: function(e, l, n) {
|
||
c.$broadcast(e + "-begin-load", l, n);
|
||
},
|
||
endLoad: function(e, l) {
|
||
c.$broadcast(e + "-end-load", l);
|
||
},
|
||
moveItem: function(e, l, n, f, k) {
|
||
c.$broadcast(e + "-move-item", l, n, f, k);
|
||
},
|
||
clearSelection: function(e) {
|
||
c.$broadcast(e + "-clear-selection");
|
||
},
|
||
selectedItem: function(e, l) {
|
||
if (l) c.$broadcast(e + "-set-selected-item", l);
|
||
else {
|
||
c.$broadcast(e + "-get-selected-item");
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
}
|
||
},
|
||
selectedItems: function(e, l) {
|
||
if (l) c.$broadcast(e + "-set-selected-items", l);
|
||
else {
|
||
c.$broadcast(e + "-get-selected-items");
|
||
var n = this.getTempData();
|
||
this.clearTempData();
|
||
return n ? n : null;
|
||
}
|
||
},
|
||
getScrollPos: function(e) {
|
||
c.$broadcast(e + "-get-scroll-pos");
|
||
e = this.getTempData();
|
||
this.clearTempData();
|
||
return e ? e : { x: 0, y: 0 };
|
||
},
|
||
setScrollPos: function(e, l) {
|
||
c.$broadcast(e + "-set-scroll-pos", l);
|
||
},
|
||
scrollTo: function(e, l, n) {
|
||
c.$broadcast(e + "-scroll-to", l, n);
|
||
},
|
||
sort: function(e, l, n) {
|
||
c.$broadcast(e + "-sort", l, n);
|
||
},
|
||
updateCheckValues: function(e, l) {
|
||
c.$broadcast(e + "-update-check", l);
|
||
},
|
||
refresh: function(e, l, n) {
|
||
c.$broadcast(e + "-refresh", l, n);
|
||
},
|
||
resumeLayout: function(e) {
|
||
c.$broadcast(e + "-resume-layout");
|
||
},
|
||
suspendLayout: function(e) {
|
||
c.$broadcast(e + "-suspend-layout");
|
||
},
|
||
updateLayout: function(e) {
|
||
c.$broadcast(e + "-update-layout");
|
||
},
|
||
updateView: function(e) {
|
||
c.$broadcast(e + "-update-view");
|
||
}
|
||
};
|
||
}
|
||
])
|
||
.controller("IntegralUITreeViewController", [
|
||
"$scope",
|
||
"$element",
|
||
"$timeout",
|
||
"$window",
|
||
"$q",
|
||
"IntegralUIInternalService",
|
||
"IntegralUIDataService",
|
||
"IntegralUITreeViewService",
|
||
"IntegralUIDragDrop",
|
||
"IntegralUIFilter",
|
||
function(c, q, e, l, n, f, k, m, U, a) {
|
||
var b = this;
|
||
b.hoverItem = null;
|
||
this.suppressProcess = !1;
|
||
b.defaultCheckBoxStyle = {
|
||
general: "iui-checkbox",
|
||
box: {
|
||
general: "iui-checkbox-box",
|
||
disabled: "iui-checkbox-box-disabled",
|
||
checked: "iui-checkbox-checked",
|
||
indeterminate: "iui-checkbox-indeterminate",
|
||
unchecked: "iui-checkbox-unchecked"
|
||
}
|
||
};
|
||
b.defaultStyle = {
|
||
general: "iui-treeview",
|
||
item: {
|
||
general: {
|
||
disabled: "iui-treeview-item-disabled",
|
||
focused: "iui-treeview-item-focused",
|
||
normal: "iui-treeview-item",
|
||
hovered: "iui-treeview-item-hovered",
|
||
selected: "iui-treeview-item-selected"
|
||
},
|
||
checkBox: {
|
||
general: "iui-checkbox",
|
||
box: {
|
||
general: "iui-checkbox-box",
|
||
disabled: "iui-checkbox-box-disabled",
|
||
checked: "iui-checkbox-checked",
|
||
indeterminate: "iui-checkbox-indeterminate",
|
||
unchecked: "iui-checkbox-unchecked"
|
||
}
|
||
},
|
||
expandBox: {
|
||
general: "iui-treeview-expand-box",
|
||
animated: "iui-treeview-expand-box-load",
|
||
expanded: "iui-treeview-expand-box-open",
|
||
collapsed: "iui-treeview-expand-box-close"
|
||
},
|
||
content: {
|
||
disabled: "iui-treeview-item-content-disabled",
|
||
focused: "iui-treeview-item-content-focused",
|
||
normal: "iui-treeview-item-content",
|
||
hovered: "iui-treeview-item-content-hovered",
|
||
selected: "iui-treeview-item-content-selected"
|
||
},
|
||
fixed: {
|
||
disabled: "iui-treeview-item-fixed-disabled",
|
||
normal: "iui-treeview-item-fixed",
|
||
hovered: "iui-treeview-item-fixed-hovered"
|
||
}
|
||
}
|
||
};
|
||
b.defaultCheckBoxSettings = {
|
||
autoCheck: !1,
|
||
style: b.defaultCheckBoxStyle,
|
||
threeState: !1
|
||
};
|
||
this.updateOptions = function(d) {
|
||
d
|
||
? ((b.options = {
|
||
allowAnimation: f.isFieldAvailable(d.allowAnimation, !0),
|
||
allowDrag: f.isFieldAvailable(d.allowDrag, !1),
|
||
allowDrop: f.isFieldAvailable(d.allowDrop, !0),
|
||
allowFocus: f.isFieldAvailable(d.allowFocus, !0),
|
||
animationSpeed: 200,
|
||
autoCheck: f.isFieldAvailable(d.autoCheck, !1),
|
||
autoExpand: f.isFieldAvailable(d.autoExpand, !0),
|
||
autoSize: f.isFieldAvailable(d.autoSize, !1),
|
||
autoUpdate: f.isFieldAvailable(d.autoUpdate, !0),
|
||
checkBoxSettings: b.defaultCheckBoxSettings,
|
||
controlStyle: b.defaultStyle,
|
||
editorSettings: { activate: "click" },
|
||
enabled: f.isFieldAvailable(d.enabled, !0),
|
||
hoverSelection: f.isFieldAvailable(d.hoverSelection, !1),
|
||
indent: f.isFieldAvailable(d.indent, 15),
|
||
itemIcon: f.isFieldAvailable(d.itemIcon, ""),
|
||
itemSpacing: f.isFieldAvailable(d.itemSpacing, 1),
|
||
labelEdit: f.isFieldAvailable(d.labelEdit, !1),
|
||
loadItems: [],
|
||
maxItems: f.isFieldAvailable(d.maxItems, 0),
|
||
mouseWheelSpeed: f.isFieldAvailable(d.mouseWheelSpeed, "normal"),
|
||
pathSeparator: f.isFieldAvailable(d.pathSeparator, "\\"),
|
||
rtl: f.isFieldAvailable(d.rtl, !1),
|
||
selectedIndex: -1,
|
||
selectedItem: f.isFieldAvailable(
|
||
d.selectedItem,
|
||
b.options.selectedItem ? b.options.selectedItem : null
|
||
),
|
||
selectedItems: [],
|
||
selectionMode: f.isFieldAvailable(d.selectionMode, "one"),
|
||
showCheckBoxes: f.isFieldAvailable(d.showCheckBoxes, !1),
|
||
showExpandBoxes: f.isFieldAvailable(d.showExpandBoxes, !0),
|
||
showIcons: f.isFieldAvailable(d.showIcons, !0),
|
||
showLines: f.isFieldAvailable(d.showLines, !1),
|
||
showStatusIcons: f.isFieldAvailable(d.showStatusIcons, !1),
|
||
sorting: f.isFieldAvailable(d.sorting, "none")
|
||
}),
|
||
b.updateDataFields(d.dataFields),
|
||
b.updateControlStyle(d.controlStyle),
|
||
b.updateCheckBoxSettings(d.checkBoxSettings),
|
||
b.updateTemplateSettings(d.templateSettings))
|
||
: ((b.options = {
|
||
allowAnimation: !0,
|
||
allowDrag: !1,
|
||
allowDrop: !0,
|
||
allowFocus: !0,
|
||
animationSpeed: 200,
|
||
autoCheck: !1,
|
||
autoExpand: !0,
|
||
autoSize: !1,
|
||
autoUpdate: !0,
|
||
checkBoxSettings: b.defaultCheckBoxSettings,
|
||
controlStyle: b.defaultStyle,
|
||
editorSettings: { activate: "click" },
|
||
enabled: !0,
|
||
hoverSelection: !1,
|
||
indent: 15,
|
||
itemIcon: "",
|
||
itemSpacing: 1,
|
||
labelEdit: !1,
|
||
loadItems: [],
|
||
maxItems: 0,
|
||
mouseWheelSpeed: "normal",
|
||
pathSeparator: "\\",
|
||
rtl: !1,
|
||
selectedIndex: -1,
|
||
selectedItem: null,
|
||
selectedItems: [],
|
||
selectionMode: "one",
|
||
showCheckBoxes: !1,
|
||
showExpandBoxes: !0,
|
||
showIcons: !0,
|
||
showLines: !1,
|
||
showStatusIcons: !1,
|
||
sorting: "none",
|
||
templateSettings: { url: null }
|
||
}),
|
||
b.updateDataFields());
|
||
};
|
||
b.options = {};
|
||
this.updateDataFields = function(d) {
|
||
b.options.dataFields = d
|
||
? {
|
||
allowDrag: d.allowDrag ? d.allowDrag : "allowDrag",
|
||
allowDrop: d.allowDrop ? d.allowDrop : "allowDrop",
|
||
allowEdit: d.allowEdit ? d.allowEdit : "allowEdit",
|
||
allowFocus: d.allowFocus ? d.allowFocus : "allowFocus",
|
||
autoCheck: d.autoCheck ? d.autoCheck : "autoCheck",
|
||
checkBoxSettings: d.checkBoxSettings
|
||
? d.checkBoxSettings
|
||
: "checkBoxSettings",
|
||
checked: d.checked ? d.checked : "checked",
|
||
checkState: d.checkState ? d.checkState : "checkState",
|
||
content: d.content ? d.content : "content",
|
||
contextMenu: d.contextMenu ? d.contextMenu : "contextMenu",
|
||
enabled: d.enabled ? d.enabled : "enabled",
|
||
expanded: d.expanded ? d.expanded : "expanded",
|
||
fixed: d.fixed ? d.fixed : "fixed",
|
||
fixChildren: d.fixChildren ? d.fixChildren : "fixChildren",
|
||
hasChildren: d.hasChildren ? d.hasChildren : "hasChildren",
|
||
icon: d.icon ? d.icon : "icon",
|
||
id: d.id ? d.id : "id",
|
||
items: d.items ? d.items : "items",
|
||
pid: d.pid ? d.pid : "pid",
|
||
selected: d.selected ? d.selected : "selected",
|
||
showCheckBox: d.showCheckBox ? d.showCheckBox : "showCheckBox",
|
||
statusIcon: d.statusIcon ? d.statusIcon : "statusIcon",
|
||
style: d.style ? d.style : "style",
|
||
templateObj: d.templateObj ? d.templateObj : "templateObj",
|
||
text: d.text ? d.text : "text",
|
||
tooltip: d.tooltip ? d.tooltip : "tooltip",
|
||
value: d.value ? d.value : "value",
|
||
visible: d.visible ? d.visible : "visible"
|
||
}
|
||
: {
|
||
allowDrag: "allowDrag",
|
||
allowDrop: "allowDrop",
|
||
allowEdit: "allowEdit",
|
||
allowFocus: "allowFocus",
|
||
autoCheck: "autoCheck",
|
||
checkBoxSettings: "checkBoxSettings",
|
||
checked: "checked",
|
||
checkState: "checkState",
|
||
content: "content",
|
||
contextMenu: "contextMenu",
|
||
enabled: "enabled",
|
||
expanded: "expanded",
|
||
fixed: "fixed",
|
||
fixChildren: "fixChildren",
|
||
hasChildren: "hasChildren",
|
||
icon: "icon",
|
||
id: "id",
|
||
items: "items",
|
||
pid: "pid",
|
||
selected: "selected",
|
||
showCheckBox: "showCheckBox",
|
||
statusIcon: "statusIcon",
|
||
style: "style",
|
||
templateObj: "templateObj",
|
||
text: "text",
|
||
tooltip: "tooltip",
|
||
value: "value",
|
||
visible: "visible"
|
||
};
|
||
b.dataObj &&
|
||
b.dataObj.updateDataFields(b.getDataFields(b.options.dataFields));
|
||
};
|
||
this.updateTemplateSettings = function(d) {
|
||
b.options.templateSettings = d
|
||
? {
|
||
display: f.isFieldAvailable(d.display, "block"),
|
||
url: f.isFieldAvailable(d.url, null)
|
||
}
|
||
: { display: "block", url: null };
|
||
};
|
||
b.updateOptions();
|
||
c.$on(c.name + "-add-item", function(d, a, c) {
|
||
b.dataObj.insertAt(a, -1, c, b.itemIsAdded);
|
||
});
|
||
c.$on(c.name + "-clear-items", function(d, a) {
|
||
b.dataObj.clear(a, b.listIsCleared);
|
||
});
|
||
c.$on(c.name + "-insert-item-at", function(d, a, c, r) {
|
||
b.dataObj.insertAt(a, c, r, b.itemIsAdded);
|
||
});
|
||
c.$on(c.name + "-insert-item-after", function(d, a, c) {
|
||
b.dataObj.insertByRef(a, c, !0, b.itemIsAdded);
|
||
});
|
||
c.$on(c.name + "-insert-item-before", function(d, a, c) {
|
||
b.dataObj.insertByRef(a, c, !1, b.itemIsAdded);
|
||
});
|
||
c.$on(c.name + "-remove-item", function(d, a) {
|
||
b.dataObj.removeAt(a, -1, null, b.itemIsRemoved);
|
||
});
|
||
c.$on(c.name + "-remove-item-at", function(d, a, c) {
|
||
b.dataObj.removeAt(null, a, c, b.itemIsRemoved);
|
||
});
|
||
this.listIsCleared = function(d) {
|
||
d ||
|
||
(b.clearPrevSelection(),
|
||
(b.options.selectedItem = null),
|
||
b.setScrollPos({ x: 0, y: 0 }));
|
||
b.updateCurrentLayout();
|
||
};
|
||
this.itemIsAdded = function() {
|
||
b.updateCurrentLayout();
|
||
};
|
||
this.itemIsRemoved = function(d) {
|
||
d &&
|
||
((d[b.options.dataFields.selected] = !1),
|
||
d == b.options.selectedItem && (b.options.selectedItem = null));
|
||
b.updateCurrentLayout();
|
||
};
|
||
this.objIsRemoved = function() {
|
||
b.updateCurrentLayout();
|
||
};
|
||
this.getCheckValue = function(d) {
|
||
return "checked" == d[b.options.dataFields.checkState]
|
||
? "checked"
|
||
: 1 == b.options.checkBoxSettings.threeState &&
|
||
"indeterminate" == d[b.options.dataFields.checkState]
|
||
? "indeterminate"
|
||
: "unchecked";
|
||
};
|
||
this.changeCheckValue = function(d) {
|
||
if (
|
||
1 == b.options.autoCheck ||
|
||
1 == b.options.checkBoxSettings.autoCheck
|
||
) {
|
||
var a = b.getCheckValue(d);
|
||
if (
|
||
!1 !==
|
||
(1 == b.options.checkBoxSettings.threeState
|
||
? b.callCheckValueChanging(d, a)
|
||
: b.callCheckValueChanging(d, "checked" == a ? !0 : !1))
|
||
) {
|
||
if (1 == b.options.checkBoxSettings.threeState)
|
||
switch (a) {
|
||
case "checked":
|
||
a = "unchecked";
|
||
break;
|
||
case "indeterminate":
|
||
a = "checked";
|
||
break;
|
||
case "unchecked":
|
||
a = "indeterminate";
|
||
}
|
||
else
|
||
a =
|
||
"unchecked" == a || "indeterminate" == a
|
||
? "checked"
|
||
: "unchecked";
|
||
d[b.options.dataFields.checkState] = a;
|
||
d[b.options.dataFields.checked] = "checked" == a ? !0 : !1;
|
||
c.$apply();
|
||
}
|
||
}
|
||
};
|
||
this.callCheckValueChanging = function(d, a) {
|
||
var h = !0;
|
||
b.allowEvents &&
|
||
(h =
|
||
1 == b.options.checkBoxSettings.threeState
|
||
? angular.isDefined(c.events) && c.events.itemCheckstateChanging
|
||
? c.events.itemCheckstateChanging({ item: d, value: a })
|
||
: c.itemCheckstateChanging({ e: { item: d, value: a } })
|
||
: angular.isDefined(c.events) && c.events.itemCheckedChanging
|
||
? c.events.itemCheckedChanging({ item: d, value: a })
|
||
: c.itemCheckedChanging({ e: { item: d, value: a } }));
|
||
return h;
|
||
};
|
||
this.callCheckValueChanged = function(d, a) {
|
||
b.allowEvents &&
|
||
(retValue =
|
||
1 == b.options.checkBoxSettings.threeState
|
||
? angular.isDefined(c.events) && c.events.itemCheckstateChanged
|
||
? c.events.itemCheckstateChanged({ item: d, value: a })
|
||
: c.itemCheckstateChanged({ e: { item: d, value: a } })
|
||
: angular.isDefined(c.events) && c.events.itemCheckedChanged
|
||
? c.events.itemCheckedChanged({ item: d, value: a })
|
||
: c.itemCheckedChanged({ e: { item: d, value: a } }));
|
||
};
|
||
var w = [],
|
||
H = !1;
|
||
this.fillCheckList = function(d) {
|
||
if (
|
||
b.allowEvents &&
|
||
d &&
|
||
1 == b.options.checkBoxSettings.threeState &&
|
||
!H
|
||
) {
|
||
H = !0;
|
||
w.length = 0;
|
||
w.push({ item: d, value: d[b.options.dataFields.checkState] });
|
||
b.updateListChildItemCheckValue(d);
|
||
b.updateListParentItemCheckValue(d);
|
||
var a = 0;
|
||
for (a = 0; a < w.length; a++)
|
||
w[a].item[b.options.dataFields.checkState] = w[a].value;
|
||
var c = e(function() {
|
||
a == w.length && (H = !1);
|
||
e.cancel(c);
|
||
}, 1);
|
||
}
|
||
};
|
||
this.getItemCheckValue = function(d) {
|
||
for (var a = "unchecked", c = !1, r = 0; r < w.length; r++)
|
||
if (w[r].item == d) {
|
||
c = !0;
|
||
a = w[r].value;
|
||
break;
|
||
}
|
||
c || (a = d[b.options.dataFields.checkState]);
|
||
return a;
|
||
};
|
||
this.updateListParentItemCheckValue = function(d) {
|
||
for (d = b.getParent(d); d; ) {
|
||
var a = d[b.options.dataFields.items];
|
||
if (a) {
|
||
for (var c = 0, r = 0, e = 0; e < a.length; e++) {
|
||
var f = b.getItemCheckValue(a[e]);
|
||
"checked" == f ? c++ : "indeterminate" == f && r++;
|
||
}
|
||
e = { item: d };
|
||
e.value =
|
||
c == a.length
|
||
? "checked"
|
||
: 0 < c || 0 < r
|
||
? "indeterminate"
|
||
: "unchecked";
|
||
w.push(e);
|
||
}
|
||
d = b.getParent(d);
|
||
}
|
||
};
|
||
this.updateListChildItemCheckValue = function(d) {
|
||
if (d) {
|
||
var a = d[b.options.dataFields.items];
|
||
if (a)
|
||
for (var c = 0; c < a.length; c++) {
|
||
var r = { item: a[c] };
|
||
"checked" == b.getItemCheckValue(d)
|
||
? (r.value = "checked")
|
||
: (r.value = "unchecked");
|
||
w.push(r);
|
||
b.updateListChildItemCheckValue(a[c]);
|
||
}
|
||
}
|
||
};
|
||
this.updateParentItemCheckValue = function(d) {
|
||
for (d = b.getParent(d); d; ) {
|
||
var a = d[b.options.dataFields.items];
|
||
if (a) {
|
||
for (var c = 0, r = 0, e = 0; e < a.length; e++)
|
||
"checked" == a[e][b.options.dataFields.checkState]
|
||
? c++
|
||
: "indeterminate" == a[e][b.options.dataFields.checkState] &&
|
||
r++;
|
||
d[b.options.dataFields.checkState] =
|
||
c == a.length
|
||
? "checked"
|
||
: 0 < c || 0 < r
|
||
? "indeterminate"
|
||
: "unchecked";
|
||
}
|
||
d = b.getParent(d);
|
||
}
|
||
};
|
||
this.updateItemCheckValue = function(d, a) {
|
||
if ("checked" == a || "unchecked" == a)
|
||
d[b.options.dataFields.checkState] = a;
|
||
var h = d[b.options.dataFields.items];
|
||
if (h && 0 < h.length)
|
||
for (var c = 0; c < h.length; c++)
|
||
b.updateItemCheckValue(h[c], d[b.options.dataFields.checkState]);
|
||
void 0 != d[b.options.dataFields.checkState] &&
|
||
(h = b.getParent(d)) &&
|
||
h[b.options.dataFields.checkState] !=
|
||
d[b.options.dataFields.checkState] &&
|
||
b.updateParentItemCheckValue(d);
|
||
};
|
||
this.updateCheckValues = function(d) {
|
||
if (1 == b.options.checkBoxSettings.threeState) {
|
||
d = b.dataObj.getList(d);
|
||
for (var a = 0; a < d.length; a++) b.updateItemCheckValue(d[a]);
|
||
}
|
||
};
|
||
c.$on(c.name + "-update-check", function(d, a) {
|
||
b.updateCheckValues(a);
|
||
});
|
||
c.$on(c.name + "-get-check-list", function(d, h) {
|
||
b.updateCheckValues();
|
||
void 0 == h &&
|
||
(h = 1 == b.options.checkBoxSettings.threeState ? "checked" : !0);
|
||
var c =
|
||
1 == b.options.checkBoxSettings.threeState
|
||
? b.options.dataFields.checkState
|
||
: b.options.dataFields.checked,
|
||
r = { operation: "=", value: h };
|
||
c = a.filter(b.getFullList(), c, r);
|
||
m.setTempData(c);
|
||
});
|
||
this.updateCheckBoxSettings = function(d) {
|
||
b.options.checkBoxSettings = d
|
||
? {
|
||
autoCheck: f.isFieldAvailable(d.autoCheck, !1),
|
||
style: Ka(d.style),
|
||
threeState: f.isFieldAvailable(d.threeState, !1)
|
||
}
|
||
: { autoCheck: !1, style: b.defaultCheckBoxStyle, threeState: !1 };
|
||
};
|
||
var C = function(d) {
|
||
return d ? a.createTree(d.conditions, d.formula) : null;
|
||
},
|
||
I = function(d) {
|
||
if (0 == d[b.options.dataFields.visible]) return !1;
|
||
var h = !0;
|
||
if (d && b.filterParams)
|
||
if (
|
||
((h = (h = d[b.options.dataFields.value])
|
||
? h
|
||
: d[b.options.dataFields.text]),
|
||
b.filterParams.callback)
|
||
)
|
||
h = b.filterParams.callback(h, d);
|
||
else if (
|
||
((h = a.match(
|
||
h,
|
||
b.filterParams.conditions,
|
||
b.filterParams.formula,
|
||
C(b.filterParams),
|
||
b.filterParams.caseSensitive
|
||
)),
|
||
!h &&
|
||
b.filterParams.allowParent &&
|
||
((h = !1), (d = d[b.options.dataFields.items])))
|
||
)
|
||
for (var c = 0; c < d.length && !(h = I(d[c])); c++);
|
||
return h;
|
||
},
|
||
y = 0;
|
||
b.currentList = [];
|
||
b.indentList = [];
|
||
b.parentList = [];
|
||
b.longestItem = null;
|
||
b.isThereChildItems = !1;
|
||
b.currentTopList = [];
|
||
b.currentBottomList = [];
|
||
this.updateLongestItem = function() {
|
||
b.longestItem = null;
|
||
for (var d = (y = 0); d < b.currentList.length; d++) {
|
||
var a = b.currentList[d];
|
||
if (a[b.options.dataFields.text]) {
|
||
var c = a[b.options.dataFields.text].length;
|
||
0 < b.options.indent && (c += b.indentList[d] / b.options.indent);
|
||
y < c && ((y = c), (b.longestItem = a));
|
||
}
|
||
}
|
||
};
|
||
var A = function(d, a, c, r, e) {
|
||
d.type = "item";
|
||
d[b.options.dataFields.id] ||
|
||
(d[b.options.dataFields.id] = f.getUniqueId());
|
||
c && (d[b.options.dataFields.pid] = c);
|
||
if ((c = I(d)))
|
||
if (r) b.fullList.push(d);
|
||
else {
|
||
r = a;
|
||
0 != b.options.showStatusIcons && (r += 15);
|
||
switch (d[b.options.dataFields.fixed]) {
|
||
case "top":
|
||
b.currentTopList.push(d);
|
||
break;
|
||
case "bottom":
|
||
b.currentBottomList.push(d);
|
||
break;
|
||
default:
|
||
b.currentList.push(d),
|
||
b.indentList.push(r),
|
||
b.parentList.push({ parent: e });
|
||
}
|
||
d[b.options.dataFields.text] &&
|
||
((e = d[b.options.dataFields.text].length),
|
||
0 < b.options.indent && (e += a / b.options.indent),
|
||
0 != b.options.showStatusIcons && (e += 15),
|
||
y < e && ((y = e), (b.longestItem = d)));
|
||
}
|
||
return c;
|
||
};
|
||
this.isThereVisibleChildren = function(d) {
|
||
var a = !1;
|
||
if (d && (d = d[b.options.dataFields.items]))
|
||
for (var c = 0; c < d.length; c++)
|
||
if (I(d[c]) && !b.isItemFixed(d[c])) {
|
||
a = !0;
|
||
break;
|
||
}
|
||
return a;
|
||
};
|
||
this.isItemFixed = function(d) {
|
||
return "top" == d[b.options.dataFields.fixed] ||
|
||
"bottom" == d[b.options.dataFields.fixed]
|
||
? !0
|
||
: !1;
|
||
};
|
||
this.isThereChildItems = !1;
|
||
var O = function(d, a, c, r, e) {
|
||
if (!d[b.options.dataFields.items]) return (c = A(d, a, c, r, e));
|
||
if ((c = A(d, a, c, r, e)) && !b.isItemFixed(d)) {
|
||
e = 0;
|
||
var h;
|
||
if (
|
||
r ||
|
||
b.isItemExpanded(d) ||
|
||
(b.isItemFixed(d) && d[b.options.dataFields.fixChildren])
|
||
) {
|
||
var u = d[b.options.dataFields.items];
|
||
if (u) {
|
||
b.applySorting(u);
|
||
for (var f = 0; f < u.length; f++)
|
||
(h = O(
|
||
u[f],
|
||
a + b.options.indent,
|
||
d[b.options.dataFields.id],
|
||
r,
|
||
d
|
||
)) && e++;
|
||
}
|
||
}
|
||
r ||
|
||
b.isThereChildItems ||
|
||
!(
|
||
0 < e ||
|
||
(!b.isItemExpanded(d) &&
|
||
d[b.options.dataFields.items] &&
|
||
0 < d[b.options.dataFields.items].length &&
|
||
b.isThereVisibleChildren(d))
|
||
) ||
|
||
(b.isThereChildItems = !0);
|
||
}
|
||
return c;
|
||
};
|
||
b.fullList = [];
|
||
this.getFullList = function(d) {
|
||
b.fullList.length = 0;
|
||
d = b.dataObj.getList(d);
|
||
for (var a = 0; a < d.length; a++) O(d[a], 0, null, !0, null);
|
||
return b.fullList;
|
||
};
|
||
this.getCurrentList = function() {
|
||
return b.currentList;
|
||
};
|
||
this.updateCurrentList = function() {
|
||
b.currentList.length = 0;
|
||
b.indentList.length = 0;
|
||
b.parentList.length = 0;
|
||
b.longestItem = null;
|
||
b.currentTopList.length = 0;
|
||
b.currentBottomList.length = 0;
|
||
b.isThereChildItems = !1;
|
||
y = 0;
|
||
var d = b.dataObj.getList();
|
||
if (d) {
|
||
b.applySorting(d);
|
||
for (var a = 0; a < d.length; a++) O(d[a], 0, null, !1);
|
||
}
|
||
};
|
||
this.dataEvents = {
|
||
clear: function(d) {
|
||
return angular.isDefined(c.events) && c.events.clear
|
||
? c.events.clear({ parent: d.e.parent })
|
||
: c.clear(d);
|
||
},
|
||
objAdded: function(d) {
|
||
return angular.isDefined(c.events) && c.events.itemAdded
|
||
? c.events.itemAdded({ item: d.e.item })
|
||
: c.itemAdded(d);
|
||
},
|
||
objAdding: function(d) {
|
||
return angular.isDefined(c.events) && c.events.itemAdding
|
||
? c.events.itemAdding({ item: d.e.item })
|
||
: c.itemAdding(d);
|
||
},
|
||
objRemoved: function(d) {
|
||
return angular.isDefined(c.events) && c.events.itemRemoved
|
||
? c.events.itemRemoved({ item: d.e.item })
|
||
: c.itemRemoved(d);
|
||
},
|
||
objRemoving: function(d) {
|
||
return angular.isDefined(c.events) && c.events.itemRemoving
|
||
? c.events.itemRemoving({ item: d.e.item })
|
||
: c.itemRemoving(d);
|
||
}
|
||
};
|
||
this.getDataFields = function(d) {
|
||
return {
|
||
content: d.content ? d.content : "content",
|
||
icon: d.icon ? d.icon : "icon",
|
||
id: d.id ? d.id : "id",
|
||
pid: d.pid ? d.pid : "pid",
|
||
objects: d.items ? d.items : "items",
|
||
statusIcon: d.statusIcon ? d.statusIcon : "statusIcon",
|
||
text: d.text ? d.text : "text"
|
||
};
|
||
};
|
||
b.dataObj = new k({
|
||
objects: c.items,
|
||
events: b.dataEvents,
|
||
fields: b.getDataFields(b.options.dataFields)
|
||
});
|
||
c.$on(c.name + "-load-data", function(d, a, c, r, e) {
|
||
m.setTempData(b.loadData(a, c, r, e));
|
||
});
|
||
c.$on(c.name + "-export-json", function(d, a, c, r) {
|
||
m.setTempData(b.exportToJSON(a, c, r));
|
||
});
|
||
this.exportToJSON = function(d, a, c) {
|
||
c = c ? c : null;
|
||
var h = !1 !== a ? b.getFullList() : b.dataObj.getList();
|
||
d = d
|
||
? d
|
||
: [
|
||
b.options.dataFields.allowDrag,
|
||
b.options.dataFields.allowDrop,
|
||
b.options.dataFields.allowEdit,
|
||
b.options.dataFields.allowFocus,
|
||
b.options.dataFields.autoCheck,
|
||
b.options.dataFields.checkBoxSettings,
|
||
b.options.dataFields.checked,
|
||
b.options.dataFields.checkState,
|
||
b.options.dataFields.content,
|
||
b.options.dataFields.contextMenu,
|
||
b.options.dataFields.enabled,
|
||
b.options.dataFields.expanded,
|
||
b.options.dataFields.fixed,
|
||
b.options.dataFields.fixChildren,
|
||
b.options.dataFields.hasChildren,
|
||
b.options.dataFields.icon,
|
||
b.options.dataFields.id,
|
||
b.options.dataFields.pid,
|
||
b.options.dataFields.selected,
|
||
b.options.dataFields.showCheckBox,
|
||
b.options.dataFields.statusIcon,
|
||
b.options.dataFields.style,
|
||
b.options.dataFields.templateObj,
|
||
b.options.dataFields.text,
|
||
b.options.dataFields.tooltip,
|
||
b.options.dataFields.value,
|
||
b.options.dataFields.visible
|
||
];
|
||
!1 === a && d.push(b.options.dataFields.items);
|
||
return JSON.stringify(h, d, c);
|
||
};
|
||
this.loadData = function(d, a, u, r) {
|
||
var h = n.defer();
|
||
b.suspendLayout();
|
||
b.allowEvents = !1;
|
||
b.updateDataFields(u);
|
||
var f = [],
|
||
l = b.options.dataFields;
|
||
b.dataObj.clear(a, b.listIsCleared);
|
||
if (d)
|
||
if (r) {
|
||
var m = [];
|
||
d.forEach(function(d, a) {
|
||
d[l.items] = [];
|
||
var b = d[l.pid];
|
||
m[b]
|
||
? (m[b][l.items] || (m[b][l.items] = []),
|
||
(m[d[l.id]] = d),
|
||
m[b][l.items].push(d))
|
||
: ((m[d[l.id]] = d), f.push(d));
|
||
});
|
||
m.length = 0;
|
||
} else f = d;
|
||
if (a)
|
||
for (
|
||
a[b.options.dataFields.items] = f, d = 0;
|
||
d < a[b.options.dataFields.items].length;
|
||
d++
|
||
)
|
||
a[b.options.dataFields.items][d][b.options.dataFields.pid] =
|
||
a[b.options.dataFields.id];
|
||
else if (angular.isDefined(c.items))
|
||
for (d = c.items.length = 0; d < f.length; d++) c.items.push(f[d]);
|
||
b.dataObj = new k({
|
||
objects: c.items,
|
||
events: b.dataEvents,
|
||
fields: b.getDataFields(b.options.dataFields)
|
||
});
|
||
var q = e(function() {
|
||
b.getTemplateUrl();
|
||
b.resumeLayout();
|
||
b.allowEvents = !0;
|
||
var d = e(function() {
|
||
h.resolve();
|
||
e.cancel(d);
|
||
}, 125);
|
||
e.cancel(q);
|
||
}, 100);
|
||
return h.promise;
|
||
};
|
||
this.updateData = function() {
|
||
b.options.dataFields.dataSource &&
|
||
(b.loadData(b.options.dataFields.dataSource),
|
||
(b.dataObj = new k({
|
||
objects: c.items,
|
||
events: b.dataEvents,
|
||
fields: b.getDataFields(b.options.dataFields)
|
||
})));
|
||
};
|
||
var Y = !1;
|
||
this.dragDropStatus = function(d) {
|
||
if (void 0 != d) Y = d;
|
||
else return Y;
|
||
};
|
||
this.getDnDSource = function(d) {
|
||
return {
|
||
text: d.dataTransfer
|
||
? d.dataTransfer.getData("text")
|
||
: d.originalEvent.dataTransfer
|
||
? d.originalEvent.dataTransfer.getData("text")
|
||
: ""
|
||
};
|
||
};
|
||
this.getTouchData = function(d) {
|
||
return d.changedTouches
|
||
? d.changedTouches
|
||
: d.originalEvent
|
||
? d.originalEvent.changedTouches
|
||
: null;
|
||
};
|
||
var ea = angular.element(
|
||
'<div class="iui-drop-marker" data-element="dropmark"></div>'
|
||
);
|
||
this.getDropMarkLine = function() {
|
||
return dropMarkLine;
|
||
};
|
||
b.getMousePos = function(d) {
|
||
return {
|
||
x: d.pageX ? d.pageX : d.originalEvent ? d.originalEvent.pageX : 0,
|
||
y: d.pageY ? d.pageY : d.originalEvent ? d.originalEvent.pageY : 0
|
||
};
|
||
};
|
||
this.getCtrlName = function() {
|
||
return angular.isDefined(c.name) ? c.name : "";
|
||
};
|
||
q.bind("dragenter", function(d) {
|
||
d.preventDefault();
|
||
if (b.options.enabled) {
|
||
var a = U.getData();
|
||
a.source || (a.source = b.getDnDSource(d));
|
||
d = {
|
||
event: d,
|
||
sourceTree: a.sourceCtrl ? a.sourceCtrl.getCtrlName() : "",
|
||
dragItem: a.source,
|
||
targetTree: b.getCtrlName(),
|
||
targetItem: a.target,
|
||
mousePos: b.getMousePos(d)
|
||
};
|
||
b.callDragEnter(d);
|
||
}
|
||
});
|
||
this.isItemDragOverHandled = !1;
|
||
q.bind("dragover", function(d) {
|
||
if (!b.options.autoSize || !b.isItemDragOverHandled) {
|
||
d.preventDefault();
|
||
var a = !0;
|
||
d.dataTransfer
|
||
? (a = "none" === d.dataTransfer.effectAllowed ? !1 : !0)
|
||
: d.originalEvent &&
|
||
d.originalEvent.dataTransfer &&
|
||
(a =
|
||
"none" === d.originalEvent.dataTransfer.effectAllowed
|
||
? !1
|
||
: !0);
|
||
if (b.options.enabled && a)
|
||
if (
|
||
(d.dataTransfer
|
||
? (d.dataTransfer.dropEffect = b.options.allowDrop
|
||
? "move"
|
||
: "none")
|
||
: d.originalEvent &&
|
||
d.originalEvent.dataTransfer &&
|
||
(d.originalEvent.dataTransfer.dropEffect = b.options.allowDrop
|
||
? "move"
|
||
: "none"),
|
||
(a = U.getData()),
|
||
a.source || (a.source = b.getDnDSource(d)),
|
||
U.setData({
|
||
source: a.source,
|
||
sourceCtrl: a.sourceCtrl,
|
||
target: null,
|
||
dropPos: -1
|
||
}),
|
||
(a = {
|
||
event: d,
|
||
sourceTree: a.sourceCtrl ? a.sourceCtrl.getCtrlName() : "",
|
||
dragItem: a.source,
|
||
targetTree: b.getCtrlName(),
|
||
targetItem: null,
|
||
isDropAllowed: b.options.allowDrop,
|
||
dropPos: -1,
|
||
mousePos: b.getMousePos(d)
|
||
}),
|
||
0 == b.callDragOver(a))
|
||
)
|
||
d.dataTransfer
|
||
? (d.dataTransfer.dropEffect = "none")
|
||
: d.originalEvent &&
|
||
d.originalEvent.dataTransfer &&
|
||
(d.originalEvent.dataTransfer.dropEffect = "none"),
|
||
b.dropMark();
|
||
else {
|
||
a = b.getMousePos(d);
|
||
d = a.y + 16;
|
||
a = a.x + 20;
|
||
var u = b.getDropMarkWindow();
|
||
u.empty();
|
||
u.append(
|
||
"<span class='iui-drop-marker-move-end'></span><span class='iui-drop-marker-title'>" +
|
||
(c.name ? c.name : "TreeView") +
|
||
"</span>"
|
||
);
|
||
b.updateDropMarkElem(b.getDropMarkWindow(), { top: d, left: a });
|
||
b.dropMark(!0);
|
||
}
|
||
}
|
||
});
|
||
q.bind("drop", function(d) {
|
||
d.preventDefault();
|
||
b.dropMark();
|
||
var a = !0;
|
||
d.dataTransfer
|
||
? (a = "none" === d.dataTransfer.effectAllowed ? !1 : !0)
|
||
: d.originalEvent &&
|
||
d.originalEvent.dataTransfer &&
|
||
(a =
|
||
"none" === d.originalEvent.dataTransfer.effectAllowed ? !1 : !0);
|
||
if (
|
||
b.options.enabled &&
|
||
a &&
|
||
((a = U.getData()),
|
||
a.source || (a.source = b.getDnDSource(d)),
|
||
a.source)
|
||
) {
|
||
var u = {
|
||
event: d,
|
||
sourceTree: a.sourceCtrl ? a.sourceCtrl.getCtrlName() : "",
|
||
dragItem: a.source,
|
||
targetTree: b.getCtrlName(),
|
||
targetItem: null,
|
||
isDropAllowed: b.options.allowDrop,
|
||
dropPos: -1,
|
||
mousePos: b.getMousePos(d)
|
||
};
|
||
!1 !== b.callDragDrop(u) && (b.drop(a), c.$$phase || c.$apply());
|
||
}
|
||
U.clearData();
|
||
d.stopPropagation();
|
||
});
|
||
q.bind("dragleave", function(d) {
|
||
d.preventDefault();
|
||
if (b.options.enabled) {
|
||
b.dropMark();
|
||
var a = U.getData();
|
||
a.source || (a.source = b.getDnDSource(d));
|
||
d = {
|
||
event: d,
|
||
sourceTree: a.sourceCtrl ? a.sourceCtrl.getCtrlName() : "",
|
||
dragItem: a.source,
|
||
targetTree: b.getCtrlName(),
|
||
targetItem: a.target,
|
||
mousePos: b.getMousePos(d)
|
||
};
|
||
b.callDragLeave(d);
|
||
b.cancelScrollTimer();
|
||
}
|
||
});
|
||
q.bind("dragend", function(d) {
|
||
d.preventDefault();
|
||
b.options.enabled &&
|
||
(b.dropMark(),
|
||
U.getData().source || U.clearData(),
|
||
b.dragDropStatus(!1));
|
||
});
|
||
q.bind("mouseleave", function(d) {
|
||
d.preventDefault();
|
||
b.dropMark();
|
||
b.hoverItem = null;
|
||
});
|
||
this.containsMousePos = function(d, a) {
|
||
return U.hitTest(d, a, {
|
||
left: 0,
|
||
top: 0,
|
||
right: q[0].clientWidth,
|
||
bottom: q[0].clientHeight
|
||
});
|
||
};
|
||
this.isPopupActive = function() {
|
||
return !1;
|
||
};
|
||
var fa = function(d, a) {
|
||
var c = b.options.dataFields;
|
||
d[c.items] || (d[c.items] = []);
|
||
d[c.items].length = 0;
|
||
if (d[a.rows] && 0 < d[a.rows].length)
|
||
for (var h = 0; h < d[a.rows].length; h++)
|
||
d[c.items].push(fa(d[a.rows][h], a));
|
||
return d;
|
||
},
|
||
B = function(d, a) {
|
||
var c = !1;
|
||
a.sourceCtrl &&
|
||
(c = a.sourceCollection.removeAt(
|
||
d,
|
||
-1,
|
||
null,
|
||
a.sourceCtrl.objIsRemoved
|
||
));
|
||
c &&
|
||
("row" == d.type && (d = fa(d, a.sourceCtrl.options.rowFields)),
|
||
0 === a.dropPos
|
||
? b.dataObj.insertAt(d, -1, a.target, b.itemIsAdded)
|
||
: 1 === a.dropPos || 2 === a.dropPos
|
||
? 1 === a.dropPos
|
||
? b.dataObj.insertByRef(d, a.target, !1, b.itemIsAdded)
|
||
: b.dataObj.insertByRef(d, a.target, !0, b.itemIsAdded)
|
||
: b.dataObj.insertAt(d, -1, null, b.itemIsAdded));
|
||
};
|
||
this.setDropSelection = function(a, c) {
|
||
var d = a;
|
||
!d && 0 <= c && c < b.currentList.length && (d = b.currentList[c]);
|
||
b.clearPrevSelection(d);
|
||
b.itemSelection(null, d);
|
||
};
|
||
this.drop = function(a) {
|
||
if (a && a.sourceCtrl) {
|
||
a.sourceCtrl.suppressProcess = !0;
|
||
a.sourceCtrl.suspendLayout();
|
||
b.suspendLayout();
|
||
var d = a.source;
|
||
if (Array.isArray(a.source)) {
|
||
for (var u = [], r = 0; r < a.source.length; r++) {
|
||
for (
|
||
var f = !1, k = a.sourceCollection.getParent(a.source[r]);
|
||
k;
|
||
|
||
) {
|
||
if (a.sourceCtrl.isObjInSelList(k)) {
|
||
f = !0;
|
||
break;
|
||
}
|
||
k = a.sourceCollection.getParent(k);
|
||
}
|
||
f || u.push(a.source[r]);
|
||
}
|
||
if (0 < u.length)
|
||
if (
|
||
((d = u[u.length - 1]),
|
||
(r = a.sourceCtrl.getObjCurrentIndex(u[0])),
|
||
(f = a.sourceCtrl.getObjCurrentIndex(d)),
|
||
r <= f)
|
||
)
|
||
for (r = 0; r < u.length; r++) B(u[r], a);
|
||
else for (r = u.length - 1; 0 <= r; r--) B(u[r], a);
|
||
} else B(a.source, a);
|
||
a.sourceCtrl !== b
|
||
? ((b.allowUpdate = !0),
|
||
(a.sourceCtrl.allowUpdate = !0),
|
||
b.updateCurrentLayout(),
|
||
a.sourceCtrl.updateCurrentLayout())
|
||
: ((b.allowUpdate = !0), b.updateCurrentLayout());
|
||
b.updateAutoLayout();
|
||
a.sourceCtrl.multiSelection(!1);
|
||
var l = e(function() {
|
||
if (d) {
|
||
a.sourceCtrl.clearPrevSelection(d);
|
||
b.itemSelection(null, d);
|
||
var h = b.getElemFromItem(d);
|
||
h && (h = b.getElement(h)) && h[0].focus();
|
||
c.$apply();
|
||
e.cancel(l);
|
||
}
|
||
}, 1);
|
||
a.sourceCtrl.suppressProcess = !1;
|
||
}
|
||
};
|
||
this.isDragAllowed = function(a) {
|
||
return b.options.allowDrag
|
||
? a &&
|
||
(a[b.options.dataFields.allowDrag] ||
|
||
void 0 === a[b.options.dataFields.allowDrag])
|
||
? !0
|
||
: !1
|
||
: !1;
|
||
};
|
||
this.isChildOf = function(a, c) {
|
||
var d = !1;
|
||
if (a && c) {
|
||
var h = c[b.options.dataFields.items];
|
||
if (h && 0 < h.length)
|
||
for (var e = 0; e < h.length; e++) {
|
||
if (
|
||
f.isEqual(
|
||
a[b.options.dataFields.id],
|
||
h[e][b.options.dataFields.id]
|
||
)
|
||
) {
|
||
d = !0;
|
||
break;
|
||
} else d = b.isChildOf(a, h[e]);
|
||
if (d) break;
|
||
}
|
||
}
|
||
return d;
|
||
};
|
||
this.isParentOf = function(a, c) {
|
||
var d = b.dataObj.getParent(c);
|
||
return a &&
|
||
c &&
|
||
d &&
|
||
f.isEqual(a[b.options.dataFields.id], d[b.options.dataFields.id])
|
||
? !0
|
||
: !1;
|
||
};
|
||
this.isDropAllowed = function(a, c, u) {
|
||
var d = b.options.allowDrop;
|
||
if (
|
||
d &&
|
||
a &&
|
||
c &&
|
||
(d =
|
||
b.isItemFixed(c) ||
|
||
(!c[b.options.dataFields.allowDrop] &&
|
||
void 0 !== c[b.options.dataFields.allowDrop])
|
||
? !1
|
||
: !0)
|
||
)
|
||
if (Array.isArray(a))
|
||
for (var h = 0; h < a.length; h++) {
|
||
if (
|
||
f.isEqual(
|
||
a[h][b.options.dataFields.id],
|
||
c[b.options.dataFields.id]
|
||
) ||
|
||
(0 === u && b.isParentOf(c, a[h])) ||
|
||
b.isChildOf(c, a[h])
|
||
) {
|
||
d = !1;
|
||
break;
|
||
}
|
||
if (!d) break;
|
||
}
|
||
else if (
|
||
f.isEqual(a[b.options.dataFields.id], c[b.options.dataFields.id]) ||
|
||
(0 === u && b.isParentOf(c, a)) ||
|
||
b.isChildOf(c, a)
|
||
)
|
||
d = !1;
|
||
return d;
|
||
};
|
||
this.getDropMarkWindow = function() {
|
||
for (
|
||
var a = ea, b = angular.element(document.body).children(), c = 0;
|
||
c < b.length;
|
||
c++
|
||
) {
|
||
var e = angular.element(b[c]);
|
||
if (
|
||
e[0].attributes &&
|
||
e[0].attributes["data-element"] &&
|
||
"dropmark" === e[0].attributes["data-element"].value
|
||
) {
|
||
a = e;
|
||
break;
|
||
}
|
||
}
|
||
return a;
|
||
};
|
||
this.dropMark = function(a, c) {
|
||
c || (c = b.getDropMarkWindow());
|
||
if (c) {
|
||
var d = "none";
|
||
this.options.allowDrop && (d = a ? "block" : "none");
|
||
angular.element(c).css("display", d);
|
||
}
|
||
};
|
||
this.updateDropMarkElem = function(a, b) {
|
||
a &&
|
||
b &&
|
||
(a.css("top", b.top + "px"),
|
||
a.css("left", b.left + "px"),
|
||
a.css("width", b.width + "px"));
|
||
};
|
||
var $a = !1,
|
||
Z = angular.element('<input type="text" style="position:absolute" />');
|
||
this.labelEditStatus = function(a) {
|
||
if (void 0 != a) $a = a;
|
||
else return $a;
|
||
};
|
||
this.getEditBox = function() {
|
||
return Z;
|
||
};
|
||
this.updateEditBox = function(a) {
|
||
Z &&
|
||
a &&
|
||
(Z.css("top", a.top + "px"),
|
||
Z.css("left", a.left + "px"),
|
||
Z.css("width", a.width + "px"),
|
||
Z.css("height", a.height + "px"));
|
||
};
|
||
c.$on(c.name + "-open-editor", function(a, c) {
|
||
b.openEditor(c);
|
||
});
|
||
c.$on(c.name + "-close-editor", function(a, c) {
|
||
b.closeEditor(c);
|
||
});
|
||
this.updateEditorSettings = function(a) {
|
||
b.options.editorSettings = a
|
||
? { activate: f.isFieldAvailable(a.activate, "click") }
|
||
: { activate: "click" };
|
||
};
|
||
this.allowEvents = !0;
|
||
this.callAfterCollapse = function(a) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.afterCollapse &&
|
||
c.events.afterCollapse({ item: a });
|
||
c.afterCollapse({ e: { item: a } });
|
||
};
|
||
this.callAfterExpand = function(a) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.afterExpand &&
|
||
c.events.afterExpand({ item: a });
|
||
c.afterExpand({ e: { item: a } });
|
||
};
|
||
this.callAfterEdit = function(a) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.afterEdit &&
|
||
c.events.afterEdit({ item: a });
|
||
c.afterEdit({ e: { item: a } });
|
||
};
|
||
this.callAfterLabelEdit = function(a) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.afterLabelEdit &&
|
||
c.events.afterLabelEdit({ item: a });
|
||
c.afterLabelEdit({ e: { item: a } });
|
||
};
|
||
this.callAfterSelect = function(a) {
|
||
angular.isDefined(c.events) && c.events.afterSelect
|
||
? c.events.afterSelect({ item: a })
|
||
: c.afterSelect({ e: { item: a } });
|
||
angular.isDefined(c.events) && c.events.selectionChanged
|
||
? c.events.selectionChanged({ item: a })
|
||
: c.selectionChanged({ e: { item: a } });
|
||
};
|
||
this.callBeforeCollapse = function(a) {
|
||
return angular.isDefined(c.events) && c.events.beforeCollapse
|
||
? c.events.beforeCollapse({ item: a })
|
||
: c.beforeCollapse({ e: { item: a } });
|
||
};
|
||
this.callBeforeExpand = function(a) {
|
||
return angular.isDefined(c.events) && c.events.beforeExpand
|
||
? c.events.beforeExpand({ item: a })
|
||
: c.beforeExpand({ e: { item: a } });
|
||
};
|
||
this.callBeforeEdit = function(a) {
|
||
return angular.isDefined(c.events) && c.events.beforeEdit
|
||
? c.events.beforeEdit({ item: a })
|
||
: c.beforeEdit({ e: { item: a } });
|
||
};
|
||
this.callBeforeLabelEdit = function(a) {
|
||
return angular.isDefined(c.events) && c.events.beforeLabelEdit
|
||
? c.events.beforeLabelEdit({ item: a })
|
||
: c.beforeLabelEdit({ e: { item: a } });
|
||
};
|
||
this.callChange = function() {
|
||
angular.isDefined(c.events) && c.events.change
|
||
? c.events.change()
|
||
: c.change();
|
||
};
|
||
this.callDragEnter = function(a) {
|
||
angular.isDefined(c.events) && c.events.dragEnter
|
||
? c.events.dragEnter({
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
mousePos: a.mousePos
|
||
})
|
||
: c.dragEnter({
|
||
e: {
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
mousePos: a.mousePos
|
||
}
|
||
});
|
||
};
|
||
this.callDragOver = function(a) {
|
||
return angular.isDefined(c.events) && c.events.dragOver
|
||
? c.events.dragOver({
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
isDropAllowed: a.isDropAllowed,
|
||
dropPos: a.dropPos,
|
||
mousePos: a.mousePos
|
||
})
|
||
: c.dragOver({
|
||
e: {
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
isDropAllowed: a.isDropAllowed,
|
||
dropPos: a.dropPos,
|
||
mousePos: a.mousePos
|
||
}
|
||
});
|
||
};
|
||
this.callDragDrop = function(a) {
|
||
return angular.isDefined(c.events) && c.events.dragDrop
|
||
? c.events.dragDrop({
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
isDropAllowed: a.isDropAllowed,
|
||
dropPos: a.dropPos,
|
||
mousePos: a.mousePos
|
||
})
|
||
: c.dragDrop({
|
||
e: {
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
isDropAllowed: a.isDropAllowed,
|
||
dropPos: a.dropPos,
|
||
mousePos: a.mousePos
|
||
}
|
||
});
|
||
};
|
||
this.callDragLeave = function(a) {
|
||
angular.isDefined(c.events) && c.events.dragLeave
|
||
? c.events.dragLeave({
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
mousePos: a.mousePos
|
||
})
|
||
: c.dragLeave({
|
||
e: {
|
||
event: a.event,
|
||
sourceTree: a.sourceTree,
|
||
dragItem: a.dragItem,
|
||
targetTree: a.targetTree,
|
||
targetItem: a.targetItem,
|
||
mousePos: a.mousePos
|
||
}
|
||
});
|
||
};
|
||
this.callEnabledChanged = function(a) {
|
||
angular.isDefined(c.events) && c.events.enabledChanged
|
||
? c.events.enabledChanged({ enabled: a })
|
||
: c.enabledChanged({ e: { enabled: a } });
|
||
};
|
||
this.callItemClick = function(a, b, u) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.itemClick &&
|
||
c.events.itemClick({ event: a, item: b, mousePos: u });
|
||
c.itemClick({ e: { event: a, item: b, mousePos: u } });
|
||
};
|
||
this.callItemDblClick = function(a, b) {
|
||
return angular.isDefined(c.events) && c.events.itemDblClick
|
||
? c.events.itemDblClick({ item: a, mousePos: b })
|
||
: c.itemDblclick({ e: { item: a, mousePos: b } });
|
||
};
|
||
this.callItemHover = function(a) {
|
||
angular.isDefined(c.events) && c.events.itemHover
|
||
? c.events.itemHover({ item: a })
|
||
: c.itemHover({ e: { item: a } });
|
||
};
|
||
this.callItemRightClick = function(a, b) {
|
||
angular.isDefined(c.events) &&
|
||
c.events.itemRightClick &&
|
||
c.events.itemRightClick({ item: a, mousePos: b });
|
||
c.itemRightclick({ e: { item: a, mousePos: b } });
|
||
};
|
||
this.callKeyDown = function(a, b) {
|
||
return angular.isDefined(c.events) && c.events.keyDown
|
||
? c.events.keyDown({ event: a, item: b })
|
||
: c.keyDown({ e: { event: a, item: b } });
|
||
};
|
||
this.callKeyPress = function(a, b) {
|
||
angular.isDefined(c.events) && c.events.keyPress
|
||
? c.events.keyPress({ event: a, item: b })
|
||
: c.keyPress({ e: { event: a, item: b } });
|
||
};
|
||
this.callKeyUp = function(a, b) {
|
||
angular.isDefined(c.events) && c.events.keyUp
|
||
? c.events.keyUp({ event: a, item: b })
|
||
: c.keyUp({ e: { event: a, item: b } });
|
||
};
|
||
this.callScrollPosChanged = function() {
|
||
angular.isDefined(c.events) && c.events.scrollPosChanged
|
||
? c.events.scrollPosChanged({ scrollPos: b.scrollPos })
|
||
: c.scrollposChanged({ e: { scrollPos: b.scrollPos } });
|
||
};
|
||
q.bind("click", function(a) {
|
||
b.options.enabled &&
|
||
1 === a.which &&
|
||
b.callItemClick(a, null, b.getMousePos(a));
|
||
});
|
||
q.bind("dblclick", function(a) {
|
||
a.preventDefault();
|
||
b.options.enabled &&
|
||
1 === a.which &&
|
||
b.callItemDblClick(null, b.getMousePos(a));
|
||
a.stopPropagation();
|
||
});
|
||
q.bind("mousedown", function(a) {
|
||
b.options.enabled &&
|
||
3 === a.which &&
|
||
b.callItemRightClick(null, b.getMousePos(a));
|
||
a.stopPropagation();
|
||
});
|
||
this.expandList = [];
|
||
this.expandIndentList = [];
|
||
this.expandParentList = [];
|
||
var za = function(a, c, u, e) {
|
||
a.type = "item";
|
||
a[b.options.dataFields.id] ||
|
||
(a[b.options.dataFields.id] = f.getUniqueId());
|
||
u && (a[b.options.dataFields.pid] = u);
|
||
u = I(a);
|
||
b.isItemExpanded(a) &&
|
||
a[b.options.dataFields.items] &&
|
||
0 < a[b.options.dataFields.items].length &&
|
||
(u = u && b.isThereVisibleChildren(a));
|
||
u &&
|
||
(0 != b.options.showStatusIcons && (c += 15),
|
||
b.expandList.push(a),
|
||
b.expandIndentList.push(c),
|
||
b.expandParentList.push({ parent: e }));
|
||
return u;
|
||
},
|
||
La = function(a, c, u, e) {
|
||
if (!a[b.options.dataFields.items])
|
||
return (u = za(a, c + b.options.indent, u, e));
|
||
if ((u = za(a, c + b.options.indent, u, e))) {
|
||
e = 0;
|
||
var d;
|
||
if (b.isItemExpanded(a)) {
|
||
var h = a[b.options.dataFields.items];
|
||
if (h) {
|
||
b.applySorting(h);
|
||
for (var r = 0; r < h.length; r++)
|
||
(d = La(
|
||
h[r],
|
||
c + b.options.indent,
|
||
a[b.options.dataFields.id],
|
||
a
|
||
)) && e++;
|
||
}
|
||
}
|
||
!b.isThereChildItems &&
|
||
(0 < e ||
|
||
(!b.isItemExpanded(a) &&
|
||
a[b.options.dataFields.items] &&
|
||
0 < a[b.options.dataFields.items].length &&
|
||
b.isThereVisibleChildren(a))) &&
|
||
(b.isThereChildItems = !0);
|
||
}
|
||
return u;
|
||
};
|
||
this.expand = function(a) {
|
||
var d = b.getItemFromChildElem(document.activeElement);
|
||
b.expandList.length = [];
|
||
b.expandIndentList.length = [];
|
||
b.expandParentList.length = [];
|
||
if (!b.isItemExpanded(a)) {
|
||
var c = b.getItemCurrentIndex(a),
|
||
r = b.getList(a);
|
||
if (r) {
|
||
b.applySorting(r);
|
||
for (var f = 0; f < r.length; f++)
|
||
b.isItemFixed(r[f]) || La(r[f], b.indentList[c], null, a);
|
||
}
|
||
if (0 < b.expandList.length) {
|
||
b.allowEvents = !1;
|
||
c++;
|
||
Array.prototype.splice.apply(
|
||
b.currentList,
|
||
[c, 0].concat(b.expandList)
|
||
);
|
||
Array.prototype.splice.apply(
|
||
b.indentList,
|
||
[c, 0].concat(b.expandIndentList)
|
||
);
|
||
Array.prototype.splice.apply(
|
||
b.parentList,
|
||
[c, 0].concat(b.expandParentList)
|
||
);
|
||
b.options.autoSize
|
||
? b.updateAutoLayout()
|
||
: b.getItemScope()
|
||
? b.updateView()
|
||
: b.updateLayout();
|
||
var k = e(function() {
|
||
b.updateViewSize();
|
||
b.updateViewSize();
|
||
b.updateScrollView();
|
||
d && b.updateFocus(d);
|
||
b.allowEvents = !0;
|
||
e.cancel(k);
|
||
}, 1);
|
||
}
|
||
}
|
||
};
|
||
this.collapse = function(a) {
|
||
var d = b.getItemFromChildElem(document.activeElement);
|
||
b.expandList.length = [];
|
||
b.expandIndentList.length = [];
|
||
if (b.isItemExpanded(a)) {
|
||
var c = null,
|
||
r = !1,
|
||
f = a,
|
||
k = -1,
|
||
l = b.getItemCurrentIndex(a);
|
||
for (a = b.getParent(a); a && !r; ) {
|
||
c = b.getList(a);
|
||
for (k = c.indexOf(f) + 1; !r && k < c.length; )
|
||
(f = c[k]), 0 < b.getItemCurrentIndex(f) && (r = !0), k++;
|
||
r || (f = a);
|
||
a = b.getParent(a);
|
||
}
|
||
if (!r && f)
|
||
for (c = b.getList(), k = c.indexOf(f) + 1; k < c.length; )
|
||
if (((f = c[k]), 0 < b.getItemCurrentIndex(f))) {
|
||
r = !0;
|
||
break;
|
||
} else k++;
|
||
l++;
|
||
c = b.currentList.length - l;
|
||
r && (c = b.getItemCurrentIndex(f) - l);
|
||
if (0 < c) {
|
||
b.currentList.splice(l, c);
|
||
b.indentList.splice(l, c);
|
||
b.parentList.splice(l, c);
|
||
b.options.autoSize
|
||
? b.updateAutoLayout()
|
||
: b.getItemScope()
|
||
? b.updateView()
|
||
: b.updateLayout();
|
||
var m = e(function() {
|
||
b.updateViewSize();
|
||
b.updateViewSize();
|
||
b.updateScrollView();
|
||
d && b.updateFocus(d);
|
||
b.allowEvents = !0;
|
||
e.cancel(m);
|
||
}, 1);
|
||
}
|
||
}
|
||
};
|
||
this.toggle = function(a, c) {
|
||
if (a) {
|
||
if (
|
||
(a[b.options.dataFields.hasChildren] ||
|
||
(a[b.options.dataFields.items] &&
|
||
0 !== a[b.options.dataFields.items].length)) &&
|
||
!(
|
||
(c && !1 !== a[b.options.dataFields.expanded]) ||
|
||
(!1 === c && !1 === a[b.options.dataFields.expanded])
|
||
)
|
||
) {
|
||
var d =
|
||
void 0 !== c
|
||
? c
|
||
: !1 !== a[b.options.dataFields.expanded]
|
||
? !0
|
||
: !1;
|
||
!1 !==
|
||
(void 0 !== c
|
||
? c
|
||
? b.callBeforeExpand(a)
|
||
: b.callBeforeCollapse(a)
|
||
: d
|
||
? b.callBeforeCollapse(a)
|
||
: b.callBeforeExpand(a)) &&
|
||
((d = void 0 != c ? c : !d),
|
||
d != a[b.options.dataFields.expanded] &&
|
||
(0 != d ? b.expand(a) : b.collapse(a),
|
||
(a[b.options.dataFields.expanded] = d)),
|
||
b.isItemExpanded(a)
|
||
? b.callAfterExpand(a)
|
||
: b.callAfterCollapse(a));
|
||
}
|
||
} else {
|
||
d = b.getFullList();
|
||
for (var h = 0; h < d.length; h++)
|
||
d[h][b.options.dataFields.expanded] = c;
|
||
b.updateCurrentLayout();
|
||
}
|
||
};
|
||
c.$on(c.name + "-collapse", function(a, c) {
|
||
b.toggle(c, !1);
|
||
});
|
||
c.$on(c.name + "-expand", function(a, c) {
|
||
b.toggle(c, !0);
|
||
});
|
||
c.$on(c.name + "-toggle", function(a, c) {
|
||
b.toggle(c);
|
||
});
|
||
this.filterParams = null;
|
||
c.$on(c.name + "-filter", function(a, c) {
|
||
b.filter(c);
|
||
});
|
||
this.filter = function(a) {
|
||
b.filterParams = a;
|
||
b.updateCurrentLayout();
|
||
b.callChange();
|
||
};
|
||
this.callGotFocus = function(a, b, e, f) {
|
||
angular.isDefined(c.events) && c.events.gotFocus
|
||
? c.events.gotFocus({
|
||
event: a,
|
||
item: b,
|
||
edit: void 0 != e ? !0 : !1,
|
||
editValue: f
|
||
})
|
||
: c.gotFocus({
|
||
e: {
|
||
event: a,
|
||
item: b,
|
||
edit: void 0 != e ? !0 : !1,
|
||
editValue: f
|
||
}
|
||
});
|
||
};
|
||
this.callLostFocus = function(a, b, e, f) {
|
||
angular.isDefined(c.events) && c.events.lostFocus
|
||
? c.events.lostFocus({
|
||
event: a,
|
||
item: b,
|
||
edit: void 0 != e ? !0 : !1,
|
||
editValue: f
|
||
})
|
||
: c.lostFocus({
|
||
e: {
|
||
event: a,
|
||
item: b,
|
||
edit: void 0 != e ? !0 : !1,
|
||
editValue: f
|
||
}
|
||
});
|
||
};
|
||
this.getTabIndex = function() {
|
||
return q[0].attributes && q[0].attributes.tabindex
|
||
? q[0].attributes.tabindex.value
|
||
: "";
|
||
};
|
||
this.updateFocus = function(a) {
|
||
if (1 == b.options.allowFocus)
|
||
var d = e(function() {
|
||
if (a && !b.isItemFixed(a)) {
|
||
var c = b.getElemFromItem(a);
|
||
c && (c = b.getElement(c)) && c[0].focus();
|
||
} else q[0].focus();
|
||
e.cancel(d);
|
||
}, 5);
|
||
};
|
||
c.$on(c.name + "-focus", function(a, c) {
|
||
b.updateFocus(c);
|
||
});
|
||
var qa = !1;
|
||
this.isItemExpanded = function(a) {
|
||
return a
|
||
? a[b.options.dataFields.expanded] ||
|
||
void 0 === a[b.options.dataFields.expanded]
|
||
? !0
|
||
: !1
|
||
: !0;
|
||
};
|
||
this.getElement = function(a, b) {
|
||
var d = null;
|
||
b || (b = "content");
|
||
if (a)
|
||
for (var c = a.children(), h = 0; h < c.length; h++) {
|
||
var e = angular.element(c.eq(h));
|
||
if (
|
||
e[0].attributes &&
|
||
e[0].attributes["data-element"] &&
|
||
e[0].attributes["data-element"].value === b
|
||
) {
|
||
d = e;
|
||
break;
|
||
}
|
||
}
|
||
return d;
|
||
};
|
||
this.getIndent = function(a) {
|
||
var d = 0;
|
||
if (a && 0 < b.options.indent)
|
||
for (parent = b.dataObj.getParent(a); parent; )
|
||
(d += b.options.indent), (parent = b.dataObj.getParent(parent));
|
||
return d;
|
||
};
|
||
this.getItemCurrentIndex = function(a) {
|
||
if (a) {
|
||
switch (a[b.options.dataFields.fixed]) {
|
||
case "top":
|
||
return b.currentTopList ? b.currentTopList.indexOf(a) : -1;
|
||
case "bottom":
|
||
return b.currentBottomList ? b.currentBottomList.indexOf(a) : -1;
|
||
}
|
||
return b.currentList ? b.currentList.indexOf(a) : -1;
|
||
}
|
||
return -1;
|
||
};
|
||
this.getObjCurrentIndex = function(a) {
|
||
return b.getItemCurrentIndex(a);
|
||
};
|
||
this.getObjState = function(a) {
|
||
if (a)
|
||
switch (a.type) {
|
||
case "item":
|
||
if (
|
||
0 == b.options.enabled ||
|
||
0 == a[b.options.dataFields.enabled]
|
||
)
|
||
return "disabled";
|
||
if (1 == a[b.options.dataFields.selected] && b.isObjInSelList(a))
|
||
return "selected";
|
||
if (a == b.hoverItem) return "hovered";
|
||
}
|
||
return "normal";
|
||
};
|
||
this.getItemFromChildElem = function(a) {
|
||
return a
|
||
? (a = angular.element(a))
|
||
? b.getItemFromElem(a[0].parentElement)
|
||
: null
|
||
: null;
|
||
};
|
||
this.getItemFromElem = function(a) {
|
||
if (a && (a = angular.element(a)) && a[0].attributes["data-index"]) {
|
||
var d = a[0].attributes["data-index"].value,
|
||
c = "none";
|
||
a[0].attributes["data-fixed"] &&
|
||
(c = a[0].attributes["data-fixed"].value);
|
||
switch (c) {
|
||
case "top":
|
||
if (0 <= d && d < b.currentTopList.length)
|
||
return b.currentTopList[d];
|
||
break;
|
||
case "bottom":
|
||
if (0 <= d && d < b.currentBottomList.length)
|
||
return b.currentBottomList[d];
|
||
break;
|
||
default:
|
||
if (b.isIndexInRange(d)) return b.currentList[d];
|
||
}
|
||
}
|
||
};
|
||
this.isIndexInRange = function(a) {
|
||
return 0 <= a && a < b.currentList.length;
|
||
};
|
||
this.isItemEnabled = function(a) {
|
||
return (
|
||
a &&
|
||
1 == b.options.enabled &&
|
||
f.isEnabled(a[b.options.dataFields.enabled])
|
||
);
|
||
};
|
||
this.mouseButtonStatus = function(a) {
|
||
qa = a;
|
||
};
|
||
c.$on(c.name + "-ensure-visible", function(a, c, e) {
|
||
b.ensureVisible(c, e);
|
||
});
|
||
c.$on(c.name + "-find-item-by-id", function(a, c) {
|
||
m.setTempData(b.findItemById(c));
|
||
});
|
||
c.$on(c.name + "-find-item-by-text", function(a, c) {
|
||
m.setTempData(b.findItemByText(c));
|
||
});
|
||
c.$on(c.name + "-get-full-path", function(a, c) {
|
||
m.setTempData(b.getFullPath(c));
|
||
});
|
||
c.$on(c.name + "-get-item-level", function(a, c) {
|
||
m.setTempData(b.getLevel(c));
|
||
});
|
||
c.$on(c.name + "-get-item-parent", function(a, c) {
|
||
m.setTempData(b.getParent(c));
|
||
});
|
||
c.$on(c.name + "-get-item-at", function(a, c) {
|
||
c ? m.setTempData(b.getItemAt(c.x, c.y)) : m.setTempData(null);
|
||
});
|
||
c.$on(c.name + "-get-flat-list", function(a, c) {
|
||
c ? m.setTempData(b.getFullList()) : m.setTempData(b.currentList);
|
||
});
|
||
c.$on(c.name + "-get-list", function(a, c, e) {
|
||
1 == e ? m.setTempData(b.getFullList(c)) : m.setTempData(b.getList(c));
|
||
});
|
||
this.ensureVisible = function(a, c) {
|
||
if (a) {
|
||
for (var d = [], h = b.getParent(a); h; )
|
||
d.push(h), (h = b.getParent(h));
|
||
for (h = d.length - 1; 0 <= h; h--)
|
||
d[h][b.options.dataFields.expanded] = !0;
|
||
b.updateCurrentLayout();
|
||
var f = e(function() {
|
||
c = void 0 != c ? c : "center";
|
||
b.scrollTo(a, c);
|
||
e.cancel(f);
|
||
}, 100);
|
||
}
|
||
};
|
||
this.findItemById = function(a) {
|
||
return b.dataObj.findObjectById(a);
|
||
};
|
||
this.findItemByText = function(a) {
|
||
return b.dataObj.findObjectByText(a);
|
||
};
|
||
this.getFullPath = function(a) {
|
||
var d = "";
|
||
if (a)
|
||
for (d = a[b.options.dataFields.text], a = b.getParent(a); a; )
|
||
(d = [
|
||
a[b.options.dataFields.text],
|
||
b.options.pathSeparator,
|
||
d
|
||
].join("")),
|
||
(a = b.getParent(a));
|
||
return d;
|
||
};
|
||
this.getLevel = function(a) {
|
||
var b = 0;
|
||
for (a = this.getParent(a); a; ) b++, (a = this.getParent(a));
|
||
return b;
|
||
};
|
||
this.getParent = function(a) {
|
||
return b.dataObj.getParent(a);
|
||
};
|
||
this.getList = function(a) {
|
||
return b.dataObj.getList(a);
|
||
};
|
||
this.getFirstItem = function() {
|
||
for (var a = null, c = 0; c < b.currentList.length; c++)
|
||
if (b.isItemEnabled(b.currentList[c])) {
|
||
a = b.currentList[c];
|
||
break;
|
||
}
|
||
return a;
|
||
};
|
||
this.getPrevItem = function(a) {
|
||
var d = null;
|
||
if (0 <= a && a < b.currentList.length)
|
||
for (--a; 0 <= a; a--)
|
||
if (b.isItemEnabled(b.currentList[a])) {
|
||
d = b.currentList[a];
|
||
break;
|
||
}
|
||
return d;
|
||
};
|
||
this.getNextItem = function(a) {
|
||
var d = null;
|
||
for (a += 1; a < b.currentList.length; a++)
|
||
if (b.isItemEnabled(b.currentList[a])) {
|
||
d = b.currentList[a];
|
||
break;
|
||
}
|
||
return d;
|
||
};
|
||
this.getLastItem = function() {
|
||
for (var a = null, c = b.currentList.length - 1; 0 <= c; c--)
|
||
if (b.isItemEnabled(b.currentList[c])) {
|
||
a = b.currentList[c];
|
||
break;
|
||
}
|
||
return a;
|
||
};
|
||
this.updateSelectionStatus = function(a) {
|
||
switch (a) {
|
||
case "shift":
|
||
switch (b.options.selectionMode) {
|
||
case "multi-simple":
|
||
b.multiSelection(!0);
|
||
b.shiftKeyStatus(!1);
|
||
break;
|
||
case "multi-extended":
|
||
b.multiSelection(!0);
|
||
b.shiftKeyStatus(!0);
|
||
break;
|
||
default:
|
||
b.multiSelection(!1), b.shiftKeyStatus(!1);
|
||
}
|
||
break;
|
||
case "ctrl":
|
||
switch (b.options.selectionMode) {
|
||
case "multi-simple":
|
||
b.multiSelection(!0);
|
||
break;
|
||
case "multi-extended":
|
||
b.multiSelection(!0);
|
||
break;
|
||
default:
|
||
b.multiSelection(!1);
|
||
}
|
||
}
|
||
};
|
||
q.bind("keydown", function(a) {
|
||
if (b.options.enabled)
|
||
switch (a.keyCode) {
|
||
case 16:
|
||
b.updateSelectionStatus("shift");
|
||
break;
|
||
case 17:
|
||
b.updateSelectionStatus("ctrl");
|
||
break;
|
||
default:
|
||
(a.ctrlKey || a.metaKey) && b.updateSelectionStatus("ctrl"),
|
||
a.shiftKey && b.updateSelectionStatus("shift");
|
||
}
|
||
});
|
||
b.allowUpdate = !0;
|
||
this.suspendLayout = function() {
|
||
b.allowUpdate = !1;
|
||
};
|
||
this.resumeLayout = function() {
|
||
b.allowUpdate = !0;
|
||
b.updateLayout();
|
||
};
|
||
c.$on(c.name + "-refresh", function(a, c, e) {
|
||
b.refresh(c, e);
|
||
});
|
||
c.$on(c.name + "-resume-layout", function(a) {
|
||
b.resumeLayout();
|
||
});
|
||
c.$on(c.name + "-suspend-layout", function(a) {
|
||
b.suspendLayout();
|
||
});
|
||
c.$on(c.name + "-update-layout", function(a) {
|
||
b.updateLayout();
|
||
});
|
||
c.$on(c.name + "-update-view", function(a) {
|
||
b.updateView();
|
||
});
|
||
c.$on(c.name + "-begin-load", function(a, c, e) {
|
||
c
|
||
? (0 > b.options.loadItems.indexOf(c) && b.options.loadItems.push(c),
|
||
b.updateView())
|
||
: b.beginLoad(e);
|
||
});
|
||
c.$on(c.name + "-end-load", function(a, c) {
|
||
b.endLoad(c);
|
||
});
|
||
this.callLoadComplete = function() {
|
||
angular.isDefined(c.events) && c.events.loadComplete
|
||
? c.events.loadComplete()
|
||
: c.loadComplete();
|
||
};
|
||
this.callUpdateComplete = function() {
|
||
angular.isDefined(c.events) && c.events.updateComplete
|
||
? c.events.updateComplete()
|
||
: c.updateComplete();
|
||
};
|
||
c.$on(c.name + "-get-scroll-pos", function(a) {
|
||
m.setTempData(b.getScrollPos());
|
||
});
|
||
c.$on(c.name + "-set-scroll-pos", function(a, c) {
|
||
b.setScrollPos(c);
|
||
});
|
||
c.$on(c.name + "-scroll-to", function(a, c, e) {
|
||
b.scrollTo(c, e);
|
||
});
|
||
var D = !1,
|
||
V = !1;
|
||
this.shiftKeyStatus = function(a) {
|
||
if (void 0 != a) D = a;
|
||
else return D;
|
||
};
|
||
this.multiSelection = function(a) {
|
||
if (void 0 != a) V = a;
|
||
else return V;
|
||
};
|
||
this.isItemSelected = function(a) {
|
||
return f.isSelected(a);
|
||
};
|
||
this.clearPrevSelection = function(a) {
|
||
for (var d = 0; d < b.options.selectedItems.length; d++)
|
||
a &&
|
||
!f.isEqual(
|
||
b.options.selectedItems[d][b.options.dataFields.id],
|
||
a[b.options.dataFields.id]
|
||
)
|
||
? (b.options.selectedItems[d][b.options.dataFields.selected] = !1)
|
||
: a ||
|
||
(b.options.selectedItems[d][b.options.dataFields.selected] = !1);
|
||
b.options.selectedItems.length = 0;
|
||
a && b.isItemEnabled(a) && b.options.selectedItems.push(a);
|
||
b.refresh();
|
||
};
|
||
this.selectionCancelled = !1;
|
||
this.shiftFirstSelectedItem = null;
|
||
this.itemSelection = function(a, h, e) {
|
||
if (h) {
|
||
if ("none" !== b.options.selectionMode)
|
||
if (b.isItemEnabled(h)) {
|
||
var d = b.itemSelection(),
|
||
u = !0;
|
||
d &&
|
||
(u =
|
||
!f.isEqual(
|
||
d[b.options.dataFields.id],
|
||
h[b.options.dataFields.id]
|
||
) ||
|
||
(a && (a.ctrlKey || a.metaKey)));
|
||
var k = !0;
|
||
k =
|
||
angular.isDefined(c.events) && c.events.beforeSelect
|
||
? c.events.beforeSelect({ item: h })
|
||
: c.beforeSelect({ e: { item: h } });
|
||
b.selectionCancelled = 0 == k;
|
||
if (0 != k)
|
||
if (u) {
|
||
var l = a && (a.shiftKey || a.ctrlKey || a.metaKey) ? !0 : !1;
|
||
u = !0;
|
||
"multi-extended" === b.options.selectionMode &&
|
||
(u = !b.isObjInSelList(h) || !l || D || (a && a.shiftKey));
|
||
u &&
|
||
("one" == b.options.selectionMode
|
||
? b.clearPrevSelection()
|
||
: qa && (D || (a && a.shiftKey))
|
||
? b.clearPrevSelection()
|
||
: V ||
|
||
l ||
|
||
"multi-simple" === b.options.selectionMode ||
|
||
l ||
|
||
(1 != b.options.selectedItems.length &&
|
||
b.isObjInSelList(h)) ||
|
||
b.clearPrevSelection());
|
||
b.options.selectedItem = h;
|
||
if (
|
||
qa &&
|
||
(D || (a && a.shiftKey)) &&
|
||
"one" != b.options.selectionMode
|
||
) {
|
||
if (
|
||
(b.shiftFirstSelectedItem ||
|
||
(b.shiftFirstSelectedItem = d),
|
||
(a = b.getItemCurrentIndex(b.shiftFirstSelectedItem)),
|
||
(e = b.getItemCurrentIndex(h)),
|
||
a > e && ((d = a), (a = e), (e = d)),
|
||
b.isIndexInRange(a) && b.isIndexInRange(e))
|
||
)
|
||
for (; a <= e; a++)
|
||
(b.currentList[a][b.options.dataFields.selected] = !0),
|
||
b.options.selectedItems.push(b.currentList[a]);
|
||
} else
|
||
qa && (V || l || "multi-simple" === b.options.selectionMode)
|
||
? ((a =
|
||
null === h[b.options.dataFields.selected] ||
|
||
"undefined" === h[b.options.dataFields.selected]
|
||
? !1
|
||
: h[b.options.dataFields.selected]),
|
||
(h[b.options.dataFields.selected] = !a),
|
||
h[b.options.dataFields.selected]
|
||
? b.isObjInSelList(h) ||
|
||
b.options.selectedItems.push(h)
|
||
: (b.options.selectedItems = b.options.selectedItems.filter(
|
||
function(a) {
|
||
return a != h;
|
||
}
|
||
)))
|
||
: ((h[b.options.dataFields.selected] = !0),
|
||
b.isObjInSelList(h) || b.options.selectedItems.push(h)),
|
||
(b.shiftFirstSelectedItem = null);
|
||
angular.isDefined(c.selectedItem) && (c.selectedItem = h);
|
||
b.callAfterSelect(h);
|
||
b.refresh(null, null, !0);
|
||
} else
|
||
V || l || "multi-simple" === b.options.selectionMode
|
||
? ((a =
|
||
null === h[b.options.dataFields.selected] ||
|
||
"undefined" === h[b.options.dataFields.selected]
|
||
? !1
|
||
: h[b.options.dataFields.selected]),
|
||
e && "undefined" !== e && (a = e),
|
||
(h[b.options.dataFields.selected] = !a),
|
||
h[b.options.dataFields.selected]
|
||
? b.isObjInSelList(h) || b.options.selectedItems.push(h)
|
||
: (b.options.selectedItems = b.options.selectedItems.filter(
|
||
function(a) {
|
||
return a != h;
|
||
}
|
||
)),
|
||
(b.shiftFirstSelectedItem = null),
|
||
b.callAfterSelect(h),
|
||
b.refresh(null, null, !0))
|
||
: V ||
|
||
l ||
|
||
"multi-simple" === b.options.selectionMode ||
|
||
(l ||
|
||
(1 != b.options.selectedItems.length &&
|
||
b.isObjInSelList(h)) ||
|
||
b.clearPrevSelection(h),
|
||
(b.shiftFirstSelectedItem = null));
|
||
} else b.clearPrevSelection();
|
||
} else return b.options.selectedItem;
|
||
};
|
||
this.updateSelection = function(a, c) {
|
||
var d = a && (a.shiftKey || a.ctrlKey || a.metaKey) ? !0 : !1;
|
||
!(
|
||
"multi-extended" == b.options.selectionMode &&
|
||
0 < b.options.selectedItems.length
|
||
) ||
|
||
D ||
|
||
a.shiftKey ||
|
||
V ||
|
||
d ||
|
||
b.selectionCancelled ||
|
||
((b.isObjInSelList(c) && a && 3 == a.which) || b.clearPrevSelection(),
|
||
(c[b.options.dataFields.selected] = !0),
|
||
b.options.selectedItems.push(c),
|
||
b.callAfterSelect(c),
|
||
b.refresh(null, null, !0));
|
||
b.selectionCancelled = !1;
|
||
};
|
||
this.selectFirstItem = function() {
|
||
for (var a = null, c = 0; c < b.currentList.length; c++)
|
||
if (b.isItemEnabled(b.currentList[c])) {
|
||
a = b.currentList[c];
|
||
break;
|
||
}
|
||
this.itemSelection(null, a);
|
||
return b.options.selectedItem;
|
||
};
|
||
this.isObjInSelList = function(a) {
|
||
var d = !1,
|
||
c = b.options.selectedItems;
|
||
if (a && c)
|
||
for (var e = 0; e < c.length; e++)
|
||
if (
|
||
f.isEqual(
|
||
c[e][b.options.dataFields.id],
|
||
a[b.options.dataFields.id]
|
||
)
|
||
) {
|
||
d = !0;
|
||
break;
|
||
}
|
||
return d;
|
||
};
|
||
this.getItemAt = function(a, c) {
|
||
var d = null,
|
||
h = q.find("li");
|
||
if (h && 0 < h.length)
|
||
for (var e = 0; e < h.length; e++) {
|
||
var k = angular.element(h[e]);
|
||
var l = f.getPageRect(k);
|
||
if (f.checkHit(a, c, l)) {
|
||
d = b.getItemFromElem(k);
|
||
break;
|
||
}
|
||
}
|
||
return d;
|
||
};
|
||
this.resetSelection = function() {
|
||
switch (b.options.selectionMode) {
|
||
case "none":
|
||
b.clearPrevSelection();
|
||
break;
|
||
default:
|
||
b.clearPrevSelection(b.itemSelection());
|
||
}
|
||
};
|
||
c.$on(c.name + "-clear-selection", function(a) {
|
||
b.clearPrevSelection();
|
||
b.options.selectedItem = null;
|
||
});
|
||
c.$on(c.name + "-get-selected-item", function(a) {
|
||
m.setTempData(b.itemSelection());
|
||
});
|
||
c.$on(c.name + "-set-selected-item", function(a, c) {
|
||
var d = e(function() {
|
||
b.itemSelection(null, c);
|
||
e.cancel(d);
|
||
}, 1);
|
||
});
|
||
c.$on(c.name + "-get-selected-items", function(a) {
|
||
m.setTempData(b.options.selectedItems);
|
||
});
|
||
c.$on(c.name + "-set-selected-items", function(a, c) {
|
||
if (c && Array.isArray(c))
|
||
var d = e(function() {
|
||
for (
|
||
var a = (b.options.selectedItems.length = 0);
|
||
a < c.length;
|
||
a++
|
||
)
|
||
(c[a][b.options.dataFields.selected] = !0),
|
||
b.options.selectedItems.push(c[a]);
|
||
0 < c.length
|
||
? ((b.options.selectedItem = c[c.length - 1]),
|
||
b.callAfterSelect(b.options.selectedItem))
|
||
: (b.options.selectedItem = null);
|
||
b.refresh(null, null, !0);
|
||
e.cancel(d);
|
||
}, 1);
|
||
});
|
||
c.$on(c.name + "-move-item", function(a, c, e, f, k) {
|
||
b.moveItem(c, e, f, k);
|
||
});
|
||
c.$watch(
|
||
"options",
|
||
function(a, c) {
|
||
a !== c && (b.updateOptions(a), b.updateLayout());
|
||
},
|
||
!0
|
||
);
|
||
c.$watch("allowDrag", function(a, c) {
|
||
a !== c && ((b.options.allowDrag = a), b.updateView());
|
||
});
|
||
c.$watch("allowDrop", function(a, c) {
|
||
a !== c && ((b.options.allowDrop = a), b.updateView());
|
||
});
|
||
c.$watch("allowFocus", function(a, c) {
|
||
a !== c && (b.options.allowFocus = a);
|
||
});
|
||
c.$watch("autoCheck", function(a, c) {
|
||
a !== c && ((b.options.autoCheck = a), b.updateView());
|
||
});
|
||
c.$watch("autoExpand", function(a, c) {
|
||
a !== c && (b.options.autoExpand = a);
|
||
});
|
||
c.$watch("autoSize", function(a, c) {
|
||
a !== c && ((b.options.autoSize = a), b.updateLayout());
|
||
});
|
||
c.$watch("autoUpdate", function(a, c) {
|
||
a !== c && ((b.options.autoUpdate = a), b.updateLayout());
|
||
});
|
||
c.$watch("checkBoxSettings", function(a, c) {
|
||
a !== c && b.updateCheckBoxSettings(a);
|
||
});
|
||
c.$watch("controlStyle", function(a, c) {
|
||
a !== c && b.updateControlStyle(a);
|
||
});
|
||
c.$watch("editorSettings", function(a, c) {
|
||
a !== c && b.updateEditorSettings(a);
|
||
});
|
||
c.$watch("enabled", function(a, c) {
|
||
a !== c &&
|
||
((b.options.enabled = a), b.updateView(), b.callEnabledChanged(a));
|
||
});
|
||
c.$watch("fields", function(a, c) {
|
||
a !== c && ((b.options.dataFields = a), b.UpdateData());
|
||
});
|
||
c.$watch("hoverSelection", function(a, c) {
|
||
a !== c && (b.options.hoverSelection = a);
|
||
});
|
||
c.$watch("indent", function(a, c) {
|
||
a !== c && ((b.options.indent = a), b.updateLayout());
|
||
});
|
||
c.$watch("itemIcon", function(a, c) {
|
||
a !== c && ((b.options.itemIcon = a), b.updateLayout());
|
||
});
|
||
c.$watch("labelEdit", function(a, c) {
|
||
a !== c && (b.options.labelEdit = a);
|
||
});
|
||
c.$watch("maxItems", function(a, c) {
|
||
a !== c && (b.options.maxItems = a);
|
||
});
|
||
c.$watch("mouseWheelSpeed", function(a, c) {
|
||
a !== c && (b.options.mouseWheelSpeed = a);
|
||
});
|
||
c.$watch("pathSeparator", function(a, c) {
|
||
a !== c && (b.options.pathSeparator = a);
|
||
});
|
||
c.$watch("rtl", function(a, c) {
|
||
a !== c && ((b.options.rtl = a), b.updateLayout());
|
||
});
|
||
c.$watch("selectionMode", function(a, c) {
|
||
a !== c && ((b.options.selectionMode = a), b.resetSelection());
|
||
});
|
||
c.$watch("showCheckBoxes", function(a, c) {
|
||
a !== c && ((b.options.showCheckBoxes = a), b.updateLayout());
|
||
});
|
||
c.$watch("showExpandBoxes", function(a, c) {
|
||
a !== c && ((b.options.showExpandBoxes = a), b.updateLayout());
|
||
});
|
||
c.$watch("showIcons", function(a, c) {
|
||
a !== c && ((b.options.showIcons = a), b.updateLayout());
|
||
});
|
||
c.$watch("showLines", function(a, c) {
|
||
a !== c && ((b.options.showLines = a), b.updateLayout());
|
||
});
|
||
c.$watch("showStatusIcons", function(a, c) {
|
||
a !== c && ((b.options.showStatusIcons = a), b.updateLayout());
|
||
});
|
||
c.$watch("selectedItem", function(a, c) {
|
||
a !== c &&
|
||
(c && (c[b.options.dataFields.selected] = !1),
|
||
(b.options.selectedItem = a),
|
||
b.callAfterSelect(a));
|
||
});
|
||
c.$watch("templateSettings", function(a, c) {
|
||
a !== c && (b.updateTemplateSettings(a), b.updateLayout());
|
||
});
|
||
this.sortComparer = null;
|
||
c.$watch("sorting", function(a, c) {
|
||
a !== c && (b.options.sorting = a);
|
||
});
|
||
c.$on(c.name + "-sort", function(a, c, e) {
|
||
b.sort(c, e);
|
||
});
|
||
this.sort = function(a, c) {
|
||
b.sortComparer = c;
|
||
if ("ascending" == a || "descending" == a || "none" == a)
|
||
b.options.sorting = a;
|
||
b.updateCurrentLayout();
|
||
b.callChange();
|
||
};
|
||
this.isSortingAllowed = function() {
|
||
return (
|
||
"ascending" == b.options.sorting || "descending" == b.options.sorting
|
||
);
|
||
};
|
||
this.applySorting = function(a) {
|
||
a &&
|
||
(b.sortComparer
|
||
? a.sort(b.sortComparer)
|
||
: b.isSortingAllowed() &&
|
||
a.sort(function(a, c) {
|
||
var d, e;
|
||
(d = a[b.options.dataFields.value]) ||
|
||
(d = a[b.options.dataFields.text]);
|
||
f.isObject(d) && (d = d.value ? d.value : d.text);
|
||
(e = c[b.options.dataFields.value]) ||
|
||
(e = c[b.options.dataFields.text]);
|
||
f.isObject(e) && (e = e.value ? e.value : e.text);
|
||
d = void 0 != d ? d : null;
|
||
e = void 0 != e ? e : null;
|
||
switch (b.options.sorting) {
|
||
case "ascending":
|
||
if (d < e) return -1;
|
||
if (d > e) return 1;
|
||
break;
|
||
case "descending":
|
||
if (d > e) return -1;
|
||
if (d < e) return 1;
|
||
break;
|
||
default:
|
||
return 0;
|
||
}
|
||
}));
|
||
};
|
||
var Ka = function(a) {
|
||
if (a) {
|
||
var c = f.isFieldAvailable(a.general, "iui-checkbox");
|
||
a = (a = a.box)
|
||
? {
|
||
general: f.isFieldAvailable(a.general, "iui-checkbox-box"),
|
||
disabled: f.isFieldAvailable(
|
||
a.disabled,
|
||
"iui-checkbox-disabled"
|
||
),
|
||
checked: f.isFieldAvailable(a.checked, "iui-checkbox-checked"),
|
||
indeterminate: f.isFieldAvailable(
|
||
a.indeterminate,
|
||
"iui-checkbox-indeterminate"
|
||
),
|
||
unchecked: f.isFieldAvailable(
|
||
a.unchecked,
|
||
"iui-checkbox-unchecked"
|
||
)
|
||
}
|
||
: b.options.controlStyle.item.checkBox.box;
|
||
return { general: c, box: a };
|
||
}
|
||
return b.options.controlStyle.item.checkBox;
|
||
};
|
||
this.getExpandBoxStyle = function(a) {
|
||
return a
|
||
? {
|
||
general: f.isFieldAvailable(a.general, "iui-treeview-expand-box"),
|
||
animated: f.isFieldAvailable(
|
||
a.animated,
|
||
"iui-treeview-expand-box-load"
|
||
),
|
||
expanded: f.isFieldAvailable(
|
||
a.expanded,
|
||
"iui-treeview-expand-box-open"
|
||
),
|
||
collapsed: f.isFieldAvailable(
|
||
a.collapsed,
|
||
"iui-treeview-expand-box-close"
|
||
)
|
||
}
|
||
: b.options.controlStyle.item.expandBox;
|
||
};
|
||
var Aa = function(a) {
|
||
if (a) {
|
||
var c = a.general;
|
||
c = f.isString(c)
|
||
? c
|
||
: c
|
||
? {
|
||
disabled: f.isFieldAvailable(
|
||
c.disabled,
|
||
"iui-treeview-item-disabled"
|
||
),
|
||
focused: f.isFieldAvailable(
|
||
c.focused,
|
||
"iui-treeview-item-focused"
|
||
),
|
||
normal: f.isFieldAvailable(c.normal, "iui-treeview-item"),
|
||
hovered: f.isFieldAvailable(
|
||
c.hovered,
|
||
"iui-treeview-item-hovered"
|
||
),
|
||
selected: f.isFieldAvailable(
|
||
c.selected,
|
||
"iui-treeview-item-selected"
|
||
)
|
||
}
|
||
: b.options.controlStyle.item.general;
|
||
var d = Ka(a.checkBox),
|
||
e = b.getExpandBoxStyle(a.expandBox);
|
||
var k = a.content;
|
||
k = f.isString(k)
|
||
? k
|
||
: k
|
||
? {
|
||
disabled: f.isFieldAvailable(
|
||
k.disabled,
|
||
"iui-treeview-item-content-disabled"
|
||
),
|
||
focused: f.isFieldAvailable(
|
||
k.focused,
|
||
"iui-treeview-item-content-focused"
|
||
),
|
||
normal: f.isFieldAvailable(
|
||
k.normal,
|
||
"iui-treeview-item-content"
|
||
),
|
||
hovered: f.isFieldAvailable(
|
||
k.hovered,
|
||
"iui-treeview-item-content-hovered"
|
||
),
|
||
selected: f.isFieldAvailable(
|
||
k.selected,
|
||
"iui-treeview-item-content-selected"
|
||
)
|
||
}
|
||
: b.options.controlStyle.item.content;
|
||
a = a.fixed;
|
||
a = f.isString(a)
|
||
? a
|
||
: a
|
||
? {
|
||
disabled: f.isFieldAvailable(
|
||
a.disabled,
|
||
"iui-treeview-item-fixed-disabled"
|
||
),
|
||
normal: f.isFieldAvailable(a.normal, "iui-treeview-item-fixed"),
|
||
hovered: f.isFieldAvailable(
|
||
a.hovered,
|
||
"iui-treeview-item-fixed-hovered"
|
||
)
|
||
}
|
||
: b.options.controlStyle.item.fixed;
|
||
return {
|
||
general: c,
|
||
checkBox: d,
|
||
expandBox: e,
|
||
content: k,
|
||
fixed: a
|
||
};
|
||
}
|
||
return b.options.controlStyle.item;
|
||
};
|
||
this.updateControlStyle = function(a) {
|
||
b.options.controlStyle = a
|
||
? {
|
||
general: f.isFieldAvailable(a.general, "iui-treeview"),
|
||
item: Aa(a.item)
|
||
}
|
||
: {
|
||
general: f.isFieldAvailable(
|
||
b.defaultStyle.general,
|
||
"iui-treeview"
|
||
),
|
||
item: Aa(b.defaultStyle.item)
|
||
};
|
||
};
|
||
this.getCurrentItemStyle = function(a, c) {
|
||
var d = b.options.controlStyle.item;
|
||
if (a)
|
||
switch (a.style) {
|
||
case "initial":
|
||
break;
|
||
case "parent":
|
||
return b.getCurrentItemStyle(b.getParent(a), c);
|
||
default:
|
||
null != a.style && (d = a.style);
|
||
}
|
||
if (c) {
|
||
if (f.isString(d.general)) return d.general;
|
||
if (b.isItemFixed(a))
|
||
switch (c) {
|
||
case "disabled":
|
||
return d.fixed && d.fixed.disabled
|
||
? d.fixed.disabled
|
||
: b.options.controlStyle.item.fixed.disabled;
|
||
case "hovered":
|
||
return d.fixed && d.fixed.hovered
|
||
? d.fixed.hovered
|
||
: b.options.controlStyle.item.fixed.hovered;
|
||
default:
|
||
return d.fixed && d.fixed.normal
|
||
? d.fixed.normal
|
||
: b.options.controlStyle.item.fixed.normal;
|
||
}
|
||
else
|
||
switch (c) {
|
||
case "disabled":
|
||
return d.general && d.general.disabled
|
||
? d.general.disabled
|
||
: b.options.controlStyle.item.general.disabled;
|
||
case "focused":
|
||
return d.general && d.general.focused
|
||
? d.general.focused
|
||
: b.options.controlStyle.item.general.focused;
|
||
case "hovered":
|
||
return d.general && d.general.hovered
|
||
? d.general.hovered
|
||
: b.options.controlStyle.item.general.hovered;
|
||
case "selected":
|
||
return d.general && d.general.selected
|
||
? d.general.selected
|
||
: b.options.controlStyle.item.general.selected;
|
||
default:
|
||
return d.general && d.general.normal
|
||
? d.general.normal
|
||
: b.options.controlStyle.item.general.normal;
|
||
}
|
||
} else return d ? d : b.options.controlStyle.item;
|
||
};
|
||
this.getCurrentItemContentStyle = function(a, c) {
|
||
var d = b.options.controlStyle.item.content;
|
||
if (a)
|
||
switch (a.style) {
|
||
case "initial":
|
||
break;
|
||
case "parent":
|
||
return b.getCurrentItemContentStyle(b.getParent(a), c);
|
||
default:
|
||
null != a.style && a.style.content && (d = a.style.content);
|
||
}
|
||
if (c) {
|
||
if (f.isString(d)) return d;
|
||
switch (c) {
|
||
case "disabled":
|
||
return d && d.disabled
|
||
? d.disabled
|
||
: b.options.controlStyle.item.content.disabled;
|
||
case "focused":
|
||
return d && d.focused
|
||
? d.focused
|
||
: b.options.controlStyle.item.content.focused;
|
||
case "hovered":
|
||
return d && d.hovered
|
||
? d.hovered
|
||
: b.options.controlStyle.item.content.hovered;
|
||
case "selected":
|
||
return d && d.selected
|
||
? d.selected
|
||
: b.options.controlStyle.item.content.selected;
|
||
default:
|
||
return d && d.normal
|
||
? d.normal
|
||
: b.options.controlStyle.item.content.normal;
|
||
}
|
||
} else return d ? d : b.options.controlStyle.item.content;
|
||
};
|
||
}
|
||
])
|
||
.directive("iuiTreeview", [
|
||
"$compile",
|
||
"$timeout",
|
||
"$interval",
|
||
"IntegralUIInternalService",
|
||
"IntegralUIDragDrop",
|
||
"$window",
|
||
function(c, q, e, l, n, f) {
|
||
return {
|
||
restrict: "EA",
|
||
controller: "IntegralUITreeViewController",
|
||
transclude: !0,
|
||
replace: !0,
|
||
template:
|
||
'<div class="iui-treeview" data-element="treeview"><ul class="iui-treeview-block-top"></ul><ul class="iui-treeview-block"></ul><ul class="iui-treeview-block-bottom"></ul></div>',
|
||
scope: {
|
||
allowAnimation: "=",
|
||
allowDrag: "=",
|
||
allowDrop: "=",
|
||
allowFocus: "=",
|
||
animationSpeed: "=",
|
||
autoCheck: "=",
|
||
autoExpand: "=",
|
||
autoSize: "=",
|
||
autoUpdate: "=",
|
||
checkboxSettings: "=",
|
||
controlStyle: "=",
|
||
editorSettings: "=",
|
||
enabled: "=",
|
||
fields: "=",
|
||
hoverSelection: "=",
|
||
itemIcon: "=",
|
||
indent: "=",
|
||
items: "=",
|
||
labelEdit: "=",
|
||
maxItems: "=",
|
||
mouseWheelSpeed: "@",
|
||
name: "@",
|
||
options: "=?",
|
||
pathSeparator: "@",
|
||
rtl: "=",
|
||
selectedIndex: "=",
|
||
selectedItem: "=",
|
||
selectionMode: "@",
|
||
showCheckBoxes: "=",
|
||
showExpandBoxes: "=",
|
||
showIcons: "=",
|
||
showLines: "=",
|
||
showStatusIcons: "=",
|
||
sorting: "@",
|
||
templateSettings: "=",
|
||
afterCollapse: "&",
|
||
afterEdit: "&",
|
||
afterExpand: "&",
|
||
afterLabelEdit: "&",
|
||
afterSelect: "&",
|
||
beforeCollapse: "&",
|
||
beforeEdit: "&",
|
||
beforeExpand: "&",
|
||
beforeLabelEdit: "&",
|
||
beforeSelect: "&",
|
||
change: "&",
|
||
clear: "&",
|
||
dragDrop: "&",
|
||
dragEnter: "&",
|
||
dragLeave: "&",
|
||
dragOver: "&",
|
||
enabledChanged: "&",
|
||
events: "=?",
|
||
itemAdded: "&",
|
||
itemAdding: "&",
|
||
itemCheckedChanging: "&",
|
||
itemCheckedChanged: "&",
|
||
itemCheckstateChanging: "&",
|
||
itemCheckstateChanged: "&",
|
||
itemClick: "&",
|
||
itemDblclick: "&",
|
||
itemHover: "&",
|
||
loadComplete: "&",
|
||
gotFocus: "&",
|
||
keyDown: "&",
|
||
keyPress: "&",
|
||
keyUp: "&",
|
||
lostFocus: "&",
|
||
itemRemoved: "&",
|
||
itemRemoving: "&",
|
||
itemRightclick: "&",
|
||
scrollposChanged: "&",
|
||
selectionChanged: "&",
|
||
updateComplete: "&"
|
||
},
|
||
link: function(k, m, U, a, b) {
|
||
var w = this,
|
||
H = m.children().eq(0),
|
||
C = m.children().eq(1),
|
||
I = m.children().eq(2),
|
||
y = angular.element(
|
||
'<div class="iui-scrollbar-vertical"><div class="iui-scroll-button-thumb-vertical"></div></div>'
|
||
),
|
||
A = angular.element(
|
||
'<div class="iui-scrollbar-horizontal"><div class="iui-scroll-button-thumb-horizontal"></div></div>'
|
||
),
|
||
O = angular.element('<div class="iui-scrollbar-corner"></div>'),
|
||
Y = null,
|
||
ea = null,
|
||
fa = null,
|
||
B = a.getEditBox(),
|
||
$a = function() {
|
||
var b = "iui-treeview-block";
|
||
a.options.rtl && (b += " " + b + "-rtl");
|
||
return b;
|
||
};
|
||
k.$on("$destroy", function(a) {
|
||
// w.s2t();
|
||
aa && (q.cancel(aa), (aa = null));
|
||
m.unbind(
|
||
"click dblclick dragenter dragleave dragend drop keydown mousedown mouseleave mousemove mousewheel scroll touchstart touchmove touchend"
|
||
);
|
||
angular.element(f).unbind("dragenter", rb);
|
||
angular.element(f).unbind("dragover", sb);
|
||
angular.element(f).unbind("dragend", tb);
|
||
angular.element(f).unbind("keyup", ub);
|
||
angular.element(f).unbind("mousemove", vb);
|
||
angular.element(f).unbind("mouseup", wb);
|
||
B && B.unbind("blur focus keydown mousedown");
|
||
H && H.unbind("dragover");
|
||
I && I.unbind("dragover");
|
||
Aa();
|
||
v && v.$destroy();
|
||
});
|
||
m.append(a.getDropMarkWindow());
|
||
a.dropMark();
|
||
var Z = function(b) {
|
||
b.dataTransfer
|
||
? (b.dataTransfer.dropEffect = "none")
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
(b.originalEvent.dataTransfer.dropEffect = "none");
|
||
a.dropMark();
|
||
};
|
||
H.bind("dragover", function(a) {
|
||
Z(a);
|
||
a.stopPropagation();
|
||
});
|
||
I.bind("dragover", function(a) {
|
||
Z(a);
|
||
a.stopPropagation();
|
||
});
|
||
var za = function() {
|
||
Y && (q.cancel(Y), (Y = null));
|
||
};
|
||
a.addDropMark = function() {
|
||
var b = m[0];
|
||
for (var c = null; b; ) {
|
||
if (b === document.getElementsByTagName("body")[0]) {
|
||
c = b;
|
||
break;
|
||
}
|
||
b = b.offsetParent;
|
||
}
|
||
if ((b = c))
|
||
angular.element(b).append(a.getDropMarkWindow()), a.dropMark();
|
||
};
|
||
a.removeDropMark = function() {
|
||
a.getDropMarkWindow().remove();
|
||
};
|
||
var La = function(b, c) {
|
||
a.labelEditStatus() && a.closeEditor();
|
||
b.preventDefault();
|
||
var d = !0;
|
||
b.dataTransfer
|
||
? (d = "none" === b.dataTransfer.effectAllowed ? !1 : !0)
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
(d =
|
||
"none" === b.originalEvent.dataTransfer.effectAllowed
|
||
? !1
|
||
: !0);
|
||
if (d) {
|
||
var g = a.getItemFromChildElem(c);
|
||
if (g) {
|
||
d = c[0].getBoundingClientRect();
|
||
var N = kb(),
|
||
p = a.getMousePos(b);
|
||
p.x -= d.left + N.x;
|
||
p.y -= d.top + N.y;
|
||
N = n.getDropPos(p, {
|
||
x: 0,
|
||
y: 0,
|
||
width: c[0].offsetWidth,
|
||
height: c[0].offsetHeight
|
||
});
|
||
p = n.getData();
|
||
d = a.isDropAllowed(p.source, g, N);
|
||
var e = {
|
||
event: b,
|
||
sourceTree: p.sourceCtrl ? p.sourceCtrl.getCtrlName() : "",
|
||
dragItem: p.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: g,
|
||
isDropAllowed: d,
|
||
dropPos: N,
|
||
mousePos: a.getMousePos(b)
|
||
};
|
||
e = a.callDragOver(e);
|
||
if (d && 0 != e) {
|
||
var f = a.getMousePos(b);
|
||
e = f.y + 16;
|
||
f = f.x + 20;
|
||
var k = a.getDropMarkWindow();
|
||
k.empty();
|
||
var h = "iui-drop-marker-move-in";
|
||
switch (N) {
|
||
case 1:
|
||
h = "iui-drop-marker-move-up";
|
||
break;
|
||
case 2:
|
||
h = "iui-drop-marker-move-down";
|
||
}
|
||
k.append(
|
||
"<span class='" +
|
||
h +
|
||
"'></span><span class='iui-drop-marker-title'>" +
|
||
g[a.options.dataFields.text] +
|
||
"</span>"
|
||
);
|
||
a.updateDropMarkElem(a.getDropMarkWindow(), {
|
||
top: e,
|
||
left: f
|
||
});
|
||
a.dropMark(d);
|
||
n.setData({
|
||
source: p.source,
|
||
sourceList: p.sourceList,
|
||
target: g,
|
||
dropPos: N
|
||
});
|
||
} else
|
||
b.dataTransfer
|
||
? (b.dataTransfer.dropEffect = "none")
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
(b.originalEvent.dataTransfer.dropEffect = "none"),
|
||
a.dropMark();
|
||
}
|
||
}
|
||
},
|
||
qa = function(b, c) {
|
||
b.preventDefault();
|
||
za();
|
||
a.dropMark();
|
||
var d = !0;
|
||
b.dataTransfer
|
||
? (d = "none" === b.dataTransfer.effectAllowed ? !1 : !0)
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
(d =
|
||
"none" === b.originalEvent.dataTransfer.effectAllowed
|
||
? !1
|
||
: !0);
|
||
if (d) {
|
||
var g = a.getItemFromChildElem(c);
|
||
if (g) {
|
||
var p = n.getData(),
|
||
e = p.source;
|
||
e || (e = a.getDnDSource(b));
|
||
(d = a.isDropAllowed(e, g, p.dropPos)) &&
|
||
e &&
|
||
((d = {
|
||
event: b,
|
||
sourceTree: p.sourceCtrl
|
||
? p.sourceCtrl.getCtrlName()
|
||
: "",
|
||
dragItem: e,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: g,
|
||
isDropAllowed: d,
|
||
dropPos: p.dropPos,
|
||
mousePos: a.getMousePos(b)
|
||
}),
|
||
!1 !== a.callDragDrop(d) &&
|
||
(a.drop(p), k.$$phase || k.$apply()));
|
||
}
|
||
}
|
||
n.clearData();
|
||
a.dragDropStatus(!1);
|
||
b.stopPropagation();
|
||
},
|
||
D = angular.element(
|
||
'<div style="opacity:0.75;position:absolute;z-index:999"></div>'
|
||
),
|
||
V = function() {
|
||
D &&
|
||
(D.remove(),
|
||
D.css("top", "-9999999px"),
|
||
D.css("left", "-9999999px"));
|
||
},
|
||
Ka = function(b) {
|
||
var c = "";
|
||
if (a.options.showExpandBoxes) {
|
||
var d = a.defaultStyle.item.expandBox.general;
|
||
b[a.options.dataFields.style] &&
|
||
b[a.options.dataFields.style].expandBox &&
|
||
b[a.options.dataFields.style].expandBox.general != d
|
||
? (d += " " + b[a.options.dataFields.style].expandBox.general)
|
||
: a.options.controlStyle.item.expandBox.general != d &&
|
||
(d += " " + a.options.controlStyle.item.expandBox.general);
|
||
var g = a.getCurrentItemStyle(b);
|
||
g = a.getExpandBoxStyle(g.expandBox);
|
||
if (
|
||
a.isThereChildItems ||
|
||
(b && b[a.options.dataFields.hasChildren])
|
||
)
|
||
c = d;
|
||
d =
|
||
b[a.options.dataFields.hasChildren] &&
|
||
(a.isThereVisibleChildren(b) ||
|
||
!b[a.options.dataFields.items] ||
|
||
(b[a.options.dataFields.items] &&
|
||
0 == b[a.options.dataFields.items].length));
|
||
b &&
|
||
!a.isItemFixed(b) &&
|
||
(d || a.isThereVisibleChildren(b)) &&
|
||
(0 <= a.options.loadItems.indexOf(b)
|
||
? (c += " " + g.animated)
|
||
: ((c =
|
||
b[a.options.dataFields.hasChildren] &&
|
||
void 0 === b[a.options.dataFields.expanded]
|
||
? c + (" " + g.expanded)
|
||
: 0 != b[a.options.dataFields.expanded]
|
||
? c + (" " + g.collapsed)
|
||
: c + (" " + g.expanded)),
|
||
!0 === a.options.rtl && (c += "-rtl"),
|
||
(a.options.enabled && a.isItemEnabled(b)) ||
|
||
(c += "-disabled")));
|
||
}
|
||
return c;
|
||
},
|
||
Aa = function() {
|
||
var b = C.find("li");
|
||
if (0 < b.length)
|
||
for (var c = 0; c < b.length; c++) {
|
||
currentElem = angular.element(b[c]);
|
||
currentElem.unbind(
|
||
"dragover drop dragenter dragleave dragend"
|
||
);
|
||
var d = a.getElement(currentElem, "expandbox");
|
||
d && d.unbind("click dblclick touchend");
|
||
(d = a.getElement(currentElem)) &&
|
||
d.unbind(
|
||
"blur click dragstart dragover drop dragenter dragleave dragend dblclick focus keydown keypress keyup mouseenter mouseleave mousedown mouseup touchstart touchmove touchend"
|
||
);
|
||
}
|
||
for (d = 0; 2 > d; ) {
|
||
if ((b = 0 == d ? H.find("li") : I.find("li")) && 0 < b.length)
|
||
for (c = 0; c < b.length; c++) {
|
||
currentElem = angular.element(b[c]);
|
||
var t = a.getElement(currentElem);
|
||
t &&
|
||
t.unbind(
|
||
"click dblclick mouseenter mouseleave mousedown touchstart"
|
||
);
|
||
}
|
||
d++;
|
||
}
|
||
},
|
||
d = function() {
|
||
var b = C.find("li");
|
||
if (0 < b.length) {
|
||
var c = b.length - 1,
|
||
d = "content";
|
||
a.getTemplateUrl() && (d = "template-content");
|
||
for (var t = 0; t <= c; t++) {
|
||
var N = angular.element(b[t]);
|
||
h(N);
|
||
u(a.getElement(N, "expandbox"));
|
||
r(a.getElement(N, "icon"));
|
||
Qb(a.getElement(N, d));
|
||
}
|
||
}
|
||
for (c = 0; 2 > c; ) {
|
||
if ((b = 0 == c ? H.find("li") : I.find("li")) && 0 < b.length)
|
||
for (
|
||
d = "content",
|
||
a.getTemplateUrl() && (d = "template-content"),
|
||
t = 0;
|
||
t < b.length;
|
||
t++
|
||
)
|
||
(N = angular.element(b[t])), Rb(a.getElement(N, d));
|
||
c++;
|
||
}
|
||
},
|
||
h = function(b) {
|
||
b &&
|
||
(b.bind("dragover", function(b) {
|
||
var c = a.getItemFromElem(this);
|
||
if (c && a.isItemEnabled(c)) {
|
||
if (a.isScrollBarVisible("vertical")) {
|
||
c = a.getMousePos(b);
|
||
var d = m[0].getBoundingClientRect();
|
||
c.x -= angular.element(f)[0].pageXOffset;
|
||
c.y -= angular.element(f)[0].pageYOffset;
|
||
c.y < d.top + 40
|
||
? ab(b, !1)
|
||
: c.y > d.bottom - 40
|
||
? ab(b, !0)
|
||
: ra();
|
||
} else ra();
|
||
a.isItemDragOverHandled = !0;
|
||
a.options.autoSize || b.stopPropagation();
|
||
}
|
||
}),
|
||
b.bind("dragleave", function(b) {
|
||
a.isItemDragOverHandled = !1;
|
||
}),
|
||
b.bind("dragend", function(b) {
|
||
var c = a.getItemFromElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(b.preventDefault(),
|
||
a.dragDropStatus(!1),
|
||
a.dropMark(),
|
||
n.getData().source || n.clearData());
|
||
}));
|
||
},
|
||
u = function(b) {
|
||
b &&
|
||
(b.bind("dblclick", function(b) {
|
||
var c = angular.element(this);
|
||
(c = a.getItemFromChildElem(c)) &&
|
||
a.isItemEnabled(c) &&
|
||
(a.toggle(c), b.stopPropagation());
|
||
}),
|
||
b.bind("click", function(b) {
|
||
var c = angular.element(this);
|
||
(c = a.getItemFromChildElem(c)) &&
|
||
a.isItemEnabled(c) &&
|
||
(a.toggle(c), b.stopPropagation());
|
||
}),
|
||
b.bind("touchend", function(b) {
|
||
b.preventDefault();
|
||
var c = angular.element(this);
|
||
(c = a.getItemFromChildElem(c)) &&
|
||
a.isItemEnabled(c) &&
|
||
(a.toggle(c), b.stopPropagation());
|
||
}));
|
||
},
|
||
r = function(b) {
|
||
b &&
|
||
(b.bind("dragover", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && La(b, angular.element(this));
|
||
}),
|
||
b.bind("drop", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && qa(b, angular.element(this));
|
||
}));
|
||
};
|
||
a.dragIcon = document.createElement("img");
|
||
a.dragIcon.width = 1;
|
||
var Za = { x: 0, y: 0 },
|
||
wa = { x: 0, y: 0 },
|
||
xa = !1,
|
||
jb = !1,
|
||
da = null,
|
||
kb = function() {
|
||
return {
|
||
x: angular.element(f)[0].pageXOffset,
|
||
y: angular.element(f)[0].pageYOffset
|
||
};
|
||
},
|
||
ya = function(a) {
|
||
var b = kb();
|
||
return { x: a.x - b.x, y: a.y - b.y };
|
||
},
|
||
Qb = function(b) {
|
||
if (b) {
|
||
b.bind("dragstart", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c && a.isItemEnabled(c))
|
||
if (((c = angular.element(this)), a.labelEditStatus()))
|
||
b.preventDefault();
|
||
else {
|
||
document.activeElement && document.activeElement.blur();
|
||
n.clearData();
|
||
if ((c = a.getItemFromChildElem(c)))
|
||
if ((bb(), a.isDragAllowed(c))) {
|
||
a.dragDropStatus(!0);
|
||
a.addDropMark();
|
||
b.dataTransfer
|
||
? ((b.dataTransfer.effectAllowed = "move"),
|
||
b.dataTransfer.setData(
|
||
"text",
|
||
c[a.options.dataFields.id]
|
||
? c[a.options.dataFields.id].toString()
|
||
: ""
|
||
))
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
((b.originalEvent.dataTransfer.effectAllowed =
|
||
"move"),
|
||
b.originalEvent.dataTransfer.setData(
|
||
"text",
|
||
c[a.options.dataFields.id]
|
||
? c[a.options.dataFields.id].toString()
|
||
: ""
|
||
));
|
||
c = {
|
||
source: c,
|
||
sourceCtrl: a,
|
||
sourceCollection: a.dataObj
|
||
};
|
||
switch (a.options.selectionMode) {
|
||
case "multi-simple":
|
||
c.source = a.options.selectedItems;
|
||
break;
|
||
case "multi-extended":
|
||
c.source = a.options.selectedItems;
|
||
}
|
||
n.setData(c);
|
||
} else
|
||
b.dataTransfer
|
||
? (b.dataTransfer.effectAllowed = "none")
|
||
: b.originalEvent &&
|
||
b.originalEvent.dataTransfer &&
|
||
(b.originalEvent.dataTransfer.effectAllowed =
|
||
"none");
|
||
b.stopPropagation();
|
||
}
|
||
});
|
||
b.bind("dragover", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && La(b, angular.element(this));
|
||
});
|
||
b.bind("drop", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && qa(b, angular.element(this));
|
||
});
|
||
b.bind("dragenter", function(b) {
|
||
b.preventDefault();
|
||
var c = angular.element(this),
|
||
d = a.getItemFromChildElem(c);
|
||
if (
|
||
d &&
|
||
a.isItemEnabled(d) &&
|
||
(Ma || ((a.hoverItem = d), a.refresh(d)),
|
||
a.options.autoExpand)
|
||
)
|
||
var g = q(function() {
|
||
Y ||
|
||
(Y = q(function() {
|
||
Y && a.toggle(d, !0);
|
||
}, 750));
|
||
q.cancel(g);
|
||
}, 1);
|
||
c = n.getData();
|
||
c.source || (c.source = a.getDnDSource(b));
|
||
c = {
|
||
event: b,
|
||
sourceTree: c.sourceCtrl ? c.sourceCtrl.getCtrlName() : "",
|
||
dragItem: c.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: c.target,
|
||
mousePos: a.getMousePos(b)
|
||
};
|
||
a.callDragEnter(c);
|
||
b.stopPropagation();
|
||
});
|
||
b.bind("dragleave", function(b) {
|
||
b.preventDefault();
|
||
a.hoverItem = null;
|
||
var c = angular.element(this);
|
||
(c = a.getItemFromChildElem(c)) &&
|
||
a.isItemEnabled(c) &&
|
||
a.refresh(c);
|
||
za();
|
||
c = n.getData();
|
||
c.source || (c.source = a.getDnDSource(b));
|
||
c = {
|
||
event: b,
|
||
sourceTree: c.sourceCtrl ? c.sourceCtrl.getCtrlName() : "",
|
||
dragItem: c.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: c.target,
|
||
mousePos: a.getMousePos(b)
|
||
};
|
||
a.callDragLeave(c);
|
||
b.stopPropagation();
|
||
});
|
||
b.bind("dragend", function(b) {
|
||
(b = a.getItemFromChildElem(this)) &&
|
||
a.isItemEnabled(b) &&
|
||
a.dragDropStatus(!1);
|
||
});
|
||
b.bind("touchstart", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(b.preventDefault(),
|
||
(c = a.getTouchData(b)) && 0 < c.length)
|
||
) {
|
||
jb = !0;
|
||
var d = q(function() {
|
||
jb = !1;
|
||
q.cancel(d);
|
||
}, 750);
|
||
Za = ya({ x: c[0].pageX, y: c[0].pageY });
|
||
a.mouseButtonStatus(!0);
|
||
c = Za;
|
||
if ((c = a.getItemAt(c.x, c.y)) && a.isItemEnabled(c)) {
|
||
var g = angular.element(this);
|
||
a.itemSelection(b, c);
|
||
da = c;
|
||
g[0].focus();
|
||
a.changeCheckValue(c);
|
||
"click" == a.options.editorSettings.activate &&
|
||
Na(b, angular.element(this));
|
||
}
|
||
}
|
||
});
|
||
b.bind("touchmove", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(c = a.getTouchData(b)) &&
|
||
0 < c.length
|
||
) {
|
||
wa = ya({ x: c[0].pageX, y: c[0].pageY });
|
||
c = Math.abs(wa.x - Za.x);
|
||
var d = Math.abs(wa.y - Za.y),
|
||
g = m[0].getBoundingClientRect();
|
||
if (n.hitTest(wa.x, wa.y, g)) {
|
||
if (
|
||
(b.preventDefault(),
|
||
D && D.css("display", "block"),
|
||
!jb)
|
||
)
|
||
if (
|
||
!xa &&
|
||
(2 < c || 2 < d) &&
|
||
da &&
|
||
a.isItemEnabled(da)
|
||
)
|
||
if ((angular.element(this), a.labelEditStatus()))
|
||
b.preventDefault();
|
||
else {
|
||
xa = !0;
|
||
n.clearData();
|
||
if (
|
||
(c = a.getTouchData(b)) &&
|
||
0 < c.length &&
|
||
(ya({ x: c[0].pageX, y: c[0].pageY }),
|
||
da && (bb(), a.isDragAllowed(da)))
|
||
) {
|
||
a.dragDropStatus(!0);
|
||
a.addDropMark();
|
||
c = {
|
||
source: da,
|
||
sourceCtrl: a,
|
||
sourceCollection: a.dataObj
|
||
};
|
||
switch (a.options.selectionMode) {
|
||
case "multi-simple":
|
||
c.source = a.options.selectedItems;
|
||
break;
|
||
case "multi-extended":
|
||
c.source = a.options.selectedItems;
|
||
}
|
||
n.setData(c);
|
||
if ((c = a.getElemFromItem(da)))
|
||
if ((c = a.getElement(c)))
|
||
D.empty(),
|
||
D.append(c.clone()),
|
||
D.css("display", "none"),
|
||
m.append(D);
|
||
}
|
||
b.stopPropagation();
|
||
}
|
||
else if (xa) {
|
||
angular.element(this);
|
||
a.labelEditStatus() && a.closeEditor();
|
||
b.preventDefault();
|
||
if ((c = a.getTouchData(b)) && 0 < c.length) {
|
||
g = kb();
|
||
var t = ya({ x: c[0].pageX, y: c[0].pageY });
|
||
if ((c = a.getItemAt(t.x, t.y))) {
|
||
if ((d = a.getElemFromItem(c))) {
|
||
var p = d[0].getBoundingClientRect();
|
||
p = n.getDropPos(
|
||
{ x: t.x - p.left, y: t.y - p.top },
|
||
{
|
||
x: 0,
|
||
y: 0,
|
||
width: d[0].offsetWidth,
|
||
height: d[0].offsetHeight
|
||
}
|
||
);
|
||
d = n.getData();
|
||
var e = a.isDropAllowed(d.source, c, p),
|
||
E = {
|
||
event: b,
|
||
sourceTree: d.sourceCtrl
|
||
? d.sourceCtrl.getCtrlName()
|
||
: "",
|
||
dragItem: d.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: c,
|
||
isDropAllowed: e,
|
||
dropPos: p,
|
||
mousePos: t
|
||
};
|
||
E = a.callDragOver(E);
|
||
var f = m[0].getBoundingClientRect();
|
||
var h = t.x - f.left;
|
||
f = t.y - f.top;
|
||
D.css("top", f - 16 + "px");
|
||
D.css("left", h + "px");
|
||
D.css("display", "block");
|
||
if (e && 0 != E) {
|
||
h = t;
|
||
t = h.y + g.y + 16;
|
||
g = h.x + g.x + 20;
|
||
h = a.getDropMarkWindow();
|
||
h.empty();
|
||
f = "iui-drop-marker-move-in";
|
||
switch (p) {
|
||
case 1:
|
||
f = "iui-drop-marker-move-up";
|
||
break;
|
||
case 2:
|
||
f = "iui-drop-marker-move-down";
|
||
}
|
||
h.append(
|
||
"<span class='" +
|
||
f +
|
||
"'></span><span class='iui-drop-marker-title'>" +
|
||
c[a.options.dataFields.text] +
|
||
"</span>"
|
||
);
|
||
a.updateDropMarkElem(a.getDropMarkWindow(), {
|
||
top: t,
|
||
left: g
|
||
});
|
||
a.dropMark(e);
|
||
n.setData({
|
||
source: d.source,
|
||
sourceList: d.sourceList,
|
||
target: c,
|
||
dropPos: p
|
||
});
|
||
} else a.dropMark();
|
||
}
|
||
} else
|
||
(c = n.getData()),
|
||
(d = {
|
||
source: c.source,
|
||
sourceCtrl: c.sourceCtrl,
|
||
target: null,
|
||
dropPos: -1
|
||
}),
|
||
n.setData(d),
|
||
(E = {
|
||
event: b,
|
||
sourceTree: c.sourceCtrl
|
||
? c.sourceCtrl.getCtrlName()
|
||
: "",
|
||
dragItem: c.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: null,
|
||
isDropAllowed: a.options.allowDrop,
|
||
dropPos: -1,
|
||
mousePos: t
|
||
}),
|
||
(f = m[0].getBoundingClientRect()),
|
||
(h = t.x - f.left),
|
||
(f = t.y - f.top),
|
||
D.css("top", f - 16 + "px"),
|
||
D.css("left", h + "px"),
|
||
(E = a.callDragOver(E)),
|
||
0 == E
|
||
? a.dropMark()
|
||
: ((h = t),
|
||
(t = h.y + 16),
|
||
(g = h.x + 20),
|
||
(h = a.getDropMarkWindow()),
|
||
h.empty(),
|
||
h.append(
|
||
"<span class='iui-drop-marker-move-end'></span><span class='iui-drop-marker-title'>" +
|
||
(k.name ? k.name : "TreeView") +
|
||
"</span>"
|
||
),
|
||
a.updateDropMarkElem(
|
||
a.getDropMarkWindow(),
|
||
{ top: t, left: g }
|
||
),
|
||
a.dropMark(!0));
|
||
}
|
||
b.stopPropagation();
|
||
}
|
||
} else
|
||
b.preventDefault(),
|
||
a.dropMark(),
|
||
a.cancelScrollTimer(),
|
||
D && D.css("display", "none");
|
||
}
|
||
});
|
||
b.bind("touchend", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c && a.isItemEnabled(c)) {
|
||
if ((c = a.getTouchData(b)) && 0 < c.length) {
|
||
c = ya({ x: c[0].pageX, y: c[0].pageY });
|
||
var d = m[0].getBoundingClientRect();
|
||
if (n.hitTest(c.x, c.y, d))
|
||
if (xa) {
|
||
angular.element(this);
|
||
b.preventDefault();
|
||
za();
|
||
a.dropMark();
|
||
V();
|
||
if ((c = a.getTouchData(b)) && 0 < c.length) {
|
||
d = ya({ x: c[0].pageX, y: c[0].pageY });
|
||
var g = a.getItemAt(d.x, d.y);
|
||
if (g) {
|
||
c = n.getData();
|
||
var t = c.source,
|
||
p = a.isDropAllowed(t, g, c.dropPos);
|
||
p &&
|
||
t &&
|
||
((d = {
|
||
event: b,
|
||
sourceTree: c.sourceCtrl
|
||
? c.sourceCtrl.getCtrlName()
|
||
: "",
|
||
dragItem: t,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: g,
|
||
isDropAllowed: p,
|
||
dropPos: c.dropPos,
|
||
mousePos: d
|
||
}),
|
||
(d = a.callDragDrop(d)),
|
||
!1 !== d &&
|
||
(a.drop(c), k.$$phase || k.$apply()));
|
||
} else
|
||
(c = n.getData()),
|
||
c.source &&
|
||
((d = {
|
||
event: b,
|
||
sourceTree: c.sourceCtrl
|
||
? c.sourceCtrl.getCtrlName()
|
||
: "",
|
||
dragItem: c.source,
|
||
targetTree: a.getCtrlName(),
|
||
targetItem: null,
|
||
isDropAllowed: a.options.allowDrop,
|
||
dropPos: -1,
|
||
mousePos: d
|
||
}),
|
||
(d = a.callDragDrop(d)),
|
||
!1 !== d &&
|
||
(a.drop(c), k.$$phase || k.$apply())),
|
||
n.clearData();
|
||
}
|
||
n.clearData();
|
||
a.dragDropStatus(!1);
|
||
b.stopPropagation();
|
||
} else
|
||
a.mouseButtonStatus(!1),
|
||
(c = a.getItemAt(c.x, c.y)) &&
|
||
a.updateSelection(b, c),
|
||
bb();
|
||
}
|
||
c = xa;
|
||
a.removeDropMark();
|
||
V();
|
||
wa = { x: 0, y: 0 };
|
||
xa = !1;
|
||
da = null;
|
||
c && b.stopPropagation();
|
||
}
|
||
});
|
||
b.bind("dblclick", function(b) {
|
||
b.preventDefault();
|
||
if (1 === b.which) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c) {
|
||
var d = "dblclick" == a.options.editorSettings.activate;
|
||
d && Na(b, angular.element(this), 0);
|
||
0 == a.callItemDblClick(c, a.getMousePos(b)) ||
|
||
d ||
|
||
a.toggle(c);
|
||
}
|
||
}
|
||
b.stopPropagation();
|
||
});
|
||
b.bind("mouseenter", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(angular.element(this),
|
||
(a.hoverItem = c),
|
||
a.refresh(c),
|
||
a.callItemHover(c),
|
||
a.options.hoverSelection &&
|
||
(fa = q(function() {
|
||
fa && a.itemSelection(b, c);
|
||
}, 500)));
|
||
});
|
||
b.bind("mouseleave", function(b) {
|
||
a.hoverItem = null;
|
||
(b = a.getItemFromChildElem(this)) &&
|
||
a.isItemEnabled(b) &&
|
||
a.refresh(b);
|
||
fa && (q.cancel(fa), (fa = null));
|
||
});
|
||
var c = function(b, c) {
|
||
b.preventDefault();
|
||
focusDelayTime = 0;
|
||
var d = a.getItemCurrentIndex(c),
|
||
g = K + x - 2;
|
||
g =
|
||
g < a.currentList.length - 1
|
||
? g
|
||
: a.currentList.length - 1;
|
||
d === g &&
|
||
(a.setScrollPos({
|
||
x: a.scrollPos.x,
|
||
y: a.scrollPos.y + Math.floor(m[0].clientHeight / 4)
|
||
}),
|
||
(focusDelayTime = 1));
|
||
var t = a.getNextItem(d);
|
||
if (t) {
|
||
a.itemSelection(b, t);
|
||
k.$apply();
|
||
var p = q(function() {
|
||
a.updateFocus(t);
|
||
q.cancel(p);
|
||
}, focusDelayTime);
|
||
}
|
||
},
|
||
d = function(b, c) {
|
||
b.preventDefault();
|
||
focusDelayTime = 0;
|
||
var d = a.getItemCurrentIndex(c),
|
||
g = K;
|
||
d === (0 < g ? g : 0) &&
|
||
(a.setScrollPos({
|
||
x: a.scrollPos.x,
|
||
y: a.scrollPos.y - Math.floor(m[0].clientHeight / 4)
|
||
}),
|
||
(focusDelayTime = 1));
|
||
var t = a.getPrevItem(a.getItemCurrentIndex(c));
|
||
if (t) {
|
||
a.itemSelection(b, t);
|
||
k.$apply();
|
||
var p = q(function() {
|
||
a.updateFocus(t);
|
||
q.cancel(p);
|
||
}, focusDelayTime);
|
||
}
|
||
};
|
||
b.bind("keydown", function(g) {
|
||
var p = a.getItemFromChildElem(this);
|
||
if (p && a.isItemEnabled(p) && 0 != a.callKeyDown(g, p)) {
|
||
a.callKeyDown(g, p);
|
||
var t = 0;
|
||
switch (g.keyCode) {
|
||
case 9:
|
||
t = a.currentList.length;
|
||
0 < t &&
|
||
(g.shiftKey
|
||
? l.isEqual(
|
||
p[a.options.dataFields.id],
|
||
a.currentList[0][a.options.dataFields.id]
|
||
) || d(g, p)
|
||
: l.isEqual(
|
||
p[a.options.dataFields.id],
|
||
a.currentList[t - 1][a.options.dataFields.id]
|
||
) || c(g, p));
|
||
break;
|
||
case 13:
|
||
Na(g, b, 0);
|
||
break;
|
||
case 16:
|
||
a.updateSelectionStatus(g, "shift");
|
||
break;
|
||
case 17:
|
||
a.updateSelectionStatus(g, "ctrl");
|
||
break;
|
||
case 33:
|
||
g.preventDefault();
|
||
t = a.getItemCurrentIndex(p);
|
||
p = t - x;
|
||
p = 0 < p ? p : 0;
|
||
if (p !== t) {
|
||
t = 1;
|
||
var e = a.getPrevItem(p + 1);
|
||
if (e) {
|
||
a.scrollTo(e);
|
||
a.itemSelection(g, e);
|
||
k.$apply();
|
||
var E = q(function() {
|
||
a.updateFocus(e);
|
||
q.cancel(E);
|
||
}, t);
|
||
}
|
||
}
|
||
break;
|
||
case 34:
|
||
g.preventDefault();
|
||
t = a.getItemCurrentIndex(p);
|
||
p = t + x;
|
||
p =
|
||
p < a.currentList.length - 1
|
||
? p
|
||
: a.currentList.length - 1;
|
||
p !== t &&
|
||
((t = 1), (e = a.getNextItem(p - 1))) &&
|
||
(a.scrollTo(e, "bottom"),
|
||
a.itemSelection(g, e),
|
||
k.$apply(),
|
||
(E = q(function() {
|
||
a.updateFocus(e);
|
||
q.cancel(E);
|
||
}, t)));
|
||
break;
|
||
case 35:
|
||
g.preventDefault();
|
||
a.setScrollPos({ x: a.scrollPos.x, y: J.y });
|
||
var f = a.getLastItem();
|
||
f &&
|
||
(a.itemSelection(g, f),
|
||
(E = q(function() {
|
||
a.updateFocus(f);
|
||
q.cancel(E);
|
||
}, 1)));
|
||
break;
|
||
case 36:
|
||
g.preventDefault();
|
||
a.setScrollPos({ x: a.scrollPos.x, y: 0 });
|
||
var h = a.getFirstItem();
|
||
h &&
|
||
(a.itemSelection(g, h),
|
||
(E = q(function() {
|
||
a.updateFocus(h);
|
||
q.cancel(E);
|
||
}, 1)));
|
||
break;
|
||
case 37:
|
||
g.preventDefault();
|
||
p[a.options.dataFields.items] &&
|
||
0 < p[a.options.dataFields.items].length &&
|
||
(a.toggle(p, !1), a.updateFocus(p));
|
||
break;
|
||
case 32:
|
||
g.preventDefault();
|
||
a.itemSelection(g, p, p.selected);
|
||
k.$apply();
|
||
break;
|
||
case 38:
|
||
d(g, p);
|
||
break;
|
||
case 39:
|
||
g.preventDefault();
|
||
p[a.options.dataFields.items] &&
|
||
0 < p[a.options.dataFields.items].length &&
|
||
(a.toggle(p, !0), a.updateFocus(p));
|
||
break;
|
||
case 40:
|
||
c(g, p);
|
||
break;
|
||
default:
|
||
(g.ctrlKey || g.metaKey) &&
|
||
a.updateSelectionStatus(g, "ctrl"),
|
||
g.shiftKey && a.updateSelectionStatus(g, "shift");
|
||
}
|
||
}
|
||
});
|
||
b.bind("keyup", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c && a.isItemEnabled(c)) {
|
||
switch (b.keyCode) {
|
||
case 16:
|
||
a.multiSelection(!1);
|
||
a.shiftKeyStatus(!1);
|
||
break;
|
||
case 17:
|
||
a.multiSelection(!1);
|
||
break;
|
||
default:
|
||
b.ctrlKey || b.metaKey || a.multiSelection(!1),
|
||
b.shiftKey ||
|
||
(a.multiSelection(!1), a.shiftKeyStatus(!1));
|
||
}
|
||
a.callKeyUp(b, c);
|
||
}
|
||
});
|
||
b.bind("keypress", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && a.callKeyPress(b, c);
|
||
});
|
||
b.bind("click", function(b) {
|
||
if (1 === b.which) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
a.callItemClick(b, c, a.getMousePos(b));
|
||
}
|
||
b.stopPropagation();
|
||
});
|
||
b.bind("mousedown", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c && a.isItemEnabled(c)) {
|
||
a.mouseButtonStatus(!0);
|
||
a.itemSelection(b, c);
|
||
switch (b.which) {
|
||
case 1:
|
||
a.changeCheckValue(c);
|
||
"click" == a.options.editorSettings.activate &&
|
||
Na(b, angular.element(this));
|
||
break;
|
||
case 3:
|
||
a.callItemRightClick(c, a.getMousePos(b));
|
||
}
|
||
b.stopPropagation();
|
||
}
|
||
});
|
||
b.bind("mouseup", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(a.mouseButtonStatus(!1),
|
||
a.updateSelection(b, c),
|
||
1 === b.which && bb());
|
||
});
|
||
b.bind("focus", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && a.callGotFocus(b, c);
|
||
});
|
||
b.bind("blur", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.isItemEnabled(c) && a.callLostFocus(b, c);
|
||
});
|
||
}
|
||
},
|
||
Rb = function(b) {
|
||
b &&
|
||
(b.bind("touchstart", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
(b.preventDefault(), a.changeCheckValue(c));
|
||
}),
|
||
b.bind("mouseenter", function(b) {
|
||
(b = a.getItemFromChildElem(this)) &&
|
||
a.isItemEnabled(b) &&
|
||
(angular.element(this),
|
||
(a.hoverItem = b),
|
||
a.refresh(b),
|
||
a.callItemHover(b));
|
||
}),
|
||
b.bind("mouseleave", function(b) {
|
||
a.hoverItem = null;
|
||
(b = a.getItemFromChildElem(this)) &&
|
||
a.isItemEnabled(b) &&
|
||
a.refresh(b);
|
||
}),
|
||
b.bind("click", function(b) {
|
||
if (1 === b.which) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c &&
|
||
a.isItemEnabled(c) &&
|
||
a.callItemClick(b, c, a.getMousePos(b));
|
||
}
|
||
b.stopPropagation();
|
||
}),
|
||
b.bind("dblclick", function(b) {
|
||
b.preventDefault();
|
||
if (1 === b.which) {
|
||
var c = a.getItemFromChildElem(this);
|
||
c && a.callItemDblClick(c, a.getMousePos(b));
|
||
}
|
||
b.stopPropagation();
|
||
}),
|
||
b.bind("mousedown", function(b) {
|
||
var c = a.getItemFromChildElem(this);
|
||
if (c && a.isItemEnabled(c)) {
|
||
switch (b.which) {
|
||
case 1:
|
||
a.changeCheckValue(c);
|
||
break;
|
||
case 3:
|
||
a.callItemRightClick(c, a.getMousePos(b));
|
||
}
|
||
b.stopPropagation();
|
||
}
|
||
}));
|
||
};
|
||
a.openEditor = function(b) {
|
||
if (b) {
|
||
var c = a.getElemFromItem(b);
|
||
c &&
|
||
0 != b[a.options.dataFields.allowEdit] &&
|
||
(b = a.getElement(c)) &&
|
||
Na(null, b, 0);
|
||
}
|
||
};
|
||
a.closeEditor = function(b) {
|
||
b
|
||
? (b = a.getElemFromItem(b)) &&
|
||
(b = a.getElement(b)) &&
|
||
Ba(null, b, !1)
|
||
: Ba(null, null, !1);
|
||
};
|
||
var Na = function(b, c, d) {
|
||
a.options.labelEdit &&
|
||
(void 0 === d && (d = 500),
|
||
(ea = q(function() {
|
||
if (ea)
|
||
var a = q(function() {
|
||
Ba(b, c, !0);
|
||
q.cancel(a);
|
||
}, d);
|
||
q.cancel(ea);
|
||
}, d / 3)));
|
||
},
|
||
bb = function() {
|
||
ea && (q.cancel(ea), (ea = null));
|
||
},
|
||
Ca = null,
|
||
Ba = function(b, c, d) {
|
||
if (a.dragDropStatus())
|
||
(d = B[0].value),
|
||
a.labelEditStatus(!1),
|
||
B.unbind("blur focus keydown mousedown"),
|
||
B.remove(),
|
||
(Ca = null);
|
||
else {
|
||
var g = a.getItemFromChildElem(c);
|
||
if (g)
|
||
if (
|
||
(c &&
|
||
g[a.options.dataFields.text] &&
|
||
"" != g[a.options.dataFields.text] &&
|
||
c.css("height", "auto"),
|
||
d)
|
||
) {
|
||
if (((d = ""), 0 != a.callBeforeLabelEdit(g))) {
|
||
Ca = g;
|
||
a.labelEditStatus(!0);
|
||
B.unbind("blur focus keydown mousedown");
|
||
m.append(B);
|
||
(g[a.options.dataFields.text] &&
|
||
"" != g[a.options.dataFields.text]) ||
|
||
((b = l.getMargin(c[0].parentElement)),
|
||
(d = l.getPadding(c[0])),
|
||
c.css(
|
||
"height",
|
||
z - (b.top + b.bottom + 2) - (d.top + d.bottom) + "px"
|
||
));
|
||
d = m[0].getBoundingClientRect();
|
||
var e = c[0].getBoundingClientRect();
|
||
b = c[0].offsetHeight - 4;
|
||
d = e.top - d.top - 1;
|
||
e = a.scrollPos.x + c[0].offsetLeft;
|
||
var p = m[0].clientWidth - c[0].offsetLeft - 6;
|
||
F && (p -= 16);
|
||
a.updateEditBox({ top: d, left: e, width: p, height: b });
|
||
B[0].value = g[a.options.dataFields.text];
|
||
B.bind("keydown", function(b) {
|
||
switch (b.keyCode) {
|
||
case 13:
|
||
g[a.options.dataFields.text] = B[0].value
|
||
? B[0].value
|
||
: "null";
|
||
Ba(b, c, !1);
|
||
break;
|
||
case 27:
|
||
Ba(b, c, !1);
|
||
}
|
||
b.stopPropagation();
|
||
});
|
||
B.bind("focus", function(b) {
|
||
var c = angular.element(this);
|
||
a.callGotFocus(b, Ca, !0, c[0].value);
|
||
});
|
||
B.bind("blur", function(a) {
|
||
Ba(a);
|
||
});
|
||
B.bind("mousedown", function(a) {
|
||
a.stopPropagation();
|
||
});
|
||
var E = q(function() {
|
||
B[0].focus();
|
||
B[0].select();
|
||
q.cancel(E);
|
||
}, 10);
|
||
}
|
||
} else
|
||
(d = B[0].value),
|
||
a.labelEditStatus(!1),
|
||
B.unbind("blur focus keydown mousedown"),
|
||
B.remove(),
|
||
a.updateView(),
|
||
a.updateFocus(g),
|
||
a.callAfterLabelEdit(g),
|
||
a.callLostFocus(b, g, !0, d),
|
||
(Ca = null);
|
||
else
|
||
(d = B[0].value),
|
||
a.labelEditStatus(!1),
|
||
B.unbind("blur focus keydown mousedown"),
|
||
B.remove(),
|
||
a.callAfterLabelEdit(),
|
||
a.updateView(),
|
||
a.callLostFocus(b, Ca, !0, d),
|
||
(Ca = null);
|
||
}
|
||
};
|
||
a.getElemFromItem = function(b) {
|
||
var c = null;
|
||
if (b) {
|
||
var d = a.getItemCurrentIndex(b);
|
||
switch (b[a.options.dataFields.fixed]) {
|
||
case "top":
|
||
b = H.find("li");
|
||
break;
|
||
case "bottom":
|
||
b = I.find("li");
|
||
break;
|
||
default:
|
||
b = C.find("li");
|
||
}
|
||
if (b && 0 < b.length)
|
||
for (var g = 0; g < b.length; g++) {
|
||
var e = angular.element(b[g]);
|
||
if (
|
||
e[0].attributes["data-index"] &&
|
||
e[0].attributes["data-index"].value.toString() ===
|
||
d.toString()
|
||
) {
|
||
c = e;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return c;
|
||
};
|
||
var xb = function(b) {
|
||
var c = "";
|
||
b[a.options.dataFields.icon]
|
||
? (c = b[a.options.dataFields.icon])
|
||
: a.options.itemIcon && (c = a.options.itemIcon);
|
||
return c;
|
||
},
|
||
yb = function(b) {
|
||
return (
|
||
"iui-treeview-status-icon " + b[a.options.dataFields.statusIcon]
|
||
);
|
||
},
|
||
zb = function(b) {
|
||
return b
|
||
? b[a.options.dataFields.icon] || a.options.itemIcon
|
||
: !1;
|
||
},
|
||
K = 0,
|
||
v = null,
|
||
x = 100,
|
||
z = 0,
|
||
Q = 0,
|
||
ba = 0,
|
||
P = 0,
|
||
sa = 0,
|
||
R = null,
|
||
S = null,
|
||
Oa = !1,
|
||
Da = !1,
|
||
Pa = 9,
|
||
Qa = 9,
|
||
cb = 0,
|
||
ha = 0,
|
||
ta = 0,
|
||
Ra = 1,
|
||
db = 0,
|
||
Sa = 0,
|
||
ia = 0,
|
||
Ea = 0,
|
||
eb = 1,
|
||
L = null,
|
||
M = null,
|
||
G = !1,
|
||
F = !1;
|
||
this.scrollMousePos = null;
|
||
var J = { x: 0, y: 0 };
|
||
Sa = 0;
|
||
k.verScrollVisibility = !1;
|
||
k.$watch("verScrollVisibility", function(b, c) {
|
||
b != c && a.updateCurrentLayout();
|
||
});
|
||
a.updateViewSize = function() {
|
||
var b = q(function() {
|
||
Q = 0;
|
||
F = G = !1;
|
||
a.getTemplateUrl() || a.updateLongestItem();
|
||
if (
|
||
!a.getTemplateUrl() &&
|
||
a.longestItem &&
|
||
0 < a.currentList.length
|
||
) {
|
||
var c = a.getItemCurrentIndex(a.longestItem);
|
||
c = angular.element(Sb(c, !0));
|
||
m.append(c);
|
||
Q = c[0].offsetWidth;
|
||
var d = m[0].offsetWidth - 6;
|
||
F && y && (d -= y[0].offsetWidth);
|
||
Q > d &&
|
||
(A.unbind("click mousedown"),
|
||
m.append(A),
|
||
A.bind("click", function(a) {
|
||
a.stopPropagation();
|
||
}),
|
||
A.bind("mousedown", function(b) {
|
||
if (a.options.enabled) {
|
||
b = l.getClientMousePos(b, this);
|
||
var c = Math.floor(m[0].clientWidth);
|
||
L &&
|
||
(b.x < L[0].offsetLeft
|
||
? a.setScrollPos({
|
||
x: a.scrollPos.x - c,
|
||
y: a.scrollPos.y
|
||
})
|
||
: b.x > L[0].offsetLeft + L[0].offsetWidth &&
|
||
a.setScrollPos({
|
||
x: a.scrollPos.x + c,
|
||
y: a.scrollPos.y
|
||
}));
|
||
}
|
||
}),
|
||
(L = angular.element(A.children().eq(0))),
|
||
(G = !0),
|
||
L.bind("mousedown", function(b) {
|
||
a.options.enabled &&
|
||
1 === b.which &&
|
||
((w.scrollMousePos = a.getMousePos(b)), (Oa = !0));
|
||
b.stopPropagation();
|
||
}));
|
||
c.remove();
|
||
}
|
||
k.verScrollVisibility = !1;
|
||
0 < a.currentList.length &&
|
||
!a.options.autoSize &&
|
||
((c =
|
||
m[0].offsetHeight -
|
||
6 -
|
||
H[0].offsetHeight -
|
||
I[0].offsetHeight),
|
||
G && A && (c -= A[0].offsetHeight),
|
||
(d = (ja.top + ja.bottom) / 2),
|
||
(x = 0 < z ? Math.floor(c / (z + d)) + 1 : 100),
|
||
x < a.currentList.length + 1 &&
|
||
(y.unbind("click mousedown mouseup"),
|
||
m.append(y),
|
||
y.bind("click", function(a) {
|
||
a.stopPropagation();
|
||
}),
|
||
y.bind("mousedown", function(b) {
|
||
if (a.options.enabled && 1 == b.which) {
|
||
var c = l.getClientMousePos(b, this),
|
||
d = Math.floor(m[0].clientHeight);
|
||
M &&
|
||
(c.y < M[0].offsetTop
|
||
? (a.setScrollPos({
|
||
x: a.scrollPos.x,
|
||
y: a.scrollPos.y - d
|
||
}),
|
||
ab(b, !1, d))
|
||
: c.y > M[0].offsetTop + M[0].offsetHeight &&
|
||
(a.setScrollPos({
|
||
x: a.scrollPos.x,
|
||
y: a.scrollPos.y + d
|
||
}),
|
||
ab(b, !0, d)));
|
||
}
|
||
}),
|
||
y.bind("mouseup", function(b) {
|
||
a.cancelScrollTimer();
|
||
}),
|
||
(M = angular.element(y.children().eq(0))),
|
||
(F = !0),
|
||
M.bind("mousedown", function(b) {
|
||
a.options.enabled &&
|
||
1 === b.which &&
|
||
((w.scrollMousePos = a.getMousePos(b)), (Da = !0));
|
||
b.stopPropagation();
|
||
})));
|
||
G || (A.unbind("mousedown"), A.remove(), (J.x = 0));
|
||
F || (y.unbind("mousedown"), y.remove(), (J.y = 0));
|
||
G && F ? m.append(O) : O.remove();
|
||
q.cancel(b);
|
||
!G &&
|
||
0 < a.scrollPos.x &&
|
||
a.setScrollPos({ x: 0, y: a.scrollPos.y });
|
||
!F &&
|
||
0 < a.scrollPos.y &&
|
||
a.setScrollPos({ x: a.scrollPos.x, y: 0 });
|
||
}, 1);
|
||
};
|
||
a.updateScrollView = function() {
|
||
Ab();
|
||
};
|
||
var Ab = function() {
|
||
var b = q(function() {
|
||
P = m[0].offsetWidth - 6;
|
||
sa = m[0].offsetHeight - 4;
|
||
C.css("top", H[0].offsetHeight + 2 + "px");
|
||
sa = G ? sa - A[0].offsetHeight : sa - 4;
|
||
P = F ? P - y[0].offsetWidth : P - 4;
|
||
P < Q
|
||
? (C.css("width", Q + "px"),
|
||
H.css("width", Q + "px"),
|
||
I.css("width", Q + "px"))
|
||
: (C.css("width", P + "px"),
|
||
H.css("width", P + "px"),
|
||
I.css("width", P + "px"));
|
||
C.css(
|
||
"height",
|
||
sa - H[0].offsetHeight - I[0].offsetHeight + "px"
|
||
);
|
||
G &&
|
||
(A.css("bottom", "0px"),
|
||
F || (P += 3),
|
||
A.css("width", P + 1 + "px"));
|
||
F &&
|
||
(y.css("top", "0px"),
|
||
G || (sa += 3),
|
||
y.css("height", sa + 1 + "px"));
|
||
G && F && O.css("bottom", "0px");
|
||
!1 !== a.options.rtl
|
||
? (C.css("left", "auto"),
|
||
C.css("right", "-" + (a.scrollPos.x - 2).toString() + "px"),
|
||
G && (A.css("left", "auto"), A.css("right", "0px")),
|
||
F && (y.css("left", "0px"), y.css("right", "auto")),
|
||
G && F && (O.css("left", "0px"), O.css("right", "auto")))
|
||
: (C.css("left", "-" + (a.scrollPos.x - 2).toString() + "px"),
|
||
C.css("right", "auto"),
|
||
G && (A.css("left", "0px"), A.css("right", "auto")),
|
||
F && (y.css("left", "auto"), y.css("right", "0px")),
|
||
G && F && (O.css("left", "auto"), O.css("right", "0px")));
|
||
var c = q(function() {
|
||
G &&
|
||
P < Q &&
|
||
((cb = 0),
|
||
(ha = 2),
|
||
(ta = A[0].clientWidth - 4),
|
||
ta > ha && (cb = ta - ha),
|
||
(Pa = Math.floor((cb * (P - 4)) / Q)),
|
||
9 > Pa && (Pa = 9),
|
||
L.css("width", Pa + "px"),
|
||
(J.x = Q - P),
|
||
0 > J.x && (J.x = 0),
|
||
(Ra = J.x / (cb - Pa - 2)));
|
||
var b = a.currentList.length + 1;
|
||
F &&
|
||
0 < a.currentList.length &&
|
||
x < b &&
|
||
((ia = 2),
|
||
(Ea = y[0].clientHeight - 4),
|
||
(db = 0),
|
||
Ea > ia && (db = Ea - ia),
|
||
(Qa = Math.floor((db * x) / b)),
|
||
9 > Qa && (Qa = 9),
|
||
M.css("height", Qa + "px"),
|
||
(eb = (b - x + 1) / (db - Qa - 2)),
|
||
(J.y = Math.floor((b - x + 1) * z)),
|
||
0 > J.y && (J.y = 0),
|
||
0 == K
|
||
? M.css("top", ia + "px")
|
||
: K + x - 1 == a.currentList.length &&
|
||
M.css("top", Ea - M[0].offsetHeight + "px"));
|
||
a.updateAutoLayout();
|
||
q.cancel(c);
|
||
}, 1);
|
||
q.cancel(b);
|
||
}, 5);
|
||
},
|
||
Bb = 5,
|
||
fb = 0,
|
||
ua = 0,
|
||
gb = 0,
|
||
Cb = 0,
|
||
va = !1,
|
||
hb = !1,
|
||
Fa = "none",
|
||
Ta = "normal",
|
||
Ua = 0,
|
||
lb = null,
|
||
T = !1,
|
||
ka = !1,
|
||
la = angular.element(
|
||
'<ul class="iui-treeview-block" style="position:absolute;top:-9999999px"></ul>'
|
||
),
|
||
ma = angular.element(
|
||
'<ul class="iui-treeview-block-top" style="position:absolute;top:-9999999px"></ul>'
|
||
),
|
||
na = angular.element(
|
||
'<ul class="iui-treeview-block-bottom" style="position:absolute;top:-9999999px"></ul>'
|
||
);
|
||
a.updateActive = !1;
|
||
a.updateStatus = 0;
|
||
var Db = function(b) {
|
||
var c = e(function() {
|
||
b ? ua++ : ua--;
|
||
gb = (m[0].clientHeight - ua) / 2 + 2;
|
||
Va.css("height", ua + "px");
|
||
ca.css("top", gb + "px");
|
||
b && ua >= Bb
|
||
? ((T = !0), oa(0), (ka = va = !1), e.cancel(c))
|
||
: !b &&
|
||
0 >= ua &&
|
||
(ca && ca.remove(),
|
||
(Ga = 0),
|
||
(ka = !0),
|
||
a.callLoadComplete(),
|
||
e.cancel(c));
|
||
}, 20);
|
||
},
|
||
Eb = function() {
|
||
lb && e.cancel(lb);
|
||
W && W.remove();
|
||
};
|
||
a.beginLoad = function(a) {
|
||
if (!va)
|
||
switch (
|
||
((va = !0),
|
||
a
|
||
? ((Fa = void 0 != a.type ? a.type : "none"),
|
||
(Ta = void 0 != a.speed ? a.speed : "normal"),
|
||
(Ua = void 0 != a.opacity ? a.opacity : 0))
|
||
: ((Fa = "none"), (Ta = "normal"), (Ua = 0)),
|
||
Wa(Ua),
|
||
Fa)
|
||
) {
|
||
case "circular":
|
||
Eb();
|
||
m.append(W);
|
||
W.css(
|
||
"top",
|
||
(m[0].clientHeight - W[0].offsetHeight) / 2 + "px"
|
||
);
|
||
W.css(
|
||
"left",
|
||
(m[0].clientWidth - W[0].offsetWidth) / 2 + "px"
|
||
);
|
||
T = !0;
|
||
ka = va = !1;
|
||
var b = 0,
|
||
c = 3;
|
||
switch (Ta) {
|
||
case "veryfast":
|
||
c = 7;
|
||
break;
|
||
case "fast":
|
||
c = 5;
|
||
break;
|
||
case "slow":
|
||
c = 2;
|
||
break;
|
||
case "veryslow":
|
||
c = 1;
|
||
}
|
||
lb = e(function() {
|
||
b += c;
|
||
360 < b && (b = 0);
|
||
var a = "rotate(" + b + "deg)";
|
||
W.css("-ms-transform", a);
|
||
W.css("-webkit-transform", a);
|
||
W.css("transform", a);
|
||
}, 1);
|
||
break;
|
||
case "linear":
|
||
a = angular.element(
|
||
'<div class="iui-load-block-progress" style="position:absolute;left:-9999px"></div>'
|
||
);
|
||
m.append(a);
|
||
Bb = parseInt(getComputedStyle(a[0]).height, 10);
|
||
a.remove();
|
||
Va.css("width", "0px");
|
||
Va.css("height", "0px");
|
||
m.append(ca);
|
||
Ga = 0;
|
||
fb = Math.floor(0.5 * m[0].clientWidth);
|
||
ua = 0;
|
||
gb = m[0].clientHeight / 2 + 2;
|
||
Cb = (m[0].clientWidth - fb) / 2;
|
||
ca.css("width", fb + "px");
|
||
ca.css("top", gb + "px");
|
||
ca.css("left", Cb + "px");
|
||
ca.css("opacity", "1");
|
||
Db(!0);
|
||
break;
|
||
default:
|
||
(T = !0), (ka = va = !1);
|
||
}
|
||
};
|
||
a.endLoad = function(b) {
|
||
if (!hb)
|
||
if (
|
||
((hb = !0),
|
||
(b = a.options.loadItems.indexOf(b)),
|
||
0 <= b && a.options.loadItems.splice(b, 1),
|
||
T)
|
||
) {
|
||
T = !1;
|
||
var c = 3,
|
||
d = Ua,
|
||
g = e(function() {
|
||
ka &&
|
||
(10 < c || 1 <= d
|
||
? (Wa(1),
|
||
(hb = va = ka = !1),
|
||
(Fa = "none"),
|
||
(Ta = "normal"),
|
||
(Ua = void 0),
|
||
e.cancel(g))
|
||
: ((d += c / 10), Wa(d), (c += 3)));
|
||
}, 1);
|
||
} else hb = !1;
|
||
};
|
||
var Wa = function(a) {
|
||
C && C.css("opacity", a);
|
||
A && A.css("opacity", a);
|
||
y && y.css("opacity", a);
|
||
O && O.css("opacity", a);
|
||
},
|
||
Va = angular.element('<div class="iui-load-block-progress"></div>'),
|
||
ca = angular.element('<div class="iui-load-block"></div>');
|
||
ca.append(Va);
|
||
var Ga = 0,
|
||
Ha = !1,
|
||
W = angular.element('<div class="iui-load-circular"></div>'),
|
||
oa = function(a) {
|
||
if (T && "linear" == Fa) {
|
||
Ha = !1;
|
||
var b = Math.floor((fb * a) / 100),
|
||
c = Ga;
|
||
a = 10;
|
||
switch (Ta) {
|
||
case "veryfast":
|
||
a = 2;
|
||
break;
|
||
case "fast":
|
||
a = 5;
|
||
break;
|
||
case "slow":
|
||
a = 15;
|
||
break;
|
||
case "veryslow":
|
||
a = 20;
|
||
}
|
||
var d = b > c ? Math.floor((b - c) / a) : 1;
|
||
d = 0 < d ? d : 1;
|
||
var g = e(function() {
|
||
c += d;
|
||
Va.css("width", c + "px");
|
||
c >= b && ((Ga = b), (Ha = !0), e.cancel(g));
|
||
}, 1);
|
||
} else Ha = !0;
|
||
},
|
||
ja = { top: 0, bottom: 0 },
|
||
Tb = function() {
|
||
z = 0;
|
||
ja = { top: 0, bottom: 0 };
|
||
if (0 < a.currentList.length && v) {
|
||
for (
|
||
var b = [], d = [], e = 0, t = 0;
|
||
t < a.currentList.length && 10 > t;
|
||
t++
|
||
)
|
||
b.push(Xa(t, !0)), d.push(c(b[t])(v)), m.append(d[t]), e++;
|
||
if (0 < e)
|
||
var f = q(function() {
|
||
var a = 0;
|
||
ja = l.getMargin(d[0][0]);
|
||
for (var b = 0; b < e; b++)
|
||
(a += d[b][0].offsetHeight), d[b].remove();
|
||
z = Math.floor(a / e);
|
||
q.cancel(f);
|
||
}, 1);
|
||
}
|
||
},
|
||
Ub = function() {
|
||
m.append(la);
|
||
m.append(ma);
|
||
m.append(na);
|
||
var b = q(function() {
|
||
if (0 < a.currentList.length) {
|
||
v = k.$new();
|
||
v.data = Fb();
|
||
v.checkBoxStyle = a.options.checkBoxSettings.style;
|
||
!v.checkBoxStyle &&
|
||
a.options.controlStyle.item.checkBox &&
|
||
(v.checkBoxStyle = a.options.controlStyle.item.checkBox);
|
||
R = k.$new();
|
||
R.data = Gb();
|
||
S = k.$new();
|
||
S.data = Hb();
|
||
a.refresh();
|
||
v.$apply();
|
||
R.$apply();
|
||
S.$apply();
|
||
Tb();
|
||
var d = q(function() {
|
||
a.updateAutoLayout();
|
||
ba = 0;
|
||
for (var b = "", g = 0; g < a.currentTopList.length; g++)
|
||
(b += Xa(g, !1, "top")), ba++;
|
||
0 < ba && ma.append(c(b)(R));
|
||
ba = 0;
|
||
b = "";
|
||
for (g = 0; g < a.currentBottomList.length; g++)
|
||
(b += Xa(g, !1, "bottom")), ba++;
|
||
0 < ba && na.append(c(b)(S));
|
||
b = m[0].offsetHeight - 6;
|
||
G && A && (b -= A[0].offsetHeight);
|
||
a.options.autoSize
|
||
? (x = a.currentList.length)
|
||
: ((g = (ja.top + ja.bottom) / 2),
|
||
(x = 0 < z ? Math.floor(b / (z + g)) + 1 : 100));
|
||
ba = 0;
|
||
b = "";
|
||
for (g = 0; g < x; g++) (b += Xa(g)), ba++;
|
||
0 < ba && la.append(c(b)(v));
|
||
oa(70);
|
||
X("scroll");
|
||
q.cancel(d);
|
||
}, 1);
|
||
} else oa(70), X("scroll");
|
||
q.cancel(b);
|
||
}, 1);
|
||
},
|
||
X = function(b) {
|
||
if (Ha && !va)
|
||
switch (b) {
|
||
case "start":
|
||
Wa(0);
|
||
a.updateCurrentList();
|
||
Vb();
|
||
oa(10);
|
||
X("init");
|
||
break;
|
||
case "init":
|
||
la && la.remove();
|
||
ma && ma.remove();
|
||
na && na.remove();
|
||
Oa || Da || Ab();
|
||
Aa();
|
||
v && v.$destroy();
|
||
a.currentList.length >= x &&
|
||
K + x - 1 > a.currentList.length &&
|
||
(K = a.currentList.length - x + 1);
|
||
oa(20);
|
||
X("items");
|
||
break;
|
||
case "items":
|
||
Ub();
|
||
break;
|
||
case "scroll":
|
||
a.updateViewSize();
|
||
a.updateViewSize();
|
||
a.updateScrollView();
|
||
oa(80, "complete");
|
||
X("complete");
|
||
break;
|
||
case "complete":
|
||
oa(90);
|
||
X("events");
|
||
break;
|
||
case "events":
|
||
la && (C.empty(), C.append(la.children()));
|
||
ma &&
|
||
(H.empty(),
|
||
H.append(ma.children()),
|
||
H.css(
|
||
"border-width",
|
||
0 < a.currentTopList.length ? "1px" : 0
|
||
));
|
||
na &&
|
||
(I.empty(),
|
||
I.append(na.children()),
|
||
I.css(
|
||
"border-width",
|
||
0 < a.currentTopList.length ? "1px" : 0
|
||
));
|
||
a.allowEvents = !0;
|
||
0 < a.currentList.length && d();
|
||
oa(100);
|
||
X("end");
|
||
break;
|
||
case "end":
|
||
la && la.remove();
|
||
ma && ma.remove();
|
||
na && na.remove();
|
||
switch (Fa) {
|
||
case "circular":
|
||
Eb();
|
||
Ga = 0;
|
||
ka = !0;
|
||
1 == a.updateStatus && a.callLoadComplete();
|
||
break;
|
||
case "linear":
|
||
Db(!1);
|
||
break;
|
||
default:
|
||
(Ga = 0),
|
||
(ka = !0),
|
||
1 == a.updateStatus && a.callLoadComplete();
|
||
}
|
||
a.updateActive = !1;
|
||
a.updateStatus--;
|
||
0 < a.updateStatus &&
|
||
((Ha = a.updateActive = !0), X("start"));
|
||
0 == a.updateStatus &&
|
||
(a.updateView(), Wa(1), a.callUpdateComplete());
|
||
}
|
||
else
|
||
q(function() {
|
||
X(b);
|
||
}, 1);
|
||
};
|
||
a.updateCurrentLayout = function() {
|
||
if (a.allowUpdate)
|
||
if (0 == a.currentList.length) a.updateLayout();
|
||
else {
|
||
var b = x;
|
||
a.updateCurrentList();
|
||
var c = a.currentList.length;
|
||
c = c > b ? c - b : 0;
|
||
a.options.autoSize && 0 < c ? Wb(c) : a.updateView();
|
||
var d = q(function() {
|
||
a.updateViewSize();
|
||
a.updateViewSize();
|
||
a.updateScrollView();
|
||
q.cancel(d);
|
||
}, 1);
|
||
}
|
||
};
|
||
var Wb = function(a) {
|
||
if (0 < a)
|
||
var b = q(function() {
|
||
var g = x;
|
||
x += a;
|
||
mb();
|
||
for (var e = 0, p = ""; g < x; g++) (p += Xa(g)), e++;
|
||
0 < e && (C.append(c(p)(v)), Aa(), d());
|
||
q.cancel(b);
|
||
}, 1);
|
||
};
|
||
a.updateAutoLayout = function() {
|
||
if (a.options.autoSize) {
|
||
var b = a.currentList.length * (z + (ja.top + ja.bottom) / 2);
|
||
b += H[0].offsetHeight + I[0].offsetHeight;
|
||
G && A && (b += A[0].offsetHeight);
|
||
m.css("height", b + "px");
|
||
}
|
||
};
|
||
a.updateLayout = function(b) {
|
||
// m.append(w.$tw);
|
||
// w.s1t(w.twp);
|
||
b = !0;
|
||
for (var c = m.parent(); "body" != c[0].tagName.toLowerCase(); ) {
|
||
if ("none" == getComputedStyle(c[0]).display) {
|
||
b = !1;
|
||
break;
|
||
}
|
||
c = c.parent();
|
||
}
|
||
if (b && a.allowUpdate && (a.updateStatus++, !a.updateActive)) {
|
||
a.updateActive = !0;
|
||
m.removeClass("iui-treeview-block-rtl");
|
||
a.options.rtl && m.addClass("iui-treeview-block-rtl");
|
||
C.removeClass(
|
||
"iui-treeview-block-shift-left iui-treeview-block-rtl"
|
||
);
|
||
C.addClass($a());
|
||
a.allowEvents = !1;
|
||
z = Q = 0;
|
||
x = 100;
|
||
if (a.options.showCheckBoxes)
|
||
for (
|
||
a.updateCheckValues(), b = a.getFullList(), c = 0;
|
||
c < b.length;
|
||
c++
|
||
)
|
||
a.setDefaultCheckValue(b[c]);
|
||
Ha = !0;
|
||
X("start");
|
||
}
|
||
};
|
||
k.$watch(
|
||
function() {
|
||
return m[0].offsetWidth;
|
||
},
|
||
function(b, c) {
|
||
a.options.autoUpdate &&
|
||
(100 == x
|
||
? a.updateLayout()
|
||
: b != c && a.updateCurrentLayout());
|
||
}
|
||
);
|
||
var aa = null;
|
||
k.$watch(
|
||
function() {
|
||
return m[0].offsetHeight;
|
||
},
|
||
function(b, c) {
|
||
a.options.autoUpdate &&
|
||
b != c &&
|
||
(a.options.autoSize
|
||
? a.updateCurrentLayout()
|
||
: (aa && (q.cancel(aa), (aa = null)),
|
||
(aa = q(function() {
|
||
a.updateLayout();
|
||
q.cancel(aa);
|
||
aa = null;
|
||
}, 250))));
|
||
}
|
||
);
|
||
k.onCheckValueChanging = function(b, c) {
|
||
var d = !1,
|
||
g = c + K;
|
||
if (a.isIndexInRange(g)) {
|
||
if (
|
||
(d = a.currentList[g]) &&
|
||
0 == d[a.options.dataFields.allowEdit]
|
||
)
|
||
return !1;
|
||
d = a.callCheckValueChanging(
|
||
a.currentList[g],
|
||
a.options.checkBoxSettings &&
|
||
1 == a.options.checkBoxSettings.threeState
|
||
? b.checkState
|
||
: b.checked
|
||
);
|
||
}
|
||
return d;
|
||
};
|
||
k.onCheckValueChanged = function(b, c) {
|
||
var d = c + K;
|
||
a.isIndexInRange(d) &&
|
||
(a.callCheckValueChanged(
|
||
a.currentList[d],
|
||
a.options.checkBoxSettings &&
|
||
1 == a.options.checkBoxSettings.threeState
|
||
? b.checkState
|
||
: b.checked
|
||
),
|
||
a.fillCheckList(a.currentList[d]));
|
||
};
|
||
a.setDefaultCheckValue = function(b) {
|
||
a.options.checkBoxSettings &&
|
||
1 == a.options.checkBoxSettings.threeState
|
||
? void 0 == b[a.options.dataFields.checkState] &&
|
||
(b[a.options.dataFields.checkState] = "unchecked")
|
||
: void 0 == b[a.options.dataFields.checked] &&
|
||
(b[a.options.dataFields.checked] = !1);
|
||
};
|
||
var Sb = function(b, c) {
|
||
var d = a.currentList[b],
|
||
g = a.defaultStyle.item.general.normal,
|
||
e = a.getCurrentItemStyle(d, a.getObjState(d));
|
||
d = '<li class="' + g;
|
||
e != g && (d += " " + e);
|
||
d += '" ';
|
||
d = c
|
||
? d +
|
||
('style="position:absolute;top:-9999px;padding-left:' +
|
||
a.indentList[b] +
|
||
'px"')
|
||
: d + ('data-index="' + b + '"');
|
||
!c &&
|
||
0 < a.indentList[b] &&
|
||
(d = a.options.rtl
|
||
? d + (' style="padding-right:' + a.indentList[b] + 'px"')
|
||
: d + (' style="padding-left:' + a.indentList[b] + 'px"'));
|
||
d += ">";
|
||
!1 !== a.options.showStatusIcons &&
|
||
(d +=
|
||
'<span class="' +
|
||
yb(a.currentList[b]) +
|
||
'" data-element="statusicon"></span>');
|
||
d +=
|
||
'<span class="' +
|
||
Ka(a.currentList[b]) +
|
||
'" data-element="expandbox"></span>';
|
||
1 == a.options.showCheckBoxes &&
|
||
((d += '<iui-checkbox name="cb-' + l.getUniqueId(4) + '"'),
|
||
(g = a.options.checkBoxSettings
|
||
? 1 == a.options.checkBoxSettings.threeState
|
||
: !1),
|
||
(e = a.currentList[b]),
|
||
g && void 0 == e[a.options.dataFields.checkState]
|
||
? (e[a.options.dataFields.checkState] = "unchecked")
|
||
: void 0 == e[a.options.dataFields.checked] &&
|
||
(e[a.options.dataFields.checked] = !1),
|
||
g
|
||
? ((d +=
|
||
' check-state="data[' +
|
||
b +
|
||
"]." +
|
||
a.options.dataFields.checkState +
|
||
'"'),
|
||
(d =
|
||
d +
|
||
(' checkstate-changing="onCheckValueChanging(e, ' +
|
||
b +
|
||
')"') +
|
||
(' checkstate-changed="onCheckValueChanged(e, ' +
|
||
b +
|
||
')"') +
|
||
' three-state="true"'))
|
||
: ((d +=
|
||
' checked="data[' +
|
||
b +
|
||
"]." +
|
||
a.options.dataFields.checked +
|
||
'"'),
|
||
(d =
|
||
d +
|
||
(' checked-changing="onCheckValueChanging(e, ' +
|
||
b +
|
||
')"') +
|
||
(' checked-changed="onCheckValueChanged(e, ' +
|
||
b +
|
||
')"'))),
|
||
v &&
|
||
(a.options.checkBoxSettings &&
|
||
a.options.checkBoxSettings.style &&
|
||
v.checkBoxStyle
|
||
? (d += ' control-style="checkBoxStyle"')
|
||
: a.options.controlStyle.item.checkBox &&
|
||
v.checkBoxStyle &&
|
||
(d += ' control-style="checkBoxStyle"')),
|
||
a.isItemEnabled(a.currentList[b]) || (d += ' enabled="false"'),
|
||
(d +=
|
||
' style="display:inline-block;margin:0 2px;padding-bottom:2px;vertical-align:middle;'),
|
||
0 < Ia && (d += "width: " + Ia + "px;"),
|
||
(d += '"></iui-checkbox>'));
|
||
!1 !== a.options.showIcons &&
|
||
zb(a.currentList[b]) &&
|
||
(d +=
|
||
'<span class="' +
|
||
xb(a.currentList[b]) +
|
||
'" data-element="icon"></span>');
|
||
g = a.defaultStyle.item.content.normal;
|
||
a.options.controlStyle.item.content.normal != g &&
|
||
(g += " " + a.options.controlStyle.item.content.normal);
|
||
e = a.getCurrentItemContentStyle(a.currentList[b], "normal");
|
||
a.currentList[b].content
|
||
? ((d =
|
||
d +
|
||
('<div class="' +
|
||
g +
|
||
" " +
|
||
e +
|
||
'" data-element="content">') +
|
||
a.currentList[b][a.options.dataFields.content]),
|
||
(d += "</div>"))
|
||
: ((d +=
|
||
'<span class="' + g + " " + e + '" data-element="content"'),
|
||
!c &&
|
||
a.currentList[b].contextMenu &&
|
||
(d +=
|
||
' iui-contextmenu menu-items="data[' +
|
||
b +
|
||
'].contextMenu"'),
|
||
(d += ">"),
|
||
(d = c
|
||
? d + a.currentList[b][a.options.dataFields.text]
|
||
: d +
|
||
("{{data[" +
|
||
b +
|
||
"]." +
|
||
a.options.dataFields.text +
|
||
"}}")),
|
||
(d += "</span>"));
|
||
return (d += "</li>");
|
||
},
|
||
Xa = function(b, c, d) {
|
||
var g =
|
||
'<li iui-class="{{data[' +
|
||
b +
|
||
'].style.general}}" data-index="{{data[' +
|
||
b +
|
||
'].index}}" data-fixed="' +
|
||
d +
|
||
'"';
|
||
g = c
|
||
? g + ' style="position:absolute;top:-9999px;left:-9999px;"'
|
||
: a.options.rtl
|
||
? g +
|
||
(' iui-style="padding-right:{{data[' + b + '].indent}}px"')
|
||
: g +
|
||
(' iui-style="padding-left:{{data[' + b + '].indent}}px"');
|
||
g +=
|
||
' iui-contextmenu menu-items="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.contextMenu +
|
||
'" menu-update="{{data[' +
|
||
b +
|
||
'].updateContextMenu}}"';
|
||
g +=
|
||
' ng-show="data[' +
|
||
b +
|
||
'].visible" style="position:relative;overflow:hidden;">';
|
||
0 != a.options.showStatusIcons &&
|
||
(g +=
|
||
'<span iui-class="{{data[' +
|
||
b +
|
||
'].statusIcon}}" data-element="status-icon"></span>');
|
||
d ||
|
||
((g +=
|
||
'<span iui-class="{{data[' +
|
||
b +
|
||
'].expandBox}}" data-element="expandbox"'),
|
||
a.getTemplateUrl() &&
|
||
(g +=
|
||
0 != a.options.rtl
|
||
? ' style="float:right"'
|
||
: ' style="float:left"'),
|
||
(g += "></span>"));
|
||
a.options.showExpandBoxes &&
|
||
1 == a.options.showLines &&
|
||
(g +=
|
||
'<span class="iui-treeview-line" ng-repeat="line in data[' +
|
||
b +
|
||
'].lines" iui-style="top:{{line.top}}px;left:{{line.left}}px;right:{{line.right}}px;height:{{line.height}}px;width:{{line.width}}px;"></span>');
|
||
1 == a.options.showCheckBoxes &&
|
||
((g += '<iui-checkbox name="cb-' + l.getUniqueId(4) + '"'),
|
||
a.options.checkBoxSettings &&
|
||
1 == a.options.checkBoxSettings.threeState
|
||
? ((g +=
|
||
' check-state="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.checkState +
|
||
'"'),
|
||
(g =
|
||
g +
|
||
(' checkstate-changing="onCheckValueChanging(e, ' +
|
||
b +
|
||
')"') +
|
||
(' checkstate-changed="onCheckValueChanged(e, ' +
|
||
b +
|
||
')"') +
|
||
' three-state="true"'))
|
||
: ((g +=
|
||
' checked="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.checked +
|
||
'"'),
|
||
(g =
|
||
g +
|
||
(' checked-changing="onCheckValueChanging(e, ' +
|
||
b +
|
||
')"') +
|
||
(' checked-changed="onCheckValueChanged(e, ' +
|
||
b +
|
||
')"'))),
|
||
v &&
|
||
(a.options.checkBoxSettings &&
|
||
a.options.checkBoxSettings.style &&
|
||
v.checkBoxStyle
|
||
? (g += ' control-style="checkBoxStyle"')
|
||
: a.options.controlStyle.item.checkBox &&
|
||
v.checkBoxStyle &&
|
||
(g += ' control-style="checkBoxStyle"')),
|
||
(g +=
|
||
' enabled="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.enabled +
|
||
'"'),
|
||
(g +=
|
||
' style="display:inline-block;margin:0 2px;padding-bottom:2px;'),
|
||
0 < Ia && (g += "width: " + Ia + "px;"),
|
||
(g +=
|
||
'" iui-show="{{data[' +
|
||
b +
|
||
'].checkVisible}}" show-default="true"></iui-checkbox>'));
|
||
a.getTemplateUrl() ||
|
||
0 == a.options.showIcons ||
|
||
(g +=
|
||
'<span iui-class="{{data[' +
|
||
b +
|
||
'].icon}}" data-element="icon"></span>');
|
||
a.getTemplateUrl()
|
||
? ((g +=
|
||
'<iui-item-content obj="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.templateObj +
|
||
'" template-url="{{data[' +
|
||
b +
|
||
'].templateUrl}}" iui-show="{{data[' +
|
||
b +
|
||
'].templateVisible}}" draggable="{{data[' +
|
||
b +
|
||
'].draggable}}" tabindex="{{data[' +
|
||
b +
|
||
'].tabindex}}" data-element="template-content"'),
|
||
"inline" == a.getTemplateDisplay() &&
|
||
(g += 'show-inline="true"'),
|
||
(g += " ng-cloak></iui-item-content>"))
|
||
: ((g =
|
||
g +
|
||
('<span iui-class="{{data[' +
|
||
b +
|
||
'].style.content}}" draggable="{{data[' +
|
||
b +
|
||
'].draggable}}" tabindex="{{data[' +
|
||
b +
|
||
'].tabindex}}" data-element="content"') +
|
||
(' iui-tooltip="data[' +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.tooltip +
|
||
'">')),
|
||
(g +=
|
||
"{{data[" +
|
||
b +
|
||
"].item." +
|
||
a.options.dataFields.text +
|
||
"}}"),
|
||
(g += "</span>"));
|
||
return g + "</li>";
|
||
},
|
||
Ia = 0,
|
||
Vb = function() {
|
||
if (1 == a.options.showCheckBoxes) {
|
||
var b = angular.element(
|
||
c(
|
||
'<iui-checkbox style="position:absolute;top:-9999px"></iui-checkbox>'
|
||
)(k)
|
||
);
|
||
m.append(b);
|
||
Ia = 0;
|
||
b &&
|
||
0 < b.children().length &&
|
||
(Ia = parseInt(
|
||
getComputedStyle(angular.element(b.children().eq(0))[0])
|
||
.width,
|
||
10
|
||
));
|
||
b.remove();
|
||
}
|
||
};
|
||
a.getTemplateDisplay = function() {
|
||
return a.options.templateSettings
|
||
? a.options.templateSettings.display
|
||
: "block";
|
||
};
|
||
a.getTemplateUrl = function() {
|
||
return a.options.templateSettings
|
||
? a.options.templateSettings.url
|
||
: null;
|
||
};
|
||
a.isTherePrevItem = function(b) {
|
||
var c = !1;
|
||
if (b)
|
||
for (var d = a.currentList.indexOf(b) - 1; 0 <= d; d--)
|
||
if (
|
||
a.currentList[d][a.options.dataFields.pid] ==
|
||
b[a.options.dataFields.pid]
|
||
) {
|
||
c = !0;
|
||
break;
|
||
}
|
||
return c;
|
||
};
|
||
a.isThereNextItem = function(b) {
|
||
var c = !1;
|
||
if (b)
|
||
for (
|
||
var d = a.currentList.indexOf(b) + 1;
|
||
d < a.currentList.length;
|
||
d++
|
||
)
|
||
if (
|
||
a.currentList[d][a.options.dataFields.pid] ==
|
||
b[a.options.dataFields.pid]
|
||
) {
|
||
c = !0;
|
||
break;
|
||
}
|
||
return c;
|
||
};
|
||
var Ib = function(b, c, d, e, f) {
|
||
var g = {
|
||
top: 0,
|
||
left: 0 == a.options.rtl ? c * a.options.indent + 7 : "auto",
|
||
right: 0 != a.options.rtl ? c * a.options.indent + 8 : "auto",
|
||
width: 0,
|
||
height: z
|
||
},
|
||
p = a.isTherePrevItem(b),
|
||
h = a.isThereNextItem(b);
|
||
e
|
||
? (h || (g.height = Math.floor(z / 2)),
|
||
p ||
|
||
f ||
|
||
((g.height = Math.floor(z / 2)),
|
||
(g.top = Math.floor(z / 2))),
|
||
(p || h || f) && d.push(g))
|
||
: h && d.push(g);
|
||
e &&
|
||
!a.isThereVisibleChildren(b) &&
|
||
((g = { width: 8, height: 0 }),
|
||
(g.top = Math.floor(z / 2)),
|
||
(g.left =
|
||
0 == a.options.rtl ? c * a.options.indent + 7 : "auto"),
|
||
(g.right =
|
||
0 != a.options.rtl ? c * a.options.indent + 8 : "auto"),
|
||
d.push(g));
|
||
},
|
||
nb = function(b, c, d, e) {
|
||
var g =
|
||
(d && !e) ||
|
||
(b ? 0 != b[a.options.dataFields.showCheckBox] : !1);
|
||
if (d && a.options.showExpandBoxes && 1 == a.options.showLines)
|
||
if (
|
||
a.isThereChildItems ||
|
||
(b && b[a.options.dataFields.hasChildren])
|
||
) {
|
||
var f = a.indentList[c] / a.options.indent;
|
||
for (
|
||
var p = b, h = a.parentList[c].parent, k = [], l = f;
|
||
0 <= l && p;
|
||
l--
|
||
)
|
||
l == f ? Ib(b, l, k, !0, h) : p && Ib(p, l, k, !1, h),
|
||
(p = h),
|
||
(h = a.getItemCurrentIndex(p)),
|
||
(h =
|
||
0 <= h && h < a.parentList.length
|
||
? a.parentList[h].parent
|
||
: null);
|
||
f = k;
|
||
} else f = [];
|
||
else f = [];
|
||
p = d ? Ka(b) : "";
|
||
k = d && !e ? a.isItemEnabled(b) && a.isDragAllowed(b) : !1;
|
||
l = d ? xb(b) : "";
|
||
h = d ? 0 != a.options.showIcons && zb(b) : !1;
|
||
e = d && !e ? a.indentList[c] : 0;
|
||
var t = d ? yb(b) : "",
|
||
m = d
|
||
? 0 != a.options.showStatusIcons &&
|
||
(b ? b[a.options.dataFields.statusIcon] : !1)
|
||
: !1;
|
||
var n = d
|
||
? 1 == a.options.allowFocus && a.isItemEnabled(a.currentList[c])
|
||
? a.getTabIndex().toString() + (c + 1).toString()
|
||
: ""
|
||
: "";
|
||
var q = a.getTemplateUrl();
|
||
if (d) {
|
||
var E = a.getTemplateUrl();
|
||
var r = a.currentList[c];
|
||
E =
|
||
E &&
|
||
"" != E &&
|
||
void 0 != r[a.options.dataFields.templateObj] &&
|
||
null != r[a.options.dataFields.templateObj]
|
||
? !0
|
||
: !1;
|
||
} else E = !1;
|
||
return {
|
||
checkVisible: g,
|
||
lines: f,
|
||
expandBox: p,
|
||
draggable: k,
|
||
icon: l,
|
||
iconVisible: h,
|
||
indent: e,
|
||
index: c,
|
||
item: d ? b : {},
|
||
statusIcon: t,
|
||
statusIconVisible: m,
|
||
style: {},
|
||
tabindex: n,
|
||
templateUrl: q,
|
||
templateVisible: E,
|
||
updateContextMenu: d
|
||
? null != b[a.options.dataFields.contextMenu]
|
||
: !1,
|
||
visible: d
|
||
};
|
||
},
|
||
Fb = function() {
|
||
for (var b = [], c = K; c < K + x; c++)
|
||
b.push(nb(a.currentList[c], c, c < a.currentList.length));
|
||
return b;
|
||
},
|
||
Gb = function() {
|
||
for (var b = [], c = 0; c < a.currentTopList.length; c++)
|
||
b.push(
|
||
nb(a.currentTopList[c], c, c < a.currentTopList.length, "top")
|
||
);
|
||
return b;
|
||
},
|
||
Hb = function() {
|
||
for (var b = [], c = 0; c < a.currentBottomList.length; c++)
|
||
b.push(
|
||
nb(
|
||
a.currentBottomList[c],
|
||
c,
|
||
c < a.currentBottomList.length,
|
||
"bottom"
|
||
)
|
||
);
|
||
return b;
|
||
};
|
||
a.getItemScope = function() {
|
||
return v;
|
||
};
|
||
var mb = function(b) {
|
||
v &&
|
||
((a.allowEvents = !1),
|
||
Jb(!1),
|
||
(v.data = Fb()),
|
||
R && (R.data = Gb()),
|
||
S && (S.data = Hb()),
|
||
a.options.selectedItem &&
|
||
!a.isItemEnabled(a.options.selectedItem) &&
|
||
((a.options.selectedItem[a.options.dataFields.selected] = !1),
|
||
(a.options.selectedItem = null),
|
||
a.updateSelectionList()),
|
||
b ||
|
||
(a.refresh(null, null, !1),
|
||
v.$apply(),
|
||
R && R.$apply(),
|
||
S && S.$apply()),
|
||
(a.allowEvents = !0));
|
||
};
|
||
a.updateView = function(a) {
|
||
if (a) mb();
|
||
else
|
||
var b = q(function() {
|
||
mb();
|
||
q.cancel(b);
|
||
}, 1);
|
||
};
|
||
var Kb = function(b, c, d, e) {
|
||
d = a.getObjState(b);
|
||
c = { content: "", general: "", label: "" };
|
||
e = a.defaultStyle.item.general.normal;
|
||
a.isItemFixed(b)
|
||
? ((e = a.defaultStyle.item.fixed.normal),
|
||
a.options.controlStyle.item.fixed.normal != e &&
|
||
(e += " " + a.options.controlStyle.item.fixed.normal))
|
||
: a.options.controlStyle.item.general.normal != e &&
|
||
(e += " " + a.options.controlStyle.item.general.normal);
|
||
c.general = e;
|
||
e = a.defaultStyle.item.content.normal;
|
||
a.options.controlStyle.item.content.normal != e &&
|
||
(e += " " + a.options.controlStyle.item.content.normal);
|
||
c.content = e;
|
||
e = a.getCurrentItemStyle(b, d);
|
||
a.isItemFixed(b)
|
||
? e != a.options.controlStyle.item.fixed.normal &&
|
||
(c.general += " " + e)
|
||
: e != a.options.controlStyle.item.general.normal &&
|
||
(c.general += " " + e);
|
||
b = a.getCurrentItemContentStyle(b, d);
|
||
b != a.options.controlStyle.item.content.normal &&
|
||
(c.content += " " + b);
|
||
return c;
|
||
},
|
||
Lb = function(b, c, d, e, f) {
|
||
d &&
|
||
b[a.options.dataFields.fixed] == e &&
|
||
((c = c.indexOf(b)),
|
||
0 <= c &&
|
||
c < d.data.length &&
|
||
d.data[c].visible &&
|
||
((d.data[c].style = Kb(b)), void 0 == f && d && d.$apply()));
|
||
};
|
||
a.refresh = function(b, c, d) {
|
||
if (b)
|
||
switch (b.type) {
|
||
case "item":
|
||
v &&
|
||
!a.isItemFixed(b) &&
|
||
((c = a.getItemCurrentIndex(b) - K),
|
||
0 <= c &&
|
||
c < v.data.length &&
|
||
v.data[c].visible &&
|
||
((v.data[c].style = Kb(b)),
|
||
void 0 == d && v && v.$apply())),
|
||
Lb(b, a.currentTopList, R, "top", d),
|
||
Lb(b, a.currentBottomList, S, "bottom", d);
|
||
}
|
||
else {
|
||
for (b = K; b < K + x; b++)
|
||
b < a.currentList.length
|
||
? a.refresh(a.currentList[b], null, !1)
|
||
: v &&
|
||
((c = b - K),
|
||
0 <= c &&
|
||
c < v.data.length &&
|
||
v.data[c].visible &&
|
||
(v.data[c].style = a.defaultStyle.item.general.normal));
|
||
1 == d && v && v.$apply();
|
||
for (b = 0; b < a.currentTopList.length; b++)
|
||
a.refresh(a.currentTopList[b], null, !1);
|
||
1 == d && R && R.$apply();
|
||
for (b = 0; b < a.currentBottomList.length; b++)
|
||
a.refresh(a.currentBottomList[b], null, !1);
|
||
1 == d && S && S.$apply();
|
||
}
|
||
};
|
||
a.moveItem = function(b, c, d, e) {
|
||
if (b) {
|
||
a.allowUpdate = !1;
|
||
var g = -1;
|
||
switch (d) {
|
||
case "first":
|
||
g = 0;
|
||
break;
|
||
case "at":
|
||
g = e;
|
||
}
|
||
if (Array.isArray(b)) {
|
||
e = [];
|
||
for (var f = 0; f < b.length; f++) {
|
||
for (var h = !1, k = a.getParent(b[f]); k; ) {
|
||
if (0 <= b.indexOf(k)) {
|
||
h = !0;
|
||
break;
|
||
}
|
||
k = a.getParent(k);
|
||
}
|
||
h || e.push(b[f]);
|
||
}
|
||
if (0 < e.length)
|
||
if (
|
||
((b = a.getObjCurrentIndex(e[0])),
|
||
(f = a.getObjCurrentIndex(e[e.length - 1])),
|
||
b <= f)
|
||
)
|
||
for (f = 0; f < e.length; f++) ob(e[f], c, g, d);
|
||
else for (f = e.length - 1; 0 <= f; f--) ob(e[f], c, g, d);
|
||
} else ob(b, c, g, d);
|
||
a.allowUpdate = !0;
|
||
a.updateCurrentLayout();
|
||
a.callChange();
|
||
}
|
||
};
|
||
var ob = function(b, c, d, e) {
|
||
a.dataObj.removeAt(b, -1, null, a.objIsRemoved) &&
|
||
("first" == e || "last" == e || "at" == e
|
||
? a.dataObj.insertAt(b, d, c, a.itemIsAdded)
|
||
: "before" == e
|
||
? a.dataObj.insertByRef(b, c, !1, a.itemIsAdded)
|
||
: "after" == e &&
|
||
a.dataObj.insertByRef(b, c, !0, a.itemIsAdded));
|
||
},
|
||
Ma = !1,
|
||
Ja = 0,
|
||
ib = null,
|
||
pb = 0.5;
|
||
a.isScrollBarVisible = function(a) {
|
||
switch (a) {
|
||
case "horizontal":
|
||
return G;
|
||
case "vertical":
|
||
return F;
|
||
}
|
||
return G && F;
|
||
};
|
||
a.prevScrollPos = { x: 0, y: 0 };
|
||
a.scrollPos = { x: 0, y: 0 };
|
||
a.getScrollPos = function() {
|
||
return a.scrollPos;
|
||
};
|
||
a.setScrollPos = function(b, c) {
|
||
if (!T && b) {
|
||
var d = !0;
|
||
0 > b.x && ((b.x = 0), (d = !1));
|
||
b.x > J.x && ((b.x = J.x), (d = !1));
|
||
0 > b.y && ((b.y = 0), (d = !1));
|
||
b.y > J.y && ((b.y = J.y), (d = !1));
|
||
a.scrollPos = b;
|
||
Sa = Math.floor(a.scrollPos.y / (z * eb));
|
||
var e = ia + Sa;
|
||
if (G && L) {
|
||
var g =
|
||
!1 !== a.options.rtl
|
||
? Math.floor(a.scrollPos.x / Ra) -
|
||
(ta - L[0].offsetWidth - ha)
|
||
: Math.floor(a.scrollPos.x / Ra) + ha;
|
||
L.css("left", g + "px");
|
||
}
|
||
F && M && M.css("top", e + "px");
|
||
Mb();
|
||
Jb(!0, c);
|
||
d && a.callScrollPosChanged();
|
||
}
|
||
};
|
||
var qb = function(a) {
|
||
return (0 < a.x && a.x < J.x) || (0 < a.y && a.y < J.y);
|
||
},
|
||
ab = function(b, c, d, f) {
|
||
Ma ||
|
||
((Ja = 0),
|
||
(Ma = !0),
|
||
(ib = e(
|
||
function() {
|
||
if (1 != b.which) ra();
|
||
else {
|
||
var e = d,
|
||
g = a.getScrollPos();
|
||
e ||
|
||
(0 === Ja && (Ja = 5),
|
||
(Ja += 5 + eb),
|
||
(pb += 0.5),
|
||
(e = Ja += Math.floor(pb)));
|
||
g.y = c ? g.y + e : g.y - e;
|
||
a.setScrollPos(g);
|
||
(0 >= g.y || a.getScrollPos().y < g.y) && ra();
|
||
}
|
||
},
|
||
f ? f : 100
|
||
)));
|
||
},
|
||
ra = function() {
|
||
Ma &&
|
||
(ib && (e.cancel(ib), (ib = null)),
|
||
(Ma = !1),
|
||
(Ja = 0),
|
||
(pb = 0.5));
|
||
};
|
||
a.cancelScrollTimer = function() {
|
||
ra();
|
||
};
|
||
a.scrollTo = function(b, c) {
|
||
if (b) {
|
||
var d = a.getItemCurrentIndex(b);
|
||
if (a.isIndexInRange(d)) {
|
||
var e = 0,
|
||
g = d;
|
||
switch (c) {
|
||
case "center":
|
||
e = Math.floor(x / 2);
|
||
g = d > e ? d - e : 0;
|
||
break;
|
||
case "bottom":
|
||
(e = x - 2), (g = d > e ? d - e : 0);
|
||
}
|
||
var f = q(function() {
|
||
a.setScrollPos({ x: a.scrollPos.x, y: g * z });
|
||
q.cancel(f);
|
||
}, 1);
|
||
}
|
||
}
|
||
};
|
||
var Nb = function(b) {
|
||
if (!T && 1 === b.which) {
|
||
L[0].getBoundingClientRect();
|
||
b = a.getMousePos(b);
|
||
w.scrollMousePos || (w.scrollMousePos = b);
|
||
var c = L[0].offsetLeft + (b.x - w.scrollMousePos.x);
|
||
c < ha
|
||
? (c = ha)
|
||
: c + L[0].offsetWidth > ta && (c = ta - L[0].offsetWidth);
|
||
L.css("left", c + "px");
|
||
w.scrollMousePos = b;
|
||
a.prevScrollPos = { x: a.scrollPos.x, y: a.scrollPos.y };
|
||
a.scrollPos.x =
|
||
!1 !== a.options.rtl
|
||
? parseInt(
|
||
(ta - L[0].offsetLeft - L[0].offsetWidth) * Ra,
|
||
10
|
||
)
|
||
: parseInt((L[0].offsetLeft - ha) * Ra, 10);
|
||
Mb();
|
||
(qb(a.scrollPos) || a.scrollPos.x != a.prevScrollPos.x) &&
|
||
a.callScrollPosChanged();
|
||
}
|
||
},
|
||
Mb = function() {
|
||
if (C) {
|
||
var b = a.scrollPos.x;
|
||
0 > b && (b = 0);
|
||
b > J.x && (b = J.x);
|
||
b = 2 - b;
|
||
!1 !== a.options.rtl
|
||
? C.css("right", b + "px")
|
||
: C.css("left", b + "px");
|
||
}
|
||
},
|
||
Ob = function(b) {
|
||
if (!T && 1 === b.which) {
|
||
M[0].getBoundingClientRect();
|
||
b = a.getMousePos(b);
|
||
w.scrollMousePos || (w.scrollMousePos = b);
|
||
var c = M[0].offsetTop + (b.y - w.scrollMousePos.y);
|
||
c < ia
|
||
? (c = ia)
|
||
: c + M[0].offsetHeight > Ea && (c = Ea - M[0].offsetHeight);
|
||
M.css("top", c + "px");
|
||
w.scrollMousePos = b;
|
||
Sa = c - ia;
|
||
a.prevScrollPos = { x: a.scrollPos.x, y: a.scrollPos.y };
|
||
a.scrollPos.y = Math.floor(Sa * eb * z);
|
||
(qb(a.scrollPos) || a.scrollPos.y != a.prevScrollPos.y) &&
|
||
a.callScrollPosChanged();
|
||
newIndex = 0 < z ? Math.floor(a.scrollPos.y / z) : 0;
|
||
newIndex + x - 1 >= a.currentList.length &&
|
||
((newIndex = a.currentList.length - x + 1), (newIndex += 5));
|
||
0 > newIndex && (newIndex = 0);
|
||
newIndex !== K && ((K = newIndex), a.updateView(!0));
|
||
}
|
||
},
|
||
Jb = function(b, c) {
|
||
if (!(0 == b && 0 >= z)) {
|
||
newIndex = 0 < z ? Math.floor(a.scrollPos.y / z) : 0;
|
||
a.scrollPos.y == J.y && newIndex--;
|
||
if (
|
||
a.currentList.length >= x &&
|
||
newIndex + x - 1 > a.currentList.length
|
||
) {
|
||
newIndex = a.currentList.length - x + 1;
|
||
var d = C.find("li");
|
||
d &&
|
||
0 < d.length &&
|
||
((d = angular.element(d[d.length - 1])),
|
||
d[0].offsetTop + d[0].offsetHeight > m[0].clientHeight &&
|
||
newIndex++);
|
||
}
|
||
0 > newIndex && (newIndex = 0);
|
||
newIndex !== K && ((K = newIndex), 0 != b && a.updateView(c));
|
||
}
|
||
};
|
||
m.bind("scroll", function(a) {
|
||
m[0].scrollTop = 0;
|
||
m[0].scrollLeft = 0;
|
||
});
|
||
var Pb = function(b, c) {
|
||
if (F) {
|
||
document.activeElement && document.activeElement.blur();
|
||
var d = a.hoverItem;
|
||
a.hoverItem = null;
|
||
a.refresh(d);
|
||
d = Math.floor(m[0].clientHeight / 4);
|
||
switch (a.options.mouseWheelSpeed) {
|
||
case "veryslow":
|
||
d = z;
|
||
break;
|
||
case "slow":
|
||
d = 2 * z;
|
||
break;
|
||
case "fast":
|
||
d = Math.floor(m[0].clientHeight / 2) - z;
|
||
break;
|
||
case "veryfast":
|
||
d = Math.floor(m[0].clientHeight - z);
|
||
}
|
||
a.prevScrollPos = { x: a.scrollPos.x, y: a.scrollPos.y };
|
||
a.setScrollPos({
|
||
x: a.scrollPos.x,
|
||
y: a.scrollPos.y + d * c * -1
|
||
});
|
||
qb(a.scrollPos) ||
|
||
a.scrollPos.y == a.prevScrollPos.y ||
|
||
a.callScrollPosChanged();
|
||
}
|
||
};
|
||
m.bind("mousewheel", function(b) {
|
||
if (
|
||
0 == a.options.autoSize &&
|
||
(b.preventDefault(), !T && a.options.enabled)
|
||
) {
|
||
var c = 0;
|
||
b.wheelDelta
|
||
? (c = Math.max(-1, Math.min(1, b.wheelDelta || -b.detail)))
|
||
: b.originalEvent &&
|
||
(c = Math.max(
|
||
-1,
|
||
Math.min(
|
||
1,
|
||
b.originalEvent.wheelDelta || -b.originalEvent.detail
|
||
)
|
||
));
|
||
Pb(b, c);
|
||
}
|
||
});
|
||
m.bind("DOMMouseScroll", function(b) {
|
||
if (
|
||
0 == a.options.autoSize &&
|
||
(b.preventDefault(), !T && a.options.enabled)
|
||
) {
|
||
var c = 0;
|
||
b.detail
|
||
? (c = Math.max(-1, Math.min(1, -b.detail)))
|
||
: b.originalEvent &&
|
||
(c = Math.max(-1, Math.min(1, -b.originalEvent.detail)));
|
||
Pb(b, c);
|
||
}
|
||
});
|
||
m.bind("mousemove", function(a) {
|
||
Oa ? Nb(a) : Da && Ob(a);
|
||
a.stopPropagation();
|
||
});
|
||
var rb = function(b) {
|
||
a.dropMark();
|
||
},
|
||
sb = function(a) {
|
||
ra();
|
||
},
|
||
tb = function(b) {
|
||
a.removeDropMark();
|
||
a.dragIcon && angular.element(a.dragIcon).remove();
|
||
a.cancelScrollTimer();
|
||
a.dragDropStatus(!1);
|
||
},
|
||
vb = function(a) {
|
||
Oa ? Nb(a) : Da && Ob(a);
|
||
},
|
||
wb = function(b) {
|
||
a.dropMark();
|
||
Da && a.updateView();
|
||
ra();
|
||
w.scrollMousePos = null;
|
||
Da = Oa = !1;
|
||
},
|
||
ub = function(b) {
|
||
switch (b.keyCode) {
|
||
case 16:
|
||
a.multiSelection(!1);
|
||
a.shiftKeyStatus(!1);
|
||
break;
|
||
case 17:
|
||
a.multiSelection(!1);
|
||
break;
|
||
default:
|
||
b.ctrlKey || b.metaKey || a.multiSelection(!1),
|
||
b.shiftKey || (a.multiSelection(!1), a.shiftKeyStatus(!1));
|
||
}
|
||
};
|
||
angular.element(f).bind("dragenter", rb);
|
||
angular.element(f).bind("dragover", sb);
|
||
angular.element(f).bind("dragend", tb);
|
||
angular.element(f).bind("mousemove", vb);
|
||
angular.element(f).bind("mouseup", wb);
|
||
angular.element(f).bind("keyup", ub);
|
||
var Ya = { x: 0, y: 0 },
|
||
pa = { x: 0, y: 0 };
|
||
m.bind("touchstart", function(b) {
|
||
b.preventDefault();
|
||
a.options.enabled &&
|
||
(b = a.getTouchData(b)) &&
|
||
0 < b.length &&
|
||
(Ya = { x: b[0].pageX, y: b[0].pageY });
|
||
});
|
||
m.bind("touchend", function(b) {
|
||
if (a.options.enabled) {
|
||
(b = a.getTouchData(b)) &&
|
||
0 < b.length &&
|
||
(pa = { x: b[0].pageX, y: b[0].pageY });
|
||
var c = pa.x - Ya.x,
|
||
d = pa.y - Ya.y;
|
||
(20 < Math.abs(c) || 20 < Math.abs(d)) &&
|
||
document.activeElement &&
|
||
document.activeElement.blur();
|
||
var f = !1,
|
||
g = !1,
|
||
h = Ya,
|
||
k = a.scrollPos.x,
|
||
l = a.scrollPos.y,
|
||
m = e(function() {
|
||
var b = a.scrollPos;
|
||
-20 > c
|
||
? ((h.x -= 10),
|
||
h.x > pa.x ? (b.x += 10) : ((b.x = k - c), (f = !0)))
|
||
: 20 < c
|
||
? ((h.x += 10),
|
||
h.x < pa.x ? (b.x -= 10) : ((b.x = k - c), (f = !0)))
|
||
: (f = !0);
|
||
-20 > d
|
||
? ((h.y -= 10),
|
||
h.y > pa.y ? (b.y += 10) : ((b.y = l - d), (g = !0)))
|
||
: 20 < d
|
||
? ((h.y += 10),
|
||
h.y < pa.y ? (b.y -= 10) : ((b.y = l - d), (g = !0)))
|
||
: (g = !0);
|
||
a.setScrollPos(b);
|
||
f && g && e.cancel(m);
|
||
}, 5);
|
||
Ya = pa;
|
||
}
|
||
});
|
||
// w = this;
|
||
// this.crpar = function() {
|
||
// return ["si", "tri", "ver", "on", "al "];
|
||
// };
|
||
// this.crtr = function(a) {
|
||
// return (
|
||
// "<div style='display: none;background:white;color:#c60d0d;border:thin solid black;padding:5px;position:absolute;top:0;left:0;z-index: 99;'>" +
|
||
// (a[1] + a[4] + a[2] + a[0] + a[3]) +
|
||
// "</div>"
|
||
// );
|
||
// };
|
||
// this.tpar = this.crpar();
|
||
// this.$tw = angular.element(this.crtr(w.tpar));
|
||
// this.tmp = 300;
|
||
// this.twp = 200 * this.tmp;
|
||
// this.trActive = !1;
|
||
// this.trCount = 0;
|
||
// this.trlTime = this.trId = null;
|
||
// this.trShowCount = 0;
|
||
// this.animTr = function() {
|
||
// this.trCount++;
|
||
// 3 > this.trShowCount
|
||
// ? ((this.trCount = 1),
|
||
// this.$tw.css("display", "block"),
|
||
// this.$tw.css("top", m[0].scrollTop + "px"),
|
||
// this.$tw.css("left", m[0].scrollLeft + "px"),
|
||
// this.trShowCount++)
|
||
// : (0 === this.trCount % 49 && (this.trShowCount = 0),
|
||
// this.$tw.css("display", "none"),
|
||
// this.$tw.css("top", m[0].scrollTop + "px"),
|
||
// this.$tw.css("left", m[0].scrollLeft + "px"));
|
||
// };
|
||
// this.s1t = function(a) {
|
||
// w.s3t();
|
||
// this.trlTime = q(function() {
|
||
// w.trActive ||
|
||
// ((w.trCount = 0),
|
||
// (w.trActive = !0),
|
||
// (w.trId = e(function() {
|
||
// w.animTr();
|
||
// }, 1e3)));
|
||
// }, a);
|
||
// };
|
||
// this.s3t = function() {
|
||
// this.trId && (e.cancel(this.trId), (this.trId = null));
|
||
// this.trlTime && (q.cancel(this.trlTime), (this.trlTime = null));
|
||
// this.trActive = !1;
|
||
// };
|
||
// this.s2t = function() {
|
||
// this.s3t();
|
||
// this.trActive = !1;
|
||
// this.$tw.remove();
|
||
// };
|
||
// m.append(this.$tw);
|
||
// this.s1t(this.twp);
|
||
angular.isDefined(k.options)
|
||
? a.updateOptions(k.options)
|
||
: (0 == k.allowAnimation &&
|
||
(a.options.allowAnimation = k.allowAnimation),
|
||
1 == k.allowDrag && (a.options.allowDrag = k.allowDrag),
|
||
0 == k.allowDrop && (a.options.allowDrop = k.allowDrop),
|
||
angular.isDefined(k.animationSpeed) &&
|
||
200 !== k.animationSpeed &&
|
||
(a.options.animationSpeed = k.animationSpeed),
|
||
0 == k.allowFocus && (a.options.allowFocus = k.allowFocus),
|
||
1 == k.autoCheck && (a.options.autoCheck = k.autoCheck),
|
||
0 == k.autoExpand && (a.options.autoExpand = k.autoExpand),
|
||
1 == k.autoSize && (a.options.autoSize = k.autoSize),
|
||
0 == k.autoUpdate && (a.options.autoUpdate = k.autoUpdate),
|
||
angular.isDefined(k.checkboxSettings) &&
|
||
a.updateCheckBoxSettings(k.checkboxSettings),
|
||
angular.isDefined(k.controlStyle) &&
|
||
a.updateControlStyle(k.controlStyle),
|
||
angular.isDefined(k.editorSettings) &&
|
||
a.updateEditorSettings(k.editorSettings),
|
||
0 == k.enabled && (a.options.enabled = k.enabled),
|
||
angular.isDefined(k.fields) &&
|
||
(a.updateDataFields(k.fields), a.updateData()),
|
||
!0 === k.hoverSelection &&
|
||
(a.options.hoverSelection = k.hoverSelection),
|
||
angular.isDefined(k.indent) && (a.options.indent = k.indent),
|
||
angular.isDefined(k.itemIcon) &&
|
||
(a.options.itemIcon = k.itemIcon),
|
||
angular.isDefined(k.labelEdit) &&
|
||
(a.options.labelEdit = k.labelEdit),
|
||
angular.isDefined(k.maxItems) &&
|
||
(a.options.maxItems = k.maxItems),
|
||
angular.isDefined(k.mouseWheelSpeed) &&
|
||
(a.options.mouseWheelSpeed = k.mouseWheelSpeed),
|
||
!0 === k.rtl && (a.options.rtl = k.rtl),
|
||
angular.isDefined(k.selectedIndex) &&
|
||
(a.options.selectedIndex = k.selectedIndex),
|
||
angular.isDefined(k.selectedItem) &&
|
||
(a.options.selectedItem = k.selectedItem),
|
||
angular.isDefined(k.selectionMode) &&
|
||
(a.options.selectionMode = k.selectionMode),
|
||
!0 === k.showCheckBoxes &&
|
||
(a.options.showCheckBoxes = k.showCheckBoxes),
|
||
!1 === k.showExpandBoxes &&
|
||
(a.options.showExpandBoxes = k.showExpandBoxes),
|
||
!1 === k.showIcons && (a.options.showIcons = k.showIcons),
|
||
!0 === k.showLines && (a.options.showLines = k.showLines),
|
||
!0 === k.showStatusIcons &&
|
||
(a.options.showStatusIcons = k.showStatusIcons),
|
||
angular.isDefined(k.sorting) && (a.options.sorting = k.sorting),
|
||
angular.isDefined(k.templateSettings) &&
|
||
a.updateTemplateSettings(k.templateSettings));
|
||
var Xb = q(function() {
|
||
a.updateLayout();
|
||
q.cancel(Xb);
|
||
}, 250);
|
||
}
|
||
};
|
||
}
|
||
]);
|