UNPKG

data-filter

Version:

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

20 lines (19 loc) 4.57 kB
/** @license Data-Engine v3.1.1 * data-filter.production.min.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';var c=c||{};c.scope={};c.ASSUME_ES5=!1;c.ASSUME_NO_NATIVE_MAP=!1;c.ASSUME_NO_NATIVE_SET=!1;c.defineProperty=c.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,d){a!=Array.prototype&&a!=Object.prototype&&(a[b]=d.value)};c.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};c.global=c.getGlobal(this);c.SYMBOL_PREFIX="jscomp_symbol_"; c.initSymbol=function(){c.initSymbol=function(){};c.global.Symbol||(c.global.Symbol=c.Symbol)};c.Symbol=function(){var a=0;return function(b){return c.SYMBOL_PREFIX+(b||"")+a++}}();c.initSymbolIterator=function(){c.initSymbol();var a=c.global.Symbol.iterator;a||(a=c.global.Symbol.iterator=c.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&c.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return c.arrayIterator(this)}});c.initSymbolIterator=function(){}}; c.arrayIterator=function(a){var b=0;return c.iteratorPrototype(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})};c.iteratorPrototype=function(a){c.initSymbolIterator();a={next:a};a[c.global.Symbol.iterator]=function(){return this};return a}; c.iteratorFromArray=function(a,b){c.initSymbolIterator();a instanceof String&&(a+="");var d=0,e={next:function(){if(d<a.length){var f=d++;return{value:b(f,a[f]),done:!1}}e.next=function(){return{done:!0,value:void 0}};return e.next()}};e[Symbol.iterator]=function(){return e};return e}; c.polyfill=function(a,b){if(b){var d=c.global;a=a.split(".");for(var e=0;e<a.length-1;e++){var f=a[e];f in d||(d[f]={});d=d[f]}a=a[a.length-1];e=d[a];b=b(e);b!=e&&null!=b&&c.defineProperty(d,a,{configurable:!0,writable:!0,value:b})}};c.polyfill("Array.prototype.keys",function(a){return a?a:function(){return c.iteratorFromArray(this,function(a){return a})}},"es6","es3"); var g=require("filter-value"),h=require("data-sort"),k=function(){function a(a,d){for(var b=0;b<d.length;b++){var f=d[b];f.enumerable=f.enumerable||!1;f.configurable=!0;"value"in f&&(f.writable=!0);Object.defineProperty(a,f.key,f)}}return function(b,d,e){d&&a(b.prototype,d);e&&a(b,e);return b}}(),m=function(){function a(){var b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},d=b.data;b=b.sortEngine;if(!(this instanceof a))throw new TypeError("Cannot call a class as a function");l.call(this); this.filters={};this.SortEngine=b;this.Data=d;this.filtered=this.getData()}k(a,[{key:"Data",set:function(a){a&&Array.isArray(a)?(this.data=a,this.updateFilter()):(this.data=[],this.filtered=[])},get:function(){return this.getData()}},{key:"FilteredData",get:function(){return this.getFilteredData()}},{key:"SortEngine",set:function(a){a instanceof h?(this.sortEngine=a,this.updateFce=this.filterWSort):(this.sortEngine=null,this.updateFce=this.filterWOSort)},get:function(){return this.sortEngine}}]); return a}();m.FilterValue=g;m.Sort=h; function l(){var a=this;this.updateFce=this.filterWOSort;this.data=[];this.filtered=[];this.sortEngine=null;this.setData=function(b){a.Data=b};this.getData=function(){return a.data};this.createFilter=function(a,d,e){return new g(a,d,e)};this.addFilter=function(b,d,e){return a.update(a.createFilter(b,d,e))};this.update=function(){for(var b=arguments.length,d=Array(b),e=0;e<b;e++)d[e]=arguments[e];var f=a.getFilteredData;d.forEach(function(b){if(!(b instanceof g))throw new TypeError(b+" has to have filterValue instance"); a.filters[b.Name]=b;f=a.updateFilter});return f()};this.removeFilters=function(){for(var b=arguments.length,d=Array(b),e=0;e<b;e++)d[e]=arguments[e];var f=a.getFilteredData;d.forEach(function(b){b="string"===typeof b?b:b.Name;a.filters[b]&&(delete a.filters[b],f=a.updateFilter)});return f()};this.clearFilters=function(){a.filters={};a.updateFilter();return a.FilteredData};this.updateFilter=function(){a.filtered=a.updateFce(a.data.filter(a.filterAll));return a.FilteredData};this.filterAll=function(b){return Object.keys(a.filters).every(function(d){return a.filters[d].compare(b[d])})}; this.getFilteredData=function(){return a.filtered};this.filterWOSort=function(a){return a};this.filterWSort=function(b){return a.SortEngine.setData(b)};this.getFilter=function(b){return a.filters[b]?a.filters[b]:null}}var n=Object.freeze({default:m}),p=n&&m||n;module.exports=p["default"]?p["default"]:p;