Files
BlueLotus_XSSReceiver/static/js/jqxgrid.selection.js
firesun aaa17b1691 Version 2.0
实现基本功能
实现了基本界面admin.php
支持查看各种信息,支持自动base64解码

todolist
keepsession
认证
完全启用CSP
我的js
js模板

为实现一些jqxgrid无法实现的功能改动了jqx库,详见diff文件夹
2015-10-27 12:26:59 +08:00

2062 lines
89 KiB
JavaScript

/*
jQWidgets v3.9.0 (2015-Oct)
Copyright (c) 2011-2015 jQWidgets.
License: http://jqwidgets.com/license/
*/
(function(a) {
a.extend(a.jqx._jqxGrid.prototype, {
selectallrows: function() {
this._trigger = false;
var d = this.virtualmode ? this.dataview.totalrecords: this.dataview.loadedrecords.length;
this.selectedrowindexes = new Array();
var e = this.dataview.loadedrecords;
for (var c = 0; c < d; c++) {
var f = e[c];
if (!f) {
this.selectedrowindexes[c] = c;
continue
}
var b = this.getboundindex(f);
if (b != undefined) {
this.selectedrowindexes[c] = b
}
}
if (this.selectionmode == "checkbox" && !this._checkboxcolumnupdating) {
if (this._checkboxcolumn) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: true
})
}
}
this._renderrows(this.virtualsizeinfo);
this._trigger = true;
if (this.selectionmode == "checkbox") {
this._raiseEvent(2, {
rowindex: this.selectedrowindexes
})
}
},
unselectallrows: function() {
this._trigger = false;
var c = this.virtualmode ? this.dataview.totalrecords: this.dataview.loadedrecords.length;
this.selectedrowindexes = new Array();
var d = this.dataview.loadedrecords;
for (var b = 0; b < c; b++) {
var e = d[b];
if (!e) {
this.selectedrowindexes[b] = b;
continue
}
delete this.selectedrowindexes[b]
}
if (this.selectionmode == "checkbox" && !this._checkboxcolumnupdating) {
if (this._checkboxcolumn) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: false
})
}
}
this._renderrows(this.virtualsizeinfo);
this._trigger = true;
if (this.selectionmode == "checkbox") {
this._raiseEvent(2, {
rowindex: this.selectedrowindexes
})
}
},
selectrow: function(b, c) {
this._applyrowselection(b, true, c);
if (c !== false) {
this._updatecheckboxselection()
}
},
_updatecheckboxselection: function() {
if (this.selectionmode == "checkbox") {
var d = this.getrows();
if (d && this._checkboxcolumn) {
if (d.length === 0) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: false
});
return
}
var c = d.length;
if (this.groupable) {
c = this.dataview.loadedrecords.length
}
if (this.virtualmode) {
c = this.source._source.totalrecords
}
var b = this.selectedrowindexes.length;
if (b === c) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: true
})
} else {
if (b === 0) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: false
})
} else {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: null
})
}
}
}
}
},
unselectrow: function(b, c) {
this._applyrowselection(b, false, c);
if (c !== false) {
this._updatecheckboxselection()
}
},
selectcell: function(c, b) {
this._applycellselection(c, b, true)
},
unselectcell: function(c, b) {
this._applycellselection(c, b, false)
},
clearselection: function(c, d) {
this._trigger = false;
this.selectedrowindex = -1;
this._oldselectedcell = null;
if (d !== false) {
for (var b = 0; b < this.selectedrowindexes.length; b++) {
this._raiseEvent(3, {
rowindex: this.selectedrowindexes[b]
})
}
}
this.selectedrowindexes = new Array();
this.selectedcells = new Array();
this.selectedcell = null;
if (this.selectionmode == "checkbox" && !this._checkboxcolumnupdating) {
this._checkboxcolumn.checkboxelement.jqxCheckBox({
checked: false
})
}
if (false === c) {
this._trigger = true;
return
}
this._renderrows(this.virtualsizeinfo);
this._trigger = true;
if (this.selectionmode == "checkbox") {
this._raiseEvent(3, {
rowindex: this.selectedrowindexes
})
}
},
getselectedrowindex: function() {
if (this.selectedrowindex == -1 || this.selectedrowindex == undefined) {
for (var b = 0; b < this.selectedrowindexes.length; b++) {
return this.selectedrowindexes[b]
}
}
return this.selectedrowindex
},
getselectedrowindexes: function() {
return this.selectedrowindexes
},
getselectedcell: function() {
if (!this.selectedcell) {
return null
}
var b = this.selectedcell;
b.row = this.selectedcell.rowindex;
b.column = this.selectedcell.datafield;
b.value = this.getcellvalue(b.row, b.column);
return b
},
getselectedcells: function() {
var b = new Array();
for (obj in this.selectedcells) {
b[b.length] = this.selectedcells[obj]
}
return b
},
_getcellsforcopypaste: function() {
var e = new Array();
if (this.selectionmode.indexOf("cell") == -1) {
var h = this.selectedrowindexes;
for (var d = 0; d < h.length; d++) {
var c = h[d];
for (var f = 0; f < this.columns.records.length; f++) {
if (this.columns.records[f].datafield === "_checkboxcolumn") {
continue
}
var g = c + "_" + this.columns.records[f].datafield;
var b = {
rowindex: c,
datafield: this.columns.records[f].datafield
};
e.push(b)
}
}
}
return e
},
deleteselection: function() {
var d = this;
var f = d.getselectedcells();
if (this.selectionmode.indexOf("cell") == -1) {
f = this._getcellsforcopypaste()
}
if (f != null && f.length > 0) {
for (var e = 0; e < f.length; e++) {
var b = f[e];
var g = d.getcolumn(b.datafield);
var h = d.getcellvalue(b.rowindex, b.datafield);
if (!g) {
continue
}
if (h !== "") {
var c = null;
if (g.columntype == "checkbox") {
if (!g.threestatecheckbox) {
c = false
}
}
d._raiseEvent(17, {
rowindex: b.rowindex,
datafield: b.datafield,
value: h
});
if (e == f.length - 1) {
d.setcellvalue(b.rowindex, b.datafield, c, true);
if (g.displayfield != g.datafield) {
d.setcellvalue(b.rowindex, g.displayfield, c, true)
}
} else {
d.setcellvalue(b.rowindex, b.datafield, c, false);
if (g.displayfield != g.datafield) {
d.setcellvalue(b.rowindex, g.displayfield, c, true)
}
}
d._raiseEvent(18, {
rowindex: b.rowindex,
datafield: b.datafield,
oldvalue: h,
value: c
})
}
}
this.dataview.updateview();
this._renderrows(this.virtualsizeinfo)
}
},
copyselection: function() {
var n = "";
var s = this;
this.clipboardselection = {};
this.logicalclipboardselection = {};
this._clipboardselection = [];
var r = s.getselectedcells();
if (this.selectionmode.indexOf("cell") == -1) {
r = this._getcellsforcopypaste()
}
var b = 0;
var e = new Array();
if (r != null && r.length > 0) {
var t = 999999999999999;
var q = -1;
for (var j = 0; j < r.length; j++) {
var l = r[j];
var d = s.getcolumn(l.datafield);
if (d != null && d.clipboard && (!d.hidden || this.copytoclipboardhiddencolumns)) {
if (e.indexOf(d.text) == -1) {
e.push(d.text)
}
var p = s.getcelltext(l.rowindex, d.displayfield);
var h = this.getrowdisplayindex(l.rowindex);
if (!this.clipboardselection[h]) {
this.clipboardselection[h] = {}
}
this.clipboardselection[h][d.displayfield] = p;
if (!this.logicalclipboardselection[h]) {
this.logicalclipboardselection[h] = {}
}
this.logicalclipboardselection[h][d.displayfield] = p;
if (d.displayfield != d.datafield) {
this.logicalclipboardselection[h][d.datafield] = s.getcellvalue(l.rowindex, d.datafield)
}
t = Math.min(t, h);
q = Math.max(q, h)
}
}
var g = new Array();
for (var f = t; f <= q; f++) {
if (!this.logicalclipboardselection[f]) {
continue
}
var o = a.extend({},
this.logicalclipboardselection[f]);
g.push(o)
}
this.logicalclipboardselection = g;
if (this.copytoclipboardwithheaders) {
for (var c = 0; c < e.length; c++) {
if (c > 0) {
n += "\t"
}
n += e[c]
}
n += "\r\n"
}
for (var f = t; f <= q; f++) {
var k = 0;
this._clipboardselection[this._clipboardselection.length] = new Array();
if (this.clipboardselection[f] != undefined) {
a.each(this.clipboardselection[f],
function(i, m) {
if (k > 0) {
n += "\t"
}
var u = m;
if (m == null) {
u = ""
}
s._clipboardselection[s._clipboardselection.length - 1][k] = u;
k++;
n += u
})
} else {
continue
}
if (f < q) {
n += "\r\n"
}
}
}
this.clipboardselectedtext = n;
return n
},
pasteselection: function() {
var g = this.getselectedcells();
this._oldselectedcell = null;
if (this.selectionmode.indexOf("cell") == -1) {
g = this._getcellsforcopypaste()
}
if (g != null && g.length > 0) {
var h = g[0].rowindex;
var w = this.getrowdisplayindex(h);
var q = g[0].datafield;
var u = this._getcolumnindex(q);
var o = 0;
this.selectedrowindexes = new Array();
this.selectedcells = new Array();
var k = g.length;
var B = 0;
var d = new Array();
if (this.copytoclipboardwithheaders) {
this._clipboardselection.splice(0, 1)
}
for (var z = 0; z < this._clipboardselection.length; z++) {
B += this._clipboardselection[z].length;
d[z] = new Array();
for (var y = 0; y < this._clipboardselection[z].length; y++) {
var r = this._clipboardselection[z][y];
d[z].push(r)
}
}
if (B < g.length) {
var n = new Array();
for (var z = 0; z < g.length; z++) {
var e = g[z];
if (!n[e.rowindex]) {
n[e.rowindex] = new Array()
}
n[e.rowindex].push(e)
}
var A = 0;
var D = 0;
for (var z = 0; z < n.length; z++) {
if (!n[z]) {
continue
}
for (var y = 0; y < n[z].length; y++) {
var e = n[z][y];
var m = e.rowindex;
var f = this.getcolumn(e.datafield);
if (f.datafield === "_checkboxcolumn") {
continue
}
if (f.hidden) {
continue
}
var r = "";
if (!d[A][D]) {
D = 0
}
r = d[A][D];
D++;
if (f.cellsformat) {
if (f.cellsformat.indexOf("p") != -1 || f.cellsformat.indexOf("c") != -1 || f.cellsformat.indexOf("n") != -1 || f.cellsformat.indexOf("f") != -1) {
if (r.indexOf(this.gridlocalization.currencysymbol) > -1) {
r = r.replace(this.gridlocalization.currencysymbol, "")
}
var b = function(x, j, t) {
var c = x;
if (j == t) {
return x
}
var i = c.indexOf(j);
while (i != -1) {
c = c.replace(j, t);
i = c.indexOf(j)
}
return c
};
r = b(r, this.gridlocalization.thousandsseparator, "");
r = r.replace(this.gridlocalization.decimalseparator, ".");
if (r.indexOf(this.gridlocalization.percentsymbol) > -1) {
r = r.replace(this.gridlocalization.percentsymbol, "")
}
var E = "";
for (var s = 0; s < r.length; s++) {
var p = r.substring(s, s + 1);
if (p === "-") {
E += "-"
}
if (p === ".") {
E += "."
}
if (p.match(/^[0-9]+$/) != null) {
E += p
}
}
r = E;
r = r.replace(/ /g, "");
r = new Number(r);
if (isNaN(r)) {
r = ""
}
}
}
this._raiseEvent(17, {
rowindex: m,
datafield: e.datafield,
value: r
});
this.setcellvalue(m, f.displayfield, r, false);
if (f.displayfield != f.datafield && this.logicalclipboardselection) {
if (this.logicalclipboardselection[m]) {
var v = this.logicalclipboardselection[m][f.datafield];
if (v != undefined) {
this.setcellvalue(m, f.datafield, v, false)
}
}
}
this._raiseEvent(18, {
rowindex: m,
datafield: e.datafield,
oldvalue: this.getcellvalue(e.rowindex, e.datafield),
value: r
});
this._applycellselection(m, e.datafield, true, false)
}
A++;
if (!d[A]) {
A = 0
}
}
} else {
if (!this._clipboardselection) {
return
}
for (var l = 0; l < this._clipboardselection.length; l++) {
for (var C = 0; C < this._clipboardselection[l].length; C++) {
var f = this.getcolumnat(u + C);
if (!f) {
continue
}
if (f.datafield === "_checkboxcolumn") {
continue
}
if (f.hidden) {
continue
}
var m = this.getrowboundindex(w + l);
var e = this.getcell(m, f.datafield);
var r = null;
r = this._clipboardselection[l][C];
if (r != null) {
if (f.cellsformat) {
if (f.cellsformat.indexOf("p") != -1 || f.cellsformat.indexOf("c") != -1 || f.cellsformat.indexOf("n") != -1 || f.cellsformat.indexOf("f") != -1) {
if (r.indexOf(this.gridlocalization.currencysymbol) > -1) {
r = r.replace(this.gridlocalization.currencysymbol, "")
}
var b = function(x, j, t) {
var c = x;
if (j == t) {
return x
}
var i = c.indexOf(j);
while (i != -1) {
c = c.replace(j, t);
i = c.indexOf(j)
}
return c
};
r = b(r, this.gridlocalization.thousandsseparator, "");
r = r.replace(this.gridlocalization.decimalseparator, ".");
if (r.indexOf(this.gridlocalization.percentsymbol) > -1) {
r = r.replace(this.gridlocalization.percentsymbol, "")
}
var E = "";
for (var s = 0; s < r.length; s++) {
var p = r.substring(s, s + 1);
if (p === "-") {
E += "-"
}
if (p === ".") {
E += "."
}
if (p.match(/^[0-9]+$/) != null) {
E += p
}
}
r = E;
r = r.replace(/ /g, "");
r = new Number(r);
if (isNaN(r)) {
r = ""
}
}
}
this._raiseEvent(17, {
rowindex: m,
datafield: e.datafield,
value: r
});
this.setcellvalue(m, f.displayfield, r, false);
if (f.displayfield != f.datafield && this.logicalclipboardselection) {
var v = this.logicalclipboardselection[l][f.datafield];
if (v != undefined) {
this.setcellvalue(m, f.datafield, v, false)
}
}
this._raiseEvent(18, {
rowindex: m,
datafield: e.datafield,
oldvalue: this.getcellvalue(e.rowindex, e.datafield),
value: r
});
this._applycellselection(m, e.datafield, true, false)
}
}
}
}
if (this.selectionmode == "checkbox") {
this._updatecheckboxselection()
}
this.dataview.updateview();
this._renderrows(this.virtualsizeinfo)
}
if (this.clipboardend) {
this.clipboardend("paste")
}
},
_applyrowselection: function(e, i, f, h, b) {
if (e == null) {
return false
}
var j = this.selectedrowindex;
if (this.selectionmode == "singlerow") {
if (i) {
this._raiseEvent(2, {
rowindex: e,
row: this.getrowdata(e)
})
} else {
this._raiseEvent(3, {
rowindex: e,
row: this.getrowdata(e)
})
}
this._raiseEvent(3, {
rowindex: j
});
this.selectedrowindexes = new Array();
this.selectedcells = new Array()
}
if (h == true) {
this.selectedrowindexes = new Array()
}
if (this.dataview.filters.length > 0) {
var c = this.getrowdata(e);
if (c && c.dataindex !== undefined) {
e = c.dataindex
} else {
if (c && c.dataindex === undefined) {
if (c.uid != undefined) {
e = this.getrowboundindexbyid(c.uid)
}
}
}
}
var d = this.selectedrowindexes.indexOf(e);
if (i) {
this.selectedrowindex = e;
if (d == -1) {
this.selectedrowindexes.push(e);
if (this.selectionmode != "singlerow") {
this._raiseEvent(2, {
rowindex: e,
row: this.getrowdata(e)
})
}
} else {
if (this.selectionmode == "multiplerows") {
this.selectedrowindexes.splice(d, 1);
this._raiseEvent(3, {
rowindex: this.selectedrowindex,
row: this.getrowdata(e)
});
this.selectedrowindex = this.selectedrowindexes.length > 0 ? this.selectedrowindexes[this.selectedrowindexes.length - 1] : -1
}
}
} else {
if (d >= 0 || this.selectionmode == "singlerow" || this.selectionmode == "multiplerowsextended" || this.selectionmode == "multiplerowsadvanced") {
var g = this.selectedrowindexes[d];
this.selectedrowindexes.splice(d, 1);
this._raiseEvent(3, {
rowindex: g,
row: this.getrowdata(e)
});
this.selectedrowindex = -1
}
}
if (f == undefined || f) {
this._rendervisualrows()
}
return true
},
_applycellselection: function(e, b, h, f) {
if (e == null) {
return false
}
if (b == null) {
return false
}
var j = this.selectedrowindex;
if (this.selectionmode == "singlecell") {
var d = this.selectedcell;
if (d != null) {
this._raiseEvent(16, {
rowindex: d.rowindex,
datafield: d.datafield
})
}
this.selectedcells = new Array()
}
if (this.selectionmode == "multiplecellsextended" || this.selectionmode == "multiplecellsadvanced") {
var d = this.selectedcell;
if (d != null) {
this._raiseEvent(16, {
rowindex: d.rowindex,
datafield: d.datafield
})
}
}
var g = e + "_" + b;
if (this.dataview.filters.length > 0) {
var c = this.getrowdata(e);
if (c && c.dataindex !== undefined) {
e = c.dataindex;
var g = e + "_" + b
} else {
if (c && c.dataindex === undefined) {
if (c.uid) {
e = this.getrowboundindexbyid(c.uid);
var g = e + "_" + b
}
}
}
}
var i = {
rowindex: e,
datafield: b
};
if (h) {
this.selectedcell = i;
if (!this.selectedcells[g]) {
this.selectedcells[g] = i;
this.selectedcells.length++;
this._raiseEvent(15, i)
} else {
if (this.selectionmode == "multiplecells" || this.selectionmode == "multiplecellsextended" || this.selectionmode == "multiplecellsadvanced") {
delete this.selectedcells[g];
if (this.selectedcells.length > 0) {
this.selectedcells.length--
}
this._raiseEvent(16, i)
}
}
} else {
delete this.selectedcells[g];
if (this.selectedcells.length > 0) {
this.selectedcells.length--
}
this._raiseEvent(16, i)
}
if (f == undefined || f) {
this._rendervisualrows()
}
return true
},
_getcellindex: function(b) {
var c = -1;
a.each(this.selectedcells,
function() {
c++;
if (this[b]) {
return false
}
});
return c
},
_clearhoverstyle: function() {
if (undefined == this.hoveredrow || this.hoveredrow == -1) {
return
}
if (this.vScrollInstance.isScrolling()) {
return
}
if (this.hScrollInstance.isScrolling()) {
return
}
var b = this.table.find(".jqx-grid-cell-hover");
if (b.length > 0) {
b.removeClass(this.toTP("jqx-grid-cell-hover"));
b.removeClass(this.toTP("jqx-fill-state-hover"))
}
this.hoveredrow = -1
},
_clearselectstyle: function() {
var k = this.table[0].rows.length;
var p = this.table[0].rows;
var l = this.toTP("jqx-grid-cell-selected");
var c = this.toTP("jqx-fill-state-pressed");
var m = this.toTP("jqx-grid-cell-hover");
var h = this.toTP("jqx-fill-state-hover");
for (var g = 0; g < k; g++) {
var b = p[g];
var f = b.cells.length;
var o = b.cells;
for (var e = 0; e < f; e++) {
var d = o[e];
var n = a(d);
if (d.className.indexOf("jqx-grid-cell-selected") != -1) {
n.removeClass(l);
n.removeClass(c)
}
if (d.className.indexOf("jqx-grid-cell-hover") != -1) {
n.removeClass(m);
n.removeClass(h)
}
}
}
},
_selectpath: function(n, e) {
var l = this;
var i = this._lastClickedCell ? Math.min(this._lastClickedCell.row, n) : 0;
var k = this._lastClickedCell ? Math.max(this._lastClickedCell.row, n) : 0;
if (i <= k) {
var h = this._getcolumnindex(this._lastClickedCell.column);
var g = this._getcolumnindex(e);
var f = Math.min(h, g);
var d = Math.max(h, g);
this.selectedcells = new Array();
var m = this.dataview.loadedrecords;
for (var b = i; b <= k; b++) {
for (var j = f; j <= d; j++) {
var n = m[b];
this._applycellselection(l.getboundindex(n), l._getcolumnat(j).datafield, true, false)
}
}
this._rendervisualrows()
}
},
_selectrowpath: function(g) {
if (this.selectionmode == "multiplerowsextended") {
var c = this;
var b = this._lastClickedCell ? Math.min(this._lastClickedCell.row, g) : 0;
var h = this._lastClickedCell ? Math.max(this._lastClickedCell.row, g) : 0;
var f = this.dataview.loadedrecords;
if (b <= h) {
this.selectedrowindexes = new Array();
for (var e = b; e <= h; e++) {
var g = f[e];
var d = this.getrowboundindex(e);
this._applyrowselection(d, true, false)
}
this._rendervisualrows()
}
}
},
_selectrowwithmouse: function(p, b, c, f, d, s) {
var j = b.row;
if (j == undefined) {
return
}
var k = b.index;
if (this.hittestinfo[k] == undefined) {
return
}
var t = this.hittestinfo[k].visualrow;
if (this.hittestinfo[k].details) {
return
}
var m = t.cells[0].className;
if (j.group) {
return
}
if (this.selectionmode == "multiplerows" || this.selectionmode == "multiplecells" || this.selectionmode == "checkbox" || (this.selectionmode.indexOf("multiple") != -1 && (s == true || d == true))) {
var l = this.getboundindex(j);
if (this.dataview.filters.length > 0) {
var v = this.getrowdata(l);
if (v) {
l = v.dataindex;
if (l == undefined) {
var l = this.getboundindex(j)
}
}
}
var q = c.indexOf(l) != -1;
var w = this.getboundindex(j) + "_" + f;
if (this.selectionmode.indexOf("cell") != -1) {
var h = this.selectedcells[w] != undefined;
if (this.selectedcells[w] != undefined && h) {
this._selectcellwithstyle(p, false, k, f, t)
} else {
this._selectcellwithstyle(p, true, k, f, t)
}
if (s && this._lastClickedCell == undefined) {
var g = this.getselectedcells();
if (g && g.length > 0) {
this._lastClickedCell = {
row: g[0].rowindex,
column: g[0].datafield
}
}
}
if (s && this._lastClickedCell) {
this._selectpath(j.visibleindex, f);
this.mousecaptured = false;
if (this.selectionarea.css("visibility") == "visible") {
this.selectionarea.css("visibility", "hidden")
}
}
} else {
if (q) {
if (d) {
this._applyrowselection(this.getboundindex(j), false)
} else {
this._selectrowwithstyle(p, t, false, f)
}
} else {
this._selectrowwithstyle(p, t, true, f)
}
if (s && this._lastClickedCell == undefined) {
var i = this.getselectedrowindexes();
if (i && i.length > 0) {
this._lastClickedCell = {
row: i[0],
column: f
}
}
}
if (s && this._lastClickedCell) {
this.selectedrowindexes = new Array();
var e = this._lastClickedCell ? Math.min(this._lastClickedCell.row, j.visibleindex) : 0;
var u = this._lastClickedCell ? Math.max(this._lastClickedCell.row, j.visibleindex) : 0;
var n = this.dataview.loadedrecords;
for (var o = e; o <= u; o++) {
var j = n[o];
if (j) {
this._applyrowselection(this.getboundindex(j), true, false, false)
}
}
this._rendervisualrows()
}
}
} else {
this._clearselectstyle();
this._selectrowwithstyle(p, t, true, f);
if (this.selectionmode.indexOf("cell") != -1) {
this._selectcellwithstyle(p, true, k, f, t)
}
}
if (!s) {
this._lastClickedCell = {
row: j.visibleindex,
column: f
}
}
},
_selectcellwithstyle: function(d, c, g, f, e) {
var b = a(e.cells[d._getcolumnindex(f)]);
b.removeClass(this.toTP("jqx-grid-cell-hover"));
b.removeClass(this.toTP("jqx-fill-state-hover"));
if (c) {
b.addClass(this.toTP("jqx-grid-cell-selected"));
b.addClass(this.toTP("jqx-fill-state-pressed"))
} else {
b.removeClass(this.toTP("jqx-grid-cell-selected"));
b.removeClass(this.toTP("jqx-fill-state-pressed"))
}
},
_selectrowwithstyle: function(e, h, b, j) {
var c = h.cells.length;
var f = 0;
if (e.rowdetails && e.showrowdetailscolumn) {
if (!this.rtl) {
f = 1 + this.groups.length
} else {
c -= 1;
c -= this.groups.length
}
} else {
if (this.groupable) {
if (!this.rtl) {
f = this.groups.length
} else {
c -= this.groups.length
}
}
}
for (var g = f; g < c; g++) {
var d = h.cells[g];
if (b) {
a(d).removeClass(this.toTP("jqx-grid-cell-hover"));
a(d).removeClass(this.toTP("jqx-fill-state-hover"));
if (e.selectionmode.indexOf("cell") == -1) {
a(d).addClass(this.toTP("jqx-grid-cell-selected"));
a(d).addClass(this.toTP("jqx-fill-state-pressed"))
}
} else {
a(d).removeClass(this.toTP("jqx-grid-cell-hover"));
a(d).removeClass(this.toTP("jqx-grid-cell-selected"));
a(d).removeClass(this.toTP("jqx-fill-state-hover"));
a(d).removeClass(this.toTP("jqx-fill-state-pressed"))
}
}
},
_handlemousemoveselection: function(ab, o) {
if (o.hScrollInstance.isScrolling() || o.vScrollInstance.isScrolling()) {
return false
}
if ((o.selectionmode == "multiplerowsextended" || o.selectionmode == "multiplecellsextended" || o.selectionmode == "multiplecellsadvanced") && o.mousecaptured) {
if (o.multipleselectionbegins) {
var b = o.multipleselectionbegins(ab);
if (b === false) {
return true
}
}
var aa = this.showheader ? this.columnsheader.height() + 2 : 0;
var I = this._groupsheader() ? this.groupsheader.height() : 0;
var K = this.showtoolbar ? this.toolbar.height() : 0;
I += K;
var Z = this.host.coord();
if (this.hasTransform) {
Z = a.jqx.utilities.getOffset(this.host);
var ad = this._getBodyOffset();
Z.left -= ad.left;
Z.top -= ad.top
}
if (this.host.css("border-top-width") === "0px") {
I -= 2
}
var M = ab.pageX;
var L = ab.pageY - I;
if (Math.abs(this.mousecaptureposition.left - M) > 3 || Math.abs(this.mousecaptureposition.top - L) > 3) {
var f = parseInt(this.columnsheader.coord().top);
if (this.hasTransform) {
f = a.jqx.utilities.getOffset(this.columnsheader).top
}
if (M < Z.left) {
M = Z.left
}
if (M > Z.left + this.host.width()) {
M = Z.left + this.host.width()
}
var X = Z.top + aa;
if (L < X) {
L = X + 5
}
var J = parseInt(Math.min(o.mousecaptureposition.left, M));
var g = -5 + parseInt(Math.min(o.mousecaptureposition.top, L));
var H = parseFloat(Math.abs(o.mousecaptureposition.left - M));
var P = parseInt(Math.abs(o.mousecaptureposition.top - L));
J -= Z.left;
g -= Z.top;
this.selectionarea.css("visibility", "visible");
if (o.selectionmode == "multiplecellsadvanced") {
var M = J;
var t = M + H;
var G = M;
var n = o.hScrollInstance;
var v = n.value;
if (this.rtl) {
if (this.hScrollBar.css("visibility") != "hidden") {
v = n.max - n.value
}
if (this.vScrollBar[0].style.visibility != "hidden") {}
}
var h = o.table[0].rows[0];
var T = 0;
var B = o.mousecaptureposition.clickedcell;
var A = B;
var m = false;
var r = 0;
var ac = h.cells.length;
if (o.mousecaptureposition.left <= ab.pageX) {
r = B
}
for (var W = r; W < ac; W++) {
var Y = parseFloat(a(this.columnsrow[0].cells[W]).css("left"));
var j = Y - v;
if (o.columns.records[W].pinned) {
j = Y;
continue
}
var O = this._getcolumnat(W);
if (O != null && O.hidden) {
continue
}
if (o.groupable && o.groups.length > 0) {
if (W < o.groups.length) {
continue
}
}
var S = j + a(this.columnsrow[0].cells[W]).width();
if (o.mousecaptureposition.left > ab.pageX) {
if (S >= M && M >= j) {
A = W;
m = true;
break
}
} else {
if (S >= t && t >= j) {
A = W;
m = true;
break
}
}
}
if (!m) {
if (o.mousecaptureposition.left > ab.pageX) {
a.each(this.columns.records,
function(i, k) {
if (o.groupable && o.groups.length > 0) {
if (i < o.groups.length) {
return true
}
}
if (!this.pinned && !this.hidden) {
A = i;
return false
}
})
} else {
if (!o.groupable || (o.groupable && !o.groups.length > 0)) {
A = h.cells.length - 1
}
}
}
var N = B;
B = Math.min(B, A);
A = Math.max(N, A);
g += 5;
g += I;
var R = o.table[0].rows.indexOf(o.mousecaptureposition.clickedrow);
var w = 0;
var e = -1;
var u = -1;
var d = 0;
for (var W = 0; W < o.table[0].rows.length; W++) {
var s = a(o.table[0].rows[W]);
if (W == 0) {
d = s.coord().top
}
var F = s.height();
var z = d - Z.top;
if (e == -1 && z + F >= g) {
var c = false;
for (var Q = 0; Q < o.groups.length; Q++) {
var V = s[0].cells[Q].className;
if (V.indexOf("jqx-grid-group-collapse") != -1 || V.indexOf("jqx-grid-group-expand") != -1) {
c = true;
break
}
}
if (c) {
continue
}
e = W
}
d += F;
if (o.groupable && o.groups.length > 0) {
var c = false;
for (var Q = 0; Q < o.groups.length; Q++) {
var V = s[0].cells[Q].className;
if (V.indexOf("jqx-grid-group-collapse") != -1 || V.indexOf("jqx-grid-group-expand") != -1) {
c = true;
break
}
}
if (c) {
continue
}
var T = 0;
for (var U = o.groups.length; U < s[0].cells.length; U++) {
var E = s[0].cells[U];
if (a(E).html() == "") {
T++
}
}
if (T == s[0].cells.length - o.groups.length) {
continue
}
}
if (e != -1) {
w += F
}
if (z + F > g + P) {
u = W;
break
}
}
if (e != -1) {
g = a(o.table[0].rows[e]).coord().top - Z.top - I - 2;
var D = 0;
if (this.filterable && this.showfilterrow) {
D = this.filterrowheight
}
if (parseFloat(o.table[0].style.top) < 0 && g < this.rowsheight + D) {
g -= parseFloat(o.table[0].style.top);
w += parseFloat(o.table[0].style.top)
}
P = w;
var l = a(this.columnsrow[0].cells[B]);
var C = a(this.columnsrow[0].cells[A]);
J = parseFloat(l.css("left"));
H = parseFloat(C.css("left")) - parseFloat(J) + C.width() - 2;
J -= v;
if (o.editcell && o.editable && o.endcelledit && (B != A || e != u)) {
if (o.editcell.validated == false) {
return
}
o.endcelledit(o.editcell.row, o.editcell.column, true, true)
}
}
}
this.selectionarea.width(H);
this.selectionarea.height(P);
this.selectionarea.css("left", J);
this.selectionarea.css("top", g)
}
}
},
_handlemouseupselection: function(u, o) {
if (!this.selectionarea) {
return
}
if (this.selectionarea[0].style.visibility != "visible") {
o.mousecaptured = false;
return true
}
if (o.mousecaptured && (o.selectionmode == "multiplerowsextended" || o.selectionmode == "multiplerowsadvanced" || o.selectionmode == "multiplecellsextended" || o.selectionmode == "multiplecellsadvanced")) {
o.mousecaptured = false;
if (this.selectionarea.css("visibility") == "visible") {
this.selectionarea.css("visibility", "hidden");
var w = this.showheader ? this.columnsheader.height() + 2 : 0;
var p = this._groupsheader() ? this.groupsheader.height() : 0;
if (this.host.css("border-top-width") === "0px") {
p -= 2
}
var B = this.showtoolbar ? this.toolbar.height() : 0;
p += B;
var C = this.selectionarea.coord();
var c = this.host.coord();
if (this.hasTransform) {
c = a.jqx.utilities.getOffset(this.host);
C = a.jqx.utilities.getOffset(this.selectionarea)
}
if (this.host.css("border-top-width") === "0px") {
p -= 2
}
var n = C.left - c.left;
var k = C.top - w - c.top - p;
var s = k;
var g = n + this.selectionarea.width();
var D = n;
var l = new Array();
var e = new Array();
if (o.selectionmode == "multiplerowsextended") {
while (k < s + this.selectionarea.height()) {
var b = this._hittestrow(n, k);
var f = b.row;
var h = b.index;
if (h != -1) {
if (!e[h]) {
e[h] = true;
l[l.length] = b
}
}
k += 20
}
var s = 0;
a.each(l,
function() {
var i = this;
var m = this.row;
if (o.selectionmode != "none" && o._selectrowwithmouse) {
if (u.ctrlKey || u.metaKey) {
o._applyrowselection(o.getboundindex(m), true, false, false)
} else {
if (s == 0) {
o._applyrowselection(o.getboundindex(m), true, false, true)
} else {
o._applyrowselection(o.getboundindex(m), true, false, false)
}
}
s++
}
})
} else {
if (o.selectionmode == "multiplecellsadvanced") {
k += 2
}
var r = o.hScrollInstance;
var t = r.value;
if (this.rtl) {
if (this.hScrollBar.css("visibility") != "hidden") {
t = r.max - r.value
}
if (this.vScrollBar[0].style.visibility != "hidden") {
t -= this.scrollbarsize + 4
}
}
var q = o.table[0].rows[0];
var j = o.selectionarea.height();
if (!u.ctrlKey && !u.metaKey && j > 0) {
o.selectedcells = new Array()
}
var A = j;
while (k < s + A) {
var b = o._hittestrow(n, k);
if (!b) {
k += 5;
continue
}
var f = b.row;
var h = b.index;
if (h != -1) {
if (!e[h]) {
e[h] = true;
for (var v = 0; v < q.cells.length; v++) {
var d = parseFloat(a(o.columnsrow[0].cells[v]).css("left")) - t;
var z = d + a(o.columnsrow[0].cells[v]).width();
if ((D >= d && D <= z) || (g >= d && g <= z) || (d >= D && d <= g)) {
o._applycellselection(o.getboundindex(f), o._getcolumnat(v).datafield, true, false)
}
}
}
}
k += 5
}
}
if (o.autosavestate) {
if (o.savestate) {
o.savestate()
}
}
o._renderrows(o.virtualsizeinfo)
}
}
},
selectprevcell: function(e, c) {
var f = this._getcolumnindex(c);
var b = this.columns.records.length;
var d = this._getprevvisiblecolumn(f);
if (d != null) {
this.clearselection();
this.selectcell(e, d.datafield)
}
},
selectnextcell: function(e, d) {
var f = this._getcolumnindex(d);
var c = this.columns.records.length;
var b = this._getnextvisiblecolumn(f);
if (b != null) {
this.clearselection();
this.selectcell(e, b.datafield)
}
},
_getfirstvisiblecolumn: function() {
var b = this;
var e = this.columns.records.length;
for (var c = 0; c < e; c++) {
var d = this.columns.records[c];
if (!d.hidden && d.datafield != null) {
return d
}
}
return null
},
_getlastvisiblecolumn: function() {
var b = this;
var e = this.columns.records.length;
for (var c = e - 1; c >= 0; c--) {
var d = this.columns.records[c];
if (!d.hidden && d.datafield != null) {
return d
}
}
return null
},
_handlekeydown: function(A, t) {
if (t.groupable && t.groups.length > 0) {}
if (t.disabled) {
return false
}
var H = A.charCode ? A.charCode: A.keyCode ? A.keyCode: 0;
if (t.editcell && t.selectionmode != "multiplecellsadvanced") {
return true
} else {
if (t.editcell && t.selectionmode == "multiplecellsadvanced") {
if (H >= 33 && H <= 40) {
if (!A.altKey) {
if (t._cancelkeydown == undefined || t._cancelkeydown == false) {
if (t.editmode !== "selectedrow") {
t.endcelledit(t.editcell.row, t.editcell.column, false, true);
t._cancelkeydown = false;
if (t.editcell && !t.editcell.validated) {
t._rendervisualrows();
t.endcelledit(t.editcell.row, t.editcell.column, false, true);
return false
}
} else {
return true
}
} else {
t._cancelkeydown = false;
return true
}
} else {
t._cancelkeydown = false;
return true
}
} else {
return true
}
}
}
if (t.selectionmode == "none") {
return true
}
if (t.showfilterrow && t.filterable) {
if (this.filterrow) {
if (a(A.target).ischildof(t.filterrow)) {
return true
}
}
}
if (t.showeverpresentrow) {
if (t.addnewrowtop) {
if (a(A.target).ischildof(t.addnewrowtop)) {
return true
}
}
if (t.addnewrowbottom) {
if (a(A.target).ischildof(t.addnewrowbottom)) {
return true
}
}
}
if (t.pageable) {
if (a(A.target).ischildof(this.pager)) {
return true
}
}
if (this.showtoolbar) {
if (a(A.target).ischildof(this.toolbar)) {
return true
}
}
if (this.showstatusbar) {
if (a(A.target).ischildof(this.statusbar)) {
return true
}
}
var r = false;
if (A.altKey) {
return true
}
/*
if (A.ctrlKey || A.metaKey) {
if (this.clipboard) {
var b = String.fromCharCode(H).toLowerCase();
if (this.clipboardbegin) {
var j = null;
if (b == "c") {
//j = this.clipboardbegin("copy", this.copyselection())
} else {
if (b == "x") {
//j = this.clipboardbegin("cut", this.copyselection())
} else {
if (b == "v") {
j = this.clipboardbegin("paste")
}
}
}
if (j === false) {
return false
}
}
if (b == "c" || b == "x") {
var q = this.copyselection();
if (b == "c" && this.clipboardend) {
this.clipboardend("copy")
}
if (b == "x" && this.clipboardend) {
this.clipboardend("cut")
}
if (window.clipboardData) {
window.clipboardData.setData("Text", q)
} else {
var g = a('<textarea style="position: absolute; left: -1000px; top: -1000px;"/>');
g.val(q);
a("body").append(g);
g.select();
setTimeout(function() {
document.designMode = "off";
g.select();
g.remove();
t.focus()
},
100)
}
if (b == "c" && a.jqx.browser.msie) {
return false
} else {
if (b == "c") {
return true
}
}
} else {
if (b == "v") {
var F = a('<textarea style="position: absolute; left: -1000px; top: -1000px;"/>');
a("body").append(F);
F.select();
var k = this;
setTimeout(function() {
k._clipboardselection = new Array();
var M = F.val();
if (M.length == 0 && window.clipboardData) {
F.val(window.clipboardData.getData("Text"));
var M = F.val()
}
var L = M.split("\n");
for (var K = 0; K < L.length; K++) {
if (L[K].split("\t").length > 0) {
var J = L[K].split("\t");
if (J.length == 1 && K == L.length - 1 && J[0] == "") {
continue
}
if (J.length > 0) {
k._clipboardselection.push(J)
}
}
}
k.pasteselection();
F.remove();
k.focus()
},
100);
return true
}
}
if (b == "x") {
this.deleteselection();
this.host.focus();
return false
}
}
}
*/
var n = Math.round(t._gettableheight());
var y = Math.round(n / t.rowsheight);
var f = t.getdatainformation();
switch (t.selectionmode) {
case "singlecell":
case "multiplecells":
case "multiplecellsextended":
case "multiplecellsadvanced":
var I = t.getselectedcell();
if (I != null) {
var e = this.getrowvisibleindex(I.rowindex);
var i = e;
var p = I.datafield;
var w = t._getcolumnindex(p);
var c = t.columns.records.length;
var v = function(Q, K, P, O) {
var J = function(ab, U) {
var W = t.dataview.loadedrecords[ab];
if (t.groupable && t.groups.length > 0) {
var X = ab;
if (O == "up") {
X++
}
if (O == "down") {
X--
}
var W = t.getdisplayrows()[X];
var R = function(ac) {
if (ac.group) {
if (t.expandedgroups[ac.uniqueid]) {
return t.expandedgroups[ac.uniqueid].expanded
}
} else {
return false
}
};
var Z = 1;
var S = true;
while (S && Z < 300) {
S = false;
if (O == "down") {
W = t.getdisplayrows()[X + Z]
} else {
if (O == "up") {
W = t.getdisplayrows()[X - Z]
}
}
if (!W) {
break
}
if (W && W.group) {
S = true
}
var aa = W.parentItem;
while (aa) {
if (aa && !R(aa)) {
S = true
}
aa = aa.parentItem
}
if (!S) {
break
}
Z++
}
if (Z == 300) {
W = null
}
if (t.pageable) {
var Y = false;
if (W) {
for (var V = 0; V < t.dataview.rows.length; V++) {
if (t.dataview.rows[V].boundindex == W.boundindex) {
Y = true
}
}
if (!Y) {
W = null
}
}
}
}
if (W != undefined && U != null) {
if (P || P == undefined) {
t.clearselection()
}
var T = t.getboundindex(W);
t.selectcell(T, U);
t._oldselectedcell = t.selectedcell;
r = true;
t.ensurecellvisible(ab, U);
return true
}
return false
};
if (!J(Q, K)) {
t.ensurecellvisible(Q, K);
J(Q, K);
if (t.virtualmode) {
t.host.focus()
}
}
var M = t.groupable && t.groups.length > 0;
if (!M) {
if (A.shiftKey && A.keyCode != 9) {
if (t.selectionmode == "multiplecellsextended" || t.selectionmode == "multiplecellsadvanced") {
if (t._lastClickedCell) {
t._selectpath(Q, K);
var N = t.dataview.loadedrecords[Q];
var L = t.getboundindex(N);
t.selectedcell = {
rowindex: L,
datafield: K
};
return
}
}
} else {
if (!A.shiftKey) {
t._lastClickedCell = {
row: Q,
column: K
}
}
}
}
};
var B = A.shiftKey && t.selectionmode != "singlecell" && t.selectionmode != "multiplecells";
var C = function() {
v(0, p, !B)
};
var h = function() {
var J = f.rowscount - 1;
v(J, p, !B)
};
var d = H == 9 && !A.shiftKey;
var m = H == 9 && A.shiftKey;
if (t.rtl) {
var s = d;
d = m;
m = s
}
if (d || m) {
B = false
}
if (d || m) {
if (document.activeElement && document.activeElement.className && document.activeElement.className.indexOf("jqx-grid-cell-add-new-row") >= 0) {
return true
}
}
var o = A.ctrlKey || A.metaKey;
if (o && H == 37) {
var E = t._getfirstvisiblecolumn(w);
if (E != null) {
v(i, E.datafield)
}
} else {
if (o && H == 39) {
var u = t._getlastvisiblecolumn(w);
if (u != null) {
v(i, u.datafield)
}
} else {
if (H == 39 || d) {
var x = t._getnextvisiblecolumn(w);
if (x != null) {
v(i, x.datafield, !B)
} else {
if (!d) {
r = true
} else {
var G = t._getfirstvisiblecolumn();
H = 40;
p = G.displayfield
}
}
} else {
if (H == 37 || m) {
var E = t._getprevvisiblecolumn(w);
if (E != null) {
v(i, E.datafield, !B)
} else {
if (!m) {
r = true
} else {
var l = t._getlastvisiblecolumn();
H = 38;
p = l.displayfield
}
}
} else {
if (H == 36) {
C()
} else {
if (H == 35) {
h()
} else {
if (H == 33) {
if (i - y >= 0) {
var D = i - y;
v(D, p, !B)
} else {
C()
}
} else {
if (H == 34) {
if (f.rowscount > i + y) {
var D = i + y;
v(D, p, !B)
} else {
h()
}
}
}
}
}
}
}
}
}
if (H == 38) {
if (o) {
C()
} else {
if (i > 0) {
v(i - 1, p, !B, "up")
} else {
r = true
}
}
}
if (H == 40) {
if (o) {
h()
} else {
if ((f.rowscount > i + 1) || (t.groupable && t.groups.length > 0)) {
v(i + 1, p, !B, "down")
} else {
r = true
}
}
}
}
break;
case "singlerow":
case "multiplerows":
case "multiplerowsextended":
case "multiplerowsadvanced":
var i = t.getselectedrowindex();
if (i == null || i == -1) {
return true
}
i = this.getrowvisibleindex(i);
var z = function(K, N, M) {
var J = function(V) {
var U = t.dataview.loadedrecords[V];
if (t.groupable && t.groups.length > 0) {
if (M == "up") {
V++
}
if (M == "down") {
V--
}
var U = t.getdisplayrows()[V];
var O = function(Z) {
if (Z.group) {
if (t.expandedgroups[Z.uniqueid]) {
return t.expandedgroups[Z.uniqueid].expanded
}
} else {
return false
}
};
var X = 1;
var P = true;
while (P && X < 300) {
P = false;
if (M == "down") {
U = t.getdisplayrows()[V + X]
} else {
if (M == "up") {
U = t.getdisplayrows()[V - X]
}
}
if (!U) {
break
}
if (U && U.group) {
P = true
}
var Y = U.parentItem;
while (Y) {
if (Y && !O(Y)) {
P = true
}
Y = Y.parentItem
}
if (!P) {
break
}
X++
}
if (X == 300) {
U = null
}
if (t.pageable) {
var W = false;
if (U) {
for (var T = 0; T < t.dataview.rows.length; T++) {
if (t.dataview.rows[T].boundindex == U.boundindex) {
W = true
}
}
if (!W) {
U = null
}
}
}
}
if (U != undefined) {
var Q = t.getboundindex(U);
var S = t.selectedrowindex;
if (N || N == undefined) {
t.clearselection()
}
t.selectedrowindex = S;
t.selectrow(Q, false);
var R = t.ensurerowvisible(V);
if (!R || t.autoheight || t.groupable) {
t._rendervisualrows()
}
r = true;
return true
}
return false
};
if (!J(K)) {
t.ensurerowvisible(K);
J(K, N);
if (t.virtualmode) {
setTimeout(function() {
J(K, N)
},
25)
}
if (t.virtualmode) {
t.host.focus()
}
}
var L = t.groupable && t.groups.length > 0;
if (!L) {
if (A.shiftKey && H != 9) {
if (t.selectionmode == "multiplerowsextended") {
if (t._lastClickedCell) {
t._selectrowpath(K);
t.selectedrowindex = t.getrowboundindex(K);
return
}
}
} else {
if (!A.shiftKey) {
t._lastClickedCell = {
row: K
};
t.selectedrowindex = t.getrowboundindex(K)
}
}
}
};
var B = A.shiftKey && t.selectionmode != "singlerow" && t.selectionmode != "multiplerows";
var C = function() {
z(0, !B)
};
var h = function() {
var J = f.rowscount - 1;
z(J, !B)
};
var o = A.ctrlKey || A.metaKey;
if (H == 36 || (o && H == 38)) {
C()
} else {
if (H == 35 || (o && H == 40)) {
h()
} else {
if (H == 33) {
if (i - y >= 0) {
var D = i - y;
z(D, !B)
} else {
C()
}
} else {
if (H == 34) {
if (f.rowscount > i + y) {
var D = i + y;
z(D, !B)
} else {
h()
}
} else {
if (H == 38) {
if (i > 0) {
z(i - 1, !B, "up")
} else {
r = true
}
} else {
if (H == 40) {
if ((f.rowscount > i + 1) || (t.groupable && t.groups.length > 0)) {
z(i + 1, !B, "down")
} else {
r = true
}
}
}
}
}
}
}
break
}
if (r) {
if (t.autosavestate) {
if (t.savestate) {
t.savestate()
}
}
return false
}
return true
},
_handlemousemove: function(u, p) {
if (p.vScrollInstance.isScrolling()) {
return
}
if (p.hScrollInstance.isScrolling()) {
return
}
var w;
var q;
var f;
var n;
var m;
if (p.enablehover || p.selectionmode == "multiplerows") {
w = this.showheader ? this.columnsheader.height() + 2 : 0;
q = this._groupsheader() ? this.groupsheader.height() : 0;
var A = this.showtoolbar ? this.toolbarheight: 0;
q += A;
f = this.host.coord();
if (this.hasTransform) {
f = a.jqx.utilities.getOffset(this.host);
var k = this._getBodyOffset();
f.left -= k.left;
f.top -= k.top
}
n = u.pageX - f.left;
m = u.pageY - w - f.top - q
}
if (p.selectionmode == "multiplerowsextended" || p.selectionmode == "multiplecellsextended" || p.selectionmode == "multiplecellsadvanced") {
if (p.mousecaptured == true) {
return
}
}
if (p.enablehover) {
if (p.disabled) {
return
}
if (this.vScrollInstance.isScrolling() || this.hScrollInstance.isScrolling()) {
return
}
var c = this._hittestrow(n, m);
if (!c) {
return
}
var h = c.row;
var j = c.index;
if (this.hoveredrow != -1 && j != -1 && this.hoveredrow == j && this.selectionmode.indexOf("cell") == -1 && this.selectionmode != "checkbox") {
return
}
this._clearhoverstyle();
if (j == -1 || h == undefined) {
return
}
var r = this.hittestinfo[j].visualrow;
if (r == null) {
return
}
if (this.hittestinfo[j].details) {
return
}
if (u.clientX > a(r).width() + a(r).coord().left) {
return
}
var B = 0;
var o = r.cells.length;
if (p.rowdetails && p.showrowdetailscolumn) {
if (!this.rtl) {
B = 1 + this.groups.length
} else {
o -= 1;
o -= this.groups.length
}
} else {
if (this.groupable) {
if (!this.rtl) {
B = this.groups.length
} else {
o -= this.groups.length
}
}
}
if (r.cells.length == 0) {
return
}
var l = r.cells[B].className;
if (h.group || (this.selectionmode.indexOf("row") >= 0 && l.indexOf("jqx-grid-cell-selected") != -1)) {
return
}
this.hoveredrow = j;
if (this.selectionmode.indexOf("cell") != -1 || this.selectionmode == "checkbox") {
var e = -1;
var s = this.hScrollInstance;
var t = s.value;
if (this.rtl) {
if (this.hScrollBar.css("visibility") != "hidden") {
t = s.max - s.value
}
}
for (var v = B; v < o; v++) {
var g = parseInt(a(this.columnsrow[0].cells[v]).css("left")) - t;
var z = g + a(this.columnsrow[0].cells[v]).width();
if (z >= n && n >= g) {
e = v;
break
}
}
if (e != -1) {
var b = r.cells[e];
if (this.cellhover) {
this.cellhover(b, u.pageX, u.pageY)
}
if (b.className.indexOf("jqx-grid-cell-selected") == -1) {
if (this.editcell) {
var d = this._getcolumnat(e);
if (d) {
if (this.editcell.row == j && this.editcell.column == d.datafield) {
return
}
}
}
a(b).addClass(this.toTP("jqx-grid-cell-hover"));
a(b).addClass(this.toTP("jqx-fill-state-hover"))
}
}
return
}
for (var v = B; v < o; v++) {
var b = r.cells[v];
a(b).addClass(this.toTP("jqx-grid-cell-hover"));
a(b).addClass(this.toTP("jqx-fill-state-hover"));
if (this.cellhover) {
this.cellhover(b, u.pageX, u.pageY)
}
}
} else {
return true
}
}
})
})(jqxBaseFramework);