| 12 |
- AUI.add("aui-data-set",function(a){var c=a.Lang;var b=function(){b.superclass.constructor.apply(this,arguments);};b.NAME="dataset";b.ATTRS={keys:{getter:function(e){var d=this;return d.keys;}},first:{getter:function(){var d=this;var e=d.values;return e[0];}},includeFunctions:{value:false},items:{value:null,getter:function(){var d=this;return d.collection||{};}},last:{getter:function(){var d=this;var e=d.values;return e[e.length-1];}},getKey:{lazyAdd:false,value:null,getter:function(e){var d=this;return e||d.getKey;},setter:function(e){var d=this;if(c.isFunction(e)){d.getKey=e;}return d.getKey;}},values:{getter:function(e){var d=this;return d.values;},readOnly:true}};a.extend(b,a.Base,{initializer:function(){var d=this;d.collection={};d.keys=[];d.values=[];d.length=0;d.publish("add",{defaultFn:d._defaultAddFn});d.publish("clear",{defaultFn:d._defaultClearFn});d.publish("remove",{defaultFn:d._defaultRemoveFn});d.publish("replace",{defaultFn:d._defaultReplaceFn});d.publish("sort",{defaultFn:d._defaultSortFn});},add:function(e,g){var d=this;if(arguments.length==1){g=e;e=d.getKey(g);}if(!c.isNull(e)&&!c.isUndefined(e)){var h=d.collection[e];if(!c.isUndefined(h)){return d.replace(e,g);}}var f=d.length;d.fire("add",{index:f,attrName:e,item:g,newVal:g});},addAll:function(j){var d=this;var e=arguments;var h=e.length;if(h==1){e=j;}if(h>1||c.isArray(j)){h=e.length;for(var f=0;f<h;f++){d.add(e[f]);}}else{for(var f in j){var g=j[f];d.add(f,g);}}},clear:function(){var d=this;d.fire("clear");},clone:function(){var d=this;var j=new b();var h=d.keys;var e=d.values;var g=e.length;for(var f=0;f<g;f++){j.add(h[f],e[f]);}j.set("getKey",d.get("getKey"));return j;},contains:function(e){var d=this;return d.indexOf(e)>-1;},containsKey:function(e){var d=this;return !(c.isUndefined(d.collection[e]));},each:function(f,e){var d=this;return d._each(d.values,f,e);},eachKey:function(f,e){var d=this;var g=d.keys;return d._each(g,f,e);},filter:function(k,d){var n=this;var j=new b();j.set("getKey",n.get("getKey"));var h=n.collection;var p=n.keys;var m=n.values;d=d||n;var l=j.collection;var f=j.values;var e=m.length;var o;for(var g=0;g<e;g++){o=m[g];if(k.call(d,o,g,h)){j.add(p[g],o);}}j.length=f.length;return j;},filterBy:function(h,i,g,e){var d=this;if(c.isUndefined(i)||c.isNull(i)||((c.isArray(i)||c.isString(i))&&!i.length)){return d.clone();}i=d._generateRegEx(i,g,e);var f=a.bind(d._keyFilter,d,h,i);return d.filter(f);},find:function(f,e){var d=this;return a.Array.find(d.values,f,e);},findIndex:function(h,g,l){var d=this;var k=d.collection;var e=d.values;var j=d.length;l=l||0;for(var f=l;f<j;f++){if(h.call(g,e[f],f,k)){return f;}}return -1;},findIndexBy:function(h,i,j,g,e){var d=this;if(c.isUndefined(i)||c.isNull(i)||((c.isArray(i)||c.isString(i))&&!i.length)){return -1;}i=d._generateRegEx(i,g,e);var f=a.bind(d._keyFilter,d,h,i);return d.findIndex(f,null,j);},getKey:function(e){var d=this;return(e.get&&e.get("id"))||e.id;},indexOf:function(e){var d=this;return a.Array.indexOf(d.values,e);},indexOfKey:function(e){var d=this;return a.Array.indexOf(d.keys,e);},insert:function(e,f,g){var d=this;if(arguments.length==2){g=arguments[1];f=d.getKey(g);}if(d.containsKey(f)){d.removeKey(f);}d.fire("add",{index:e,attrName:f,item:g,newVal:g});},invoke:function(l,f){var d=this;var e=d.values;var j=e.length;if(!f){f=[];}else{f=[].concat(f);}for(var g=0;g<j;g++){var h=e[g];var k=h&&h[l];if(c.isFunction(k)){k.apply(h,f);}}return d;},item:function(f){var d=this;var g;if(c.isNumber(f)){var e=d.values;g=e[f];}else{g=d.collection[f];}return g;},keySort:function(f,e){var d=this;d.fire("sort",{direction:f,fn:e||d._keySorter,type:"key"});},remove:function(f){var d=this;var e=d.indexOf(f);return d.removeAt(e);},removeAt:function(e){var d=this;if(e<d.length&&e>=0){var g=d.values[e];var f=d.keys[e];d.fire("remove",{index:e,attrName:f,item:g,prevVal:g});}},removeKey:function(f){var d=this;var e=d.indexOfKey(f);return d.removeAt(e);},replace:function(f,g){var d=this;if(arguments.length==1){g=f;f=d.getKey(g);}var h=d.collection[f];if(c.isUndefined(f)||c.isNull(f)||c.isUndefined(h)){return d.add(f,g);}var e=d.indexOfKey(f);d.fire("replace",{attrName:f,index:e,item:g,prevVal:h,newVal:g});},size:function(){var d=this;return d.length;},slice:function(g,e){var d=this;var f=d.values;return f.slice.apply(f,arguments);},sort:function(f,e){var d=this;d.fire("sort",{direction:f,fn:e,type:"value"});},_defaultAddFn:function(g){var d=this;var f=g.attrName;var h=g.item;var e=g.index;if(!c.isNull(f)&&!c.isUndefined(f)){if(d.get("includeFunctions")||!c.isFunction(h)){d.collection[f]=h;}}d.keys.splice(e,0,f);d.values.splice(e,0,h);++d.length;},_defaultClearFn:function(e){var d=this;d.collection={};d.keys=[];d.values=[];d.length=0;},_defaultRemoveFn:function(h){var d=this;var e=h.index;var i=h.item;var f=h.attrName;var j=d.collection;var g=d.keys;d.values.splice(e,1);if(!c.isUndefined(f)){delete j[f];}g.splice(e,1);d.length--;},_defaultReplaceFn:function(f){var d=this;var e=f.attrName;var g=f.item;d.collection[e]=g;},_defaultSortFn:function(e){var d=this;d._sortBy(e.type,e.direction,e.fn);},_each:function(e,j,h){var d=this;var f=e.slice(0);var k=f.length;h=h||d;for(var g=0;g<k;g++){if(j.call(h,f[g],g,f)===false){return false;}}return true;},_generateRegEx:function(i,h,f){var e=this;if(!(i instanceof RegExp)){i=String(i);var d=[];if(h!==false){d.push("^");}d.push(i);var g;if(!f){g="i";}i=new RegExp(d.join(""),g);}return i;},_keyFilter:function(f,h,g,e,i){var d=this;return g&&h.test(g[f]);},_keySorter:function(h,f){var e=this;var g=String(h).toLowerCase();var d=String(f).toLowerCase();var i=0;if(g>d){i=1;}else{if(g<d){i=-1;}}return i;},_sortBy:function(n,j,h){var p=this;var k=1;var g=[];var r=p.keys;var o=p.values;var d=o.length;h=h||a.Array.numericSort;if(String(j).toLowerCase()=="desc"){k=-1;}for(var e=0;e<d;e++){g.push({key:r[e],value:o[e],index:e});}g.sort(function(s,i){var t=h(s[n],i[n])*k;if(t===0){t=1;if(s.index<i.index){t=-1;}}return t;});d=g.length;var f={};for(var e=0;
- e<d;e++){var q=g[e];var m=q.key;var l=q.value;f[m]=l;r[e]=m;o[e]=l;}p.collection=f;}});a.DataSet=b;},"@VERSION@",{requires:["oop","collection","base"],skinnable:false});
|