mirror of
https://bitbucket.org/bellord13/kit.git
synced 2026-11-13 19:06:11 +03:00
1 line
5.5 KiB
JavaScript
1 line
5.5 KiB
JavaScript
__PluginManager__.register("Collection",function(t,e,i,r){var n=t("support"),o=n.valueEx;function s(t){return n.arr.isKey(t)?Number(t):""+t}function h(t){return new u("object"===t?{}:[])}function u(t=[]){var e,i=this;if(this.data=t,n.definePropertyGet(this,"length",function(){return i.__keys.length}),t instanceof u)this.__type=t.__type,this.__keys=t.__keys,this.__values=t.__values;else for(e in Array.isArray(t)?this.__type="array":"object"==typeof t?(this.__type="object",t.hasOwnProperty("length")&&!Object.keys(t).includes("length")&&(this.__type="arrayObject")):(this.__type="array",this.data=[t],console.warn("collection: not support data"+typeof t)),this.__keys=[],this.__values=[],this.data)this.data.hasOwnProperty(e)&&(this.__keys.push(s(e)),this.__values.push(this.data[e]))}return u.prototype.__getLastIndex=function(){var t,e,i=-1;for(e in this.__keys)t=this.__keys[e],n.isNumber(t)&&i<t&&(i=t);return i},u.prototype.all=function(){return"array"===this.__type||"arrayObject"===this.__type?this.toArray():this.toObject()},u.prototype.toArray=function(){var t,e=[];for(t in this.__keys)e[this.__keys[t]]=this.__values[t];return e},u.prototype.toObject=function(){var t,e={};for(t in this.__keys)e[this.__keys[t]]=this.__values[t];return e},u.prototype.serialize=function(){return JSON.stringify(this.toObject())},u.prototype.serializeArray=function(){return JSON.stringify(this.toArray())},u.prototype.has=function(t){return this.__keys.includes(s(t))},u.prototype.indexKey=function(t){return this.__keys.indexOf(s(t))},u.prototype.add=u.prototype.set=u.prototype.put=function(t,e){return this.has(t)?this.data[t]=this.__values[this.indexKey(t)]=e:(this.__keys.push(s(t)),this.data[t]=this.__values[this.length-1]=e),this},u.prototype.push=function(t){return this.set(this.__getLastIndex()+1,t),this},u.prototype.get=function(t,e=void 0){return this.has(t)?this.data[t]:e},u.prototype.count=function(){return this.__keys.length},u.prototype.isEmpty=function(){return 0===this.count()},u.prototype.map=function(t){var e,i,r,s=h(this.__type);for(e in this.__keys)i=this.__keys[e],r=this.__values[e],s.put(i,o(t,r,i,this.data));return s},u.prototype.each=function(t=!0){var e;if(this.__keys.length)for(e=0;e<this.__keys.length&&!1!==o(t,this.__values[e],this.__keys[e],this.data);e++);return this},u.prototype.eachReverse=function(t=!0){var e;if(this.__keys.length)for(e=this.__keys.length-1;0<=e&&!1!==o(t,this.__values[e],this.__keys[e],this.data);e--);return this},u.prototype.filter=function(r=function(t,e,i){return!n.empty(t)}){var s=h(this.__type);return this.each(function(t,e,i){o(r,t,e,i)&&s.put(e,t)}),s},u.prototype.except=function(t){var e,i=[];for(e in t=Array.isArray(t)?t:[t])i.push(s(t[e]));return this.filter(function(t,e){return!i.includes(e)})},u.prototype.only=function(t){var e,i=[];for(e in t=Array.isArray(t)?t:[t])i.push(s(t[e]));return this.filter(function(t,e){return i.includes(e)})},u.prototype.every=function(r){var s=!0;return this.each(function(t,e,i){s=s&&!!o(r,t,e,i)}),s},u.prototype.first=function(r=!0){var s=void 0;return this.each(function(t,e,i){if(o(r,t,e,i))return s=t,!1}),s},u.prototype.firstKey=function(r=!0){var s=void 0;return this.each(function(t,e,i){if(o(r,t,e,i))return s=e,!1}),s},u.prototype.last=function(r=!0){var s=void 0;return this.eachReverse(function(t,e,i){if(o(r,t,e,i))return s=t,!1}),s},u.prototype.lastKey=function(r=!0){var s=void 0;return this.eachReverse(function(t,e,i){if(o(r,t,e,i))return s=e,!1}),s},u.prototype.forget=function(t){var e;return t=o(t),this.has(t)&&(e=this.indexKey(t),this.__keys.splice(e,1),this.__values.splice(e,1),delete this.data[t]),this},u.prototype.pull=function(t,e=void 0){var i,r;return t=o(t),this.has(t)?(i=this.indexKey(t),r=this.__values[i],this.__keys.splice(i,1),this.__values.splice(i,1),delete this.data[t],r):e},u.prototype.pop=function(){var t,e,i=this.__keys.length-1;if(!(i<0))return t=this.__keys[i],e=this.__values[i],this.__keys.splice(i,1),this.__values.splice(i,1),delete this.data[t],e},u.prototype.shift=function(){var t,e;if(!(this.length<=0))return t=this.__keys[0],e=this.__values[0],this.__keys.splice(0,1),this.__values.splice(0,1),delete this.data[t],e},u.prototype.keys=function(){return new u(Object.keys(this.data))},u.prototype.dump=function(){return console.log("Collection",this.data),this},u.prototype.dd=function(){return this.dump(),this},u.prototype.eachCall=function(t,e,i){var r,s=[];if(1<arguments.length)for(r=1;r<=arguments.length-1;r++)s.push(arguments[r]);if(this.__keys.length)for(r=0;r<this.__keys.length&&("function"!=typeof this.__values[r]||!1!==this.__values[r].apply(t,s));r++);return this},u.prototype.includes=function(t,e){var i=this.__keys.length;if(0!==i)for(var e=0|e,r=Math.max(0<=e?e:i-Math.abs(e),0);r<i;){if(n.isEqualArrayValues(this.__values[r],t,!0))return!0;r++}return!1},u.prototype.contains=function(t,e=!1){var i=this.__keys.length,r=0;if(0!==i){if(n.isFunction(t))return 0<this.filter(t).count();for(;r<i;){if(n.isEqualArrayValues(this.__values[r],t,e))return!0;r++}}return!1},u.prototype.hasAnyValue=function(t,r=!1){var s=new u(t),n=!1;return this.each(function(t,e,i){return!s.contains(t,r)||!(n=!0)}),n},u.prototype.hasAnyKey=function(t){var r=new u(valueList),s=!1;return this.each(function(t,e,i){return!r.contains(e,!1)||!(s=!0)}),s},u.prototype.search=function(t){var e=this.__keys.length;if(0!==e)for(var i=0;i<e;){if(n.isEqualArrayValues(this.__values[i],t,!0))return this.__keys[i];i++}return!1},u.prototype.pluck=function(e){return this.map(function(t){if(t instanceof Object&&t.hasOwnProperty(e))return t[e]})},i.exports=u}); |