Files
CKB/resources/js/cdn/dataTables.fixedColumns.min.js

416 lines
18 KiB
JavaScript

/*! FixedColumns 4.2.2
* © SpryMedia Ltd - datatables.net/license
*/
!(function (e) {
var i, l;
"function" == typeof define && define.amd
? define(["jquery", "datatables.net"], function (t) {
return e(t, window, document);
})
: "object" == typeof exports
? ((i = require("jquery")),
(l = function (t, s) {
s.fn.dataTable || require("datatables.net")(t, s);
}),
"undefined" != typeof window
? (module.exports = function (t, s) {
return (
(t = t || window),
(s = s || i(t)),
l(t, s),
e(s, 0, t.document)
);
})
: (l(window, i),
(module.exports = e(i, window, window.document))))
: e(jQuery, window, document);
})(function (l, t, s, F) {
"use strict";
var A,
i,
e,
o,
r = l.fn.dataTable;
function d(t, s) {
var e = this;
if (i && i.versionCheck && i.versionCheck("1.10.0"))
return (
(t = new i.Api(t)),
(this.classes = A.extend(!0, {}, d.classes)),
(this.c = A.extend(!0, {}, d.defaults, s)),
(s && s.left !== F) ||
this.c.leftColumns === F ||
(this.c.left = this.c.leftColumns),
(s && s.right !== F) ||
this.c.rightColumns === F ||
(this.c.right = this.c.rightColumns),
(this.s = {
barWidth: 0,
dt: t,
rtl: "rtl" === A("body").css("direction"),
}),
(s = {
bottom: "0px",
display: "block",
position: "absolute",
width: this.s.barWidth + 1 + "px",
}),
(this.dom = {
leftBottomBlocker: A("<div>")
.css(s)
.css("left", 0)
.addClass(this.classes.leftBottomBlocker),
leftTopBlocker: A("<div>")
.css(s)
.css({ left: 0, top: 0 })
.addClass(this.classes.leftTopBlocker),
rightBottomBlocker: A("<div>")
.css(s)
.css("right", 0)
.addClass(this.classes.rightBottomBlocker),
rightTopBlocker: A("<div>")
.css(s)
.css({ right: 0, top: 0 })
.addClass(this.classes.rightTopBlocker),
}),
this.s.dt.settings()[0]._bInitComplete
? (this._addStyles(), this._setKeyTableListener())
: t.one("init.dt", function () {
e._addStyles(), e._setKeyTableListener();
}),
t.on("column-sizing.dt", function () {
return e._addStyles();
}),
(t.settings()[0]._fixedColumns = this)
);
throw new Error("StateRestore requires DataTables 1.10 or newer");
}
function h(t, s) {
void 0 === s && (s = null);
(t = new r.Api(t)),
(s = s || t.init().fixedColumns || r.defaults.fixedColumns);
new e(t, s);
}
return (
(d.prototype.left = function (t) {
return (
t !== F && ((this.c.left = t), this._addStyles()), this.c.left
);
}),
(d.prototype.right = function (t) {
return (
t !== F && ((this.c.right = t), this._addStyles()), this.c.right
);
}),
(d.prototype._addStyles = function () {
this.s.dt.settings()[0].oScroll.sY &&
((s = A(this.s.dt.table().node()).closest(
"div.dataTables_scrollBody"
)[0]),
(e = this.s.dt.settings()[0].oBrowser.barWidth),
s.offsetWidth - s.clientWidth >= e
? (this.s.barWidth = e)
: (this.s.barWidth = 0),
this.dom.rightTopBlocker.css("width", this.s.barWidth + 1),
this.dom.leftTopBlocker.css("width", this.s.barWidth + 1),
this.dom.rightBottomBlocker.css("width", this.s.barWidth + 1),
this.dom.leftBottomBlocker.css("width", this.s.barWidth + 1));
for (
var t = null,
s = this.s.dt.column(0).header(),
e = null,
i =
(null !== s &&
((e = (s = A(s)).outerHeight() + 1),
(t = A(s.closest("div.dataTables_scroll")).css(
"position",
"relative"
))),
this.s.dt.column(0).footer()),
l = null,
o =
(null !== i &&
((l = (i = A(i)).outerHeight()), null === t) &&
(t = A(i.closest("div.dataTables_scroll")).css(
"position",
"relative"
)),
this.s.dt.columns().data().toArray().length),
r = 0,
d = 0,
h = A(this.s.dt.table().node())
.children("tbody")
.children("tr"),
n = 0,
a = new Map(),
c = 0;
c < o;
c++
) {
var f = this.s.dt.column(c);
if ((0 < c && a.set(c - 1, n), f.visible())) {
var u = A(f.header()),
g = A(f.footer());
if (c - n < this.c.left) {
if (
(A(this.s.dt.table().node()).addClass(
this.classes.tableFixedLeft
),
t.addClass(this.classes.tableFixedLeft),
0 < c - n)
)
for (var C = c; C + 1 < o; ) {
if (
(y = this.s.dt.column(C - 1, {
page: "current",
})).visible()
) {
(r += A(y.nodes()[0]).outerWidth()),
(d +=
y.header() || y.footer()
? A(y.header()).outerWidth()
: 0);
break;
}
C--;
}
for (var m = 0, p = h; m < p.length; m++) {
var x = p[m];
A(A(x).children()[c - n])
.css(this._getCellCSS(!1, r, "left"))
.addClass(this.classes.fixedLeft);
}
u
.css(this._getCellCSS(!0, d, "left"))
.addClass(this.classes.fixedLeft),
g
.css(this._getCellCSS(!0, d, "left"))
.addClass(this.classes.fixedLeft);
} else {
for (var b = 0, v = h; b < v.length; b++) {
x = v[b];
(R = A(A(x).children()[c - n])).hasClass(
this.classes.fixedLeft
) &&
R.css(this._clearCellCSS("left")).removeClass(
this.classes.fixedLeft
);
}
u.hasClass(this.classes.fixedLeft) &&
u
.css(this._clearCellCSS("left"))
.removeClass(this.classes.fixedLeft),
g.hasClass(this.classes.fixedLeft) &&
g
.css(this._clearCellCSS("left"))
.removeClass(this.classes.fixedLeft);
}
} else n++;
}
for (var B = 0, S = 0, _ = 0, c = o - 1; 0 <= c; c--)
if ((f = this.s.dt.column(c)).visible()) {
var u = A(f.header()),
g = A(f.footer()),
k = a.get(c);
if ((k === F && (k = n), c + _ >= o - this.c.right)) {
if (
(A(this.s.dt.table().node()).addClass(
this.classes.tableFixedRight
),
t.addClass(this.classes.tableFixedRight),
c + 1 + _ < o)
)
for (var y, C = c; C + 1 < o; ) {
if (
(y = this.s.dt.column(C + 1, {
page: "current",
})).visible()
) {
(B += A(y.nodes()[0]).outerWidth()),
(S +=
y.header() || y.footer()
? A(y.header()).outerWidth()
: 0);
break;
}
C++;
}
for (var w = 0, T = h; w < T.length; w++) {
x = T[w];
A(A(x).children()[c - k])
.css(this._getCellCSS(!1, B, "right"))
.addClass(this.classes.fixedRight);
}
u
.css(this._getCellCSS(!0, S, "right"))
.addClass(this.classes.fixedRight),
g
.css(this._getCellCSS(!0, S, "right"))
.addClass(this.classes.fixedRight);
} else {
for (var L = 0, W = h; L < W.length; L++) {
var R,
x = W[L];
(R = A(A(x).children()[c - k])).hasClass(
this.classes.fixedRight
) &&
R.css(this._clearCellCSS("right")).removeClass(
this.classes.fixedRight
);
}
u.hasClass(this.classes.fixedRight) &&
u
.css(this._clearCellCSS("right"))
.removeClass(this.classes.fixedRight),
g.hasClass(this.classes.fixedRight) &&
g
.css(this._clearCellCSS("right"))
.removeClass(this.classes.fixedRight);
}
} else _++;
s &&
(this.s.rtl
? (this.dom.leftTopBlocker.outerHeight(e),
t.append(this.dom.leftTopBlocker))
: (this.dom.rightTopBlocker.outerHeight(e),
t.append(this.dom.rightTopBlocker))),
i &&
(this.s.rtl
? (this.dom.leftBottomBlocker.outerHeight(l),
t.append(this.dom.leftBottomBlocker))
: (this.dom.rightBottomBlocker.outerHeight(l),
t.append(this.dom.rightBottomBlocker)));
}),
(d.prototype._getCellCSS = function (t, s, e) {
return "left" === e
? this.s.rtl
? { position: "sticky", right: s + "px" }
: { left: s + "px", position: "sticky" }
: this.s.rtl
? {
left: s + (t ? this.s.barWidth : 0) + "px",
position: "sticky",
}
: {
position: "sticky",
right: s + (t ? this.s.barWidth : 0) + "px",
};
}),
(d.prototype._clearCellCSS = function (t) {
return "left" === t
? this.s.rtl
? { position: "", right: "" }
: { left: "", position: "" }
: this.s.rtl
? { left: "", position: "" }
: { position: "", right: "" };
}),
(d.prototype._setKeyTableListener = function () {
var h = this;
this.s.dt.on("key-focus", function (t, s, e) {
var i,
l,
o,
r = A(e.node()).offset(),
d = A(
A(h.s.dt.table().node()).closest(
"div.dataTables_scrollBody"
)
);
0 < h.c.left &&
((i = (l = A(
h.s.dt.column(h.c.left - 1).header()
)).offset()),
(l = l.outerWidth()),
r.left < i.left + l) &&
((o = d.scrollLeft()),
d.scrollLeft(o - (i.left + l - r.left))),
0 < h.c.right &&
((i = h.s.dt.columns().data().toArray().length),
(l = A(e.node()).outerWidth()),
(e = A(h.s.dt.column(i - h.c.right).header()).offset()),
r.left + l > e.left) &&
((o = d.scrollLeft()),
d.scrollLeft(o - (e.left - (r.left + l))));
}),
this.s.dt.on("draw", function () {
h._addStyles();
}),
this.s.dt.on("column-reorder", function () {
h._addStyles();
}),
this.s.dt.on("column-visibility", function (t, s, e, i, l) {
l &&
!s.bDestroying &&
setTimeout(function () {
h._addStyles();
}, 50);
});
}),
(d.version = "4.2.2"),
(d.classes = {
fixedLeft: "dtfc-fixed-left",
fixedRight: "dtfc-fixed-right",
leftBottomBlocker: "dtfc-left-bottom-blocker",
leftTopBlocker: "dtfc-left-top-blocker",
rightBottomBlocker: "dtfc-right-bottom-blocker",
rightTopBlocker: "dtfc-right-top-blocker",
tableFixedLeft: "dtfc-has-left",
tableFixedRight: "dtfc-has-right",
}),
(d.defaults = { i18n: { button: "FixedColumns" }, left: 1, right: 0 }),
(e = d),
(i = (A = l).fn.dataTable),
(l.fn.dataTable.FixedColumns = e),
(l.fn.DataTable.FixedColumns = e),
(o = r.Api.register)("fixedColumns()", function () {
return this;
}),
o("fixedColumns().left()", function (t) {
var s = this.context[0];
return t !== F
? (s._fixedColumns.left(t), this)
: s._fixedColumns.left();
}),
o("fixedColumns().right()", function (t) {
var s = this.context[0];
return t !== F
? (s._fixedColumns.right(t), this)
: s._fixedColumns.right();
}),
(r.ext.buttons.fixedColumns = {
action: function (t, s, e, i) {
l(e).attr("active")
? (l(e).removeAttr("active").removeClass("active"),
s.fixedColumns().left(0),
s.fixedColumns().right(0))
: (l(e).attr("active", "true").addClass("active"),
s.fixedColumns().left(i.config.left),
s.fixedColumns().right(i.config.right));
},
config: { left: 1, right: 0 },
init: function (t, s, e) {
t.settings()[0]._fixedColumns === F && h(t.settings(), e),
l(s).attr("active", "true").addClass("active"),
t
.button(s)
.text(
e.text ||
t.i18n(
"buttons.fixedColumns",
t.settings()[0]._fixedColumns.c.i18n.button
)
);
},
text: null,
}),
l(s).on("plugin-init.dt", function (t, s) {
"dt" !== t.namespace ||
(!s.oInit.fixedColumns && !r.defaults.fixedColumns) ||
s._fixedColumns ||
h(s, null);
}),
r
);
});