|
|
|
|
/*!***************************************************
|
|
|
|
|
* datatables.mark.js v2.1.0
|
|
|
|
|
* https://github.com/julmot/datatables.mark.js
|
|
|
|
|
* Copyright (c) 2016–2020, Julian Kühnel
|
|
|
|
|
* Released under the MIT license https://git.io/voRZ7
|
|
|
|
|
*****************************************************/
|
|
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
|
|
|
|
|
|
|
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
|
|
|
|
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
|
|
|
|
|
|
(function (factory, window, document) {
|
|
|
|
|
if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') {
|
|
|
|
|
var jquery = require('jquery');
|
|
|
|
|
require('datatables.net');
|
|
|
|
|
require('mark.js/dist/jquery.mark.js');
|
|
|
|
|
module.exports = factory(window, document, jquery);
|
|
|
|
|
} else if (typeof define === 'function' && define.amd) {
|
|
|
|
|
define(['jquery', 'datatables.net', 'markjs'], function (jQuery) {
|
|
|
|
|
return factory(window, document, jQuery);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
factory(window, document, jQuery);
|
|
|
|
|
}
|
|
|
|
|
})(function (window, document, $) {
|
|
|
|
|
var MarkDataTables = function () {
|
|
|
|
|
function MarkDataTables(dtInstance, options) {
|
|
|
|
|
_classCallCheck(this, MarkDataTables);
|
|
|
|
|
|
|
|
|
|
if (!$.fn.mark || !$.fn.unmark) {
|
|
|
|
|
throw new Error('jquery.mark.js is necessary for datatables.mark.js');
|
|
|
|
|
}
|
|
|
|
|
this.instance = dtInstance;
|
|
|
|
|
this.options = (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' ? options : {};
|
|
|
|
|
this.intervalThreshold = 49;
|
|
|
|
|
this.intervalMs = 300;
|
|
|
|
|
this.initMarkListener();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_createClass(MarkDataTables, [{
|
|
|
|
|
key: 'initMarkListener',
|
|
|
|
|
value: function initMarkListener() {
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
var ev = 'draw.dt.dth column-visibility.dt.dth column-reorder.dt.dth';
|
|
|
|
|
ev += ' responsive-display.dt.dth';
|
|
|
|
|
var intvl = null;
|
|
|
|
|
this.instance.on(ev, function () {
|
|
|
|
|
var rows = _this.instance.rows({
|
|
|
|
|
filter: 'applied',
|
|
|
|
|
page: 'current'
|
|
|
|
|
}).nodes().length;
|
|
|
|
|
if (rows > _this.intervalThreshold) {
|
|
|
|
|
clearTimeout(intvl);
|
|
|
|
|
intvl = setTimeout(function () {
|
|
|
|
|
_this.mark();
|
|
|
|
|
}, _this.intervalMs);
|
|
|
|
|
} else {
|
|
|
|
|
_this.mark();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
this.instance.on('destroy', function () {
|
|
|
|
|
_this.instance.off(ev);
|
|
|
|
|
});
|
|
|
|
|
this.mark();
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
key: 'mark',
|
|
|
|
|
value: function mark() {
|
|
|
|
|
var _this2 = this;
|
|
|
|
|
|
|
|
|
|
var globalSearch = this.instance.search();
|
|
|
|
|
var $tableBody = $(this.instance.table().body());
|
|
|
|
|
$tableBody.unmark(this.options);
|
|
|
|
|
if (this.instance.table().rows({ search: 'applied' }).data().length) {
|
|
|
|
|
$tableBody.mark(globalSearch, this.options);
|
|
|
|
|
}
|
|
|
|
|
this.instance.columns({
|
|
|
|
|
search: 'applied',
|
|
|
|
|
page: 'current'
|
|
|
|
|
}).nodes().each(function (nodes, colIndex) {
|
|
|
|
|
var columnSearch = _this2.instance.column(colIndex).search(),
|
|
|
|
|
searchVal = columnSearch || globalSearch;
|
|
|
|
|
if (searchVal) {
|
|
|
|
|
nodes.forEach(function (node) {
|
|
|
|
|
$(node).unmark(_this2.options).mark(searchVal, _this2.options);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}]);
|
|
|
|
|
|
|
|
|
|
return MarkDataTables;
|
|
|
|
|
}();
|
|
|
|
|
|
|
|
|
|
$(document).on('init.dt.dth', function (event, settings) {
|
|
|
|
|
if (event.namespace !== 'dt') {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var dtInstance = $.fn.dataTable.Api(settings);
|
|
|
|
|
|
|
|
|
|
var options = null;
|
|
|
|
|
if (dtInstance.init().mark) {
|
|
|
|
|
options = dtInstance.init().mark;
|
|
|
|
|
} else if ($.fn.dataTable.defaults.mark) {
|
|
|
|
|
options = $.fn.dataTable.defaults.mark;
|
|
|
|
|
}
|
|
|
|
|
if (options === null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
new MarkDataTables(dtInstance, options);
|
|
|
|
|
});
|
|
|
|
|
}, window, document);
|