UNPKG

data-engine

Version:

Data engine is small data management lib for some sort and filter.

212 lines (166 loc) 4.8 kB
/** @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. */ 'use strict'; if (process.env.NODE_ENV !== "production") { (function() { 'use strict'; 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; })(); }