react-data-table
Version:
A very simple DataTable component for React that takes data via ajax (made for Laravel paginate).
111 lines (98 loc) • 3.71 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var DEFAULT_MAX_LISTENERS = 100;
function error(message) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
console.error.apply(console, [message].concat(args));
console.trace();
}
var EventEmitter = (function () {
function EventEmitter() {
_classCallCheck(this, EventEmitter);
this._maxListeners = DEFAULT_MAX_LISTENERS;
this._events = {};
}
_createClass(EventEmitter, [{
key: "on",
value: function on(type, listener) {
if (typeof listener != "function") {
throw new TypeError();
}
var listeners = this._events[type] || (this._events[type] = []);
if (listeners.indexOf(listener) != -1) {
return this;
}
listeners.push(listener);
if (listeners.length > this._maxListeners) {
error("possible memory leak, added %i %s listeners, " + "use EventEmitter#setMaxListeners(number) if you " + "want to increase the limit (%i now)", listeners.length, type, this._maxListeners);
}
return this;
}
}, {
key: "once",
value: function once(type, listener) {
var eventsInstance = this;
function onceCallback() {
eventsInstance.off(type, onceCallback);
listener.apply(null, arguments);
}
return this.on(type, onceCallback);
}
}, {
key: "off",
value: function off(type) {
for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
if (args.length == 0) {
this._events[type] = null;
}
var listener = args[0];
if (typeof listener != "function") {
throw new TypeError();
}
var listeners = this._events[type];
if (!listeners || !listeners.length) {
return this;
}
var indexOfListener = listeners.indexOf(listener);
if (indexOfListener == -1) {
return this;
}
listeners.splice(indexOfListener, 1);
return this;
}
}, {
key: "emit",
value: function emit(type) {
for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
args[_key3 - 1] = arguments[_key3];
}
var listeners = this._events[type];
if (!listeners || !listeners.length) {
return false;
}
listeners.forEach(function (fn) {
return fn.apply(null, args);
});
return true;
}
}, {
key: "setMaxListeners",
value: function setMaxListeners(newMaxListeners) {
if (parseInt(newMaxListeners) !== newMaxListeners) {
throw new TypeError();
}
this._maxListeners = newMaxListeners;
}
}]);
return EventEmitter;
})();
exports["default"] = EventEmitter;
module.exports = exports["default"];
;