You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

712 lines
21 KiB

/*!
Responsive 2.2.3
2014-2018 SpryMedia Ltd - datatables.net/license
*/
(function (d) {
"function" === typeof define && define.amd
? define(["jquery", "datatables.net"], function (l) {
return d(l, window, document);
})
: "object" === typeof exports
? (module.exports = function (l, j) {
l || (l = window);
if (!j || !j.fn.dataTable) j = require("datatables.net")(l, j).$;
return d(j, l, l.document);
})
: d(jQuery, window, document);
})(function (d, l, j, q) {
function t(a, b, c) {
var e = b + "-" + c;
if (n[e]) return n[e];
for (
var d = [], a = a.cell(b, c).node().childNodes, b = 0, c = a.length;
b < c;
b++
)
d.push(a[b]);
return (n[e] = d);
}
function r(a, b, d) {
var e = b + "-" + d;
if (n[e]) {
for (
var a = a.cell(b, d).node(),
d = n[e][0].parentNode.childNodes,
b = [],
f = 0,
g = d.length;
f < g;
f++
)
b.push(d[f]);
d = 0;
for (f = b.length; d < f; d++) a.appendChild(b[d]);
n[e] = q;
}
}
var o = d.fn.dataTable,
i = function (a, b) {
if (!o.versionCheck || !o.versionCheck("1.10.10"))
throw "DataTables Responsive requires DataTables 1.10.10 or newer";
this.s = { dt: new o.Api(a), columns: [], current: [] };
this.s.dt.settings()[0].responsive ||
(b && "string" === typeof b.details
? (b.details = { type: b.details })
: b && !1 === b.details
? (b.details = { type: !1 })
: b && !0 === b.details && (b.details = { type: "inline" }),
(this.c = d.extend(!0, {}, i.defaults, o.defaults.responsive, b)),
(a.responsive = this),
this._constructor());
};
d.extend(i.prototype, {
_constructor: function () {
var a = this,
b = this.s.dt,
c = b.settings()[0],
e = d(l).width();
b.settings()[0]._responsive = this;
d(l).on(
"resize.dtr orientationchange.dtr",
o.util.throttle(function () {
var b = d(l).width();
b !== e && (a._resize(), (e = b));
})
);
c.oApi._fnCallbackReg(c, "aoRowCreatedCallback", function (e) {
-1 !== d.inArray(!1, a.s.current) &&
d(">td, >th", e).each(function (e) {
e = b.column.index("toData", e);
!1 === a.s.current[e] && d(this).css("display", "none");
});
});
b.on("destroy.dtr", function () {
b.off(".dtr");
d(b.table().body()).off(".dtr");
d(l).off("resize.dtr orientationchange.dtr");
d.each(a.s.current, function (b, e) {
!1 === e && a._setColumnVis(b, !0);
});
});
this.c.breakpoints.sort(function (a, b) {
return a.width < b.width ? 1 : a.width > b.width ? -1 : 0;
});
this._classLogic();
this._resizeAuto();
c = this.c.details;
!1 !== c.type &&
(a._detailsInit(),
b.on("column-visibility.dtr", function () {
a._timer && clearTimeout(a._timer);
a._timer = setTimeout(function () {
a._timer = null;
a._classLogic();
a._resizeAuto();
a._resize();
a._redrawChildren();
}, 100);
}),
b.on("draw.dtr", function () {
a._redrawChildren();
}),
d(b.table().node()).addClass("dtr-" + c.type));
b.on("column-reorder.dtr", function () {
a._classLogic();
a._resizeAuto();
a._resize();
});
b.on("column-sizing.dtr", function () {
a._resizeAuto();
a._resize();
});
b.on("preXhr.dtr", function () {
var e = [];
b.rows().every(function () {
this.child.isShown() && e.push(this.id(true));
});
b.one("draw.dtr", function () {
a._resizeAuto();
a._resize();
b.rows(e).every(function () {
a._detailsDisplay(this, false);
});
});
});
b.on("init.dtr", function () {
a._resizeAuto();
a._resize();
d.inArray(false, a.s.current) && b.columns.adjust();
});
this._resize();
},
_columnsVisiblity: function (a) {
var b = this.s.dt,
c = this.s.columns,
e,
f,
g = c
.map(function (a, b) {
return { columnIdx: b, priority: a.priority };
})
.sort(function (a, b) {
return a.priority !== b.priority
? a.priority - b.priority
: a.columnIdx - b.columnIdx;
}),
h = d.map(c, function (e, c) {
return !1 === b.column(c).visible()
? "not-visible"
: e.auto && null === e.minWidth
? !1
: !0 === e.auto
? "-"
: -1 !== d.inArray(a, e.includeIn);
}),
m = 0;
e = 0;
for (f = h.length; e < f; e++) !0 === h[e] && (m += c[e].minWidth);
e = b.settings()[0].oScroll;
e = e.sY || e.sX ? e.iBarWidth : 0;
m = b.table().container().offsetWidth - e - m;
e = 0;
for (f = h.length; e < f; e++) c[e].control && (m -= c[e].minWidth);
var s = !1;
e = 0;
for (f = g.length; e < f; e++) {
var k = g[e].columnIdx;
"-" === h[k] &&
!c[k].control &&
c[k].minWidth &&
(s || 0 > m - c[k].minWidth ? ((s = !0), (h[k] = !1)) : (h[k] = !0),
(m -= c[k].minWidth));
}
g = !1;
e = 0;
for (f = c.length; e < f; e++)
if (!c[e].control && !c[e].never && !1 === h[e]) {
g = !0;
break;
}
e = 0;
for (f = c.length; e < f; e++)
c[e].control && (h[e] = g), "not-visible" === h[e] && (h[e] = !1);
-1 === d.inArray(!0, h) && (h[0] = !0);
return h;
},
_classLogic: function () {
var a = this,
b = this.c.breakpoints,
c = this.s.dt,
e = c
.columns()
.eq(0)
.map(function (a) {
var b = this.column(a),
e = b.header().className,
a = c.settings()[0].aoColumns[a].responsivePriority;
a === q &&
((b = d(b.header()).data("priority")),
(a = b !== q ? 1 * b : 1e4));
return {
className: e,
includeIn: [],
auto: !1,
control: !1,
never: e.match(/\bnever\b/) ? !0 : !1,
priority: a,
};
}),
f = function (a, b) {
var c = e[a].includeIn;
-1 === d.inArray(b, c) && c.push(b);
},
g = function (d, c, g, k) {
if (g)
if ("max-" === g) {
k = a._find(c).width;
c = 0;
for (g = b.length; c < g; c++) b[c].width <= k && f(d, b[c].name);
} else if ("min-" === g) {
k = a._find(c).width;
c = 0;
for (g = b.length; c < g; c++) b[c].width >= k && f(d, b[c].name);
} else {
if ("not-" === g) {
c = 0;
for (g = b.length; c < g; c++)
-1 === b[c].name.indexOf(k) && f(d, b[c].name);
}
}
else e[d].includeIn.push(c);
};
e.each(function (a, e) {
for (
var c = a.className.split(" "), f = !1, i = 0, l = c.length;
i < l;
i++
) {
var j = d.trim(c[i]);
if ("all" === j) {
f = !0;
a.includeIn = d.map(b, function (a) {
return a.name;
});
return;
}
if ("none" === j || a.never) {
f = !0;
return;
}
if ("control" === j) {
f = !0;
a.control = !0;
return;
}
d.each(b, function (a, b) {
var d = b.name.split("-"),
c = j.match(
RegExp(
"(min\\-|max\\-|not\\-)?(" + d[0] + ")(\\-[_a-zA-Z0-9])?"
)
);
c &&
((f = !0),
c[2] === d[0] && c[3] === "-" + d[1]
? g(e, b.name, c[1], c[2] + c[3])
: c[2] === d[0] && !c[3] && g(e, b.name, c[1], c[2]));
});
}
f || (a.auto = !0);
});
this.s.columns = e;
},
_detailsDisplay: function (a, b) {
var c = this,
e = this.s.dt,
f = this.c.details;
if (f && !1 !== f.type) {
var g = f.display(a, b, function () {
return f.renderer(e, a[0], c._detailsObj(a[0]));
});
(!0 === g || !1 === g) &&
d(e.table().node()).triggerHandler("responsive-display.dt", [
e,
a,
g,
b,
]);
}
},
_detailsInit: function () {
var a = this,
b = this.s.dt,
c = this.c.details;
"inline" === c.type && (c.target = "td:first-child, th:first-child");
b.on("draw.dtr", function () {
a._tabIndexes();
});
a._tabIndexes();
d(b.table().body()).on("keyup.dtr", "td, th", function (a) {
a.keyCode === 13 && d(this).data("dtr-keyboard") && d(this).click();
});
var e = c.target;
d(b.table().body()).on(
"click.dtr mousedown.dtr mouseup.dtr",
"string" === typeof e ? e : "td, th",
function (c) {
if (
d(b.table().node()).hasClass("collapsed") &&
d.inArray(
d(this).closest("tr").get(0),
b.rows().nodes().toArray()
) !== -1
) {
if (typeof e === "number") {
var g = e < 0 ? b.columns().eq(0).length + e : e;
if (b.cell(this).index().column !== g) return;
}
g = b.row(d(this).closest("tr"));
c.type === "click"
? a._detailsDisplay(g, false)
: c.type === "mousedown"
? d(this).css("outline", "none")
: c.type === "mouseup" && d(this).blur().css("outline", "");
}
}
);
},
_detailsObj: function (a) {
var b = this,
c = this.s.dt;
return d.map(this.s.columns, function (e, d) {
if (!e.never && !e.control)
return {
title: c.settings()[0].aoColumns[d].sTitle,
data: c.cell(a, d).render(b.c.orthogonal),
hidden: c.column(d).visible() && !b.s.current[d],
columnIndex: d,
rowIndex: a,
};
});
},
_find: function (a) {
for (var b = this.c.breakpoints, c = 0, e = b.length; c < e; c++)
if (b[c].name === a) return b[c];
},
_redrawChildren: function () {
var a = this,
b = this.s.dt;
b.rows({ page: "current" }).iterator("row", function (c, e) {
b.row(e);
a._detailsDisplay(b.row(e), !0);
});
},
_resize: function () {
var a = this,
b = this.s.dt,
c = d(l).width(),
e = this.c.breakpoints,
f = e[0].name,
g = this.s.columns,
h,
m = this.s.current.slice();
for (h = e.length - 1; 0 <= h; h--)
if (c <= e[h].width) {
f = e[h].name;
break;
}
var i = this._columnsVisiblity(f);
this.s.current = i;
e = !1;
h = 0;
for (c = g.length; h < c; h++)
if (
!1 === i[h] &&
!g[h].never &&
!g[h].control &&
!1 === !b.column(h).visible()
) {
e = !0;
break;
}
d(b.table().node()).toggleClass("collapsed", e);
var k = !1,
j = 0;
b.columns()
.eq(0)
.each(function (b, c) {
!0 === i[c] && j++;
i[c] !== m[c] && ((k = !0), a._setColumnVis(b, i[c]));
});
k &&
(this._redrawChildren(),
d(b.table().node()).trigger("responsive-resize.dt", [
b,
this.s.current,
]),
0 === b.page.info().recordsDisplay &&
d("td", b.table().body()).eq(0).attr("colspan", j));
},
_resizeAuto: function () {
var a = this.s.dt,
b = this.s.columns;
if (
this.c.auto &&
-1 !==
d.inArray(
!0,
d.map(b, function (a) {
return a.auto;
})
)
) {
d.isEmptyObject(n) ||
d.each(n, function (b) {
b = b.split("-");
r(a, 1 * b[0], 1 * b[1]);
});
a.table().node();
var c = a.table().node().cloneNode(!1),
e = d(a.table().header().cloneNode(!1)).appendTo(c),
f = d(a.table().body()).clone(!1, !1).empty().appendTo(c),
g = a
.columns()
.header()
.filter(function (b) {
return a.column(b).visible();
})
.to$()
.clone(!1)
.css("display", "table-cell")
.css("min-width", 0);
d(f)
.append(d(a.rows({ page: "current" }).nodes()).clone(!1))
.find("th, td")
.css("display", "");
if ((f = a.table().footer())) {
var f = d(f.cloneNode(!1)).appendTo(c),
h = a
.columns()
.footer()
.filter(function (b) {
return a.column(b).visible();
})
.to$()
.clone(!1)
.css("display", "table-cell");
d("<tr/>").append(h).appendTo(f);
}
d("<tr/>").append(g).appendTo(e);
"inline" === this.c.details.type &&
d(c).addClass("dtr-inline collapsed");
d(c).find("[name]").removeAttr("name");
d(c).css("position", "relative");
c = d("<div/>")
.css({ width: 1, height: 1, overflow: "hidden", clear: "both" })
.append(c);
c.insertBefore(a.table().node());
g.each(function (c) {
c = a.column.index("fromVisible", c);
b[c].minWidth = this.offsetWidth || 0;
});
c.remove();
}
},
_setColumnVis: function (a, b) {
var c = this.s.dt,
e = b ? "" : "none";
d(c.column(a).header()).css("display", e);
d(c.column(a).footer()).css("display", e);
c.column(a).nodes().to$().css("display", e);
d.isEmptyObject(n) ||
c
.cells(null, a)
.indexes()
.each(function (a) {
r(c, a.row, a.column);
});
},
_tabIndexes: function () {
var a = this.s.dt,
b = a.cells({ page: "current" }).nodes().to$(),
c = a.settings()[0],
e = this.c.details.target;
b.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");
"number" === typeof e
? a
.cells(null, e, { page: "current" })
.nodes()
.to$()
.attr("tabIndex", c.iTabIndex)
.data("dtr-keyboard", 1)
: ("td:first-child, th:first-child" === e &&
(e = ">td:first-child, >th:first-child"),
d(e, a.rows({ page: "current" }).nodes())
.attr("tabIndex", c.iTabIndex)
.data("dtr-keyboard", 1));
},
});
i.breakpoints = [
{ name: "desktop", width: Infinity },
{ name: "tablet-l", width: 1024 },
{ name: "tablet-p", width: 768 },
{ name: "mobile-l", width: 480 },
{ name: "mobile-p", width: 320 },
];
i.display = {
childRow: function (a, b, c) {
if (b) {
if (d(a.node()).hasClass("parent"))
return a.child(c(), "child").show(), !0;
} else {
if (a.child.isShown())
return a.child(!1), d(a.node()).removeClass("parent"), !1;
a.child(c(), "child").show();
d(a.node()).addClass("parent");
return !0;
}
},
childRowImmediate: function (a, b, c) {
if ((!b && a.child.isShown()) || !a.responsive.hasHidden())
return a.child(!1), d(a.node()).removeClass("parent"), !1;
a.child(c(), "child").show();
d(a.node()).addClass("parent");
return !0;
},
modal: function (a) {
return function (b, c, e) {
if (c) d("div.dtr-modal-content").empty().append(e());
else {
var f = function () {
g.remove();
d(j).off("keypress.dtr");
},
g = d('<div class="dtr-modal"/>')
.append(
d('<div class="dtr-modal-display"/>')
.append(d('<div class="dtr-modal-content"/>').append(e()))
.append(
d('<div class="dtr-modal-close">&times;</div>').click(
function () {
f();
}
)
)
)
.append(
d('<div class="dtr-modal-background"/>').click(function () {
f();
})
)
.appendTo("body");
d(j).on("keyup.dtr", function (a) {
27 === a.keyCode && (a.stopPropagation(), f());
});
}
a &&
a.header &&
d("div.dtr-modal-content").prepend("<h2>" + a.header(b) + "</h2>");
};
},
};
var n = {};
i.renderer = {
listHiddenNodes: function () {
return function (a, b, c) {
var e = d('<ul data-dtr-index="' + b + '" class="dtr-details"/>'),
f = !1;
d.each(c, function (b, c) {
c.hidden &&
(d(
'<li data-dtr-index="' +
c.columnIndex +
'" data-dt-row="' +
c.rowIndex +
'" data-dt-column="' +
c.columnIndex +
'"><span class="dtr-title">' +
c.title +
"</span> </li>"
)
.append(
d('<span class="dtr-data"/>').append(
t(a, c.rowIndex, c.columnIndex)
)
)
.appendTo(e),
(f = !0));
});
return f ? e : !1;
};
},
listHidden: function () {
return function (a, b, c) {
return (a = d
.map(c, function (a) {
return a.hidden
? '<li data-dtr-index="' +
a.columnIndex +
'" data-dt-row="' +
a.rowIndex +
'" data-dt-column="' +
a.columnIndex +
'"><span class="dtr-title">' +
a.title +
'</span> <span class="dtr-data">' +
a.data +
"</span></li>"
: "";
})
.join(""))
? d('<ul data-dtr-index="' + b + '" class="dtr-details"/>').append(a)
: !1;
};
},
tableAll: function (a) {
a = d.extend({ tableClass: "" }, a);
return function (b, c, e) {
b = d
.map(e, function (a) {
return (
'<tr data-dt-row="' +
a.rowIndex +
'" data-dt-column="' +
a.columnIndex +
'"><td>' +
a.title +
":</td> <td>" +
a.data +
"</td></tr>"
);
})
.join("");
return d(
'<table class="' + a.tableClass + ' dtr-details" width="100%"/>'
).append(b);
};
},
};
i.defaults = {
breakpoints: i.breakpoints,
auto: !0,
details: {
display: i.display.childRow,
renderer: i.renderer.listHidden(),
target: 0,
type: "inline",
},
orthogonal: "display",
};
var p = d.fn.dataTable.Api;
p.register("responsive()", function () {
return this;
});
p.register("responsive.index()", function (a) {
a = d(a);
return { column: a.data("dtr-index"), row: a.parent().data("dtr-index") };
});
p.register("responsive.rebuild()", function () {
return this.iterator("table", function (a) {
a._responsive && a._responsive._classLogic();
});
});
p.register("responsive.recalc()", function () {
return this.iterator("table", function (a) {
a._responsive && (a._responsive._resizeAuto(), a._responsive._resize());
});
});
p.register("responsive.hasHidden()", function () {
var a = this.context[0];
return a._responsive ? -1 !== d.inArray(!1, a._responsive.s.current) : !1;
});
p.registerPlural(
"columns().responsiveHidden()",
"column().responsiveHidden()",
function () {
return this.iterator(
"column",
function (a, b) {
return a._responsive ? a._responsive.s.current[b] : !1;
},
1
);
}
);
i.version = "2.2.3";
d.fn.dataTable.Responsive = i;
d.fn.DataTable.Responsive = i;
d(j).on("preInit.dt.dtr", function (a, b) {
if (
"dt" === a.namespace &&
(d(b.nTable).hasClass("responsive") ||
d(b.nTable).hasClass("dt-responsive") ||
b.oInit.responsive ||
o.defaults.responsive)
) {
var c = b.oInit.responsive;
!1 !== c && new i(b, d.isPlainObject(c) ? c : {});
}
});
return i;
});