data-engine
Version:
Data engine is small data management lib for some sort and filter.
212 lines (166 loc) • 4.8 kB
JavaScript
/** @license Data-Engine v3.1.1
* data-engine.development.js
*
* Copyright Jan Silhan
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
;
if (process.env.NODE_ENV !== "production") {
(function() {
;
var Filter = require('data-filter');
var Sort = require('data-sort');
var FilterValue = require('filter-value');
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"); } }
/**
* Data engine providing sort and filter functionality
*
* @export
* @class DataEngine
*/
var DataEngine = function () {
/**
* Creates an instance of DataEngine.
* @param {Array} [data=null]
* @param {string} [primaryKey=null]
* @param {function} [sortFunction=null]
*
* @memberOf DataEngine
*/
function DataEngine() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
data = _ref.data,
primaryKey = _ref.primaryKey,
sortFunction = _ref.sortFunction,
direction = _ref.direction;
_classCallCheck(this, DataEngine);
_initialiseProps.call(this);
this.filterEngine = new Filter({
data: data,
sortEngine: new Sort({
data: data, primaryKey: primaryKey, sortFunction: sortFunction, direction: direction
})
});
}
/**
* Getter for filter Engine
* @returns {Filter} instance of filter
*/
_createClass(DataEngine, [{
key: 'FilterEngine',
get: function () {
return this.filterEngine;
}
/**
* Getter for sort engine
* @returns {Sort} instance of sort
*/
}, {
key: 'SortEngine',
get: function () {
return this.filterEngine.SortEngine;
}
/**
* Setter for updating data
* @param {Array<any>} data - original data
*/
}, {
key: 'Data',
set: function (data) {
this.setData(data);
}
/**
* @see data-filter
*/
/**
* @see data-filter
*/
/**
* @see data-filter
*/
/**
* @see data-filter
*/
/**
* Setter for custom function
*
* @param {function} func your custom sort function
* @memberOf Sort
*/
/**
* @see data-sort
*/
/**
* @see data-sort
*/
/**
* @see data-sort
*/
/**
* @see data-sort
*/
/**
* Getter for filtered data
*
* @return {array} sorted and filtered array
* @memberOf DataEngine
*/
,
get: function () {
return this.FilterEngine.FilteredData;
}
}]);
return DataEngine;
}();
DataEngine.Filter = Filter;
DataEngine.Sort = Sort;
DataEngine.FilterValue = FilterValue;
var _initialiseProps = function () {
var _this = this;
this.setData = function (data) {
_this.filterEngine.Data = data;
};
this.updateFilters = function () {
var _FilterEngine;
return (_FilterEngine = _this.FilterEngine).update.apply(_FilterEngine, arguments);
};
this.removeFilters = function () {
var _FilterEngine2;
return (_FilterEngine2 = _this.FilterEngine).removeFilters.apply(_FilterEngine2, arguments);
};
this.addFilter = function (name, value, type) {
return _this.FilterEngine.addFilter(name, value, type);
};
this.clearFilters = function () {
return _this.FilterEngine.clearFilters();
};
this.setSortFunction = function (func) {
return _this.SortEngine.setSortFunction(func);
};
this.setPrimaryKey = function (key) {
return _this.SortEngine.setPrimaryKey(key);
};
this.removePrimaryKey = function () {
return _this.SortEngine.removePrimaryKey();
};
this.setDefaultSort = function () {
return _this.SortEngine.setDefaultSort();
};
this.sortBy = function (name) {
return _this.SortEngine.sortBy(name);
};
this.getData = function () {
return _this.Data;
};
};
var dataEngine = Object.freeze({
default: DataEngine
});
var DataEngine$2 = ( dataEngine && DataEngine ) || dataEngine;
var dataEngine$1 = DataEngine$2['default'] ? DataEngine$2['default'] : DataEngine$2;
module.exports = dataEngine$1;
})();
}