]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/javascript/yui3/build/base/base-build.js
Release 6.2.0beta4
[Github/sugarcrm.git] / include / javascript / yui3 / build / base / base-build.js
1 /*
2  Copyright (c) 2009, Yahoo! Inc. All rights reserved.
3  Code licensed under the BSD License:
4  http://developer.yahoo.net/yui/license.txt
5  version: 3.0.0
6  build: 1549
7  */
8 YUI.add('base-build',function(Y){var Base=Y.Base,L=Y.Lang;Base._buildCfg={aggregates:["ATTRS","_PLUG","_UNPLUG"]};Base.build=function(name,main,extensions,cfg){var build=Base.build,builtClass=build._getClass(main,cfg),aggregates=build._getAggregates(main,cfg),dynamic=builtClass._yuibuild.dynamic,i,l,val,extClass;if(dynamic){if(aggregates){for(i=0,l=aggregates.length;i<l;++i){val=aggregates[i];if(main.hasOwnProperty(val)){builtClass[val]=L.isArray(main[val])?[]:{};}}
9 Y.aggregate(builtClass,main,true,aggregates);}}
10 for(i=0,l=extensions.length;i<l;i++){extClass=extensions[i];if(aggregates){Y.aggregate(builtClass,extClass,true,aggregates);}
11 Y.mix(builtClass,extClass,true,null,1);builtClass._yuibuild.exts.push(extClass);}
12 builtClass.prototype.hasImpl=build._hasImpl;if(dynamic){builtClass.NAME=name;builtClass.prototype.constructor=builtClass;}
13 return builtClass;};Y.mix(Base.build,{_template:function(main){function BuiltClass(){BuiltClass.superclass.constructor.apply(this,arguments);var f=BuiltClass._yuibuild.exts,l=f.length,i;for(i=0;i<l;i++){f[i].apply(this,arguments);}
14 return this;}
15 Y.extend(BuiltClass,main);return BuiltClass;},_hasImpl:function(extClass){var classes=this._getClasses();for(var i=0,l=classes.length;i<l;i++){var cls=classes[i];if(cls._yuibuild){var exts=cls._yuibuild.exts,ll=exts.length,j;for(j=0;j<ll;j++){if(exts[j]===extClass){return true;}}}}
16 return false;},_getClass:function(main,cfg){var dynamic=(cfg&&false===cfg.dynamic)?false:true,builtClass=(dynamic)?Base.build._template(main):main;builtClass._yuibuild={id:null,exts:[],dynamic:dynamic};return builtClass;},_getAggregates:function(main,cfg){var aggr=[],cfgAggr=(cfg&&cfg.aggregates),c=main,classAggr;while(c&&c.prototype){classAggr=c._buildCfg&&c._buildCfg.aggregates;if(classAggr){aggr=aggr.concat(classAggr);}
17 c=c.superclass?c.superclass.constructor:null;}
18 if(cfgAggr){aggr=aggr.concat(cfgAggr);}
19 return aggr;}});},'3.0.0',{requires:['base-base']});