src/cm/media/js/lib/yui/yui3-3.15.0/build/base-build/base-build-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('base-build', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
     * The base-build submodule provides Base.build functionality, which
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
     * can be used to create custom classes, by aggregating extensions onto
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
     * a main class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
     * @module base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
     * @submodule base-build
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
     * @for Base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
    var BaseCore = Y.BaseCore,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
        Base     = Y.Base,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
        L        = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
        INITIALIZER = "initializer",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
        DESTRUCTOR  = "destructor",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
        AGGREGATES  = ["_PLUG", "_UNPLUG"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
        build;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    // Utility function used in `_buildCfg` to aggregate array values into a new
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    // array from the sender constructor to the receiver constructor.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    function arrayAggregator(prop, r, s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
        if (s[prop]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
            r[prop] = (r[prop] || []).concat(s[prop]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
    // Utility function used in `_buildCfg` to aggregate `_ATTR_CFG` array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
    // values from the sender constructor into a new array on receiver's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    // constructor, and clear the cached hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    function attrCfgAggregator(prop, r, s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
        if (s._ATTR_CFG) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
            // Clear cached hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
            r._ATTR_CFG_HASH = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
            arrayAggregator.apply(null, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    // Utility function used in `_buildCfg` to aggregate ATTRS configs from one
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    // the sender constructor to the receiver constructor.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    function attrsAggregator(prop, r, s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
        BaseCore.modifyAttrs(r, s.ATTRS);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    Base._build = function(name, main, extensions, px, sx, cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
        var build = Base._build,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
            builtClass = build._ctor(main, cfg),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
            buildCfg = build._cfg(main, cfg, extensions),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
            _mixCust = build._mixCust,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
            dynamic = builtClass._yuibuild.dynamic,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            i, l, extClass, extProto,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
            initializer,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
            destructor;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        // Augment/Aggregate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
        for (i = 0, l = extensions.length; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
            extClass = extensions[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            extProto = extClass.prototype;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            initializer = extProto[INITIALIZER];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            destructor = extProto[DESTRUCTOR];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
            delete extProto[INITIALIZER];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
            delete extProto[DESTRUCTOR];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
            // Prototype, old non-displacing augment
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
            Y.mix(builtClass, extClass, true, null, 1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
            // Custom Statics
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
            _mixCust(builtClass, extClass, buildCfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
            if (initializer) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
                extProto[INITIALIZER] = initializer;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
            if (destructor) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
                extProto[DESTRUCTOR] = destructor;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
            builtClass._yuibuild.exts.push(extClass);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
        if (px) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
            Y.mix(builtClass.prototype, px, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
        if (sx) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
            Y.mix(builtClass, build._clean(sx, buildCfg), true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
            _mixCust(builtClass, sx, buildCfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
        builtClass.prototype.hasImpl = build._impl;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
        if (dynamic) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
            builtClass.NAME = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
            builtClass.prototype.constructor = builtClass;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
            // Carry along the reference to `modifyAttrs()` from `main`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
            builtClass.modifyAttrs = main.modifyAttrs;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
        return builtClass;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
    build = Base._build;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
    Y.mix(build, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
        _mixCust: function(r, s, cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
            var aggregates,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
                custom,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
                statics,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
                aggr,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
                l,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
                i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
            if (cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
                aggregates = cfg.aggregates;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
                custom = cfg.custom;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
                statics = cfg.statics;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
            if (statics) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
                Y.mix(r, s, true, statics);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
            if (aggregates) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
                for (i = 0, l = aggregates.length; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
                    aggr = aggregates[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
                    if (!r.hasOwnProperty(aggr) && s.hasOwnProperty(aggr)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
                        r[aggr] = L.isArray(s[aggr]) ? [] : {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
                    Y.aggregate(r, s, true, [aggr]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
            if (custom) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
                for (i in custom) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
                    if (custom.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
                        custom[i](i, r, s);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
        _tmpl: function(main) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
            function BuiltClass() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
                BuiltClass.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
            Y.extend(BuiltClass, main);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
            return BuiltClass;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
        _impl : function(extClass) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
            var classes = this._getClasses(), i, l, cls, exts, ll, j;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
            for (i = 0, l = classes.length; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
                cls = classes[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
                if (cls._yuibuild) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
                    exts = cls._yuibuild.exts;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
                    ll = exts.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
                    for (j = 0; j < ll; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
                        if (exts[j] === extClass) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
                            return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
            return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
        _ctor : function(main, cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
           var dynamic = (cfg && false === cfg.dynamic) ? false : true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
               builtClass = (dynamic) ? build._tmpl(main) : main,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
               buildCfg = builtClass._yuibuild;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
            if (!buildCfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
                buildCfg = builtClass._yuibuild = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            buildCfg.id = buildCfg.id || null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
            buildCfg.exts = buildCfg.exts || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
            buildCfg.dynamic = dynamic;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
            return builtClass;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
        _cfg : function(main, cfg, exts) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
            var aggr = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
                cust = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
                statics = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
                buildCfg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
                cfgAggr = (cfg && cfg.aggregates),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
                cfgCustBuild = (cfg && cfg.custom),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
                cfgStatics = (cfg && cfg.statics),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
                c = main,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
                i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
                l;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
            // Prototype Chain
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
            while (c && c.prototype) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
                buildCfg = c._buildCfg;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
                if (buildCfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
                    if (buildCfg.aggregates) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
                        aggr = aggr.concat(buildCfg.aggregates);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
                    if (buildCfg.custom) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
                        Y.mix(cust, buildCfg.custom, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
                    if (buildCfg.statics) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
                        statics = statics.concat(buildCfg.statics);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
                c = c.superclass ? c.superclass.constructor : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
            // Exts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
            if (exts) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
                for (i = 0, l = exts.length; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
                    c = exts[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
                    buildCfg = c._buildCfg;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
                    if (buildCfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
                        if (buildCfg.aggregates) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
                            aggr = aggr.concat(buildCfg.aggregates);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
                        if (buildCfg.custom) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
                            Y.mix(cust, buildCfg.custom, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
                        if (buildCfg.statics) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
                            statics = statics.concat(buildCfg.statics);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
            if (cfgAggr) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
                aggr = aggr.concat(cfgAggr);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
            if (cfgCustBuild) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
                Y.mix(cust, cfg.cfgBuild, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
            if (cfgStatics) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
                statics = statics.concat(cfgStatics);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
            return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
                aggregates: aggr,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
                custom: cust,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
                statics: statics
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
        _clean : function(sx, cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
            var prop, i, l, sxclone = Y.merge(sx),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
                aggregates = cfg.aggregates,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
                custom = cfg.custom;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
            for (prop in custom) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
                if (sxclone.hasOwnProperty(prop)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
                    delete sxclone[prop];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
            for (i = 0, l = aggregates.length; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
                prop = aggregates[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
                if (sxclone.hasOwnProperty(prop)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
                    delete sxclone[prop];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
            return sxclone;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
     * <p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
     * Builds a custom constructor function (class) from the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
     * main function, and array of extension functions (classes)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
     * provided. The NAME field for the constructor function is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
     * defined by the first argument passed in.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
     * </p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
     * <p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
     * The cfg object supports the following properties
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
     * </p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
     * <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
     *    <dt>dynamic &#60;boolean&#62;</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
     *    <dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
     *    <p>If true (default), a completely new class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
     *    is created which extends the main class, and acts as the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
     *    host on which the extension classes are augmented.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
     *    <p>If false, the extensions classes are augmented directly to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
     *    the main class, modifying the main class' prototype.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
     *    </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
     *    <dt>aggregates &#60;String[]&#62;</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
     *    <dd>An array of static property names, which will get aggregated
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
     *    on to the built class, in addition to the default properties build
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
     *    will always aggregate as defined by the main class' static _buildCfg
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
     *    property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
     *    </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
     * </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
     * @method build
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
     * @deprecated Use the more convenient Base.create and Base.mix methods instead
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
     * @param {Function} name The name of the new class. Used to define the NAME property for the new class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
     * @param {Function} main The main class on which to base the built class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
     * @param {Function[]} extensions The set of extension classes which will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
     * augmented/aggregated to the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
     * @param {Object} cfg Optional. Build configuration for the class (see description).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
     * @return {Function} A custom class, created from the provided main and extension classes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
    Base.build = function(name, main, extensions, cfg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
        return build(name, main, extensions, null, null, cfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
     * Creates a new class (constructor function) which extends the base class passed in as the second argument,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
     * and mixes in the array of extensions provided.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
     * Prototype properties or methods can be added to the new class, using the px argument (similar to Y.extend).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
     * Static properties or methods can be added to the new class, using the sx argument (similar to Y.extend).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
     * **NOTE FOR COMPONENT DEVELOPERS**: Both the `base` class, and `extensions` can define static a `_buildCfg`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
     * property, which acts as class creation meta-data, and drives how special static properties from the base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
     * class, or extensions should be copied, aggregated or (custom) mixed into the newly created class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
     * The `_buildCfg` property is a hash with 3 supported properties: `statics`, `aggregates` and `custom`, e.g:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
     *     // If the Base/Main class is the thing introducing the property:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
     *     MyBaseClass._buildCfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
     *        // Static properties/methods to copy (Alias) to the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
     *        statics: ["CopyThisMethod", "CopyThisProperty"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
     *        // Static props to aggregate onto the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
     *        aggregates: ["AggregateThisProperty"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
     *        // Static properties which need custom handling (e.g. deep merge etc.)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
     *        custom: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
     *           "CustomProperty" : function(property, Receiver, Supplier) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
     *              ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
     *              var triggers = Receiver.CustomProperty.triggers;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
     *              Receiver.CustomProperty.triggers = triggers.concat(Supplier.CustomProperty.triggers);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
     *              ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
     *           }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
     *        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
     *     };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
     *     MyBaseClass.CopyThisMethod = function() {...};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
     *     MyBaseClass.CopyThisProperty = "foo";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
     *     MyBaseClass.AggregateThisProperty = {...};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
     *     MyBaseClass.CustomProperty = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
     *        triggers: [...]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
     *     }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
     *     // Or, if the Extension is the thing introducing the property:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
     *     MyExtension._buildCfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
     *         statics : ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
     *         aggregates : ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
     *         custom : ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
     *     }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
     * This way, when users pass your base or extension class to `Y.Base.create` or `Y.Base.mix`, they don't need to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
     * know which properties need special handling. `Y.Base` has a buildCfg which defines `ATTRS` for custom mix handling
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
     * (to protect the static config objects), and `Y.Widget` has a buildCfg which specifies `HTML_PARSER` for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
     * straight up aggregation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
     * @method create
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
     * @param {String} name The name of the newly created class. Used to define the NAME property for the new class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
     * @param {Function} main The base class which the new class should extend.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
     * This class needs to be Base or a class derived from base (e.g. Widget).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
     * @param {Function[]} extensions The list of extensions which will be mixed into the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
     * @param {Object} px The set of prototype properties/methods to add to the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
     * @param {Object} sx The set of static properties/methods to add to the built class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
     * @return {Function} The newly created class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
    Base.create = function(name, base, extensions, px, sx) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
        return build(name, base, extensions, px, sx);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
     * <p>Mixes in a list of extensions to an existing class.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
     * @method mix
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
     * @param {Function} main The existing class into which the extensions should be mixed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
     * The class needs to be Base or a class derived from Base (e.g. Widget)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
     * @param {Function[]} extensions The set of extension classes which will mixed into the existing main class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
     * @return {Function} The modified main class, with extensions mixed in.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
    Base.mix = function(main, extensions) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
        if (main._CACHED_CLASS_DATA) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
            main._CACHED_CLASS_DATA = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
        return build(null, main, extensions, null, null, {dynamic:false});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
     * The build configuration for the Base class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
     * Defines the static fields which need to be aggregated when the Base class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
     * is used as the main class passed to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
     * <a href="#method_Base.build">Base.build</a> method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
     * @property _buildCfg
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
     * @final
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
    BaseCore._buildCfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
        aggregates: AGGREGATES.concat(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
        custom: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
            ATTRS         : attrsAggregator,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
            _ATTR_CFG     : attrCfgAggregator,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
            _NON_ATTRS_CFG: arrayAggregator
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
    // Makes sure Base and BaseCore use separate `_buildCfg` objects.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
    Base._buildCfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
        aggregates: AGGREGATES.concat(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
        custom: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
            ATTRS         : attrsAggregator,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
            _ATTR_CFG     : attrCfgAggregator,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
            _NON_ATTRS_CFG: arrayAggregator
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
}, '@VERSION@', {"requires": ["base-base"]});